Traduction(s): English - Français
Ce que vous devriez savoir pour participer à votre première chasse aux bogues (BSP) !
Note: ceci est un brouillon rédigé par une personne qui n'avait jamais résolu de bogues auparavant ... donc tout ajout, amélioration, etc sont les bienvenus.
Choisir un bogue critique (release critical - RC)
La première chose à faire est naturellement que vous trouviez un bogue. Si vous découvrez le principe de la chasse aux bogues, il peut être compliqué de trouver le bogue qui correspond à vos capacités. Vous trouverez ici un guide sur comment choisir un bogue critique pour la sortie de la prochaine version à votre portée. Une liste de bogues critiques peut être trouvée sur le site bugs.debian.org. Cependant une liste plus souple est disponible sur le site udd.debian.org.
Une bonne méthode pour porter votre attention sur une liste plus courte des bogues critiques qui vous intéressent et de démarrer le système Debian que vous utilisez le plus souvent (votre portable votre ordinateur de bureau ou votre serveur) et exécutez la commande 'rc-alert' que vous trouverez dans le paquet devscripts package. Si vous voulez vous concentrer sur les bogues qui sont toujours ouverts dans la distribution unstable, exécutez la commande rc-alert -d U ou lisez la page du manuel pour trouver d'autres options de tri ou de filtre.
S'attribuer un bogue
Avant de commencer, vous devez annoncer votre intention de travailler sur un bogue sur le canal IRC #debian-bugs (on irc.debian.org) puis vous l'attribuer
bts claim <no du bogue> <votre@mél>
(bts est un outil en ligne de commande fourni par le paquet devscripts.)
Votre bogue sera alors marqué comme claimed sur http://udd.debian.org/bugs.cgi après un petit moment.
Résoudre un bogue
Récupérer les sources
Pour être sûr que vous récupérez les dernières sources du paquet, vérifiez la version du paquet sur les pages http://incoming.debian.org et http://packages.qa.debian.org. Allez dans le répertoire dans lequel vous voudrez éditer les sources et récupérez toutes les sources nécessaires avec :
dget -x [url du fichier .dsc]
(dget fait partie du paquet devscripts). Une manière alternative est de récupérer les sources avec apt :
apt-get source <paquet_source>
Pour cela, vous devez avoir une ligne deb-src pour unstable dans le fichier /etc/apt/sources.list.
Avant de faire vos essais
Dans le dossier du paquet, faites dch -i. Ceci appelle un éditeur avec un modèle de changelog préparé. D'abord, il faut définir le numéro de version selon le principe suivant (pour les upload de non-responsable de paquet) :
Si l'ancienne version était paquet-X-Y alors le nouveau numéro de version est paquet-X-Y.1
Si l'ancienne version était paquet-X-Y.2 alors le nouveau numéro de version est paquet-X-Y.3
Si l'ancienne version était paquet-X alors le nouveau numéro de version est paquet-X-0.1
Sur la première ligne après la version du paquet, inscrivez la modification en tant qu'upload de non-responsable :
* Non-maintainer upload
Sur les lignes suivantes, expliquez les changements réalisés, par exemple :
* Fixed this and that (closes: #123456).
Note : Les upload de non-responsables ne devraient comporter que des modifications minimes et être liés uniquement à des bogues critiques.
Résoudre le bogue
Maintenant vous pouvez résoudre le bogue ! (Comment ? Les explications sur la résolution sortent du contexte de cette page.)
Construire le nouveau paquet source
Pour faire un nouveau paquet source, exécutez la commande suivante :
dpkg-buildpackage -us -uc -S
(Assurez-vous d'avoir incrémenté le numéro de révision du paquet avec dch comme mentionné plus haut, sans quoi le paquet source initial sera écrasé !)
Construire le nouveau paquet binaire
Note: Suivant le paquet, le paquet source peut entraîner la création d'un ou plusieurs paquets binaires.
Méthode rapide mais sale
Cette méthode permet de construire le paquet de manière rapide mais sale (pour faire des tests). Après avoir installé toutes les dépendances nécessaires à la construction du paquet (apt-get build-dep [package]) la commande :
fakeroot debian/rules binary
construit le .deb que vous pouvez installer pour tester (mais pas uploader).
Méthode avec pbuilder
La méthode recommandée utilise pbuilder pour plusieurs raisons :
- votre système n'est pas encombré par tous les paquets nécessaires pour satisfaire les dépendances de construction
- les dépendances de construction sont gérées automatiquement
- le paquet est créé dans cet environnement minimal et propre. Ceci garantit (a priori) que le paquet pourra être construit sur n'importe quel système, et pas seulement le vôtre.
Pour plus de détails sur pbuilder, lisez le manuel. Ici nous donnerons simplement les étapes nécessaires pour construire le paquet.
Vous pouvez utiliser la configuration par défaut en installant simplement les paquets pbuilder et cdebootstrap.
Premièrement, créez un chroot de base avec :
sudo pbuilder create
Ceci crée /var/cache/pbuilder/base.tgz. Comme cela nécessite le téléchargement de beaucoup de paquets, il sera peut-être intéressant d'ajouter un --mirror http://192.168.2.248/debian/ ou autre pour utiliser un cache local. Si vous avez déjà un chroot de base, mettez-le à jour avec :
sudo pbuilder update
Puis, dans le dossier du paquet exécutez pdebuild, ceci construit à la fois le nouveau paquet source et le(s) paquet(s) binaire(s). Le(s) paquet(s) créé(s) se trouvent dans /var/cache/pbuilder/result/.
Tester le nouveau paquet binaire
En utilisant pbuilder
Pour tester votre paquet fraîchement créé, installez-le dans votre chroot :
sudo pbuilder login --bindmounts /var/cache/pbuilder/result/
et dans le chroot :
dpkg -i /var/cache/pbuilder/result/*.deb
Si tout fonctionne, bravo ! Il ne reste qu'à envoyer le patch sur le Bug Tracking System (BTS) et voir comment uploader le paquet corrigé.
Upload du patch sur le BTS
Créez le fichier diff avec :
debdiff ancien-paquet.dsc nouveau-paquet.dsc > nouveau-paquet.diff
et envoyez-le (en pièce jointe) à [no du bogue]@bugs.debian.org avec quelques (aimables) explications si nécessaire.
Marquez le bogue comme "patch available" en exécutant :
bts tags [bugnumber] + patch
Upload du paquet corrigé
Il vous faut trouver un membre de Debian avec les droits d'upload - et si vous êtes l'un d'entre eux, faites l'upload !
