Le signalement des bogues est l'une des nombreuses façons dont vous pouvez aider Linux à se développer. Toutes les distributions de logiciels libres, les projets ont des systèmes différents dans lesquels les bogues sont collectés, analysés, étiquetés et corrigés en fonction du nombre de personnes qui connaissent le code source.
Comme j'adore Debian, je vais vous montrer comment déposer des rapports de bogue dans Debian.
Comment signaler des bogues dans Debian Linux
L'outil goto dans Debian pour signaler les bogues est Reportbug. J'aurais aimé le savoir quand j'ai commencé à rapporter des bogues, cela aurait évité pas mal de brûlures d'estomac pour moi-même ainsi que pour le responsable.
Voyons comment utiliser Reportbug pour signaler des bogues dans Debian Linux.
Étape 1. Installation de Reportbug
Utilisez la commande ci-dessous pour installer Reportbug :
sudo aptitude install reportbug
Étape 2. Signaler un bug :la première exécution
Une fois que vous avez installé Reportbug, lors de la première exécution, vous devez le configurer afin qu'il puisse être utilisé pour déposer des rapports de bogues.
Utilisez la commande ci-dessous pour l'exécuter.
reportbug
Et puis un tas de requêtes comme on peut le voir ci-dessous :
Ce fichier contient du texte Unicode bidirectionnel qui peut être interprété ou compilé différemment de ce qui apparaît ci-dessous. Pour réviser, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode masqués.En savoir plus sur les caractères Unicode bidirectionnels Afficher les caractères masquésBienvenue sur reportbug ! Puisqu'il semble que ce soit la première fois que vous utilisez reportbug, nous configurons son comportement. Ces paramètres seront enregistrés dans le fichier "/home/shirish/.reportbugrc", que vous serez libre de modifier davantage. | |
Veuillez choisir le mode de fonctionnement par défaut pour reportbug. | |
1 novice Proposer des invites simples, en contournant les questions techniques. | |
2 standard Proposer des invites plus complètes, y compris des questions sur des éléments modérément sophistiqués l'utilisateur devrait connaître Debian. | |
3 avancé Comme standard, mais suppose que vous en savez un peu plus sur Debian, y compris "entrant". | |
4 expert Ignorer la plupart des mesures de manipulation et des routines de tri préliminaires. Ce mode ne doit pas être utilisé par des personnes non familiarisées avec les politiques et les procédures de fonctionnement de Debian. | |
Sélectionner le mode :[novice] 2 | |
Veuillez choisir l'interface par défaut pour reportbug. | |
1 text Une interface utilisateur de console orientée texte | |
2 gtk2 Une interface utilisateur graphique (GTK+). | |
Sélectionner l'interface :1 | |
Reportbug aura-t-il souvent un accès direct à Internet ? (Vous devez répondre oui à cette question sauf si vous savez ce que vous faites et prévoyez de vérifier si des rapports en double ont été déposés via un autre canal.) [O|n|q|?] ? n | |
Quel nom réel doit être utilisé pour envoyer des rapports de bogue ? | |
[shirish]> : | |
>Laquelle de vos adresses e-mail doit être utilisée lors de l'envoi de rapports de bogue ? (Notez que cette adresse sera visible dans le système de suivi des bogues, vous pouvez donc utiliser une adresse de messagerie Web ou une autre adresse avec de bonnes capacités de filtrage des spams.) | |
[[email protected]]>[email protected] |
Remarques sur la première exécution de Reportbug :
un. Comme j'utilise Debian depuis un certain temps, je peux basculer entre 2 et 3. Pour les personnes qui sont extrêmement novices dans le rapport de bogues, elles peuvent s'en tenir à [1] qui est affiché comme novice et par défaut, appuyez simplement sur Entrée.
b. Entre l'interface utilisateur textuelle et l'interface gtk2/3, je trouve l'interface gtk2/3 peu attrayante et prenant également un peu de mémoire, c'est pourquoi je choisis 1 tout le temps. Si vous avez choisi l'éditeur gtk2/3, les instructions ci-dessous sont toujours les mêmes pour vous, seulement vous verrez l'éditeur gtk montrer la même chose d'une manière légèrement plus belle.
c. La partie où Reportbug demande un accès au réseau, je le refuse toujours pour des raisons pratiques et de sécurité. Un peu plus d'explications sur les raisons pour lesquelles je le fais seraient partagées ci-dessous.
ré. Enfin, lorsqu'il vous demande le nom, si vous aimez le nom existant (tiré de la variable [email protected]), appuyez sur Entrée, au cas où vous voudriez que ce soit autre chose, donnez le nom sous lequel vous voulez qu'il apparaisse.
Étape 3. Gérer les bizarreries de Gmail
La première fois que Reportbug serait exécuté, il demanderait la configuration de la messagerie :
Ce fichier contient du texte Unicode bidirectionnel qui peut être interprété ou compilé différemment de ce qui apparaît ci-dessous. Pour réviser, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode masqués.En savoir plus sur les caractères Unicode bidirectionnels Afficher les caractères masquésAvez-vous un "agent de transport de courrier" (MTA ) comme Exim, Postfix ou SSMTP configuré sur cet ordinateur pour envoyer du courrier sur Internet ? [y|N|q|?]?n | |
Veuillez saisir le nom de votre hôte SMTP. Habituellement, cela s'appelle quelque chose comme "mail.example.org" ou "smtp.example.org". Si vous devez utiliser un port différent de celui par défaut, utilisez le :format alternatif. Appuyez simplement sur ENTRÉE si vous n'en avez pas ou si vous ne le savez pas, et ainsi un hôte SMTP Debian sera utilisé. | |
> | |
Veuillez saisir le nom de votre serveur proxy. Il ne doit utiliser ce paramètre que si vous êtes derrière un pare-feu. L'argument PROXY doit être formaté comme une URL HTTP valide, incluant (si nécessaire) un numéro de port ; par exemple, http://192.168.1.1:3128/. Appuyez simplement sur ENTER si vous n'en avez pas ou si vous ne savez pas. | |
> |
La première question est de savoir si vous avez un logiciel qui lui permettra d'envoyer des e-mails automatiquement.
Si vous avez configuré un client de messagerie de bureau tel qu'Evolution ou Thunderbird, choisissez oui. Sinon, optez pour non.
Une fois le fichier de préférences par défaut écrit, il est enregistré dans /home/shirish/.reportbugrc. Vous pouvez modifier la configuration ultérieurement en modifiant ce fichier.
Sur la console, vous pouvez utiliser CTRL+C pour quitter Reportbug à tout moment.
Étape 5. Trouver un nom de package d'application à partir d'un binaire
Prenons l'exemple d'Aiselriot. C'est l'un des jeux GTK Card auxquels ma mère joue beaucoup. Maintenant, s'il y a un problème avec le jeu, comment puis-je savoir sous quel package dois-je déposer un rapport de bogue ?
Donc, la première chose que je fais lorsque j'essaie de dépanner une application graphique est de prendre son icône et de la mettre sur le panneau et de voir ses propriétés comme je le montre ici -
Maintenant, je sais que le nom de l'application. n'est pas Aiselriot mais sol et le chemin où l'application est mise en place est /usr/games/sol
.
Essayons maintenant de trouver le nom du paquet –
dpkg -S /usr/games/sol
La sortie est :
aisleriot: /usr/games/sol
Nous avons la chance que le package s'appelle aussi aiselriot mais cela n'arrive pas tout le temps.
Continuons, signalons maintenant notre premier rapport de bogue. Comme j'utilise Debian testing/stretch/soon pour être stable dans quelques mois, j'y mettrai un rapport de bogue.
Étape 6. Utiliser Reportbug pour créer un rapport de bogue
Nous avons maintenant besoin d'un paquet qui a un problème/bogue que nous devons signaler à la communauté Debian.
J'ai un paquet piuparts qui présentait les symptômes d'un problème pour lequel je me suis tourné vers Reportbug comme indiqué dans l'essentiel :
Ce fichier contient du texte Unicode bidirectionnel qui peut être interprété ou compilé différemment de ce qui apparaît ci-dessous. Pour réviser, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode masqués.En savoir plus sur les caractères Unicode bidirectionnels Afficher les caractères masqués[$] reportbug piuparts –severity=normal | |
*** Bienvenue sur reportbug. Utiliser ? pour obtenir de l'aide aux invites. *** | |
Remarque :les rapports de bogue sont archivés publiquement (y compris l'adresse e-mail de l'auteur ). | |
Jeu de caractères détecté :UTF-8 | |
Veuillez modifier vos paramètres régionaux si cela est incorrect. | |
Utiliser 'shirish ' comme adresse d'expédition. | |
Obtention de l'état des piuparts… | |
Vérification de l'intégrité du paquet… | |
Enverra le rapport à Debian (par lsb_release). | |
Le responsable de piuparts est 'l'équipe de développeurs piuparts'. | |
Recherche des dépendances de piuparts… | |
Obtenir les fichiers de configuration modifiés… | |
Décrivez brièvement le problème (max. 100 caractères autorisés). Ce sera le sujet de l'e-mail de bogue, alors gardez le résumé aussi concis que possible, pour | |
exemple :"ne parvient pas à envoyer un e-mail" ou "ne commence pas par - q option spécifiée" (entrez Ctrl+c pour quitter reportbug sans signaler de bug) | |
> Rapports adéquats obsolete-conffile pour piuparts | |
Réécriture sous réserve de 'piuparts :rapports adéquats obsolètes-conffile pour piuparts' ? | |
L'une des actions suivantes s'applique-t-elle à ce rapport | |
1 d-i Ce bogue concerne le développement de l'installateur Debian. | |
2 ipv6 Ce bogue affecte la prise en charge du protocole Internet version 6. | |
3 l10n Ce bogue signale un problème de localisation/internationalisation. | |
4 lfs Ce bogue affecte la prise en charge des fichiers volumineux (plus de 2 gigaoctets). | |
5 nouveau venu Ce bogue a une solution connue mais le responsable demande à quelqu'un d'autre de l'implémenter ça. | |
6 patch Vous incluez un patch pour résoudre ce problème. | |
7 en amont Ce bogue s'applique à la partie en amont du package. | |
8 aucun | |
Veuillez sélectionner les balises :(une à la fois) [aucune] |
Maintenant, laissez-moi vous expliquer comment les choses fonctionnent. J'utilise un outil appelé adéquat (qui est un outil de vérification de paquets Debian) lors de l'installation de paquets. Je parlerai d'adéquat en détail dans un futur article de blog.
Ce que fait Reportbug, c'est d'obtenir et d'analyser toutes les informations dont il dispose sur le paquet afin qu'il sache s'il doit continuer ou non.
Maintenant, l'outil fonctionne correctement en arrière-plan tout le temps. L'une de ses tâches principales se produit juste à la toute fin de l'installation d'un paquet, par exemple. pour piuparts il partage/m'a montré ceci –
adequate found packaging bugs
-----------------------------
piuparts: obsolete-conffile /etc/piuparts/scripts/post_setup_experimental
qui m'a dit que le paquet piuparts avait un conffile obsolète. conffile signifie fichier de configuration.
Donc, la première commande que je fais chaque fois que je trouve un bogue qui mérite d'être signalé est que je fais ceci -
reportbug piuparts --severity=normal
Donne/indique le paquet qui a le problème, dans ce cas piuparts.
Mettre la sévérité à n'importe quel bogue est une affaire délicate. À moins que j'aie des sentiments assez forts à propos d'un paquet et que je sache sans aucun doute que le bogue est en effet grave, je n'augmente pas la gravité. C'est mon éthique personnelle, aussi un peu moins de travail pour un mainteneur.
Cela étant dit, la plupart des mainteneurs examineraient un bogue quelle que soit la gravité que vous donnez. J'ai eu des mainteneurs qui m'ont répondu rapidement même lorsque j'ai déposé des bogues de liste de souhaits et j'ai des mainteneurs qui ne reviennent pas. MIA (Missing-In-Action) même après le dépôt de bogues graves. Classer et avoir une conversation saine avec le responsable est une activité à la fois technique et sociale.
Après avoir demandé le sujet, reportbug demande/donne diverses options si l'une des conditions s'applique. Vous pouvez en utiliser n'importe lequel si vous pensez que votre bogue est affecté ou affecte l'un des éléments ci-dessus de la liste. Par exemple, si vous allez partager un patch pour résoudre le problème, vous choisirez 6 ou l'un des autres. Si aucun d'entre eux n'est nécessaire, entrez simplement et continuez.
Une fois que ce qui précède est fait, cela prend quelques instants et nous obtenons quelque chose de similaire à cet essentiel partagé :
Ce fichier contient du texte Unicode bidirectionnel qui peut être interprété ou compilé différemment de ce qui apparaît ci-dessous. Pour réviser, ouvrez le fichier dans un éditeur qui révèle les caractères Unicode masqués.En savoir plus sur les caractères Unicode bidirectionnels Afficher les caractères masquésObjet :piuparts :rapports adéquats obsolètes conffile pour piuparts | |
Package :piuparts | |
Version :0.75 | |
Gravité :normale | |
Cher mainteneur, | |
*** Reporter, please consider answering these questions, where appropriate *** | |
* What led up to the situation? | |
* What exactly did you do (or not do) that was effective (or | |
ineffective)? | |
* What was the outcome of this action? | |
* What outcome did you expect instead? | |
** End of the template – remove these template lines ** | |
— System Information: | |
Debian Release:9.0 | |
APT prefers testing | |
APT policy:(600, 'testing'), (500, 'unstable-debug'), (500, 'testing-debug'), (1, 'experimental-debug'), (1, 'experimental'), (1, 'unstable') | |
Architecture:amd64 (x86_64) | |
Foreign Architectures:i386 | |
Kernel:Linux 4.9.0-1-amd64 (SMP w/2 CPU cores) | |
Locale:LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) | |
Shell:/bin/sh linked to /bin/dash | |
Init:systemd (via /run/systemd/system) | |
Versions of packages piuparts depends on: | |
ii debootstrap 1.0.87 | |
ii debsums 2.2 | |
ii dpkg 1.18.18 | |
ii lsb-release 9.20161125 | |
ii lsof 4.89+dfsg-0.1 | |
ii piuparts-common 0.75 | |
ii python-debian 0.1.30 | |
pn python:any | |
Versions of packages piuparts recommends: | |
ii adequate 0.15.1 | |
Versions of packages piuparts suggests: | |
ii schroot 1.6.10-3 | |
— no debconf information |
Now what this does is, it gives an idea to the maintainer of the state of your system. As you all know, almost all GNU/Linux distributions and the packages therein are based on a complex set of relationships with other packages. The maintainer needs to know what version of the package you were using, which other packages were there, what version were they at, apart from knowing that the integrity of the package hasn’t been tampered with in any way.
Now you need to fill in the banks –
I usually remove/delete cut the following, if you are a new user you could just answer the questions below and your bug report would be ready.
Step 7. The final changes made to spend the report
And in its place, I put the details as being shared right here:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters Show hidden charactersSubject:piuparts:adequate reports obsolete conffile for piuparts | |
Package:piuparts | |
Version:0.75 | |
Severity:normal | |
User:[email protected] | |
Usertags:obsolete-conffile adequate | |
Dear Maintainer, | |
Adequate reports broken obsolete-conffile – | |
[$] adequate piuparts | |
piuparts:obsolete-conffile /etc/piuparts/scripts/post_setup_experimental | |
Maybe you could use what pabs (Paul Wise) did in #815563, in that the | |
proper thing to do would be – | |
Use the dpkg-maintscript-helper support provided by dh_installdeb to remove such similar obsolete conffiles on upgrade | |
Also https://www.debian.org/doc/debian-policy/ch-files.html#s-config-files | |
You can also see manpage of dh_installdeb via debhelper package which is the same thing. | |
I ran the same command as he did – | |
[$] pkg=piuparts; adequate $pkg; dpkg-query -W -f='${Conffiles}\n' $pkg | grep obsolete | |
piuparts:obsolete-conffile /etc/piuparts/scripts/post_setup_experimental | |
/etc/piuparts/scripts/pre_remove_40_find_obsolete_conffiles | |
dce83ee504ba336d8a2930fb6053635c | |
/etc/piuparts/scripts/post_setup_experimental | |
f7a1f3d45dc43106d1cd9b124b7c1ca8 obsolete | |
Please fix the above. | |
— System Information: | |
Debian Release:9.0 | |
APT prefers testing | |
APT policy:(600, 'testing'), (500, 'unstable-debug'), (500, | |
'testing-debug'), (1, 'experimental-debug'), (1, 'experimental'), (1, | |
'unstable') | |
Architecture:amd64 (x86_64) | |
Foreign Architectures:i386 | |
Kernel:Linux 4.9.0-1-amd64 (SMP w/2 CPU cores) | |
Locale:LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) | |
Shell:/bin/sh linked to /bin/dash | |
Init:systemd (via /run/systemd/system) | |
Versions of packages piuparts depends on: | |
ii debootstrap 1.0.87 | |
ii debsums 2.2 | |
ii dpkg 1.18.18 | |
ii lsb-release 9.20161125 | |
ii lsof 4.89+dfsg-0.1 | |
ii piuparts-common 0.75 | |
ii python-debian 0.1.30 | |
pn python:any | |
Versions of packages piuparts recommends: | |
ii adequate 0.15.1 | |
Versions of packages piuparts suggests: | |
ii schroot 1.6.10-3 | |
— no debconf information |
Some more info. now – These two tags signal/tell the maintainers few things –
User: [email protected]
The first tag is signaling that the bug being raised is part of debian-qa efforts.
Usertags: obsolete-conffile adequate
The second tag is telling the tool we have used and one of the common issues under which it has come -in this case obsolete-conffile.
There are few common and uncommon use-cases that adequate looks into. As shared before, will need another blog post to share about it in detail.
The other thing I’m telling/sharing the maintainer is s/he should be looking into debhelper (a toolkit for debian/rules) and to look for specific bits therein.
Tip – Paul Wise, better known as pabs in Debian community. He is a prolific contributor to Debian. As you can see from his wiki page and the secondary apps. He always has a never-ending list of applications, packages that would be interesting to package alongwith things that could be/need to be improved. I dunno if he has done any mentoring or not, do see signs of a good and goofy mentor in him. I sometimes ask, sometimes steal his ideas to help in Debian QA :)
Now, that the bug-report is complete, I have to send it via gmail.com . If you have enabled MTA (Mail Transfer Agent) and don’t have a gmail.com you can just send and it will be done. If on the other hand, you haven’t enabled MTA (like me) and like to do things yourself, log on to your gmail account, hit compose and then –
Step 8. The final step
To - [email protected]
Subject - piuparts: adequate reports obsolete conffile for piuparts
Body of your mail should start with Package
something like this –
You might have noticed some labels, they are just to help me be somewhat organized as after you have reported some bugs it can become chaotic to know what’s going on. Gmail’s labels and filters make things somewhat sanish with the amount of mail I receive.
At that point, make sure to recheck the mail once more before clicking the send mail button. I usually click on save draft, review it once or twice before sending it over.
If you are satisfied click send and your bug-report will be sent to Debian BTS .
Step 9. Getting acknowledgment from Debian BTS server saying the bug has reached them.
Usually, within minutes I get a short acknowledgment mail from the Debian BTS, like in the gist being shared
Look at the time-stamp given, just 3 minutes apart from when the mail was sent. I sent the bug mail on 05:03 and got the automated reply saying everything went fine on 05:06 itself.
What I look for into the acknowledgment mail is the bug number as that is how I come to know how things are going with the bug. #854317
Post bug-reporting cycle.
Coincidentally, as can be seen, the package maintainer somehow was around the time when I filed the bug. I do know the importance of piuparts in the debian ecosystem but I didn’t think Andreas will act so quickly, so now probably the next point release or even bug-fix release will have the fix. As can be seen though, Andreas seems to be a busy bee seeing the number of packages he’s maintaining/co-maintaining, besides uploading Non-Maintainer Uploads (NMU) and QA uploads.
I hope I have given enough insight so you know what to do as and when things go wrong.
Tip – Nowadays, I usually follow couple of rules before filing a bug. First check the bts for existing list of bugs, for e.g. piuparts bugs page (as also shared by Simon Tatham above). If the bug is not listed there, more often than not, it the package has not too many dependencies, and I know there aren’t any configuration files that I might have to recreate then I usually purge the package and install the package afresh. If adequate still finds a fault, I usually report it. I don’t do that though for obsolete conffiles as they usually happen when you are upgrading from version x.1 to x.2 or something like that.
Using such simple tips I save time and energy for myself as well as the maintainer of a package.
At first, it may take sometime, after a while, the whole thing may take 10-15 minutes or even less, depending on the package in which the bug is found, the bug itself, replication of the bug etc.
That’s about it to make a bug-report in Debian using Reportbug.
Hopefully, you have gotten some idea the steps to finding bugs and reporting them. Please post any queries you have in the comments below and I’ll try my best to answer/share whatever little I know.