[Java-gnome-developer] Getting started with jhbuild
Brought to you by:
afcowie
From: Jeff M. <ku...@gm...> - 2005-01-15 21:27:20
|
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 |