With latest at-spi2 git, app buses are not browsable in d-feet. I don't know if a11y is also broken, or if it's just introspection stuff. 1. Install at-spi2-core, at-spi2-atk, and pyatspi2 from git like so: ./autogen.sh --prefix=/home/sandy/stage/at-spi2 && make && make install 2. Start at-spi2-registryd like so: $ ~/stage/at-spi2/libexec/at-spi2-registryd & 3. Start gcalctool like so: $ gcalctool --gtk-module=gail:/home/sandy/stage/at-spi2/lib/gtk-2.0/modules/libatk-bridge.so 4. Using D-feet or another d-bus browser, locate the bus for gcalctool and click on it. Expected result: See at-spi2 d-bus interfaces Actual result: Nothing in d-feet, and the following output in the terminal where gcalctool was launched: ** (gcalctool:14377): WARNING **: AT-SPI: Cannot find introspection XML file /home/sandy/stage/at-spi2/share/at-spi2-atk/dbus/org.freedesktop.atspi.Accessible - Failed to open file '/home/sandy/stage/at-spi2/share/at-spi2-atk/dbus/org.freedesktop.atspi.Accessible': No such file or directory (this is repeated for each inteface file, it seems) The fix is trivial: $ mv ~/stage/at-spi2/share/at-spi2-core ~/stage/at-spi2/share/at-spi2-atk But I haven't actually looked at which module installs those files, or what a proper fix would look like.
The XML files are installed by the at-spi2-core package. They have to be in a location readable by at-spi2-atk. There is a compile time option in the at-spi2-atk package to set the location of the XML files relative to the pkgdatadir. This implies that for introspection to work at-spi2-atk and at-spi2-core must be installed into the same directory tree (prefix). This seems to me to be acceptable. For any normal install both packages will be installed to the same path. A possible fix is to have an override-able compile time option that sets the absolute path of the introspection directory.
(In reply to comment #1) > This implies that for introspection to work at-spi2-atk and at-spi2-core must > be installed into the same directory tree (prefix). Yes, and I installed them both in the same prefix of /home/sandy/stage/at-spi2 . Either you've misunderstood the report or I'm misunderstanding your response. :-) I'm installing everything to the same prefix, using default compilation options, and getting these introspection errors. My lame fix is to rename a directory in $prefix/share. So this is broken by default, not due to some exotic setup. I should try installing to /usr or /usr/local, though, and see if there's any difference.
I misunderstood your report. I have moved the XML to the datarootdir so that they are not installed under a module name directory but under $(datarootdir)/at-spi2/ The commits are: at-spi2-atk : 1f0796cafdfd6a1856ee7aeb61142e55c3f5d16f at-spi2-core: 2061c1c44e48edd8bd9fc5f92a9328501be4be9b d-feet is still not working. This is because d-feet requires that there is an object at '/' that responds to the org.freedesktop.Introspectable:Introspect method. We need to add this object and have it return a blank introspection XML.
The '/' path needs to be available for introspection for D-feet to work. Need to add registration of the '/' path to D-Route.
libdbus seems to automatically implement Introspect for paths that are not explicitly registered (ie, / returns a child node of "org", /org returns a child node of "a11y", etc). /org/a11y/atspi/accessible was giving the wrong output, however, since it is registered with droute and so was not automatically handled. I've fied this in the latest commit, so I am going to mark this fixed. I've debated whether to add the whole cache as children of /org/a11y/accessible; so far I have not done this, but I don't think that it would be difficult to do if people think it desirable.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.