dpkg-buildpackage(1) Construire depuis les sources des paquets binaires ou

SYNOPSIS

dpkg-buildpackage [options]

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 suivi de fakeoot debian/rules binary-target (sauf si une construction source seule a été demandée avec -S). Noter que binary-target est soit binary (cas par défaut, ou avec utilisation de -b) soit binary-arch (si -B 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 que seul un paquet binaire est à construire ; aucun fichier, appartenant à un paquet binaire ne dépendant pas d'une architecture, n'est à distribuer. Passé à dpkg-genchanges.
-A
Indique que seul un paquet binaire est à construire ; aucun fichier, appartenant à un paquet binaire ne dépendant pas d'une architecture, n'est à distribuer. 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é. 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 ou PGP 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çupgp. Si commande-de-signature veut recevoir ses paramètres à la manière de GPG plutôt qu'à la manière de PGP, il faut utiliser l'option -sgpg. commande-de-signature ne contiendra pas 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.
-h, --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.

Drapeaux de compilation

Les variables d'environnement CFLAGS, CXXFLAGS, FFLAGS, CPPFLAGS et LDFLAGS prennent les valeurs renvoyées par dpkg-buildflags. Veuillez consulter la page de manuel de ce programme pour plus d'informations.

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.

AUTEURS

Copyright © 1995-1996 Ian Jackson
Copyright © 2000 Wichert Akkerman
Copyright © 2007 Frank Lichtenheld
Copyright © 2008-2010 Raphaël Hertzog

Ce programme est un logiciel libre ; voyez la « GNU General Public Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de garantie.

TRADUCTION

Ariel VARDI <[email protected]>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <[email protected]>.