dpkg-source(1)

NOME
dpkg-source - strumento di manipolazione dei pacchetti sorgente Debian (.dsc)

SINTASSI
dpkg-source [opzione...] comando

DESCRIZIONE
dpkg-source impacchetta e spacchetta archivi sorgente Debian. Nessuno di questi comandi permette di combinare più opzioni in una, e non permettono di specificare il valore di un'opzione in un argomento separato.

COMANDI

-x, --extract nomefile.dsc [output-directory]
    Estrae un pacchetto sorgente. L'alias --extract è stato aggiunto in dpkg 1.17.14. Deve essere specificato un argomento che non è un'opzione: il nome del file di controllo del sorgente Debian (.dsc). Un secondo argomento facoltativo che non è un'opzione può essere usato per specificare la directory in cui estrarre il pacchetto sorgente; tale directory non deve esistere. Se non viene specificata una directory di output, il pacchetto sorgente viene estratto in una directory chiamata sorgente-versione all'interno della directory di lavoro attuale. dpkg-source legge dal file di controllo i nomi degli altri file che fanno parte del pacchetto sorgente; presume che siano nella stessa directory del file .dsc. I file nel pacchetto estratto avranno i permessi e i proprietari impostati ai valori che ci si aspetterebbe se tali file e directory fossero appena stati creati: le directory e i file eseguibili saranno 0777 e i file normali saranno 0666, entrambi modificati in base all'umask degli estrattori; se la directory genitrice è setgid, allora anche le directory estratte lo saranno e tutti i file e le directory erediteranno il suo valore del gruppo proprietario. Se il pacchetto sorgente usa un formato non standard (attualmente ciò significa tutti i formati tranne «1.0») il suo nome verrà memorizzato in debian/source/format in modo che le successive compilazioni del pacchetto sorgente usino in modo predefinito lo stesso formato.

-b, --build directory [parametri-specifici-formato]
    Compila un pacchetto sorgente. L'alias --build è stato aggiunto in dpkg 1.17.14. Il primo argomento che non è un'opzione viene usato come nome della directory contenente l'albero dei sorgenti debianizzati (cioè con una sottodirectory debian ed eventualmente modifiche ai file originali). A seconda del formato del pacchetto sorgente utilizzato per compilare il pacchetto, possono essere accettati parametri addizionali. dpkg-source compilerà il pacchetto sorgente con il primo formato trovato nell'ordine tra: il formato specificato con l'opzione --format per la riga di comando, il formato specificato in debian//source/format, «1.0». Il valore di ripiego «1.0» è deprecato e verrà rimosso prima o poi; si dovrebbe sempre documentare in debian/source/format il formato sorgente desiderato. Vedere la sezione FORMATI DEI PACCHETTI SORGENTE per una descrizione dettagliata dei vari formati per i pacchetti sorgente.

--print-format directory
    Stampa il formato del sorgente che verrebbe usato per creare il pacchetto sorgente se venisse invocato dpkg-source --build directory (nelle stesse condizioni e con gli stessi parametri).

--before-build directory
    Esegue l'hook corrispondente al formato del pacchetto sorgente; questo viene invocato prima di qualsiasi creazione del pacchetto (dpkg-buildpackage lo chiama molto presto, prima ancora di debian/rules clean). Questo comando è idempotente e può essere usato più volte. Non tutti i formati sorgente implementano qualcosa in questo hook, e quelli che lo fanno di solito preparano l'albero dei sorgenti per la compilazione, ad esempio assicurando l'applicazione delle patch Debian.

--after-build directory
    Esegue l'hook corrispondente al formato del pacchetto sorgente; questo viene invocato dopo ogni creazione del pacchetto (dpkg-buildpackage lo chiama per ultimo). Questo comando è idempotente e può essere usato più volte. Non tutti i formati sorgente implementano qualcosa in questo hook, e quelli che lo fanno di solito lo usano per annullare le modifiche che ha fatto --before-build.

--commit [directory] ...
    Registra le modifiche nell'albero sorgente spacchettato in directory. Questo comando può accettare parametri supplementari a seconda del formato sorgente. Originerà un errore per i formati per i quali questa operazione non ha significato.

-?, --help
    Mostra il messaggio sull'uso ed esce.

--version
    Mostra la versione ed esce.

OPZIONI

  Opzioni generiche di compilazione

-cfile-controllo
    Specifica il file di controllo principale dei sorgenti da cui leggere le informazioni. Il valore predefinito è debian/control. Se viene specificato con un nome di percorso relativo, viene interpretato come se iniziasse nella directory di livello più alto nell'albero dei sorgenti.

-lfile-changelog
    Specifica il file changelo da cui leggere le informazioni. Il valore predefinito è debian/changelog. Se viene specificato con un nome di percorso relativo, viene interpretato come se iniziasse nella directory di livello più alto nell'albero dei sorgenti.

-Fformato-changelog
    Specifica il formato del changelog. Vedere dpkg-parsechangelog(1) per informazioni sui formati alternativi.

--format=valore
    Usa il formato specificato per creare il pacchetto sorgente. Scavalca qualsiasi formato specificato in debian/source/format.

-Vnome=valore
    Imposta una variabile di sostituzione per l'output. Vedere deb-substvars(5) per informazioni sulle sostituzioni per l'output.

-Tsubstvars-file
    Legge le variabili di sostituzione in substvars-file; il comportamento predefinito è di non leggere alcun file. Questa opzione può essere usata più volte per leggere variabili di sostituzione da più file.

-Dcampo=valore
    Override or add an output control file field.

-Ucampo
    Remove an output control file field.

-Zcompressione, --compression=compressione
    Specifica la compressione da usare per i file creati (archivi tar e diff). Notare che questa opzione non fa sì che i tar esistenti vengano ricompressi, ha effetto solo sui nuovi file. I valori possibili sono gzip, bzip2, lzma e xz. xz è il valore predefinito per i formati 2.0 e successivi e gzip per il formato 1.0. xz è gestito solo a partire da dpkg-dev 1.15.5.

-zlivello, --compression-level=livello
    Livello di compressione da usare. Come -Z ha effetto solo sui nuovi file creati. I valori possibili sono: cifre da 1 a 9, best e fast. Il valore predefinito è 9 per gzip e bzip2, 6 per xz e lzma.

-i[regex], --diff-ignore[=regex]
    Si può specificare un'espressione regolare Perl che corrisponde ai file che si desidera escludere dall'elenco dei file per il diff. (Questo elenco viene generato da un comando find.) (Se il pacchetto sorgente viene creato nella versione 3 usando un VCS, questo può essere usato per ignorare le modifiche di cui non è stato fatto il commit su specifici file. Usando -i.* verranno ignorati tutti.) L'opzione -i da sola abilita questa impostazione, con una espressione regolare predefinita (preservando qualsiasi modifica alla espressione regolare predefinita fatta da un precedente uso di --extend-diff-ignore) che esclude i file e le directory di controllo della maggior parte dei sistemi di revisione, i file di backup e di swap e le directory di output di compilazione di Libtool. Una sola espressione regolare può essere attiva; se ci sono più opzioni -i solo l'ultima avrà effetto. Questo è molto utile per escludere file estranei che vengono inclusi nel diff, ad esempio se si mantengono i propri sorgenti all'interno di un sistema di controllo delle revisioni e si desidera usare un checkout per creare un pacchetto sorgente senza includere i file e le directory addizionali che normalmente esso contiene (es. CVS/, .cvsignore, .svn/). L'espressione regolare predefinita è già piuttosto completa, ma se fosse necessario sostituirla, notare che in modo predefinito trova corrispondenza con qualsiasi parte di un percorso; perciò, se si desidera trovare corrispondenza con l'inizio di un nome di file o solamente con nomi di file completi, è necessario fornire i punti di ancoraggio necessari (es. «(^|/)», «($|/)»).

--extend-diff-ignore=regex
    L'espressione regolare Perl specificata estenderà il valore predefinito usato da --diff-ignore e il suo valore attuale (se impostato). Lo fa concatenando «|regex» con il valore esistente. Questa opzione è comoda da usare in debian/source/options per escludere alcuni file generati automaticamente dalla generazione automatica delle patch.

-I[modello-file], --tar-ignore[=modello-file]
    Se viene specificata questa opzione, il modello verrà passato all'opzione --exclude di tar(1) quando viene invocato per generare un file .orig.tar o .tar. Per esempio, -ICVS farà sì che tar ignori le directory CVS quando genera un file .tar.gz. L'opzione può essere usata più volte per elencare più modelli da escludere. -I da solo aggiunge le opzioni --exclude predefinite che filtrano i file e le directory di controllo dei sistemi di controllo delle revisioni più comuni, i file di backup e di swap e le directory di output delle compilazioni di Libtool.

Nota: sebbene abbiano uno scopo simile, -i e -I hanno una sintassi e una semantica molto diverse. -i può essere specificata solo una volta e accetta un'espressione regolare Perl compatibile, che viene confrontata con il percorso relativo completo di ciascun file. -I può essere specificata più volte e accetta un modello di nome file con metacaratteri della shell. Il modello viene applicato al percorso relativo completo ma anche singolarmente a ciascuna parte del percorso. La semantica esatta dell'opzione --exclude di tar è piuttosto complicata; per la documentazione completa vedere https://www.gnu.org/software/tar/manual/tar.html#wildcards. I modelli e l'espressione regolare predefiniti per entrambe le opzioni possono essere visti nell'output del comando --help.

  Opzioni generiche di estrazione

--no-copy
    Non copia gli archivi tar originali vicino al pacchetto dei sorgenti estratto.

--no-check
    Non controlla le firme e i codici di controllo prima di spacchettare.

--require-valid-signature
    Si rifiuta di spacchettare il pacchetto sorgente se non contiene una firma OpenPGP valida, che può essere verificata con il portachiavi trustedkeys.gpg dell'utente, uno dei portachiavi specifici del produttore oppure uno dei portachiavi Debian ufficiali (/usr/share/keyrings/debian-keyring.gpg e /usr/share/keyrings/debian-maintainers.gpg).

--ignore-bad-version
    Trasforma un controllo negativo sulla versione di un pacchetto sorgente in un avvertimento non fatale. Questa opzioni dovrebbe essere necessaria solamente quando si estraggono pacchetti sorgente estremamente vecchi con versioni difettose, solo per compatibilità all'indietro.

FORMATI DEI PACCHETTI SORGENTE
Se non si sa quale formato usare, probabilmente è bene scegliere "3.0 (quilt)" o "3.0 (nativo)". Vedere https://wiki.debian.org/Projects/DebSrc3.0 per informazioni sull'utilizzo di questi formati all'interno di Debian.

  Formato: 1.0
Un pacchetto sorgente in questo formato consiste in un file .orig.tar.gz associato ad un .diff.gz, oppure ad un unico file .tar.gz (nel qual caso il pacchetto è chiamato nativo). Estrazione L'estrazione di un pacchetto nativo è una semplice estrazione del singolo archivio tar nella directory di destinazione. L'estrazione di un pacchetto non nativo viene fatta prima spacchettando il file .orig.tar.gz e poi applicando la patch contenuta nel file .diff.gz. La marcatura oraria di tutti i file interessati dalla patch viene reimpostata al momento dell'estrazione del pacchetto sorgente (questo evita scostamenti nelle marcature orarie che portano a problemi quando vengono applicate patch a file generati automaticamente). Il diff può creare nuovi file (l'intera directory debian viene creata così), ma non può rimuovere file (i file vuoti verranno mantenuti). Building Building a native package is just creating a single tarball with the source directory. Building a non-native package involves extracting the original tarball in a separate ".orig" directory and regenerating the .diff.gz by comparing the source package directory with the .orig directory. Build options (with --build): If a second non-option argument is supplied it should be the name of the original source directory or tarfile or the empty string if the package is a Debian-specific one and so has no Debianisation diffs. If no second argument is supplied then dpkg-source will look for the original source tarfile package_upstream-version.orig.tar.gz or the original source directory directory.orig depending on the -sX arguments. -sa, -sp, -sk, -su and -sr non sovrascrivono file tar o directory esistenti. Se questo è ciò che si desidera allora si devono usare invece -sA, -sP, -sK, -sU e -sR.

-sk Specifica di aspettarsi il sorgente originale come file tar, in modo predefinito pacchetto_versione-originale.orig.tar.estensione. Lascerà al suo posto questo sorgente originale come file tar o lo copierà nella directory corrente se non c'è già. L'archivio tar sarà spacchettato in directory.orig per la generazione del diff.

-sp Come -sk ma rimuoverà nuovamente la directory successivamente.

-su Specifica di aspettarsi il sorgente originale come directory, in modo predefinito pacchetto-versione-originale.orig e dpkg-source crea una nuovo archivio sorgente originale da essa.

-sr Come -su ma rimuoverà tale directory dopo che è stata usata.

-ss Specifica che il codice originale è disponibile sia come directory sia come file tar. dpkg-source usa la directory per creare il diff, ma il file tar per creare il .dsc. Questa opzione deve essere usata con cautela: se la directory e il file tar non combaciano viene generato un archivio sorgente difettoso.

-sn Specifica di non cercar alcun sorgente originale e non generare un diff. Il secondo argomento, se fornito, deve essere la stringa vuota. Questo viene usato per pacchetti specifici per Debian che non hanno un sorgente originale a monte distinto e pertanto non hanno diff di debianizzazione.

-sa o -sA
    Specifies to look for the original source archive as a tarfile or as a directory - the second argument, if any, may be either, or the empty string (this is equivalent to using -sn). If a tarfile is found it will unpack it to create the diff and remove it afterwards (this is equivalent to -sp); if a directory is found it will pack it to create the original source and remove it afterwards (this is equivalent to -sr); if neither is found it will assume that the package has no debianisation diffs, only a straightforward source archive (this is equivalent to -sn). If both are found then dpkg-source will ignore the directory, overwriting it, if -sA was specified (this is equivalent to -sP) or raise an error if -sa was specified. -sA is the default.

--abort-on-upstream-changes
    Il processo fallisce se il diff generato contiene modifiche ai file al di fuori della sottodirectory debian. Questa opzione non è permessa in debian/source/options ma può essere usata in debian/source/local-options.

Opzioni di estrazione (con --extract): In tutti i casi un albero sorgente originale esistente verrà rimosso.

-sp Used when extracting then the original source (if any) will be left as a tarfile. If it is not already located in the current directory or if an existing but different file is there it will be copied there. (This is the default).

-su Spacchetta l'albero dei sorgenti originale.

-sn Assicura che il sorgente originale non sia né copiato nella directory corrente, né spacchettato. Qualsiasi albero sorgente nella directory corrente viene comunque rimosso.

Tutte le opzioni -sX sono mutualmente esclusive. Se ne viene specificata più di una, solo l'ultima verrà usata.

--skip-debianization
    Salta l'applicazione del diff debian sui sorgenti originali.

  Formato: 2.0
Also known as wig&pen. This format is not recommended for wide-spread usage, the format "3.0 (quilt)" replaces it. Wig&pen was the first specification of a new-generation source package format. Il comportamento di questo formato è lo stesso del formato «3.0 (quilt)» tranne per il fatto che non usa una lista esplicita di patch. Tutti i file in debian/patches/ corrispondenti all'espressione regolare Perl [\w-]+ devono essere patch valide: vengono applicate al momento dell'estrazione. Quando si genera un nuovo pacchetto sorgente, qualsiasi cambiamento al sorgente originale a monte è memorizzato in una patch chiamata zz_debian-diff-auto.

  Formato: 3.0 (nativo)
Questo formato è un'estensione del formato di pacchetto nativo come definito nel formato 1.0. Supporta tutti i metodi di compressione e ignora in modo predefinito qualsiasi file o directory specifici di VCS oltre a molti file temporanei (vedere il valore predefinito associato all'opzione -I nell'output di --help).

  Formato: 3.0 (quilt)
Un pacchetto sorgente in questo formato contiene almeno un archivio tar originale (.orig.tar.ext dove ext può essere gz, bz2, lzma e xz) e un archivio tar debian (.debian.tar.ext). Può anche contenere archivi tar originali aggiuntivi (.orig-componente.tar.ext). componente può contenere solo caratteri alfanumerici e trattini («-»).

Estrazione

L'archivio tar originale principale viene estratto per primo, poi sono estratti gli archivi tar originali aggiuntivi in sottodirectory chiamate come la parte componente del loro nome file (qualsiasi directory preesistente viene sostituita). L'archivio tar debian viene estratto sopra alla directory sorgente dopo la rimozione di qualsiasi directory debian preesistente. Notare che l'archivio tar debian deve contenere una sottodirectory debian ma può anche contenere file binari al di fuori di tale directory (vedere l'opzione --include-binaries).

Vengono poi applicate tutte le patch elencate in debian/patches/debian.series o debian/patches/series. Se viene usato il primo file e il secondo non esiste (o è un collegamento simbolico), allora il secondo viene sostituito con un collegamento simbolico al primo. Questo è pensato per semplificare l'uso di quilt per gestire insiemi di patch. Notare tuttavia che sebbene dpkg-source analizzi correttamente i file series con opzioni esplicite usate per l'applicazione delle patch (memorizzate in ogni riga dopo il nome file della patch e uno o più spazi), esso ignora tali opzioni e si attende sempre patch che possono essere applicate con l'opzione -p1 di patch. Emetterà pertanto un avvertimento quando incontra tali opzioni ed è probabile che la generazione fallisca.

Contrary to quilt's default behaviour, patches are expected to apply without any fuzz. When that is not the case, you should refresh such patches with quilt, or dpkg-source will error out while trying to apply them.

Analogamente al comportamento predefinito di quilt, le patch possono anche rimuovere file.

Se durante l'estrazione sono state applicate delle patch viene creato il file .pc/applied-patches.

Building

Tutti gli archivi tar originali trovati nella directory corrente sono estratti in una directory temporanea seguendo la stessa logica usata per lo spacchettamento, la directory debian viene copiata nella directory temporanea e vengono applicate tutte le patch tranne la patch automatica (debian-changes-versione o debian-changes, a seconda di on --single-debian-patch). La directory temporanea è confrontata con la directory del pacchetto sorgente. Quando il diff non è vuoto, la generazione fallisce a meno che non sia stata usata --single-debian-patch o --auto-commit, nel qual caso il diff viene memorizzato nella patch automatica. Se la patch automatica è creata/cancellata, viene aggiunta/rimossa dal file series e dai metadati di quilt. Qualsiasi modifica ad un file binario non è rappresentabile con un diff e perciò causerà un fallimento a meno che il manutentore non decida deliberatamente di includere tale binario modificato nell'archivio tar debian (elencandolo in debian/source/include-binaries). La generazione fallisce anche se trova file binari nella sottodirectory debian, a meno che non siano stati inseriti in una lista bianca usando debian/source/include-binaries. La directory debian aggiornata e la lista dei binari modificata è poi usata per generare l'archivio tar debian. Il diff generato automaticamente non include le modifiche a file specifici dei VCS così come molti file temporanei (vedere il valore predefinito associati con l'opzione -i nell'output di --help). In particolare la directory .pc usata da quilt viene ignorata durante la generazione della patch automatica. Nota: dpkg-source --before-build (e --build) assicura che tutte le patch elencate nel file series siano applicate in modo che il pacchetto generato abbia sempre tutte le patch applicate. Fa questo trovando le patch non applicate (sono elencate nel file series ma non in .pc/applied-patches) e, se la prima patch in tale insieme può essere applicata senza errori, le applica tutte. L'opzione --no-preparation può essere usata per disabilitare questo comportamento.

Registrare le modifiche

--commit [directory] [nome-patch] [file-patch]
    Genera una patch corrispondente alle modifiche locali che non sono gestite dal sistema di patch quilt e la integra nel sistema di patch con il nome nome-patch. Se manca il nome verrà chiesto in modo interattivo. Se file-patch è specificato, viene usato come patch corrispondente alle modifiche locali da integrare. Una volta integrate viene avviato un editor in modo da poter modificare le meta-informazioni nell'intestazione della patch. Passing patch-file is mainly useful after a build failure that pre-generated this file, and on this ground the given file is removed after integration. Note also that the changes contained in the patch file must already be applied on the tree and that the files modified by the patch must not have supplementary unrecorded changes. Se la generazione della patch rileva file binari modificati, questi vengono automaticamente aggiunti a debian/source/include-binaries in modo che siano nell'archivio tar debian (esattamente come farebbe dpkg-source --include-binaries --build).

Opzioni di generazione

--allow-version-of-quilt-db=versione
    Permette a dpkg-source di generare il pacchetto sorgente se la versione dei metadati quilt è quella specificata, anche se dpkg-source non la conosce. Di fatto ciò dichiara che la versione fornita dei metadati di quilt è compatibile con la versione 2 che dpkg-source attualmente supporta. La versione dei metadati di quilt è memorizzata in .pc/.version.

--include-removal
    Non ignora i file rimossi e li include nella patch generata automaticamente.

--include-timestamp
    Include la marcatura temporale nella patch generata automaticamente.

--include-binaries
    Aggiunge tutti i binari modificati nell'archivio tar debian. Li aggiunge anche in debian/source/include-binaries: verranno aggiunti in modo predefinito nelle compilazioni successive e perciò questa opzione non è più necessaria.

--no-preparation
    Non cerca di preparare l'albero di compilazione applicando le patch che sembrano non applicate.

--single-debian-patch
    Use debian/patches/debian-changes instead of debian/patches/debian-changes-version for the name of the automatic patch generated during build. This option is particularly useful when the package is maintained in a VCS and a patch set can't reliably be generated. Instead the current diff with upstream should be stored in a single patch. The option would be put in debian/source/local-options and would be accompanied by a debian/source/local-patch-header file explaining how the Debian changes can be best reviewed, for example in the VCS that is used.

--create-empty-orig
    Crea automaticamente l'archivio tar originale principale come vuoto se non esiste e se ci sono archivi tar originali supplementari. Questa opzione è pensata per essere usata quando il pacchetto sorgente è solamente un insieme di software diversi originali senza un software "principale".

--no-unapply-patches, --unapply-patches
    By default, dpkg-source will automatically unapply the patches in the --after-build hook if it did apply them during --before-build. Those options allow you to forcefully disable or enable the patch unapplication process. Those options are only allowed in debian/source/local-options so that all generated source packages have the same behavior by default.

--abort-on-upstream-changes
    Il processo fallisce se è stata generata una patch automatica. Questa opzione può essere usata per assicurare che tutte le modifiche siano state correttamente registrate in patch quilt separate prima della creazione del pacchetto sorgente. Questa opzione non è permessa in debian/source/options ma può essere usata in debian/source/local-options.

--auto-commit
    Il processo non fallisce se è stata generata una patch automatica, che viene invece immediatamente registrata nella serie quilt.

Opzioni di estrazione

--skip-debianization
    Salta l'estrazione dell'archivio tar debian sopra ai sorgenti originali.

--skip-patches
    Non applica le patch alla fine dell'estrazione.

  Format: 3.0 (custom)
Questo formato è speciale. Non rappresenta un vero formato per pacchetti di sorgenti, ma può essere usato per creare pacchetti di sorgenti con file arbitrari.

Opzioni di generazione

Tutti gli argomenti che non sono opzioni sono considerati come file da integrare nel pacchetto sorgente generato. Devono esistere ed essere preferibilmente nella directory corrente. Deve essere specificato almeno un file.

--target-format=valore
    Required. Definisce il formato reale del pacchetto sorgente generato. Il file .dsc generato conterrà questo valore nel campo Format e non "3.0 (custom)".

  Formato: 3.0 (git)
Questo formato è sperimentale.

A source package in this format consists of a single bundle of a git repository .git to hold the source of a package. There may also be a .gitshallow file listing revisions for a shallow git clone.

Estrazione

The bundle is cloned as a git repository to the target directory. If there is a gitshallow file, it is installed as `.git/shallow` inside the cloned git repository.

Note that by default the new repository will have the same branch checked out that was checked out in the original source. (Typically "master", but it could be anything.) Any other branches will be available under `remotes/origin/`.

Building

Before going any further, some checks are done to ensure that we don't have any non-ignored uncommitted changes.

git-bundle(1) is used to generate a bundle of the git repository. By default, all branches and tags in the repository are included in the bundle.

Opzioni di generazione

--git-ref=ref
    Allows specifying a git ref to include in the git bundle. Use disables the default behavior of including all branches and tags. May be specified multiple times. The ref can be the name of a branch or tag to include. It may also be any parameter that can be passed to git-rev-list(1). For example, to include only the master branch, use --git-ref=master. To include all tags and branches, except for the private branch, use --git-ref=--all --git-ref=^private

--git-depth=numero
    Creates a shallow clone with a history truncated to the specified number of revisions.

  Formato: 3.0 (bzr)
Questo formato è sperimentale. Genera un unico archivio tar contenente il repository bzr.

Estrazione

L'archivio tar viene spacchettato e quindi viene usato bzr per fare il checkout del ramo corrente.

Building

Before going any further, some checks are done to ensure that we don't have any non-ignored uncommitted changes.

Poi la parte specifica del VCS della directory sorgente viene copiata in una directory temporanea. Prima che questa directory temporanea venga copiata in un archivio tar vengono effettuati vari lavori di pulizia per risparmiare spazio.

DIAGNOSTICA

  nessun formato sorgente specificato in debian/source/format
Il file debian/source/format dovrebbe sempre essere presente e indicare il formato sorgente desiderato. Per compatibilità all'indietro, quando il file non esiste viene usato il formato «1.0» ma non si dovrebbe fare affidamento su questo fatto: in futuro dpkg-source verrà modificato in modo da terminare con un fallimento quando tale file non esiste. Il principio è che il formato «1.0» non è più il formato raccomando; si dovrebbe solitamente scegliere uno dei formati più nuovi («3.0 (quilt)», «3.0 (nativo)») ma dpkg-source non lo farà automaticamente per conto dell'utente. Se si desidera continuare ad usare il vecchio formato, si dovrebbe farlo esplicitamente mettendo «1.0» in debian/source/format.

  il diff modifica i seguenti file originali a monte
Quando si usa il formato sorgente «1.0» è solitamente una cattiva idea modificare i file originali direttamente dato che le modifiche diventano nascoste e per lo più non documentate nel file .diff.gx. Si dovrebbero invece memorizzare le proprie modifiche come patch nella directory debian e applicarle al momento della compilazione. Per evitare questa complicazione si può anche usare il formato «3.0 (quilt)» che offre la cosa in modo nativo.

  impossibile rappresentare la modifica a file
Le modifiche ai sorgenti originali sono solitamente memorizzate usando file patch, ma non tutte le modifiche possono essere rappresentate con patch: queste possono solo modificare i contenuti di file di testo semplice. Se si cerca di sostituire un file con qualcosa di tipo diverso (per esempio sostituire un file testuale con un collegamento simbolico o una directory) si ottiene questo messaggio di errore.

  il nuovo file vuoto file creato non sarà rappresentato nel diff
I file vuoti non possono essere creati con file patch. Perciò questa modifica non è registrata nel pacchetto sorgente e si viene avvisati della cosa.

  executable mode perms of file will not be represented in diff
I file patch non registrano i permessi dei file e perciò i permessi eseguibili non sono memorizzati nel pacchetto sorgente. Questo avvertimento ricorda questo fatto.

  special mode perms of file will not be represented in diff
I file patch non registrano i permessi dei file e perciò i permessi modificati non sono memorizzati nel pacchetto sorgente. Questo avvertimento ricorda questo fatto.

FORMATI DEI FILE

  debian/source/format
Questo file contiene su un'unica riga il formato che deve essere usato per generare il pacchetto sorgente (i formati possibili sono descritti sopra). Non sono permessi spazi iniziali o finali.

  debian/source/include-binaries
Questo file contiene una lista di file binari (uno per riga) che devono essere inclusi nell'archivio tar debian. Gli spazi bianchi iniziali e finali vengono rimossi. Le righe che iniziano con «#» sono commenti e vengono saltate. Le righe vuote sono ignorate.

  debian/source/options
Questo file contiene una lista di opzioni lunghe che devono essere automaticamente aggiunte all'inizio dell'insieme di opzioni della riga di comando di una chiamata a dpkg-source--build o dpkg-source --print-format. Le opzioni come --compression e --compression-level sono adatte ad essere inserite in questo file.

Ogni opzione deve essere inserita su una riga separata. Le righe vuote e quelle che iniziano con «#» sono ignorate. I caratteri «--» iniziali devono essere rimossi e la forma corta delle opzioni non è permessa. Gli spazi opzionali sono permessi prima e dopo il simbolo «=» e sono permesse virgolette aggiuntive prima e dopo il valore. Ecco un esempio di un file di questo tipo:

  # far creare a dpkg-source un debian.tar.bz2 con la massima compressione
  compression = "bzip2"
  compression-level = 9
  # usare debian/patches/debian-changes come patch automatica
  single-debian-patch
  # ignorare i cambiamenti a config.{sub,guess}
  extend-diff-ignore = "(^|/)(config.sub|config.guess)$"

Nota: in questo file non sono accettate le opzioni format, si deve usare invece debian/source/format.

  debian/source/local-options
Esattamente come debian/source/options tranne per il fatto che il file non viene incluso nel pacchetto sorgente generato. Può essere utile per memorizzare una preferenza collegata al manutentore o al repository VCS dove è mantenuto il pacchetto sorgente.

  debian/source/local-patch-header e debian/source/patch-header
Free form text that is put on top of the automatic patch generated in formats "2.0" or "3.0 (quilt)". local-patch-header is not included in the generated source package while patch-header is.

  debian/patches/series
Questo file elenca tutte le patch che sono state applicate (nell'ordine specificato) sopra al pacchetto sorgente originale. Gli spazi iniziali e finali sono rimossi. Le righe che iniziano con «#» sono commenti e sono saltate. Le righe vuote vengono ignorate. Le righe rimanenti iniziano con un nome file di patch (relativo alla directory debian/patches/ fino al primo spazio o alla fine della riga. Possono essere seguite da opzioni quilt opzionali fino alla fine della riga o al primo «#» preceduto da uno o più spazi (che marca l'inizio di un commento fino alla fine della riga).

BUG
Il punto in cui avviene la sovrascrittura dei campi in relazione a certe impostazioni di campi di output standard non è molto chiaro.

VEDERE ANCHE
dpkg-deb(1), dpkg(1), dselect(1).