On 14/02/07, Rob Taylor <[EMAIL PROTECTED]> wrote: > Rob Taylor wrote: > > (Changing subject appropriately, should have done this earlier..) > > > > Havoc Pennington wrote: > >> Parallel install will be of limited value most likely if any *libraries* > >> in the typical GNOME/GTK stack use dbus-glib, because you'll probably > >> still use some of the same symbol names. That is, as soon as a lib in > >> the stack uses a dbus-glib ABI, that ABI is locked in. > >> > >> You might address this by strongly discouraging such a dependency in > >> several places online and in the docs, or something, if changing ABI > >> looks necessary. > > > > Hmm, there's a *lot* of libraries using dbus-glib-1 right now (13 on > > Ubuntu Edgy, according to apt-cache rdepends). The aim would be to allow > > us to break ABI at will without disturbing these current users. I guess > > the right thing is to go to dbus-glib-2. > > To be clear - the solution I'm suggesting is to have the API version in > the library name, like gtk+ or gstreamer. We could just as well go to > dbus-glib-1.1 or dbus-glib-2. Personally I rather like the way Gstreamer > does it: major.minor, with minor being odd signifying that its an > unstable API.
The problem here isn't the naming of the library. The problem is if something like the following occurs: * Some application links to both libfoo and libbar * libfoo adds a dependency on dbus-glib-X * libbar adds a dependency on dbus-glib-Y Now the application is linked to both dbus-glib-X and dbus-glib-Y. If the two versions of dbus-glib share any symbols, then you will get undefined results (since with ELF, libfoo and libbar will be linking to the dbus-glib symbols by name, rather than binding to the particular version they link with). For platforms where the ELF linking is not a problem, you'd still get into trouble if the two versions of dbus-glib tried to register GTypes with the same name. So while having parallel installable dbus-glib versions is okay for applications to use, it'll be a nightmare if libraries that are part of the Gnome platform depend on different versions. James. _______________________________________________ desktop-devel-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/desktop-devel-list
