The ~/.jhbuildrc file uses standard Python syntax. The file is run, and the resulting variables defined in the namespace are used to control how JHBuild acts. A set of default values are inserted into the namespace before running the user's configuration file.
If set to True, then always run autogen.sh before make, even if a makefile exists. This is equivalent to passing --always-autogen option to JHBuild. Defaults to False.
A string containing arguments passed to the autogen.sh script of all modules. Can be overriden for particular modules using the module_autogenargs dictionary.
A dictionary that can be used to override the branch used for a particular module. This is useful if you are making some changes on a branch of a module and want JHBuild to build that branch instead of the one listed in the module set.
A printf style formatting pattern used to generate build directory names. This is only used when using separate source and build trees. The %s in the format string will be replaced with the source directory name. Defaults to '%s'.
A string giving the parent directory to place build trees. Defaults to None, which causes builds to be performed within the source trees.
A string specifying which buildscript to use. This should probably be left as the default, terminal. In particular, do not set to gtk.
A string specifying which modules to build. The three possible options are all, to build all modules requested, updated to build only modules which have changed, or updated-deps to build modules which have changed or which have dependencies which have changed. Defaults to all.
A string giving the directory to unpack source trees to. Unless buildroot is set, builds will occur in this directory too. Defaults to ~/cvs/gnome2.
A string specifying how the checkout is done for directories in version control. Defaults to update. This can be set per module using module_checkout_mode.
A string specifying the directory to copy to, if the copy checkout mode is in use. Defaults to the checkout directory.
A dictionary that can be used to change the CVS roots used to check out source code. If you have a CVS account for a particular project, you can set the associated key to use that account rather than the anonymous account. For example, you might want to set 'gnome.org' to ':ext:username@cvs.gnome.org:/cvs/gnome'.
A string specifying which program to use for CVS support. Defaults to cvs.
A boolean value specifying whether to interact with the user. Setting this value to False is equivalent to passing the --no-interact option. Defaults to True
A string listing additional arguments to be passed to make. Defaults to ''.
A boolean value specifying whether to run make check after make. Defaults to False.
A boolean value specifying whether failures when running make check should be advisory only and not cause a build failure. Defaults to False.
A boolean value specifying whether to run make clean before make. Defaults to False.
A boolean value specifying whether to run make dist after make. Defaults to False. This setting is equivalent to passing the --dist option.
A boolean value specifying whether to run make distcheck after make. Defaults to False. This setting is equivalent to passing the --distcheck option.
A dictionary mapping module names to strings giving arguments to be passed to autogen.sh. The setting in module_autogenargs is used instead of the global autogenargs setting. If a particular module isn't listed in the dictionary, the global autogenargs will be used instead.
A dictionary specifying which checkout mode to use for modules. This overrides the global checkout_mode setting.
A dictionary mapping module names to strings giving arguments to be passed to make. The setting in module_makeargs replaces the value of makeargs. If a particular module isn't listed in the dictionary, the global makeargs will be used instead.
A dictionary mapping module names to dictionaries with extra environment variables to pass when executing commands for the module.
A list of module names to build. This list will be expanded using the dependency information found in the module set. Defaults to [ 'meta-gnome-desktop' ].
A string giving the name of the module set to use. This can either be the filename of a moduleset included with JHBuild (excluding the path and extension), or a full HTTP URL to refer to an externally managed module set. Currently defaults to 'gnome-2.22', but is usually updated as GNOME development progresses.
A boolean value which, if set to True causes JHBuild to not actually modules, but just download and unpack the sources. The default vale is False.
A boolean value specifying whether to access the network or not. This affects checking out or updating CVS modules, downloading tarballs and updating module sets. Setting this to True is equivalent to passing the --no-network option to JHBuild. Defaults to False.
A boolean value specifying whether to emit notifications using the notification daemon. If set to True, notifications are not emitted. Defaults to False.
A boolean value which, if set to True causes JHBuild to try to build modules even if one or more of the module's dependancies failed to build. This option is equivalent to the --no-poison argument. The default value is False.
A boolean value which, if set to True causes JHBuild to run any graphical tests on the real X server, rather than using Xvfb. This option is equivalent to passing --no-xvfb. The default value is False
A string giving the prefix to install modules to. Defaults to '/opt/gnome2'.
A boolean value that can be used to disable pretty formatting of subprocess output. Currently there is only support for pretty printing CVS output. You probably only want to disable this if the pretty printing causes problems. Defaults to True.
A boolean value that can be used to display a progress bar when running in quiet mode (see below). Defaults to True.
A boolean value that can be used to disable output of running commands. Defaults to False.
By default, JHBuild will check out code from repositories using an anonymous repository location. This dictionary is used to tell JHBuild to use an alternative repository location for a particular repository (a developer would probably want to do this). This variable is a dictionary where the keys are short repository names (for example, svn.gnome.org is used for the GNOME SVN repository), and the values are the alternative repository location strings.
A list of modules to skip when expanding the list of modules to build. This is similar to the --skip option (in fact, the --skip option extends this list). This list is empty by default.
If set, JHBuild will attempt to check out modules as they existed at the given date. The date should be given in the form 'yyyy-mm-dd'. Defaults to None.
Similar to cvsroots but for Subversion repositories.
A string specifying which program to use for subversion support. This can be svn or bzr. Defaults to svn.
If set, tarballs will be downloaded to this directory instead of checkoutroot. This is useful if you have multiple JHBuild environments or regularly clear out your checkoutroot and want to reduce bandwidth usage.
A string giving the directory to store jhbuild tinderbox output. This string can be overridden by the --output option. Defaults to None, so either the command line option must be used or this variable must be set in the configuration file.
A boolean option which if set to True, causes JHBuild to try checking out a newer version of a module from version control and running autogen.sh, if the module fails to build. This option is equivalent to passing --try-checkout.
A boolean value that specifies whether to install libraries to lib64 directories. If this is set, --libdir=\${exec_prefix}/lib64 will be passed to configure. Defaults to True if running on x86_64, ppc64 or s390x Linux, and False on other systems.
A string listing arguments to pass to Xvfb if running graphical tests using it.
In addition to the above variables, there are some other things that can be set in the configuration file:
This is dictionary represents the environment of the process (which also gets passed on to processes that JHBuild spawns).
Some environment variables you may want to set include CFLAGS, INSTALL (to use the more efficient install-check program included with JHBuild) and LDFLAGS.
This will add a directory to a PATH-style environment variable. It will correctly handle the case when the environment variable is initially empty (having a stray colon at the beginning or end of an environment variable can have unexpected consequences).
This function has special handling for the ACLOCAL_FLAGS environment variable, which expects paths to be listed in the form -I pathname.
After processing the configuration file, JHBuild will alter some paths based on variables such as prefix (eg. adding $prefix/bin to the start of PATH).
The prependpath function works like addpath, except that the environment variable is modified after JHBuild has made its changes to the environment.