Guide du nouveau responsable Debian
Notes de bas de page

1

Ce document suppose que vous utilisez le système Squeeze. Si vous avez l'intention de suivre ce texte avec un système Lenny, vous devez au moins installer les paquets dpkg et debhelper rétroportés.

2

Il y a d'autres paquets similaires mais spécialisés comme dh-make-perl, dh-make-php, etc.

3

Cela dit, il existera toujours des paquets qui vaudront la peine d'être empaquetés.

4

Vous pouvez identifier le format de l'archive en utilisant la commande file si l'extension du fichier ne suffit pas.

5

Ce programme est déjà empaqueté. La version actuelle 0.15.3 a changé substantiellement depuis la version 0.9.12 des exemples suivants.

6

Voir le tutoriel des Autotools et /usr/share/doc/autotools-dev/README.Debian.gz.

7

Les versions peuvent être comparée avec « dpkg --compare-versions ver1 op ver2 ». Voir dpkg(1).

8

Le texte qui suit présupposé que l'interpréteur de commandes que vous utilisez à la connexion est Bash. Si vous utilisez un autre interpréteur de commandes, par exemple zsh, il est nécessaire d'utiliser le fichier de configuration approprié à la place de ~/.bashrc.

9

Si les sources amont fournissent le répertoire debian et son contenu, exécutez plutôt la commande dh_make avec l'option --addmissing. Le nouveau format source 3.0 (quilt) est assez robuste pour ne pas casser même avec ces paquets. Vous pourriez avoir besoin de mettre à jour le contenu fourni en amont pour votre paquet Debian.

10

Il y a peu de choix à ce moment : « s » pour « binaire simple », « i » pour « binaire indépendant de l'architecture », « m » pour « binaires multiples », « l » pour « bibliothèque », « k » pour « module de noyau », « n » pour « correctif de noyau » et « b » pour « cdbs ». Ce document se concentre sur l'utilisation du paquet debhelper avec la commande dh. Ce document se concentre sur l'utilisation de la nouvelle commande dh pour un « binaire simple » et l'effleure pour un « binaire indépendant de l'architecture » et un « binaire multiple ». Le paquet cdbs propose une autre infrastructure de scripts de paquets que la commande dh et sort du cadre de ce document.

11

Cette configuration peut-être désactivée en démarrant la commande quilt comme ceci : « quilt --quiltrc /dev/null ... ».

12

Le répertoire debian/patches devrait maintenant exister si vous exécutez dh_make comme décrit auparavant. Cet exemple de manipulation le créé seulement si vous mettez à jour le paquet existant.

13

Pour les paquets binaires multiples, la commande dh_auto_install utilise debian/tmp comme répertoire temporaire alors que la commande dh_install, à l'aide des fichiers debian/paquet-1.install et debian/paquet-2.install, séparera le contenu de debian/tmp dans les répertoires temporaires debian/paquet-1 et debian/paquet-2 pour créer les paquets binaires multiples *.deb.

14

Il s'agit simplement d'un exemple pour montrer à quoi le fichier Makefile devrait ressembler. Si le fichier Makefile est créé par la commande ./configure, la bonne façon de modifier ce genre de Makefile est d'exécuter la commande ./configure à partir de la commande dh_auto_configure avec les options par défaut y compris --prefix=/usr.

15

NdA : ceci n'est pas le meilleur exemple dans la mesure où le paquet libncurses est maintenant livré avec un lien symbolique libcurses.so. Les suggestions sont les bienvenues :-)

16

Cette situation quelque peu étrange est une fonctionnalité bien expliquée dans la Charte Debian, note de bas de page 48. Ce n'est pas lié à l'utilisation de la commande dh dans le fichier debian/rules mais au fonctionnement de dpkg-buildpackage. La même situation s'applique au système de construction automatique pour Ubuntu.

17

Certaines personnes utilisent des valeurs de distribution non valables comme UNRELEASED pour éviter d'envoyer un paquet accidentellement lors de la mise à jour d'un paquet dans un système de gestion de version partagé.

18

Cette cible est utilisée par « dpkg-buildpackage » comme en Reconstruction complète, Section 6.1.

19

Cette cible est utilisée par « dpkg-buildpackage -B » comme en Serveurs d'empaquetage automatique (« autobuilder »), Section 6.2.

20

Cette cible est utilisée par « dpkg-buildpackage -A ».

21

Ceci utilise les fonctionnalités du nouveau debhelper V7. Ses concepts fondateurs sont expliqués dans la présentation « Pas le debhelper de papy » réalisé lors de la dixième conférence Debian par l'auteur de debhelper. Sous Lenny, dh_make crée un fichier rules beaucoup plus compliqué avec de nombreux scripts dh_* énumérés pour chaque cible obligatoire explicitement et les gèle dans l'état de l'empaquetage initial. Cette nouvelle commande dh plus simple libère le responsable de cette contrainte. Vous gardez les pleins pouvoirs de personnalisation avec les cibles override_dh_*. Voir Personnalisation du fichier rules, Section 4.4.3. Il se base uniquement sur le paquet debhelper et ne rend pas obscur le processus de construction comme le paquet cdbs.

22

Vous pouvez vérifier les réelles séquences de programmes dh_* pour une cible donnée avec « dh --no-act cible » ou « debian/rules -- '--no-act cible' » sans vraiment les exécuter.

23

En assumant que le paquet python-support soit installé sur le système.

24

Pour obtenir des informations complètes sur le rôle exact de tout ces scripts dh_* et sur leurs options, veuillez lire leur page de manuel respective et la documentation de debhelper.

25

Ces commandes gèrent d'autres environnements, comme setup.py, qui peuvent être énumérés en exécutant « dh_auto_build --list » dans le répertoire d'un paquet source.

26

En fait il recherche la première cible disponible parmi distclean, realclean et clean dans Makefile et l'exécute.

27

En fait il recherche la première cible disponible parmi test et check dans Makefile et l'exécute.

28

Si un paquet installe le fichier /usr/share/perl5/Debian/Debhelper/Sequence/nom_personnalise.pm, vous devriez déclencher sa fonction de personnalisation avec « dh --with nom-personnalise $@ .

29

L'utilisation de la commande dh_pysupport est préférable à dh_pycentral. N'utilisez pas la commande dh_python.

30

Avec Lenny, pour modifier le comportement d'un script dh_* il fallait trouver et adapter la ligne pertinente du fichier rules.

31

Le paquet gentoo utilise le système de construction GNU, ou Autotools. Voir http://fr.wikipedia.org/wiki/Autotools.

32

dh_auto_build sans autre option exécutera la première cible du fichier Makefile.

33

Les fichiers debian/changelog et debian/NEWS sont toujours installés automatiquement. Le journal de modification amont est cherché en convertissant les noms de fichiers en minuscule puis en vérifiant l'existence de changelog, changes, changelog.txt, et changes.txt.

34

Cela remplace la commande obsolète dh_movefiles(1) configurée par le fichier files.

35

Si la commande n'a pas non plus de page info, mais possède des fichiers de documentation dans le répertoire /usr/share/paquet, vous devriez modifier manuellement la page créée par la commande help2man.

36

Il y a eu une réorganisation majeure de la structure du menu pour Squeeze.

37

Même s'ils ont été présentés par un raccourci Bash « {post|pre}{inst|rm} », il est préférable d'utiliser un shell pur POSIX (non Bash) pour ces scripts du responsable pour des raisons de compatibilité.

38

Consulter DebSrc3.0 pour un condensé d'informations sur la conversion des sources au formats source 3.0 (quilt) et 3.0 (native).

39

En fait, ce nouveau format permet de gérer des archives amont multiples et plusieurs méthodes de compression. Ces considérations sortent du cadre de ce document.

40

Plusieurs méthodes de maintenance des ensembles de correctifs ont été proposés et sont utilisés dans les paquets Debian. Le système quilt est le système de maintenance conseillé. Les autres sont dpatch, dbs, cdbs, etc. La plupart d'entre-eux conservent aussi les correctifs dans des fichiers debian/patches/*.

41

Si vous demandez à un parrain d'envoyer le paquet, cette séparation plutôt claire et cette documentation de vos changements sont très importantes pour accélérer l'examen du paquet.

42

Il est possible de ne pas appliquer les correctifs quilt du format source 3.0 (quilt) à la fin de l'extraction avec l'option --skip-patches. Sinon, il est aussi possible d'exécuter « quilt pop -a » après l'extraction normale.

43

Le véritable réseau de serveurs d'empaquetage automatique a un fonctionnement autrement plus compliqué que celui présenté ici. De tels détails sortent du cadre de ce document.

44

contrairement à celui du paquet pbuilder, l'environnement chroot du paquet sbuild utilisé par les serveurs d'empaquetage automatique n'est pas forcément minimal et plusieurs paquets peuvent rester installés.

45

Comme le paquet pbuilder est en constante évolution, vous devez vérifier les possibilités réelles de la configuration en consultant la dernière documentation officielle.

46

Il est supposé que HOOKDIR="/var/cache/pbuilder/hooks" est déjà configuré. De nombreux exemples de scripts hook sont disponibles dans le répertoire /usr/share/doc/pbuilder/examples.

47

Il existe des restrictions pour de telles mises à jour de paquet stable.

48

Voici quelques ressources disponibles sur la toile pour les utilisateurs avancés :

49

Les variables d'environnement qui devraient normalement être configurées correctement à cette étape ne sont pas configurées par cette méthode. Ne créez jamais de vrai paquets pour l'envoi avec cette méthode rapide.

50

Il n'est pas nécessaire d'ajouter le paramètre « -i -I --show-overrides » à lintian si vous avez personnalisé /etc/devscripts.conf ou ~/.devscripts comme décrit en Commande debuild, Section 6.4.

51

Le paquet dput semble fournir plus de fonctionnalités, et devient plus populaire que le paquet dupload. Il utilise le fichier /etc/dput pour la configuration globale et le fichier ~/.dput.cf pour la configuration par utilisateur. Il gère aussi les services relatifs à Ubuntu d'origine.

52

Voyez ftp://ftp.upload.debian.org/pub/UploadQueue/README. Vous pouvez aussi utiliser la commande dcut du paquet dput.

53

Pour obtenir la date au format voulu, utilisez « LANG=C date -R ».

54

Si un paquet toto est empaqueté avec l'ancien format 1.0, ce peut plutôt être réalisé en exécutant « zcat /chemin/vers/toto_ancienneversion.diff.gz|patch -p1 » depuis la nouvelle arborescence source décompressée.

55

Si la commande uscan télécharge les sources mises à jour mais n'exécute pas la commande uupdate, vous devriez corriger le fichier debian/watch pour avoir « debian uupdate » après l'URL.

56

Si votre parrain ou d'autres responsables s'opposent à la mise à jour du style d'empaquetage existant, ça ne vaut pas la peine de s'embêter à argumenter. Il y a des choses plus importantes à faire.

57

Dans le paquet cdbs (0.4.74), vous trouverez certaines descriptions négatives du fichier rules créé par la commande dh_make pour les choix non cdbs. Ne vous en inquiétez pas. C'est uniquement relatif à la version de Lenny qui créait des cibles explicites et une longue liste de commandes dh_*.

58

vous pouvez découper gros.diff en plusieurs petits correctifs incrémentaux avec la commande splitdiff.


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