bus: Rewrite a11y bus management, don't fall back to session bus
First of all, there should *always* be an a11y bus; if I enable
toolkit-accessibility, and apps pick that up but then libat-spi falls
back to the session bus, that's broken.
Fix this by rewriting the a11y bus launcher in C, making it a persistent
session service, and giving it a DBus API (bus name: org.a11y.Bus). It
will start the bus process as a child dynamically; however if
toolkit-accessibility is enabled, we start it on startup. For more
information, see the new file bus/README.
Details:
* Create a .service file so the session bus autostarts us if
necessary
* The .desktop file is changed to use --start-immediately
* Remove the kill_accessibility_bus() hack in registryd; instead
we chain at-spi-bus-launcher to the session bus lifecycle.
* Change at-spi bus lookup to try both the new session bus API
and the X11 root window property.
* Create libregistry-internals.la which encapsulates a11y bus
lookup logic, de-duplicating from atspi/ and registryd/.
https://bugzilla.gnome.org/show_bug.cgi?id=644851
14 files changed: