Provided by: devscripts_2.23.6_all bug

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 relatives  à  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
       paramètres  de  l'option  --lintian-opts  pour  ce  dernier.  Les  options  --lintian   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 options 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 paramètres binary,
       binary-arch, binary-indep et clean. Dans ce cas, debuild cherchera à obtenir les droits du
       superutilisateur   et  à  exécuter  debian/rules  avec  ce(s)  paramètre(s).  Les  options
       --rootcmd=commande_pour_devenir_superutilisateur                                        ou
       -rcommande_pour_devenir_superutilisateur       peuvent       être       utilisées.      La
       commande_pour_devenir_superutilisateur est en règle générale une de celles-ci :  fakeroot,
       sudo  ou super. Lisez ci-dessous pour une discussion plus approfondie sur ce point. Encore
       une fois, les options permettant de préserver l'environnement 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, respectivement.
       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/changelog 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    DEVSCRIPTS_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 comportement 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  actuel  (donné  par
       pwd(1))    correspond    à    l'expression    rationnelle    donnée    par   la   variable
       DEVSCRIPTS_CHECK_DIRNAME_REGEX   du   fichier   de   configuration   ou    par    l'option
       --check-dirname-regex  expression_rationnelle. Il s'agit d'une expression rationnelle Perl
       (voir perlre(1)), qui sera ancré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'environnement 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 variable 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 standard 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 variable 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  commande  permettant  de  devenir  superutilisateur. La
       meilleure d'entre  elles  est  probablement  fakeroot(1),  puisqu'elle  ne  nécessite  pas
       d'accorder  véritablement  de  droits.  super(1) et sudo(1) sont d'autres possibilités. Si
       aucune option -r (ou --rootcmd) n'est donnée (rappelez-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 devenir 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
       recommandée, mais fonctionnera. debuild peut être installé avec les permissions  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 variantes 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-statoverride  pour  modifier  les  permissions  de
       /usr/bin/debuild. Cela permettra 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-buildpackage  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 debian/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  debian/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   debian/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 signature (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  numé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 utilisation 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-devenir-superutilisateur
              Commande pour obtenir (ou simuler) les droits du superutilisateur.

       --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 variables  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  version  possède  une
              révision  pour  Debian, ne pas vérifier si le fichier .orig.tar.gz ou le répertoire
              .orig existe avant de démarrer 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éinstauré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épendances 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 ~/.devscripts 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 paramè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 évalués. Les variables actuellement identifiées sont :

       DEBUILD_PRESERVE_ENV
              Lui attribuer la valeur yes équivaut à utiliser l'option --preserve-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 options --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
              espace, il sera nécessaire d'ajouter des guillemets supplémentaires.  Par  exemple,
              pour  forcer  à  toujours  utiliser  votre clef GPG, même pour les envois parrainés
              ("sponsored upload"), le fichier de configuration pourra contenir :

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

              ce qui fournit  exactement  deux  options.  Sans  les  guillemets  supplé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 options -r,  -d  ou  -D,
              elle  sera  toujours  prise en compte par debuild. Remarquez que l'option -r placée
              ici écrasera le paramè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'invocation 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) paquet(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_BUILDPACKAGE_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 nouveau, vous pouvez également utiliser
       l'option du fichier de configuration 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),    fakeroot(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 Gilbey <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  consultable  en  ajoutant
       l'option « -L C » à la commande man.