NAMN
- Provided by: dpkg-dev (Version: 1.17.5ubuntu5.8)
- Source: dpkg
- Report a bug
substvars
Innan dpkg-source, dpkg-gencontrol och dpkg-genchanges skriver sin kontrollinformation (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.
En variabelsubstitution har formen ${variabelnamn}. Variabelnamn består av alfanumeriska tecken, bindestreck och kolon och börjar med ett alfanumeriskt tecken. 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.
När alla substitueringar har utförts ersätts varje förekomst av strängen ${} (som inte är en giltig substituering) med ett $-tecken.
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 skall 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 variablen ${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.
Variabler kan sättas genom att använda kommandoradsflaggan -V. De kan även anges i filen debian/substvars (eller vilken som helst annan fil som anges med flaggan -T). Filen består av rader på formen namn=värde. Avslutande blanksteg på en rad, blanka rader och rader som börjar med en #-symbol (kommentarer) ignoreras.
I tillägg är följande standardvariabler tillgängliga:
Om en variabel refereras till men inte definieras kommer en varning att genereras och ett tomt värde används.
dpkg(1), dpkg-genchanges(1), dpkg-gencontrol(1), dpkg-shlibdeps(1), dpkg-source(1).
Peter Krefting och Daniel Nylander.