Während die Dokumentation unter Developers corner
nicht richtig
erklärt, wo ein neuer Maintainer mit der Arbeit beginnen soll, wird dieses
Dokument jeden kleinsten Schritt beschreiben (auch möglicherweise irrelevante
Schritte), um ihnen bei der Erstellung zu helfen damit Sie etwas mehr
Erfahrungen sammeln, die Sie bei anderen Paketen gebrauchen können.
Sie werden wahrscheinlich schon ein Programm ausgesucht haben, aber hier noch einige Hinweise für Sie als Erstmaintainer:
package search
page
nach dem Paket suchen. [A.d.ü.: Oder von der
unstable-Distribution die Contents-Datei zieht und nach bekannten Dateinamen
durch'grep'en] Benutzen Sie die aktuelle
`unstable'-Distribution, versuchen Sie es mit Kommandos wie:
dpkg -s program dpkg -l '*program*'
WNPP
page
und die List-Archvie der Mailingliste debian-devel nach den
Hinweisen auf die gleichzeitige Arbeit eines anderen Maintainers an dem selben
Paket. Wenn es so ist, können Sie den Maintainer kontaktieren (sofern Sie ihm
etwas mitteilen möchten). Andernfalls werden Sie sicherlich ein anderes
Programm finden, an dem noch kein Maintainer arbeitet.
Debian Free
Software Guidelines
. Wenn sie diesen Richtlinien nicht entspricht,
kann das Paket oft noch in die Sektionen `contrib' oder `non-free' der
Debian-Distribution aufgenommen werden. Sind Sie sich über die Lizenzfragen
nicht sicher, fragen Sie ruhig auf debian-legal@lists.debian.org
.
Natürlich sind die aufgeführten Punkte eher Sicherheitsmassnahmen und sollten Sie vor tobenden Benutzern schützen, falls ihr setuid-Daemon irgendwo mistbaut. Wenn Sie mehr Erfahrungen im Paketerstellen gesammelt haben, können Sie sich auch an solchen Paketen versuchen, aber selbst die erfahrensten Debian-Entwickler fragen schon mal in der debian-devel-Mailingliste, wenn sie irgendwo Zweifel haben. Und die Menschen dort helfen gern.
Für weitere Fragen konsultieren Sie die `Developer's Reference´.
Als Erstes müssen Sie das Original-Paket des Programms finden und herunterladen. Ich nehme an, dass sie bereits die Quell-Dateien von der Homepage des Autors gezogen haben. Quellen der freien Linux-Programm kommen i.d.R. im tar/gzip-Format, mit der erweiterung .tar.gz, und enthalten üblicherweise ein Unterverzeichniss, genannt nach dem PROGRAMM-VERSION-Schema, das alle Quellcode-Dateien enthält. Kommt der Quellcode in einem anderen Archivtyp daher (z.B. wenn der Dateiname auf ".Z" oder ".zip" ender), entpacken Sie es mit den entsprechenden Tools oder fragen Sie in debian-menthors, wie man es richtig entpackt (Tip: `file archive.extension´ versuchen.)
Als Beispiel nehme ich hier das Programm namens `gentoo', ein X11/GTK+-Dateimanager. Das Programm ist bereits verpackt, und wurde wesentlich verändert seit dieser Text geschrieben wurde.
Erstellen Sie ein Verzeichniss in ihrem Heimverzeichniss, z.B. 'debian' oder 'deb' oder irgendwas anderes, was für Sie geeignet erscheint, etwa ~/gentoo/ in diesem Fall. Kopieren sie das heruntergeladene Archiv dorthin, und entpacken Sie es, z.B. mit `tar zxvf gentoo-0.9.12.tar.gz´. Vergewissern Sie sich, dass es keine Fehler beim Entpacken gab, nicht mal soz. `irrelevante´ Fehler, weil es auf anderen Systemen Probleme geben kann, wenn andere Entpacker bestimmte Anomalien nicht ignorieren.
Jetzt haben Sie ein neues Unterverzeichniss, 'gentoo-0.9.12'. Wechseln Sie dorthin und lesen Sie die mitgelieferte Dokumentation komplett durch. Meist sind es die Dateien mit Namen nach dem Schema README*, INSTALL*, *.lsm oder *.html. Sie müssen eine Anleitung finden, wie man das Programm richtig übersetzt und installiert (meistens wird von einer Installation in /usr/local/bin ausgegangen, aber das wollen wir nicht. Mehr dazu später in Installation in ein Unterverzeichnis, Abschnitt 4.1).
Der Prozess ist vom Programm zu Programm unterschiedlich, aber viele moderne Programme kommen mit einem `configure'-Skript, dass den Quellcode an die Systemumgebung anpasst. Nach dem Erfolgreien `konfigurieren´ mit `./configure' können die Programm mit `make´ kompiliert werden. Einige unterstützen auch `make check´, dass zusätzlche Selbsttests durchführt. Die Installation in die Zielverzeichnisse geschieht dann mit `make install´.
Versuchen Sie nun, das Programm zu kompilieren und stellen Sie sicher, dass es einwandfrei funktioniert und nichts anderes während der Installation oder der Ausführung kaputt macht.
Ebenfalls kann man oft `make uninstall` ausführen, dass die installierten Dateien entfernt, und `make clean´ (oder besser `make distclean`), um im aktuellen Arbeitsverzeichniss aufzuräumen.
Sie sollten mit einem aufgeräumten oder besser frisch ausgepackten Quellcode-Verzeichniss anfangen.
Damit alles richtig funktioniert sollten Sie den ursprünglichen Namen in Kleinbuchstaben umwandeln. Ebenfalls sollten Sie den Namen zu <Paketname>-<Version> verändern.
Wenn der Programmname aus mehr als einem Wort besteht, machen Sie ein Wort oder eine Abkürzung verwenden. Zum Beispiel könnte man "John's little editor for X" in johnledx, oder jle4x umbennen, oder wie auch immer, solange die Länge in einem vernünftigen Rahmen von etwa 20 Zeichen bleibt.
Überprüfen Sie auch die exakte Versionsnummer des Programms, die als Versionsnummer des Pakets verwendet wird. Wenn dieses Stück Software keine Nummerierung nach dem Schema X.Y.Z, sondern nach dem Datum verwendet, können Sie dieses Datum mit davorstehenden "0.0" verwenden ("0.0" für den Fall, das sich der `upstream author´ dazu entschliesst, eine zukünftige Version mit 1.0 nummeriert). In diesem Fall bekommt ein Abzug vom 19. Dezember 1998 eine Versionsnummer wie 0.0.19981219. Einige Programme haben gar keine Versionsnummeriurung - in diesem Fall sollten Sie den `upstream maintainer´ kontaktieren und eine eindeutige Methode ausarbeiten.
Wechseln Sie in das Quell-Verzeichniss des Programms und führen Sie folgendes aus:
dh_make -e your.maintainer@address -f ../gentoo-0.9.12.tar.gz
Natürlich ersetzen Sie "your.maintainer@address" mit ihren eigenen
E-Mail-Adresse für den Eintrag in changelog sowie andere Dateien, ebenfalls
verwenden Sie den Dateinamen ihres Quell-Archivs. (Weitere Details in
dh_make(1)
).
Es werden einige Informationen angezeigt und Sie werden gefragt, welcher Art das Paket sein wird. Gentoo ist ein "single binary package" - es wird eine Binärdatei und ein .deb-Paket erstellt, also wählen wir die erste Option mit der `s´-Taste, überprüfen nochmal die Informationen und bestätigen mit <enter>. Als einem beginnenden Maintainer wird es davon abgeraten, mehrere Binär-Pakete (`multiple binary packages´) oder Bibliotheken (`libraries´) zu erstellen, wie es schon vorher erwähnt wurde, deswegen gehen ich hier nicht weiter darauf ein.
Beachten Sie, dass dh_make nur ein Mal ausgeführt wird und bei späteren Aufrufen nicht sauber funktionieren wird, wenn es im "debianisierten" Verzeichniss ausgeführt wird. Das bedeutet auch, dass Sie bei späteren Updates mit neueren Programm-Versionen anders vorgehen müssen, mehr dazu später in Weiterentwicklung des Pakets, Abschnitt 7.4.
Anleitung für zukünftige Debian-Maintainer
Version 1.0.2, 10. Juni 2001.joy-mg@debian.org
edi@ka.linux.de