You're viewing a single post. I have much more to say! The main blog page is a good starting point.

D-Bus, HAL and g-v-m in JHBuild

Most people using jhbuild to run the latest bleeding edge GNOME development versions simply skip the D-Bus and HAL stuff because they won’t work by default.

Having exec jhbuild run gnome-session in ~/.xinitrc is usually enough to run a jhbuilt GNOME. The problem with D-Bus and HAL is that these daemons also come with your distribution and are likely to be already running when the GDM greeter shows up. My solution is to put the following lines in my ~/.xinitrc:

sudo /etc/init.d/dbus-1 stop
jhbuild run sudo /opt/gnome/bin/dbus-daemon --system
jhbuild run sudo /opt/gnome/sbin/hald --daemon=yes --retain-privileges
jhbuild run dbus-launch gnome-session
sudo /etc/init.d/dbus-1 start

I’m running Debian GNU/Linux but the changes for other distributions should be trivial. Don’t forget to point to the correct paths either!

Because you need to shutdown system daemons, you will need root privileges which I obtain through sudo. Note that you need to configure sudo so that it won’t ask for a password. Run visudo as root and enter (don’t forget to change your username and the paths):

uws ALL=NOPASSWD: /opt/gnome/sbin/hald, /opt/gnome/bin/dbus-daemon, /etc/init.d/dbus-1

That’s all! Now you can happily insert a blank cd into your cd-writer and enjoy the popup asking you what to do, thanks to gnome-volume-manager. Oh, and don’t forget to file bugs if you find them!

Update: If you’re on a Debian system you should ./configure hal to use the correct user. Add these lines to your ~/.jhbuildrc:

module_autogenargs['hal'] = '--with-hal-user=hal --with-hal-group=hal'

Update 2: Symlink $prefix/var/run/dbus to your system-wide dbus directory to prevent some errors:

cd /opt/gnome/var/run
rmdir dbus
ln -s /var/run/dbus

Update 3: Starting with the dbus 0.6 packages in Debian, /etc/init.d/dbus-1 is called /etc/init.d/dbus. Change the ~/.xinitrc script above and remove the -1 parts if you want this setup to work with newer dbus versions.