original in en Egon Willighagen
en to nl Guus Snijders
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.
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.
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 :)
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:
|
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.
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!