dpkg-source(1)

NAME
dpkg-source - Debian Quellpaket- (.dsc) Manipulations-Werkzeuge

ÜBERSICHT
dpkg-source [Optionen] 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 Dateiname.dsc [Ausgabe-Verzeichnis]
    Extrahiere ein Quellpaket. 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 extrahiert werden soll. Dieses Verzeichis darf dann nicht existieren. Falls kein Ausgabeverzeichnis angegeben ist, wird das Quellpaket in das Verzeichnis namens Quelle-Version unterhalb des aktuellen Arbeitsverzeichnisses extrahiert. 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 extrahierten Paket werden die Rechte und Eigentümer haben, die erwartet würden, falls die Dateien und Verzeichnisse einfach erstellt worden wären - Verzeichnisse und Programmdateien werden 0777 und einfache Dateien 0666, beide durch die umask der Person, die extrahiert, entsprechend angepasst; falls das übergeordnete Verzeichnis setgid ist, werden dies die extrahierten Verzeichnisse auch sein, und alle Dateien und Verzeichnisse werden die Gruppeneigentümerschaft erben. Falls das Quellpaket ein nicht-Standard-Format verwendet (derzeit bedeutet sind dies alle Formate außer »1.0«) wird sein Name in debian/source/format gespeichert, so dass alle folgenden Bauversuchen des Quellpakets standardmäßig das gleiche Format verwenden.

-b Verzeichnis [Format-abhängige-Parameter]
    Baue ein Quellpaket. Das erste nicht-Options-Argument wird als Name des Verzeichnises verwandt, das den debianisierten (d.h. mit einem Unterverzeichnis debian und ggf. Änderungen an den Originaldateien versehenen) Quellbaum enthält. Abhängig des zum Bau verwandten Quellpaketformats könnten zusätzliche Parameter akzeptiert werden. dpkg-source wird das Quellpaket mit dem ersten Format aus der folgenden geordneten Liste bauen, das funktioniert: dem Format, das im Feld Format von debian/control angegeben ist, dem Format/den Formaten, das/die über die Kommandozeilenoption(en) --format angegeben ist, das in debian/source/format bezeichnete Format, »1.0«, »3.0 (native)«. Die verschiedenen Quellpaketformate sind weiter unten ausführlich beschrieben.

-h, --help
    Zeige den Bedienungshinweis und beende.

--version
    Gebe die Version aus und beende sich.

GENERISCHE BAUOPTIONEN

-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 »change log«-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
    Gibt das Format der Änderungsprotokolldatei an. Standardmäßig wird das Format aus einer speziellen Zeile in der Nähe des Endes der Änderungsprotokolldatei gelesen oder, falls dies fehlschlägt, wird das Debian-Standardformat angenommen.

--format=Wert
    Versuche zuerst das übergebene Format zum Bau des Quellpakets. Falls mehrfach verwandt, werden sie der Reihe nach ausprobiert. Es überschreibt kein explizites Feld Format in debian/control, aber es überschreibt jedes in debian/source/format angegebene Format.

-VName=Wert
    Veraltet. Setzt eine Ausgabesubstitutionsvariable. Lesen Sie deb-substvars(5) für eine Besprechung der Ausgabesubstitution.

-Tsubstvardatei
    Veraltet. Lese Substitutionsvariablen aus substvardatei; standardmäßig wird keine Datei gelesen.

-DFeld=Wert
    Überschreibe oder ergänze ein Ausgabe-Steuerdatei-Feld.

-Ufield
    Entferne ein Ausgabe-Steuerdatei-Feld.

-ZKomprimierung
    Gibt die Komprimierung an, die für die erstellten Dateien (Tarbälle und Diffs) verwrendet wird. 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 und lzma. gzip ist voreingestellt.

-zStufe
    Zu verwendende Komprimierstufe. Wie bei -Z betrifft dies nur neu erstellte Dateien. Unterstützte Werte sind 1 bis 9, best (am besten) und fast (schnell). 9 ist voreingestellt.

-i[Regexp]
    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; diese Liste wird von einem Find-Befehl generiert. Falls das Quellpaket als Version 3-Quellpaket mittels eines VCS gebaut wird, ignoriert dies stattdessen Dateien, die noch nicht übertragen (»committed«) wurden. -i aktiviert diese Option mit der Voreinstellung, dass die Steuerdateien und -Verzeichnisse der häufigsten Revisionskontrollsysteme, Backups, Swap-Dateien und Bau-Ausgabeverzeichnisse von Libtool herausgefiltert werden. Es kann nur einen aktiven regulären Ausdruck geben, von mehrfach angegebenen -i-Optionen 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.

-I[Dateimuster]
    Falls diese Option angegeben wird, wird der Dateiname an die --exclude-Option von tar(1) weitergegeben, wenn es zur Erstellung der Datei .orig.tar oder .tar aufgerufen wird. Zum Beispiel führt -ICVS dazu, dass tar über CVS-Verzeichnisse hinweggeht, 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, Backups, Swap-Dateien und Bau-Ausgabeverzeichnisse von Libtool herausfiltern.

Hinweis: Obwohl sie ähnliche Zwecke verfolgen, haben -i und -I eine sehr verschiedene Syntax und Semantik. -i kann nur einmal angegeben werden und nimmt einen regulären Perlausdruck 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 gegen jeden Teil des Pfades angewendet. Die exakte Symantik der Option --exclude ist etwas kompliziert, lesen Sie http://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 EXTRAHIERUNGSOPTIONEN

--no-copy
    Kopiere die Original-Tarbälle in die Nähe des extrahierten Quellpakets.

--no-check
    Prüfe Signaturen und Prüfsummen vor dem Entpacken nicht.

QUELLPAKET-FORMATE

  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). Extrahieren Extrahieren eines nativen Pakets ist ein einfaches Extrahieren eines einzelnen Tarballs in das Zielverzeichnis. Extrahieren 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 der Extrahierung des Quellpakets zurückgesetzt (das vermeidet Zeitstempelversätze, die zu Problemen führen, wenn autogenerierte Dateien gepatcht werden). Der Diff kann neue Dateien erstellen (das gesamte Debian-Verzeichnis wird auf diese Weise erstellt), kann aber keine Dateien entfernen (leere Dateien bleiben zurück). Bauen Bauen eines nativen Paket besteht nur aus dem Erstellen eines einzigen Tarballs mit dem Quellverzeichnis. Bauen eines nicht-nativen Pakets schließt das Extrahieren 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 -b):

Falls ein zweites nicht-Options-Argument angegeben ist, sollte es der Namen des Originalquellverzeichnisses oder der Tardatei sein. Falls das Paket Debian-spezifisch ist, dann sollte dieses Argument die leere Zeichenkette sein, da es kein Debianisierungs-Diff gibt. Falls kein zweites Argument übergeben wird, dann schaut dpkg-source nach der ursprünglichen Tardatei 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 Tardateien 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 Tardatei erwartet werden sollen, standardmäßig Paket_Ursprungsversion.orig.tarErweiterung. Es wird diese Originalquellen als Tardatei 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 Tardatei verfügbar sind. dpkg-source wird das Verzeichnis zur Erstellung des Diffs verwenden, aber die Tardatei für die .dsc. Diese Option muss mit Vorsicht verwendet werden - falls das Verzeichnis und die Tardatei 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 kein Debianisierungs-Diff haben.

-sa oder -sA
    Gibt an, dass nach dem Original-Quellarchiv als Tardatei 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 Tardatei 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 kein Debianisierungs-Diff sondern nur ein direktes Quellarchiv (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.

Extrahierungs-Optionen (mit -x):

In allen Fällen werden die Originalquellbäume entfernt.

-sp Verwendet beim Extrahieren. 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 paarweise aus. Falls Sie mehr als eine angeben, wird nur die letzte verwendet.

  Format: 2.0
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 Perlausdruck [\w-]+ passen, müssen gültige Patches sein: sie werden zum Zeitpunkt der Extrahierung 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)
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)
Ein Quellpaket in diesem Format enthält mindestens einen Original-Tarball (.orig.tar.erw, wobei erw gz, bz2 und lzma sein kann) und einen Debian-Tarball (.debian.tar.erw). Es kann auch zusätzliche Original-Tarbälle (.orig-Komponente.tar.erw)) enthalten.

Extrahieren

Der Haupt-Originaltarball wird zuerst extrahiert, dann werden alle zusätzlichen Originaltarbälle in Unterverzeichnisse extrahiert, die nach dem Komponenten-Teil ihres Dateinamens benannt werden (jedes bereits existierende Verzeichnis wird ersetzt). Der Debian-Tarball wird auf das Quellverzeichnis extrahiert, 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/debian.series oder debian/patches/series aufgeführten Patches angewandt. Falls die erstere Datei verwandt wird und die letztere nicht existiert (oder ein Symlink ist), dann wird die letztere mit einem Symlink zu ersterer ersetzt. Dies ist zur Vereinfachung der Verwendung von Quilt gedacht, um den Satz an Patches zu verwalten. 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 ausgeben, wenn es auf solche Optionen trifft, und der Bau wird wahrscheinlich fehlschlagen.

Ähnlich wie bei Quilt können Patches auch Dateien entfernen.

Die Datei debian/patches/.dpkg-source-applied wird erstellt, falls einige Patches während der Extrahierung 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 debian-changes-Version werden angewandt. Ä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 Neuerstellung 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 erwartet, dass alle Patches auf dem Quellbaum angewandt wurden, wenn Sie das Quellpaket generieren. Dies ist z.B. nicht der Fall, wenn der Quellbaum durch Entpacken eines Quellpakets im Format: 1.0 erhalten wurde. Um das Problem zu entschärfen, wird dpkg-source Patches vor dem Bau anwenden, falls es debian/patches/.dpkg-source-applied nicht findet. Die Existenz des Unterverzeichnisses .pc wird auch als Zeichen interpretiert, dass einige Patches angewandt wurden und in diesem Fall wird quilt unapplied aufgerufen, um sicherzustellen, dass alle Patches angewandt wurden. Die Option --no-preparation kann zum Abschalten dieses Verhaltens verwandt werden.

Bau-Optionen

--include-removal
    Ignoriere entfernte Dateien nicht und füge sie zu dem automatisch generierten Patch hinzu.

--include-timestamp
    Füge Zeitstempel zu dem automatisch generierten Patch hinzu.

--include-binaries
    Füge alle veränderten Programme zu dem debian-Tarball hinzu. Füge sie auch in debian/source/include-binaries: sie werden in folgenden Bauten standardmäßig hinzugefügt und diese Option wird daher dann nicht mehr benötigt.

--no-preparation
    Versuche nicht den Bau-Baum durch Anwenden aller derzeit nicht angewandten Patches vorzubreiten.

Extrahierungs-Optionen

--skip-patches
    Wende am Ende der Extrahierung keine Patches an.

--without-quilt
    Verwende zur Anwendung der Patches nicht Quilt, sondern den Code von dpkg-source. Auf dem entpackten Verzeichnis kann Quilt nicht direkt verwandt werden, aber es wird auch frei von Quilts temporären Dateien sein.

  Format: 3.0 (custom)
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) und 3.0 (bzr)
Diese Formate sind experimentell. Sie generieren einen einzigen Tarball, der das korrespondierende VCS-Depot enthält.

Extrahieren

Der Tarball wird entpackt und dann wird das VCS verwandt, um den aktuellen Zweig auszuchecken.

Bauen

Bevor fortgefahren wird, werden einige Überprüfungen ausgeführt, um sicherzustellen, dass keine nicht-ignorierten, nicht-übertragene (»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.

FEHLER
Die Stelle, an der das Überschreiben von Feldern passiert, verglichen mit bestimmten Standard-Ausgabe-Feldeinstellungen, ist eher konfus.

ÜBERSETZUNG
Die deutsche Übersetzung wurde 2004, 2006-2008 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.

SIEHE AUCH
dpkg-deb(1), dpkg(1), dselect(1).

AUTOREN
Copyright (C) 1995-1996 Ian Jackson
Copyright (C) 2000 Wichert Akkerman
Copyright (C) 2008 Raphaël Hertzog

Dies ist Freie Software; lesen Sie die GNU General Public License Version 2 oder neuer für die Kopierbedingungen. Es gibt KEINE Haftung.