[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]


Guide du nouveau responsable Debian
Chapitre 6 - Construction du paquet


Tout devrait maintenant être prêt pour construire le paquet.


6.1 Reconstruction complète

Pour faire correctement la reconstruction complète d'un paquet, doivent être installés :

Ensuite, exécutez la commande suivante dans le répertoire des sources :

     $ dpkg-buildpackage

Ceci fera tout le nécessaire pour créer entièrement les paquets binaires et source à votre place :

Seul votre mot de passe GPG vous sera demandé, deux fois.

Une fois terminé, les fichiers suivants seront dans le répertoire parent (~/gentoo/) :

Les longues chaînes de chiffres dans les fichiers .dsc et .changes sont les sommes MD5, SHA1 et SHA256 des fichiers mentionnés. Les personnes téléchargeant vos fichiers peuvent les tester avec md5sum(1), sha1sum(1) ou sha256sum(1), et si les fichiers ne correspondent pas, elles sauront que le fichier a été corrompu ou falsifié.


6.2 Serveurs d'empaquetage automatique (« autobuilder »)

Debian gère de nombreux portages avec le réseau de serveurs d'empaquetage automatique faisant fonctionner des démons buildd sur de nombreux ordinateurs d'architectures différentes. Même si vous n'avez pas besoin de le faire vous-même, vous devriez être au courant de ce qui va arriver à vos paquets. La suite présente brièvement comment les paquets sont reconstruits sur ces différentes architectures. [43]

Les paquets « Architecture: any » sont reconstruits par les serveurs d'empaquetage automatique. Seront installés :

Ensuite, la commande suivante est exécutée dans le répertoire des sources :

     $ dpkg-buildpackage -B

Ceci fera tout le nécessaire pour créer entièrement les paquets binaires dépendants de l'architecture sur l'architecture concernée :

C'est pourquoi votre paquet est disponible sur plusieurs architectures.

Bien qu'il soit nécessaire d'installer les paquets énumérés dans le champ Build-Depends-indep pour l'empaquetage normal (cf. Reconstruction complète, Section 6.1), il n'est pas nécessaire de les installer sur le serveur d'empaquetage automatique puisqu'il ne construit que les paquets binaires dépendants de l'architecture. [44] Cette différence entre l'empaquetage normal et celui des serveurs d'empaquetage automatique permet de déterminer si les paquets doivent être énumérés dans le champ Build-Depends ou Build-Depends-indep du fichier debian/control, cf. Fichier control, Section 4.1.


6.3 Inclusion de orig.tar.gz pour l'envoi

Lors du premier envoi d'un paquet vers l'archive, il faut inclure les sources orig.tar.gz d'origine. Si la dernière entrée du journal de modification n'est pas la première pour cette version amont, vous devez passer l'option « -sa » à la commande dpkg-buildpackage. D'un autre côté, l'option « -sd » forcera l'exclusion des sources orig.tar.gz originales.


6.4 Commande debuild

Vous pouvez automatiser encore plus le processus de construction de la commande dpkg-buildpackage avec la commande debuild, cf. debuild(1).

La configuration de la commande debuild peut être faite via /etc/devscript.conf ou ~/.devscript. Les entrées suivantes sont suggérées :

     DEBSIGN_KEYID="Votre_ID_cle_GPG"
     DEBUILD_LINTIAN=yes
     DEBUILD_LINTIAN_OPTS="-i -I --show-overrides"

Ainsi, les paquets seront signés avec votre identifiant de clé GPG (bon pour les paquets parrainés) et vérifiés avec la commande lintian en détail.

Le nettoyage des sources et la reconstruction du paquet avec un compte utilisateur est aussi simple que :

     $ debuild

Remarquez que le paramètre « -sa » de dpkg-buildpackage pour intégrer les sources d'origine orig.tar.gz peut être précisé :

     $ debuild -sa

Le nettoyage de l'arborescence des sources est aussi simple que :

     $ debuild clean

6.5 Paquet pbuilder

Pour un environnement de construction propre (chroot) permettant de vérifier les dépendances de construction, pbuilder est très utile. [45] Cela garantit une construction propre des sources en construction automatique sous sid pour différentes architectures et évite l'erreur de gravité sérieuse FTBFS (« Fails To Build From Source » pour les échecs de construction à partir du paquet source), qui est toujours en catégorie RC (« Release Critical », bloquant la publication). Voir http://buildd.debian.org/ pour plus d'informations sur le constructeur automatique de paquet Debian.

Le paquet pbuilder est personnalisable de la manière suivante :

Les paquets créés seront alors signés avec votre clé GPG du répertoire ~/.gnupg/.

Le système chroot local de pbuilder doit d'abord être initialisé :

     $ sudo pbuilder create

Si vous possédez déjà les paquets sources terminés, exécutez les commande suivantes dans le répertoire contenant les fichiers toto.orig.tar.gz, toto.debian.tar.gz, et toto.dsc pour mettre à jour le système chroot de pbuilder et y construire les paquets binaires :

     $ sudo pbuilder --update
     $ sudo pbuilder --build toto.dsc

Remarquez que le paramètre « -sa » de dpkg-buildpackage pour intégrer les sources d'origine orig.tar.gz peut être précisé :

     $ sudo pbuilder --build --debbuildopts "-sa" toto.dsc

Les paquets nouvellement créés sont accessibles en /var/cache/pbuilder/result/ et n'appartiennent pas au superutilisateur.

Si vous possédez déjà l'arborescence des sources à jour, sans avoir créé les paquets sources correspondants, exécutez plutôt les commande suivantes dans le répertoire des sources avec le répertoire debian :

     $ sudo pbuilder --update
     $ pdebuild

Remarquez que le paramètre « -sa » de dpkg-buildpackage pour intégrer les sources d'origine orig.tar.gz peut être précisé :

     $ pdebuild --debbuildopts "-sa"

Vous pouvez vous connecter à l'environnement chroot avec la commande « pbuilder --login --save-after-login » et le configurer à votre convenance. Cet environnement peut être sauvegardé en quittant l'invite de commande avec ^D (Contrôle-D).

La dernière version de la commande lintian peut être exécutée dans l'environnement chroot en utilisant le script hook /var/cache/pbuilder/hooks/B90lintian configuré comme suit : [46]

     #!/bin/sh
     set -e
     install_packages() {
         apt-get -y --force-yes install "$@"
         }
     install_packages lintian
     echo "+++ début de lintian +++"
     su -c "lintian -i -I --show-overrides /tmp/buildd/*.changes" - pbuilder
     # utilisez ceci si vous ne voulez pas que lintian arrête la construction
     #su -c "lintian -i -I --show-overrides /tmp/buildd/*.changes; :" - pbuilder
     echo "+++ fin de lintian +++"

Un environnement sid à jour est nécessaire pour construire correctement les paquet destinés à sid. En fait, sid peut parfois être victime de problèmes qui peuvent rendre non souhaitable la migration de votre système complet. Le paquet pbuilder peut vous aider à faire face à ce genre de situation.

Vous pouvez avoir besoin de mettre à jour vos paquets stable après sa publication à destination de stable-proposed-updates, stable/updates, etc. [47] Dans ces cas-là, « j'utilise sid » est une mauvaise excuse pour ne pas les mettre à jour au plus tôt. Le paquet pbuilder vous permet d'accéder à la plupart des distributions dérivées de Debian pour la même architecture de microprocesseur.

Voir http://www.netfort.gr.jp/~dancer/software/pbuilder.html, pdebuild(1), pbuilderrc(5), et pbuilder(8) .


6.6 Commande git-buildpackage et similaires

Si les développeurs amont utilisent un système de gestion de version (VCS) pour maintenir leur code source, vous devriez envisager de l'utiliser. Cela rend la fusion et la sélection (« cherry-picking ») des correctifs amont plus facile. De nombreux paquets de scripts d'enrobage sont disponibles pour la construction de paquets Debian pour chaque système de gestion de version :

Ces paquets permettent la mise en place d'un environnement de développement plus agréable que l'utilisation manuelle des commandes quilt pour les utilisateurs avancés afin d'automatiser la construction de paquets. Ils ne seront pas détaillés dans ce tutoriel. [48]


6.7 Reconstruction rapide

Avec un paquet imposant, vous ne voudrez sans doute pas reconstruire depuis le début chaque fois que vous faites une petite modification à debian/rules. Pour tester, vous pouvez faire un fichier .deb sans reconstruire les sources amont comme ceci [49] :

     $ fakeroot debian/rules binary

Ou, simplement comme ceci pour voir s'il y a construction ou non :

     $ fakeroot debian/rules build

Une fois terminés vos ajustements, souvenez-vous de reconstruire en suivant la procédure correcte ci-dessus. Vous pouvez être incapable d'envoyer proprement si vous essayez d'envoyer des fichiers .deb construits de cette façon.


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ suivant ]


Guide du nouveau responsable Debian

version 1.2.25, 2010-12-21 14:06:56 UTC

Josip Rodin joy-mg@debian.org

Traduction par Frédéric Dumont frederic.dumont@easynet.be
Mohammed Adnène Trojette adn+deb@diwi.org
David Prévot david@tilapin.org
et les membres de la liste debian-l10n-french@lists.debian.org