deb-src-control(5) | dpkg suite | deb-src-control(5) |
deb-src-control - Indeling van het hoofdcontrolebestand van Debian-broncodepakketten
debian/control
Elk Debian bronpakket bevat het hoofdcontrolebestand «debian/control» en de deb822(5)-indeling ervan is een superverzameling van het control-bestand dat meekomt in binaire Debian-pakketten, zie deb-control(5).
Dit bestand bevat tenminste twee onderdelen, gescheiden door een witregel. Het eerste onderdeel vermeldt alle informatie over het broncodepakket in het algemeen, terwijl elk daaropvolgend onderdeel exact één binair pakket beschrijft. Elk onderdeel bestaat minstens uit één veld. Een veld begint met een veldnaam, zoals Package of Section (niet hoofdlettergevoelig), gevolgd door een dubbele punt, het tekstgedeelte van het veld (hoofdlettergevoelig tenzij anders vermeld) en een regeleinde. Velden mogen ook uit meerdere regels bestaan, maar iedere bijkomende regel zonder veldnaam moet minstens met één spatie beginnen. Gereedschap voegt de inhoud van velden die uit meerdere regels bestaan, meestal samen tot één regel (behalve in het geval van het veld Description; zie hierna). Om lege regels toe te voegen in een veld dat uit meerdere regels bestaat, moet u na de spatie een punt toevoegen. Regels die met een ‘#’ beginnen worden als commentaar behandeld.
Een trefwoord bestaat uit naamruimte/gevallen. Het onderdeel naamruimte mag geen "/" en geen witruimte bevatten. Het onderdeel gevallen mag geen witruimte bevatten. Voorts moeten beide delen volledig uit afdrukbare ASCII-tekens bestaan.
Elk gereedschap/pakket zal een naamruimte definiëren die vernoemd wordt naar zichzelf en een aantal gevallen waarin (fake)root vereist is. (Zie "Implementation provided keywords" in rootless-builds.txt).
Wanneer het veld ingesteld is op een van de impl-trefwoorden, zal het bouwprogramma een interface ontsluiten die gebruikt wordt om een commando onder (fake)root uit te voeren. (Zie "Gain Root API" in rootless-builds.txt.)
De velden Section en Priority hebben gewoonlijk een welbepaalde set mogelijke waarden, afhankelijk van de richtlijnen van de distributie.
De syntaxis van de velden Build-Depends, Build-Depends-Arch en Build-Depends-Indep is een lijst van groepen van alternatieve pakketten. Elke groep is een lijst van pakketten die onderling gescheiden worden door het symbool verticale streep (of “pijp”), ‘|’. De groepen worden onderling gescheiden door komma's ‘,’ en de lijst kan eindigen met een afsluitende komma, die bij het genereren van de velden voor deb-control(5) weggelaten zal worden (sinds dpkg 1.10.14). Een komma moet geïnterpreteerd worden als een “AND” en een pijp als een “OR”, waarbij pijpen de sterkste binding hebben. Elke pakketnaam kan facultatief gevolgd worden door een architectuurkwalificatie, die toegevoegd wordt na een dubbele punt ‘:’, facultatief gevolgd door de vermelding van een versienummer tussen ronde haakjes ‘(’ en ‘)’, een architectuurspecificatie tussen vierkante haakjes ‘[’ en ‘]’ en een restrictieformule die bestaat uit één of meer lijsten van profielnamen tussen punthaakjes ‘<’ en ‘>’.
De syntaxis van de velden Build-Conflicts, Build-Conflicts-Arch en Build-Conflicts-Indep is een lijst van pakketnamen die onderling gescheiden zijn door een komma, waarbij de komma geïnterpreteerd moet worden als een “AND” en waarbij de lijst kan eindigen met een afsluitende komma, die bij het genereren van de velden voor deb-control(5) weggelaten zal worden (sinds dpkg 1.10.14).. Het specificeren van alternatieve pakketten met behulp van een “pijp” wordt niet ondersteund. Elke pakketnaam kan facultatief gevolgd worden door de vermelding van een versienummer tussen ronde haakjes, een architectuurspecificatie tussen vierkante haakjes en een restrictieformule die bestaat uit één of meer lijsten van profielnamen tussen punthaakjes.
De naam van een architectuurkwalificatie kan een echte Debian-architectuurnaam zijn (sinds dpkg 1.16.5), any (sinds dpkg 1.16.2) of native (since dpkg 1.16.5). Indien ze weggelaten is, is de standaard voor het veld Build-Depends de architectuur van de huidige computer en voor het veld Build-Conflicts is dat any. Een echte Debian-architectuurnaam komt exact overeen met die architectuur voor die pakketnaam; any komt overeen met om het even welke architectuur voor die pakketnaam als het pakket gemarkeerd werd als Multi-Arch: allowed; native komt overeen met de huidige bouwarchitectuur indien het pakket niet gemarkeerd werd als Multi-Arch: foreign.
Een versienummer kan beginnen met een ‘>>’. In dat geval levert dit met alle latere versies een overeenkomst op. Een versienummer kan al dan niet ook een Debian-pakketrevisie bevatten (met een koppelteken tussen versienummer en Debian-pakketrevisie). Toegestane versierelaties zijn ‘>>’ voor hoger dan, ‘<<’ voor lager dan, ‘>=’ voor hoger of gelijk aan, ‘<=’ voor lager of gelijk aan en ‘=’ voor gelijk aan.
Een architectuuraanduiding bestaat uit één of meer architectuurnamen, onderling gescheiden door witruimte. Een uitroepteken mag elk van de namen voorafgaan, hetgeen de betekenis heeft van “NOT” (niet).
Een restrictieformule bestaat uit één of meer restrictielijsten, onderling gescheiden door witruimte. Elke restrictielijst staat tussen punthaakjes. De items in de restrictielijst zijn bouwprofielnamen, onderling gescheiden door witruimte, en kunnen voorafgegaan worden door een uitroepteken, hetgeen de betekenis heeft van “NOT” (niet). Een restrictieformule heeft de verschijningsvorm van een expressie in disjunctieve normaalvorm.
Merk op dat de vermelding dat pakketten vereist worden die behoren tot de categorie build-essential, weggelaten kan worden en dat het onmogelijk is om tegenover dergelijke pakketten een bouwtegenstrijdigheid te formuleren. Een lijst van deze pakketten is te vinden in het pakket build-essential.
Merk op dat de velden Priority, Section en Homepage ook in een onderdeel over een binair pakket kunnen voorkomen ter vervanging van de globale waarde uit het broncodepakket.
Indien een onderdeel over een binair pakket dit veld niet bevat, dan betekent dit impliciet dat het te bouwen is met alle bouwprofielen (met inbegrip van helemaal geen).
Met andere woorden, indien aan jet onderdeel over een binair pakket een niet-leeg Build-Profiles-veld toegevoegd is, dan wordt dat binair pakket gegenereerd indien en enkel indien de conditie die uitgedrukt wordt door de expressie in conjunctieve normaalvorm als waar geëvalueerd wordt.
Het is toegelaten om aan het bestand control bijkomende door de gebruiker gedefinieerde velden toe te voegen. De gereedschappen zullen deze velden negeren. Indien u wilt dat de velden mee gekopieerd worden naar de uitvoerbestanden, zoals de binaire pakketten, moet u een aangepast naamgevingsschema hanteren: de velden moeten beginnen met een X, gevolgd door nul of meer van de tekens SBC en een koppelteken.
Merk op dat de voorvoegsels X[SBC]- weggelaten worden wanneer de velden gekopieerd worden naar de uitvoerbestanden. Een veld XC-Approved-By zal als Approved-By in het changes-bestand vermeld staan en niet opgenomen zijn in het control-bestand van het binair en het bronpakket.
Houd er rekening mee dat deze door de gebruiker gedefinieerde velden gebruik maken van de globale naamruimte, waardoor ze op een gegeven ogenblik in de toekomst in botsing zouden kunnen komen met officieel erkende velden. Om deze mogelijke situatie te vermijden kunt u die velden laten voorafgaan door Private-, zoals XB-Private-Nieuw-Veld.
# Commentaar Source: dpkg Section: admin Priority: required Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org> # dit veld wordt gekopieerd naar het binaire en het broncodepakket 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 # dit is een aangepast veld in het binaire pakket 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.
/usr/share/doc/dpkg/spec/rootless-builds.txt, deb822(5), deb-control(5), deb-version(7), dpkg-source(1)
2023-05-11 | 1.21.22 |