The GNOME desktop environment can be a very exciting project to watch development on. Every day there are dozens of new developments and the only time you don't see heavy amounts of commits are because of a release that is pending in the next few days. To do this, you need to checkout sources from CVS, compile them in the right order, and install them. Sometimes you have issues with programs being picky about their prefix or you may not have the right prerequisites. To help make this entire process easier, James Henstridge has put together the jhbuild script.
jhbuild is written in Python and seeks to make building the latest versions of GNOME easy.
jhbuild has the following features:
- Automatic bootstrapping brings your environment up to date so GNOME can be confidently built.
- By specifying a separate prefix, you can have multiple versions of GNOME installed on your system at once.
- A graphical interface makes customizing your jhbuild setup easier, so you don't need to edit the .jhbuildrc file.
- jhbuild can build numerous versions of GNOME whether it be the CVS version or branches of old versions (ie. 2.4, 2.2).
- Syntax highlighting on the console to highlight errors and CVS checkouts.
Downloading and installing jhbuild isn't that hard, just do:
$ mkdir -p ~/cvs/gnome2
$ cd ~/cvs/gnome2
$ cvs -d :pserver:firstname.lastname@example.org:/cvs/gnome login
Logging in to :pserver:email@example.com:/cvs/gnome
$ cvs -d :pserver:firstname.lastname@example.org:/cvs/gnome get jhbuild
When the password prompt comes up, just hit Enter. Copy the sample.jhbuildrc file into your home directory as .jhbuildrc. Edit the file to specify your prefix and moduleset. In the cvs/gnome2/jhbuild directory, do make install. In ~/bin/ you will find a jhbuild script. Use this to run jhbuild bootstrap. Say 'Y' to all these which it recommends. When it's done, do a jhbuild build and you're off to the races.
By default, jhbuild is set to compile and install Mozilla. Mozilla is a huge program and installed on most systems. If you want to remove that or any other dependency, just pass ./jhbuild build the --skip=mozilla,galeon,epiphany argument and that should make jhbuild skip building those three packages.
More information about using jhbuild is available in the README file. The jhbuild website is: http://www.daa.com.au/~james/software/jhbuild/