Continuing adventures of bonobo and gnome-vfs

After some discussion with Michael Meeks about yesterdays post we decided to move the problematic gnome-vfs functions to libbonobo, so that we can totally avoid bonobo in gnome-vfs. This is ok, since these functions are useless unless you use bonobo yourself, so you’ll be linking to libbonobo if you use them. In fact all old apps are guaranteed to do this since gnome-vfs pulled in libbonobo.

So, what happens is that the function declarations are in the gnome-vfs headers, but the actual implementation is in libbonobo. This means we can now push gnome-vfs much lower in the gnome build stack. It now only depends on glib, dbus, gconf and libxml.

There is only one minor issue. Since we don’t want gnome-vfs to depend on bonobo I had to remove a bonobo include from the gnome-vfs headers. Its likely that apps that use these functions already include this header, but if they don’t they can just add that include, or define GNOME_VFS_INCLUDE_BONOBO to make gnome-vfs include it. The only application in Gnome that uses these functions is evolution, and it didn’t need any modification to keep building.

7 thoughts on “Continuing adventures of bonobo and gnome-vfs”

  1. Heh, nice stuff, keep on the good work … Gnome got some of those evil dep i will be more than happy to see disapear. Maybe atacking cyclic deps too at some point in the future and make them less evil would be something too.

  2. Almost fine but unfortunately it breaked gnome-python. See bug 346910 on b.g.o

  3. How about eliminating the dependency on the crypto libraries?
    gnome-vfs links to a lot of crypto libraries, which makes
    virtually all gnome applications link to them which is
    wasteful for a lot of them that have no use for crypto…

  4. Uh, doesn’t this break Gnome source compatability? I thought Gnome promised not to do that unless the majoe version number changed. Perhaps GNOME_VFS_INCLUDE_BONOBO should be GNOME_VFS_EXCLUDE_BONOBO nd distributers can turn it off, so drive it down the stack.

Comments are closed.