deb-buildinfo - Indeling van het Debian bouw-informatiebestand
Van elke bouw van een Debian broncodepakket kan de bouwinformatie
opgeslagen worden in een controlebestand .buildinfo, dat een aantal
velden bevat volgens de indeling deb822(5).
Ieder veld begint met een markering, zoals Source of
Binary (niet hoofdlettergevoelig), gevolgd door een dubbele punt en
de tekstinhoud van het veld (hoofdlettergevoelig tenzij anders vermeld).
Velden worden enkel door veldmarkeringen begrensd. De tekstinhoud van het
veld kan met andere woorden verschillende regels lang zijn, maar de
installatiegereedschappen zullen bij het verwerken van de tekstinhoud de
regels gewoonlijk samenvoegen (behalve in het geval van de multiregel-velden
Binary-Only-Changes, Installed-Build-Depends,
Environment, Checksums-Md5, Checksums-Sha1 en
Checksums-Sha256; zie hierna)
De controle-data mogen ingesloten liggen in een
OpenPGP-handtekening met ASCII-harnas volgens de specificatie RFC4880.
De naam van het .buildinfo-bestand zal afhangen van het
type bouw en zal zo specifiek zijn als nodig, maar niet meer dan dat; die
naam zal zijn:
- broncode-naam_versie-binair-bestand_arch.buildinfo
- voor een bouw die any bevat
- broncode-naam_versie-binair-bestand_all.buildinfo
- voor een bouw die daarentegen all bevat
- broncode-naam_broncode-versie_source.buildinfo
- voor een bouw die daarentegen source bevat
- Format:
indelingsversie (verplicht)
- De waarde van dit veld bepaalt de indelingsversie van het bestand. De
syntaxis van de veldwaarde is een versienummer met een hoofdversie- en een
onderversiecomponent. Wijzigingen aan de indeling die niet neerwaarts
compatibel zijn, hebben een verhoging van het hoofdversienummer tot gevolg
en neerwaarts compatibele veranderingen (zoals het toevoegen van extra
velden) verhogen het onderversienummer. De huidige indelingsversie is
1.0.
- Source:
broncode-naam [(broncode-versie)]
(verplicht)
- De naam van het broncodepakket. Indien de versie van het broncodepakket
verschilt van de versie van het binaire pakket, dan zal de
broncode-naam gevolgd worden door een broncode-versie tussen
haakjes. Dit kan het geval zijn als de bouw gebeurt voor een uitsluitend
binaire upload die niet door de beheerder uitgevoerd wordt.
- Binary:
lijst-binaire-pakketten (vereist in de context)
- Dit samengevouwen veld is een met een spatie gescheiden lijst van gebouwde
binaire pakketten. Indien de bouw enkel de broncode betreft, dan wordt het
veld weggelaten (sinds dpkg 1.20.0).
- Architecture:
arch-lijst (verplicht)
- Dit veld met spaties als scheidingsteken, somt de architecturen op van de
bestanden die momenteel gebouwd worden. Gebruikelijke architecturen zijn
amd64, armel, i386, enz. Merk op dat de waarde
all bedoeld is voor pakketten die architectuuronafhankelijk zijn.
Indien ook de broncode voor het pakket gebouwd wordt, is ook de bijzondere
vermelding source aanwezig. Jokertekens voor architecturen mogen
nooit voorkomen in de lijst.
- Version:
versie-tekenreeks (verplicht)
- Gewoonlijk is dit het originele versienummer van het pakket, welke vorm de
auteur van het programma er ook voor gebruikt. Het kan ook een
Debian-revisienummer bevatten (voor niet uit Debian stammende pakketten).
De exacte indeling en het sorteringsalgoritme worden beschreven in
deb-version(7).
- Binary-Only-Changes:
- changelog-item
- Dit multiregel-veld bevat in voorkomend geval de samengevoegde tekst van
het changelog-item voor een uitsluitend binaire upload die niet door de
beheerder uitgevoerd wordt (een binary-only non-maintainer upload -
binNMU). Om van dit veld een geldig multiregel-veld te maken, worden lege
regels vervangen door één enkel punt (‘.’) en
springen alle regels in met één spatie. De exacte inhoud
hangt af van de changelog-indeling.
- Checksums-Md5:
(verplicht)
- Checksums-Sha1:
(verplicht)
- Checksums-Sha256:
(verplicht)
- controlesom grootte bestandsnaam
- Deze multiregel-velden bevatten een lijst van bestanden met voor elk van
hen een controlesom en een grootte. Deze velden hebben een identieke
syntaxis en verschillen onderling enkel inzake het gebruikte algoritme
voor de controlesom: MD5 voor Checksums-Md5, SHA-1 voor
Checksums-Sha1 en SHA-256 voor Checksums-Sha256.
De eerste regel van de veldwaarde (het deel dat op dezelfde
regel staat als de door een dubbele punt gevolgde veldnaam) is steeds
leeg. De inhoud van het veld wordt in de vervolgregels verwoord,
één regel per bestand. Elke regel bestaat uit elementen
die onderling door een spatie gescheiden zijn en het bestand
beschrijven: zijn controlesom, zijn bestandsgrootte en zijn naam.
Deze velden sommen alle bestanden die de bouw vormen.
- Build-Origin:
naam
- De naam van de distributie waaruit dit pakket afkomstig is.
- Build-Architecture:
arch (verplicht)
- De Debian-architectuur van de installatie waarin de pakketten gebouwd
worden. Gebruikelijke architecturen zijn amd64, armel,
i386, enz.
- Build-Date:
bouwdatum
- De datum waarop het pakket gebouwd werd. Hij moet dezelfde indeling hebben
als de datum in een deb-changelog(5)-item.
- Build-Kernel-Version:
bouwkernel-versie
- De uitgave en de versie (in een niet-gespecificeerde indeling) van de
kernel die op het bouwsysteem functioneert. Dit veld zal enkel aanwezig
zijn als het bouwprogramma er expliciet om gevraagd heeft, om het
eventueel weglekken van gevoelige informatie te voorkomen.
- Build-Path:
bouwpad
- Het absoluut bouwpad, wat overeenkomt met de uitgepakte broncodeboom. Dit
veld is enkel aanwezig als de leverancier het toegelaten heeft aan de hand
van een patroonvergelijking om het eventueel weglekken van gevoelige
informatie te voorkomen.
Op Debian en zijn derivaten zullen enkel bouwpaden die
beginnen met /build/ aanleiding geven tot het aanmaken van dit
veld.
- Build-Tainted-By:
- lijst-met-bezoedelingsredenen
- Dit gevouwen veld bevat een niet-exhaustieve lijst, met spatie als
scheidingsteken, van labels (samengesteld uit alfanumerieke tekens en
gedachtestreepjes) met redenen die aanduiden waarom de huidige bouw
bezoedeld werd (sinds dpkg 1.19.5).
Op Debian en zijn derivaten kunnen de volgende reden-labels
gegeven worden:
- merged-usr-via-aliased-dirs
- Het systeem heeft een via aliassen samengevoegde map /usr (vroeger
gekend als merged-usr-via-symlinks). Dit sticht verwarring bij
dpkg-query, dpkg-statoverride, dpkg-trigger,
update-alternatives en elk ander hulpmiddel dat in zijn databank
gebruik maakt van padnamen als sleutel, omdat het zorgt voor problemen met
aliassen in het bestandssysteem en knoeit met het overzicht van het
bestandssysteem dat dpkg in zijn databank opgeslagen heeft. Met
bouwsystemen die in de door hen gemaakte objecten gebruik maken van vaste
padnamen naar specifieke uitvoerbare bestanden of bibliotheken, kan dit
ook leiden tot pakketten die niet compatibel zijn met bestandssystemen
zonder samengevoegde /usr-map.
- usr-local-has-configs
- Het systeem bevat configuratiebestanden onder /usr/local/etc.
- usr-local-has-includes
- Het systeem bevat kopbestanden onder /usr/local/include.
- usr-local-has-programs
- Op het systeem staan programma's onder /usr/local/bin of
/usr/local/sbin.
- usr-local-has-libraries
- Het systeem bevat statische of gedeelde bibliotheken onder
/usr/local/lib.
- can-execute-cross-built-programs
- Het systeem kan voor andere platformen gebouwde programma's uitvoeren,
hetzij rechtstreeks, hetzij via een emulatielaag.
Sinds dpkg 1.21.10.
- Installed-Build-Depends:
(verplicht)
- pakketlijst
- De lijst van geïnstalleerde en geconfigureerde pakketten die van
invloed kunnen zijn op het proces van het bouwen van het pakket.
De lijst bestaat uit de naam van elk pakket, eventueel een
architectuurkwalificatie voor andere architecturen, met een exacte
versierestrictie, gescheiden door komma's.
De lijst bevat alle essentiële pakketten, pakketten
vermeld in velden Build-Depends, Build-Depends-Arch,
Build-Depends-Indep van de broncode, eventuele ingebouwde
leveranciersspecifieke vereisten en al hun recursieve vereisten. Op
Debian en zijn derivaten is de ingebouwde vereiste
build-essential.
Waar het vereisten betreft die afkomstig zijn uit de
controlevelden van de broncode, worden ook alle vereistenalternatieven
in aanmerking genomen en alle pakketten die voorzien in de virtuele
pakketten die vereist worden.
- Environment:
- variabelelijst
- De lijst met omgevingsvariabelen waarvan bekend is dat zij het proces van
het bouwen van het pakket beïnvloeden, waarbij elke variabele
gevolgd wordt door een gelijkheidsteken (‘=’) en de waarde
van de variabele tussen aanhalingstekens, wat dubbele aanhalingstekens
(‘"’) moeten zijn, en waarbij de backslashes worden
gemaskeerd (‘\\’).
deb822(5), deb-changes(5), deb-version(7),
dpkg-genbuildinfo(1).