Appendix G. Working with CVS

## Appendix G. Working with CVS

If you are interested in helping out with the development of gtkmm, or fixing a bug in gtkmm, you'll probably need to build the development version of gtkmm. You don't want to install a development version over your stable version, you want to install it alongside your existing gtkmm installation.

The easiest way to do this is using jhbuild. jhbuild is a program that makes building GNOME software much easier by calculating dependencies and building things in the correct order. This section will give a brief explanation of how to set up jhbuild to build and install gtkmm from CVS. For up-to-date information on jhbuild, please refer to the jhbuild website. If you need assistance using jhbuild, you should ask for help on the gnome-love mailing list.

| Note
Note that to build gtkmm from CVS, you'll need to build all of its dependencies from CVS as well. jhbuild makes this easier than it would normally be, but it will take quite a while to build and install them all.

## Setting up jhbuild

To set up jhbuild, follow the basic installation instructions from the jhbuild manual. After you've gotten jhbuild installed, you should copy the sample jhbuild configuration file into your home directory by executing the following command from the jhbuild directory: $ cp sample.jhbuildrc ~/.jhbuildrc

The gtkmm module is defined in the GNOME moduleset (i.e. `gnome-2.xx.modules`, so edit your `.jhbuildrc` file and set your moduleset setting to the latest version of GNOME like so:

    moduleset = 'gnome-2.16'

After setting the correct moduleset, you need to tell jhbuild which module or modules to build. To build gtkmm and all of its dependencies, set `modules` like so:

    modules = [ 'gtkmm', ]

You can build all GNOME C++ modules by setting the `modules` variable to the meta-package named `meta-gnome-c++` or build all of the core GNOME modules with `meta-gnome-desktop`. The `modules` variable specifies which modules that will be built when you don't explicitly specify anything on the command line. You can always build a different moduleset later by specifying it on the commandline (e.g. jhbuild build gtkmm).

Note that the GNOME moduleset is most likely set up to build the branch of gtkmm that will be included with that GNOME release, so it may not build gtkmm HEAD by default. The branch name is specified in the `revision` attribute of the `cvsmodule` element. In order to build the HEAD version of gtkmm, edit your moduleset file and delete the `revision` attribute.

| Setting a prefix
By default, jhbuild's configuration is configured to install all software built with jhbuild under the `/opt/gnome2` prefix. You can choose a different prefix, but it is recommended that you keep this prefix different from other software that you've installed (don't set it to `/usr`!) This way you can keep using your stable versions without conflict and use the CVS versions when you want to. You may want to choose a prefix that your user account has write access to so that you don't need to run jhbuild as `root`.

Appendix F. Drawing With GDK |  | Installing and Using the CVS version of gtkmm