Scroll to navigation

deb-substvars(5) dpkg suite deb-substvars(5)

NAAM

deb-substvars - Substitutievariabelen in Debian broncode

OVERZICHT

debian/substvars, debian/binair-pakket.substvars, variabelen

BESCHRIJVING

Vooraleer dpkg-source, dpkg-gencontrol en dpkg-genchanges hun comtrole-informatie neerschrijven (naar het broncodecontrolebestand .dsc in het geval van dpkg-source en naar standaarduitvoer in het geval van dpkg-gencontrol en dpkg-genchanges), voeren ze een aantal variabelesubstituties uit op het uitvoerbestand.

Variabelesyntaxis

Een variabelesubstitutie heeft als vorm ${variabelenaam}. Variabelenamen bestaan uit alfanumerieke tekens (a-zA-Z0-9), koppeltekens (-) en dubbele punten (:) en beginnen met een alfanumeriek teken. Ze zijn ook hoofdlettergevoelig, ook al kunnen ze verwijzen naar andere entiteiten die hoofdletterbehoudend zijn. Variabelesubstituties worden bij herhaling uitgevoerd tot er geen meer overblijven. Na een substitutie wordt de volledige tekst van het veld opnieuw doorzocht op nog meer uit te voeren substituties.

Bestandssyntaxis

Substitutievariabelen kunnen in een bestand worden opgegeven. Deze bestanden bestaan uit regels van de vorm naam=waarde of naam?=waarde. De operator = wijst een normale substitutievariabele toe, terwijl de operator ?= (sinds dpkg 1.21.8) een optionele substitutievariabele toewijst die geen waarschuwingen geeft, zelfs als deze niet wordt gebruikt. Resterende witruimte op elke regel, lege regels en regels die beginnen met het symbool # (commentaar) worden genegeerd.

Substitutie

Variabelen kunnen ingesteld worden met behulp van de algemene optie -V. Ze kunnen ook opgegeven worden in het bestand debian/substvars (of om het even welk ander bestand dat opgegeven wordt met de algemene optie -T).

Nadat alle substituties uitgevoerd werden, wordt de tekenreeks ${} (wat geen daadwerkelijke substitutievariabele is) overal waar die voorkomt, vervangen door het teken $. Dit kan gebruikt worden als een escape-sequentie zoals ${}{VARIABELE}, wat in de uitvoer de vorm zal aannemen van ${VARIABELE}.

Indien er gerefereerd wordt naar een niet-gedefinieerde variabele, wordt een waarschuwing gegeven en wordt verondersteld dat de waarde ervan leeg is.

Hoewel variabelesubstitutie uitgevoerd wordt op alle controlevelden, zijn sommige van die velden nodig tijdens het bouwen wanneer de substitutie nog niet heeft plaats gevonden. Dat is de reden waarom u geen variabelen kunt gebruiken in de velden Package, Source en Architecture.

Variabelesubstitutie vindt plaats op de inhoud van de velden nadat die ontleed werden. Indien u dus wenst dat een variabele zich uitstrekt over meerdere regels, moet u na het regeleinde geen spatie invoegen. Dit gebeurt impliciet bij de uitvoer van het veld. Indien bijvoorbeeld de variabele ${Description} ingesteld werd op "foo is bar.${Newline}foo is geweldig." en u het volgende veld heeft:

 Description: toepassing foo
  ${Description}
  .
  Bijkomende tekst.

Dit zal dit resulteren in:

 Description: toepassing foo
  foo is bar.
  foo is geweldig.
  .
  Bijkomende tekst.

Ingebouwde Variabele

Daarnaast zijn altijd de volgende standaardvariabelen beschikbaar::

De huidige computerarchitectuur (d.w.z. de architectuur waarvoor het pakket gebouwd wordt; het equivalent van DEB_HOST_ARCH).
De naam van de huidige leverancier (sinds dpkg 1.20.0). Deze waarde is afkomstig van het Vendor-veld voor het origin-bestand van de huidige leverancier, zoals dpkg-vendor(1) het zou ophalen.
Het ID van de huidige leverancier (sinds dpkg 1.20.0). Dit is gewoon de variant van vendor:Name in kleine letters.
De versie van het broncodepakket (sinds dpkg 1.13.19).
De versie van het broncodepakket van de toeleveraar, eventueel met inbegrip van de versie-epoche van Debian (sinds dpkg 1.13.19).
De versie van het binaire pakket (dat verschillend kan zijn van source:Version, in geval van een binNMU bijvoorbeeld; sinds dpkg 1.13.19).
De versie van het broncodepakket (uit het bestand changelog). Deze variabele is nu verouderd en geeft aanleiding tot een foutmelding als hij gebruikt wordt, aangezien de betekenis ervan verschilt van zijn functie. U moet naargelang het geval nu source:Version of binary:Version gebruiken.
De synopsis van het bronpakket, gehaald uit het veld Description van het broncode-element, als het bestaat (sinds dpkg 1.19.0).
De uitgebreide beschrijving van het bronpakket, gehaald uit het veld Description van het broncode-element, als het bestaat (sinds dpkg 1.19.0).
De geschatte totale grootte van de uit het pakket geïnstalleerde bestanden. Deze waarde wordt gekopieerd naar het overeenkomstige veld in het bestand control. Dit instellen wijzigt de waarde van dat veld. Indien deze variabele niet ingesteld werd, zal dpkg-gencontrol de standaardwaarde berekenen door de grootte van alle gewone bestanden en alle symbolische koppelingen samen te nemen, afgerond tot op een eenheid van 1 KiB, en met een richtlijn van 1 KiB voor elk ander type object van het bestandssysteem. Daarbij worden harde koppelingen slechts éénmaal geteld als een gewoon bestand.

Opmerking: Houd er rekening mee dat dit steeds slechts een schatting kan zijn, aangezien de werkelijke grootte die op het geïnstalleerde systeem gebruikt zal worden, in grote mate afhankelijk is van het gebruikte bestandssysteem en de parameters ervan, waardoor het eindresultaat kan zijn dat ofwel meer ofwel minder ruimte in beslag genomen wordt dan in dit veld opgegeven werd.

Extra schijfruimte die gebruikt wordt als het pakket geïnstalleerd is. Indien deze variabele ingesteld werd, wordt de waarde ervan opgeteld bij de variabele Installed-Size (ofwel de expliciet ingestelde of de standaardwaarde ervan) vooraleer ze gekopieerd wordt naar het veld Installed-Size in het bestand control.
De waarde van het broncodeveld veldnaam (die moet opgegeven worden in de gebruikelijke schrijfwijze met hoofd-/kleine letters; sinds dpkg 1.18.11). Het instellen van deze variabelen heeft geen effect tenzij op die plaatsen waar ze expliciet geëxpandeerd worden. Deze variabelen zijn enkel beschikbaar tijdens het genereren van de control-bestanden van het binaire pakket.
De waarde van het uitvoerveld veldnaam (die moet opgegeven worden in de gebruikelijke schrijfwijze met hoofd-/kleine letters). Het instellen van deze variabelen heeft geen effect tenzij op die plaatsen waar ze expliciet geëxpandeerd worden.
Het versienummer van de bestandsindeling van .changes dat door deze versie van de scripts voor het verpakken van de broncode gegenereerd wordt. Indien u deze variabele instelt, zal de inhoud van het veld Format in het bestand .changes ook gewijzigd worden.
Elk van deze variabelen bevat het overeenkomstig letterteken.
Variabele-instellingen met namen in deze vorm worden door dpkg-shlibdeps gegenereerd.
De originele toeleveraarsversie (upstream) van dpkg (sinds dpkg 1.13.19).
De volledige versie van dpkg (sinds dpkg 1.13.19).

BESTANDEN

Lijst met substitutievariabelen en hun waarden.

ZIE OOK

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

2024-01-19 1.22.3