deb822 - Debians RFC822-styrdataformat
Pakethanteringssystemet manipulerar data som anges i ett vanligt format,
känt som
styrinformation, lagrat i
styrfiler. Styrfiler
används för källkodspaket, binärpaket och filen
.changes som styr installationen av insända filer (
dpkg:s
interna databaser är i ett liknande format).
Styrfilen består av ett eller flera stycken med fält (styckena
kallas ”stanza” (strof) eller ”paragraph”
på engelska). Styckena avdelas av tomma rader. Tolkar kan
tillåta rader som består enbart av U+0020
SPACE och
U+0009
TAB som styckeavdelare, men styrfiler bör använda
tomma rader. Vissa styrfiler tillåter bara ett enda stycke; andra
tillåter flera, i vilket fall varje enskilt stycke vanligen
gäller ett separat paket. (Till exempel, i källkodspaket
gäller det första stycket för källkodspaketet, och
senare stycken binärpaketen som skapats från källkoden.)
Ordningen på styckena i styrfilerna har betydelse.
Varje stycke består av en följd av datafält. Varje
fält består av fältnamnet följt av ett kolon
(U+003A ”
:”) och data/värdet som hör till
fältet. Fältnamnet består av US-ASCII-tecken
förutom styrtecken såsom, blanksteg och kolon (dvs. tecken i
intervallen U+0021 ”
!” till och med U+0039
”
9” och U+003B ”
;” till och med
U+007E ”
~”). Fältnamn får inte
börja med kommentarstecknet (U+0023 ”
#”), ej
heller med bindestreck (U+002D ”
-”).
Fältet slutar på slutet av raden eller på slutet av den
sista fortsättningraden (se nedan). Horisontella blanksteg (U+0020
SPACE och U+0009
TAB) kan förekomma direkt före
eller efter värdet och ignoreras där; det är vanligt att
sätta ett ensamt blanksteg efter kolontecknet. Ett fält kan till
exempel vara:
Package: dpkg
fältnamnet är
Package och fältvardet
dpkg.
Tomma fältvärden tillåts bara i källkodspaketets
styrfiler (
debian/control). Sådana fält ignoreras.
Ett stycke kan inte innehålla mer än en instans av ett specifikt
fältnamn.
Det finns tre typer fält:
- enkelt
- Fältet, och dess värde, måste vara en
enkel rad. Det är inte tillåtet att dela fältet i
flera delar. Det här är den förvalda fälttypen
om definitionen av fältet inte anger en annan typ.
- flerdelat
- Värdet för ett flerdelat fält
är en logisk rad som kan spänna över flera rader.
Raderna efter den första kallas fortsättningsrader och
måste börja med ett U+0020 SPACE eller en U+0009
TAB. Blanktecken, inklusive nyradstecken, har ingen betydelse i
fältvärden för flerdelade fält.
Flerdelningsmetoden liknar den i RFC5322, vilket tillåter styrfiler
som innehåller ett enda stycke och saknar flerradsfält att
läsas av tolkar skrivna för RFC5322.
- flerradigt
- Värdet för ett flerradigt fält kan
bestå av flera fortsättningsrader. Den första delen
av värdet, delen på samma rad som fältnamnet, har
ofta en speciell betydelse eller måste vara tom. Andra rader
läggs till på samma syntax som fortsättningsrader
för flerdelade fält. Blanktecken, inklusive nyradstecken,
har betydelse i värdet för flerradiga fält.
Blanktecken får inte förekomma inuti namn (på paket,
arkitekturer, filer eller något annat) eller versionsnummer, eller
mellan tecknen i versionsberoenden bestående av flera tecken.
Närvaron och betydelsen av ett fält, och syntaxen för dess
värde kan skilja mellan olika sorters styrfiler.
Fältnamn är inte skiftlägeskänsliga, men det
är vanligt använda både stora och små
bokstäver i fältnamnet så som visas nedan.
Fältvärden är skiftlägeskänsliga
såvida inte beskrivningen av fältet anger något annat.
Styckeavdelare (tomma rader) och rader som endast består av +0020
SPACE och U+0009
TAB, tillåts inte inuti
fältvärden eller mellan fält. Tomma rader i
fältvärden citeras vanligtvis genom att representera dem med ett
U+0020
SPACE följt av en punkt (U+002E
”
.”).
Rader som inleds med U+0023 ”
#”, utan något
tidigare blanktecken är kommentarsrader och tillåts bara i
källkodspaketets styrfiler (
debian/control) och i
deb-origin(5)-filer. Dessa kommentarsrader ignoreras, också
mellan två fortsättningsrader. De avslutar inte logiska rader.
Alla styrfiler måste använda teckenkodningen UTF-8.
RFC822,
RFC5322.
Peter Krefting och Daniel Nylander.