JHBuild and the Online Desktop

One of the things I’ve been working on over the last few weeks is creating a recommended JHBuild configuration for the online-desktop project. The idea here is to get all of us on the same page as to how they we developing and testing, and to have a straightforward and reliable way that we can recommend to people who want to try the online-desktop out.

We’ve put up detailed instructions on live.gnome.org. Please try them out. Unless you are actively using JHBuild at the moment, I’d suggest moving any existing .jhbuildrc away and starting from scratch rather than trying to adapt. There are a lot of small details, and it’s easier to just follow the steps literally rather than trying to figure out the differences and merge them in.

A couple of observations: one is that it was surprisingly hard to create a JHBuild configuration that worked fully and integrated well with the user’s system. For example, the need to add line like:

os.environ['DBUS_SYSTEM_BUS_ADDRESS'] = 'unix:path=/var/run/dbus/system_bus_socket'

to get the D-BUS library installed by JHBuild to connect to the system bus is far from obvious. I think a lot of these difficulties are there because jhbuild is policy neutral over whether it’s supposed to be as isolated from the system as possible or as integrated. Most people want the integrated version: you don’t want to have to install a separate copy of, say, OpenOffice in your jhbuild directory, do you? But you have to engineer that yourself. I think we could do better here.

Another observation is that I had forgotten just how nice running out of a source build was. I ran into a metacity bug this weekend (#491090), and was able to easily come up with a fix, test it, and immediately start using the fixed version, something that would have far more of a pain with a system install.

Two quirks that I haven’t yet fixed in the online-desktop configuration: 1) trying to GPG sign a message using my system-built Evolution causes a deadlock 2) the JHBuild version of pygtk/pygobject doesn’t get found. (I know why, and could work around it by explicit PYTHONPATH munging, but am hoping to come up with something cleaner.)

Update: I tracked the evolution hang down to a Fedora 7 patch to Evolution that made it incompatible with upstream evolution-data-server. Shouldn’t affect other distributions or Fedora 8. If you’re on Fedora 7 and using Evolution, you’ll need to JHBuild it as well.


  1. Alban
    Posted January 28, 2008 at 4:07 pm | Permalink

    It is possible to isolate D-Bus with environment variables DBUS_*_BUS_ADDRESS. But is it possible with JHBuild to isolate GConf? I mean, not use ~/.gconf for testing purpose, but an alternative path?

  2. Posted April 14, 2008 at 8:48 am | Permalink

    The new jhbuildrc file given in the wiki contains an extra line from the previous version. “addpath(‘PYTHONPATH’, os.path.join(lib_packages, ‘gtk-2.0’))”

  3. Owen
    Posted April 14, 2008 at 4:58 pm | Permalink

    Thanks Sandaruwan. We’ve fixed the wiki now. If you have any more comments or problems, feel free to post them on http://mail.gnome.org/mailman/listinfo/online-desktop-list or jump on the #online-desktop IRC channel on GIMPnet.

%d bloggers like this: