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
- II.II. Configuration de JHBuild
- II.III. Prérequis pour la construction
- II.IV. Utilisation de JHBuild
II.I. Installation de JHBuild
JHBuild nécessite un moteur d'exécution Python. Vérifiez qze 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 ... $
Dans le cas où autotools ou gnome-doc-utils ne sont pas installés dans votre environnement, installez JHBuild de la façon suivante :
$ cd jhbuild $ make -f Makefile.plain ... $ make -f Makefile.plain install ... $
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
Le fichier ~/.jhbuildrc emploie la syntaxe Python pour définir les variables de configuration de JHBuild. Un exemple est fourni dans le répertoire jhbuild, sample.jhbuildrc. Copiez ce fichier vers ~/.jhbuildrc et personnalisez-le selon vos besoins.
The sample configuration will make JHBuild build the meta-gnome-desktop module and its dependencies from the gnome-suites-core-3.0 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
-
Une chaîne définissant le préfixe d'installation des modules. Ce répertoire doit être accessible en écriture. La valeur par défaut est '/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 :
-
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.
-
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