Anleitung für zukünftige Debian-Betreuer
Fußnoten

1

In diesem Dokument wird davon ausgegangen, dass Sie ein Squeeze-System verwenden. Wenn Sie diesen Text auf einem Lenny-System lesen, müssen Sie mindestens die zurückportierten Pakete dpkg und debhelper installieren.

2

Es gibt einige ähnliche, aber spezialisierte Pakete wie dh-make-perl, dh-make-php usw.

3

Trotzdem gibt es natürlich immer neue Programme, die es wert sind, für Debian paketiert zu werden.

4

Sie können das Archivformat herausfinden, indem Sie den Befehl file verwenden, wenn die Dateierweiterung nicht genug ist.

5

Das Programm ist bereits paketiert worden. Die aktuelle Version 0.15.3 hat sich gegenüber der in den folgenden Beispielen benutzten Version 0.9.12 drastisch geändert.

6

Siehe Autotools Tutorial und /usr/share/doc/autotools-dev/README.Debian.gz.

7

Die Versionszeichenkette kann mit »dpkg --compare-versions Ver1 Op Ver2« verglichen werden. Siehe die Handbuchseite von dpkg(1).

8

Wenn die originalen Quellen das Verzeichnis debian und seinen Inhalt enthalten, rufen Sie den Befehl dh_make stattdessen mit der Option --addmissing auf. Das neue Quellformat 3.0 (quilt) ist sehr robust und kann selbst mit solchen Paketen umgehen. Sie müssen wahrscheinlich die vom ursprünglichen Autor bereitgestellten Inhalte für Ihr Debian-Paket aktualisieren.

9

Es gibt hier einige Auswahlmöglichkeiten: »s« für »Single binary« (einzelnes Binärpaket), »i« für »Arch-Independent« (Architektur-unabhängig), »m« für »Multiple binary« (mehrere Binärpakete), »l« für »Library« (Bibliothek), »k« für »Kernel module« (Kernelmodul), »n« für »Kernel patch« (Kernelpatch) und »b« für »cdbs«. Dieses Dokument konzentriert sich auf das Paket debhelper mit dem Befehl dh. Dieses Dokument konzentriert sich auf die Verwendung des neuen Befehls dh für »Single binary« und streift die Verwendung für »Arch-Independent« und »Multiple binary«. Das Paket cdbs bietet eine alternative Paketierungs-Skriptinfrastruktur zum Befehl dh und wird in diesem Dokument nicht behandelt.

10

Sie können diese Konfiguration ausschalten, indem Sie den Befehl quilt folgendermaßen aufrufen: »quilt --quiltrc /dev/null ...«.

11

Das Verzeichnis debian/patches sollte inzwischen existieren, wenn Sie dh_make wie vorher beschrieben ausgeführt haben. In diesem Beispiel wird es sicherheitshalber erstellt, nur für den Fall, dass Sie das existierende Paket aktualisieren.

12

Bei mehreren Binärpaketen (»multiple binary packages«) verwendet der Befehl dh_auto_install das temporäre Verzeichnis debian/tmp. Der Befehl dh_install teilt dann den Inhalt von debian/tmp mit Hilfe von debian/Paket-1.install und debian/Paket-2.install in die temporären Verzeichnisse debian/Paket-1 und debian/Paket-2 auf, um daraus mehrere binäre *.deb-Pakete zu erstellen.

13

Dies ist nur ein Beispiel, wie die Datei Makefile aussehen sollte. Wenn die Makefile-Datei durch den Befehl ./configure erstellt wird, ist die richtige Vorgehensweise, um diese Art Makefile zu korrigieren, den Befehl ./configure durch den Befehl dh_auto_configure aufrufen zu lassen. Dabei kommen die voreingestellten Optionen zum Tragen, einschließlich der Option --prefix=/usr.

14

Der Autor ist sich bewusst, dass dies nicht das beste Beispiel ist, weil das Paket libncurses mittlerweise einen symbolischen Link auf libcurses.so enthält, aber er konnte sich kein besseres ausdenken. Vorschläge sind sehr erwünscht :-)

15

Diese etwas merkwürdige Situation ist eine Besonderheit, die in den Debian-Richtlinien, Fußnote 48 sehr gut dokumentiert ist. Es liegt nicht an der Verwendung des Befehls dh in der Datei debian/rules, sondern daran, wie das Programm dpkg-buildpackage arbeitet. Dieselbe Situation gilt auch für das »auto build system« von Ubuntu.

16

Einige Leute verwenden ungültige Werte für die Distribution wie UNRELEASED, um zu verhindern, dass ein Paket versehentlich hochgeladen wird, wenn es in einem verteilten Versionskontrollsystem aktualisiert wird.

17

Dieses Target wird von »dpkg-buildpackage« wie in Kompletter Neubau, Abschnitt 6.1 beschrieben benutzt.

18

Dieses Target wird von »dpkg-buildpackage -B« wie in Autobuilder, Abschnitt 6.2 beschrieben benutzt.

19

Dieses Target wird von »dpkg-buildpackage -A« benutzt.

20

Dies verwendet die neuen Möglichkeiten von debhelper V7. Dessen Designkonzepte werden in »Not Your Grandpa's Debhelper« erklärt, das auf der Debconf9 vom debhelper-Betreuer präsentiert wurde. Unter lenny erzeugte dh_make eine wesentlich kompliziertere Datei rules, die für jedes erforderliche und explizit benannte Target vielen dh_*-Skripte auflistete. Dadurch wurde der Status eingefroren, der während der initialen Paketerstellung aktuell war. Der neue dh-Befehl ist einfacher und befreit uns von dieser Beschränkung. Sie haben mit den override_dh_*-Targets weiterhin die vollständige Kontrolle über Anpassungen. Siehe Anpassungen der Datei rules, Abschnitt 4.4.3. Es basiert lediglich auf dem Paket debhelper und verschleiert den Prozess des Paketbaus nicht wie das Paket cdbs.

21

Sie können überprüfen, welche Sequenzen von dh_*-Programmen für ein bestimmtes Target tatsächlich aufgerufen werden, indem Sie »dh --no-act Target« oder »debian/rules -- '--no-act Target'« ausführen. Dadurch werden die Sequenzen nicht ausgeführt.

22

Hier wird vorausgesetzt, dass das Paket python-support auf dem System installiert ist.

23

Für vollständige Informationen darüber, was all diese dh_*-Skripte genau machen und was ihre weiteren Optionen sind, lesen Sie bitte die jeweiligen Handbuchseiten und die Dokumentation von debhelper.

24

Diese Befehle unterstützen andere Build-Umgebungen wie beispielsweise setup.py, die durch das Aufrufen von »dh_auto_build --list« im Quellverzeichnis eines Pakets aufgelistet werden können.

25

Tatsächlich wird nach dem ersten verfügbaren Target aus der Liste distclean, realclean oder clean im Makefile gesucht und dieses ausgeführt.

26

Tatsächlich wird nach dem ersten verfügbaren Target aus der Liste test oder check im Makefile gesucht und dieses ausgeführt.

27

Wenn ein Paket die Datei /usr/share/perl5/Debian/Debhelper/Sequence/eigener_name.pm installiert, können Sie dessen angepasste Funktion mittels »dh --with eigener-name $@« aktivieren.

28

Die Benutzung des Befehls dh_pysupport wird gegenüber dem Befehl dh_pycentral bevorzugt. Verwenden Sie nicht den Befehl dh_python.

29

Wenn Sie unter Lenny das Verhalten eines dh_*-Skripts ändern wollten, mussten Sie die entsprechende Zeile in der Datei rules aufsuchen und dort anpassen.

30

Das Paket gentoo verwendet das GNU-Build-System, auch bekannt als die Autotools. Siehe http://de.wikipedia.org/wiki/GNU_Build_System.

31

dh_auto_build ohne Argumente führt das erste Target in der Datei Makefile aus.

32

Die Dateien debian/changelog und debian/NEWS werden immer automatisch installiert. Das ursprüngliche Changelog wird gesucht, indem die Dateinamen in Kleinbuchstaben umgewandelt werden und mit changelog, changes, changelog.txt und changes.txt verglichen werden.

33

The actual autobuilder system involves much more complicated schemes than the one documented here. Such details are beyond the scope of this document.

34

Unlike under the pbuilder package, the chroot environment under the sbuild package used by the autobuilder system does not force the minimal system and may leave many packages installed.

35

Wenn Sie noch kein Debian-Entwickler sind und Ihren Sponsor bitten, Ihr Paket nach einer Überprüfung hochzuladen, sollten Sie Ihr Paket so einfach wie möglich für ihn überprüfbar machen.

36

Sie sollten eventuell Ihr System anpassen, indem Sie das Verzeichnis /var/cache/pbuilder/result/ für die Benutzer schreibbar machen und in der Datei ~/.pbuilderrc oder /etc/pbuilderrc Folgendes hinzufügen:

     AUTO_DEBSIGN=yes

Damit können Sie die erzeugten Pakete mit Ihrem geheimen GPG-Schlüssel unter ~/.gnupg/ signieren. Da sich das Paket pbuilder in ständiger Entwicklung befindet, sollten Sie die aktuellen Einstellmöglichkeiten in der letzten offiziellen Dokumentation nachschlagen.

37

Siehe ftp://ftp.upload.debian.org/pub/UploadQueue/README. Sie können auch das Kommando dcut aus dem Paket dput benutzen.

38

Bitte sorgen Sie dafür, dass Ihr Paket durch wohldurchdachtes postinst etc. die Konfigurationsdateien ordentlich aktualisiert, damit nichts geschieht, was der Benutzer nicht will! Das sind die Verbesserungen, die erklären, warum sich Leute für Debian entscheiden.

Wenn es nötig ist, die Aktualisierung auffällig ablaufen zu lassen (z.B. Konfigurationsdateien sind in verschiedenen Home-Verzeichnissen mit völlig unterschiedlicher Struktur verstreut), sollten Sie als letzte Möglichkeit das Paket in einen sicheren Standardmodus bringen (z.B. den Dienst abschalten) und eine ordentliche Dokumentation gemäß der Policy (README.Debian und NEWS.Debian) bereitstellen. Aber nicht den Admin mit einer debconf-Meldung belästigen.

39

Einige Leute lehnen das sogar für Debian-spezifische Pakete ab und finden es besser, den Inhalt des Verzeichnisses debian/ in die Datei *.diff.gz zu packen, als in die Datei *.orig.tar.gz.


Anleitung für zukünftige Debian-Betreuer

Diese Übersetzung wird derzeit aktualisiert. Teile beruhen auf Version 1.2.3 vom 18. Januar 2005, die aktuelle Version ist 1.2.25, 2010-12-22 12:44:34 UTC

Josip Rodin joy-mg@debian.org

Übersetzung von Tobias Quathamer toddy@debian.org
Erik Schanze mail@erikschanze.de
und Eduard Bloch blade@debian.org