dpkg-source - Debian Quellpaket- (.dsc) Manipulations-Werkzeuge
dpkg-source [
Option …]
Befehl
dpkg-source packt und entpackt Debian-Quellarchive.
Keiner dieser Befehle erlaubt es, mehrere Optionen zu einer zu kombinieren, und
sie erlauben es nicht, den Wert einer Option in einem separaten Argument zu
speichern.
-
-x, --extract Dateiname.dsc
[Ausgabe-Verzeichnis]
- Entpackt ein Quellpaket (--extract seit Dpkg
1.17.14). Ein nicht-Options-Argument muss angegeben werden, der Name der
Debian Quell-Steuer-Datei ( .dsc). Optional kann ein zweites
nicht-Options-Argument angegeben werden, um das Verzeichnis anzugeben, in
das das Quellpaket entpackt werden soll. Dieses Verzeichnis darf dann
nicht existieren. Falls kein Ausgabeverzeichnis angegeben ist, wird das
Quellpaket in das Verzeichnis namens Quelle-Version
unterhalb des aktuellen Arbeitsverzeichnisses entpackt.
dpkg-source wird die Namen der anderen Datei(en) aus der Steuerdatei
einlesen, die das Quellpaket ergeben; es wird angenommen, dass diese im
gleichen Verzeichnis wie die .dsc liegen.
Die Dateien in dem entpackten Paket werden die Rechte und Eigentümer
haben, die erwartet würden, falls die Dateien und Verzeichnisse
einfach angelegt worden wären - Verzeichnisse und Programmdateien
werden 0777 und einfache Dateien 0666, beide durch die umask der Person,
die entpackt, entsprechend angepasst; falls das übergeordnete
Verzeichnis setgid ist, werden dies die entpackten Verzeichnisse auch
sein, und alle Dateien und Verzeichnisse werden die
Gruppeneigentümerschaft erben.
Falls das Quellpaket ein nicht-Standard-Format verwendet (derzeit bedeutet
dies alle Formate außer „1.0“)) wird sein Name in
debian/source/format gespeichert, so dass alle folgenden
Bauversuche des Quellpakets standardmäßig das gleiche Format
verwenden.
-
-b, --build Verzeichnis
[Format-abhängige-Parameter]
- Baut ein Quellpaket (--build seit Dpkg 1.17.14). Das
erste nicht-Options-Argument wird als Name des Verzeichnisses verwandt,
das den debianisierten (d.h. mit einem Unterverzeichnis
„debian“ und ggf. Änderungen an den Originaldateien
versehenen) Quellbaum enthält. Abhängig vom dem zum Bau
verwandten Quellpaketformat könnten zusätzliche Parameter
akzeptiert werden.
dpkg-source wird das Quellpaket mit dem ersten gefundenen Format aus
der folgenden geordneten Liste bauen: dem mit der Befehlszeilenoption(en)
--format angegebenen Format, dem in debian/source/format
angegebenen Format, „1.0“. Die Rückfalloption
„1.0“ ist veraltet und wird irgendwann in der Zukunft
entfernt werden, Sie sollten das gewünschte Quellformat immer in
debian/source/format dokumentieren. Die verschiedenen
Quellpaketformate werden im Abschnitt QUELLPAKET-FORMATE
ausführlich beschrieben.
-
--print-format Verzeichnis
- Gibt das Quellformat aus, dass zum Bau des Quellpakets
verwandt würde, falls dpkg-source --build Verzeichnis
aufgerufen würde (unter den gleichen Bedingungen und mit den
gleichen Parametern, seit Dpkg 1.15.5).
-
--before-build Verzeichnis
- Der entsprechende Hook des Quellpaketformats soll
ausgeführt werden (seit Dpkg 1.15.8). Dieser Hook wird vor jedem
Bau des Pakets aufgerufen ( dpkg-buildpackage ruft ihn sehr
früh, sogar vor debian/rules clean auf). Dieser Befehl ist
idempotent und kann mehrfach aufgerufen werden. Nicht alle Quellformate
implementieren in diesem Hook etwas und wenn dies erfolgt, dann
gewöhnlich zur Vorbereitung des Quellbaums für den Bau, in
dem beispielsweise sichergestellt wird, dass alle Debian-Patches angewandt
sind.
-
--after-build Verzeichnis
- Der entsprechende Hook des Quellpaketformats soll
ausgeführt werden (seit Dpkg 1.15.8). Dieser Hook wird nach jedem
Bau des Pakets aufgerufen ( dpkg-buildpackage ruft als Letztes
auf). Dieser Befehl ist idempotent und kann mehrfach aufgerufen werden.
Nicht alle Quellformate implementieren in diesem Hook etwas und wenn dies
erfolgt, dann gewöhnlich um rückgängig zu machen, was
--before-build durchgeführt hat.
-
--commit [Verzeichnis] …
- Zeichnet Änderungen am in Verzeichnis
entpackten Quellbaum auf (seit Dpkg 1.16.1). Dieser Befehl kann
zusätzliche Parameter akzeptieren, abhängig vom Quellformat.
Er wird zu einer Fehlermeldung bei Formaten, für denen dieser
Vorgang keine Bedeutung hat, führen.
-
-?, --help
- Zeigt die Hinweise zur Benutzung und beendet das Programm.
Die formatspezifischen Bau- und Entpackoptionen können mit der
Option --format angezeigt werden.
- --version
- Gibt die Version aus und beendet das Programm.
-
-cSteuerdatei
- Bestimmt die Hauptquell-control-Datei, aus der
Informationen ausgelesen werden sollen. Der Standardwert ist
debian/control. Falls der Pfadname relativ ist, wird dieser relativ
zum obersten Verzeichnis des Quellbaums interpretiert.
-
-lChangelog-Datei
- Bestimmt die Changelog-Datei, aus der Informationen
ausgelesen werden sollen. Der Standardwert ist debian/changelog.
Falls der Pfadname relativ ist, wird dieser relativ zum obersten
Verzeichnis des Quellbaums interpretiert.
-
-FChangelog-Format
- Spezifiziert das Format des Changelogs. Lesen Sie
dpkg-parsechangelog(1) für Informationen über
alternative Formate.
-
--format=Wert
- Verwendet das angegebene Format zum Bau des Quellpakets
(seit Dpkg 1.14.17). Es überschreibt jedes in
debian/source/format angegebene Format.
-
-VName=Wert
- Setzt eine Ausgabeersetzungsvariable. Lesen Sie
deb-substvars(5) für eine Besprechung der
Ausgabeersetzung.
-
-TSubstvars-Datei
- Liest Ersetzungsvariablen aus Substvars-Datei;
standardmäßig wird keine Datei gelesen. Diese Option kann
mehrfach verwandt werden, um Ersetzungsvariablen aus mehreren Dateien
einzulesen (seit Dpkg 1.15.6).
-
-DFeld=Wert
- Überschreibt oder ergänzt ein
Ausgabesteuerdateifeld.
-
-Ufield
- Entfernt ein Ausgabesteuerdateifeld.
-
-ZKomprimierung,
--compression=Komprimierung
- Gibt die Komprimierung an, die für die angelegten
Tarbälle und Diff-Dateien verwendet wird ( --compression
seit Dpkg 1.15.5). Beachten Sie, dass diese Option nicht dazu
führt, dass existierende Tarbälle rekomprimiert werden, sie
betrifft nur neue Dateien. Unterstützte Werte sind gzip,
bzip2, lzma und xz. xz ist für Format
2.0 und neuer, gzip für Format 1.0 voreingestellt. xz
wird erst seit Dpkg 1.15.5 unterstützt.
-
-zStufe,
--compression-level=Stufe
- Zu verwendende Komprimierstufe (--compression-level
seit Dpkg 1.15.5). Wie bei -Z betrifft dies nur neu angelegte
Dateien. Unterstützte Werte sind 1 bis 9, best
(am besten) und fast (schnell). Der Standardwert ist 9
für Gzip und Bzip2, 6 für Xz und Lzma.
-
-i[regex],
--diff-ignore[=regex]
- Sie können einen regulären Perl-Ausdruck
angeben, der auf Dateien passt, die Sie aus der Liste der Dateien
für den Diff entfernen möchten (( --diff-ignore seit
Dpkg 1.15.6); diese Liste wird von einem Find-Befehl generiert. Falls das
Quellpaket als Version 3-Quellpaket mittels eines VCS gebaut wird,
ignoriert dies stattdessen Änderungen an bestimmten Dateien, die
noch nicht übertragen („committed“) wurden (mit -i.*
werden alle davon ignoriert).
Die Option -i selbst aktiviert diese Einstellung mit einem
voreingestellten regulären Ausdruck (der alle Änderungen
durch einen standardmäßigen regulären Ausdruck
erhält, die durch einen früheren Aufruf von
--extend-diff-ignore erfolgten), der Steuerdateien und
-Verzeichnisse der häufigsten Revisionskontrollsysteme,
Sicherungskopien, Swap-Dateien und Bau-Ausgabeverzeichnisse von Libtool
herausgefiltert. Es kann nur einen aktiven regulären Ausdruck
geben, von mehrfach angegebenen Optionen -i wird nur die letzte
berücksichtigt.
Dies ist sehr hilfreich, um irrelevante Dateien, die im Diff aufgenommen
werden, zu entfernen. Falls Sie zum Beispiel Ihre Quellen in einem
Revisionskontrollsystem speichern und „Checkout“ verwenden
möchten, um Ihr Quellpaket zu bauen, ohne die zusätzlichen
Dateien und Verzeichnisse, die darin typischerweise enthalten sind (z.B.
CVS/, .cvsignore, .svn/), mit aufzunehmen. Der voreingestellte
reguläre Ausdruck ist bereits sehr erschöpfend, aber falls
Sie ihn ersetzen müssen, beachten Sie, dass er
standardmäßig auf alle Teile des Pfades passen kann. Falls
Sie daher nur den Anfang eines Pfades oder komplette Dateinamen
vergleichen wollen, müssen Sie die notwendigen Anker (z.B.
‚(^|/)’, ‚($|/)’) selbst bereitstellen.
-
--extend-diff-ignore=regex
- Der angegebene reguläre Ausdruck (Perl-Format) wird
den standardmäßigen von --diff-ignore verwandten Wert
und dessen aktuellen Wert, falls gesetzt, erweitern (seit Dpkg 1.15.6).
Dies erfolgt, indem „ |regex“ an den
existierenden Wert angehängt wird. Diese Option ist bequem in
debian/source/options zu nutzen, um einige automatisch erstellte
Dateien von der automatischen Patch-Erzeugung auszuschließen.
-
-I[Dateimuster],
--tar-ignore[=Dateimuster]
- Falls diese Option angegeben wird, wird der Dateiname an
die Option --exclude von tar(1) weitergegeben, wenn es zur
Erstellung der Datei .orig.tar oder .tar aufgerufen wird (
--tar-ignore seit Dpkg 1.15.6). Zum Beispiel führt
-ICVS dazu, dass Tar CVS-Verzeichnisse überspringt, wenn es
eine .tar-Datei erstellt. Diese Option kann mehrfach wiederholt werden, um
mehrere Muster aufzuführen, die ausgeschlossen werden sollen.
-I fügt standardmäßig von selbst
--exclude-Optionen hinzu, die die Steuerdateien und -verzeichnisse
der häufigsten Revisionskontrollsysteme, Sicherungs- und
Swap-Dateien sowie Bau-Ausgabeverzeichnisse von Libtool
herausfiltern.
Hinweis: Obwohl sie ähnlichen Zwecken dienen, haben
-i und
-I eine sehr verschiedene Syntax und Semantik.
-i kann nur
einmal angegeben werden und nimmt einen regulären Perl-Ausdruck an, der
gegen den vollen relativen Pfad jeder Datei geprüft wird.
-I
kann mehrfach angegeben werden und nimmt ein Dateinamen-Muster mit
Shell-Platzhalter an. Das Muster wird gegen den vollen relativen Pfad, aber
auch individuell auf jeden Teil des Pfades angewendet. Die exakte Semantik der
Option
--exclude ist etwas kompliziert, lesen Sie
<
https://www.gnu.org/software/tar/manual/tar.html#wildcards> für
eine komplette Dokumentation.
Der voreingestellte reguläre Ausdruck und Muster für beide
Optionen können in der Ausgabe des Befehls
--help gesehen
werden.
- --no-copy
- Kopiert die Original-Tarbälle nicht in die
Nähe des entpackten Quellpakets (seit 1.14.17).
- --no-check
- Prüft Signaturen und Prüfsummen vor dem
Entpacken nicht (seit Dpkg 1.14.17).
- --no-overwrite-dir
- Das Entpackverzeichnis nicht überschreiben, falls es
bereits existiert (seit Dpkg 1.18.8).
- --require-valid-signature
- Lehnt das Entpacken des Quellpakets ab, falls es keine
OpenPGP-Signatur enthält, die entweder mit dem
trustedkeys.gpg-Schlüsselbund des Benutzers, mit einem der
Schlüsselbunde des Lieferanten oder mit einem der offiziellen
Debian-Schüsselbunde (
/usr/share/keyrings/debian-keyring.gpg,
/usr/share/keyrings/debian-nonupload.gpg und
/usr/share/keyrings/debian-maintainers.gpg) überprüft
werden kann (seit Dpkg 1.15.0).
- --require-strong-checksums
- Lehnt das Entpacken des Quellpakets ab, falls es keine
starken Prüfsummen enthält (seit Dpkg 1.18.7). Derzeit wird
nur die Prüfsumme SHA-256 als stark betrachtet.
- --ignore-bad-version
- Wandelt die Prüfung auf eine defekte
Quellpaketversion in eine nicht-fatale Warnung (seit Dpkg 1.17.7). Diese
Option sollte nur notwendig sein, wenn ein historisches Quellpaket mit
defekten Versionen entpackt wird, lediglich zur
Rückwärtskompatibilität.
-
--threads-max=Threads
- Setzt die maximale Anzahl an Threads, die für
Komprimierer erlaubt sind, die multi-threaded Aktionen erlauben (seit Dpkg
1.21.14).
- -q
- Setzt den stillen Modus, um Warnungen zu
unterdürcken.
Falls Sie nicht wissen, welches Quellformat Sie verwenden sollen, verwenden Sie
wahrscheinlich am besten entweder „3.0 (quilt)“ oder „3.0
(native)“. Lesen Sie <
https://wiki.debian.org/Projects/DebSrc3.0>
für Informationen über den Einsatz dieser Formate innerhalb von
Debian.
Ein Quellpaket in diesem Format besteht entweder aus einem
.orig.tar.gz
mit zugehörigem
.diff.gz oder einem einzelnen
.tar.gz (in
diesem Fall wird das Paket als
nativ bezeichnet). Optional kann der
ursprüngliche Tarball von einer separaten Signatur der Originalautoren
.orig.tar.gz.asc begleitet werden. Das Entpacken wird seit Dpkg 1.18.5
unterstützt.
Entpacken
Entpacken eines nativen Pakets ist ein einfaches Entpacken eines einzelnen
Tarballs in das Zielverzeichnis. Entpacken eines nicht-nativen Pakets erfolgt
zuerst durch Entpacken des
.orig.tar.gz und dann durch Anwendung des
Patches aus der
.diff.gz-Datei. Der Zeitstempel aller gepatchten
Dateien wird auf den Zeitpunkt des Entpackens des Quellpakets
zurückgesetzt (das vermeidet Zeitstempelversätze, die zu
Problemen führen, wenn autogenerierte Dateien gepatcht werden). Der
Diff kann neue Dateien anlegen (das gesamte Debian-Verzeichnis wird auf diese
Weise erstellt), kann aber keine Dateien entfernen (leere Dateien bleiben
zurück) und keine Symlinks erstellen oder ändern.
Bauen
Bauen eines nativen Pakets besteht nur aus dem Erstellen eines einzigen Tarballs
mit dem Quellverzeichnis. Bauen eines nicht-nativen Pakets schließt das
Entpacken des Original-Tarballs in ein separates Verzeichnis
„.orig“ und die Neuerstellung des
.diff.gz durch
Vergleich des Quellpaket-
Verzeichnisses mit dem Verzeichnis .orig ein.
Bau-Optionen (mit --build):
Falls ein zweites nicht-Options-Argument angegeben ist, sollte es der Name des
Originalquellverzeichnisses oder der Tar-Datei sein. Falls das Paket
Debian-spezifisch ist, dann sollte dieses Argument die leere Zeichenkette
sein, da es keinen Debianisierungs-Diff gibt. Falls kein zweites Argument
übergeben wird, dann schaut
dpkg-source nach der
ursprünglichen Tar-Datei
Paket_Upstream-Version.orig.tar.
Erweiterung oder dem ursprünglichen Quellverzeichnis
Verzeichnis .orig, abhängig von den
-sX-Argumenten.
-sa,
-sp,
-sk,
-su und
-sr werden keine
existierenden Tar-Dateien oder Verzeichnisse überschreiben. Falls dies
gewünscht ist, sollten stattdessen
-sA,
-sP,
-sK,
-sU und
-sR verwendet werden.
- -sk
- Gibt an, dass die Originalquellen als Tar-Datei erwartet
werden sollen, standardmäßig
Paket_Ursprungsversion
.orig.tarErweiterung. Es wird diese Originalquellen als
Tar-Datei am Platz belassen, oder sie in das aktuelle Verzeichnis
kopieren, falls sie dort noch nicht sind. Der Tarball wird nach
Verzeichnis .orig für die Erstellung des Diffs
entpackt.
- -sp
- Wie -sk, aber das Verzeichnis wird danach
entfernt.
- -su
- Gibt an, dass die Originalquellen als Verzeichnis erwartet
werden, standardmäßig
Paket-Ursprungsversion .orig.
dpkg-source wird daraus ein neues Original-Quellarchiv
erstellen.
- -sr
- Wie -su, aber das Verzeichnis wird nach der
Verwendung entfernt.
- -ss
- Gibt an, dass die Originalquellen sowohl als Verzeichnis
als auch als Tar-Datei verfügbar sind. dpkg-source wird das
Verzeichnis zur Erstellung des Diffs verwenden, aber die Tar-Datei
für die .dsc. Diese Option muss mit Vorsicht verwendet
werden - falls das Verzeichnis und die Tar-Datei nicht zusammen passen,
wird ein fehlerhaftes Quellarchiv erstellt.
- -sn
- Gibt an, dass nicht nach Originalquellen geschaut und kein
Diff erstellt werden soll. Das zweite Argument, falls angegeben, muss die
leere Zeichenkette sein. Dies wird für Debian-spezifische Pakete
verwendet, die keine Quellen von Originalautoren und somit keinen
Debianisierungs-Diff haben.
-
-sa oder -sA
- Gibt an, dass nach dem Original-Quellarchiv als Tar-Datei
oder als Verzeichnis gesucht werden soll - das zweite Argument, falls
vorhanden, kann eines von beiden sein, oder die leere Zeichenkette (dies
ist äquivalent zur Verwendung von -sn). Falls eine Tar-Datei
gefunden wird, wird diese zur Erstellung eines Diffs entpackt und danach
entfernt (dies ist äquivalent zu -sp); falls ein Verzeichnis
gefunden wird, wird dieses gepackt, um die Originalquellen zu erstellen
und danach entfernt (dies ist äquivalent zu -sr); falls
keines von beiden gefunden wird, wird angenommen, dass das Paket keinen
Debianisierungs-Diff hat, sondern nur ein direktes Quellarchiv ist (dies
ist äquivalent zu -sn). Falls sowohl ein Verzeichnis als
auch eine Tar-Datei gefunden werden, dann ignoriert dpkg-source das
Verzeichnis, und überschreibt es, falls -sA angegeben wurde
(dies ist äquivalent zu -sP) oder löst einen Fehler
aus, falls -sa angegeben wurde. -sa ist die
Voreinstellung.
- --abort-on-upstream-changes
- Der Prozess schlägt fehl, falls der erstellte Diff
Änderungen an Dateien außerhalb des Unterverzeichnisses
„debian“ enthält (seit Dpkg 1.15.8). Diese Option ist
in debian/source/options nicht erlaubt, kann aber in
debian/source/local-options verwandt werden.
Entpackoptionen (mit --extract):
In allen Fällen werden die Originalquellbäume entfernt.
- -sp
- Wird beim Entpacken verwandt. Die Originalquellen (falls
vorhanden) werden als Tar-Datei belassen. Falls diese sich nicht im
aktuellen Verzeichnis befinden oder falls eine existierende, aber davon
verschiedene Datei bereits vorhanden ist, wird sie dort hin kopiert. (
Dies ist die Voreinstellung.)
- -su
- Entpackt den Originalquellbaum.
- -sn
- Stellt sicher, dass die Originalquellen weder in das
aktuelle Verzeichnis kopiert noch entpackt werden. Jeder
Originalquellbaum, der im aktuellen Verzeichnis war, wird dennoch
entfernt.
Alle
-sX-Optionen schließen sich gegenseitig aus. Falls Sie
mehr als eine angeben, wird nur die letzte verwendet.
- --skip-debianization
- Überspringt die Anwendung des Debian-Diffs
über die Quellen der Originalautoren (seit Dpkg 1.15.1).
Seit Dpkg 1.13.9 Unterstützung des Entpackens, seit Dpkg 1.14.8
Unterstützung des Bauens. Auch als „wig&pen“ bekannt.
Dieses Format wird nicht für den breiten Einsatz empfohlen, es wird
durch das Format „3.0 (quilt)“ ersetzt. Wig&pen war die
erste Spezifikation eines Paketformats der nächsten Generation.
Das Verhalten dieses Formats ist identisch zum Format „3.0
(quilt)“, abgesehen davon, dass es keine explizite Liste von Patches
verwendet. Alle Dateien in
debian/patches/, die auf den
regulären Perl-Ausdruck
[\w-]+ passen, müssen
gültige Patches sein: sie werden zum Zeitpunkt des Entpackens
angewandt.
Wenn ein neues Quellpaket gebaut wird, werden alle Änderungen an den
Quellen der Originalautoren in einem Patch mit Namen
zz_debian-diff-auto gespeichert.
Format:_3.0_(native)">Format:_3.0_(native)">Format:
3.0 (native)
Seit Dpkg 1.14.17 unterstützt. Dieses Format ist eine Erweiterung des
nativen Paketformats, wie es im 1.0-Format definiert ist. Es
unterstützt alle Kompressionsmethoden und ignoriert
standardmäßig alle VCS-spezifischen Dateien und Verzeichnisse
sowie viele temporäre Dateien (lesen Sie den Standardwert der Option
-I bei der Ausgabe von
--help).
Seit Dpkg 1.14.17 unterstützt. Ein Quellpaket in diesem Format
enthält mindestens einen Original-Tarball (
.orig.tar.Erw, wobei
Erw gz,
bz2,
lzma und
xz sein kann) und einen Debian-Tarball
(
.debian.tar. Erw). Es kann auch zusätzliche
Original-Tarbälle (
.orig-Komponente.tar.Erw) enthalten.
Komponente kann nur alphanumerische Zeichen (‚a-zA-Z0-9’)
und Bindestriche (‚-’) enthalten. Optional kann jeder
Original-Tarball von einer separaten Signatur der Originalautoren (
.orig.tar. Erw.asc und
.orig-Komponente.tar. Erw.asc) begleitet
werden. Das Entpacken wird seit Dpkg 1.17.20, das Bauen seit Dpkg 1.18.5
unterstützt.
Entpacken
Der Haupt-Originaltarball wird zuerst entpackt, dann werden alle
zusätzlichen Originaltarbälle in Unterverzeichnisse entpackt,
die nach dem
Komponenten-Teil ihres Dateinamens benannt werden (jedes
bereits existierende Verzeichnis wird ersetzt). Der Debian-Tarball wird
über das Quellverzeichnis entpackt, nachdem jedes bereits existierende
debian-Verzeichnis entfernt wurde. Beachten Sie, dass der
Debian-Tarball ein
debian-Unterverzeichnis enthalten muss, er aber auch
Binärdateien außerhalb dieses Verzeichnisses enthalten darf
(sehen Sie hierzu die Option
--include-binaries).
Dann werden alle in
debian/patches/Lieferant.series oder
debian/patches/series aufgeführten Patches angewandt, wobei
Lieferant der Name des aktuellen Lieferanten in Kleinbuchstaben ist
oder
debian, falls kein Lieferant definiert ist. Falls die erstere
Datei verwandt wird und die Letztere nicht existiert (oder ein Symlink ist),
dann wird die Letztere durch einen Symlink zu Ersterer ersetzt. Dies ist zur
Vereinfachung der Verwendung von
quilt gedacht, um die Gruppe von
Patches zu verwalten. Lieferantenspezifische Seriendateien sind dazu gedacht,
es zu ermöglichen, mehrere Entwicklungszweige basierend auf dem
Lieferanten auf eine deklarative Art zu serialisieren, und diese
gegenüber der offenen Codierung dieser Handhabung in
debian/rules zu bevorzugen. Dies ist insbesondere nützlich, wenn
die Quellen mit Bedingungen gepacht werden müssten, da die betroffenen
Dateien keine eingebaute abhängige Okklusionsunterstützung
haben. Beachten Sie allerdings, dass
dpkg-source zwar Seriendateien
auswertet, in denen explizite Optionen für die Anwendung der Patches
verwandt werden (diese werden auf jede Zeile nach dem Patch-Dateinamen und
einem oder mehreren Leerzeichen gespeichert), diese Optionen dann aber
ignoriert und immer erwartet, dass die Patches mit der Option
-p1 von
patch angewandt werden können. Es wird daher eine Warnung
ausgegeben, wenn es auf solche Optionen trifft, und der Bau wird
wahrscheinlich fehlschlagen.
Beachten Sie, dass
lintian(1) aufgrund Debian-spezifischer Regularien
bedingungslos Warnungen ausgeben wird, wenn Lieferantenserien verwandt werden.
Dies sollte die Verwendung außerhalb von Debian nicht betreffen. Um
diese Warnungen auszublenden, kann das Dpkg-Lintian-Profil mittels
Übergabe von „
--profile dpkg“ an
lintian(1) verwandt werden.
Der Zeitstempel aller gepatchten Dateien wird auf die Entpackzeit des
Quellpakets zurückgesetzt. Damit werden Zeitstempelversätze
vermieden, die zu Problemen führen, wenn automatisch erzeugte Dateien
gepatcht werden.
Im Gegensatz zum Standardverhalten bei
quilt wird erwartet, dass die
Patches ohne Unschärfe angewandt werden können. Wenn das nicht
der Fall ist, sollten Sie die Patches mit
quilt erneuern oder
dpkg-source wird mit einer Fehlermeldung beim Versuch, sie anzuwenden,
abbrechen.
Ähnlich wie bei
quilt können Patches auch Dateien
entfernen.
Die Datei
.pc/applied-patches wird angelegt, falls einige Patches
während des Entpackens angewandt wurden.
Bauen
Alle im aktuellen Verzeichnis gefundenen Original-Tarbälle werden in ein
temporäres Verzeichnis entpackt. Hierbei wird die gleiche Logik wie
für das Entpacken verwandt, das debian-Verzeichnis wird in das
temporäre Verzeichnis kopiert und alle Patches außer dem
automatischen Patch (
debian-changes-Version oder
debian-changes, abhängig von
--single-debian-patch)
werden angewandt. Das temporäre Verzeichnis wird mit dem
Quellpaketverzeichnis verglichen. Wenn der Diff nicht leer ist, schlägt
der Bau fehl, falls nicht
--single-debian-patch oder
--auto-commit verwandt wurde; in diesem Fall wird der Diff im
automatischen Patch gespeichert. Falls der automatische Patch
erzeugt/gelöscht wird, wird er zu der Datei „series“ und
den
quilt-Metadaten hinzugefügt bzw. aus diesen gelöscht.
Änderungen an Binärdateien können in einem Diff nicht
dargestellt werden und führen daher zu einem Fehlschlag, es sei denn,
der Betreuer hat sich absichtlich dazu entschlossen, die veränderte
Binärdatei dem Debian-Tarball hinzuzufügen (indem er sie in
debian/source/include-binaries aufgeführt hat). Der Bau wird
auch fehlschlagen, falls er Binärdateien im
„debian“-Unterverzeichnis findet, die nicht über
debian/source/include-binaries freigegeben wurden.
Das aktualisierte debian-Verzeichnis und die Liste der veränderten
Programme wird dann zur Erstellung des Debian-Tarballs verwandt.
Der automatisch erstellte Diff enthält keine Änderungen an
VCS-spezifischen sowie vielen temporären Dateien (lesen Sie hierzu den
zur Option
-i zugeordneten Standardwert in der Ausgabe von
--help). Insbesondere wird das von
quilt verwandte
.pc-Verzeichnis während der Erstellung des automatischen Patches
ignoriert.
Hinweis:
dpkg-source --before-build (und
--build)
stellen sicher, dass alle in der Series-Datei aufgeführten Patches
angewendet sind, so dass ein Paketbau immer mit allen angewandten Patches
durchgeführt wird. Dies erfolgt, indem nicht angewandte Patches
ermittelt werden (sie sind in der Datei
series, aber nicht in der Datei
.pc/applied-patches aufgeführt) und wenn der erste Patch in dem
Satz ohne Fehler angewandt werden kann, werden sie alle angewandt. Die Option
--no-preparation kann zum Abschalten dieses Verhaltens verwandt werden.
Änderungen aufzeichnen
-
--commit [Verzeichnis] [Patch-Name]
[Patch-Datei]
- Erstellt einen Patch, der den lokalen Änderungen
entspricht, die nicht vom quilt-Patch-System verwaltet werden und
integriert ihn unter dem Namen Patch-Name in das Patch-System.
Falls der Name fehlt, wird er interaktiv erfragt. Falls Patch-Datei
angegeben ist, wird er als Patch, der zu den lokalen Änderungen,
die integriert werden sollen, gehört, verwandt. Sobald der Patch
integriert wurde, wird ein Editor gestartet, so dass Sie die
Metainformationen in den Kopfzeilen des Patches einfügen
können.
Die Verwendung von patch-Datei ist primär nach einem Baufehler
nützlich, der diese Datei vorgenerierte und daher wird die
übergebene Datei nach der Integration entfernt. Beachten Sie auch,
dass die Änderungen, die in der Patch-Datei angegeben sind, bereits
im Baum angewandt worden sein müssen und dass die Dateien, die von
diesem Patch geändert werden, keine zusätzlichen, nicht
aufgezeichneten Änderungen enthalten dürfen.
Falls die Patch-Erzeugung veränderte Binärdateien erkennt,
werden diese automatisch zu debian/source/include-binaries
hinzugefügt, so dass sie im Debian-Tarball landen (genau wie dies
dpkg-source --include-binaries --build machen würde).
Bau-Optionen
-
--allow-version-of-quilt-db=Version
- Erlaubt es dpkg-source, ein Quellpaket zu bauen,
falls die Version der quilt-Metadaten die angegebene ist, selbst
falls dpkg-source nichts davon weiß (seit Dpkg 1.15.5.4).
Effektiv teilt dies mit, dass die angegebene Version der
quilt-Metadaten zu Version 2, die dpkg-source derzeit
unterstützt, kompatibel ist. Die Version der quilt-Metadaten
wird in .pc/.version gespeichert.
- --include-removal
- Ignoriert entfernte Dateien nicht und fügt sie zu
dem automatisch generierten Patch hinzu.
- --include-timestamp
- Fügt Zeitstempel zu dem automatisch generierten
Patch hinzu.
- --include-binaries
- Fügt alle veränderten Programme zu dem
debian-Tarball hinzu. Fügt sie auch in
debian/source/include-binaries hinzu: sie werden in folgenden
Bauten standardmäßig hinzugefügt und diese Option
wird daher dann nicht mehr benötigt.
- --no-preparation
- Versucht nicht, den Bau-Baum durch Anwenden aller derzeit
nicht angewandten Patches vorzubereiten (seit Dpkg 1.14.18).
- --single-debian-patch
- Verwendet debian/patches/debian-changes statt
debian/patches/debian-changes- Version als Namen für
den während des Baus automatisch generierten Patch (seit Dpkg
1.15.5.4). Diese Option ist insbesondere nützlich, wenn das Paket
in einem VCS betreut wird und ein Patch-Satz nicht zuverlässig
erstellt werden kann. Stattdessen sollte der aktuelle Diff zu den Quellen
der Originalautoren in einem einzelnen Patch gespeichert werden. Diese
Option sollte in debian/source/local-options eingestellt werden und
würde dann von einer Datei debian/source/local-patch-header
begleitet, in der erklärt wird, wie die Debian-Änderungen am
besten begutachtet werden können, beispielsweise im eingesetzten
VCS.
- --create-empty-orig
- Erstellt den Hauptoriginal-Tarball automatisch als leer,
falls er fehlt und falls es ergänzende Original-Tarbälle
gibt (seit Dpkg 1.15.6). Diese Option ist dafür gedacht, wenn das
Quellpaket nur eine Sammlung von mehreren Stücken Software der
Originalautoren ist und es keine „Haupt“-Software gibt.
- --no-unapply-patches, --unapply-patches
- Standardmäßig wird dpkg-source die
Patches im --after-build-Hook entfernen, falls es sie in
--before-build angewandt hat ( --unapply-patches seit Dpkg
1.15.8, --no-unapply-patches seit Dpkg 1.16.5). Diese Optionen
erlauben es Ihnen, den Patch-Anwendungs- oder -Entfernungs-Prozess
zwangsweise zu aktivieren bzw. zu deaktivieren. Diese Optionen sind nur in
debian/source/local-options erlaubt, so dass alle erstellten
Quellpakete standardmäßig das gleiche Verhalten zeigen.
- --abort-on-upstream-changes
- Dieser Prozess schlägt fehl, falls ein automatischer
Patch erstellt wurde (seit Dpkg 1.15.8). Diese Option kann dazu verwandt
werden, sicherzustellen, dass alle Änderungen korrekt in separaten
quilt-Patches aufgezeichnet wurden, bevor das Paket gebaut wurde.
Diese Option ist in debian/source/options nicht erlaubt, kann aber
in debian/source/local-options verwandt werden.
- --auto-commit
- Der Vorgang schlägt nicht fehl, falls ein
automatischer Patch erstellt wurde, stattdessen wird dieser sofort in die
quilt-Serie aufgenommen.
Entpackoptionen
- --skip-debianization
- Überspringt das Entpacken des Debian-Tarballs
über die Quellen der Originalautoren (seit Dpkg 1.15.1).
- --skip-patches
- Wendet am Ende des Entpackens keine Patches an (seit Dpkg
1.14.18).
Seit Dpkg 1.14.17 unterstützt. Dieses Format ist besonders. Es stellt
kein echtes Quellpaket dar, kann aber zur Erstellung eines Quellpakets mit
beliebigen Dateien verwandt werden.
Bau-Optionen
Alle Argumente, die keine Optionen sind, werden als Dateien verstanden, die in
das generierte Quellpaket integriert werden sollen. Sie müssen
existieren und sich bevorzugt im aktuellen Verzeichnis befinden. Mindestens
eine Datei muss angegeben werden.
-
--target-format=Wert
-
Notwendig. Definiert das echte Format des
generierten Quellpakets. Die generierte .dsc-Datei wird diesen Wert und
nicht „3.0 (custom)“ in ihrem Format-Feld
enthalten.
Seit Dpkg 1.14.17 unterstützt. Dieses Format ist experimentell.
Ein Quellpaket in diesem Format besteht aus einem einzelnen Bündel eines
Git-Depots
.git, um die Quellen des Pakets zu verwahren. Es kann auch
eine Datei
.gitshallow geben, die die Revisionen für einen
flachen Git-Clone aufführt.
Entpacken
Das Bündel wird als Git-Depot in das Zielverzeichnis geklont. Falls es
eine gitshallow-Datei gibt, wird diese als
.git/shallow innerhalb des
geklonten Git-Depots installiert.
Beachten Sie, dass standardmäßig im neuen Depot der gleiche Zweig
ausgecheckt ist, der auch in der ursprünglichen Quelle ausgecheckt war
(typischerweise „main“, es könnte aber auch was beliebig
anderes sein). Alle anderen Zweige sind unter
remotes/origin/
verfügbar.
Bauen
Bevor fortgefahren wird, werden einige Überprüfungen
ausgeführt, um sicherzustellen, dass keine nicht-ignorierten,
nicht-übertragenen („uncommitted“) Änderungen
vorliegen.
git-bundle(1) wird zur Erstellung des Bündels des Git-Depots
verwandt. Standardmäßig werden alle Zweige und Markierungen im
Depot im Bündel einbezogen.
Bau-Optionen
-
--git-ref=Referenz
- Erlaubt die Angabe einer Git-Referenz zur Aufnahme in dem
Git-Bündel. Die Verwendung deaktiviert das
standardmäßige Verhalten, alle Zweige und Markierungen
aufzunehmen. Kann mehrfach angegeben werden. Referenz kann der Name
eines Zweiges oder einer Markierung, der/die aufgenommen werden soll,
sein. Es kann auch ein Parameter sein, der an git-rev-list(1)
übergeben werden kann. Verwenden Sie beispielsweise
--git-ref=main, um nur den Main-Zweig aufzunehmen. Um alle
Markierungen und Zweige außer dem Zweig „private“
aufzunehmen, verwenden Sie --git-ref=--all
--git-ref=^private.
-
--git-depth=Zahl
- Erstellt einen flachen Klon mit einem Verlauf, der bei der
angegebenen Anzahl an Revisionen abgeschnitten wird.
Seit Dpkg 1.14.17 unterstützt. Dieses Format ist experimentell. Es
erstellt einen einzigen Tarball, der das Bzr-Depot enthält.
Entpacken
Der Tarball wird entpackt und dann wird Bzr verwandt, um den aktuellen Zweig
auszuchecken.
Bauen
Bevor fortgefahren wird, werden einige Überprüfungen
ausgeführt, um sicherzustellen, dass keine nicht-ignorierten,
nicht-übertragenen („uncommitted“) Änderungen
vorliegen.
Dann wird der VCS-spezifische Teil des Quellpakets in ein temporäres
Verzeichnis kopiert. Bevor dieses temporäre Verzeichnis in einen
Tarball gepackt wird, werden verschiedene Bereinigungen durchgeführt,
um Platz zu sparen.
Die Datei
debian/source/format sollte immer existieren und das
gewünschte Quellformat angeben. Für
Rückwärtskompatibilität wird das Format
„1.0“ angenommen, wenn die Datei nicht existiert, aber Sie
sollten sich nicht darauf verlassen: Irgendwann in der Zukunft wird
dpkg-source verändert und dann fehlschlagen, wenn diese Datei
nicht existiert.
Die Begründung liegt darin, dass „1.0“ nicht mehr das
empfohlene Format ist, Sie sollten normalerweise eines der neueren Formate
(„3.0 (quilt)“, „3.0 (native)“) auswählen,
aber
dpkg-source wird dies nicht für Sie automatisch vornehmen.
Falls Sie weiterhin das alte Format verwenden möchten, sollten Sie dies
explizit angeben und „1.0“ in
debian/source/format
eintragen.
Beim Einsatz des Quellformats „1.0“ ist es normalerweise keine
gute Idee, die Dateien der Originalautoren direkt zu verändern, da die
Änderungen größtenteils versteckt und undokumentiert in
der diff.gz-Datei verschwinden. Stattdessen sollten Sie Ihre Änderungen
als Patches im debian-Verzeichnis speichern und während des Baus
anwenden. Um diese Komplexität zu vermeiden, können Sie auch das
Format „3.0 (quilt)“ verwenden, das dies von sich aus anbietet.
Änderungen an den Quellen der Originalautoren werden normalerweise als
Patch-Dateien gespeichert, aber nicht alle Änderungen können als
Patches dargestellt werden: Sie können nur Änderungen am Inhalt
einfacher Textdateien vornehmen. Falls Sie versuchen, eine Datei durch etwas
eines anderen Typs zu ersetzen (beispielsweise eine einfache Datei durch einen
Symlink oder ein Verzeichnis), werden Sie diese Fehlermeldung erhalten.
Leere Dateien können nicht mit Patchdateien erstellt werden. Daher wird
diese Änderung nicht im Quellpaket aufgezeichnet und Sie erhalten dazu
diese Warnung.
Patch-Dateien speichern nicht die Rechte von Dateien und daher werden
Ausführbarkeitsrechte nicht im Quellpaket gespeichert. Diese Warnung
erinnert Sie an diese Tatsache.
Patch-Dateien speichern nicht die Rechte von Dateien und daher werden
geänderte Rechte nicht im Quellpaket gespeichert. Diese Warnung
erinnert Sie an diese Tatsache.
- DPKG_COLORS
- Setzt den Farbmodus (seit Dpkg 1.18.5). Die derzeit
unterstützten Werte sind: auto (Vorgabe), always und
never.
- DPKG_NLS
- Falls dies gesetzt ist, wird es zur Entscheidung, ob Native
Language Support, auch als Unterstützung für
Internationalisierung (oder i18n) bekannt, aktiviert wird (seit Dpkg
1.19.0). Die akzeptierten Werte sind: 0 und 1
(Vorgabe).
- SOURCE_DATE_EPOCH
- Falls gesetzt, wird sie als Zeitstempel (als Sekunden seit
der Epoche) zum Festlegen der Mtime in den Dateieinträgen von
tar(5) verwandt.
- VISUAL
- EDITOR
- Von den „2.0“- und „3.0
(quilt)“-Quellformatmodulen verwandt.
- GIT_DIR
- GIT_INDEX_FILE
- GIT_OBJECT_DIRECTORY
- GIT_ALTERNATE_OBJECT_DIRECTORIES
- GIT_WORK_TREE
- Von dem „3.0 (quilt)“-Quellformatmodul
verwandt.
Diese Datei enthält auf einer einzelnen Zeile das Format, das zum Bau des
Quellpakets verwandt werden soll (mögliche Formate sind oben
beschrieben). Leerzeichen am Zeilenanfang oder -ende sind nicht erlaubt.
Diese Datei enthält eine Liste von Pfadnamen von Binärdateien
(eine pro Zeile), relativ zum Quellwurzelverzeichnis, die in den
Debian-Tarball aufgenommen werden sollen. Leerzeichen am Anfang und Ende der
Zeile werden entfernt. Zeilen, die mit ‚
#’ anfangen,
sind Kommentare und werden übersprungen. Leere Zeilen werden ignoriert.
Diese Datei enhält eine Liste an Optionen, die automatisch vor den Satz
an Befehlszeilenoptionen bei einem Aufruf
dpkg-source --build oder
dpkg-source --print-format gesetzt werden sollen. Optionen wie
-compression und
--compression-level sind für diese Datei
gut geeignet.
Jede Option sollte auf einer separaten Zeile stehen. Leerzeilen und Zeilen, die
mit ‚
#’ beginnen, werden ignoriert. Das einleitende
‚
--’ sollte entfernt werden und kurze Optionen sind
nicht erlaubt. Optionale Leerzeichen um das ‚
=’-Symbol
sowie optionale Anführungszeichen um den Wert sind erlaubt. Hier ist
ein Beispiel für so eine Datei:
# lass dpkg-source ein debian.tar.bz2 mit maximaler Komprimierung
# erstellen
compression = "bzip2"
compression-level = 9
# verwende debian/patches/debian-changes als automatischen Patch
single-debian-patch
# ignoriere Änderungen von config.{sub,guess}
extend-diff-ignore = "(^|/)(config.sub|config.guess)$"
Hinweis:
--format-Optionen werden in dieser Datei nicht
akzeptiert, Sie sollten stattdessen
debian/source/format verwenden.
Genau wie
debian/source/options, außer dass die Datei nicht in das
erstellte Quellpaket aufgenommen wird. Dies kann nützlich sein, um
Voreinstellungen zu speichern, die an einen bestimmten Betreuer oder an ein
bestimmtes VCS, in dem das Paket gewartet wird, gebunden sind.
Formloser Text, der an den Anfang des in den Formaten „2.0“ und
„3.0 (quilt)“ generierten automatischen Patches gestellt wird.
local-patch-header wird dem erstellten Quellpaket nicht
hinzugefügt,
patch-header dagegen schon.
Diese Datei führt alle Patches auf, die (in der angegebenen Reihenfolge)
auf das Quellpaket der Originalautoren angewandt werden müssen.
Leerzeichen am Anfang und Ende werden entfernt.
Lieferant ist der Name
des aktuellen Lieferanten in Kleinschreibung oder
debian, falls kein
Lieferant definiert ist. Falls die lieferantenspezifische Seriendatei nicht
existiert, wird eine lieferantenfreie Seriendatei verwandt. Zeilen, die mit
‚
#’ anfangen, sind Kommentare und werden
übersprungen. Leere Zeilen werden ignoriert. Die verbleibenden Zeilen
beginnen mit dem Dateinamen eines Patches (relativ zum Verzeichnis
debian/patches/) bis zum ersten Leerzeichen oder bis zum Zeilenende.
Bis zum Ende der Zeile oder bis zum ersten ‚
#’ gefolgt
von einem oder mehreren Leerzeichen (dies markiert den Beginn eines
Kommentars, der bis zum Zeilenende geht) können optionale
quilt-Befehle folgen.
Die Stelle, an der das Überschreiben von Feldern passiert, verglichen mit
bestimmten Standard-Ausgabe-Feldeinstellungen, ist eher verwirrend.
deb-src-control(5),
deb-changelog(5),
deb-substvars(5),
dsc(5).
Die deutsche Übersetzung wurde 2004, 2006-2023 von Helge Kreutzmann
<
[email protected]>, 2007 von Florian Rehnisch <
[email protected]>
und 2008 von Sven Joachim <
[email protected]> angefertigt. Diese
Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public
License Version 2 oder neuer für die Kopierbedingungen. Es gibt KEINE
HAFTUNG.