From b86570f63e533abcbcb97c2572e0e5732a96307b Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 11:40:31 +0200 Subject: Adding upstream version 1.20.13. Signed-off-by: Daniel Baumann --- man/nl/dpkg-buildflags.pod | 798 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 798 insertions(+) create mode 100644 man/nl/dpkg-buildflags.pod (limited to 'man/nl/dpkg-buildflags.pod') diff --git a/man/nl/dpkg-buildflags.pod b/man/nl/dpkg-buildflags.pod new file mode 100644 index 0000000..4d1e1ed --- /dev/null +++ b/man/nl/dpkg-buildflags.pod @@ -0,0 +1,798 @@ + + ***************************************************** + * GENERATED FILE, DO NOT EDIT * + * THIS IS NO SOURCE FILE, BUT RESULT OF COMPILATION * + ***************************************************** + +This file was generated by po4a(7). Do not store it (in VCS, for example), +but store the PO file used as source file by po4a-translate. + +In fact, consider this as a binary, and the PO file as a regular .c file: +If the PO get lost, keeping this translation up-to-date will be harder. + +=encoding UTF-8 + +=head1 NAAM + +dpkg-buildflags - geeft de bij pakketbouw te gebruiken bouwvlaggen terug + +=head1 OVERZICHT + +B [I...] [I] + +=head1 BESCHRIJVING + +B is gereedschap om de compilatievlaggen op te halen die +tijdens het bouwen van Debian pakketten gebruikt moeten worden. + +De standaardvlaggen worden gedefinieerd door de leverancier, maar ze kunnen +op verschillende manieren uitgebreid/vervangen worden: + +=over + +=item 1. + +voor het hele systeem met B<%PKGCONFDIR%/buildflags.conf>; + +=item 2. + +voor de huidige gebruiker met B<$XDG_CONFIG_HOME/dpkg/buildflags.conf>, +waarbij B<$XDG_CONFIG_HOME> als standaardwaarde B<$HOME/.config> heeft; + +=item 3. + +tijdelijk door de gebruiker met omgevingsvariabelen (zie het onderdeel +B); + +=item 4. + +dynamisch door de pakketonderhouder met omgevingsvariabelen die ingesteld +worden via B (zie het onderdeel B). + +=back + +De configuratiebestanden kunnen vier types opdrachten bevatten: + +=over + +=item B I + +De vlag met I als naam overschrijven om ze de waarde I te +geven. + +=item B I + +Van de vlag met I als naam alle bouwvlaggen verwijderen die in +I opgesomd worden. + +=item B I + +De vlag met I als naam uitbreiden door er de opties aan toe te voegen +die in I opgegeven worden. Er wordt een spatie geplaatst voor de +waarde die toegevoegd wordt, indien de huidige waarde van de vlag niet leeg +is. + +=item B I + +De vlag met I als naam uitbreiden door er vooraan de opties aan toe te +voegen die in I opgegeven worden. Er wordt een spatie geplaatst +achter de waarde die toegevoegd wordt, indien de huidige waarde van de vlag +niet leeg is. + +=back + +De configuratiebestanden kunnen commentaar bevatten op regels die beginnen +met een hekje (#). Ook lege regels worden genegeerd. + +=head1 COMMANDO'S + +=over + +=item B<--dump> + +Op standaarduitvoer alle compilatievlaggen en hun waarden tonen. Dit geeft +per regel één vlag en de waarde ervan weer met daartussenin een +gelijkheidsteken (“I=I”). Dit is de standaardactie. + +=item B<--list> + +Een lijst weergeven van vlaggen die door de huidige leverancier ondersteund +worden (één per regel). Zie het onderdeel B (ondersteunde +vlaggen) voor meer informatie daarover. + +=item B<--status> + +Eventuele informatie laten zien welke nuttig kan zijn om het gedrag te +verklaren van B (sinds dpkg 1.16.5): relevante +omgevingsvariabelen, huidige leverancier, toestand van alle +functievlaggen. Ook de resulterende compileervlaggen met hun oorsprong +weergeven. + +Het is de bedoeling dat dit uitgevoerd wordt vanuit B, zodat +de bouwlog een duidelijk spoor van de gebruikte vlaggen kan bijhouden. Dit +kan nuttig zijn om ermee verband houdende problemen te diagnosticeren. + +=item B<--export=>I + +Op standaarduitvoer commando's weergeven die gebruikt kunnen worden om alle +compilatievlaggen te exporteren ten behoeve van een specifiek +gereedschap. Indien de waarde I niet opgegeven werd, wordt B +verondersteld. Enkel compilatievlaggen die met een hoofdletter beginnen +worden opgenomen. Van de andere wordt aangenomen dat ze niet bruikbaar zijn +voor de omgeving. Ondersteunde indelingen: + +=over + +=item B + +Shell-opdrachten om alle compilatievlaggen in de omgeving in te stellen en +te exporteren. Er worden aanhalingstekens geplaatst rond de vlagwaarden +waardoor de uitvoer gereed is om door een shell geëvalueerd te worden. + +=item B + +Argumenten om door te geven aan de commandoregel van een bouwprogramma om al +de compilatievlaggen te gebruiken (sinds dpkg 1.17.0). De vlagwaarden worden +volgens de shell-syntaxis tussen haakjes geplaatst. + +=item B + +Dit is een verouderde alias voor B. + +=item B + +Make-opdrachten om alle compilatievlaggen in de omgeving in te stellen en te +exporteren. De uitvoer kan naar een Makefile-fragment geschreven worden en +geëvalueerd met behulp van een B-opdracht. + +=back + +=item B<--get> I + +De waarde van de vlag op de standaarduitvoer weergeven. Sluit af met 0 bij +een gekende vlag en sluit anders af met 1. + +=item B<--origin> I + +De origine weergeven van de waarde die teruggegeven wordt door +B<--get>. Sluit af met 0 bij een gekende vlag en sluit anders af met 1. De +origine kan één van de volgende waarden hebben: + +=over + +=item B + +de originele vlag die door de leverancier ingesteld werd, wordt +teruggegeven; + +=item B + +de vlag werd ingesteld/gewijzigd door een systeemconfiguratie; + +=item B + +de vlag werd ingesteld/gewijzigd door een gebruikersspecifieke configuratie; + +=item B + +de vlag werd ingesteld/gewijzigd door een omgevingsspecifieke configuratie. + +=back + +=item B<--query> + +Alle informatie tonen welke nuttig kan zijn om het gedrag van het programma +te verklaren: huidige leverancier, relevante omgevingsvariabelen, +functiegebieden, toestand van alle functievlaggen en de compileervlaggen met +hun oorsprong (sinds dpkg 1.19.0). + +Bijvoorbeeld: + + Vendor: Debian + Environment: + DEB_CFLAGS_SET=-O0 -Wall + + Area: qa + Features: + bug=no + canary=no + + Area: reproducible + Features: + timeless=no + + Flag: CFLAGS + Value: -O0 -Wall + Origin: env + + Flag: CPPFLAGS + Value: -D_FORTIFY_SOURCE=2 + Origin: vendor + +=item B<--query-features> I + +De functies weergeven die voor een opgegeven gebied geactiveerd zijn (sinds +dpkg 1.16.2). Momenteel worden door Debian en zijn derivaten enkel de +gebieden B, B, B, B en B +herkend. Zie het onderdeel B voor meer details. Sluit af +met 0 als het gebied gekend is, anders met 1. + +De uitvoer is in RFC822-indeling met één sectie per functie. Bijvoorbeeld: + + Feature: pie + Enabled: yes + + Feature: stackprotector + Enabled: yes + +=item B<--help> + +Info tonen over het gebruik en afsluiten. + +=item B<--version> + +De versie tonen en afsluiten. + +=back + +=head1 ONDERSTEUNDE VLAGGEN + +=over + +=item B + +Opties voor de C-compiler. De door de leverancier ingestelde standaardwaarde +bestaat uit B<-g> en het standaardniveau van optimalisatie (gewoonlijk +B<-O2>, of B<-O0> indien de omgevingsvariabele B I +aangeeft). + +=item B + +Opties voor de C-preprocessor. Standaardwaarde: leeg. + +=item B + +Opties voor de C++ compiler. Hetzelfde als B. + +=item B + +Opties voor de Objective C compiler. Hetzelfde als B. + +=item B + +Opties voor de Objective C++ compiler. Hetzelfde als B. + +=item B + +Opties voor de GNU Java compiler (gcj). Een subset van B. + +=item B + +Opties voor de D-compiler (ldc of gdc). Sinds dpkg 1.20.6. + +=item B + +Opties voor de Fortran 77 compiler. Een subset van B. + +=item B + +Opties voor de Fortran 9x compiler. Hetzelfde als B. + +=item B + +Opties die aan de compiler doorgegeven worden bij het linken van uitvoerbare +programma's en gedeelde objecten (indien de linker rechtstreeks aangeroepen +wordt, dan moeten B<-Wl> en B<,> van die opties verwijderd +worden). Standaardwaarde: leeg. + +=back + +In de toekomst kunnen nog andere vlaggen toegevoegd worden als daar behoefte +aan ontstaat (bijvoorbeeld om andere talen te ondersteunen). + +=head1 FUNCTIEGEBIEDEN + +Elke gebiedsfunctie kan in de gebiedswaarde van de omgevingsvariabelen +B en B ingeschakeld en +uitgeschakeld worden met de schakelaars ‘B<+>’ en ‘B<->’. Om bijvoorbeeld de +B-functionaliteit “pie” te activeren en de functionaliteit +“fortify” uit te schakelen, kunt u in B het volgende doen: + + export DEB_BUILD_MAINT_OPTIONS=hardening=+pie,-fortify + +De bijzondere functie B (geldig in elk gebied) kan gebruikt worden om +gelijktijdig alle gebiedsfunctionaliteit te activeren of uit te +schakelen. Alles uitschakelen in het gebied B en enkel “format” +en “fortify” activeren kunt u dus doen met: + + export DEB_BUILD_MAINT_OPTIONS=hardening=-all,+format,+fortify + +=head2 future + +Er kunnen verschillende compilatieopties (die hierna beschreven worden) +gebruikt worden om functies te activeren die standaard geactiveerd zouden +moeten zijn, maar dat niet zijn om redenen van terugwaartse compatibiliteit. + +=over + +=item B + +Deze instelling (standaard uitgezet) activeert ondersteuning voor grote +bestanden (Large File Support) op 32-bits architecturen waarvan de ABI +standaard geen LFS-ondersteuning biedt, door B<-D_LARGEFILE_SOURCE +-D_FILE_OFFSET_BITS=64> toe te voegen aan B. + +=back + +=head2 qa (kwaliteitsbevordering) + +Er kunnen verschillende compilatieopties (die hierna beschreven worden) +gebruikt worden om problemen in de broncode of het bouwsysteem te helpen +detecteren. + +=over + +=item B + +Deze instelling (die standaard uitgeschakeld is) voegt alle +waarschuwingsopties toe die op een betrouwbare wijze problematische broncode +opsporen. De waarschuwingen zijn fataal. De enige vlaggen die momenteel +ondersteund worden zijn B en B waarbij de vlaggen +ingesteld staan op B<-Werror=array-bounds>, B<-Werror=clobbered>, +B<-Werror=implicit-function-declaration> en +B<-Werror=volatile-register-var>. + +=item B + +Deze instelling (die standaard uitgeschakeld is) voegt loze +kanarievogelopties toe aan de bouwvlaggen, zodat in de bouwlogs nagekeken +kan worden hoe de bouwvlaggen doorgegeven worden en zodat het eventueel +ontbreken van normale bouwvlaginstellingen ontdekt kan worden. Momenteel +zijn de enige ondersteunde vlaggen B, B, B, +B en B, waarbij die vlaggen als +B<-D__DEB_CANARY_>I_IB<__> ingesteld worden, en +B dat ingesteld wordt op B<-Wl,-z,deb-canary->I. + +=back + +=head2 sanitize (saneren) + +Er kunnen verschillende compilatie-opties (die hierna beschreven worden) +gebruikt worden om te helpen bij het gezond houden van een resulterend +binair pakket op het vlak van geheugenvervuiling, geheugenlekkage, +geheugengebruik na vrijgave, dataraces bij threads en bugs door +ongedefinieerd gedrag. B: deze opties zouden B gebruikt mogen +worden voor een bouw voor productiedoeleinden, aangezien ze een verminderde +betrouwbaarheid bieden inzake codeconformiteit en de beveiliging en zelfs de +functionaliteit reduceren. + +=over + +=item B
+ +Deze instelling (standaard uitgeschakeld) voegt B<-fsanitize=address> toe +aan B en B<-fsanitize=address -fno-omit-frame-pointer> aan +B en aan B. + +=item B + +Deze instelling (standaard uitgeschakeld) voegt B<-fsanitize=thread> toe aan +B, B en B. + +=item B + +Deze instelling (standaard uitgeschakeld) voegt B<-fsanitize=leak> toe aan +B. Ze wordt automatisch uitgeschakeld als ofwel de +B
-functionaliteit of de B-functionaliteit geactiveerd is, +aangezien die dit impliceren. + +=item B + +Deze instelling (standaard uitgeschakeld) voegt B<-fsanitize=undefined> toe +aan B, B en B. + +=back + +=head2 hardening (kwetsbaarheidsreductie) + +Er kunnen verschillende compilatie-opties (die hierna beschreven worden) +gebruikt worden om te helpen bij het versterken van een resulterend binair +pakket tegen geheugenvervuilingsaanvallen of om bijkomende +waarschuwingsberichten te geven tijdens het compileren. Behalve wanneer +hierna anders aangegeven is, worden deze opties standaard geactiveerd voor +architecturen die ze ondersteunen. + +=over + +=item B + +Deze instelling (standaard geactiveerd) voegt B<-Wformat +-Werror=format-security> toe aan B, B, B en +B. Dit zal waarschuwingen geven bij verkeerd gebruik van +indelingstekenreeksen en zal mislukken als indelingsfuncties gebruikt worden +op een manier die mogelijke veiligheidsproblemen tot gevolg kunnen +hebben. Momenteel geeft dit een waarschuwing als een B-functie of +een B-functie aangeroepen wordt met een indelingstekenreeks die geen +letterlijke tekenreeks is en er ook geen indelingsargumenten opgegeven +werden, zoals bij B in plaats van B. Dit +kan een veiligheidslek zijn als de indelingstekenreeks afkomstig was van +onbetrouwbare invoer en ‘%n’ bevat. + +=item B + +Deze instelling (standaard geactiveerd) voegt B<-D_FORTIFY_SOURCE=2> toe aan +B. Tijdens het produceren van de code heeft de compiler een +heleboel informatie over buffergroottes (waar mogelijk), en tracht een +functieaanroep met een onveilige ongelimiteerde buffergrootte te vervangen +door een functieaanroep met een gelimiteerde buffergrootte. Dit is in het +bijzonder nuttig bij oude en slecht geschreven code. Daarnaast wordt het +gebruik in het voor schrijven toegankelijk geheugen van +indelingstekenreeksen die ‘%n’ bevatten, geblokkeerd. Indien een toepassing +op een dergelijke indelingstekenreeks steunt, zal het er een alternatief +voor moeten gebruiken. + +Merk op dat de code ook met B<-O1> of hoger gecompileerd moet worden opdat +deze optie effect zou hebben. Indien de omgevingsvariabele +B I bevat, dan wordt ondersteuning voor B +uitgeschakeld. Dit is te wijten aan nieuwe waarschuwingen die gegeven worden +door glibc 2.16 en hoger. + +=item B + +Deze instelling (standaard geactiveerd als stackprotectorstrong niet +gebruikt wordt) voegt B<-fstack-protector --param=ssp-buffer-size=4> toe aan +B, B, B, B, B, B +en B. Dit voegt beveiligingscontroles tegen het overschrijven van +de stack toe. Dit maakt dat bij veel mogelijke code-injectieaanvallen +afgebroken wordt. In het beste geval wordt op die manier een kwetsbaarheid +voor code-injectie omgebogen tot een denial-of-service (dienst niet +beschikbaar) of een fictief probleem (afhankelijk van de toepassing). + +Deze functionaliteit vereist het linken van de code met glibc (of een andere +aanbieder van B<__stack_chk_fail>) en moet dus uitgeschakeld worden als er +gebouwd wordt met B<-nostdlib> of B<-ffreestanding> of iets gelijkaardigs. + +=item B + +Deze instelling (standaard geactiveerd) voegt B<-fstack-protector-strong> +toe aan B, B, B, B, B, +B en B. Dit is een sterkere variant van B, +maar zonder noemenswaardig prestatieverlies. + +Het uitzetten van B schakelt ook deze functionaliteit uit. + +Deze functionaliteit stelt dezelfde vereisten als B en heeft +daarenboven ook gcc 4.9 of een recentere versie nodig. + +=item B + +Deze instelling (standaard geactiveerd) voegt B<-Wl,-z,relro> toe aan +B. Tijdens het laden van het programma moet de linker in +verschillende ELF-geheugensecties schrijven. Dit zet voor de programmalader +een vlag zodat die deze secties alleen-lezen maakt alvorens de controle over +te dragen aan het programma. Het meest noemenswaardige effect is dat dit +aanvallen door het overschrijven van de Global Offset Table (GOT) +voorkomt. Indien deze optie uitgeschakeld wordt, wordt ook B +uitgezet. + +=item B + +Deze instelling (standaard uitgeschakeld) voegt B<-Wl,-z,now> toe aan +B. Tijdens het laden van het programma worden alle dynamische +symbolen omgezet, waardoor de volledige PLT (Procedure Linkage Table) als +alleen lezen gemarkeerd kan worden (ten gevolge van B hiervoor). Deze +optie kan niet aangezet worden als B niet geactiveerd is. + +=item B + +Deze instelling (zonder standaardinstelling sinds dpkg 1.18.23, aangezien +het nu standaard geactiveerd wordt door gcc op de Debian-architecturen +amd64, arm64, armel, armhf, hurd-i386, i386, kfreebsd-amd64, kfreebsd-i386, +mips, mipsel, mips64el, powerpc, ppc64, ppc64el, riscv64, s390x, sparc en +sparc64) voegt zo nodig de vereiste opties toe om PIE te activeren of te +deactiveren via gcc specs-bestanden, afhankelijk van het feit of gcc op die +architectuur de vlaggen zelf injecteert of niet. Indien de instelling +geactiveerd is en gcc de vlaggen injecteert, voegt ze niets toe. Indien de +instelling geactiveerd is en gcc de vlaggen niet injecteert, voegt ze +B<-fPIE> toe (via I<%PKGDATADIR%/pie-compiler.specs>) aan B, +B, B, B, B, B en +B, en B<-fPIE -pie> (via I<%PKGDATADIR%/pie-link.specs>) aan +B. Indien de instelling gedeactiveerd is en gcc de vlaggen +injecteert, voegt ze B<-fno-PIE> toe (via +I<%PKGDATADIR%/no-pie-compile.specs>) aan B, B, +B, B, B, B en B, en +B<-fno-PIE -no-pie> (via I<%PKGDATADIR%/no-pie-link.specs>) aan B. + +Position Independent Executable (PIE - positie-onafhankelijke programma's) +zijn nodig om voordeel te halen uit Address Space Layout Randomization (ASLR +- de adresruimte rangschikken in toevallige volgorde), hetgeen door sommige +kernelversies ondersteund wordt. Hoewel ASLR reeds voor datagebieden in de +stack en de heap opgelegd kan worden (brk and mmap), moeten de codegebieden +als positieonafhankelijk gecompileerd worden. Gedeelde bibliotheken doen dit +reeds (B<-fPIC>), waardoor zij automatisch ASLR krijgen, maar binaire +.text-gebieden moeten als PIE gebouwd worden om ASLR te krijgen. Als dit +gebeurt, worden aanvallen van het type ROP (Return Oriented Programming - op +terugkeerwaarde georiënteerd programmeren) veel moeilijker aangezien er geen +statische locaties meer zijn die bij een aanval van geheugenvervuiling als +springplank gebruikt kunnen worden. + +PIE is niet compatibel met B<-fPIC>, dus over het algemeen moet men +voorzichtig zijn bij het bouwen van gedeelde objecten. Maar aangezien de +PIE-vlaggen die meegegeven worden geïnjecteerd worden via specs-bestanden +van gcc, zou het altijd veilig moeten zijn om ze onvoorwaardelijk in te +stellen ongeacht het objecttype dat gecompileerd of gelinkt wordt. + +Statische bibliotheken kunnen door programma's of door andere gedeelde +bibliotheken gebruikt worden. Afhankelijk van de gebruikte vlaggen bij het +compileren van alle objecten in een statische bibliotheek, zullen deze +bibliotheken door verschillende reeksen objecten gebruikt kunnen worden: + +=over + +=item geen + +Kan niet gelinkt worden aan een PIE-programma, noch aan een gedeelde +bibliotheek. + +=item B<-fPIE> + +Kan gelinkt worden aan elk programma, maar niet aan een gedeelde bibliotheek +(aanbevolen). + +=item B<-fPIC> + +Kan gelinkt worden aan elk programma en elke gedeelde bibliotheek. + +=back + +Indien er een behoefte bestaat om deze vlaggen manueel in te stellen en de +gcc specs-injectie te overbruggen, moet u rekening houden met verschillende +zaken. Het onvoorwaardelijk en expliciet doorgeven van B<-fPIE>, B<-fpie> of +B<-pie> aan een bouwsysteem dat libtool gebruikt, is veilig aangezien deze +vlaggen weggelaten worden bij het bouwen van gedeelde bibliotheken. Bij +projecten waarin daarentegen zowel programma's als gedeelde bibliotheken +gebouwd worden, moet u ervoor zorgen dat bij het bouwen van de gedeelde +bibliotheken B<-fPIC> steeds als laatste doorgegeven wordt (waardoor het een +eventuele voorafgaande B<-PIE> opheft) aan compilatievlaggen zoals B +en dat B<-shared> als laatste doorgegeven wordt (waardoor het een eventuele +voorafgaande B<-pie> opheft) aan linkvlaggen zoals B. B +dit is niet nodig met het standaard specs-mechanisme van gcc. + +Aangezien PIE via een algemeen register geïmplementeerd wordt, kunnen +bovendien bij sommige architecturen (maar niet meer bij i386 sinds de +optimalisaties die in gcc E= 5 toegepast zijn) prestatieverminderingen +tot 15% optreden bij zeer zware belasting met tekstsegmenten van +toepassingen. De meeste belastingen hebben minder dan 1% +prestatievermindering tot gevolg. Architecturen met meer algemene registers +(bijv. amd64) vertonen niet zo een hoge terugval in de ergste gevallen. + +=back + +=head2 reproducible (reproduceerbaar) + +De hierna behandelde compilatieopties kunnen gebruikt worden om de +bouwreproduceerbaarheid te helpen verbeteren of om bijkomende +waarschuwingsberichten af te leveren tijdens het compileren. Behalve wanneer +het hierna aangegeven wordt, worden deze opties standaard geactiveerd voor +architecturen die ze ondersteunen. + +=over + +=item B + +Deze instelling (standaard geactiveerd) voegt B<-Wdate-time> toe bij +B. Dit leidt tot waarschuwingen als de macros B<__TIME__>, +B<__DATE__> en B<__TIMESTAMP__> gebruikt worden. + +=item B + +Deze instelling (standaard geactiveerd) voegt +B<-ffile-prefix-map=>IB<=.> toe aan B, B, +B, B, B, B en B, waarbij +B ingesteld wordt op de basismap van het pakket dat gebouwd +wordt. Dit heeft als effect dat het bouwpad verwijderd wordt van elk +gegenereerd bestand. + +Indien zowel B als B ingesteld zijn, heeft deze +laatste optie voorrang, omdat het een superset is van de eerste. + +=item B + +Deze instelling (standaard geactiveerd) voegt +B<-fdebug-prefix-map=>IB<=.> toe aan B, B, +B, B, B, B en B, waarbij +B ingesteld wordt op de basismap van het pakket dat gebouwd +wordt. Dit heeft als effect dat het bouwpad verwijderd wordt van eventueel +gegenereerde debug-symbolen. + +=back + +=head1 OMGEVING + +Er zijn twee sets omgevingsvariabelen die dezelfde operaties uitvoeren. De +eerste (DEB_I_I) zou nooit gebruikt mogen worden binnen +B. Die is bedoeld voor eventuele gebruikers die het bronpakket +opnieuw willen bouwen met andere bouwvlaggen. De tweede set +(DEB_I_MAINT_I) zou door pakketonderhouders enkel in +B gebruikt moeten worden om de resulterende bouwvlaggen aan te +passen. + +=over + +=item BIB<_SET> + +=item BIB<_MAINT_SET> + +Deze variabele kan gebruikt worden om de teruggegeven waarde voor de +opgegeven vlag I af te dwingen. + +=item BIB<_STRIP> + +=item BIB<_MAINT_STRIP> + +Deze variabele kan gebruikt worden om in een lijst met witruimte als +scheidingsteken opties op te geven die weggehaald zullen worden uit de set +vlaggen die teruggegeven wordt voor de opgegeven I. + +=item BIB<_APPEND> + +=item BIB<_MAINT_APPEND> + +Deze variabele kan gebruikt worden om bijkomende opties toe te voegen aan de +waarde die teruggegeven wordt voor de opgegeven I. + +=item BIB<_PREPEND> + +=item BIB<_MAINT_PREPEND> + +Deze variabele kan gebruikt worden om vooraan bijkomende opties toe te +voegen aan de waarde die teruggegeven wordt voor de opgegeven I. + +=item B + +=item B + +Deze variabelen kunnen door een gebruiker of een onderhouder gebruikt worden +om diverse gebiedsfuncties die bouwvlaggen beïnvloeden, te activeren of uit +te zetten. De variabele B vervangt eventuele +instellingen in de functionaliteitsgebieden B. Zie het +onderdeel B voor de details. + +=item B + +Deze instelling definieert de huidige leverancier. Indien zij niet ingesteld +is, zal gezocht worden naar de huidige leverancier door te gaan lezen in +B<%PKGCONFDIR%/origins/default>. + +=item B + +Deze variabele stelt in welk bouwpad (sinds dpkg 1.18.8) gebruikt moet +worden bij functionaliteit zoals B waardoor die gesuperviseerd +kan worden door het aanroepende programma. Momenteel is deze variabele +Debian- en derivaat-specifiek. + +=item B + +Stelt de kleurmodus in (sinds dpkg 1.18.5). Waarden die momenteel gebruikt +mogen worden zijn: B (standaard), B en B. + +=item B + +Indien dit ingesteld is, zal het gebruikt worden om te beslissen over het +activeren van moedertaalondersteuning, ook gekend als +internationaliseringsondersteuning (of i18n) (sinds dpkg 1.19.0). Geldige +waarden zijn: B<0> and B<1> (standaard). + +=back + +=head1 BESTANDEN + +=head2 Configuratiebestanden + +=over + +=item B<%PKGCONFDIR%/buildflags.conf> + +Configuratiebestand dat voor het hele systeem geldt. + +=item B<$XDG_CONFIG_HOME/dpkg/buildflags.conf> of + +=item B<$HOME/.config/dpkg/buildflags.conf> + +Configuratiebestand dat gebruikersafhankelijk is. + +=back + +=head2 Ondersteuning bij het maken van een pakket + +=over + +=item B<%PKGDATADIR%/buildflags.mk> + +Makefile-fragment dat alle vlaggen die door B ondersteund +worden, laadt in variabelen (en eventueel exporteert) (sinds dpkg 1.16.1). + +=back + +=head1 VOORBEELDEN + +Om in een Makefile bouwvlaggen door te geven aan een bouwcommando: + +=over + + $(MAKE) $(shell dpkg-buildflags --export=cmdline) + + ./configure $(shell dpkg-buildflags --export=cmdline) + +=back + +Om in een shell-script of shell-fragment bouwvlaggen in te stellen, kan +B gebruikt worden om de uitvoer te interpreteren en de vlaggen in de +omgeving te exporteren: + +=over + + eval "$(dpkg-buildflags --export=sh)" && make + +=back + +of om de positieparameters in te stellen die aan een commando doorgegeven +moeten worden: + +=over + + eval "set -- $(dpkg-buildflags --export=cmdline)" + for dir in a b c; do (cd $dir && ./configure "$@" && make); done + +=back + +=head2 Het gebruik in debian/rules + +Om de benodigde bouwvlaggen te bekomen die aan het bouwsysteem doorgegeven +moeten worden, moet u vanuit het bestand B B +aanroepen of B invoegen. Merk op dat oudere versies van +B (voor dpkg 1.16.1) deze vlaggen automatisch +exporteerden. U zou hierop echter niet mogen betrouwen, aangezien dit het +handmatig aanroepen van B defect maakt. + +Voor pakketten met een autoconf-achtig bouwsysteem, kunt u de relevante +opties rechtstreeks doorgeven aan configure of B(1), zoals hiervoor +geïllustreerd werd. + +Voor andere bouwsystemen, of indien u een meer fijnmazige controle nodig +heeft over welke vlaggen waar doorgegeven worden, kunt u B<--get> +gebruiken. Of in de plaats daarvan kunt u B invoegen, dat +zorgt voor het aanroepen van B en het opslaan van de +bouwvlaggen in variabelen voor make. + +Indien u alle bouwvlaggen naar de omgeving wenst te exporteren (waar ze door +uw bouwsysteem opgepikt kunnen worden): + +=over + + DPKG_EXPORT_BUILDFLAGS = 1 + include %PKGDATADIR%/buildflags.mk + +=back + +Als u bijkomende controle wenst over wat geëxporteerd wordt, kunt u de +variabelen handmatig exporteren (aangezien er standaard geen enkele +geëxporteerd wordt): + +=over + + include %PKGDATADIR%/buildflags.mk + export CPPFLAGS CFLAGS LDFLAGS + +=back + +En u kunt de vlaggen natuurlijk ook handmatig doorgeven aan commando's: + +=over + + include %PKGDATADIR%/buildflags.mk + build-arch: + $(CC) -o hello hello.c $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) + +=back + -- cgit v1.2.3