deb-src-control(5)

NAMN
deb-src-control - Debians filformat för källkodspakets mallstyrfil

SYNOPS
debian/control

BESKRIVNING
Varje Debiankällkodspaket innehåller mallstyrfilen ”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 kallas källkodspaketstycket och innehåller all generell information om källkodspaketet, medan de följande styckena kallas binärpaketstycken och beskriver exakt ett binärpaket per stycke. 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, måste 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.

KÄLLKODSFÄLT

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 <jbloggs@foo.com>” 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.

Build-Driver: drivrutinsnamn
    Det här experimentella fältet anger namnet på byggdrivrutinen som används för att bygga paketet. Om det inte anges är standardvärdet för driver-name debian-rules.

    Fältet stöds sedan dpkg 1.22.7.

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. Detta är förval om dpkg-build-api-nivån är ≥ 1, eller sedan dpkg 1.22.13.

    binary-targets
        Binärmålen måste alltid köras under (fake)root. Detta är förvalet i dpkg-build-api-nivå 0 till och med dpkg 1.22.13, 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.

    Om det utelämnas sätts section till förvalet unknown (sedan dpkg 1.22.13).

    Godtagna värden baseras på den specifika distributionens policy.

Priority: prioritet
    Ställer in hur viktigt paketet är jämfört med systemet som helhet. Kända prioriteter är required (nödvändig), important (viktig), standard (normal), optional (valfritt), extra (extra), och unknown (okänd), men andra värden kan också användas.

    Om det utelämnas sätts priority till förvalet optional (sedan dpkg 1.22.13).

    Hur dessa värden ska användas beror 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 (< och >). 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, vilket innebär att blanksteg inuti omslutande vinkelparenteser läses som ”OCH”, och blanksteg mellan omslutande vinkelparenteser läses som ”ELLER”, till exempel ”<foo AND bar> OR <quux AND baz>”.

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.

BINÄRFÄLT

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-lista (krävs)
    Arkitekturlistan anger på vilken typ av maskiner paketet kan köras. Värdet ska vara en lista över arkitekturnamn och/eller sökmönster avdelade med blanksteg.

    Det speciella värdet all, när det anges ensamt, är avsett för paket som är oberoende av arkitektur (såsom Perl-skript eller dokumentation), det speciella jokermönstret any, när det anges ensamt, är avsett för paket som är arkitekturberoende men som kan köras på alla arkitekturer (det träffar på alla specifika arkitekturnamn, förutom all). De flesta paket kommer att använda antingen all eller any. För att begränsa paketen till en specifik uppsättning arkitekturer anger du ett eller flera arkitekturnamn och/eller arkitektursökmönster, avdelade med blanksteg.

    Ett arkitekturnamn eller sökmönster måste inledas med ett alfanumeriskt tecken (”0-9a-zA-Z”), som sedan följs av alfanumeriska tecken och bindestreck (”-”).

    För mer information om arkitekturnamn och sökmönster, se dpkg-architecture(1).

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.

Section: sektion
    Överstyr värdet från samma fält i källkodspaketstrofen.

    Om fältet saknas i binär- eller källkodsstrofen sätts det till förvalet unknown (sedan dpkg 1.22.13).

Priority: prioritet
    Överstyr värdet från samma fält i källkodspaketstrofen.

    Om fältet saknas i binär- eller källkodsstrofen sätts det till förvalet optional (sedan dpkg 1.22.13).

Homepage: url
    Överstyr värdet från samma fält i källkodspaketstrofen.

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>.

ANVÄNDARDEFINIERADE FÄLT
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).

    Förväntas endast i källkodspaketstrofen.

B   Fältet kommer tas med i styrfilen för binärpaketet, se deb-control(5).

    Tillåtet i källkodspaketstrofen eller valfri binärpaketstrof.

C   Fältet kommer tas med i styrfilen för insändningen (.changes), se deb-changes(5).

    Förväntas endast i källkodspaketstrofen.

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.

EXEMPEL
 # Kommentar.
 Source: dpkg
 Section: admin
 Priority: required
 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
 # 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: 4.7.3
 Build-Depends:
  dpkg-build-api (= 1),
  debhelper-compat (= 13),
  debhelper (>= 13.10~),
  pkgconf,
  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 <hertzog@debian.org>
 Depends:
  libdpkg-perl (= ${source:Version}),
  dpkg (>= 1.14.6),
  binutils,
  bzip2,
  xz-utils,
 # Det här är en kommentar mitt i ett fältvärde.
  make,
  patch (>= 2.2-1),
  perl-modules,
  perl5,
 Recommends:
  build-essential,
  gcc | c-compiler,
 Suggests:
  debian-keyring,
 Conflicts:
  devscripts (<< 2.10.26),
 Replaces:
  manpages-pl (<= 20051117-1),
 Provides:
  dpkg-build-api (= 0),
  dpkg-build-api (= 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.

SE ÄVEN
/usr/share/doc/dpkg/spec/rootless-builds.txt, deb822(5), deb-control(5), deb-version(7), dpkg-source(1)

ÖVERSÄTTNING
Peter Krefting och Daniel Nylander.