Provided by: debhelper_11.1.6ubuntu2_all 

NOM
dh - Automate de commandes debhelper
SYNOPSIS
dh suite [--with rajout[,rajout ...]] [--list] [options_de_debhelper]
DESCRIPTION
dh exécute une suite de commandes debhelper. Les suites acceptées correspondent aux blocs d'un fichier
debian/rules : build-arch, build-indep, build, clean, install-indep, install-arch, install, binary-arch,
binary-indep et binary.
CIBLES DE RÉÉCRITURE
Un fichier debian/rules utilisant dh peut réécrire la commande exécutée à n'importe quelle étape d'une
séquence, en définissant une cible de réécriture.
Pour réécrire la commande dh_commande, ajoutez une cible appelée override_dh_commande au fichier rules.
dh exécutera ce bloc au lieu d'exécuter dh_commande, comme il l'aurait fait sinon. La commande exécutée
peut être la même commande avec des options supplémentaires ou une commande entièrement différente.
Consultez les exemples ci-dessous.
Les cibles de réécriture peuvent aussi être définies pour n'être exécutées que lors de la construction de
paquets dépendants ou indépendants de l'architecture. Utilisez des cibles avec des noms comme
override_dh_commande-arch et override_dh_commande-indep. Nota : pour utiliser cette possibilité, il est
nécessaire d'ajouter une dépendance de construction (Build-Depends) sur la version 8.9.7 ou supérieure de
debhelper.
OPTIONS
--with rajout[,rajout ...]
Ajoute les commandes debhelper indiquées par les rajouts au bon endroit dans la séquence exécutée.
Cette option peut être présente plusieurs fois ou bien plusieurs rajouts peuvent être indiqués en les
séparant par des virgules. Cela est utile lorsqu'un paquet tiers fournit des commandes debhelper.
Consulter le fichier PROGRAMMING pour obtenir des informations à propos de l'interface de ces
rajouts.
--without rajout
L'inverse de --with, désactive le rajout donné. Cette option peut être présente plusieurs fois ou
bien plusieurs rajouts peuvent être indiqués en les séparant par des virgules.
--list, -l
Liste tous les rajouts disponibles.
Lorsqu'il est appelé uniquement avec cette option, dh peut être invoqué depuis n'importe quel
répertoire (c'est-à-dire qu'il ne nécessite aucun accès à des fichiers d'un paquet source).
--no-act
Affiche les commandes qui seraient utilisées pour une séquence donnée, sans les exécuter.
Veuillez remarquer que dh élimine les commandes en cours lorsqu'il sait qu'elles ne font rien. Avec
l'option --no-act, la liste complète des commandes dans une séquence est affichée.
Les autres options fournies à dh sont passées en paramètre à chaque commande exécutée. Cela est utile
tant pour les options comme -v, -X ou -N que pour des options plus spécialisées.
EXEMPLES
Pour voir quelles commandes sont présentes dans une séquence, sans rien faire :
dh binary-arch --no-act
C'est un fichier rules très simple, pour les paquets où les séquences de commandes par défaut
fonctionnent sans aucune option particulière.
#!/usr/bin/make -f
%:
dh $@
Il est fréquent de vouloir passer une option à une commande debhelper. Le moyen le plus simple de le
faire consiste à ajouter une cible pour surcharger la commande.
#!/usr/bin/make -f
%:
dh $@
override_dh_strip:
dh_strip -Xtoto
override_dh_auto_configure:
dh_auto_configure -- --with-toto --disable-titi
Parfois les automatismes de dh_auto_configure(1) et de dh_auto_build(1) n'arrivent pas à deviner ce qu'il
faut faire pour certains paquets tordus. Voici comment indiquer vos propres commandes plutôt que de
laisser faire l'automatisme.
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_configure:
./mondoconfig
override_dh_auto_build:
make universe-explode-in-delight
Un autre cas habituel consiste à vouloir faire quelque chose avant ou après l'exécution d'une certaine
commande debhelper.
#!/usr/bin/make -f
%:
dh $@
override_dh_fixperms:
dh_fixperms
chmod 4755 debian/truc/usr/bin/truc
Les outils Python ne sont pas exécutés par défaut par dh, à cause des modifications incessantes dans ce
domaine. Voici comment utiliser dh_python2.
#!/usr/bin/make -f
%:
dh $@ --with python2
Voici comment forcer l'utilisation du processus de construction Module::Build, propre à Perl, qui
pourrait être indispensable si debhelper détectait, à tort, que le paquet utilise MakeMaker.
#!/usr/bin/make -f
%:
dh --buildsystem=perl_build $@
Voici un exemple de remplacement où les commandes dh_auto_* cherchent la source du paquet car elle est
située dans un sous-répertoire.
#!/usr/bin/make -f
%:
dh $@ --sourcedirectory=src
Voici un exemple d'utilisation des commandes dh_auto_* pour réaliser la construction dans un
sous-répertoire, qui sera ensuite supprimé lors du clean :
#!/usr/bin/make -f
%:
dh $@ --builddirectory=build
Si le paquet peut être construit en parallèle, veuillez utiliser le niveau de compatibilité 10 ou passer
l'option --parallel à dh. Dans ce cas dpkg-buildpackage -j fonctionnera.
#!/usr/bin/make -f
%:
dh $@ --parallel
Si votre paquet ne peut être construit de manière fiable en utilisant plusieurs processus légers,
veuillez passer l'option --no-parallel à dh (ou la commande adéquate dh_auto_*) :
#!/usr/bin/make -f
%:
dh $@ --no-parallel
Voici un moyen d'empêcher dh d'exécuter plusieurs commandes, en définissant des blocs de substitution
vides pour chaque commande que vous ne voulez pas lancer.
#!/usr/bin/make -f
%:
dh $@
# Commandes que l'on ne veut pas S<exécuter :>
override_dh_auto_test override_dh_compress override_dh_fixperms:
Un long processus de construction pour un paquet de documentation à part peut être séparé en utilisant
des réécritures pour les paquets indépendants de l'architecture. Elles seront ignorées lors de
l'exécution des suites build-arch et binary-arch.
#!/usr/bin/make -f
%:
dh $@
override_dh_auto_build-indep:
$(MAKE) -C docs
# Aucun test nécessaire pour la documentation
override_dh_auto_test-indep:
override_dh_auto_install-indep:
$(MAKE) -C docs install
En plus de l'exemple précédent, il peut être nécessaire de modifier les droits d'un fichier, mais
seulement lors de la construction du paquet dépendant de l'architecture, puisqu'il n'est pas présent lors
de la construction de la documentation toute seule.
override_dh_fixperms-arch:
dh_fixperms
chmod 4755 debian/truc/usr/bin/truc
FONCTIONNEMENT INTERNE
Si vous êtes curieux de connaître le fonctionnement interne de dh, voici ce qu'il y a sous le capot.
Dans les niveaux de compatibilité 10 (ou supérieurs), dh crée un fichier debian/debhelper-build-stamp
après la construction pour ne pas la refaire. Il est possible d'éviter la création de ce fichier en
passant l'argument --without=build-stamp à dh. Cela rend le comportement des construction « no clean »
plus cohérent avec l'usage courant au détriment de possiblement effectuer la construction et le test deux
fois (la seconde en tant que « root » ou avec fakeroot(1)).
À l'intérieur d'une cible de réécriture, les commandes dh_* écrivent dans un journal
debian/paquet.debhelper.log pour savoir quelle commande a été exécutée pour quel paquet. Ces fichiers
journaux seront supprimés une fois la cible de réécriture terminée.
Dans les niveaux de compatibilité 9 et précédents, chaque commande debhelper, qui s'accomplit
correctement, est journalisée dans debian/package.debhelper.log (que dh_clean supprimera). Ainsi dh peut
déterminer quelles commandes ont déjà été exécutées et pour quels paquets. De cette manière il pourra
passer outre l'exécution de ces commandes ultérieurement.
Chaque fois que dh est exécuté (en v9 ou précédente), il examine le journal et recherche la dernière
commande exécutée dans la séquence indiquée. Puis il exécute la commande suivante dans cette séquence.
Les options --until, --before, --after et --remaining permettent de modifier ce comportement (mais ont
été supprimées dans la v10).
Une suite peut aussi exécuter des cibles dépendantes dans debian/rules. Par exemple, la suite « binary »
exécute la cible « install ».
dh utilise la variable d'environnement DH_INTERNAL_OPTIONS pour transmettre des informations aux
commandes debhelper exécutées au sein des blocs surchargés. Le contenu (et l'existence même) de cette
variable d'environnement, comme son nom l'indique, est sujet à des modifications permanentes.
Les commandes des séquences build-indep, install-indep et binary-indep sont appelées avec l'option -i
pour être certain qu'elles ne s'accompliront que sur des paquets indépendants de l'architecture.
Symétriquement les commandes des séquences build-arch, install-arch et binary-arch sont appelées avec
l'option -a pour être certain qu'elles ne s'accompliront que sur des paquets dépendants de
l'architecture.
OPTIONS OBSOLÈTES
Les options suivantes sont obsolètes. Il vaut mieux utiliser les cibles de réécritures à la place. Elles
ne sont pas disponibles dans le niveau de compatibilité 10.
--until commande
Exécute les commandes de la suite jusqu'à la commande indiquée, l'exécute puis s'arrête.
--before commande
Exécute les commandes de la suite situées avant la commande indiquée puis s'arrête.
--after commande
Exécute les commandes de la suite situées après la commande indiquée.
--remaining
Exécute toutes les commandes de la suite qui n'ont pas encore été exécutées.
Dans les options ci-dessus, commande peut être soit le nom complet de la commande debhelper, soit une
sous-chaîne de ce nom. dh cherchera d'abord, dans la séquence, une commande portant le nom exact pour
éviter toute ambiguïté. Si plusieurs commandes correspondent à la sous-chaîne la dernière de la séquence
sera prise en compte.
VOIR AUSSI
debhelper(7)
Ce programme fait partie de debhelper.
AUTEUR
Joey Hess <joeyh@debian.org>
TRADUCTION
Cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe
francophone de traduction de Debian.
Veuillez signaler toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
un rapport de bogue sur le paquet debhelper.
Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
<section> <page_de_man> ».
11.1.6ubuntu2 2018-05-10 DH(1)