dpkg-buildpackage(1) crea pacchetti binari o sorgente a partire dai sorgenti

SINTASSI

dpkg-buildpackage [opzione...]

DESCRIZIONE

dpkg-buildpackage è un programma che automatizza il processo di creazione di un pacchetto Debian. Effettua i seguenti passaggi:
1.
Prepara l'ambiente di compilazione impostando diverse variabili d'ambiente (vedere ENVIRONMENT) e invoca dpkg-source --before-build (a meno che non sia stata usata -T o --target.
2.
Controlla che le dipendenze di compilazione ed i conflitti di compilazione siano soddisfatti (a meno che non sia stata usata -d).
3.
Se è stato selezionato un target specifico con l'opzione -T o --target, invoca quel target e si ferma a questo punto. Altrimenti invoca fakeroot debian/rules clean per pulire l'albero di compilazione (a meno che non sia stata usata -nc).
4.
Invoca dpkg-source -b per generare il pacchetto sorgente (a meno che non sia stato richiesto di creare solo il pacchetto binario usando -b, -B o -A).
5.
Invoca debian/rules target-compilazione seguito da fakeroot debian/rules target-binario (a meno che non sia stato richiesto di creare solo il pacchetto sorgente usando -S). Notare che target-compilazione e target-binario sono build e binary (in modo predefinito o se viene specificata -b) o build-arch e binary-arch (se viene specificata -B) oppure build-indep e binary-indep (se viene specificata -A).
6.
Invoca gpg per firmare il file .dsc (se esiste, a meno che non sia stata specificata l'opzione -us.
7.
Invoca dpkg-genchanges per generare un file .changes. Molte opzioni di dpkg-buildpackage vengono inoltrate a dpkg-genchanges.
8.
Invoca gpg per firmare il file .changes (a meno che non sia stata specificata l'opzione -uc).
9.
Se viene specificata l'opzione -tc, invoca nuovamente fakeroot debian/rules clean. Da ultimo invoca dpkg-source --after-build.

OPZIONI

-b
Specifica una compilazione solo binaria, nessun file sorgente deve essere creato o distribuito. Passata a dpkg-genchanges.
-B
Specifica una compilazione solo binaria, limitata ai pacchetti che dipendono dall'architettura. Passata a dpkg-genchanges.
-A
Specifica una compilazione solo binaria, limitata ai pacchetti indipendenti dall'architettura. Passata a dpkg-genchanges.
-S
Specifica la creazione dei soli pacchetti sorgente, nessun pacchetto binario deve essere creato. Passata a dpkg-genchanges.
-F
Specifica una normale compilazione completa; verranno creati i pacchetti binari e sorgente. Questo è ciò che avviene in modo predefinito quando non viene specificata alcuna opzione riguardo la compilazione.

--target=target
--target target
-Ttarget

Invoca debian/rules target dopo aver impostato l'ambiente di compilazione e interrompe lì il processo di compilazione del pacchetto. Se viene usata anche l'opzione --as-root, allora il comando viene eseguito come utente root (vedere -r). Notare che questa opzione non è necessaria per i target ufficiali che devono essere eseguiti come root, secondo quanto stabilito nella Debian Policy.
--as-root
Ha significato solo insieme a --target. È necessario che il target venga eseguito con i permessi di root.

-si
-sa
-sd
-vversione
-Cdescrizione-modifiche
-mindirizzo-manutentore
-eindirizzo-manutentore

Passate inalterate a dpkg-genchanges. Vedere la sua pagina di manuale.
-aarchitettura
Specifica l'architettura Debian per cui compilare. L'architettura della macchina in cui viene fatta la compilazione viene determinata automaticamente ed è anche il valore predefinito per la macchina host.
-ttipo-sistema-gnu
Specifica il tipo di sistema GNU per cui compilare. Può essere usata al posto di -a o in aggiunta per scavalcare l'impostazione predefinita del tipo di sistema GNU dell'architettura Debian target.
-jcompiti
Numero di compiti che è permesso eseguire contemporaneamente; equivalente all'opzione omonima per make(1). Verrà aggiunta alla variabile d'ambiente MAKEFLAGS, il che dovrebbe far sì che tutte le invocazioni successive di make ereditino l'opzione. Aggiunge anche parallel=compiti alla variabile d'ambiente DEB_BUILD_OPTIONS che permette ai file debian/rules di usare questa informazione per i loro scopi. Se viene usata questa opzione, l'impostazione parallel=compiti in DEB_BUILD_OPTIONS avrà la precedenza rispetto al valore -j.
-D
Controlla le dipendenze e i conflitti di compilazione; si interrompe se non sono soddisfatti. Questo è il comportamento predefinito.
-d
Non controlla le dipendenze e i conflitti di compilazione.
-nc
Non pulisce l'albero dei sorgenti (implica -b se non è stata selezionata un'altra opzione tra -B, -A o -S).
-tc
Pulisce l'albero dei sorgenti (usando comando-per-diventare-root debian/rules clean) dopo che il pacchetto è stato creato.
-rcomando-per-diventare-root
Quando dpkg-buildpackage deve eseguire parte del processo di creazione dei pacchetti come utente root, antepone al comando che esegue comando-per-diventare-root, se è stato specificato. Altrimenti, se non è stato specificato, viene in modo predefinito usato fakeroot, se tale comando è presente. comando-per-diventare-root dovrebbe iniziare con il nome di un programma in PATH e accetta come argomenti il nome del vero comando da eseguire e gli argomenti per esso. comando-per-diventare-root può includere parametri (che devono essere separati da spazi) ma non metacaratteri della shell. comando-per-diventare-root tipicamente può essere fakeroot, sudo, super o really. su non è adatto perché può solo invocare la shell utente con -c invece di passare singoli argomenti al comando da eseguire.
-Rfile-rules
La creazione di un pacchetto Debian comporta solitamente l'invocazione di debian/rules come comando con svariati parametri standard. Con questa opzione è possibile usare un'altra invocazione del programma per creare il pacchetto (può includere parametri separati da spazi). In alternativa, può essere usato per eseguire il file rules standard con un altro programma make (per esempio usando /usr/local/bin/make -f debian/rules come file-rules).
-pcomando-per-firmare
Quando dpkg-buildpackage deve eseguire GPG per firmare un file di controllo dei sorgenti (.dsc) o un file .changes, esegue comando-per-firmare (cercandolo in PATH se necessario) invece di gpg. comando-per-firmare riceve gli argomenti che avrebbe ricevuto gpg. comando-per-firmare non dovrebbe contenere spazi o altri metacaratteri della shell.
-kID-chiave
Specifica l'ID della chiave da usare per firmare i pacchetti.
-us
Non firma il pacchetto sorgente.
-uc
Non firma il file .changes.

-i[regexp]
-I[modello]
-s[nsAkurKUR]
-z, -Z

Passate inalterate a dpkg-source. Vedere la sua pagina di manuale.
--source-option=opz
Passa l'opzione opz a dpkg-source.
--changes-option=opz
Passa l'opzione opz a dpkg-genchanges.

--admindir=dir
--admindir dir

Cambia la posizione del database di dpkg. La posizione predefinita è /var/lib/dpkg.
-?, --help
Mostra il messaggio sull'uso ed esce.
--version
Mostra la versione ed esce.

AMBIENTE

Anche se dpkg-buildpackage esporta alcune variabili, debian/rules non dovrebbe fare affidamento sulla loro presenza e dovrebbe invece usare l'interfaccia apposita per recuperare i valori necessari.

Variabili impostate da dpkg-architecture

dpkg-architecture viene invocata inoltrando i parametri -a e -t. Qualsiasi variabile che è prodotta in output dalla sua opzione -s viene integrata nell'ambiente di compilazione.

I flag di compilazione non sono più esportati

Nelle versioni comprese tra la 1.14.17 e la 1.16.1, dpkg-buildpackage esportava i flag di compilazione (CFLAGS, CXXFLAGS, FFLAGS, CPPFLAGS e LDFLAGS) con i valori restituiti da dpkg-buildflags. Ora non è più così.

BACKWARD COMPATIBILITY

A partire dalla versione 1.16.2, dpkg-buildpackage usa i target build-arch e build-indep. Questi target sono perciò obbligatori. Per evitare di rendere difettosi i pacchetti esistenti, e per facilitare la transizione, ripiegherà però sull'uso del target build se make -f debian/rules -qn target-compilazione restituisce 2 come codice di uscita.

BUG

Dovrebbe essere possibile usare spazi e metacaratteri della shell e specificare argomenti iniziali quando si usa comando-per-diventare-root e comando-per-firmare.