GNOME development environment

Jump to: navigation, search

JHBuild

A very common tool to develop GNOME applications is JHBUILD. This tool helps you to create an independent environment where you can test, modify, build and install different GNOME components without affecting your system installation.

Installation

To install JHBUILD you need to install the following packages:

$ sudo zypper install jhbuild jhbuild-recommended-deps

The jhbuild-recommended-deps package installs most of the dependencies needed to install the default build target.

If you can't find these packages, you will have to add a repository that provides them. For Leap 12, Leap 15.2, Leap 15.3, or Tumbleweed you can add this repository and then execute the command mentioned above.

It is highly recommended to install GNOME devel pattern to install necessary dependencies that JHBUILD might not install:

$ sudo zypper in -t pattern devel_gnome

First building

In order to install all system dependencies of all GNOME modules or just the ones of a concrete GNOME module you can use the next commands:

$ jhbuild sysdeps --install
$ jhbuild sysdeps --install MODULE

Once all dependencies have been installed you can check that the installation is successful executing:

$ jhbuild sanitycheck

If you get no output, that means everything is correct.

And finally, now you can build a GNOME module in this environment we have settled up:

$ jhbuild build MODULE

This command will download the code of the module and its dependencies in ~/jhbuild/checkout/, configure it, build it, and install it in ~/jhbuild/install/.
Go to modulesets to see what modules are available and their dependencies.

Solve dependencies problem

If JHBUILD wasn't able to install all necessary dependencies, you can build it still ignoring these dependencies with:

$ jhbuild build MODULE --nodeps

and install manually the dependencies (devel packages) with zypper.

Update and test

You can modify the source code of any module located at ~/jhbuild/checkout/. To build it with your changes you can execute:

$ jhbuild buildone -n MODULE

The -n option prevents downloading updates so it doesn't conflict with your local changes.
Then, you can test executing:

$ jhbuild run MODULE

See also

External links