deb-src-control(5) | dpkg suite | deb-src-control(5) |
deb-src-control - Dateiformat der Hauptsteuerdatei von Debian-Quellpaketen
debian/control
Jedes Debian-Quellpaket enthält eine Hauptdatei „debian/control“. Deren deb822(5)-Format ist eine Obermenge der in Debian-Binärpaketen ausgelieferten control-Datei, siehe deb-control(5).
Diese Datei enthält mindestens zwei Absätze, die durch eine Leerzeile getrennt werden. Der erste Absatz führt alle allgemeinen Informationen über das Quellpaket auf, während jeder folgende Absatz genau ein Binärpaket beschreibt. Jeder Absatz besteht aus mindestens einem Feld. Ein Feld beginnt mit einem Feldnamen, wie Package oder Section (Groß-/Kleinschreibung egal), gefolgt von einem Doppelpunkt, dem Inhalt des Feldes (Groß-/Kleinschreibung ist relevant, außer anders angegeben) und einem Zeilenumbruch. Mehrzeilige Felder sind auch erlaubt, aber jede ergänzende Zeile ohne Feldnamen sollte mit mindestens einem Leerzeichen beginnen. Der Inhalt des mehrzeiligen Feldes wird durch die Werkzeuge im Allgemeinen zu einer Zeile zusammengeführt (das Feld Description ist eine Ausnahme, siehe unten). Um Leerzeilen in ein mehrzeiliges Feld einzufügen, verwenden Sie einen Satzpunkt nach dem Leerzeichen. Zeilen, die mit ‚#’ beginnen, werden als Kommentare betrachtet.
Schlüsselwörter bestehen aus Namensraum/Fälle. Der Teil Namensraum kann kein „/“ oder Leerraum enthalten. Der Teil Fälle kann kein Leerraum enthalten. Desweiteren müssen beide Teile ausschließlich aus darstellbaren ASCII-Zeichen bestehen.
Jedes Werkzeug/Paket wird einen Namensraum nach sich selbst definieren und eine Reihe von Fällen bereitstellen, in denen (fake)root benötigt wird (siehe „Implementation provided keywords“ in rootless-builds.txt).
Wenn das Feld auf eines der Impl-Schlüsselwörter gesetzt wird, wird das Bauprogramm eine Schnittstelle bereitstellen, die zur Ausführung unter (fake)root verwandt wird (siehe „Gain Root API“ in rootless-builds.txt).
Die Felder Section und Priority haben eine definierte Menge an Werten, abhängig von den jeweiligen Distributionsrichtlinien.
Die Syntax der Felder Build-Depends, Build-Depends-Arch und Build-Depends-Indep ist eine Liste von Gruppen von alternativen Paketen. Jede Gruppe ist eine Liste von durch vertikale Striche (oder „Pipe“-Symbole) ‚|’ getrennten Paketen. Die Gruppen werden durch Kommata ‚,’ getrennt. Sie können mit einem abschließenden Komma enden, das beim Erstellen der Felder für deb-control(5) entfernt wird (seit Dpkg 1.10.14). Kommata müssen als „UND“, vertikale Striche als „ODER“ gelesen werden, wobei die vertikalen Striche stärker binden. Jedem Paketnamen folgt optional eine Architekturspezifikation, die nach einem Doppelpunkt ‚:’ angehängt wird, optional gefolgt von einer Versionsnummer-Spezifikation in Klammern ‚(’ und ‚)’, einer Architekturspezifikation in eckigen Klammern ‚[’ und ‚]’ und einer Einschränkungsformel, die aus einer oder mehr Listen von Profilnamen in spitzen Klammern ‚<’ und ‚>’ besteht.
Syntaxtisch werden die Felder Build-Conflicts, Build-Conflicts-Arch und Build-Conflicts-Indep durch eine Kommata-getrennte Liste von Paketnamen dargestellt, wobei das Komma als „UND“ verstanden wird. Die Liste kann mit einem abschließenden Komma enden, das beim Erstellen der Felder für deb-control(5) entfernt wird (seit Dpkg 1.10.14). Die Angabe alternativer Pakete mit dem „Pipe“-Symbol wird nicht unterstützt. Jedem Paketnamen folgt optional eine Versionsnummerangabe in Klammern, eine Architekturspezifikation in eckigen Klammern und einer Einschränkungsformel, die aus einer oder mehr Listen von Profilnamen in spitzen Klammern besteht.
Eine Architekturspezifikation kann ein echter Debian-Architekturname sein (seit Dpkg 1.16.5), any (seit Dpkg 1.16.2) oder native (seit Dpkg 1.16.5). Falls er fehlt, ist die Vorgabe für das Feld Build-Depends die aktuelle Host-Architektur, die Vorgabe für das Feld Build-Conflicts ist any. Jeder echte Debian-Architekturname passt genau auf diese Architektur für diesen Paketnamen, any passt auf jede Architektur für diesen Paketnamen, falls das Paket mit Multi-Arch: allowed markiert ist, und native passt auf die aktuelle Bau-Architektur, falls das Paket nicht mit Multi-Arch: foreign markiert ist.
Eine Versionsnummer kann mit ‚>>’ beginnen, in diesem Falle passen alle neueren Versionen, und kann die Debian-Paketrevision (getrennt durch einen Bindestrich) enthalten oder auch nicht. Akzeptierte Versionsbeziehungen sind ‚>>’ für größer als, ‚<<’ für kleiner als, ‚>=’ für größer als oder identisch zu, ‚<=’ für kleiner als oder identisch zu und ‚=’ für identisch zu.
Eine Architekturspezifikation besteht aus einer oder mehreren durch Leerraumzeichen getrennten Architekturnamen. Jedem Namen darf ein Ausrufezeichen vorangestellt werden, das „NICHT“ bedeutet.
Eine Einschränkungsformel besteht aus einer oder mehrerer durch Leerraum getrennten Einschränkungslisten. Jede Einschränkungsliste wird in spitze Klammern eingeschlossen. Einträge in den Einschränkungslisten sind Bauprofilnamen, getrennt durch Leerraum. Diesen Listen kann ein Ausrufezeichen vorangestellt werden, das „NICHT“ bedeutet. Eine Einschränkungsformel stellt einen Ausdruck in einer disjunkten Normalform dar.
Beachten Sie, dass die Abhängigkeiten von Paketen aus der Menge der build-essential entfallen kann und die Angabe von Baukonflikten gegen sie nicht möglich ist. Eine Liste dieser Pakete befindet sich im Paket build-essential.
Beachten Sie, dass die Felder Priority, Section und Homepage sich auch im Binärprogrammabsatz befinden können, um die globalen Werte des Quellpakets zu überschreiben.
Falls der Absatz eines binären Pakets dieses Feld nicht enthält, dann bedeutet dies implizit, dass es mit allen Bauprofilen (darunter auch keinem) baut.
Mit anderen Worten: Falls der Absatz eines Binärpaketes mit einem nicht leeren Feld Build-Profiles kommentiert wird, dann wird dieses Binärpaket erstellt, falls und nur falls der Ausdruck in konjunktiver Normalform sich auf „wahr“ berechnet.
Es ist erlaubt, zusätzliche benutzerdefinierte Felder zu der Steuerdatei hinzuzufügen. Die Werkzeuge werden diese Felder ignorieren. Falls Sie möchten, dass diese Felder in die Ausgabedateien, wie das Binärpaket, rüberkopiert werden sollen, müssen Sie ein angepasstes Namensschema verwenden: Die Felder sollten mit einem X, gefolgt von Null oder mehreren Buchstaben aus SBC und einem Bindestrich, beginnen.
Beachten Sie, dass die Präfixe X[SBC]- abgeschnitten werden, wenn die Felder in die Ausgabedateien rüberkopiert werden. Ein Feld XC-Approved-By wird als Approved-By in der .changes-Datei und nicht in der Steuerdatei des Binär- und Quellpakets auftauchen.
Beachten Sie, dass diese benutzerdefinierten Felder den globalen Namensraum nutzen werden und somit in der Zukunft mit offiziell erkannten Feldern kollidieren könnten. Um solche möglichen Situationen zu vermeiden, können Sie den Feldern Private-, wie in XB-Private-Neues-Feld, voranstellen.
# Kommentar Source: dpkg Section: admin Priority: required Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> # dieses Feld wird in das Binär- und Quellpaket kopiert XBS-Upstream-Release-Status: stable Homepage: https://wiki.debian.org/Teams/Dpkg Vcs-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git Vcs-Git: https://git.dpkg.org/git/dpkg/dpkg.git Standards-Version: 3.7.3 Build-Depends: pkg-config, debhelper (>= 4.1.81), libselinux1-dev (>= 1.28-4) [!linux-any] Package: dpkg-dev Section: utils Priority: optional Architecture: all # dies ist ein spezielles Feld im Binärpaket XB-Mentoring-Contact: Raphael Hertzog <hertzog@debian.org> Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2), bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl Recommends: gcc | c-compiler, build-essential Suggests: gnupg, debian-keyring Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26) Replaces: manpages-pl (<= 20051117-1) Description: Debian package development tools This package provides the development tools (including dpkg-source) required to unpack, build and upload Debian source packages. . Most Debian source packages will require additional tools to build; for example, most packages need make and the C compiler gcc.
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.
2023-09-13 | 1.20.13 |