Home Map Index Search News Archives Links About LF
[Top bar]
[Bottom bar]
Dieses Dokument ist verfübar auf: English  Castellano  Deutsch  Francais  Nederlands  Russian  Turkce  

convert to palmConvert to PalmDoc

[Photo of the Author]
von Egon Willighagen

Über den Autor:

Egon Willighagen stieß im Jahre 1999 zum Niederländischen LF Team und wurde im folgenden Jahr Second Editor. Er studiert an der Universität von Nijmegen Chemie. Er spielt Basketball und wandert gerne.
Inhalt:

Wie man Bug-Reports für Debian 2.2 schreibt

[Illustration]

Zusammenfassung:

Dieser Artikel beschreibt, was Debian User für die Community tun können: über Bugs berichten, wenn sie auf welche stoßen. Es wird erklärt, wie und warum man dies machen sollte.



 

Die Debian Community

Debian ist vor allem eine Linux-Distribution, aber es ist auch eine Gemeinschaft, die versucht, für das beste frei verfügbare Betriebssystem (OS) zu sorgen. Doch wer ist Teil dieser Gemeinschaft? Die Entwickler sind natürlich sehr wichtig, doch die User ebenso. Wenn Debian nicht benutzt würde, würden die Entwickler ihre Arbeit einstellen. Und macht es Spaß, an Software zu arbeiten, die keiner benutzt?

Diese Entwickler arbeiten jedoch alle auf freiwilliger Basis. Im Gegensatz zu den Entwicklern von Redhat und Suse, bei denen eben diese Firmen eine Anzahl von Entwicklern beschäftigen, werden Debian Entwickler nicht bezahlt. Und das bedeutet, daß ihre zeitlichen Ressourcen für die Entwicklungsarbeit begrenzt sind. "Ok", magst du dich jetzt fragen, "doch was hat das mit mir zu tun?" Als User kannst du die Entwickler unterstützen, indem du Bugs im Programm mitteilst, auf die du gestoßen bist.

Debian Pakete können zwei Arten von Bugs haben. Die erste Art sind richtige Software-Fehler. Da die Debian Entwickler meistens nicht die Autoren der Software selbst sind (sondern sie machen ein Debian Paket daraus), werden sie zwar manchmal versuchen, den Fehler zu finden, doch noch öfter werden sie die Fehlermeldung an den Software-Autor weiterleiten.

Die zweite Art von Fehlern sind Bugs im Debian Paket oder Bugs in der Installationsprozedur für die Software, die sich auf das Debian System bezieht. Diese Fehler sind vom Debian Entwickler zu finden, und das kann ein sehr zeitraubender Prozess sein.  

Wie man Bugs findet

Bugs kommen in Software häufig vor. Doch die Entwickler müssen ein stabiles Debian System erarbeiten, und Bugs sind ganz sicher kein Teil davon. Sie lassen sich aber nicht leicht finden. Sonst wären sie wahrscheinlich schon entfernt worden. Sie können auf verschiedene Weisen entdeckt werden:

Wenn sich die Software aufhängt, ist der Fehler offensichtlich, viel schwieriger wird es, der Ursache auf die Spur zu kommen. Der zweite Fehlertyp ist noch schwieriger zu finden. Der Grund ist, daß der Autor/Entwickler nicht alle denkbaren Ergebnisse austesten kann. Ein Beispiel: nehmen wir ein Rechner-Programm. Der Autor kann verschiedene Verhaltensweisen testen: 1+1 muß 2 ergeben, 2*5 muß 10 ergeben, usw. Aber er kann nicht alle möglichen Summen und Multiplikationen testen. Er wird z.B. nicht 3456733256677*77782882355 prüfen.

Doch ein User wird das möglicherweise tun. User tuen Dinge mit der Software (und tuen der Software Dinge an), die sich der Autor niemals träumen ließ. Da die Zahl der User die Anzahl der Software-Autoren und Debian Entwickler bei weitem übersteigt, werden sie über wesentlich mehr Bugs stolpern. Doch all diese Fehler werden keine schweren Fehler sein, das System wird nicht zusammenbrechen, und die Daten werden nicht zerstört werden. In den meisten Fällen werden diese Fehler nicht einmal Unannehmlichkeiten verursachen, denn in der Regel können sie umgangen werden.

Und als Mitglied der Community hast du fast die moralische Verpflichtung, dem Debian Entwickler die Fehlermeldung zu posten, damit die Software stabiler gemacht werden kann. Dies zu tun, darum bittet dieser Artikel. (Natürlich wird niemand viele Fehler auf einem Debian System finden :)  

...und wie schreibt man nun Bug-Reports für Debian 2.2?

Was ist so besonderes daran, einen Bug-Report für Debian zu schreiben? Ein Aspekt ist, daß Debian ein ausgefeiltes Bug-Report System hat. Mitgeteilte Bugs werden auf einem zentralen Debug-Server gespeichert. Das Programm <reportbug> erleichtert diesen Prozeß und stellt etliche praktische Tools bereit.

Nehmen wir mal an, du hast einen Fehler in dem Programm <dia> (mein Lieblings Diagramm-Editor) gefunden. Laß uns mal den ganzen Prozeß des Fehlermeldens durchexerzieren. (Der tatsächliche Fehler, den ich gefunden habe, war kein Debian-Bug, sondern ein Fehler in der eigentlichen Software, deshalb denke ich, daß der Debian Entwickler die Meldung an die Autoren weiterleiten wird.)

Ich gebe auf der Kommandozeile das folgende ein (ich habe keine hübsche GUI für dieses Programm gefunden.):
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:

Laß uns ganze Arbeit machen und nicht eine dieser Kategorien angeben, sondern das eigentliche Paket. Dafür müssen wir die <reportbug>-Sitzung mit ^C (ctrl-C) abbrechen. Nun müssen wir das Paket finden, das die ausführbare Datei <dia> enthält. Wir gehen folgendermaßen vor:
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

Aufgrund des letzten Kommandos sehen wir, daß die ausführbare Datei in dem Paket <dia> enthalten ist (wenn du nicht sicher bist, prüfe es mit <dpkg -l dia>). Beachte, daß <whereis> vier Dateien ausgibt. Die erste Datei ist ein Library, die letzte ein Verzeichnis, und die beiden mittleren sind ausführbare Dateien. Das Paket <dia> liefert nur die zweite ausführbare Datei, die Herkunft der ersten ausführbaren Datei ist mir unbekannt.

Nun kennen wir das Paket mit dem Bug, wir können also schnell prüfen, ob wir dieses Paket per Download (ftp/http) oder per CD/floppy geholt haben:
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)) libnpopt0 (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 (ull)) libxml1 (0 (null)) libz1 (0 
(null)) xlib6g (2 3.3.5) gsfonts-x11 (0 (null)) 
Provides: 
0.86-helix1 - 
0.83-2 - 
Reverse Provides:

Hierdurch sehen wir, daß die neueste Version (0.86-helix1) von HelixCode installiert wurde (um HelixGnome zu installieren, gib ein <echo "#HelixGnome Update\ndeb http://spidermonkey.helixcode.com/distributions/debian unstable main" >> /etc/apt/sources.list; apt-get update; apt-get install task-helix-gnome>). Dieser Fehler sollte nicht an den Debian Entwickler gesendet werden, sondern an den HelixGnome Debian Packer - dies geschieht aber nicht mit dem <reportbug>-tool. Für die Belange dieses Artikels laß uns aber annehmen, daß die Version 0.83-2 installiert sei, das ist das Debian 2.2 Paket von <dia> und wurde (in meinem Fall) von einem Niederländischen FTP Mirror downgeloaded.

Ok, wir wissen jetzt also, daß der Fehler in dem Paket <dia-0.83-2.deb> steckt, das von einer Debian FTP Site downgeloaded wurde. Fahren wir mit der Übertragung des Reports fort. Wenn du nicht online bist, kannst du die Option <-b> hinzufügen, um zu verhindern, daß das Programm das Debian Bug Tracking System (BTS) sucht. Wenn du das BTS checkst (sehr empfehlenswert), kannst du prüfen, ob dieser Fehler nicht bereits gefunden und mitgeteilt wurde.

Nachdem der Paket-Name eingegeben und das BTS konsultiert wurde, werden die Paket-Abhängigkeiten überprüft. Das ist sehr wichtig. Die Software baut auf Libraries auf, und Fehler können ihre Quelle in einem Versionskonflikt haben. Das ist eigentlich der häufigste Grund für Fehler. Für diese Überprüfung wird keine Benutzereingabe benötigt.

Als nächstes wird das Programm um eine kurze Beschreibung des Fehlers bitten. Diese Beschreibung wird als Titel benutzt und muß daher sowohl umfassend als auch knapp sein. Später kann der Fehler ausführlich beschrieben werden. In meinem Fall war der Titel "dia file format incorrectly uses dia namespace". Einzelheiten und nähere Erklärung folgen später.

Nun mußt du eine Einschätzung des Fehlers geben. Fünf Klassen sind möglich:
severity description
critical makes unrelated software on the system (or the whole system) break or causes serious data loss, or introduces a security hole on systems where you install the package.
grave makes the package in question unusable or mostly so, or causes data loss, or introduces a security hole allowing access to the accounts of users who use the package.
important any other bug which makes the package unsuitable for release.
normal the default value, used for more 'benign' bugs
wishlist for any feature request, and also for any bugs that are very difficult to fix due to major design considerations.
 

Wähle eine passende Einstufung aus. <Normal> ist die übliche Einstufung, und die meisten Bugs in Debian 2.2 fallen in diese Kategorie. Dies kommt aufgrund der ausgiebigen Test-Zyklen von Debian, bei denen das komplette System getestet wird, bevor es der Öffentlichkeit übergeben wird. Beachte auch, daß du Wünsche nach neuen Features mit <reportbug> übermitteln kannst, obwohl das natürlich keine Fehler sind.

Nachdem du die Einstufung gewählt hast, wird ein Editor gestartet, der all die Informationen zeigt, die bisher gesammelt wurden:
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 

Jetzt ist der Zeitpunkt gekommen, zu dem du die Angaben zum Titel näher ausführen kannst. Zwischen den Zeilen <Severity: normal> und <-- System Information> kannst du nähere Einzelheiten und Umstände zum Auftreten des Fehlers schildern. Versuche, den Fehler zu reproduzieren und genau zu beschreiben, welche Schritte du gemacht hast, bis du auf den Fehler gestoßen bist. Dies kann den Entwicklern helfen, auf der Spur zu dem Bug einen Teil schlecht funktionierenden Codes aufzuspüren. In komplexeren Situationen könntest du auch das erwartete Ergebnis oder Verhalten angeben.

Schließlich fragt dich das Programm, ob die Fehlermeldung zur Bug-List gemailt werden soll. Wenn der Report gesendet wird, ist der Prozess für's erste beendet. Du hast der Gemeinschaft gerade etwas zurückgegeben.  

Was weiter?

Du kannst den Status des Bug-Reports verfolgen, indem du das <Debian Bug Track System> besuchst und das Paket auswählst, dem du den Report hinzugefügt hast. (Er wird aber frühestens nach 24 Stunden in dieser Liste auftauchen.) Und dann wartest du. Und hoffentlich wird der Bug bald repariert.

Leider gibt es noch kein graphisches User Interface für <reportbug>, doch jetzt kann ja jeder Debian User Bug-Reports mitteilen, unabhängig von der Funktionalität des Systems. Und ein Interface ist heutzutage schnell geschrieben. Ich bin sicher, bald eines zu sehen!  

Talkback für diesen Artikel

Jeder Artikel hat seine eigene Seite für Kommentare und Rückmeldungen. Auf dieser Seite kann jeder eigene Kommentare abgeben und die Kommentare anderer Leser sehen:
 Talkback Seite 

Die Redaktion
© Egon Willighagen, FDL
LinuxFocus.org

Einen Fehler melden oder einen Kommentar an LinuxFocus schicken
Autoren und Übersetzer:
en -> -- Egon Willighagen
en -> de Dieter Breitenstein

2001-01-26, generated by lfparser version 2.8