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) 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 particuilère a été indiquée avec les options -T ou --target, appel de cette cible et arrêt. Dans le cas contraire, appel de fakeroot debian/rules clean pour nettoyage de l'arborescence source (sauf si -nc a été utilisé).
4.
Appel de dpkg-source -b pour créer le paquet source (sauf si une contruction binaire seule a été demandée avec -b, -B ou -A).
5.
Appel de debian/rules build-target suivi 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 est utilisé) soit build-indep et binary-indep (si -A est utilisé).
6.
Appel de gpg pour signature du fichier .dsc (sauf si -us est utilisé).
7.
Appel de dpkg-genchanges pour créer un fichier .changes. De nombreuses options de dpkg-buildpackage sont passées à dpkg-genchanges.
8.
Appel de gpg pour signer le fichier .changes (sauf si -uc est utilisé).
9.
Si -tc est utilisé, appel de fakeroot debian/rules clean à nouveau. Enfin, appel de dpkg-source --after-build.

OPTIONS

-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.
-aarchitecture
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.
-ttype-de-système-gnu
Précise le type de système GNU pour lequel construire. Il peut être utilisé à la place de -a ou en tant que complément afin de remplacer le type de système GNU par défaut de l'architecture Debian cible.
-jjobs
Nombre de processus simultanés qui peuvent être exécutés, é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 à 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 dans la variable d'environnement DEB_BUILD_OPTIONS remplace la valeur de l'option -j si elle est précisée.
-D
Vérifier les dépendances de constructions et les conflits ; se termine en cas de problèmes. Ceci est le comportement par défaut.
-d
Ne pas vérifier les dépendances de constructions et les conflits.
-nc
Ne pas nettoyer l'arborescence des sources (implique -b si aucune des options -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).
-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é via PATH si nécessaire) au lieu de pgp. commande-de-signature reçoit tous les paramètres qu'aurait reçu 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.
-i[regexp]
 
-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.
--changes-option=opt
Passe l'option opt à dpkg-genchanges.
--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

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.

Les drapeaux de compilation ne sont plus exportés.

Entre les versions 1.14.17 and 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.

COMPATIBILITÉ ARRIÈRE

dpkg-buildpackage utilise les cibles build-arch et build-indep depuis la version 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 dans 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), 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>.
04-05-2012 Projet Debian