GNU/Linux >> Tutoriels Linux >  >> Debian

Guide complet du rapport de bogue dans Debian Linux

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 :

Bienvenue 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]
voir rawreportbug-first-run.txthébergé avec ❤ par GitHub

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 :

Avez-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.
>
voir rawreportbug-first-run-webmail-quirks.txthébergé avec ❤ par GitHub

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 :

[$] 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]
voir rawpiuparts reportbug bug-reporthosted with ❤ by GitHub

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é :

Objet :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
view rawdefault reportbug piuparts templatehosted with ❤ by GitHub

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:

Subject: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
view rawgistfile1.txthosted with ❤ by GitHub

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.



Debian
  1. Comment installer Elasticsearch sur Debian Linux

  2. Comment installer Void Linux :un guide complet étape par étape

  3. Guide complet d'utilisation d'AsciiDoc sous Linux

  4. Le guide complet du débutant sur LVM sous Linux

  5. Installer Linux Mint 19 sur VirtualBox :Le guide complet

Guide complet pour installer OxygenOS sur OnePlus One sous Linux

Le guide complet d'utilisation de ffmpeg sous Linux

Guide complet d'administration des utilisateurs sous Linux

Guide complet de journalisation Linux

Un guide complet pour installer Tomcat sur Linux

Commandes du répertoire Linux :un guide complet