Bugs rapporteren op Debian 2.2

ArticleCategory: [Artikel Kategorie]

Community

AuthorImage:[Bild des Autors]

[Egon Willighagen]

TranslationInfo:[Author and translation history]

original in en Egon Willighagen 

en to nl Guus Snijders

AboutTheAuthor:[Über den Autor]

Werd lid van het Nederlandse LF team in 1999 en werd tweede editor, eerder dit jaar. Is een informatieve Chemie student aan de Universiteit van Nijmegen. Speelt basketbal en mag graag rond trekken.

Abstract:[Zusammenfassung]

Dit artikel beschrijft wat Debian gebruikers kunnen doen voor de gemeenschap: bugs rapporteren als ze deze vinden. Er wordt uitgelegd hoe dit gedaan kan worden en waarom je dit zou moeten doen.

ArticleIllustration:[Titelbild des Artikels]

[Illustratie]

ArticleBody:[Der eigentliche Artikel]

Debian community

Debian is allereerst een Linux distributie, maar is ook een gemeenschap die probeert het beste besturingssysteem (Operating System, of OS) vrijelijk beschikbaar te maken. Maar wie is lid van deze gemeenschap? Uiteraard zijn de ontwikkelaars belangrijke leden, maar ook de gebruikers zijn erg belangrijk. Als Debian niet gebruikt zou worden, zouden de ontwikkelaars ophouden met ontwikkelelen. Wat is de lol van het porten (overzetten) van software als er niemand gebruik van maakt?

Deze ontwikkelaars, echter, zijn allen vrijwilligers. In contrast met Red Hat en Suse ontwikkelaars, waar een bedrijf (RH en Suse) een aantal ontwikkelaars in diens hebben, worden Debian ontwikkelaars niet betaald. En dit betekend niet dat ze ongelimiteerd tijd hebben. "OK", kun je vragen, "maar wat heeft dat met mij te maken?" Als gebruiker kun je deze ontwikkelaars helpen door gevonden bugs te rapporteren.

Debian pakketten kunnen twee klasses (soorten) bugs hebben. Een klasse is een echte software bug. Daar een Debian ontwikkelaar vaak niet de auteur van de software zelf is (hij maakte er alleen een Debian pakket van), zal hij soms proberen deze zelf op te lossen, maar meestal zal hij deze doorsturen naar de software auteur.

De tweede klasse bugs, bestaat uit bugs in het Debian pakket of bugs in de installatie setup voor de software in het pakket op het Debian systeem. En deze bugs zijn voor de Debian ontwikkelaar. Er kan erg veel tijd gaan zitten in het vinden van deze bugs.

Bugs Vinden

Bugs komen veel voor in software. Maar ontwikkelaars dienen een stabiel Debian systeem te ontwikkelen, en bugs horen daar niet bij. Anders zouden ze ook niet worden opgelost. Bugs kunnen gevonden worden op verschillende manieren:

Van deze is de systeem crash makkelijk te vinden, al kan het veel lastiger zijn om de bug op te repareren. Maar het tweede type bug is veel moeilijker te vinden. De reden is dat de auteur/ontwikkelaar de software niet kan testen op alle mogelijke uitvoer. Een voorbeeld: we nemen een reken programma. De auteur kan verschillende aspecten testen: 1+1 moet 2 opleveren, 2*5 moet 10 geven, enz. Maar kan niet alle mogelijke optellingen en vermenigvuldigingen te testen. Hij zal waarschijnlijk 3456733256677*77782882355 niet testen.

Maar een gebruiker wel. Gebruikers doen dingen met (en aan) de software die de auteur niet voorzien had. Daar het aantal gebruikers het aantal software auteurs en Debian ontwikkelaars overtreft, word verwacht dat ze veel meer bugs tegen zullen komen. Maar deze bugs zullen niet alle serieuze bugs zijn. In de meeste gevallen zullen ze zelfs geen onaangenaamheden veroorzaken, daar ze vaak omzeilt kunnen worden.

En als lid van de gemeenschap heb je bijna een morele plicht om de bug te melden aan de ontwikkelaar, zodat de software nog stabieler kan worden gemaakt. Dit artikel is een betoog hiervoor. (al zul je natuurlijk niet zo heel veel bugs vinden op een Debian systeem :)

Hoe bugs te rapporteren op Debian 2.2?

Wat is er zo speciaal aan het rapporteren van een bug onder Debian? Een aspect is dat Debian een uitgebreid bug rapport syteem heeft. Ingezonden bugs worden opgeslagen op een centrale debug server. Het programma reportbug facilliteerd het registreren van bugs en heeft verschillende handige tools.

Stel dat je een bug vind in het programma dia (mijn favoriete diagram editor). Laten we het proces van het versturen van een bug in dit pakket eens doorlopen. (De eigenlijke bug was geen Debian bug, maar een bug in de eigenlijke software, te verwachten is dat de Debian ontwikkelaar deze doorstuurt naar de auteurs.)

Ik type (op de prompt. Ik heb nog geen mooie GUI gevonden voor dit programma.):

egonw > reportbug
Please enter the name of the package in which you have found a problem,
or type one of these bug categories:

base              General bugs in the base system
boot-floppies     Bugs in the boot and root disks
bugs.debian.org   The bug tracking system, @bugs.debian.org
ftp.debian.org    Problems with the main FTP site (or mirrors)
general           Widespread problems (e.g., that many man pages are mode 

755)
kernel            Problems with the kernel in general (otherwise: 
kernel-image)
list archives      The mailing list archives.
lists.debian.org  The mailing lists (debian-*@lists.debian.org)
manual            Bugs in the manual
nonus.debian.org  Problems with the non-us FTP site (or mirrors)
project           Problems related to Project administration
www.debian.org    Problems with the website (or mirrors)                 

       
Enter a package:

Laten we het goed doen en niet een van deze categoriën opgeven, maar het eigenlijke pakket. Hiervoor moeten we deze reportbug sessie afsluiten met ^C (ctrl-C). We moeten het pakket achterhalen welke het uitvoerbare bestand "dia" bevat. Dit doen we met:

egonw > whereis dia
dia: /usr/lib/dia /usr/X11R6/bin/dia /usr/bin/X11/dia /usr/share/dia
egonw > dpkg -S /usr/bin/X11/dia
dpkg: /usr/bin/X11/dia not found.
egonw > dpkg -S /usr/X11R6/bin/dia
dia: /usr/X11R6/bin/dia

Met het laatste commando zien we dat het bestand te vinden is in het pakket dia (als dit niet zeker weet, kun je het controleren met" "dpkg -l dia"). Merk op dat de whereis vier bestanden laat zien. Het eerste bestand is een library (bibliotheek). De laatste is een directory en de middelste zijn uitvoerbare bestanden (excutables). Het pakket dia levert alleen de tweede dia executable, waar de eerste weg komt, is mij onbekend.

Nu we weten welk pakket de bug bevat, kunnen we ook snel controleren waar dit pakket was gedownload (ft/http) of anders (CD/floppy) weg komt:

egonw > apt-cache showpkg dia
Versions: 0.86-helix1(/var/state/apt/lists/spidermonkey.helixcode.com_dis
ributions_debian_dists_unstable_main_binary-i386_Packages)(/var/lib/dpkg/
tatus),0.83-2(/var/state/apt/lists/ftp.nl.uu.net_pub_linux_debian_dists_s
able_main_binary-i386_Packages),
Reverse Depends: 
  task-helix-gnome,dia
Dependencies: 
0.86-helix1 - gdk-imlib1 (2 1.9.8.1) libart2 (2 1.2.0) libaudiofile0 (0 
(null)) libc6 (2 2.1.2) libdb2 (2 1:2.4.14-7) libesd0 (18 0.2.16) 
libesd-alsa0 (2 0.2.16) libgdk-pixbuf2 (0 (null)) libglib1.2 (2 1.2.0) 
libgnome32 (2 1.2.0) libgnomesupport0 (2 1.2.0) libgnomeui32 (2 1.2.0) 
libgtk1.2 (2 1.2.0) libpng2 (0 (null)) libpopt0 (0 (null)) libxml1 (0 
(null)) xlib6g (2 3.3.6-4) zlib1g (2 1:1.1.3) gsfonts-x11 (0 (null)) 
0.83-2 - gdk-imlib1 (2 1.9.8-2) libc6 (2 2.1.2) libglib1.2 (2 1.2.0) 
libgtk1.2 (2 1.2.6-1) libpopt0 (0 (null)) libxml1 (0 (null)) libz1 (0 
(null)) xlib6g (2 3.3.5) gsfonts-x11 (0 (null)) 
Provides: 
0.86-helix1 - 
0.83-2 - 
Reverse Provides:

Hiermee zien we dat de huidige versie (0.86-helix1) was geïnstalleerd vanaf HelixCode (om HelixGnome te installeren, type 'echo "#HelixGnome Update\ndeb http://spidermonkey.helixcode.com/distrib tions/debian unstable main" >> /etc/apt/sources.list; apt-get update; apt-get install task-helix-gnome'). Deze bug zou niet naar de Debian ontwikkelaar gestuurd moeten worden, maar naar de HelixGnome Debian, wat niet gebeurt met de reportbug tool. Voor de correctheid van dit artikel, nemen we aan dat versie 0.83-2 is geïnstalleerd, welke het Debian pakket voor dia is, en (in mijn geval) was gedownload vanaf een Nederlandse FTP mirror.

Ok, dus nu weten we dat de bug zich bevindt in het dia-083.2.deb pakket bevindt, welke was gedownload van een Debian FTP site. We gaan verder met het versturen van de bug. Als je niet online bent, kun je de optie -b gebruiken, zodat het programma niet zal zoeken naar het Debian Bug Tracking System (BTS). Door BTS te raadplegen, kun je achterhalen of dezelfde bug niet al eerder was ingezonden. Het raadplegen van BTS is dus sterk aangeraden.

Na het ingeven van de naam van het pakket, en het controleren van BTS, zal er worden gecontroleerd op dependencies (afhankelijkheden). Het controleren van dependencies is belangrijk. De software is afhankelijk van libraries en bugs kunnen hun origine hebben in een versie conflict. In feite is dit de grootste basis voor bugs. Er is geen invoer van de gebruiker nodig voor deze controle.

De volgende vraag die gesteld wordt, is om een korte omschrijving te geven van de bug. Deze omschrijving zal gebruikt worden als titel en dient compleet en kort te zijn. Later kan de bug in detail worden beschreven. In mijn geval is de titel "dia file format incorrectly uses dia namespace". Details en uitleg volgen later.

Nu moet je een kwalificatie van de bug geven. Er zijn 5 klasses beschikbaar:

hevigheidomschrijving
critical levert problemen op met niet-gerelateerde software op het systeem (of het hele systeem) of zorgt voor serieus data verlies, of introduceert een beveiligingsgat op de systemen waar je het pakket installeerd.
grave maakt het pakket in kwestie onbruikbaar, of voornamelijk, of levert data verlies of introduceert een beveiligingsgat door toegang tot de accounts van de gebruikers van het pakket te leveren.
important een andere bug die het pakket onbruikbaar voor vrijgave maakt.
normal de standaard waarde, gebruikt voor meer 'algemene' bugs
wishlist voor ieder feature aanvraag, ook voor bugs die lastig op te lossen zijn door grote ontwerp wijzigingen.

Kies een passende hevigheid. Normal is de standaard kwalificatie, de meeste bugs in Debian 2.2 zijn van deze klasse. Dit komt doordat Debian meerdere uitvoerige test cycli kent, waarin het complete systeem wordt getest voordat de distributie wordt vrijgegeven voor het publiek. Merk op dat ook wensen voor nieuwe features kunnen worden verzonden met reportbug, hoewel dit duidelijk geen bugs zijn.

Na het kiezen van de klassificatie, zal er een editor worden gestart met alle informatie die tot nog toe was verzameld:

Subject: dia file format incorrectly uses dia namespace
Package: dia
Version: 0.86-helix1
Severity: normal



-- System Information
Debian Release: 2.2
Architecture: i386
Kernel: Linux george 2.2.17 #1 Sun Jun 25 09:24:41 EST 2000 i586

Versions of packages dia depends on:
ii  gdk-imlib1            1.9.8.1-helix4     Gdk-Imlib is an imaging 
library fo
ii  libart2               1.2.4-helix3       The Gnome canvas widget
ii  libaudiofile0         0.1.9-0.1          The Audiofile Library
ii  libc6                 2.1.3-10           GNU C Library: Shared 
libraries an
ii  libdb2                2:2.4.14-2.7.7.1.c The Berkeley database 
routines (ru
ii  libesd0               0.2.17-7           Enlightened Sound Daemon - 
Shared
ii  libgdk-pixbuf2        0.8.0-helix2       The GNOME GdkPixBuf 
library.
ii  libglib1.2            1.2.8-helix1       The GLib library of C 
routines
ii  libgnome32            1.2.4-helix3       The Gnome libraries
ii  libgnomesupport0      1.2.4-helix3       The Gnome libraries 

Dit is het punt waarop je kunt uitweiden over de titel die je eerder opgaf. Tussen de "Severity: normal" en "-- System Information" regels kun je meer details en condities opgeven, waaronder de bug optrad. Probeer de zelfde bug te reproduceren en duidelijk de stappen te beschrijven die je nam om de bug te veroorzaken. Dit helpt de ontwikkelaars de bug terug te brengen tot een deel van de niet goed functionerende code. In complexere situaties kun je ook de verwachte uitvoer of het verwachte gedrag vertellen.

Ten slotte, vraag het programma je of je de bug wilt e-mailen naar de bug lijst. Het versturen zal het proces tot dusver beëindigen. Je hebt zojuist iets terug gedaan voor de gemeenschap.

En Toen?

Je kunt de status van de bug volgen, door een bezoek te brengen aan Debian Bug Track System en het pakket te selecteren waarvan je bug rapporteerde. (Verwacht niet dat je bug binnen 24 uur zichtbaar is.) En dan wacht je. En hopelijk wordt de bug gerepareerd.

Het is jammer dat er geen grafische interface is voor reportbug, maar nu kan iedere Debian gebruiker bugs rapporteren, onafhankelijk van systeem functionaliteit. Een interface is makkelijk gemaakt tegenwoordig. Hopen dat er snel een verschijnt!