Provided by: dpkg-dev_1.22.18ubuntu2.2_all 

BEZEICHNUNG
dpkg-source - Debian Quellpaket- (.dsc) Manipulations-Werkzeuge
ÜBERSICHT
dpkg-source [Option …] Befehl
BESCHREIBUNG
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.
BEFEHLE
-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.
OPTIONEN
Generische Bau-Optionen
-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.
Generische Entpackoptionen
--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.
Generische allgemeine Optionen
--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.
QUELLPAKET-FORMATE
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.
Format: 1.0
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).
Format: 2.0
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)
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).
Format: 3.0 (quilt)
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 (der erste aus sensible-editor, $VISUAL, $EDITOR, vi) 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).
Format: 3.0 (custom)
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.
Format: 3.0 (git)
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.
Format: 3.0 (bzr)
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.
DIAGNOSE
kein Quellformat in debian/source/format angegeben
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.
der Diff verändert die folgenden Dateien der Originalautoren
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.
kann Änderungen an Datei nicht darstellen
Ä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.
neu angelegte leere Datei Datei wird im Diff nicht dargestellt werden
Leere Dateien können nicht mit Patchdateien erstellt werden. Daher wird diese Änderung nicht im
Quellpaket aufgezeichnet und Sie erhalten dazu diese Warnung.
ausführbarer Modus Rechte von Datei wird nicht im Diff dargestellt werden
Patch-Dateien speichern nicht die Rechte von Dateien und daher werden Ausführbarkeitsrechte nicht im
Quellpaket gespeichert. Diese Warnung erinnert Sie an diese Tatsache.
besonderer Modus Rechte von Datei wird nicht im Diff dargestellt werden
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.
UMGEBUNG
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.
Seit Dpkg 1.18.11.
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.
DATEIEN
debian/source/format
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.
debian/source/include-binaries
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.
debian/source/options
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.
debian/source/local-options
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.
debian/source/local-patch-header
debian/source/patch-header
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.
debian/patches/Lieferant.series
debian/patches/series
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.
SICHERHEIT
Untersuchen nicht vertrauenswürdiger Quellpakete oder ihr Entpacken in ein Arbeitsverzeichnis sollte als
Sicherheitsgrenze betrachtet werden und jede Verletzung dieser Grenze, die aus diesen Aktionen
resultiert, sollte als Sicherheitsverwundbarkeit betrachtet werden. Allerdings sollte der Umgang mit
nicht vertrauenswürdigen Quellpaketen nicht leichtherzig erfolgen, da die Oberfläche alle unterstützten
Komprimierungsbefehle und Befehle zum Umgang mit bestimmten Datenformaten (wie tar(1) oder patch(1))
umfasst, zusätzliche zu den Quellpaketformaten und Steuerdateien selbst. Es wird nachdrücklich davon
abgeraten, diese Aktionen auf nicht vertrauenswürdigen Daten als Root durchzuführen.
Das Bauen von Quellpaketen sollte nur mit vertrauenswürdigen Daten erfolgen.
FEHLER
Die Stelle, an der das Überschreiben von Feldern passiert, verglichen mit bestimmten Standard-Ausgabe-
Feldeinstellungen, ist eher verwirrend.
SIEHE AUCH
deb-src-control(5), deb-changelog(5), deb-substvars(5), dsc(5).
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2025 von Helge Kreutzmann <debian@helgefjell.de>, 2007 von
Florian Rehnisch <eixman@gmx.de> und 2008 von Sven Joachim <svenjoac@gmx.de> 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.
1.22.18 2025-09-19 dpkg-source(1)