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>.