dpkg-buildpackage
Section: dpkg suite (1)
Updated: 1970-01-01
Page Index
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 construction et des conflits de construction
(non effectué si -d ou --no-check-builddeps sont utilisés).
- 3.
-
Si une ou plusieurs cibles particulières ont été indiquées avec les options
-T ou --target, appel de ces cibles 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 ou
--no-pre-clean ont été utilisés).
- 4.
-
Exécution du point d'entrée source et appel de dpkg-source -b pour
créer le paquet source (si une construction source a été demandée avec
--build ou des options équivalentes).
- 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 --build=source ou des options
équivalentes). Noter que build-target et binary-target sont soit
build et binary (cas par défaut, ou si une construction any et
all a été demandée avec --build ou des options équivalentes), soit
build-arch et binary-arch (si une construction any et pas all a
été demandée avec --build ou des options équivalentes), soit
build-indep et binary-indep (si une construction all et pas any
a été demandée avec --build ou des options équivalentes).
- 6.
-
Exécution du point d'entrée buildinfo et appel de dpkg-genbuildinfo
pour créer un fichier .buildinfo. De nombreuses options de
dpkg-buildpackage sont passées à dpkg-genbuildinfo.
- 7.
-
Exécution du point d'entrée changes et appel de dpkg-genchanges pour
créer un fichier .changes. Le nom du fichier .changes dépendra du type
de construction et sera aussi spécifique que nécessaire mais pas plus ; pour
une construction qui inclut any, le nom sera
nom-de-source_version-binaire_architecture.changes, ou
pour une construction qui inclut all, le nom sera
nom-de-source_version-binaire_all.changes, ou pour une
construction qui inclut source, le nom sera
nom-de-source_version-source_sources.changes. De nombreuses
options de dpkg-buildpackage sont passées à dpkg-genchanges.
- 8.
-
Exécution du point d'entrée postclean et si -tc ou --post-clean
sont utilisés, appel de fakeroot debian/rules clean à nouveau.
- 9.
-
Appel de dpkg-source --after-build.
- 10.
-
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).
- 11.
-
It runs the sign hook and calls gpg (as long as it is not an
UNRELEASED build, or --no-sign is specified) to sign the .dsc file (if
any, unless -us or --unsigned-source is specified), the .buildinfo
file (unless -ui, --unsigned-buildinfo, -uc or
--unsigned-changes is specified) and the .changes file (unless -uc
or --unsigned-changes is specified).
- 12.
-
Exécution du point d'entrée done.
OPTIONS
Toutes les options longues peuvent être spécifiées à la fois sur la ligne
de commande et dans les fichiers de configuration utilisateur et de système
dpkg-buildpackage. Chaque ligne du fichier de configuration est soit une
option (identique à une option en ligne de commande mais sans tiret), soit
un commentaire (si elle commence par «
# »).
- --build=type
-
Indique le type de construction à partir d'une liste de composants
séparés par des virgules (depuis dpkg 1.18.5). Passé à dpkg-genchanges.
Les valeurs autorisées sont :
-
- source
-
Builds the source package.
Note: When using this value standalone and if what you want is simply to
(re-)build the source package from a clean source tree, using dpkg-source
directly is always a better option as it does not require any build
dependencies to be installed which are otherwise needed to be able to call
the clean target.
- any
-
Construit les paquets binaires spécifiques à l'architecture.
- all
-
Construit les paquets binaires indépendants de l'architecture.
- binary
-
Construit les paquets binaires particuliers et indépendants de
l'architecture. C'est un alias de any,all.
- full
-
Construction complète. C'est un alias de source,any,all, et il est
identique au cas par défaut où aucune option de construction n'est indiquée.
-
- -g
-
Équivalent de --build=source,all (depuis dpkg 1.17.11).
- -G
-
Équivalent de --build=source,any (depuis dpkg 1.17.11).
- -b
-
Équivalent de --build=binary ou --build=any,all.
- -B
-
Équivalent de --build=any
- -A
-
Équivalent de --build=all.
- -S
-
Équivalent à --build=source.
- -F
-
Équivalent de --build=full, --build=source,binary ou
--build=source,any,all (depuis dpkg 1.15.8).
- --target=cible[,...]
-
- --target cible[,...]
-
- -T, --rules-target=cible
-
Appelle debian/rules cible une fois par cible spécifiée, après avoir
mis en place l'environnement de construction (sauf pour appeler
dpkg-source --before-build), puis interrompt le processus de construction
(depuis dpkg 1.15.0, option longue depuis dpkg 1.18.8, pris en charge de
multiples cibles depuis dpkg 1.18.16). Si --as-root est également
utilisé, la commande sera exécutée avec les privilèges du superutilisateur
(voir --root-command). Noter que les cibles connues dont l'exécution par
root est imposée n'ont pas besoin de cette option (c'est-à-dire les cibles
clean, binary, binary-arch et binary-indep).
- --as-root
-
N'est utile qu'avec --target (depuis dpkg 1.15.0). Impose d'exécuter la
cible avec les privilèges du superutilisateur.
- -si
-
- -sa
-
- -sd
-
- -vversion
-
- -Cdescription-des-changements
-
- -m, --release-by=adresse-du-responsable
-
- -e, --build-by=adresse-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 (option longue
depuis dpkg 1.17.17). 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 on construit (option longue
depuis dpkg 1.17.17). 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 hôte.
- --target-arch architecture
-
Précise l'architecture Debian pour laquelle les binaires compilés vont
construire (depuis dpkg 1.17.17). 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 (depuis dpkg 1.17.17). 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.
- -P, --build-profiles=profil[,...]
-
Précise le ou les profils que l'on construit, sous forme d'une liste séparée
par des virgules (depuis dpkg 1.17.2, option longue depuis dpkg 1.18.8). 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[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 (depuis dpkg 1.17.10), ou un nombre illimité si jobs n'est pas
indiqué, équivalent à l'option make(1) du même nom (depuis dpkg 1.14.7,
option longue depuis dpkg 1.18.8). S'ajoutera tout seul à la variable
d'environnement MAKEFLAGS, afin que les appels suivants de make en héritent,
forçant donc le paramètre parallèle sur l'empaquetage (et éventuellement le
système de construction amont s'il utilise make) indépendamment de leur
prise en charge des constructions parallèle, ce qui pourrait provoquer des
échecs de construction. 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
valeur de j remplacera les options parallel=jobs ou parallel
dans la variable d'environnement DEB_BUILD_OPTIONS. Notez que la valeur
auto sera remplacée par le nombre réel de processeurs actuellement
actifs, et par conséquent ne sera pas transmise à aucun processus fils. Si
le nombre de processeurs en ligne ne peut pas être déduit, alors le code
utilisera par défaut une exécution sérielle (depuis dpkg 1.18.15), même si
cela ne devrait arriver que sur des systèmes exotiques et non pris en
charge.
- -J, --jobs-try[=tâches|auto]
-
Cette option (depuis dpkg 1.18.2, option longue depuis dpkg 1.18.8) est
équivalente à l'option -j sauf qu'elle ne configure pas la variable
d'environnement MAKEFLAGS et, à ce titre, il est plus sûr de l'utiliser
avec tous les paquets y compris ceux qui ne sont pas sécurisés pour une
construction parallèle.
Le comportement par défaut est auto (depuis dpkg 1.18.11). Fixer le
nombre de tâches à 1 rétablira un comportement sériel.
- -D, --check-builddeps
-
Vérification des dépendances de constructions et des conflits ; se termine
en cas de problèmes (option longue depuis dpkg 1.18.8). C'est le
comportement par défaut.
- -d, --no-check-builddeps
-
Pas de vérification des dépendances de constructions et des conflits (option
longue depuis dpkg 1.18.8).
- --ignore-builtin-builddeps
-
Pas de vérification des dépendances de constructions internes et des
conflits (depuis dpkg 1.18.2). Il s'agit des dépendances de construction
implicites spécifiques à la distribution habituellement requises dans un
environnement de construction, c'est l'ensemble de paquets appelé
Build-Essential.
- --rules-requires-root
-
Pas de prise en compte du champ Rules-Requires-Root, retour à l'ancienne
valeur par défaut (depuis dpkg 1.19.1).
- -nc, --no-pre-clean
-
Pas de nettoyage de l'arborescence des sources avant la construction (option
longue depuis dpkg 1.18.8). Implique -b si aucune des options -F,
-g, -G, -B, -A ou -S n'est utilisée). Implique -d avec
-S (depuis dpkg 1.18.0).
- --pre-clean
-
Nettoyage de l'arborescence des sources avant la construction (depuis
dpkg 1.18.8). C'est le comportement par défaut.
- -tc, --post-clean
-
Nettoyage de l'arborescence des sources (en utilisant
commande-pour-obtenir-privilèges-de-root debian/rules clean) après la
construction du paquet (option longue depuis dpkg 1.18.8).
- --no-post-clean
-
Pas de nettoyage de l'arborescence des sources après la construction du
paquet (depuis dpkg 1.19.1). C'est le comportement par défaut.
- --sanitize-env
-
Sanitize the build environment (since dpkg 1.20.0). This will reset or
remove environment variables, umask, and any other process attributes that
might otherwise adversely affect the build of packages. Because the
official entry point to build packages is debian/rules, packages cannot
rely on these settings being in place, and thus should work even when they
are not. What to sanitize is vendor specific.
- -r, --root-command=commande-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 (option
longue depuis dpkg 1.18.8). 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.
- -R, --rules-file=fichier-rules
-
Construire un paquet Debian implique généralement l'invocation de
debian/rules comme une commande avec de nombreux paramètres standard
(depuis dpkg 1.14.17, option longue depuis dpkg 1.18.8). 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 make (par exemple en utilisant
/usr/local/bin/make -f debian/rules comme fichier-rules).
- --check-command=commande-contrôleur
-
Commande utilisée pour vérifier le fichier .changes lui-même et tout
objet construit référencé dans le fichier (depuis dpkg 1.17.6). La commande
peut recevoir comme argument le nom de chemin de .changes. Cette commande
est en général lintian.
- --check-option=opt
-
Passer l'option opt à commande-contrôleur indiquée par
DEB_CHECK_COMMAND ou --check-command (depuis dpkg 1.17.6). Peut être
utilisé plusieurs fois.
- --hook-nom-de-point-d'entrée=commande-de-point-d'entrée
-
Définir 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 exécuté aux moments spécifiés par les étapes d'exécution (depuis
dpkg 1.17.6). 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). Tous
les points d'entrée seront exécutés dans le répertoire source dépaqueté.
Note: Hooks can affect the build process, and cause build failures if
their commands fail, so watch out for unintended consequences.
Les nom-de-point-d'entrée actuellement pris en charge sont :
init preclean source build binary buildinfo 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.
-
- --buildinfo-option=opt
-
Passer l'option opt à dpkg-genbuildinfo (depuis dpkg 1.18.11). Peut
être utilisé plusieurs fois.
- -p, --sign-command=commande-de-signature
-
When dpkg-buildpackage needs to execute GPG to sign a source control
(.dsc) file or a .changes file it will run sign-command (searching
the PATH if necessary) instead of gpg (long option since dpkg
1.18.8). sign-command will get all the arguments that gpg would have
gotten. sign-command should not contain spaces or any other shell
metacharacters.
- -k, --sign-key=identifiant-clé
-
Préciser une clé pour la signature des paquets (option longue depuis
dpkg 1.18.8).
- -us, --unsigned-source
-
Ne pas signer le paquet source (option longue depuis dpkg 1.18.8).
- -ui, --unsigned-buildinfo
-
Ne pas signer le fichier .buildinfo (depuis dpkg 1.18.19).
- -uc, --unsigned-changes
-
Ne signer ni le fichier .buildinfo, ni le fichier .changes (option
longue depuis dpkg 1.18.8).
- --no-sign
-
Aucune signature de fichier, y compris du paquet source, du fichier
.buildinfo et du fichier .changes (depuis dpkg 1.18.20).
- --force-sign
-
Forcer la signature des fichiers produits (depuis dpkg 1.17.0)
indépendamment de -us, --unsigned-source, -ui,
--unsigned-buildinfo, -uc, --unsigned-changes ou d'autres
heuristiques internes.
- -sn
-
- -ss
-
- -sA
-
- -sk
-
- -su
-
- -sr
-
- -sK
-
- -sU
-
- -sR
-
- -i, --diff-ignore[=expression-rationnelle]
-
- -I, --tar-ignore[=motif]
-
- -z, --compression-level=niveau
-
- -Z, --compression=compression
-
Chaîne passée telle quelle à dpkg-source. Voir la page de manuel
correspondante.
- --source-option=opt
-
Passer l'option opt à dpkg-source (depuis dpkg 1.15.6). Peut être
utilisé plusieurs fois.
- --changes-option=opt
-
Passer l'option opt à dpkg-genchanges (depuis dpkg 1.15.6). Peut être
utilisé plusieurs fois.
- --admindir=répertoire
-
- --admindir rép
-
Changer l'endroit où se trouve la base de données de dpkg (depuis
dpkg 1.14.0). 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
Environnement externe
- DEB_CHECK_COMMAND
-
Si cette option est utilisée, elle le sera comme commande pour contrôler le
fichier .changes (depuis dpkg 1.17.6). 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 (depuis dpkg 1.17.2). Remplacée par l'option
--sign-key.
- DEB_BUILD_OPTIONS
-
Si cette option est utilisée, elle contiendra une liste séparée par des
espaces d'options qui pourraient affecter le processus de construction dans
debian/rules et le comportement de certaines commandes de dpkg.
La variable DEB_CHECK_COMMAND sera ignorée avec nocheck. Avec
parallel=N les tâches parallèles seront fixées à N, remplacée par
l'option --jobs-try.
- DEB_BUILD_PROFILES
-
Si cette option est utilisée, elle sera utilisée comme profil(s) de
construction actif(s) pour le paquet à construire (depuis
dpkg 1.17.2). C'est une liste séparée par des espaces de noms de
profil. Cette option est outrepassée par l'option -P.
- DPKG_COLORS
-
Définit le mode de couleur (depuis dpkg 1.18.5). Les valeurs actuellement
acceptées sont auto (par défaut), always et never.
- DPKG_NLS
-
Si cette variable est définie, elle sera utilisée pour décider l'activation
de la prise en charge des langues (NLS - Native Language Support), connu
aussi comme la gestion de l'internationalisation (ou i18n) (depuis
dpkg 1.19.0). Les valeurs permises sont : 0 et 1 (par défaut).
Environnement interne
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, parce que
ce fichier est le point d'entrée principal pour la construction des paquets
et son exécution autonome devrait être prise en charge.
- DEB_BUILD_*
-
- DEB_HOST_*
-
- DEB_TARGET_*
-
dpkg-architecture est lancé avec les paramètres de -a et -t. Toute
variable retournée par l'option -s est intégrée dans l'environnement de
construction.
- DEB_RULES_REQUIRES_ROOT
-
Cette variable est fixée à la valeur obtenue du champ Rules-Requires-Root
ou de la ligne de commande. Lorsqu'elle est configurée, ce sera une valeur
valable pour le champ Rules-Requires-Root. Elle est utilisée pour
indiquer à debian/rules si la spécification rootless-builds.txt est
prise en charge.
- DEB_GAIN_ROOT_CMD
-
Cette valeur est fixée à commande-pour-obtenir-privilèges-de-root si le
champ Rules-Requires-Root est fixé à une valeur différente de no ou
binary-targets.
- SOURCE_DATE_EPOCH
-
Cette valeur est fixée à l'horodatage d'Unix depuis « l'epoch » de la
dernière entrée de debian/changelog, si elle n'a pas déjà été définie.
FICHIERS
- /etc/dpkg/buildpackage.conf
-
Fichier de configuration pour l'ensemble du système
- $XDG_CONFIG_HOME/dpkg/buildpackage.conf ou
-
- $HOME/.config/dpkg/buildpackage.conf
-
Fichier de configuration propre à l'utilisateur
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, si le
paquet source ne construit pas à la fois les paquets binaires indépendants
et dépendants de l'architecture (depuis dpkg 1.18.8), 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-genbuildinfo(1),
dpkg-genchanges(1),
fakeroot(1),
lintian(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>.