Scroll to navigation

dpkg-buildpackage(1) Utilitaires de dpkg dpkg-buildpackage(1)

NOM

dpkg-buildpackage - Construire depuis les sources des paquets binaires ou sources

SYNOPSIS

dpkg-buildpackage [option...]

DESCRIPTION

dpkg-buildpackage est un programme qui permet d'automatiser la construction d'un paquet Debian. Il comporte les étapes suivantes :
1.
Préparation de l'environnement de compilation par positionnement de diverses variables d'environnement (voir VARIABLES D'ENVIRONNEMENT), exécution du point d'entrée init et appel de dpkg-source --before-build (sauf si -T ou --target ont été utilisés).
2.
Contrôle des dépendances de constructions et des conflits de construction (non effectué si -d est utilisé).
3.
Si une cible particulière a été indiquée avec les options -T ou --target, appel de cette cible et arrêt. Dans le cas contraire, exécution du point d'entrée preclean et appel de fakeroot debian/rules clean pour nettoyage de l'arborescence source (sauf si -nc a été utilisé).
4.
Exécution du point d'entrée source et appel de dpkg-source -b pour créer le paquet source (sauf si une construction binaire seule a été demandée avec -b, -B ou -A).
5.
Exécution du point d'entrée build et appel de debian/rules build-target, puis exécution du point d'entrée binary suivie de fakeroot debian/rules binary-target (sauf si une construction source seule a été demandée avec -S). Noter que build-target et binary-target sont soit build et binary (cas par défaut, ou avec utilisation de -b) soit build-arch et binary-arch (si -B ou -G est utilisé) soit build-indep et binary-indep (si -A ou -g est utilisé).
6.
Exécution du point d'entrée changes et appel de dpkg-genchanges pour créer un fichier .changes. De nombreuses options de dpkg-buildpackage sont passées à dpkg-genchanges.
7.
Exécution du point d'entrée postclean et si -tc est utilisé, appel de fakeroot debian/rules clean à nouveau.
8.
Enfin, appel de dpkg-source --after-build.
9.
Exécution du point d'entrée check et appel d'un contrôleur de paquet pour le fichier .changes (dans le cas où une commande est spécifiée dans DEB_CHECK_COMMAND ou avec --check-command).
10.
Exécution du point d'entrée sign et appel de gpg2 ou de gpg pour signature des fichiers .dsc (sauf si -us est utilisé ou pour des constructions UNRELEASED) et .changes (sauf si -uc est utilisé ou pour des constructions UNRELEASED).
11.
Il exécute le point d'entrée done.

OPTIONS

-g
Indique une construction limitée aux paquets source et binaires indépendants de l'architecture. Passé à dpkg-genchanges.
-G
Indique une construction limitée aux paquets source et binaires dépendants de l'architecture. Passé à dpkg-genchanges.
-b
Indique que seul un paquet binaire est à construire ; aucun fichier source n'est à construire et/ou à distribuer. Passé à dpkg-genchanges.
-B
Indique une construction uniquement binaire, limitée aux paquets dépendant d'une architecture. Passé à dpkg-genchanges.
-A
Indique une construction uniquement binaire, limitée aux paquets ne dépendant pas d'une architecture. Passé à dpkg-genchanges.
-S
Ne construit qu'un paquet source, aucun paquet binaire ne sera construit. Passé à dpkg-genchanges.
-F
Construction complète où les paquets sources et binaires sont construits. Identique au cas par défaut où aucune option de construction n'est indiquée.
--target=cible
--target cible -Tcible Appelle debian/rules cible après avoir mis en place l'environnement de construction, puis interrompt le processus de construction. Si --as-root est également utilisé, la commande sera exécutée avec les privilèges du superutilisateur (voir -r). Noter que les cibles dont l'exécution par root est imposée par la Charte Debian n'ont pas besoin de cette option.
--as-root
N'est utile qu'avec --target. Impose d'exécuter la cible avec les privilèges du superutilisateur.
-si
-sa -sd -vversion -Cdescription-des-changements -madresse-du-responsable -eadresse-du-responsable Passé tel quel à dpkg-genchanges. Voir sa page de manuel.
-a, --host-arch architecture
Précise l'architecture Debian pour laquelle on construit. L'architecture de la machine sur laquelle on construit est automatiquement déterminée ; c'est aussi l'architecture par défaut de la machine hôte.
-t, --host-type type-de-système-gnu
Précise le type de système GNU pour lequel construire. Il peut être utilisé à la place de --host-arch ou en tant que complément afin de remplacer le type de système GNU par défaut de l'architecture Debian cible.
--target-arch architecture
Précise l'architecture Debian pour laquelle les binaires compilés vont construire. La valeur par défaut est l'architecture de la machine hôte.
--target-type type-de-système-gnu
Précise le type de système GNU pour lequel les binaires compilés vont construire. Il peut être utilisé à la place de --target-arch ou en tant que complément afin de remplacer le type de système GNU par défaut de l'architecture Debian cible.
-Pprofil[,...]
Précise le ou les profils que l'on construit, sous forme d'une liste séparée par des virgules. Le comportement par défaut est de construire pour un profil non spécifique. Cela les définit également (sous la forme d'une liste séparée par des espaces) en tant que variable d'environnement DEB_BUILD_PROFILES, ce qui permet, par exemple, au fichiers debian/rules d'utiliser cette information pour des constructions conditionnelles.
-j[jobs|auto]
Nombre de processus simultanés qui peuvent être exécutés, nombre de processus correspondant au nombre de processeurs en ligne si auto est indiquée, ou un nombre illimité si jobs n'est pas indiqué, équivalent à l'option make(1) du même nom. S'ajoutera tout seul à la variable d'environnement MAKEFLAGS, afin que les appels suivants de make en héritent. Ajoute aussi parallel=jobs ou parallel= à la variable d'environnement DEB_BUILD_OPTIONS ce qui permet aux fichiers debian/rules d'utiliser cette information pour leurs propres besoins. La présence de parallel=jobs ou parallel= dans la variable d'environnement DEB_BUILD_OPTIONS remplace la valeur de l'option -j si elle est précisée. Notez que la valeur auto sera remplacée par le nombre réel de processeurs actuellement actifs, et par conséquent ne sera pas transmis à aucun processus fils. Si le nombre de processeur en ligne ne peut pas être déduit, alors le code utilisera par défaut un nombre illimité.
-D
Vérification les dépendances de constructions et les conflits ; se termine en cas de problèmes. Ceci est le comportement par défaut.
-d
Pas de vérification des dépendances de constructions et des conflits.
-nc
Pas de nettoyage de l'arborescence des sources (implique -b si aucune des options -F, -g, -G, -B, -A ou -S n'est utilisée).
-tc
Nettoyage de l'arborescence (en utilisant commande-pour-obtenir-privilèges-de-root debian/rules clean) après la construction du paquet.
-rcommande-pour-obtenir-privilèges-de-root
Quand dpkg-buildpackage doit exécuter une partie du processus de construction en tant que root, il préfixe la commande exécutée par commande-pour-obtenir-privilèges-de-root, si une a été spécifiée. Si ce n'est pas le cas alors fakeroot est utilisé par défaut. commande-pour-obtenir-privilèges-de-root doit débuter par le nom d'un programme accessible depuis PATH et avoir comme arguments le nom de la commande réelle avec les arguments qu'elle doit prendre. commande-pour-obtenir-privilèges-de-root peut recevoir des paramètres (ils doivent être séparés par des espaces) mais aucun « métacaractère » de l'interpréteur de commandes. Classiquement commande-pour-obtenir-privilèges-de-root devrait être fakeroot, sudo, super ou really. su ne va pas, puisque ce programme peut uniquement utiliser l'interpréteur de commandes de l'utilisateur avec l'option -c au lieu de passer directement les arguments à la commande qui doit être exécutée.
-Rfichier-rules
Construire un paquet Debian implique généralement l'invocation de debian/rules comme une commande avec de nombreux paramètres standards. Avec cette option, il est possible d'utiliser un autre programme à utiliser pour la construction de paquet (ainsi que ses paramètres séparés par des espaces). Une autre utilisation possible est d'exécuter le fichier rules standard avec un autre programme de construction (par exemple en utilisant /usr/local/bin/make -f debian/rules comme fichier-rules).
--check-command=commande-contrôleur
Commande utiliser pour vérifier le fichier .changes lui-même et tout objet construit référencé dans le fichier. La commande peut recevoir comme argument le nom de chemin de .changes. Cette commandement est en général lintian.
--check-option=opt
Passe l'option opt à commande-contrôleur indiquée par DEB_CHECK_COMMAND ou --check-command. Peut être utilisé plusieurs fois.
--hook-nom-de-point-d'entrée=commande-de-point-d'entrée
Définit le code spécifié de l'interpréteur de commandes commande-de-point-d'entrée comme point d'entrée nom-de-point-d'entré qui sera éxécuté aux moments spécifiés par les étapes d'exécution. Les points d'entrée seront toujours exécutés même si l'action suivante n'est pas effectuée (sauf pour le point d'entrée binary).
Note : Les points d'entrée sont susceptibles d'affecter le processus de construction et provoquer des échecs de construction si leurs commandes échouent, donc attention aux conséquences inattendues.
Les nom-de-point-d'entrée actuellement pris en charge sont :
init preclean source build binary changes postclean check sign done
La commande-point-d'entrée gère les chaînes de formatage de substitution suivantes, qui lui sont appliquées avant exécution :
%%
Un caractère % seul
%a
Une valeur booléenne (0 ou 1) qui indique si l'action suivante est effectuée.
%p
Nom du paquet source
%v
La version du paquet source.
%s
La version du paquet source (sans l'« epoch »).
%u
La version amont.
-pcommande-de-signature
Quand dpkg-buildpackage doit exécuter GPG pour signer un fichier source de contrôle ( .dsc) ou un fichier .changes, il exécute commande-de-signature (recherchée dans PATH si nécessaire) au lieu de gpg2 ou pgp. commande-de-signature reçoit tous les paramètres qu'auraient reçu gpg2 ou pgp. commande-de-signature ne devra pas contenir d'espace ni aucun « métacaractère » de l'interpréteur de commandes.
-kkey-id
Précise une clé pour la signature des paquets.
-us
Ne pas signer le paquet source.
-uc
Ne pas signer le fichier .changes.
--force-sign
Force la signature des fichiers produits (depuis dpkg 1.17.0) indépendamment de -us, -uc ou d'autres heuristiques internes.
-i[regex]
-I[motif] -s[nsAkurKUR] -z, -Z Chaîne passée telle quelle à dpkg-source. Voir la page de manuel correspondante.
--source-option=opt
Passe l'option opt à dpkg-source. Peut être utilisé plusieurs fois.
--changes-option=opt
Passe l'option opt à dpkg-genchanges. Peut être utilisé plusieurs fois.
--admindir=dir
--admindir rép Change l'endroit où se trouve la base de données de dpkg. Par défaut, c'est /var/lib/dpkg.
-?, --help
Affiche un message d'aide puis quitte.
--version
Affiche le numéro de version puis quitte.

ENVIRONNEMENT

DEB_CHECK_COMMAND
Si cette option est utilisée, elle le sera comme commande pour contrôler le fichier .changes. Remplacée par l'option --check-command.
DEB_SIGN_KEYID
Si cette option est utilisée, elle le sera pour la signature des fichiers .changes et .dsc. Remplacée par l'option -k.
DEB_BUILD_OPTIONS
Si cette option est utilisée et contient la valeur nocheck, la variable DEB_CHECK_COMMAND sera ignorée.
DEB_BUILD_PROFILES
Si cette option est utilisée, elle sera utilisée comme profil(s) de construction actif(s) pour le paquet à construire. C'est une liste séparée par des espaces de noms de profil. Cette option est outrepassée par l'option -P.

Dépendance des drapeaux d'environnement exportés

Même si dpkg-buildpackage exporte certaines variables, debian/rules ne doit pas dépendre de leur présence, mais doit préférablement utiliser l'interface correspondante pour retrouver les valeurs nécessaires.

Variables positionnées par dpkg-architecture

dpkg-architecture est lancé avec les paramètres de -a and -t. Toute variable retournée par l'option -s est intégrée dans l'environnement de construction.

NOTES

Les drapeaux de compilation ne sont plus exportés.

Entre les versions 1.14.17 et 1.16.1, dpkg-buildpackage exportait les drapeaux de compilation ( CFLAGS, CXXFLAGS, FFLAGS, CPPFLAGS et LDFLAGS) avec les valeurs que renvoyait dpkg-buildflags. Cela n'est plus le cas.

Cibles construites par défaut

dpkg-buildpackage utilise les cibles build-arch et build-indep depuis dpkg 1.16.2. Ces cibles sont donc obligatoires. Cependant, pour éviter de casser les paquets existants et faciliter la transition, la cible build sera utilisée par défaut si make -f debian/rules -qn build-target renvoie 2 comme code de retour.

BOGUES

On devrait pouvoir mettre des espaces et des métacaractères du shell et les arguments initiaux de commande-pour-obtenir-privilèges-de-root et commande-de-signature.

VOIR AUSSI

dpkg-source(1), dpkg-architecture(1), dpkg-buildflags(1), dpkg-genchanges(1), fakeroot(1), lintian(1), gpg2(1), gpg(1).

TRADUCTION

Ariel VARDI <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.
12-12-2013 Projet Debian