Provided by: debhelper_5.0.7ubuntu13_all bug

NOM

       debhelper - ensemble d’outils regroupés sous le nom de debhelper

SYNOPSIS

       dh_* [-v] [-a] [-i] [-s] [--no-act] [-ppaquet] [-Npaquet] [-Ptmpdir]

DESCRIPTION

       Debhelper facilite la construction des paquets Debian. La philosophie
       qui sous-tend debhelper est de fournir une collection de petits outils
       simples et facilement compréhensibles qui seront exploités dans
       debian/rules pour automatiser les tâches courantes liées à la
       construction des paquets, d’où un travail allégé pour le responsable.
       Dans une certaine mesure, cela signifie également que ces outils
       peuvent être adaptés aux modifications éventuelles de la Charte Debian.
       Les paquets qui utiliseront debhelper ne nécessiteront qu’une simple
       reconstruction pour être conformes aux nouvelles règles.

       Un fichier debian/rules, exploitant debhelper, appelle séquentiellement
       des commandes de debhelper. Le nom de ces commandes est préfixé par
       « dh_ ». Des exemples de fichiers debian/rules qui exploitent debhelper
       se trouvent dans /usr/share/doc/debhelper/examples/

       Pour créer un nouveau paquet Debian en utilisant debhelper, il suffit
       de copier un des fichiers d’exemple et de le modifier manuellement. Il
       est possible également d’essayer le paquet dh-make qui contient une
       commande dh_make automatisant partiellement le processus. Pour se
       familiariser avec ces concepts, le paquet Debian maint-guide contient
       un cours sur la construction d’un premier paquet avec debhelper.

COMMANDES DE DEBHELPER

       Voici la liste complète de commandes debhelper disponibles. Consulter
       leurs pages de manuel respectives pour obtenir des informations
       complémentaires.

       dh_builddeb(1)
           Construction des paquets Debian

       dh_clean(1)
           nettoie le répertoire de construction du paquet

       dh_compress(1)
           comprime les fichiers dans le répertoire de construction du paquet
           et modifie les liens symboliques en conséquence

       dh_desktop(1)
           inscrit les fichiers .desktop

       dh_fixperms(1)
           ajuste les droits sur les fichiers du répertoire de construction du
           paquet

       dh_gencontrol(1)
           produit et installe le fichier de contrôle

       dh_install(1)
           installe les fichiers dans le répertoire de construction du paquet

       dh_installcatalogs(1)
           installe et inscrit les catalogues SGML

       dh_installchangelogs(1)
           installe les journaux de suivi des modifications (changelog) dans
           les répertoires de construction du paquet

       dh_installcron(1)
           installe les scripts cron dans etc/cron.*

       dh_installdeb(1)
           installe des fichiers dans le répertoire DEBIAN

       dh_installdebconf(1)
           installe les fichiers utilisés par debconf dans les répertoires de
           construction du paquet

       dh_installdirs(1)
           crée des sous-répertoires dans le répertoire de construction du
           paquet

       dh_installdocs(1)
           installe la documentation dans le répertoire de construction du
           paquet

       dh_installemacsen(1)
           inscrit un paquet additionnel emacs

       dh_installexamples(1)
           installe les fichiers d’exemples dans le répertoire de construction
           du paquet

       dh_installinfo(1)
           installe et inscrit les fichiers info

       dh_installinit(1)
           installe les scripts d’initialisation (init scripts) dans le
           répertoire de construction du paquet

       dh_installlogcheck(1)
           installe les fichiers de règles de vérification des journaux
           (logcheck rulefiles) dans etc/logcheck/

       dh_installlogrotate(1)
           installe les fichiers de configuration de la rotation des journaux
           (logrotate)

       dh_installman(1)
           installe les pages de manuel dans le répertoire de construction du
           paquet

       dh_installmanpages(1)
           ancien programme d’installation des pages de manuel

       dh_installmenu(1)
           installe les fichiers du menu Debian dans le répertoire de
           construction du paquet

       dh_installmime(1)
           installe les fichiers « mime » dans le répertoire de construction
           du paquet

       dh_installmodules(1)
           inscrit les modules avec modutils

       dh_installpam(1)
           installe les fichiers de support de PAM

       dh_installppp(1)
           installe les fichiers ppp.ip-up et ppp.ip-down

       dh_installwm(1)
           inscrit un gestionnaire de fenêtre (window manager)

       dh_installxfonts(1)
           inscrit les polices de caractères graphiques (X fonts)

       dh_link(1)
           crée les liens symboliques dans le répertoire de construction du
           paquet

       dh_listpackages(1)
           énumère les paquets binaires que debhelper va traiter

       dh_makeshlibs(1)
           crée automatiquement le fichier shlibs

       dh_md5sums(1)
           crée le fichier DEBIAN/md5sums

       dh_movefiles(1)
           déplace des fichiers depuis debian/tmp dans des sous-paquets

       dh_perl(1)
           détermine les dépendances Perl

       dh_python(1)
           détermine les dépendances Python et ajoute des scripts de
           maintenance Python postinst et prerm

       dh_scrollkeeper(1)
           produit les scripts d’enregistrement ScrollKeeper

       dh_shlibdeps(1)
           détermine les dépendances envers les bibliothèques partagées

       dh_strip(1)
           dépouille les exécutables, les bibliothèques partagées, et
           certaines bibliothèques statiques

       dh_suidregister(1)
           programme obsolète d’inscription suid

       dh_testdir(1)
           vérifie le répertoire avant de construire un paquet Debian

       dh_testroot(1)
           vérifie que le paquet est construit par le superutilisateur (root)

       dh_testversion(1)
           vérifie que la bonne version de debhelper est installée

       dh_undocumented(1)
           programme obsolète de création de liens symboliques vers
           « undocumented.7 »

       dh_usrlocal(1)
           migre les répertoires usr/local dans les scripts de maintenance du
           paquet

       Si le nom d’un programme commence par « dh_ » et qu’il n’est pas dans
       la liste ci-dessus, alors, c’est qu’il ne fait pas partie du paquet
       debhelper. Cependant, il devrait tout de même fonctionner comme les
       autres programmes décrits dans cette page.

FICHIERS DE CONFIGURATION DE DEBHELPER

       Beaucoup de commandes de debhelper utilisent des fichiers du répertoire
       debian/ pour piloter leur fonctionnement. Outre les fichiers
       debian/changelog et debian/control, qui se trouvent dans tous les
       paquets, et pas seulement dans ceux qui emploient debhelper, d’autres
       fichiers peuvent servir à configurer le comportement des commandes
       spécifiques de debhelper. Ces fichiers sont, en principe, nommés
       debian/paquet.toto (où « paquet » est, bien sûr, à remplacer par le nom
       du paquet concerné).

       Par exemple, dh_installdocs utilise un fichier appelé
       debian/package.docs pour énumérer les fichiers de documentation qu’il
       installera. Consulter les pages de manuel des différentes commandes
       pour connaître le détail des noms et des formats des fichiers employés.
       D’une façon générale, ces fichiers de configuration énumèrent les
       fichiers sur lesquels devra porter l’action, à raison d’un fichier par
       ligne. Quelques programmes de debhelper emploient des paires
       fichier/destination voire des formats légèrement plus compliqués.

       Nota : Lorsqu’un paquet est le premier (ou le seul) paquet binaire
       énuméré dans le fichier debian/control, debhelper exploitera
       debian/toto si aucun fichier debian/paquet.toto n’est présent.

       Dans quelques rares cas, il peut être utile d’exploiter différentes
       versions de ces fichiers pour des architectures différentes. S’il
       existe des fichiers appelés debian/package.toto.arch dans lesquels
       « arch » correspond au résultat de « dpkg --print-architecture », alors
       ils seront utilisés de préférence aux autres fichiers plus généraux.

       Dans beaucoup de cas, ces fichiers de configuration sont employés pour
       indiquer divers types de fichiers : documentation, fichiers d’exemples
       à installer, fichiers à déplacer et ainsi de suite. Lorsque cela se
       justifie, dans des cas comme ceux-ci, il est possible d’employer les
       jokers (wildcard) standard de l’interpréteur de commandes (shell)
       (« ? », « * » et « [..] »).

       Il est également possible de placer des commentaires dans ces fichiers.
       Les lignes débutant par « # » sont ignorées.

OPTIONS PARTAGÉES DE DEBHELPER

       Tous les programmes de debhelper acceptent les options suivantes :

       -v, --verbose
           Mode verbeux : affiche toutes les commandes qui modifient le
           répertoire de construction du paquet.

       --no-act
           Empêche la construction de s’effectuer réellement. Si cette option
           est utilisée avec -v, le résultat sera l’affichage de ce que la
           commande aurait fait.

       -a, --arch
           Construit tous les paquets dépendants d’une architecture.

       -i, --indep
           Construit tous les paquets indépendants de l’architecture.

       -ppaquet, --package=paquet
           Construit le paquet nommé « paquet ». Cette option peut être
           répétée afin de faire agir debhelper sur plusieurs paquets.

       -s, --same-arch
           Il s’agit d’une version plus astucieuse de l’option -a, employée
           dans quelques rares cas. Grâce à cette option, si le fichier de
           contrôle du paquet comporte le champ « Architecture: i386 »,
           debhelper ne construira pas le paquet pour d’autres architectures.
           De cette façon, cette option construit tous les paquets marqués
           «Architecture: any » ainsi que tous les paquets dont l’architecture
           mentionnée correspond à l’architecture courante. Ce comportement
           est à l’opposé de l’option -a, qui construit seulement les paquets
           qui ne sont pas indépendants de l’architecture.

       -Npaquet, --no-package=paquet
           Exclut le paquet spécifié du processus de construction, même si
           l’option - a, -i ou -p l’impliquait.

       -Ptmpdir, --tmpdir=tmpdir
           Utilise le répertoire « tmpdir » pour construire les paquets.
           Sinon, par défaut, le répertoire utilisé est « debian/paquet »

       --mainpackage=paquet
           Cette option, peu utilisée, indique à debhelper le nom du paquet
           principal pour lequel les fichiers debian/toto peuvent être
           utilisés à la place des fichiers habituels debian/paquet.toto. Par
           défaut, debhelper considère que le paquet principal est le premier
           paquet énuméré dans le fichier debian/control.

OPTIONS COURANTES DE DEBHELPER

       Certains programmes de debhelper acceptent les options suivantes :
       Consulter la page de manuel de chaque programme pour une explication
       complète du rôle de ces options.

       -n  Ne pas modifier les scripts de maintenance du paquet (postinst,
           postrm, etc.).

       -Xlment, --exclude=lment
           Permet d’exclure un élément du traitement. Cette option peut être
           employée plusieurs fois afin d’exclure plusieurs éléments.

       -A, --all
           Précise que les fichiers (ou autres éléments) indiqués dans la
           ligne de commande concernent TOUS les paquets construits et pas
           seulement le premier.

REMARQUES

       Prise en charge de plusieurs paquets binaires

       Si le paquet source produit plus d’un paquet binaire, les programmes de
       debhelper construiront tous les paquets binaires. Si le paquet source
       doit construire un paquet dépendant de l’architecture, et un paquet
       indépendant de l’architecture, ce comportement ne conviendra pas. En
       effet, il convient de construire les paquets dépendants de
       l’architecture dans la cible binary-arch du fichier debian/rules, et
       les paquets indépendants de l’architecture dans la cible binary-indep.

       Pour résoudre ce problème, et pour un meilleur contrôle sur la
       construction des paquets par debhelper, tous les programmes de
       debhelper acceptent les options -a, -i, -p, et -s. Ces options sont
       cumulatives. Si aucune n’est précisée, les programmes de debhelper
       construisent tous les paquets énumérés dans le fichier de contrôle.

       Consulter /usr/share/doc/debhelper/examples/rules.multi pour avoir un
       exemple d’utilisation de debhelper avec un paquet qui génère des
       paquets binaires multiples.

       Génération automatique des scripts Debian de maintenance du paquet

       Certaines commandes de debhelper produisent automatiquement des lignes
       de codes de maintenance du paquet. Pour les inclure dans vos propres
       scripts de maintenance du paquet, il convient d’ajouter « #DEBHELPER# »
       à l’endroit où les lignes de code générées devront être insérées.
       « #DEBHELPER# » sera remplacé, par les lignes de code générées
       automatiquement, lors de l’exécution de dh_installdeb.

       Si un script de maintenance n’existe pas et que debhelper doit y
       inclure quelque chose, alors debhelper créera le script de maintenance
       complètement.

       Toutes les commandes de debhelper qui produisent automatiquement des
       lignes de code de cette façon peuvent inhiber cette production grâce à
       l’option -n (voir ci-dessus).

       Nota : Les lignes de code insérées seront écrit dans le langage de
       l’interpréteur de commandes (shell). De ce fait, il est impossible de
       les placer directement dans un script Perl. Pour les insérer dans un
       script Perl, voici une solution. (S’assurer que $1, $2, etc. sont bien
       définis par la commande set.)

        my $temp="set -e\nset -- @ARGV\n" . << ’EOF’;
        #DEBHELPER#
        EOF
        system ($temp) / 256 == 0
               or die "Problème avec le script de debhelper : $!";

       Génération automatique des diverses dépendances.

       Certaines commandes de debhelper peuvent nécessiter des dépendances
       entre le paquet construit et d’autres paquets. Par exemple, si
       dh_installdebconf(1) est employé, le paquet devra dépendre de debconf.
       Si dh_installxfonts(1) est employé, le paquet deviendra dépendant d’une
       version particulière de xutils. Maintenir ces dépendances induites peut
       être pénible puisqu’elles découlent de la façon dont debhelper
       travaille. C’est pourquoi debhelper offre une solution
       d’automatisation.

       Toutes les commandes de ce type, outre qu’elles documentent, dans leur
       page de manuel, les dépendances qu’elle induisent, généreront
       automatiquement une variable de substitution nommée ${misc:depends}. Si
       cette variable est exploitée dans le dossier debian/control, il sera
       automatiquement enrichi des dépendances induites par debhelper.

       Ce processus est entièrement indépendant de ${shlibs:Depends} standard,
       produite par dh_makeshlibs(1), et de ${perl:Depends} produite par
       dh_perl(1). Il est également possible de choisir de ne pas les utiliser
       si les conjectures de debhelper ne correspondent pas la réalité.

       Répertoires de construction du paquet

       Par défaut, tous les programmes de debhelper supposent que le
       répertoire temporaire utilisé pour construire l’arborescence des
       fichiers d’un paquet est debian/paquet.

       Parfois, il peut être souhaitable d’utiliser un autre répertoire
       temporaire. Ceci est obtenu grâce au paramètre -P. Par exemple,
       « dh_installdocs -Pdebian/tmp » utilisera debian/tmp comme répertoire
       temporaire. Nota : L’usage de -P implique que les programmes de
       debhelper ne construisent qu’un seul paquet à la fois. De ce fait, si
       le paquet source génère plusieurs paquets binaires, il faudra employer
       également le paramètre -p pour préciser l’unique paquet binaire à
       construire.

       Niveaux de compatibilité de debhelper

       Parfois, des modifications majeures de debhelper doivent être faites et
       vont briser la compatibilité ascendante. Ces modifications sont
       nécessaires pour conserver à debhelper ses qualités de conception et
       d’écriture, car les besoins changent et le savoir-faire de l’auteur
       s’améliore. Pour éviter que de tels changements ne cassent les paquets
       existants, un concept de niveau de compatibilité debhelper a été
       introduit. On précisera à debhelper le niveau de compatibilité qu’il
       doit employer, et il modifiera son comportement de diverses manières.

       Pour indiquer à debhelper le niveau de compatibilité à utiliser il faut
       placer un nombre dans debian/compat. Par exemple, pour imposer la
       version V5 :

        echo 5 > debian/compat

       Sauf indication contraire, toute la documentation de debhelper suppose
       l’utilisation du niveau de compatibilité le plus récent, et, dans la
       plupart des cas ne précise pas si le comportement est différent avec
       les niveaux de compatibilité antérieurs. De ce fait, si le niveau de
       compatibilité le plus récent n’est pas celui utilisé, il est fortement
       conseillé de lire les indications ci-dessous qui exposent les
       différences dans les niveaux de compatibilité antérieurs.

       Les niveaux de compatibilité sont les suivants :

       V1  C’est le niveau initial de compatibilité de debhelper ainsi que la
           valeur par défaut. Dans ce mode, debhelper emploiera debian/tmp
           comme répertoire de l’arborescence du premier paquet binaire
           énuméré dans le fichier de contrôle et debian/paquet pour tous les
           autres. Ce mode est déconseillé.

           Ce mode est déconseillé.

       V2  Dans ce mode, debhelper emploiera uniformément debian/paquet comme
           répertoire de l’arborescence de chaque paquet construit.

           Ce mode est déconseillé.

       V3  Ce mode fonctionne comme V2 mais avec les ajouts suivants :

           -       Les fichiers de configuration de debhelper acceptent les
                   jokers * et ?  lorsque cela a un sens. Pour désactiver
                   cette substitution et utiliser ces caractères tels quels,
                   il suffit de les préfixer avec une barre contre-oblique
                   (backslash).

           -       Les scripts de maintenance du paquet (postinst et postrm)
                   feront appel à ldconfig quand dh_makeshlibs sera lancé.

           -       Chaque fichier de etc/ est automatiquement marqué par
                   dh_installdeb comme un fichier de configuration.

           Ce mode est déconseillé.

       V4  Les changements par rapport à la version 3 sont :

           -       dh_makeshlibs -V n’inclura pas la partie Debian du numéro
                   de version dans la ligne de dépendance produite dans le
                   fichier shlibs.

           -       Il est fortement conseillé de mettre le nouveau
                   ${misc:Depends} dans debian/control pour compléter
                   ${shlibs:Depends}.

           -       dh_fixperms rendra exécutables tous les fichiers des
                   répertoires bin/ et etc/init.d.

           -       dh_link corrigera les liens existants pour les rendre
                   conformes à la Charte Debian.

       V5  C’est la version dont l’usage est recommandé. Elle fait la même
           chose que la version V4 plus :

           -       Les commentaires sont ignorés dans les fichiers de
                   configuration de debhelper.

           -       dh_strip --dbg-package indique maintenant le nom du paquet
                   qui doit recevoir les symboles de mise au point et non plus
                   les paquets d’où proviennent ces symboles.

           -       dh_installdocs saute l’installation des fichiers vides.

       Liens symboliques vers le répertoire de documentation

       Parfois il est utile de construire un paquet qui ne contient pas de
       répertoire /usr/share/doc/paquet. On peut, à la place, créer un lien
       symbolique « en l’air » qui pointe sur un autre répertoire de
       documentation. La Charte Debian indique que c’est autorisé si le paquet
       construit dépend du paquet comportant la documentation. Pour obtenir ce
       résultat, il suffit d’omettre l’installation du répertoire de
       documentation dans le paquet et d’employer dh_link pour générer le lien
       symbolique (ou le faire manuellement). Dans ce cas debhelper devrait se
       comporter correctement, c’est-à-dire remarquer qu’il s’agit d’un lien
       symbolique « en l’air » et ne pas essayer d’installer un fichier
       copyright ou changelog.

       udebs

       Debhelper prend en charge la construction des udebs. Pour créer un udeb
       avec debhelper, il faut ajouter « XC-Package-Type: udeb » aux lignes de
       paquet dans debian/control, ainsi qu’une dépendance vers
       debhelper (>= 4,2) dans la ligne build-depend. Debhelper essayera de
       construire des udebs, conformément aux règles de l’installateur Debian,
       en suffixant les fichiers de paquets générés avec « .udeb », en
       n’installant aucune documentation, en omettant les scripts preinst,
       postrm et prerm ainsi que les scripts de configuration, etc.

       Autres remarques

       Généralement, si un programme de debhelper a besoin qu’un répertoire
       existe dans debian/, il le créera. Ce comportement n’est pas documenté
       dans toutes les pages de manuel, mais, par exemple, le dh_installdeb
       sait qu’il doit créer le répertoire debian/paquet/DEBIAN/ avant de
       tenter de mettre des fichiers dedans. De même, dh_installmenu sait
       qu’il est nécessaire d’avoir un répertoire
       debian/paquet/usr/share/menu/ avant d’installer les fichiers menu, etc.

       Dès qu’un paquet emploie debhelper pour sa construction, il faut
       vérifier que debhelper a bien été ajouté à la ligne build-depend dans
       le fichier debian/control. Il convient également de s’assurer que la
       version de debhelper indiquée dans build-depend est au moins égale au
       niveau de compatibilité de debhelper utilisée pour la construction du
       paquet. Ainsi si le paquet emploie le niveau 5 de compatibilité :

        Build-Depends: debhelper (>= 5)

VARIABLES DENVIRONNEMENT
       DH_VERBOSE
           Mettre cette variable à 1 valide le mode verbeux. Debhelper
           affichera chaque commande exécutée qui modifie des fichiers.

       DH_COMPAT
           Indique temporairement le niveau de compatibilité auquel debhelper
           doit fonctionner. Cette valeur supplante la valeur précisée dans
           debian/compat.

       DH_NO_ACT
           Mettre cette variable à 1 pour activer le mode simulation (no-act).

       DH_OPTIONS
           Le contenu de cette variable sera ajouté au début des arguments de
           chaque ligne de commande de debhelper. Ce comportement est utile
           dans quelques situations, par exemple, pour passer -p à toutes les
           commandes de debhelper qui seront exécutées. Une bonne façon
           d’employer DH_OPTIONS est d’utiliser des
           « Cible-spécifique Variable Valeurs » dans le fichier debian/rules.
           Consulter la documentation de make pour obtenir des précisions sur
           cette méthode.

       DH_ALWAYS_EXCLUDE
           Si cette variable possède une valeur, elle sera ajoutée à l’option
           -X de toutes les commandes qui admettent cette option. De plus,
           dh_builddeb fera un rm -rf quelque chose, correspondant à la valeur
           dans l’arbre de construction de paquet.

           Ceci peut être utile pour construire un paquet à partir d’une
           arborescence CVS. Dans ce cas le réglage de DH_ALWAYS_EXCLUDE=CVS
           empêchera les répertoires CVS d’interférer subrepticement dans le
           paquet en construction. Ou, si un paquet possède une source
           compressée, (maladroitement) présente dans un répertoire CVS, il
           peut être utile d’exporter DH_ALWAYS_EXCLUDE=CVS dans debian/rules,
           pour que cette variable soit prise en compte quel que soit
           l’endroit où le paquet est construit.

           Des exclusions multiples peuvent être séparées avec des deux
           points, comme dans DH_ALWAYS_EXCLUDE=CVS:.svn

VOIR AUSSI

       /usr/share/doc/debhelper/examples/
           Un ensemble d’exemples de fichiers debian/rules qui utilisent
           debhelper.

       <http://kitenet.net/programs/debhelper/>
           Le site internet de debhelper.

AUTEUR

       Joey Hess <joeyh@debian.org>

TRADUCTION

       Valéry Perrin <valery.perrin.debian@free.fr> le 17 septembre 2005.
       Dernière mise à jour le 10 novembre 2005.

       L’équipe de traduction a fait le maximum pour réaliser une adaptation
       française de qualité.

       La version anglaise la plus à jour de ce document est toujours
       consultable via la commande  « man -L en nom_du_man ».

       N’hésitez pas à signaler à l’auteur ou au traducteur, selon le cas,
       toute erreur dans cette page de manuel.