Title Here: This page provides information about the mapping of the old CORBA-based AT-SPI to the new D-Bus-based AT-SPI. |
Contents
GIT Repositories and Files they Install
The AT-SPI infrastructure lives in the following GIT repositories:
General ATK Support
The atk module from git://git.gnome.org/atk is used by both the AT-SPI/CORBA and AT-SPI/D-Bus solutions. It provides the normalizing object model for toolkits such as GTK+, Gecko, and OOo to use and it provides the following files:
/usr/include/atk-1.0/ - include files /usr/lib/libatk-1.0.* - libraries /usr/lib/pkgconfig/atk.pc - pkgconfig support /usr/share/locale/*/LC_MESSAGES/atk10.mo - locale support for ATK strings (e.g., rolenames)
AT-SPI/CORBA
The AT-SPI/CORBA files are all lumped under git://git.gnome.org/at-spi. With at-spi 1.29.2 and greater, the configure file provides a --enable-relocate feature which is enabled by default. If enabled, the at-spi files are installed to non-standard locations and the /desktop/gnome/interface/at-spi-corba boolean gconf key is used to determine whether the files should be used or not. If --enable-relocate is used, the files are installed in the following locations:
/etc/gconf/schemas/at-spi.schemas - holds the new /desktop/gnome/interface/at-spi-corba key /etc/xdg/autostart/at-spi-registryd.desktop - launches /usr/lib/at-spi-registryd only if the new at-spi-corba key is true /usr/lib/at-spi-registryd - the CORBA registryd /usr/lib/bonobo/servers/Accessibility_Registry.server - Bonobo activation support /usr/lib/gtk-2.0/modules/at-spi-corba/modules/libatk-bridge.* - GTK+ module for the CORBA bridge /usr/lib/libcspi.* - C API Bindings /usr/lib/libloginhelper.* - Bindings for helper for login screen /usr/lib/libspi.* - SPI Bindings /usr/lib/orbit-2.0/Accessibility_LoginHelper_module.* - Bonobo/ORBit/CORBA support for login helper /usr/lib/orbit-2.0/Accessibility_module.* - Bonobo/ORBit/CORBA support for AT-SPI /usr/lib/pkgconfig/cspi-1.0.pc - pkgconfig file /usr/lib/pkgconfig/libloginhelper-1.0.pc - pkgconfig file /usr/lib/pkgconfig/libspi-1.0.pc - pkgconfig file /usr/lib/python2.4/site-packages/pyatspi-corba - relocated 'pyatspi' module /usr/lib/python2.4/site-packages/pyatspi-corba.pth - relocates 'pyatspi' module to pyatspi-corba if new at-spi-corba key is true /usr/share/doc/at-spi-1.28.0 - API docs /usr/share/idl/at-spi-1.0 - API IDL /usr/share/locale/*/LC_MESSAGES/at-spi.mo - translations for 2 strings that describe the Accessibility_Registry
If --disable-relocate is used, then the schema for the new at-spi-corba is not installed, the GTK+ modules end up directly under /usr/lib/gtk-2.0/modules/libatk-bridge.*, /etc/xdg/autostart/at-spi-registryd.desktop launches the registryd if the /desktop/gnome/interface/accessibility key is set, and the pyatspi module is installed directly under /usr/lib/python2.4/site-packages/pyatspi.
AT-SPI/D-Bus
The AT-SPI/D-Bus support breaks AT-SPI into several repositories. The goal is to allow the modules to be better shared with toolkits such as KDE's Qt toolkit. As a result, some GNOME-isms need to be separated out. The three repositories are as follows:
at-spi2-core
git://git.gnome.org/at-spi2-core provides the core D-Bus definitions and files needed for running the registryd
/usr/include/{dbind,droute}-0.1, /usr/lib/lib{dbind,droute}.*, and /usr/lib/pkgconfig/{dbind,droute}-0.1.pc - dbind and droute support. These might end up being moved into a static library and not shipped at all.
/usr/lib/at-spi2-registryd - the D-Bus registryd
/usr/share/at-spi2-core/dbus/org.freedesktop.atspi.* - D-Bus XML definitions for AT-SPI
/usr/share/dbus-1/services/org.freedesktop.atspi.Registry.service - D-Bus activation support
at-spi2-atk
git://git.gnome.org/at-spi2-atk provides the AT-SPI/D-Bus GTK+ atk-bridge module:
/usr/lib/gtk-2.0/modules/libatk-bridge.* - GTK+ module for the D-Bus bridge /usr/share/gnome/autostart/atk-bridge.desktop - [[[WDW - only shipped if GTK_MODULE_DIR is set to a non-default value before building]]]
NOTE - the bridge can be relocated by setting the GTK_MODULE_DIR environment variable.
pyatspi2
git://git.gnome.org/pyatspi2 provides the AT-SPI/D-Bus 'pyatspi' module:
/usr/lib/python2.4/site-packages/pyatspi - the 'pyatspi' python module
NOTE - the pyatspi module directory can be changed by setting the PYATSPI_SUBDIR environment variable.
Coexistence Notes
With the default build settings in git master, the AT-SPI/CORBA and AT-SPI/D-Bus files coexist on the file system without conflict. The /desktop/gnome/interface/accessibility/ boolean gconf key is still used to determine whether accessibility support is desired for the system and AT-SPI/D-Bus is used as the accessibility solution by default. If one wants to use the AT-SPI/CORBA solution, they will also need to set the /desktop/gnome/interface/at-spi-corba boolean gconf key to true.
Note that Firefox, OOo, gdm all hardcode atk-bridge references and gnome-settings-daemon hardcodes "gail:atk-bridge" in its gconf settings. So, the name of the GTK+ module must stay at atk-bridge to reduce the number of changes that need to be made.
As a quick test, you can run the following command from a shell script:
python -c "import pyatspi; print(map(lambda x: x.name, filter(lambda x: x, pyatspi.Registry.getDesktop(0))))"
If you see output with D-Bus references in it (e.g., dbus.String(u'gnome-terminal')), then the system is set up to use AT-SPI/D-Bus. Here's a command you can cut/paste to turn the CORBA bindings on:
gconftool-2 --set /desktop/gnome/interface/at-spi-corba --type bool true

