Inhalt

6. Gute Distributionserzeugungs-Praxis

Die folgenden Richtlinien beschreiben, wie Ihre Distribution aussehen sollte, wenn jemand sie herunterlädt, wiederherstellt und entpackt.

6.1 Stellen Sie sicher, daß tar-Archive immer in ein einzelnes neues Verzeichnis entpackt werden

Den am meisten ärgerlichen Fehler, den Programmierneulinge machen, ist, Archive zu bilden, die die darin enthaltenen Dateien und Verzeichnisse direkt ins aktuelle Verzeichnis entpacken; zu guter Letzt werden dabei auch noch bereits existierende Dateien überschrieben! Tun sie das nie!

Stellen Sie stattdessen sicher, daß alle Dateien in ein gemeinsames Verzeichnis entpackt werden, das den Namen des Projekts trägt. Auf diese Weise werden sie in ein einziges oberstes Projekt-Verzeichnis entpackt, daß direkt im aktuellen Verzeichnis wurzelt.

Hier ist ein Makefile-Trick, der das sicherstellt: angenommen, Ihr Projekt-Verzeichnis ist `foobar' und SRC enthält ein Verzeichnis der Dateien Ihrer Distribution, dann sieht das so aus (das GNU-Programm tar 1.13 muß dazu vorhanden sein):

VERS=1.0
foobar-$(VERS).tar.gz:
        tar --name-prefix='foobar-$(VERS)/' -czf foobar-$(VERS).tar.gz $(SRC)

Haben Sie eine ältere Version von tar, sieht das Ganze so aus:

foobar-$(VERS).tar.gz:
        @ls $(SRC) | sed s:^:foobar-$(VERS)/: >MANIFEST
        @(cd ..; ln -s foobar foobar-$(VERS))
        (cd ..; tar -czvf foobar/foobar-$(VERS).tar.gz `cat foobar/MANIFEST`)
        @(cd ..; rm foobar-$(VERS))

6.2 Fügen Sie eine README-Datei bei!

Eine Datei mit dem Namen README oder READ.ME sollte vorhanden sein; sie ist eine Landkarte Ihrer Software-Distribution. Nach alter Sitte ist dies die erste Datei die unerschrockene Neugierige nach der Entpackung der Quellen lesen werden.

In der README-Datei werden sich als nützlich erweisen:

6.3 Beachten und befolgen Sie die Benennung für die Standard-Dateien

Bevor er noch nach der README-Datei schaut, wird Ihr unerschrockener Neugieriger die Dateinamen im obersten Verzeichnis Ihrer entpackten Distribution gelesen haben. Diese Namen können bereits der Information dienen. Wenn Sie bestimmte eingebürgerte Namensgebungen einhalten, können Sie dem Erkundenden wertvolle Hinweise geben, wonach sie als Nächstes Ausschau halten sollten.

Hier sind nun einige Dateinamen, die üblicherweise im höchsten Ordner zu finden sind, und deren Bedeutung. Natürlich muß nicht jede Distribution alle davon besitzen.

README oder READ

die "Landkarte" der Distribution; als erstes zu lesen

INSTALL

Anweisungen zur Konfiguration und Installation

CREDITS

Liste derer, die was zum Projekt beigetragen haben

NEWS

laufende Projekt-Neuigkeiten

HISTORY

Geschichte des Projekts

COPYING

Lizenzbestimmungen für das Projekt (GNU Konvention)

LICENSE

Lizenzbestimmungen für das Projekt

MANIFEST

Verzeichnis der Dateien der Distribution

FAQ

Liste mit häufig gestellten Fragen zum Projekt in einfachem Textformat

TAGS

Datei mit `tags' für die Editoren vi oder Emacs

Beachten Sie die weitverbreitete Konvention, daß Dateinamen, die nur aus Großbuchstaben bestehen, keine Programmkomponenten sind, sondern von Menschen lesbare Metainformationen bezüglich der Software darstellen.

Eine FAQ kann viel Ärger ersparen. Wenn bestimmte Fragen zum Projekt öfters auftauchen, dann packen Sie diese Fragen in die FAQ; halten Sie die Benutzer an, erst die FAQ zu lesen, bevor sie Fragen losschicken oder Fehler melden. Eine gut aufgebaute FAQ kann den Support, der auf den Projekt-Unterstützern lastet, vermindern.

Eine HISTORY- oder NEWS-Datei mit einer zeitlichen Übersicht über alle Versionen ist nützlich. Unter anderem kann es Kniffe früher einführen, falls Sie jemals mit einem Patentverletzungs-Verfahren in Berührung kommen sollten (das ist zwar bis jetzt noch niemendem passiert, aber es ist am besten, wenn man darauf vorbereitet ist).

6.4 Bieten Sie RPMs an

Das de facto Standardformat für zu installierende Binärcode-Archive ist das des Red Hat Package Manager, RPM. Es ist Bestandteil der populärsten Linux-Distribution (Red Hat) und wird von nahezu allen anderen Linux- Distributionen unterstützt (außer Debian und Slackware; und Debian kann immerhin via RPMs installieren).

Folglich ist es eine gute Idee, sowohl installierbaren Binärcode in RPM-Form zu unterstützen als auch den Quellcode in Form von tar-Archiven.

Gleichfalls ist es eine gute Idee, in Ihr tar-Quellcode-Archiv die spec-Datei für RPM mitzugeben, mit einer Methode, RPMs daraus zu erzeugen (in Ihrer Makefile). Diese spec-Datei sollte die Endung `spec' haben; auf diese Weise findet die Option rpm -t diese Datei im tar-Archiv.

Für besondere Stilaspekte erzeugen Sie diese spec-Datei mit einem Shell-Skript, das automatisch die richtige Versionsnummer einträgt, indem es die Makefile analysiert oder eine Datei version.h.


Inhalt