Tag Archive for 'paquet'

BSP aux Tanneries – Comment corriger un bogue dans Debian ?

Prérequis

Il faut avoir une clef gpg qu’un développeur Debian a signée (ou qu’il considère de confiance) pour certifier de votre identité auprès de celui-ci pour qu’il
uploade votre paquet. Une adresse email (attention, elle sera spammée) doit être associée à cette clef.

Les outils de construction de paquets doivent connaître cette adresse email. Ce sera votre adresse Debian. Pour la déclarer en tant que telle :

export DEBEMAIL=adresse@mail

paquets utiles : devscripts, lintian, patchutils

Vocabulaire

NMU (non-maintainer upload) : upload d’un paquet par quelqu’un d’autre que son mainteneur officiel
paquet source : paquet contenant les sources du logiciel et à partir duquel un ou plusieurs paquets binaires sont construits
paquet binaire : paquet résultant de la compilation
bug upstream : bogue dont l’auteur du logiciel est responsable et qui n’est pas causé par la création du paquet Debian
FTBFS (fails to build from source) : le bogue touche le paquet source et bloque sa compilation. On corrige beaucoup de ce genre de bug lors d’une bug squashing party

Voir aussi

Corrections

Correction de l’erreur dans les sources du paquet.

Téléchargez les sources du paquet dans un répertoire temporaire, puis rendez-vous dans le répertoire du paquet pour faire vos modifications :

cd /tmp
apt-get source nom-du-paquet
cd repertoire-du-paquet

Faites vos corrections.

Mettre à jour le changelog

Ajoutez ensuite les modifs au changelog à l’aide de la commande dch qui permet de modifier proprement ce fichier :

dch --close numero-du-bug --nm

La commande dch prépare le nouveau paragraphe du changelog comprenant vos modification, mais il est important de compléter les informations préremplies par quelques précisions. Si vous avez déclaré (avec export DEBEMAIL) votre adresse mail, celle-ci s’ajoutera automatiquement dans le changelog.

Vérifications

Vous devez reconstruire le paquet. C’est le moment de vérifier que vos modifications n’ont rien abîmé et que tout compile bien.

Pour cela, vous utiliserez la commande debuild qui compile le paquet source et produit un ou plusieurs paquets binaires, debuild générera aussi un nouveau fichier .dsc nécessaire à la création de votre patch.

Certains paquets sources demandent des dépendances particulières pour être compilés ; ils sont listés à dans la section “Build-depends” du fichier debian/control de votre paquet source. La commande apt-get build-dep vous permettra d’installer automatiquement ces paquets.
La partie spécifique à Debian du numéro de version d’un nouveau paquet doit être différente pour un nouvel upload. Si l’upload précédent était fait par le mainteneur officiel, on ajoutera .1 aprés le numéro de la version (exemple 2.0-3 => 2.0-3.1). Si c’était déjà une NMU, on incrémentera le numéro de version précédent (exemple 2.0-3.1 => 2.0-3.2).

À la fin de la compilation, le mot de passe de votre clef gpg vous sera demandé pour signer le nouveau paquet.

Après la compilation du paquet, debuild lance lintian qui vous informe des potentielles infractions du paquet à la Debian policy. Il est parfois intéressant de corriger ces erreurs-là aussi. (attention, certaines de ces modifications peuvent bloquer la recompilation.)

lintian-info explique la signification de la ligne d’erreur :

echo 'ligne d'erreur lintian' | lintian-info

Dans ce cas, corriger à nouveau les erreurs, puis ajouter ces changements dans le changelog avec la commande dch. Recompiler avec debuild et revérifier que tout se passe bien.

Création du fichier patch

Avec debdiff, créer un fichier “patch” contenant les différences entre l’ancien et le nouveau fichier .dsc (descriptions) :

debdiff nomdupaquet_2.0-3.dsc nomdupaquet_2.0-3.1.dsc > nomdupaquet-2.0-3.1-nmu.patch

Publier votre patch

Écrire à : numéro-du-bug@bugs.debian.org pour signaler humainement la correction du bug. Joindre votre patch.

Mettre en copie control@bugs.debian.org pour rajouter le tag patch au bug (voir la page debian-control pour la syntaxe et les options, et ne pas oublier de finir votre message aux robots par “thanks” qui leur indiquera la fin de votre message). Attention, la rédaction des mails se fait impérativement en anglais.

===exemple===

pour : 666@bug.debian.org
cc : control@debian.org
objet : NMU diff for nomdupaquet_2.7.0-1

tags 666 + patch pending
thanks

hi,

Here’s the diff for my NMU.

Regards,

nomdupaquet-2.7.0/debian/control
=======================================
diff -u nomdupaquet-2.7.0/debian/control nomdupaquet-2.7.0/debian/control
— nomdupaquet-2.7.0/debian/control
+++ nomdupaquet-2.7.0/debian/control
@@ -53,7 +53,7 @@
Package:·nomdupaquet-source
Architecture:·all
-Depends:·module-assistant,·debhelper·(>=·5),·make,·bzip2
+Depends:·module-assistant,·debhelper·(>=·5),·make,·bzip2,·dpatch
Description:·Source·for·the·Fuse·kernel·module
·Simple·interface·for·userspace·programs·to·export·a·virtual
·filesystem·to·the·Linux·kernel.

nomdupaquet-2.7.0/debian/changelog
=======================================
diff -u nomdupaquet-2.7.0/debian/changelog nomdupaquet-2.7.0/debian/changelog
— nomdupaquet-2.7.0/debian/changelog
+++ nomdupaquet-2.7.0/debian/changelog
@@ -1,3 +1,10 @@
+nomdupaquet·(2.7.0-1.1)·unstable;·urgency=low
+
+··*·Non-maintainer·upload.
+··*·nomdupaquet-source:·fixed·missing·dependency·to·dpatch·package·(Closes:·#666)
+
+·–·Prenom Nom···Sun,·30·Sep·2007·18:00:53·+0200
+
nomdupaquet·(2.7.0-1)·unstable;·urgency=low
··*·New·upstream·release: