dpkg-buildpackage(1)

NAAM
dpkg-buildpackage - binaire of broncodepakketten bouwen uit de broncode

OVERZICHT
dpkg-buildpackage [optie...]

BESCHRIJVING
dpkg-buildpackage is een programma dat het proces van het bouwen van een Debian pakket automatiseert. Het bestaat uit de volgende stappen:

1.  Het bereidt de bouwomgeving voor door verschillende omgevingsvariabelen in te stellen(zie OMGEVING), voert de uitbreiding (hook) init uit en roept dpkg-source --before-build aan (tenzij -T of --target gebruikt werd).

2.  Het controleert of voldaan is aan de bouw-vereisten en de bouw-tegenstrijdigheden (tenzij -d opgegeven werd).

3.  Indien met de optie -T of --target een specifiek doel geselecteerd werd, roept het dat doel aan en stopt dan. Anders voert het de uitbreiding (hook) preclean uit en roept het fakeroot debian/rules clean aan om de bouwboom zuiver te maken (tenzij -nc opgegeven werd).

4.  It runs the source hook and calls dpkg-source -b to generate the source package (if a source build has been requested with --build or equivalent options).

5.  It runs the build hook and calls debian/rules build-target, then runs the binary hook followed by fakeroot debian/rules binary-target (unless a source-only build has been requested with --build=source or equivalent options). Note that build-target and binary-target are either build and binary (default case, or if an any and all build has been requested with --build or equivalent options), or build-arch and binary-arch (if an any and not all build has been requested with --build or equivalent options), or build-indep and binary-indep (if an all and not any build has been requested with --build or equivalent options).

6.  Het voert de uitbreiding (hook) changes uit en roept dpkg-genchanges aan om een bestand .changes aan te maken. Veel opties bij dpkg-buildpackage worden aan dpkg-genchanges overgemaakt.

7.  Het voert de uitbreiding (hook) postclean uit en als -tc werd opgegeven zal het nogmaals fakeroot debian/rules clean aanroepen.

8.  Het roept dpkg-source --after-build aan.

9.  Het voert de uitbreiding (hook) check uit en roept een pakketcontroleprogramma aan voor nazicht van het bestand .changes (indien er in DEB_CHECK_COMMAND of met --check-command een commando opgegeven werd).

10. Het voert de uitbreiding (hook) sign uit en roept gpg2 of gpg aan voor het ondertekenen van het bestand .dsc (als dat bestaat) (tenzij -us opgegeven werd of bij een bouw van het type UNRELEASED) en van het bestand .changes (tenzij -uc opgegeven werd of bij een bouw van het type UNRELEASED).

11. Het voert de uitbreiding (hook) done uit.

OPTIES

--build=type
    Specifies the build type from a comma-separated list of components (since dpkg 1.18.5). Passed to dpkg-genchanges. The allowed values are:

    source
        Builds the source package. Note: when using this value standalone and if what you want is simply to (re-)build the source package, using dpkg-source is always better as it does not require any build dependencies to be installed to be able to call the clean target.

    any Builds the architecture specific binary packages.

    all Builds the architecture independent binary packages.

    binary
        Builds the architecture specific and independent binary packages. This is an alias for any,all.

    full
        Builds everything. This is an alias for source,any,all, and the same as the default case when no build option is specified.

-g  Equivalent to --build=source,all (since dpkg 1.17.11).

-G  Equivalent to --build=source,any (since dpkg 1.17.11).

-b  Equivalent to --build=binary or --build=any,all.

-B  Equivalent to --build=any.

-A  Equivalent to --build=all.

-S  Equivalent to --build=source.

-F  Equivalent to --build=full, --build=source,binary or --build=source,any,all since dpkg 1.15.8).

--target=doel
--target doel
-Tdoel
    Calls debian/rules target after having setup the build environment and stops the package build process here (since dpkg 1.15.0). If --as-root is also given, then the command is executed as root (see -r). Note that known targets that are required to be run as root do not need this option (i.e. the clean, binary, binary-arch and binary-indep targets).

--as-root
    Enkel zinvol in samenhang met --target (sinds dpkg 1.15.0). Vereist dat het doel met systeembeheerdersrechten uitgevoerd wordt.

-si
-sa
-sd
-vversie
-Cbeschrijving-van-de-wijzigingen
-madres-van-de-onderhouder
-eadres-van-de-onderhouder
    Wordt ongewijzigd doorgegeven aan dpkg-genchanges. Zie de man-pagina ervan.

-a, --host-arch architectuur
    Geef de Debian-architectuur op waarvoor we bouwen (lange optie sinds dpkg 1.17.17). De architectuur van de machine waarop we bouwen, wordt automatisch vastgesteld en ze wordt ook als standaard genomen voor de hostmachine.

-t, --host-type gnu-systeemtype
    Geef het GNU-systeemtype op waarvoor we bouwen (lange optie sinds dpkg 1.17.17). Het kan gebruikt worden in de plaats van --host-arch of als een aanvulling om het standaard GNU-systeemtype voor de Debian-architectuur van de host aan te passen.

--target-arch architectuur
    Geef de Debian-architectuur op waarvoor de gebouwde programma's zullen bouwen (sinds dpkg 1.17.17). De standaardwaarde is de hostmachine.

--target-type gnu-systeemtype
    Geef het GNU-systeemtype op waarvoor de gebouwde programma's zullen bouwen (sinds dpkg 1.17.17). Het kan gebruikt worden in de plaats van --target-arch of als een aanvulling om het standaard GNU-systeemtype voor de Debian doelarchitectuur aan te passen.

-Pprofiel[,...]
    Geef het/de profiel(en) die we bouwen op in een lijst met een komma als scheidingsteken (sinds dpkg 1.17.2). Het standaardgedrag is om niet voor een specifiek profiel te bouwen. Stelt ze ook in (als een lijst met een spatie als scheidingsteken) als de omgevingsvariabele DEB_BUILD_PROFILES, hetgeen bijvoorbeeld toelaat aan debian/rules-bestanden om gebruik te maken van deze informatie bij voorwaardelijke bouwoperaties.

-j[taken|auto]
    Aantal taken dat gelijktijdig mag uitgevoerd worden, waarbij het aantal taken overeenkomt met het aantal beschikbare processoren als auto opgegeven werd (sinds dpkg 1.17.10), of onbeperkt is als taken niet opgegeven werd. Dit is het equivalent van de gelijknamige optie voor make(1) (sinds dpkg 1.14.7). Het voegt zichzelf toe aan de omgevingsvariabele MAKEFLAGS, waardoor elke erop volgende aanroep van make de optie overerft en parallelle taakuitvoering dus opgelegd wordt bij het maken van pakketten (en mogelijks ook oplegt aan het bouwsysteem van de toeleveraar indien dat gebruik maakt van make), ongeacht het feit of er ondersteuning is voor het in parallel bouwen, hetgeen tot mislukkingen bij het bouwen kan leiden. Het voegt ook parallel=taken of parallel toe aan de omgevingsvariabele DEB_BUILD_OPTIONS, hetgeen debian/rules-bestanden in staat stelt van deze informatie gebruik te maken voor eigen doeleinden. De waarde -j heeft voorrang op de optie parallel=taken of parallel in de omgevingsvariabele DEB_BUILD_OPTIONS. Merk op dat de waarde auto zal vervangen worden door het effectieve aantal momenteel actieve processoren en ze dus als zodanig naar geen enkel onderliggend proces doorgegeven zal worden. Indien het aantal beschikbare processoren niet afgeleid kan worden, dan zal de code terugvallen op gebruik maken van een onbeperkt aantal.

-J[taken|auto]
    Deze optie (sinds dpkg 1.18.2) is het equivalent van de optie -j, behalve dat ze de omgevingsvariabele MAKEFLAGS niet instelt. Als zodanig is het veiliger om ze te gebruiken met elk pakket, ook met die waarvoor het niet zeker is dat in parallel bouwen mogelijk is.

-D  Controleer bouwvereisten en tegenstrijdigheden en breek af als er niet aan voldaan is. Dit is het standaardgedrag.

-d  Controleer bouwvereisten en tegenstrijdigheden niet.

--ignore-builtin-builddeps
    Controleer ingebouwde bouwvereisten en tegenstrijdigheden niet (sinds dpkg 1.18.2). Dit zijn de distributiespecifieke impliciete bouwvereisten die gewoonlijk noodzakelijk zijn in een bouwomgeving, de zogenaamde set van pakketten van het type Build-Essential.

-nc Ruim de broncodeboom niet op. Impliceert -b indien geen van de opties -F, -g, -G, -B, -A of -S gekozen werd. Gecombineerd met -S impliceert dit -d (sinds dpkg 1.18.0).

-tc Ruim de broncodeboom op (met commando-om-root-te-worden debian/rules clean) nadat het pakket gebouwd werd.

-rcommando-om-root-te-worden
    Wanneer dpkg-buildpackage een deel van het bouwproces in de hoedanigheid van root (systeembeheerder) moet uitvoeren, laat het het commando dat het uitvoert voorafgaan door commando-om-root-te-worden indien er een opgegeven werd. Anders, als er geen opgegeven werd, wordt standaard fakeroot gebruikt als het beschikbaar is. commando-om-root-te-worden moet beginnen met de naam van een programma in het PATH en krijgt als argumenten de naam van het echte commando dat uitgevoerd moet worden en de argumenten die het moet krijgen. commando-om-root-te-worden kan parameters bevatten (ze moeten met spaties van elkaar gescheiden worden) maar geen shell-metatekens. Doorgaans is commando-om-root-te-worden fakeroot, sudo, super of really. su is niet geschikt, aangezien het enkel de shell van de gebruiker kan aanroepen met -c in plaats van afzonderlijke argumenten door te geven aan het uit te voeren commando.

-Rrules-bestand
    Een Debian-pakket bouwen houdt meestal het aanroepen van debian/rules in als een commando met verschillende standaardparameters (sinds dpkg 1.14.17). Met deze optie is het mogelijk om een andere programma-aanroep te gebruiken om het pakket te bouwen (ze kan parameters bevatten die onderling door spaties gescheiden worden). Anderzijds kan de optie ook gebruikt worden om het standaard rules-bestand uit te voeren met een ander make-programma (bijvoorbeeld door /usr/local/bin/make -f debian/rules te gebruiken als rules-bestand).

--check-command=controlecommando
    Commando dat gebruikt wordt om het bestand .changes zelf en eventuele gebouwde artefacten waarnaar in het bestand verwezen wordt, te controleren (sinds dpkg 1.17.6). Het commando moet als argument de padnaam van .changes krijgen. Gewoonlijk is dit commando lintian.

--check-option=optie
    Geef optie optie door aan het controlecommando dat gespecificeerd werd met DEB_CHECK_COMMAND of met --check-command (sinds dpkg 1.17.6). Kan meermaals gebruikt worden.

--hook-hook-naam=hook-commando
    Stelt de opgegeven shell-code hook-commando in als de uitbreiding (hook) hook-naam, die zal uitgevoerd worden op de momenten die in de uitvoeringsstappen gepreciseerd worden (sinds dpkg 1.17.6). De uitbreidingen (hooks) zullen steeds uitgevoerd worden, zelfs als de volgende actie niet uitgevoerd wordt (met uitzondering voor de uitbreiding (hook) binary). Opmerking: uitbreidingen (hooks) kunnen het bouwproces beïnvloeden en leiden tot het mislukken van de bouw als hun commando's falen. Wees dus alert voor onbedoelde consequenties. Momenteel worden de volgende hook-namen ondersteund init preclean source build binary changes postclean check sign done Het hook-commando ondersteunt de volgende substitutie-indelingstekenreeksen, die er voorafgaand aan de uitvoering op toegepast zullen worden:

    %%  Eén enkel %-teken.

    %a  Een booleaanse waarde (0 of 1), die aangeeft of de volgende actie uitgevoerd wordt of niet.

    %p  De naam van het broncodepakket.

    %v  De versie van het broncodepakket.

    %s  De versie van het broncodepakket (zonder de epoch).

    %u  Het upstream versienummer (toeleveraarsversie).

-pondertekeningscommando
    Als dpkg-buildpackage GPG moet uitvoeren om een controlebestand (.dsc) van de broncode of een bestand .changes te ondertekenen zal het ondertekeningscommando (en indien nodig daarbij het PATH doorzoeken) uitvoeren in plaats van gpg2 of gpg. Aan ondertekeningscommando zullen alle argumenten meegegeven worden die anders aan gpg2 of gpg gegeven zouden zijn. ondertekeningscommando mag geen spaties bevatten en geen andere shell-metatekens.

-ksleutel-ID
    Geef de sleutel-ID op die gebruikt moet worden om pakketten te ondertekenen.

-us Onderteken het broncodepakket niet

-uc Onderteken het bestand .changes niet.

--force-sign
    Verplicht het ondertekenen van de resulterende bestanden (sinds dpkg 1.17.0), ongeacht -us, -uc of overige interne heuristiek.

-i[regex]
-I[patroon]
-s[nsAkurKUR]
-z, -Z
    Wordt ongewijzigd doorgegeven aan dpkg-source. Zie de man-pagina ervan.

--source-option=optie
    Geef optie optie door aan dpkg-source (sinds dpkg 1.15.6). Kan meermaals gebruikt worden.

--changes-option=optie
    Geef optie optie door aan dpkg-genchanges (sinds dpkg 1.15.6). Kan meermaals gebruikt worden.

--admindir=map
--admindir map
    Geef een andere locatie op voor de database van dpkg (sinds dpkg 1.14.0). De standaardlocatie is /var/lib/dpkg.

-?, --help
    Toon info over het gebruik en sluit af.

--version
    Toon de versie en sluit af.

OMGEVING

DEB_CHECK_COMMAND
    Indien dit ingesteld werd, zal het gebruikt worden als het commando waarmee het bestand .changes gecontroleerd wordt (sinds dpkg 1.17.6). De optie --check-command heeft hierop voorrang.

DEB_SIGN_KEYID
    Indien dit ingesteld werd, zal het gebruikt worden als het commando waarmee de bestanden .changes en .dsc ondertekend worden. De optie -k heeft hierop voorrang.

DEB_BUILD_OPTIONS
    Indien dit ingesteld werd en nocheck bevat, zal de variabele DEB_CHECK_COMMAND genegeerd worden.

DEB_BUILD_PROFILES
    Indien dit ingesteld werd, zal het gebruikt worden als het/de actieve bouwprofiel(en) voor het pakket dat gebouw wordt (sinds dpkg 1.17.2). Het is een lijst van profielnamen die onderling door een spatie gescheiden zijn. De optie -P heeft hierop voorrang.

DPKG_COLORS
    Sets the color mode (since dpkg 1.18.5). The currently accepted values are: auto, always and never (default).

  Gebruik maken van geëxporteerde omgevingsvlaggen
Zelfs al exporteert dpkg-buildpackage sommige variabelen, toch mag debian/rules er niet op rekenen dat ze aanwezig zijn, maar moet het in de plaats daarvan gebruik maken van de respectieve interfaces om de benodigde variabelen op te halen.

  Door dpkg-architecture ingestelde variabelen
dpkg-architecture wordt aangeroepen met de doorgegeven parameters -a en -t. Eventuele variabelen die zijn optie -s als uitvoer geeft, worden in de bouwomgeving geïntegreerd.

OPMERKINGEN

  Compileervlaggen worden niet langer geëxporteerd
Tussen dpkg 1.14.17 en 1.16.1 exporteerde dpkg-buildpackage compileervlaggen (CFLAGS, CXXFLAGS, FFLAGS, CPPFLAGS en LDFLAGS) met de waarden die door dpkg-buildflags teruggegeven werden. Dit is niet langer het geval

  Standaard bouwdoelen
dpkg-buildpackage gebruikt sinds dpkg 1.16.2 de doelen build-arch en build-indep. Deze doelen zijn dus verplicht. Maar om te vermijden dat bestaande pakketten defect raken en om de overgang te vergemakkelijken, zal het terugvallen op het gebruik van het doel build indien make -f debian/rules -qn bouwdoel 2 teruggeeft als afsluitwaarde.

BUGS
Het zou mogelijk moeten zijn om spaties en shell-metatekens en initiële argumenten op te geven voor commando-om-root-te-worden en ondertekeningscommando.

ZIE OOK
dpkg-source(1), dpkg-architecture(1), dpkg-buildflags(1), dpkg-genchanges(1), fakeroot(1), lintian(1), gpg2(1), gpg(1).