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.
See at-spi2 d-bus interfaces
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
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.