[Accessibility] AT-SPI dependencies

Bill Haneman Bill.Haneman at Sun.COM
Sat Nov 18 03:08:45 PST 2006

Some more thoughts about dependencies:

[I wrote this to Olaf but am sending to the list since it may be of =

general interest, although it is preliminary.  Sorry I have not had time =

to make this more complete as of yet - Bill]

-------------- next part --------------
Hi Olaf - =

I'm afraid I'm just getting ready to get on a plane now and will be off the=
 air for a couple of days (till Monday).  The dependencies have been on my =
mind and on my list since our meeting, but I haven't had a chance to deal w=
ith the question properly.

For the moment, here's some info on the CFLAGS and thus the headers being u=
sed by at-spi at present.  While 'ldd' and 'nm' give us great info on what =
is actually linked in, CFLAGS gives us an idea of what dependencies are "di=
rect" and thus may be the core dependencies.  I'll write a separate email a=
bout the linking/lib dependencies early next week.

Personally I would hope to reduce the header dependencies of at-spi to the =
following, for key modules libspi, atk-bridge, and at-spi-registryd:

libspi - split into client stubs (which might have no library dependencies =
at all other than libc, being pure CORBA, and therefore could be used with =
any complient ORB, not just ORBit2), and server-side implementation.  libsp=
i is mostly bridge code between ATK and at-spi, thus it will need:
   libbonobo (but see below, this could be replaced by private code)

atk-bridge: same as above?

at-spi-registryd - probably requires all of the above, but the GDK dependen=
cy (which pulls in GTK+) could IMO be removed, as could the bonobo-activati=
on dependency.

Best regards,



CFLAGS (headers) for atk-bridge, libcspi, libspi


registryd also includes
(and thus indirectly requires headers for cairo and pango-1.0)


tests: also pulls in gail-1.0

[1] Since we only use the Bonobo_Unknown class from libbonobo, this could
be replaced with a very small piece of cut-and-paste private code - basical=
ly 3 methods, I believe.
[2] bonobo-activation is only used now for on-demand loading by AT clients;=
 this could be split out into a compile-time option for now, in libcspi (th=
ough that lib is probably not one that we are too concerned about at the mo=
ment).  The bonobo-activation use in at-spi-registryd can be removed as soo=
n as we have an alternative way of preventing multiple copies from being la=
[3] This is only used for a couple of gdk macros - all of which can be repl=
aced fairly readily, except possibly GDK_THREADS_ENTER and GDK_THREADS_LEAV=
E - we may need to come up with some alternative way to prevent deadlock in=
 threading scenarios.

More information about the Accessibility mailing list