dwww Home | Manual pages | Find package

DEBUILD(1)                  General Commands Manual                 DEBUILD(1)

NOM
       debuild - Construire un paquet Debian

SYNOPSIS
       debuild  [options_debuild]  [options_dpkg-buildpackage] [--lintian-opts
       options_lintian]
       debuild [options_debuild] -- binary|binary-arch|binary-indep|clean ...

DESCRIPTION
       debuild crée tous les fichiers nécessaires pour  envoyer  un  paquet  à
       l'archive  Debian.  Il exécute dans un premier temps dpkg-buildpackage,
       puis lintian avec le fichier .changes créé (en  supposant  que  lintian
       est  installé),  enfin  il  signe les fichiers appropriés (en utilisant
       debsign(1) plutôt que dpkg-buildpackage(1) ; toutes les  options  rela-
       tives  à  la signature lui sont passées). L'opération de signature sera
       ignorée si  la  distribution  est  UNRELEASED,  à  moins  que  l'option
       --force-sign de dpkg-buildpackage soit utilisée. Des paramètres peuvent
       être fournis à dpkg-buildpackage  et  lintian,  en  utilisant  les  pa-
       ramètres de l'option --lintian-opts pour ce dernier. Les options --lin-
       tian et --no-lintian permettent de forcer ou d'empêcher l'exécution  de
       lintian. Par défaut, lintian est exécuté. Il y a également d'autres op-
       tions permettant de définir ou conserver des variables d'environnement,
       comme  décrit  dans  la  section  VARIABLES D'ENVIRONNEMENT ci-dessous.
       Cette façon d'exécuter debuild permet également d'obtenir un journal de
       la construction du paquet dans ../<paquet>_<version>_<arch>.build.

       Une  autre façon d'utiliser debuild est d'utiliser un (ou plus) des pa-
       ramètres binary, binary-arch, binary-indep et clean. Dans ce  cas,  de-
       build  cherchera à obtenir les droits du superutilisateur et à exécuter
       debian/rules  avec  ce(s)  paramètre(s).  Les  options   --rootcmd=com-
       mande_pour_devenir_superutilisateur  ou -rcommande_pour_devenir_superu-
       tilisateur peuvent être utilisées. La commande_pour_devenir_superutili-
       sateur  est  en règle générale une de celles-ci : fakeroot, sudo ou su-
       per. Lisez ci-dessous pour  une  discussion  plus  approfondie  sur  ce
       point.  Encore une fois, les options permettant de préserver l'environ-
       nement peuvent être utilisées. Dans ce cas, debuild cherchera également
       à  exécuter  dans un premier temps dpkg-checkbuilddeps ; cela peut être
       explicitement demandé ou empêché avec les options -D et -d, respective-
       ment.  Remarquez  également que si une de ces options ou si l'option -r
       est indiquée dans la variable DEBUILD_DPKG_BUILDPACKAGE_OPTS du fichier
       de  configuration, elle sera reconnue, même avec cette façon d'exécuter
       debuild.

       debuild lit aussi les fichiers de configuration de  devscripts  décrits
       ci-dessous. Cela permet de fournir des options à utiliser par défaut.

Vérification du nom du répertoire
       Comme  plusieurs  autres scripts du paquet devscripts, debuild parcourt
       une arborescence de répertoires jusqu'à trouver un fichier debian/chan-
       gelog  avant  de  construire le paquet. Pour éviter les problèmes posés
       par les fichiers égarés, il examine le nom  du  répertoire  parent  une
       fois  le  fichier debian/changelog trouvé, et vérifie que le nom du ré-
       pertoire correspond au nom du paquet. La  façon  précise  utilisée  est
       contrôlée  par  les  deux  variables  du fichier de configuration DEVS-
       CRIPTS_CHECK_DIRNAME_LEVEL et  DEVSCRIPTS_CHECK_DIRNAME_REGEX,  et  les
       options   en  ligne  de  commande  associées  --check-dirname-level  et
       --check-dirname-regex.

       DEVSCRIPTS_CHECK_DIRNAME_LEVEL peut prendre les valeurs suivantes :

       0      Ne jamais vérifier le nom du répertoire.

       1      Ne vérifier le nom du répertoire que s'il a fallu changer de ré-
              pertoire pour trouver le fichier debian/changelog. C'est le com-
              portement par défaut.

       2      Toujours vérifier le nom du répertoire.

       Le nom du répertoire est vérifié en testant si le nom du répertoire ac-
       tuel  (donné  par  pwd(1)) correspond à l'expression rationnelle donnée
       par la variable DEVSCRIPTS_CHECK_DIRNAME_REGEX du fichier de configura-
       tion  ou  par l'option --check-dirname-regex expression_rationnelle. Il
       s'agit d'une expression rationnelle Perl (voir perlre(1)), qui sera an-
       crée  à son début et à sa fin. Si elle contient un "/", alors elle doit
       correspondre au chemin complet, sinon elle doit correspondre au nom  de
       répertoire  complet. Si elle contient la chaîne "PACKAGE", cette chaîne
       sera remplacée par le nom du paquet source  déterminé  par  le  fichier
       changelog.  La  valeur  par  défaut de cette expression rationnelle est
       "PACKAGE(-.+)?", ce qui correspond aux répertoires  nommés  PACKAGE  ou
       PACKAGE-version.

VARIABLES D'ENVIRONNEMENT
       Comme  les  variables  d'environnement peuvent affecter la construction
       d'un paquet, souvent de façon involontaire, debuild nettoie  l'environ-
       nement  en enlevant toutes les variables d'environnement, à l'exception
       de TERM, HOME, LOGNAME, GNUPGHOME,  PGPPATH,  GPG_AGENT_INFO,  GPG_TTY,
       DBUS_SESSION_BUS_ADDRESS,  FAKEROOTKEY,  DEBEMAIL, DEB_*, des variables
       (C, CPP, CXX, LD et F)FLAGS et les variables _APPEND  associées,  ainsi
       que  les  variables  pour les paramètres régionaux LANG et LC_*. La va-
       riable TERM vaut "dumb" si elle n'est pas définie, et PATH est  définie
       à "/usr/sbin:/usr/bin:/sbin:/bin:/usr/bin/X11".

       Si  une  variable  d'environnement  ne  doit  pas être modifiée pour la
       construction d'un paquet, il est possible d'utiliser  --preserve-envvar
       var  (ou -e var). L'environnement peut aussi être préservé en utilisant
       l'option --preserve-env. Cependant, même dans ce cas le PATH est  remis
       à la valeur précisée ci-dessus. Le seul moyen d'empêcher le PATH d'être
       remis à zéro est d'utiliser une  option  --preserve-envvar  PATH.  Mais
       soyez  conscient  qu'utiliser des programmes d'un emplacement non stan-
       dard peut facilement résulter en un paquet cassé, puisqu'il ne sera pas
       possible de le construire sur des systèmes standards.

       Remarquez  que  des  répertoire peuvent être ajoutés au début de la va-
       riable d'environnement PATH en utilisant l'option --prepend-path. C'est
       utile  quand on veut utiliser des outils comme ccache ou distcc pour la
       construction d'un paquet.

       Il est également possible d'éviter d'avoir à écrire quelque chose comme
       TOTO=titi  debuild -e TOTO en écrivant debuild -e TOTO=titi ou la forme
       longue debuild --set-envvar TOTO=titi.

OBTENTION DES DROITS DU SUPERUTILISATEUR
       debuild doit être exécuté en tant que superutilisateur pour fonctionner
       correctement. Il y a trois façons fondamentalement différentes de faire
       cela. La première, et celle qui est conseillée, est d'utiliser une com-
       mande  permettant  de  devenir  superutilisateur.  La meilleure d'entre
       elles est probablement fakeroot(1), puisqu'elle ne nécessite pas  d'ac-
       corder  véritablement de droits. super(1) et sudo(1) sont d'autres pos-
       sibilités. Si aucune option -r  (ou  --rootcmd)  n'est  donnée  (rappe-
       lez-vous  que  dpkg-buildpackage  accepte  également  une option -r) et
       qu'aucune des méthodes suivantes n'est utilisée, alors -rfakeroot  sera
       implicitement considérée.

       La  deuxième méthode est d'utiliser une commande comme su(1) pour deve-
       nir superutilisateur, et ensuite de réaliser toutes les  opérations  en
       tant  que  superutilisateur. Remarquez cependant que lintian s'arrêtera
       s'il est exécuté en tant que superutilisateur  ou  setuid  root ;  cela
       peut  être  contourné  en utilisant l'option --allow-root de lintian si
       vous êtes sûr de vous.

       La troisième méthode consiste à installer debuild setuid root. Ce n'est
       pas  la  méthode  par défaut, et nécessitera l'installation en tant que
       tel par l'administrateur système. Il  faut  aussi  être  conscient  que
       toute personne pouvant exécuter debuild en tant que superutilisateur ou
       setuid root a un accès complet au système. Cette méthode n'est pas  re-
       commandée,  mais fonctionnera. debuild peut être installé avec les per-
       missions 4754, de façon à ce  que  seuls  les  membres  de  son  groupe
       puissent l'exécuter. L'inconvénient de cette méthode est que les autres
       utilisateurs ne pourront plus alors utiliser ce programme. D'autres va-
       riantes  consistent  à  avoir plusieurs copies de debuild ou d'utiliser
       des programmes comme sudo ou  super  pour  accorder  sélectivement  des
       droits du superutilisateur à certains utilisateurs. Si l'administrateur
       veut utiliser cette méthode, il devra utiliser le programme dpkg-stato-
       verride pour modifier les permissions de /usr/bin/debuild. Cela permet-
       tra de conserver les permissions après les mises à jour.

POINTS D'ACCROCHE
       debuild gère un certain nombre de points d'ancrage  ("hook")  quand  il
       exécute  dpkg-buildpackage.  Remarquez  que  les points d'ancrage entre
       clean-hook et lintian (inclus) sont passées au travers de dpkg-buildpa-
       ckage  en  utilisant  leur option --hook-nom correspondante. Les points
       d'ancrage disponibles sont les suivants :

       dpkg-buildpackage-hook
              S'exécute  avant  le  début  de  dpkg-buildpackage  en  appelant
              dpkg-checkbuilddeps.

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage init de dpkg.

       clean-hook
              S'exécute  avant  que dpkg-buildpackage lance debian/rules clean
              pour nettoyer le source. (S'exécute même si le source n'est  pas
              nettoyé car -nc est utilisée.)

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage preclean de dpkg.

       dpkg-source-hook
              S'exécute  après  le nettoyage du source et avant l'exécution de
              dpkg-source (s'exécute même si dpkg-source n'est pas appelé  car
              -b, -B, ou -A est utilisée).

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage source de dpkg.

       dpkg-build-hook
              S'exécute   après   dpkg-source   et   avant   l'appel   de  de-
              bian/rules build (s'exécute même si ce n'est qu'une construction
              du paquet source, donc que debian/rules build n'est pas appelé).

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage build de dpkg.

       dpkg-binary-hook
              S'exécute   entre   les   appels   debian/rules build   et   de-
              bian/rules binary(-arch). Ne s'exécute que si un paquet  binaire
              est construit.

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage binary de dpkg.

       dpkg-genchanges-hook
              S'exécute  seulement  après  la  construction du paquet et avant
              l'appel à dpkg-genchanges.

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage changes de dpkg.

       final-clean-hook
              S'exécute après  dpkg-genchanges  et  avant  l'appel  final  de-
              bian/rules clean  (s'exécute même si le source n'est pas nettoyé
              après la construction, ce qui est le comportement par défaut).

              Le point d'ancrage est exécuté dans le source dépaqueté.

              Correspond au point d'ancrage postclean de dpkg.

       lintian-hook
              S'exécute (une fois) avant l'appel à lintian (s'exécute même  si
              lintian n'est pas appelé).

              Le  point d'ancrage est exécuté à partir du répertoire parent du
              source dépaqueté.

              Correspond au point d'ancrage check de dpkg.

       signing-hook
              S'exécute seulement après l'appel à lintian et avant  la  signa-
              ture (s'exécute même si rien n'est signé).

              Le  point d'ancrage est exécuté à partir du répertoire parent du
              source dépaqueté.

              Correspond au point d'ancrage sign de dpkg, mais est exécuté par
              debuild.

       post-dpkg-buildpackage-hook
              S'exécute quand tout est fini.

              Le  point d'ancrage est exécuté à partir du répertoire parent du
              source dépaqueté.

              Correspond au point d'ancrage done de dpkg, mais est exécuté par
              debuild.

       Une  commande de point d'ancrage peut être définie soit dans le fichier
       de configuration, par exemple avec  DEBUILD_SIGNING_HOOK='toto'  (notez
       que les tirets ont été modifiés en caractères de soulignement), ou avec
       l'option en ligne de commande --signing-hook-foo. La commande  sera  en
       partie  modifiée : %% deviendra un signe % simple, %p sera remplacé par
       le nom du paquet, %v par le numéro de version du paquet, %s par le  nu-
       méro  de  version du source et %u par le numéro de version amont. Ni %s
       ni %u ne contiendra de temps absolu ("epoch"). %a sera  1  si  l'action
       suivante  doit  être effectuée et 0 dans le cas contraire (par exemple,
       dans le crochet dpkg-source, %a sera 1 si dpkg-source doit  être  lancé
       et  0 sinon). Elle sera alors passée à l'interpréteur de commandes pour
       être traitée, et peut donc inclure des redirections ou  des  choses  du
       genre.  Par  exemple,  pour  ne  lancer  que  le crochet dpkg-source si
       dpkg-source doit être exécutée, le crochet peut ressemble à ceci :  "if
       [ %a -eq 1 ]; then ...; fi".

       Soyez  prudent avec les points d'accroche, puisqu'une mauvaise utilisa-
       tion peut empêcher le paquet de  se  compiler  depuis  le  source.  Ils
       peuvent être utiles pour prendre des instantanés, etc.

OPTIONS
       Plus de précisions sont fournies ci-après.

       --no-conf, --noconf
              Ne  lire  aucun  fichier de configuration. L'option ne peut être
              utilisée qu'en première position de la ligne de commande.

       --rootcmd=commande-pour-devenir-superutilisateur, -rcommande-pour-deve-
       nir-superutilisateur
              Commande  pour  obtenir (ou simuler) les droits du superutilisa-
              teur.

       --preserve-env
              Ne pas nettoyer l'environnement, à l'exception du PATH.

       --preserve-envvar=var, -evar
              Ne pas nettoyer la variable d'environnement var.

              Si var se termine par un astérisque ("*") alors toutes  les  va-
              riables  qui ont une correspondance avec la portion de var avant
              l'astérisque seront préservées.

       --set-envvar=var=valeur, -evar=valeur
              Définir la variable d'environnement var à valeur et ne  l'enlève
              pas de l'environnement.

       --prepend-path=valeur
              Une fois que PATH a été normalisé, ajouter valeur au début.

       --lintian
              Exécuter  lintian après dpkg-buildpackage. C'est le comportement
              par défaut. Cette  option  permet  de  remplacer  une  directive
              contraire placée dans un fichier de configuration.

       --no-lintian
              Ne pas exécuter lintian après dpkg-buildpackage.

       --no-tgz-check
              Même  si  dpkg-buildpackage est exécuté et que le numéro de ver-
              sion possède une révision pour Debian, ne pas vérifier si le fi-
              chier .orig.tar.gz ou le répertoire .orig existe avant de démar-
              rer la construction.

       --tgz-check
              Si dpkg-buildpackage est exécuté et que  le  numéro  de  version
              possède  une  révision  pour  Debian,  vérifier  si  le  fichier
              .orig.tar.gz ou le répertoire .orig existe avant de démarrer  la
              construction. C'est le comportement par défaut.

       --username nom_utilisateur
              Pour  les  signatures,  utiliser  debrsign  plutôt  que debsign.
              nom_utilisateur indique l'identifiant à utiliser.

       --toto-hook=accroche
              Définir un point d'accroche comme décrit ci-dessus. Si  accroche
              est laissé blanc, le point d'accroche est annulé.

       --clear-hooks
              Supprimer tous les points d'accroche. Ils peuvent être réinstau-
              rés par des options ultérieures en ligne de commande.

       --check-dirname-level N
              Veuillez consulter la section Vérification du nom du  répertoire
              ci-dessus pour une explication de cette option.

       --check-dirname-regex regex
              Veuillez  consulter la section Vérification du nom du répertoire
              ci-dessus pour une explication de cette option.

       -d     Ne pas exécuter dpkg-checkbuilddeps  pour  vérifier  les  dépen-
              dances de construction du paquet ("build dependencies").

       -D     Exécuter  dpkg-checkbuilddeps  pour  vérifier les dépendances de
              construction.

VARIABLES DE CONFIGURATION
       Les deux fichiers de  configuration  /etc/devscripts.conf  et  ~/.devs-
       cripts  sont  évalués  dans  cet ordre par un interpréteur de commandes
       ("shell") pour placer les variables de configuration.  Des  options  de
       ligne  de  commande  peuvent  être  utilisées  pour neutraliser les pa-
       ramètres des fichiers de configuration. Les  paramètres  des  variables
       d'environnement  sont ignorés à cette fin. Si la première option donnée
       en ligne de commande est --noconf, alors ces fichiers ne sont pas  éva-
       lués. Les variables actuellement identifiées sont :

       DEBUILD_PRESERVE_ENV
              Lui  attribuer la valeur yes équivaut à utiliser l'option --pre-
              serve-env.

       DEBUILD_PRESERVE_ENVVARS
              Définit les variables  d'environnement  à  conserver.  Elle  est
              constituée d'une liste de variables d'environnement séparées par
              des virgules. Cela correspond à utiliser plusieurs fois les  op-
              tions --preserve-envvar ou -e.

       DEBUILD_SET_ENVVAR_var=valeur
              Équivaut à utiliser --set-envvar=var=value.

       DEBUILD_PREPEND_PATH
              Équivaut à utiliser --prepend-path.

       DEBUILD_ROOTCMD
              Lui attribuer la valeur prog équivaut à utiliser -rprog.

       DEBUILD_TGZ_CHECK
              Lui   attribuer  la  valeur  no  équivaut  à  utiliser  l'option
              --no-tgz-check en ligne de commande.

       DEBUILD_SIGNING_USERNAME
              Définir cette variable équivaut à utiliser  l'option  --username
              en ligne de commande.

       DEBUILD_DPKG_BUILDPACKAGE_OPTS
              Voici  les  options qui devraient être passées à l'invocation de
              dpkg-buildpackage. Elles sont  données  avant  toute  option  en
              ligne  de commande. À cause des problèmes de guillemets avec les
              interpréteurs de commandes, pour les paramètres contenant un es-
              pace,  il  sera  nécessaire  d'ajouter des guillemets supplémen-
              taires. Par exemple, pour forcer à toujours utiliser votre  clef
              GPG, même pour les envois parrainés ("sponsored upload"), le fi-
              chier de configuration pourra contenir :

              DEBUILD_DPKG_BUILDPACKAGE_OPTS="-k'Julian Gilbey <jdg@debian.org>' -sa"

              ce qui fournit exactement deux options. Sans les guillemets sup-
              plémentaires, dpkg-buildpackage se serait plaint (à juste titre)
              que Gilbey n'est pas une option reconnue (elle ne  commence  pas
              par un signe -).

              Également,  si  ce paramètre contient une (ou plusieurs) des op-
              tions -r, -d ou -D, elle sera toujours prise en compte  par  de-
              build.  Remarquez  que  l'option  -r  placée ici écrasera le pa-
              ramètre DEBUILD_ROOTCMD.

       DEBUILD_TOTO_HOOK
              La variable de point d'accroche pour le point  d'accroche  toto.
              Voyez la section sur les points d'accroche pour plus de détails.
              Par défaut, elle est non définie.

       DEBUILD_LINTIAN
              Lui attribuer la valeur no empêchera l'exécution de lintian.

       DEBUILD_LINTIAN_OPTS
              Ce sont les options qui doivent être passées lors  de  l'invoca-
              tion  de lintian. Elles sont données avant toute option en ligne
              de commande, et l'utilisation de cette option est  la  même  que
              celle décrite pour la variable DEBUILD_DPKG_BUILDPACKAGE_OPTS.

       DEVSCRIPTS_CHECK_DIRNAME_LEVEL, DEVSCRIPTS_CHECK_DIRNAME_REGEX
              Veuillez  consulter la section Vérification du nom du répertoire
              ci-dessus pour une explication de ces variables.  Remarquez  que
              ce  sont  des variables de configuration pour tous les outils du
              paquet devscripts ; elles impacteront tous les scripts  qui  les
              utilisent,  comme indiqué dans leurs pages de manuel respectives
              et dans devscripts.conf(5).

EXEMPLES
       Pour construire votre propre paquet, lancez simplement  debuild  depuis
       l'arbre  des  sources. Des options de dpkg-buildpackage(1) peuvent être
       passées en ligne de commande.

       La ligne de commande typiquement utilisée  pour  construire  le(s)  pa-
       quet(s)  binaire(s) sans signer le fichier .changes (ou le fichier .dsc
       inexistant) est :

              debuild -i -us -uc -b

       Changez -b en -S pour ne construire qu'un paquet source.

       Voici un exemple appelant lintian (et lui fournissant des options) pour
       vérifier les paquets créés :

              debuild --lintian-opts -i

       Remarquez  bien  l'ordre  des options : d'abord les options de debuild,
       puis celles de dpkg-buildpackage et enfin celles  de  lintian  (lintian
       est  appelé par défaut). Si vous utilisez toujours les mêmes options de
       dpkg-buildpackage, vous pouvez utiliser l'option  DEBUILD_DPKG_BUILDPA-
       CKAGE_OPTS du fichier de configuration, comme décrit plus haut.

       Pour  construire  un  paquet pour un envoi parrainé (sponsored upload),
       donné par toto_1.0-1.dsc et  les  fichiers  source  respectifs,  lancez
       quelque chose qui ressemblerait aux commandes suivantes :

              dpkg-source -x toto_1.0-1.dsc
              cd toto-1.0
              debuild -k0x12345678

       où  0x12345678  est  remplacé par l'identifiant de votre clef GPG ou un
       autre identifiant de clef tel que votre adresse de messagerie. De  nou-
       veau,  vous pouvez également utiliser l'option du fichier de configura-
       tion DEBUILD_DPKG_BUILDPACKAGE_OPTS tel que c'est décrit plus haut pour
       éviter  d'avoir à taper l'option -k à chaque fois que vous effectuez un
       envoi parrainé.

VOIR AUSSI
       chmod(1), debsign(1), dpkg-buildpackage(1), dpkg-checkbuilddeps(1), fa-
       keroot(1),  lintian(1),  su(1),  sudo(1), super(1), devscripts.conf(5),
       dpkg-statoverride(8)

AUTEUR
       Le programme debuild a été initialement  écrit  par  Christoph  Lameter
       <clameter@debian.org>. La version actuelle a été écrite par Julian Gil-
       bey <jdg@debian.org>.

TRADUCTION
       Ce document est une traduction, maintenue  à  l'aide  de  l'outil  po4a
       <https://po4a.org/>  par  l'équipe  de traduction francophone du projet
       Debian.

       Nicolas François, Guillaume Delacour, Cyril Brulebois,  Thomas  Huriaux
       et David Prévot ont réalisé cette traduction.

       L'équipe  de  traduction a fait le maximum pour réaliser une adaptation
       française de qualité. Veuillez signaler toute erreur de  traduction  en
       écrivant  à  <debian-l10n-french@lists.debian.org> ou par un rapport de
       bogue sur le paquet devscripts.

       La version anglaise la plus à jour de ce document est toujours  consul-
       table en ajoutant l'option « -L C » à la commande man.

DEBIAN                        Utilitaires Debian                    DEBUILD(1)

Generated by dwww version 1.15 on Sat Jun 29 01:39:07 CEST 2024.