NAMN

deb-substvars - Debians källkods-substitueringsvariabler

SYNOPS

debian/substvars, debian/binärpaket.substvars, variabler

BESKRIVNING

Innan dpkg-source, dpkg-gencontrol och dpkg-genchanges skriver sin styrinformation (till control-filen i källkodspaketet .dsc för dpkg-source och till standard ut för dpkg-gencontrol och dpkg-genchanges) kommer de utföra viss variabelsubstituering på utdatafilen.

Variabelsyntax

En variabelsubstitution har formen ${variabelnamn}. Variabelnamn består av alfanumeriska tecken (a-zA-Z0-9), bindestreck (-) och kolon (:) och börjar med ett alfanumeriskt tecken, och är skiftlägeskänsliga. Variabelsubstitueringar utförs upprepade gånger tills det inte kvarstår några - det resulterande innehållet i fältet läses av på nytt efter substitueringen för att se om det behövs fler substitueringar.

Filsyntax

Substitueringsvariabler kan anges i en fil. En sådan fil består av rader på formen namn=värde eller namn ?=<värde>. Operatorn = tilldelar en normal substitueringsvariabel, medan operatorn ?= (sedan dpkg 1.21.8) tilldelar en valfri variabel som inte skriver ut någon varning även om den inte används. Avslutande blanksteg på en rad, blanka rader och rader som börjar med en #-symbol (kommentarer) ignoreras.

Substituering

Variabler kan sättas genom att använda den gemensamma kommandoradsflaggan -V. De kan även anges i filen debian/substvars (eller vilken som helst annan fil som anges med gemensamma flaggan -T).
När alla substitueringar har utförts ersätts varje förekomst av strängen ${} (som inte är en faktisk substitueringsvariabel) med ett $-tecken. Detta kan användas som en ersättningssekvens såsom ${}{VARIABEL} vilket kommer bli till ${VARIABLE} i utdata.
Om en variabel refereras till men inte definieras kommer en varning att genereras och ett tomt värde används.
Medan variabelsubstituering görs på alla fält i styrfilen är det några av fälten som används och behövs vid byggning innan substitueringen ännu har utförts. Därför går det inte att använda variabler i fälten Package, Source och Architecture.
Variabelsubstituering sker över innehållet i fälten efter att de har tolkats, vilket innebär att om du vill att en variabel ska expanderas över flera rader så behöver du inte inkludera ett blanksteg efter nyradstecknet. Detta görs implicit när fältet skrivs ut. Till exempel, om variabeln ${Description} sätts till "foo är bar.${Newline}foo är bra." och du har följande fält:
 Description: programmet foo
  ${Description}
  .
  Mer text.
Så blir resultatet:
 Description: programmet foo
  foo är bar.
  foo är bra.
  .
  Mer text.

Inbyggda variabler

I tillägg är alltid följande standardvariabler tillgängliga:
Arch
Aktuell värdarkitektur (dvs., arkitekturen paketet byggs för, motsvarigheten till DEB_HOST_ARCH).
vendor:Name
Aktuellt återförsäljarnamn (sedan dpkg 1.20.0). Värdet kommer från fältet Vendor för aktuell återförsäljares origin-fil, så som dpkg-cendor(1) skulle hämta det.
vendor:Id
Aktuellt återförsäljar-ID (sedan dpkg 1.20.0). Det här bara en variant av vendor:Name skriven med små bokstäver.
source:Version
Källkodspaketets version (sedan dpkg 1.13.19).
source:Upstream-Version
Version på uppströmskällkodspaketet, inklusive Debianversionens epok, om sådan finns (sedan dpkg 1.13.19).
binary:Version
Den binära paketversionen (som kan avvika från source:Version, till exempel i en binNMU; sedan dpkg 1.13.19).
Source-Version
Versionen på källkodspaketet (från changelog-filen). Variabeln är nu föråldrad och ger ett felmeddelande om den används eftersom betydelsen skiljer sig från funktionen, använd i stället source:Version eller binary:Version allt eftersom vad som är lämpligt.
source:Synopsis
Källkodspaketets synops, hämtad från källkods-strofens Description-fält, om det finns (sedan dpkg 1.19.0).
source:Extended-Description
Källkodspaketet utökade beskricning, hämtad från källkods-strofens Description-fält, om det finns (sedan dpkg 1.19.0).
Installed-Size
Den ungefärliga totala storleken på paketets installerade filer. Värdet kopieras in i motsvarande fält i styrfilen. Om du ställer in det kommer det att ersätta värdet på fältet. Om variabeln inte är satt kommer dpkg-gencontrol att beräkna dess standardvärde genom att summera storleken på alla vanliga filer och symboliska länkar avrundat till 1 KiB-enheter, och ett grundvärde på 1 KiB för andra filsystemsobjekttyper. Hårda länkar räknas bara som vanliga filer en gång. Observera: Tänk på att det här aldrig kan vara något annat än ett närmevärde eftersom den faktiska storleken som används på det installerade systemet i stor grad beror på vilket filsystem som används och dess parameterar, vilket kan komma att använda mer eller mindre plats än vad som anges i det här fältet.
Extra-Size
Ytterligare diskutrymme som används när paketet installeras. Om värdet är satt kommer dess värde att läggas till Installed-Size-variabelns värde (oavsett om den satts explicit eller om det förvalda värdet används) innan det kopieras till styrfilens fält Installed-Size.
S:fältnamn
Värdet på källkods-strofens fält fältnamn (som måste anges med rätt form av stora och små bokstäver; sedan dpkg 1.18.11). Om du sätter dessa variabler händer ingenting förutom där de explicit expanderats. Variablerna är bara tillgängliga när styrfiler för binärpaketen skapas.
F:fältnamn
Värdet på utdatafältet fältnamn (som måste anges med rätt form av stora och små bokstäver). Om du sätter dessa variabler händer ingenting förutom där de explicit expanderats.
Format
Formatet på filen .changes som skapats av denna version av källkodspaketeringsskripten. Om du sätter denna variabel kommer innehållet i Format-fältet i filen .changes också att ändras.
Newline, Space, Tab
Dessa variabler innehåller motsvarande tecken (radbrytning, blanksteg, tabbsteg).
shlibs:beroendefält
Variabelinställningar på den här formen skapas av dpkg-shlibdeps.
dpkg:Upstream-Version
Uppströmsversionen av dpkg (sedan dpkg 1.13.19).
dpkg:Version
Fullständig version av dpkg (sedan dpkg 1.13.19).

FILER

debian/substvars
Lista över substitueringsvariabler och -värden.

SE ÄVEN

dpkg(1), dpkg-vendor(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(1).

ÖVERSÄTTNING

Peter Krefting och Daniel Nylander.

Recommended readings

Pages related to deb-substvars you should read also: