Packaging Tutorial - 1. Der Anfang
1.1 Grundlagen
Beachten sie: In diesem Dokument wird davon ausgegangen, dass
fink
im Verzeichnis /opt/sw
installiert ist,
entsprechend der Voreinstellungen. Ein Block mit Code wie dieser
finkdev% somecommand
bedeutet, dass sie das Kommando somecommand
in einem Fenster von
Terminal.app oder einem anderen Terminalprogramm ihres Macs eingeben müssen.
Zuerst müssen sie einige grundlegende Konzepte über das Erstellen von Fink-Paketen verstehen. Wir schlagen folgendes vor:
- Lesen sie folgende Folien Using Fink: A Developer's How To (2 MB pdf-Datei) durch. die auf der O'Reilly Mac OS X Conference präsentiert wurden.
- Lesen sie folgendes Beispiel durch und versuchen sie es auch zu verstehen.
-
Schauen sie in andere, ähnliche Pakete im Verzeichnis
/opt/sw/fink/dists/stable/main/finkinfo/
oder im online CVS-Repository. Nehmen sie eine oder mehrere Dateien als Ausgangspunkt für ihr eigenes Paket. - Durchsuchen sie den Package Submission Tracker, ob bereits jemand anderer bereits versuchte, das Paket zu erstellen oder ob jemand im Package Request Tracker darum gebeten hat, es zu erstellen. Oft findet man wertvolle Informationen.
- Schauen sie vielleicht in der Anleitung für die Paketerstellung nach, wenn sie denken, dass sie weitere Details brauchen.
1.2 Paket erstellen
Speichern sie ihre info-Datei (falls benötigt auch die patch-Datei) im Verzeichnis
/opt/sw/fink/dists/local/main/finkinfo/
. Der Name der Datei sollte
paketname.info
sein (und paketname.patch
).
paketname ist der Name ihres Pakets. Existiert das Verzeichnis nicht, müssen sie
es erzeugen. Paketname sollte klein geschrieben sein.
Beachten sie bitte:
Versichern sie sich, dass fink
aktuell ist, indem sie folgende
Kommandos ausführen:
finkdev% fink selfupdate
Danach:
finkdev% fink configure
Setzen sie dabei die Ausführlichkeits-Stufe auf den höchsten Wert. Aktivieren
sie Mac OS X - Versionen bis 10.6 den unstable Baum. Danach sollten sie mit dem
folgenden Kommando überprüfen, ob fink
ihr Paket findet:
finkdev% fink list paketname
Sollte ihr Paket nicht aufgeführt werden, müssen sie die Konfigurationsdatei von Fink ergänzen, so dass ihr lokaler Baum berücksichtigt wird.
Vielleicht müssen sie auch den Index der Pakete mit folgendem Kommando aktualisieren:
finkdev% fink index
Benötigen sie mehr Details, schauen sie bitte in der Anleitung für die Paketerstellung nach oder nutzen sie eine der folgenden Hilfequellen. Sie sollten auch die fink-devel Mailing-Liste abonnieren.
1.3 Validieren sie ihr Paket
Während der Validierung sollten sie die Ausführlichkeits-Stufe von
fink
auf den höchsten Wert setzen. Schauen sie im Abschnitt
Konfigurationsdatei von Fink
nach, wie man die Ausführlichkeits-Stufe verändert.
Überprüfen sie mit folgendem Kommando, ob ihr Paket validiert werden kann:
finkdev% fink validate /opt/sw/fink/dists/local/main/finkinfo/paketname.info
Ist ihr Paket validiert, versuchen sie es mit diesem Kommando zu erstellen:
finkdev% fink -m --build-as-nobody rebuild paketname
Durchsuchen sie die Ausgabe des Prozesses sorgfältig nach Fehlern und Warnungen.
Achten sie insbesondere darauf, dass alles in das richtige Zielverzeichnis
installiert wird, nämlich /opt/sw/src/root-paketname-%v-%r/opt/sw
.
Von dort erstellt fink
das binäre Paket. Nichts darf direkt in das
Verzeichnis /opt/sw
installiert werden.
Mit der fink
-Option --keep-build-dir
oder
-k
wird das Verzeichnis, in dem das Paket erstellt wurde, nicht
gelöscht, sondern bleibt erhalten. Hierhin hat fink
den Quelltext
entpackt und das Paket erstellt. Dies kann dabei helfen, Fehler bei der
Erstellung zu beheben. Geben sie das Kommando man fink
für weitere
Details ein.
Mit der fink
-Option --keep-root-dir
or -K
wird auch das Zielverzeichnis nicht gelöscht, sondern bleibt erhalten.
hier erstellt fink
den Installations-Baum des Pakets. Fehler
während der Installation kommt man oft durch einen Vergleich des Verzeichnisses
für das Erstellen und dem Zielverzeichnis auf die Spur.
Wird das Paket erfolgreich erstellt, überprüfen sie das Binärpaket mit folgendem Kommando:
finkdev% dpkg -c /opt/sw/fink/dists/local/main/binary-darwin-powerpc/paketname.deb
Überprüfen sie, dass alle Dateien auch tatsächlich in der .deb Datei sind.
Ein weiteres Mal: Nichts darf direkt in das Verezichnis /opt/sw
installiert werden.
Jetzt kann man auch das binäre Paket mit diesem Kommando validieren:
finkdev% fink validate /opt/sw/fink/dists/local/main/binary-darwin-powerpc/paketname.deb
Ist alles in Ordnung, können sie das Paket installieren
finkdev% fink install paketname
und die Funktionalität ihres Paket überprüfen.
Klappt einer der Schritte nicht, versuchen sie, den Fehler zu beheben und
beginnen sie noch einmal von vorne mit dem Schritt fink validate
.
1.4 Paket einreichen
Hat ihr Paket alle überprüfungen überstanden, können sie ihre info-Datei (falls benötigt auch die patch-Datei) im Package Submission Tracker einreichen.
Einer der Paket-Reviewer wird sich ihr Paket anschauen und es zu dem entsprechenden Paket-Baum hinzufügen (bis 10.6: unstable-Baum), wenn er es als in Ordnung einschätzt. Falls nicht, werden sie gebeten, das Paket Fehler zu beheben und es in Einklang mit der Paket-Politik zu bringen.
Wichtig:
- Wenn irgendwie praktikabel, laden sie mehrere Dateien (also info- und patch-Datei) eine nach der anderen in den selben Trackereintrag hoch.
- Vermerken für welchen Baum oder Bäume (10.x) das Paket eingereicht wird.
-
Vermerken sie, in welche
Kategorie
(graphics, sci, etc.) ihrer Meinung nach das Paket gehört. -
Geben sie an, ob sie das Kommando
fink validate
mit ihren info- und deb-Dateien ausgeführt haben. -
Setzen sie das Feld
Group
des Trackereintrags aufUndergoing Validation
, wenn sie einen neuen Eintrag erstellen. Vergessen sie nicht, es auch dann wieder aufUndergoing Validation
zurück zu stellen, wenn sie ein Problem behoben haben, das von einem Reviewer gefunden und bemängelt wurde. -
Setzen sie das Feld
Category
des Trackereintrags auf den korrekten Wert.
Weiter: 2. Beispiel - das Maxwell Paket