deb-src-control - Debians filformat för källkodspakets
huvudstyrfil
debian/control
Varje Debiankällkodspaket innehåller huvudstyrfilen ”
debian/control”, och dess
deb822(5)-format är en
övermängd av
control-filen som medföljer
Debianbinärpaket, se
deb-control(5).
Filen innehåller åtminstone två stycken, avdelade med en
tomrad. Det första stycket innehåller all generell information
om källkodspaketet, medan de följande styckena beskriver exakt
ett binärpaket. Varje stycke består av åtminstone ett
fält. Ett fält inleds med ett fältnamn, till exempel
Package eller
Section (skiftlägesokänsligt),
följt av ett kolon, fältinnehållet
(skiftlägekänsligt om inte annat anges) och ett nyradstecken.
Flerradiga fält är också tillåtna, men varje
ytterligare rad som inte innehåller ett fältnamn, bör
starta med minst ett blanksteg. Innehållet i flerradsfält
slås normalt samman till en enda rad av verktygen (förutom i
fallet fältet
Description, se nedan). För att
sätta in tomma rader i ett flerradsfält, skriver du en punkt
efter blanksteget. Rader som börjar med ett ”
#”
tolkas som kommentarer.
-
Source: källkodspaketnamn
(krävs)
- Värdet på det här fältet
är namnet på källkodspaketet, och måste
motsvara namnet på källkodspaketet i filen debian/changelog.
Paketnamnet måste bestå endast av små
bokstäver (a-z), siffror (0-9), plus- (+) och minustecken (-) och
punkt (.). Paketnamn måste vara minst två tecken
långa och måste börja med ett liten bokstav eller
siffra (a-z0-9).
-
Maintainer: fullt-namn-epost
(rekommenderas)
- Ska vara på formatet ”Joe Bloggs
<[email protected]>” och refererar till den person som
för närvarande underhåller paketet, till skillnad
från programmets författare eller den ursprunglige
paketeraren.
-
Uploaders: fullt-namn-epost
- Räknar upp namn och e-postadresser till
med-underhållare av paketet, i samma format som fältet
Maintainer. Flera med-underhållare bör avdelas med
kommatecken.
-
Standards-Version: versionssträng
- Dokumenterar den senaste versionen av distributionens
policystandard som paketet uppfyller.
-
Description: kort-beskrivning)
- lång-beskrivning
- Formatet för källkodspaketbeskrivningen
är en kortfattad sammanfattning på den första raden
(efter fältet Description). Följande rader bör
användas för en längre, mer detaljerad beskrivning.
Varje rad i den lägre beskrivningen måste inledas med ett
blanksteg, och blanka rader i den långa beskrivningen måste
innehålla en ensam ” .” efter det inledande
blanksteget.
-
Homepage: url
- URL till uppströmsprojektets hemsida.
-
Bugs: url
-
Url:en till felrapporteringssystemet för
detta paket. Det nuvarande formatet är
systemtyp://address, till exempel
debbugs://bugs.debian.org. Det här fältet är
normalt sett inte nödvändigt.
-
Rules-Requires-Root:
no|binary-targets| impl-nyckelord
- Det här fältet används för att
ange om filen debian/rules kräver (fake)root-privilegier
för att köra några av sina mål, och i
så fall när.
-
no (nej)
- Binärmålen kommer inte kräva
(fake)root överhuvudtaget.
- binary-targets
- Binärmålen måste alltid köras
under (fake)root. Detta är förvalet om fältet inte
anges; även om det inte är strikt nödvändigt
att lägga till fältet med värdet
binary-targets så anger det att paketet har analyserats
för det här kravet.
- impl-nyckelord
- Det här är en blankstegsavdelad lista med
nyckelord som kan ange när (fake)root krävs.
Nyckelord består av namnrymd/fall. Delen
namnrymd kan inte innehålla "/" eller blanksteg.
Delen fall kan inte innehålla blanksteg. Dessutom
måste bägge delarna i sin helhet bestå av skrivbara
ASCII-tecken.
Varje verktyg/paket definierar en namnrymd med samma namn som sig
själv och anger ett antal fall där (fake)root krävs.
(Se "Implementation provided keywords" i
rootless-builds.txt).
När fältet är satt till ett av impl-nyckelord
kommer byggaren att exponera ett gränssnitt som används
för att köra ett kommando under (fake)root. (Se "Gain
Root API" i rootless-builds.txt.)
-
Testsuite: namnlist
-
Testsuite-Triggers: paketlista
- Dessa fält beskrivs i manualsidan dsc(5),
eftersom de genereras från information hämtad från
debian/tests/control eller kopieras ordagrant till
källkodsstyrfilen.
-
Vcs-Arch: url
-
Vcs-Bzr: url
-
Vcs-Cvs: url
-
Vcs-Darcs: url
-
Vcs-Git: url
-
Vcs-Hg: url
-
Vcs-Mtn: url
-
Vcs-Svn: url
-
Url:en till versionshanteringsarkivet som
används för att underhålla det här paketet.
För närvarande stöds Arch, Bzr
(Bazaar), Cvs, Darcs, Git, Hg (Mercurial),
Mtn (Monotone) och Svn (Subversion). Fältet pekar
normalt till den senaste versionen av paketet, såsom huvudgrenen
(main eller trunk).
-
Vcs-Browser: url
-
Url:en till ett webbgränssnitt för att
bläddra i versionshanteringsarkivet.
-
Origin: namn
- Namnet på den distribution paketet härstammar
från. Det här fältet är normalt sett inte
nödvändigt.
-
Section: sektion
- Detta är ett generellt fält som ger paketet
en kategori baserat på programvara som det installerar.
Några vanliga sektioner är utils, net,
mail, text, x11, osv.
-
Priority: prioritet
- Ställer in hur viktigt paketet är
jämfört med systemet som helhet. Vanliga prioriteter
är required (nödvändig), standard
(normal), optional (valfritt), extra (extra), osv.
Gälten Section och Priority har vanligtvis en
definierad uppsättning accepterade värden baserade på
den specifika distributionens policy.
-
Build-Depends: paketlista
- En lista över paket som måste installeras och
konfigureras för att kunna bygga källkodspaketet. Dessa
beroenden måste tillfredsställas när
binärarkitekturberoende eller -oberoende paket och
källkodspaket byggs. Ett beroende som beskrivs i den här
listan har inte exakt samma effekt som att inkludera det i både
Build-Depends-Arch och Build-Depends-Indep, eftersom
beroendet också måste tilfredsställas när
källkodspaketet byggs.
-
Build-Depends-Arch: paketlista
- Motsvarar Build-Depends, men de behövs endast
för att bygga de arkitekturoberoende paketen. Build-Depends
installeras också i detta fall. Det här fältet
stöds sedan dpkg 1.16.4; för att bygga med äldre
dpkg-versioner bör Build-Depends användas
istället.
-
Build-Depends-Indep: paketlista
- Motsvarar Build-Depends, men de behövs endast
för att bygga de arkitekturoberoende paketen. Build-Depends
installeras också i detta fall.
-
Build-Conflicts: paketlista
- En lista över paket som inte bör vara
installerade när paketet byggs, till exempel på grund av att
de stör byggsystemet som används. Ett beroende som beskrivs
i den här listan har samma effekt som att inkludera det i
både Build-Conflicts-Arch och Build-Conflicts-Indep,
med den ytterligare effekten att den används för byggen av
endast källkod.
-
Build-Conflicts-Arch: paketlista
- Motsvarar Build-Conflicts, men endast när
arkitekturoberoende paket byggs. Fältet stöds sedan dpkg
1.16.4; för att bygga med äldre versioner av dpkg bör
Build-Conflicts användas istället.
-
Build-Conflicts-Indep: paketlista
- Motsvarar Build-Conflicts, men endast när de
arkitekturoberoende paketen byggs.
Syntaxen för fälten
Build-Depends,
Build-Depends-Arch och
Build-Depends-Indep-fälten
är en lista med grupper av alternativa paket. Varje grupp
innehåller en lista med paket avdelade med ett vertikalstreck
(rör), ”
|”. Grupperna avdelas med kommatecken
”
,”, och kan avslutas med ett släpande komma som
tas bort när fälten genereras till
deb-control(5) (sedan
dpkg 1.10.14). Komma utläses som ”OCH”, och
vertikalstrecken som ”ELLER”, där vertikalstrecken binder
hårdare. Varje paketnamn kan eventuellt följas av en
versionsnummerangivelse inom parenteser ”
(” och
”
)”, en arkitekturangivelse inom hakparenteser
”
[” och ”
]” samt en
begränsningsformel som består av en eller flera listor med
profilnamn inom vinkelparenteser ”
<” och
”
>”.
Syntaxen för fälten
Build-Conflicts,
Build-Conflicts-Arch och
Build-Conflicts-Indep-fälten
är en kommaseparerad lista med paketnamn, där komma
utläses som ”OCH”, och där listan kan avslutas med
ett släpande komma som tas bort när fälten genereras till
deb-control(5) (sedan dpkg 1.10.14). Det är inte möjligt
att ange alternativa paket med ”rör”. Varje paketnamn kan
eventuellt följas av en versionsnummerangivelse inom parenteser, en
arkitekturangivelse inom hakparenteser samt en begränsningsformel
bestående av en eller flera listor med profilnamn inom
vinkelparenteser.
Ett arkitekturkvalificeringsnamn kan vara ett existerande Debianarkitekturnamn
(sedan dpkg 1.16.5),
any (sedan dpkg 1.16.2) eller
native (sedan
dpkg 1.16.5). Om det utesluts är förvalet för
fältet
Build-Depends den aktuella värdarkitekturen,
förvalet för
Build-Conflicts är
any. Ett
existerande Debianarkitekturnamn motsvarar exakt den arkitekturen för
det paketnamnet,
any motsvarar valfri arkitektur för paketnamnet
om paketet har markerats som
Multi-Arch: allowed och
native
motsvarar nuvarande byggarkitektur om paketet inte har markerats som
Multi-Arch: foreign.
Ett versionsnummer kan börja med ”
>>”, vilket
betyder att vilken som helst senare version matchar, där det är
valfritt att ange Debianuppdateringen (avdelad med bindestreck).
Tillåtna versionrelationer är ”
>>”
för större än, ”
<<”
för mindre än, ”
>=” för
större än eller lika med, ”
<=”
för mindre än eller lika med, och ”
=”
för lika med.
En arkitekturangivelse består av ett eller flera arkitekturnamn, avdelade
med blanktecken. Varje namn kan föregås av ett utropstecken,
vilket betyder ”ICKE”.
En begränsningsformel består av en eller flera
begränsningslistor, avdelade med blanksteg. Varje
begränsningslista skrivs inom vinkelparenteser. Poster i
begränsningslistan är namn på byggprofiler, avdelade av
blanksteg och kan föregås av ett utropstecken, vilket betyder
”ICKE”. En begränsningsformel representerar ett uttryck i
disjunktiv normalform.
Observera att beroenden på paket i
build-essential-uppsättningen kan utelämnas och att det
är omöjligt att deklarera byggkonflikter mot dem. En lista
över dessa paket finns i paketet build-essential.
Observera att fälten
Priority,
Section och
Homepage
även kan användas i de stycken som beskriver binärpaket
för att överstyra de globala värdena för
källkodspaketet.
-
Package: binärpaketnamn
(krävs)
- Detta fält används för att namnge det
binära paketet. Samma begränsningar gäller som
för källkodspaketets namn.
-
Package-Type: deb|udeb|typ
- Detta fält anger paketets typ. udeb
används för storleksbegränsade paket som
används av debians installationsprogram. deb är
standardvärdet, och antas om fältet saknas. Fler typer kan
komma att läggas till i framtiden.
-
Architecture: ark|all|any
(krävs)
- Arkitekturen anger på vilken typ av maskinvara
paketet körs. För paket som körs på alla
arkitekturer används värdet any (någon).
För paket som är arkitekturoberoende, som skal- och
Perlskript eller dokumentation, används värdet all
(alla). För att begränsa paket till en specifik
uppsättning arkitekturer, anger du namnen på arkitekturerna
avdelade med blanksteg. Det är även möjligt att ange
arkitekturer med jokertecken i listan (se dpkg-architecture(1)
för mer information om dessa).
-
Build-Profiles:
begränsningsformel
- Det här fältet anger villkor för
när binärpaketet ska eller inte ska byggas. För att
uttrycka villkoret används samma syntax för
begränsningsformeln som för fältet
Build-Depends (inklusive vinkelparenteserna).
Om ett stycke för ett binärpaket inte innehåller det
här fältet betyder det implicit att det bygger i alla
byggprofiler (inklusive ingen alls).
Med andra ord, om ett stycke för ett binärpaket är
försett med ett icke-tomt Build-Profiles-fält kommer
det binärpaketet byggas om, och endast om, villkoret, uttryckt i
konjunktiv normalform, utvärderas till sant.
-
Protected: yes|no
-
Essential: yes|no
-
Build-Essential: yes|no
-
Multi-Arch:
same|foreign|allowed| no
-
Tag: lista-med-märken
-
Description: kort-beskrivning
(rekommenderas)
- Dessa fält beskrivs i manualsidan
deb-control(5), eftersom de kopieras ordagrant till
binärpaketets styrfil.
-
Depends: paketlista
-
Pre-Depends: paketlista
-
Recommends: paketlista
-
Suggests: paketlista
-
Breaks: paketlista
-
Enhances: paketlista
-
Replaces: paketlista
-
Conflicts: paketlista
-
Provides: paketlista
-
Built-Using: paketlista
-
Static-Built-Using: paketlista
- Det här fältet anger beroenden mellan paket.
De diskuteras i manualsidan deb-control(5). När
fälten förekommer i debian/control kan de
också avslutas med ett släpande kommatecken (sedan dpkg
1.10.14), ha arkitekturangivelser och begränsningsformler som alla
reduceras när fälten för deb-control(5)
genereras.
-
Subarchitecture: värde
-
Kernel-Version: värde
-
Installer-Menu-Item: värde
- Dessa fält används av debian-installer i
udeb-formatet och behövs normalt inte. För mer
information om dem, se
<https://salsa.debian.org/installer-team/debian-installer/-/raw/master/doc/devel/modules.txt>.
Det är tillåtet att lägga till ytterligare
användardefinierade fält till styrfilen. Verktygen kommer
ignorera dessa fält. Om du vill att fältet ska kopieras
över till utdatafilerna, så som binärpaketen,
måste du använda ett skräddarsytt namngivningsformat:
fälten ska börja på
X, följt av noll eller
flera av tecknen SBC och ett bindestreck.
- S
- Fältet kommer tas med i styrfilen för
källkodspaket, se dsc(5).
- B
- Fältet kommer tas med i styrfilen för
binärpaketet, se deb-control(5).
- C
- Fältet kommer tas med i styrfilen för
insändningen (.changes), se deb-changes(5).
Observera att prefix på formen
X[
SBC]
- tas bort
när fälten kopieras över till utdatafilerna.
Fältet
XC-Approved-By kommer tas med som
Approved-By i
”changes”-filen och inte tas med i styrfilerna för
binär- och källkodspaketen.
Tänk på att dess användardefinierade fält
använder den globala namnrymden, vilket en gång i framtiden kan
komma att kollidera med officiellt erkända fält. För att
undvika sådana potentiella situationer kan du använda prefixet
Private- för dessa fält, som
XB-Private-New-Field.
# Kommentar
Source: dpkg
Section: admin
Priority: required
Maintainer: Dpkg Developers <[email protected]>
# det här fältet kopieras till binär- och källkodspaketen
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
# det här är ett skräddarsytt fält i binärpaketet
XB-Mentoring-Contact: Raphael Hertzog <[email protected]>
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)
Peter Krefting och Daniel Nylander.