Référence des commandes

JHBuild utilise une syntaxe de ligne de commande similaire aux outils du style CVS :

jhbuild [global-options] command [command-arguments]

Les options globales de JHBuild sont :

-f, --file config

Use an alternative configuration file instead of the default ~/.config/jhbuildrc.

-m, --moduleset moduleset

Utilise un autre jeu de modules que celui qui est indiqué dans le fichier de configuration. Cette option peut être un chemin relatif si le jeu de modules se trouve dans le dossier des jeux de modules de JHBuild, ou un chemin absolu s'il se trouve ailleurs.

--no-interact

N'interroge jamais l'utilisateur quant à un choix à faire. Cette option est utile pour effectuer une construction sans intervention humaine, afin de s'assurer que la construction ne soit pas interrompue.

--exit-on-error

Exit immediately if a module fails to build. This option is primarily useful in noninteractive mode, in order to ensure jhbuild does not continue to build any additional modules.

--conditions

Modify the condition flags to be different than those determined on the basis of the OS and those specified in jhbuildrc. Modifications are specified like -wayland or +docs in order to remove or add conditions. Multiple modifications can be separated by a comma like --conditions=+docs,-wayland or you can split them across multiple --conditions arguments.

Additionally, JHBuild checks the presence, and value, of the following environment variables:

JHBUILD_RUN_AS_ROOT

By default, JHBuild does not run when using the root user, to avoid destructive operations that may affect the whole system. In certain cases, though, it's acceptable to run JHBuild as root; for instance, inside a container, or in a continuous integration environment. Exporting the JHBUILD_RUN_AS_ROOT will disable the user id check at startup.

Les options particulières à certaines commandes sont énumérées ci-dessous.

IV.I. autobuild

La commande autobuild construit automatiquement les modules indiqués dans le fichier de configuration, puis envoie les résultats vers JHAutobuild.

jhbuild autobuild [--autogen] [--clean] [--distcheck] [--skip=module...] [--start-at=module] [--report-url=reporturl] [--verbose]

Les options --autogen, --clean, --distcheck, skip et --start-at sont traitées de la même manière que dans la commande build.

--report-url=url-de-rapport, -r url-de-rapport

Cette option indique l'URL de JhAutobuild où envoyer le rapport.

--verbose, -v

Si indiquée, cette option produit des messages de JHBuild plus verbeux.

IV.II. bootstrap

The bootstrap command installs a set of build utilities. The build utilities include autoconf, automake and similar utilities. The recommended method to install the build utilities is via your distribution's package management system. The bootstrap should only be used if the build utilities are not provided by your distribution's package management system, for example on Mac OS.

jhbuild bootstrap

La commande bootstrap construit les modules avec la même méthode que la commande build, mais en utilisant le jeu de modules bootstrap.modules.

Consultez la documentation de la commande build pour connaître les options disponibles.

IV.III. build

La commande build construit un ou plusieurs paquets ainsi que leurs dépendances.

jhbuild build [--autogen] [--clean] [--check] [--dist] [--distcheck] [--distclean] [--ignore-suggests] [--no-network] [--skip=module...] [--start-at=module] [--tags=tags] [-D date] [--no-xvfb] [--try-checkout] [--no-poison] [--force] [--build-optional-modules] [--min-age=time] [--nodeps] [module...]

Si aucun nom de module n'est indiqué dans la ligne de commande, c'est la liste des modules du fichier de configuration qui est utilisée.

-a, --autogen

Always run autogen.sh before building modules.

-c, --clean

Exécute make clean avant de construire les modules.

--check

Exécute make check après la construction des modules.

-d, --dist

Exécute make dist après la construction des modules.

--distcheck

Exécute make distcheck après la construction des modules.

--distclean

For git modules, run git clean -dfx before building modules. For other modules, run make distclean before building modules.

This option will delete any uncommitted changes.

--ignore-suggests

Ne compile pas les dépendances faibles.

-n, --no-network

N'accède pas au réseau lors de la construction des modules. Cette option évite les étapes de téléchargement ou de mise à jour lors des constructions. Si un module ne peut pas être construit sans accès réseau, sa construction échouera.

-s, --skip=module,...

Ne compile pas les modules de la liste. Utilisé pour éviter la construction de dépendances spécifiques.

--tags=étiquette,...

Ignore les modules qui ne correspondent pas à étiquette. Une étiquette correspondant au nom du jeu de modules conteneur est automatiquement attribuée à chaque module.

-t, --start-at=module

Commence par le module indiqué plutôt qu'au début de la liste des dépendances. Cette option est utile quand la construction précédente a échoué.

-D date

Si le système de gestion de version sous-jacent le prend en charge, met à jour l'arborescence source selon son état à la date indiquée, avant de commencer la construction. La date doit être indiquée au format ISO, par exemple "2009-09-18 02:32Z".

-x, --no-xvfb

Effectue les tests graphiques avec le serveur X réel au lieu d'utiliser une simulation Xvfb.

-C, --try-checkout

Si la construction échoue et que le système de gestion de version le prend en charge, force une extraction et exécute autogen.sh avant de recommencer la construction.

-N, --no-poison

Si l'une ou plusieurs des dépendances du module échouent, cette option force JHBuild à essayer tout de même de construire le module.

-f, --force

Construit les modules même si la stratégie habituelle indique que ce n'est pas nécessaire.

--build-optional-modules

Certains modules énumérés comme dépendances facultatives ne sont pas absolument nécessaires pour construire le module. Cette option force JHBuild à construire aussi les dépendances facultatives.

--min-age=temps

Ignore les modules installés plus récemment que l'intervalle de temps donné. Le format de la chaîne temps est un nombre suivi d'une unité. Les unités reconnues sont : secondes (s), minutes (m), heures (h) et jours (d). Par exemple, --min-age=2h ignore les modules construits il y a moins de deux heures.

--nodeps

Ignore missing system dependencies. To ignore a single system dependency add the module to skip.

IV.IV. make

The make command is for actively developing on a particular module. It requires the current directory be a source checkout, and does the equivalent of buildone -nf $(basename $(pwd)).

jhbuild make [--clean] [--check] [--distcheck] [--quiet]

The options are the same as those available for the buildone command.

IV.V. buildone

La commande buildone est semblable à build, mais elle ne construit pas les dépendances du module. Elle est utile pour reconstruire un ou plusieurs modules.

jhbuild buildone [--autogen] [--clean] [--check] [--distcheck] [--distclean] [--no-network] [-D date] [--no-xvfb] [--force] [--min-age=time] [--nodeps] module...

The --autogen, --check, --clean, -d, --distcheck, --distclean, --no-network, -D, -x and --nodeps options are processed as per the build command.

Cette commande nécessite au minimum un module dans la ligne de commande.

IV.VI. checkbranches

La commande checkbranches vérifie si les branches des modules sont définies correctement dans le gestionnaire de version et si les branches sont cohérentes avec le jeu de modules.

jhbuild checkbranches [--branch=branch...]
--branch=branch, -b branch

La branche à vérifier

$ jhbuild -m gnome-2.20 checkbranches
libgnomecanvas is missing branch definition for gnome-2-20
$

IV.VII. clean

La commande clean nettoie les répertoires de compilation d'un ou de plusieurs modules.

jhbuild clean [--skip=module...] [--start-at=module]

Si aucun nom de module n'est indiqué dans la ligne de commande, c'est la liste des modules du fichier de configuration qui est utilisée.

Consultez la documentation de la commande build pour une description des options disponibles.

IV.VIII. dot

La commande dot génère un fichier décrivant le graphe directionnel formé par les dépendances dans un jeu de modules. Ce fichier peut ensuite être traité par le logiciel GraphViz pour produire un diagramme.

jhbuild dot [--soft-deps] [--clusters] [module...]

Si aucun nom de module n'est indiqué dans la ligne de commande, c'est la liste des modules du fichier de configuration qui est utilisée.

L'option --soft-deps ajoute des lignes pointillées depuis les modules vers leurs dépendances faibles. L'option --clusters groupe les modules selon les métamodules.

La sortie de la commande dot peut être redirigée vers l'utilitaire dot pour générer un fichier PostScript :

$ jhbuild dot modules | dot -Tps > dependencies.ps

Ou une image PNG :

$ jhbuild dot modules | dot -Tpng > dependencies.png
Figure 1 Exemple de sortie dot de JHBuild

IV.IX. gui

La commande gui lance une interface graphique de JHBuild qui permet de sélectionner des modules à construire et de modifier certaines options.

jhbuild gui

L'interface graphique est basée sur GTK, ce qui requiert des bibliothèques supplémentaires.

IV.X. info

La commande info affiche des informations sur un ou plusieurs modules.

jhbuild info [--installed] [module...]

Cette commande affiche le nom du module, son type, ses dépendances, les paquets qui en dépendent, le répertoire source et la date de sa dernière installation avec JHBuild. Le cas échéant, elle affiche également certaines informations spécifiques au type de module, telles que le dépôt CVS ou l'URL de téléchargement.

Si aucun module n'est précisé dans la commande, des informations sont affichées au sujet de tous les modules définis dans le jeu de modules.

If the --installed option is specified, the output will be filtered to include only installed packages. This resulting output only contains modules that were actually built and installed by jhbuild. The output does not include system dependencies.

If the --installed option is specified together with one or more module names, then only the installed modules (not including system dependencies) are printed out. If at least one module is not installed, then the command will exit with a return value of 1.

IV.XI. list

La commande list affiche la liste complète des modules que la commande build construirait.

jhbuild list [-a] [-r] [-s] [--start-at=module] [--tags=tags] [--ignore-suggests] [--list-optional-modules] [module...]

Si aucun nom de module n'est indiqué dans la ligne de commande, c'est la liste des modules du fichier de configuration qui est utilisée.

Les options --skip, --start-at, --tags et --ignore-suggests sont traitées de la même manière que pour la commande build.

-a, --all-modules

Énumère tous les modules du jeu de modules, sans tenir compte des dépendances de construction.

-r, --show-revision

Si un module est défini par une de ses branches, affiche le nom de la branche avec le nom de module.

--list-optional-modules

Cette option force JHBuild à énumérer les dépendances facultatives.

IV.XII. rdepends

La commande rdepends affiche les dépendances inverses d'un module.

jhbuild rdepends [module]
--dependencies

Affiche le chemin de dépendance à la suite des modules.

--direct

Limite l'affichage aux modules dépendant directement du module indiqué.

IV.XIII. run

La commande run exécute la commande indiquée dans le même environnement que JHBuild utilise lors de la construction de modules.

jhbuild run [--in-builddir] [--in-checkoutdir] program [argument...]

En cas d'utilisation de JHBuild pour construire GNOME, cette commande est utile dans les scripts de démarrage de X.

--in-builddir=module

Exécute la commande dans le répertoire de construction du module indiqué.

--in-checkoutdir=module

Exécute la commande dans le répertoire source du module indiqué.

IV.XIV. sanitycheck

La commande sanitycheck effectue un certain nombre de contrôles pour vérifier que l'environnement de construction est correct.

jhbuild sanitycheck

Ces contrôles vérifient notamment que :

  • les préfixes d'extraction et d'installation sont accessibles en écriture ;

  • les outils de construction indispensables sont installés ;

  • certaines macros couramment utilisées sont disponibles dans les chemins de recherche des commandes aclocal associées aux différentes versions de automake ;

  • le catalogue XML contient les DTD et feuilles de style DocBook.

IV.XV. shell

La commande shell lance un shell utilisateur dans le même environnement que JHBuild lorsqu'il construit des modules.

jhbuild shell

Cette commande est équivalente à ceci :

$ jhbuild run $SHELL

La variable d'environnement UNDER_JHBUILD est définie à « true » (vrai) lorsque ce shell est actif. Vous pouvez utiliser la présence de cette variable pour personnaliser votre invite de commande afin d'indiquer que vous êtes dans un shell contrôlé par JHBuild. Par exemple, il est possible d'indiquer cela dans votre .bashrc :

	if [ -n "$UNDER_JHBUILD" ]; then
	    PS1="[jhbuild] $PS1"
	fi
      

En conséquence, vous verrez apparaître la séquence [jhbuild] au début de votre invite de commande habituelle, ce qui rend plus évident la distinction entre un shell normal et un shell contrôlé par JHBuild.

IV.XVI. sysdeps

The sysdeps command displays:

  1. a list of installed system packages which will be used during the build. JHBuild will not build these modules and opt to use the system package instead.

  2. a list of required packages. To begin a build the packages must be provided by your system.

  3. a list of optional packages. The corresponding system package was not found or too old. JHBuild will build the module. Optional packages will not be displayed if partial_build is False.

jhbuild sysdeps [--install]
--install

This option installs system packages which are dependencies of the moduleset. The installation method depends on your distribution. System packages are installed using PackageKit, if available. For distributions using APT such as Debian and Ubuntu, this option requires apt-file to be installed.

Exemple 1 Exemple de sysdeps
$ jhbuild sysdeps
System installed packages which are new enough:
  speex (speex.pc required=1.2rc1, installed=1.2rc1)
  lcms2 (lcms2.pc required=2.2, installed=2.2)
...
Required packages:
  System installed packages which are too old:
    (none)
  No matching system package installed:
    zlib (zlib.pc required=1.2)
Optional packages: (JHBuild will build the missing packages)
  System installed packages which are too old:
    WebKit (webkitgtk-3.0.pc required=1.5.1, installed=1.4.0)
    ...
  No matching system package installed:
    pulseaudio (libpulse.pc required=2.0)
    ...

IV.XVII. tinderbox

La commande tinderbox est semblable à la commande build, mais écrit toutes les sorties de terminal dans des fichiers HTML prêts à être publiés sur un site Web. Elle permet de mettre en place des systèmes tels que Mozilla Tinderbox ou Debian Buildd.

jhbuild tinderbox [--autogen] [--clean] [--distclean] [--no-network] [--output=directory] [--skip=module...] [--start-at=module] [-D date] [-C] [-N] [-f] [--nodeps] [module...]

The --autogen, --clean, --distclean, --no-network, --skip, --start-at, -D, -C, -N, -f and --nodeps options are processed as per the build command.

-o, --output=répertoire

The directory to write the HTML files. JHBuild will create an index (index.html) and a HTML file for each module.

IV.XVIII. uninstall

La commande uninstall désinstalle un ou plusieurs modules.

jhbuild uninstall module...

IV.XIX. update

La commande update est semblable à build, mais n'effectue que les étapes de téléchargement et de mise à jour des modules, sans les construire.

jhbuild update [--skip=module...] [--start-at=module] [--tags=tags] [--ignore-suggests] [-D date] [module...]

Les options --skip, --start-at, --tags, --ignore-suggests et -D sont traitées de la même manière que pour la commande build.

IV.XX. updateone

La commande updateone est semblable à update, mais elle ne met pas à jour les modules dépendants. Elle est utile pour mettre à jour un ou plusieurs modules.

jhbuild updateone [-D date] module...

L'option -D est traitée de la même manière que pour build.

Cette commande nécessite au minimum un module dans la ligne de commande.