dpkg-source
Section: dpkg suite (1)
Updated: 1970-01-01
Page Index
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 Bq1.0")) wird sein Name in debian/source/format
gespeichert, so dass alle folgenden Bauversuchen 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 Bqdebian" 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, Bq1.0". Die Rückfalloption Bq1.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 (Bqcommitted") 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 BqCheckout" 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. bq(^|/)', bq($|/)') 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 Bq|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-Jokerzeichen 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.
QUELLPAKET-FORMATE
Falls Sie nicht wissen, welches Quellformat Sie verwenden sollen, verwenden
Sie wahrscheinlich am besten entweder Bq3.0 (quilt)" oder Bq3.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 Bq.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, sondern nur ein direktes Quellarchiv hat
(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 Bqdebian" 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 Bqwig&pen" bekannt. Dieses Format wird
nicht für den breiten Einsatz empfohlen, es wird durch das Format Bq3.0
(quilt)" ersetzt. Wig&pen war die erste Spezifikation eines Paketformats der
nächsten Generation.
Das Verhalten dieses Formats ist identisch zum Format Bq3.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 (bqa-zA-Z0-9') und Bindestriche (bq-')
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 Bq--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 Bqseries" 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
Bqdebian"-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 BqHaupt"-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 Bq3.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 Bqmaster", 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
(Bquncommitted") Ä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=master, um
nur den Master-Zweig aufzunehmen. Um alle Markierungen und Zweige außer dem
Zweig Bqprivate" 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
(Bquncommitted") Ä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 Bq1.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 Bq1.0" nicht mehr das empfohlene Format ist,
Sie sollten normalerweise eines der neueren Formate (Bq3.0 (quilt)", Bq3.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 Bq1.0" in
debian/source/format eintragen.
der Diff verändert die folgenden Dateien der Originalautoren
Beim Einsatz des Quellformats Bq1.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 Bq3.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.
- VISUAL
-
- EDITOR
-
Von den Bq2.0"- und Bq3.0 (quilt)"-Quellformatmodulen verwandt.
- GIT_DIR
-
- GIT_INDEX_FILE
-
- GIT_OBJECT_DIRECTORY
-
- GIT_ALTERNATE_OBJECT_DIRECTORIES
-
- GIT_WORK_TREE
-
Von dem Bq3.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 bq
#' 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 bq#' beginnen, werden ignoriert. Das einleitende bq--' sollte
entfernt werden und kurze Optionen sind nicht erlaubt. Optionale Leerzeichen
um das bq='-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 Bq2.0" und Bq3.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 bq
#'
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 bq
#' gefolgt von einem oder mehreren Leerzeichen (dies markiert den
Beginn eines Kommentars, der bis zum Zeilenende geht) können optionale
quilt-Befehle folgen.
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),
dsc(5).
ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2020 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.