Premiers pas

Quelques manipulations sont nécessaires pour configurer JHBuild avant de pouvoir compiler des logiciels. Certains logiciels sont nécessaires au fonctionnement de JHBuild, et il est aussi nécessaire d'installer des outils indispensables à l'obtention et à la construction des sources de logiciels.

II.I. Installation de JHBuild

JHBuild nécessite un moteur d'exécution Python. Vérifiez que Python >= 2.3 est installé.

La façon recommandée de télécharger JHBuild est d'utiliser le gestionnaire de versions git. La commande à utiliser est présentée ci-dessous. Il est recommandé d'exécuter cette commande dans un nouveau répertoire où tout le code source sera téléchargé, par exemple ~/checkout/gnome).

$ git clone git://git.gnome.org/jhbuild
...
$

Cela va télécharger JHBuild dans un nouveau dossier nommé jhbuild dans le répertoire actuel. Ensuite, pour le construire et l'installer :

$ cd jhbuild
$ ./autogen.sh
...
$ make
...
$ make install
...
$

If gnome-common, gnome-doc-utils and autotools are available, autogen.sh will configure JHBuild to install via autotools. If gnome-common, gnome-doc-utils and autotools are not available, autogen.sh will configure JHBuild to install via a plain Makefile. To always use the plain Makefile method pass --simple-install to autogen.sh.

Si les étapes ci-dessus se sont déroulées avec succès, un petit script shell sera installé dans ~/.local/bin pour lancer JHBuild. Ajoutez ce chemin dans votre variable PATH :

$ PATH=$PATH:~/.local/bin
$

Pour ajouter ~/.local/bin de façon permanente à la variable PATH, exécutez la commande suivante :

$ echo PATH=$PATH:~/.local/bin >> ~/.bashrc
$

Avant de lancer JHBuild, il est nécessaire de paramétrer le fichier de configuration ~/.jhbuildrc.

II.II. Configuration de JHBuild

The ~/.jhbuildrc file uses Python syntax to set configuration variables for JHBuild. An example is provided with JHBuild, see examples/sample.jhbuildrc. Copy examples/sample.jhbuildrc to ~/.jhbuildrc and customize as required.

The sample configuration will make JHBuild build the meta-gnome-core and meta-gnome-apps-tested modules and dependencies from the gnome-apps-3.4 module set. JHBuild will unpack source trees to ~/checkout/gnome and install all files to subdirectories of /opt/gnome. The two directories must be writable.

Les variables de configuration sont documentées dans Section VI ― Référence du fichier de configuration. En voici quelques-unes parmi les plus utilisées :

repos

Un dictionnaire pouvant être utilisé pour indiquer un emplacement de dépôt alternatif pour un dépôt spécifique. Cette variable de configuration est utile pour les développeurs de modules. Par défaut, JHBuild extrait le code dans les dépôts par un accès anonyme. Les clés du dictionnaire sont des noms de dépôts courts et les valeurs sont des chaînes d'accès à des emplacements de dépôts alternatifs. Par exemple :

repos['git.gnome.org'] = 'ssh://nom_utilisateur@git.gnome.org/git/'
moduleset

Une chaîne ou une liste de chaînes indiquant le ou les noms des jeux de modules à utiliser. Cela peut être le nom de fichier d'un jeu de modules inclus dans JHBuild (sans chemin ni extension) ou un URL HTTP complet d'un jeu de modules géré en externe. Les jeux de modules ayant un URL HTTP sont placés dans un cache local. Si le nom d'un module figure dans plus d'un jeu de modules, le dernier jeu de modules dans la liste est prioritaire. Les jeux de modules fournis avec JHBuild sont mis à jour au gré de la progression du développement de GNOME.

modules

Une liste de chaînes indiquant les modules à construire. La liste des modules réellement construits est étendue récursivement afin d'inclure toutes les dépendances, sauf si la commande buildone est utilisée. La valeur par défaut est ['meta-gnome-desktop'].

checkoutroot

Une chaîne indiquant le répertoire dans lequel décompresser les arborescences source. À moins que buildroot ne soit défini, la construction s'opère également dans ce répertoire. La valeur par défaut est ~/checkout/gnome.

prefix

A string specifying the prefix to install modules to. prefix must be an absolute path. This directory must be writable. Defaults to '/opt/gnome'.

autogenargs

Une chaîne contenant des paramètres passés au script autogen.sh de tous les modules. Peut être surchargée par des modules précis en utilisant le dictionnaire module_autogenargs.

makeargs

Une chaîne énumérant des paramètres supplémentaires à passer à make. La valeur par défaut est ''.

II.III. Prérequis pour la construction

Avant de pouvoir construire un module, il faut avoir installé certains outils de construction. Les plus courants sont les autotools GNU (autoconf, automake, libtool et gettext), la chaîne d'outils GNU (binutils, gcc, g++), pkg-config et Python, selon les modules à construire.

JHBuild peut vérifier si ces outils sont installés sur votre système à l'aide de la commande sanitycheck :

$ jhbuild sanitycheck

Si cette commande affiche un message, il est possible de corriger les erreurs de deux manières :

  1. Installez le paquet requis à partir du dépôt de votre distribution. Une liste de noms de paquets de différentes distributions est disponible sur le wiki de GNOME. Exécutez à nouveau la commande sanitycheck après avoir installé les paquets de la distribution pour s'assurer que les outils requis sont maintenant présents.

  2. Lancez la commande bootstrap pour télécharger, compiler et installer les prérequis de construction :

    $ jhbuild bootstrap

    Lorsque l'opération est terminée, lancez la commande sanitycheck pour vérifier que les outils requis sont présents.

    La commande bootstrap ne construit pas toutes les dépendances des paquets requis par les outils de construction. Si votre distribution ne fournit pas ces paquets, ils devront alors être construits en dehors de l'environnement JHBuild.

    Les dépendances des outils de construction comprennent notamment m4, perl et un compilateur C (par exemple gcc).

II.IV. Utilisation de JHBuild

Après que tout a été configuré, JHBuild peut se mettre à construire des logiciels. Pour construire tous les modules indiqués dans le fichier ~/.jhbuildrc, exécutez la commande suivante :

$ jhbuild build

JHBuild va télécharger, configurer, compiler et installer chaque module. Si une erreur se produit à n'importe quelle étape, JHBuild présente un menu pour savoir ce qu'il doit faire. Les choix possibles comprennent le passage dans un shell pour corriger l'erreur, une nouvelle passe de construction à différentes étapes, l'abandon de la construction du module ou la non prise en compte de l'erreur en continuant le processus.

L'abandon d'un module provoque l'échec de construction de tout module dépendant de ce module.

Voici un exemple de menu qui est affiché :

  [1] Relancer l'étape construction
  [2] Ignorer l'erreur et continuer à l'étape installation
  [3] Abandonner ce module
  [4] Démarrer un shell
  [5] Recharger la configuration
  [6] Aller à l'étape « effacer le répertoire et recommencer »
  [7] Aller à l'étape « configure »
  [8] Aller à l'étape « clean »
  [9] Aller à l'étape « distclean »
choix : 

Il est aussi possible de construire un jeu différent de modules (et leurs dépendances) en passant les noms des modules en paramètre de la commande build. Par exemple, pour construire gtk+ :

$ jhbuild build gtk+

Si JHBuild est interrompu en cours de construction d'un module, quelle qu'en soit la raison, il est possible de reprendre la construction à partir d'un module précis en utilisant l'option --start-at :

$ jhbuild build --start-at=pango

Pour construire un ou plusieurs modules en ignorant leurs dépendances, JHBuild fournit la commande buildone. Pour que cette commande se déroule correctement, toutes les dépendances du module indiqué doivent être préalablement construites et installées, ou fournies par des paquets de votre distribution.

$ jhbuild buildone gtk+

Pour obtenir une liste ordonnancée des modules et des dépendances que JHBuild va construire, utilisez la commande list :

$ jhbuild list

Pour obtenir des informations sur un module particulier, utilisez la commande info :

$ jhbuild info gtk+

Pour télécharger ou mettre à jour toutes les sources de logiciels sans rien compiler, utilisez la commande update. Cette commande donne l'occasion de modifier les sources avant la compilation et peut se révéler utile quand la disponibilité de bande passante Internet est instable.

$ jhbuild update

Plus tard, JHBuild peut tout construire sans télécharger ni mettre à jour les sources :

$ jhbuild build --no-network

Pour lancer une commande précise dans le même environnement utilisé par JHBuild, utilisez la commande run :

$ jhbuild run commande

Pour lancer un shell avec l'environnement utilisé par JHBuild, utilisez la commande shell :

$ jhbuild shell