I am frequently asked questions on irc or this list about
building a gnome environment using jhbuild. This is
necessary if you wish to use the java-gnome cvs HEAD
as we track the gnome cvs HEAD. What follows is an
explanation of the way I use jhbuild to maintain an
environment for java-gnome dev elopment.
Jhbuild is a tool that will grab libraries and applications
either from cvs or released soruce tars and build them
in the correct order based upon their dependencies.
What is built is driven by a file named .jhbuildrc located
in your home directory (I'll call it the config file here).
I have attached my current file here so you can see
my settings. I will talk about a few of the settings in
the next paragraphs.
The first and most important setting in the config
file is the moduleset. This tells jhbuild what version
of each modules to build. Currently I am using
'gnome-2.10' since I want the development version
of the modules.
The next setting to discuss is 'modules'. In the
gnome world there is a new release every six months.
As you might expect, the environment is much more
stable later in that six month cycle than it is early in
the cycle. I switch my 'modules' setting about 3 months
into the cycle. During the first three months I use
['meta-gnome-devel-platform', 'meta-gnome-devel-tools'].
Sometimes I remove the devel-tools if they seem to be
unstable. This provides all of the core libraries that
I need to develop java-gnome. The last three months
of the cycle I change my 'modules' setting to
['meta-gnome-desktop']. This builds the entire desktop
and many related applications. During the last two
months I sometimes even use this desktop.
'skip' is a very nice feature. I almost always skip
mozilla since it takes so long to compile. I also include
'evolution' and other applications that take a while to
compile'
'prefix' tells jhbuild where to install the newly built gnome.
'checkoutroot' tells jhbuild where to checkout and build
the applications. I create a directory in my home directory
called gnome and a directory called cvs under gnome. I
use these directories for prefix and checkoutroot.
'autogenargs' tells jhbuild what parameters to pass to
autogen as it builds the modules. If you want to pass
specific parameters to one package you can use
'module_autogenargs'.
When the compilation or installation of a module fails
there are a couple of things you can do. Quite often
you can tell jhbuild to 'go to stage force_checkout' and
it will build correctly. Another problem I have seen is
when there is a conflict with a .cvsignore file. In these
cases I usually drop to a shell and delete all of the contents
of the directory including the .cvsignore file. When I
exit the shell and jhbuild starts again it checks out the
files and continues with the build. If all else fails you
can google. There are many developers that use jhbuild
and they might have already discovered and fixed
the issue you are seeing.
Since you are going against cvs there will be some times
when the code will not compile. Look at the module and
perhaps you can just skip it. Sometimes you cannot complete
the process and must stop jhbuild. The majority of the time
it will complete successfully.
--
Jeffrey Morgan
"The highest reward for a man's toil is not
what he gets for it, but what he becomes by it"
- Jon Ruskin
|