Linux repositories inspector

dpkg-source(1) - Français

1.20.0

dpkg-dev

Debian package development tools

dpkg

Debian package management system

NOM

dpkg-source - Outil de manipulation des paquets sources Debian (.dsc).

SYNOPSIS

dpkg-source [option...] commande

DESCRIPTION

dpkg-source empaquette ou d\(’epaquette une archive source Debian.
Aucune de ces commandes ne permet la combinaison de plusieurs options en une seule et elles ne permettent pas d’indiquer la valeur d’une option dans un argument s\(’epar\(’e.

COMMANDES

-x , --extract nom-de-fichier.dsc [r\(’epertoire-de-sortie]
Cette option sert \(‘a extraire un paquet source (--extract depuis dpkg 1.17.14). Un seul argument sans option doit \(^etre donn\(’e : le nom du fichier de contr\(^ole des sources Debian (.dsc). Un deuxi\(‘eme argument sans option peut \(’egalement \(^etre donn\(’e pour indiquer le r\(’epertoire o\(‘u extraire le paquet source : ce r\(’epertoire ne doit pas d\(’ej\(‘a exister. Quand aucun r\(’epertoire n’est indiqu\(’e, le paquet source est extrait dans un r\(’epertoire source-version du r\(’epertoire courant.
dpkg-source lit, dans le fichier de contr\(^ole, les noms des fichiers qui composent le paquet source ; il suppose qu’ils sont dans le m\(^eme r\(’epertoire que le fichier .dsc.
Les fichiers extraits du paquet auront leurs propri\(’etaires et permissions d\(’efinis \(‘a ceux attendus s’ils avaient \(’et\(’e simplement cr\(’e\(’es. Les r\(’epertoires et les fichiers ex\(’ecutables auront une permission \(’egale \(‘a 0777 et les simples fichiers \(‘a 0666, les deux \(’etant modifi\(’ees par le masque (umask) de celui qui fait l’extraction. Si le r\(’epertoire parent est \(Fo setgid \(Fc, les r\(’epertoires extraits le seront aussi et tous les fichiers et r\(’epertoires h\(’eriteront de sa propri\(’et\(’e de groupe.
Si le paquet source utilise un format non standard (actuellement, cela signifie tous les formats sauf le \(Fo 1.0 \(Fc), son nom sera enregistr\(’e dans debian/source/format de sorte que la construction du paquet source utilise le m\(^eme format par d\(’efaut.
-b, --build r\(’epertoire [param\(‘etres-dans-un-format-sp\(’ecifique]
Construit un paquet source (--build depuis dpkg 1.17.14). Le premier argument sans option est pris comme nom du r\(’epertoire contenant l’arborescence des sources debianis\(’ee (c’est-\(‘a-dire avec un sous-r\(’epertoire debian et peut-\(^etre des modifications sur les fichiers d’origine). Selon le format du paquet source utilis\(’e pour construire le paquet, d’autres param\(‘etres peuvent \(^etre accept\(’es.
dpkg-source va construire le paquet source dans le premier format trouv\(’e dans la liste suivante : le(s) format(s) indiqu\(’e(s) avec le param\(‘etre de la ligne de commande --format, le format indiqu\(’e dans debian/source/format, \(Fo 1.0 \(Fc. L’utilisation de \(Fo 1.0 \(Fc comme dernier recours est obsol\(‘ete et sera retir\(’ee dans le futur. Le format source devrait toujours \(^etre indiqu\(’e dans debian/source/format. Voir la section FORMATS DE PAQUET SOURCE pour une description plus d\(’etaill\(’ee des diff\(’erents formats de paquet source.
--print-format r\(’epertoire
Affiche le format source qui serait utilis\(’e pour construire le paquet source si dpkg-source --build r\(’epertoire \(’etait utilis\(’e (dans les m\(^emes conditions et avec les m\(^emes options ; depuis dpkg 1.15.5).
--before-build r\(’epertoire
Ex\(’ecute le point d’entr\(’ee correspondant du format de paquet source (depuis dpkg 1.15.8). Ce point d’entr\(’ee doit \(^etre utilis\(’e avant toute construction du paquet (dpkg-buildpackage l’utilise tr\(‘es t\(^ot, avant m\(^eme debian/rules clean). Cette commande est idempotente et peut \(^etre lanc\(’ee plusieurs fois. Tous les formats source ne mettent pas en \(oeuvre ce branchement et ceux qui le font pr\(’eparent l’arborescence source pour la construction, par exemple en garantissant que les correctifs Debian sont appliqu\(’es.
--after-build r\(’epertoire
Ex\(’ecute le point d’entr\(’ee correspondant du format de paquet source (depuis dpkg 1.15.8). Ce point d’entr\(’ee doit \(^etre utilis\(’e apr\(‘es toute construction du paquet (dpkg-buildpackage l’utilise en dernier). Cette commande est idempotente et peut \(^etre lanc\(’ee plusieurs fois. Tous les formats source ne mettent pas en \(oeuvre ce branchement et ceux qui le font s’en servent pour d\(’efaire ce qui a \(’et\(’e fait par --before-build.
--commit [r\(’epertoire] ...
Enregistre les modifications dans l’arborescence source d\(’ecompress\(’ee dans r\(’epertoire (depuis dpkg 1.16.1). Cette commande peut accepter des param\(‘etres suppl\(’ementaires selon le format source. Elle provoquera une erreur pour les formats o\(‘u cette op\(’eration n’a pas de signification.
-?, --help Affiche un message d’aide puis quitte. Les options de construction et d’extraction sp\(’ecifiques au format peuvent \(^etre montr\(’ees avec l’option --format.
--version
Affiche le num\(’ero de version puis quitte.

OPTIONS

Options de construction g\(’en\(’erique

-cfichier-de-contr\(^ole
Indique le principal fichier de contr\(^ole des sources o\(‘u trouver les renseignements. Par d\(’efaut, c’est le fichier debian/control. Lorsqu’un chemin relatif est fourni, on consid\(‘ere qu’il est relatif au r\(’epertoire le plus \(’elev\(’e de l’arborescence source.
-lfichier-des-changements
Indique le journal des modifications o\(‘u trouver des renseignements. Par d\(’efaut, c’est le fichier debian/changelog. Lorsqu’un chemin relatif est fourni, on consid\(‘ere qu’il est relatif au r\(’epertoire le plus \(’elev\(’e de l’arborescence source.
-Fformat-du-fichier-des-changements
Indique le format du fichier des changements. Voir dpkg-parsechangelog(1) pour plus d’informations \(‘a propos des formats g\(’er\(’es.
--format=valeur
Utilise le format indiqu\(’e pour la construction du paquet source (depuis dpkg 1.14.17). Ce choix remplace le format indiqu\(’e dans debian/source/format.
-Vnom=valeur
Fixe la valeur d’une variable de substitution. Consultez deb-substvars(5) pour une discussion sur la valeur de substitution.
-Tfichier-substvars
Lit les variables de substitution dans fichier-substvars ; par d\(’efaut aucun fichier n’est lu. Cette option peut \(^etre utilis\(’ee plusieurs fois pour lire des variables de substitution depuis plusieurs fichiers (depuis dpkg 1.15.6).
-Dchamp=valeur
Remplace ou ajoute en sortie un champ dans le fichier de contr\(^ole.
-Uchamp Supprime en sortie un champ dans le fichier de contr\(^ole.
-Zcompression, --compression=compression
Sp\(’ecifie le niveau de compression \(‘a utiliser pour les fichiers archive et diff cr\(’e\(’es (--compression depuis dpkg 1.15.5). Notez que cette option ne causera pas la recompression des archives existantes, cela ne concerne que les nouveaux fichiers. Les valeurs accept\(’ees sont les suivantes : gzip, bzip2, lzma et xz. L’option par d\(’efaut est xz pour les formats 2.0 et plus r\(’ecents, et gzip pour le format 1.0. xz n’est g\(’er\(’e que depuis dpkg 1.15.5.
-zniveau, --compression-level=niveau
Niveau de compression \(‘a utiliser (--compression-level depuis dpkg 1.15.5). Comme avec -Z cela ne concerne que les fichiers nouvellement cr\(’e\(’es. Les valeurs prises possibles sont les suivantes : 1 \(‘a 9, best et fast. La valeur par d\(’efaut est 9 pour gzip et bzip2, 6 pour xz et lzma.
-i[expression-rationnelle], --diff-ignore[=expression-rationnelle]
Il est possible de donner une expression rationnelle Perl pour filtrer les fichiers qui doivent \(^etre \(’elimin\(’es de la liste des fichiers pour le \(Fo diff \(Fc (--diff-ignore depuis dpkg 1.15.6). Cette liste est cr\(’e\(’ee avec une commande \(Fo find \(Fc. Si le fichier source en construction est un fichier source de version 3 utilisant un syst\(‘eme de suivi de versions, cette option est utile pour ignorer les modifications non envoy\(’ees. Utiliser -i.* les ignorera toutes.
L’option -i active cette fonction avec une expression rationnelle par d\(’efaut (en pr\(’eservant toutes les modifications faites avec l’expression rationnelle par d\(’efaut par une utilisation pr\(’ec\(’edente de --extend-diff-ignore) qui couvre les fichiers de contr\(^ole des plus usuels syst\(‘emes de gestion de version, les fichiers de sauvegarde, les fichiers d’\(’echange et les r\(’epertoires utilis\(’es par Libtool. Il ne peut y avoir qu’une seule expression rationnelle active ; avec de multiples options -i, seule la derni\(‘ere mentionn\(’ee sera prise en compte.
C’est tr\(‘es utile pour supprimer des fichiers qui sont inclus dans le diff, par exemple, si vous maintenez un source avec un syst\(‘eme de contr\(^ole de version et que voulez construire un paquet source sans inclure des fichiers et r\(’epertoires additionnels qu’il contient g\(’en\(’eralement (par exemple CVS/, .cvsignore, .svn/). L’expression rationnelle par d\(’efaut est d\(’ej\(‘a tr\(‘es exhaustive, mais si avez besoin de la remplacer, veuillez noter que par d\(’efaut, il sait v\(’erifier n’importe quelle partie d’un chemin, donc si vous voulez trouver le d\(’ebut d’un nom de fichier ou des noms de fichiers complets, vous devrez fournir les caract\(‘eres sp\(’eciaux vous-m\(^eme (par exemple \(Fo (^|/) \(Fc, \(Fo ($|/) \(Fc).
--extend-diff-ignore=expression-rationnelle
L’expression rationnelle Perl indiqu\(’ee compl\(’etera la valeur par d\(’efaut utilis\(’ee par --diff-ignore et sa valeur courante si elle est d\(’efinie (depuis dpkg 1.15.6). Cela est effectu\(’e en concat\(’enant \(Fo |expression-rationnelle \(Fc \(‘a la valeur existante. Cette option est pratique dans debian/source/options pour exclure certains fichiers auto-cr\(’e\(’es de la cr\(’eation automatique de correctifs.
-I[motif-fichier], --tar-ignore[=motif-fichier]
Avec cette option, le fichier est pass\(’e \(‘a l’option --exclude de tar(1) quand on veut cr\(’eer un fichier .orig.tar ou .tar (--tar-ignore depuis dpkg 1.15.6). Par exemple, -ICVS fera que tar sautera les r\(’epertoires du CVS quand il doit cr\(’eer un fichier .tar.gz. On peut r\(’ep\(’eter cette option pour exclure \(‘a partir de plusieurs motifs.
-I ajoute par d\(’efaut des options --exclude qui \(’elimineront les fichiers et les r\(’epertoires de contr\(^oles des syst\(‘emes les plus connus de contr\(^ole de version, les fichiers d’\(’echange et de sauvegarde et les r\(’epertoires utilis\(’es par Libtool.
Note : m\(^eme si elles ont des r\(^oles similaires, -i et -I ont une syntaxe et une s\(’emantique tr\(‘es diff\(’erentes. -i ne peut \(^etre sp\(’ecifi\(’e qu’une fois et re\(,coit une expression rationnelle compatible avec le langage Perl qui est appliqu\(’ee sur chaque chemin relatif complet de chaque fichier. -I peut \(^etre sp\(’ecifi\(’e plusieurs fois et prend un motif de nom de fichier avec les m\(’eta-caract\(‘eres du shell. Le motif est appliqu\(’e au chemin relatif complet mais aussi \(‘a chaque partie du chemin individuellement. La s\(’emantique exacte de l’option --exclude de tar est un peu compliqu\(’ee, voir https://www.gnu.org/software/tar/manuel/tar.html#wildcards pour une documentation plus compl\(‘ete.
L’expression rationnelle et le motif par d\(’efaut pour les deux options peuvent \(^etre trouv\(’es dans la sortie de la commande --help.

Options d’extraction g\(’en\(’eriques

--no-copy Ne copie pas l’archive d’origine \(‘a c\(^ot\(’e de l’extraction du paquet source (depuis dpkg 1.14.17).
--no-check
Ne v\(’erifie pas les signatures et les sommes de contr\(^ole avant de d\(’epaqueter(depuis dpkg 1.14.17).
--no-overwrite-dir
Ne pas remplacer le r\(’epertoire d’extraction s’il existe d\(’ej\(‘a (depuis dpkg 1.18.8)
--require-valid-signature
Refuse de d\(’ecompresser le paquet source s’il ne contient pas de signature OpenPGP pouvant \(^etre v\(’erifi\(’ee (depuis dpkg 1.15.0) soit avec le fichier de cl\(’es trustedkeys.gpg de l’utilisateur, un des fichiers de cl\(’es propre \(‘a un distributeur ou un des fichiers de cl\(’es officiels de Debian (/usr/share/keyrings/debian-keyring.gpg et /usr/share/keyrings/debian-maintainers.gpg).
--require-strong-checksums
Refuse de d\(’ecompresser le paquet source s’il ne contient pas de somme de contr\(^ole robuste (depuis dpkg 1.18.7). Actuellement, SHA-256 est le seul type de somme de contr\(^ole consid\(’er\(’e comme robuste.
--ignore-bad-version
Transforme la v\(’erification des mauvaises versions des paquets source en avertissement non fatal (since dpkg 1.17.7). Cette option sera seulement n\(’ecessaire quand on extrait des anciens paquets source avec des versions cass\(’ees, pour pr\(’eserver la compatibilit\(’e avec les versions pr\(’ec\(’edentes.

FORMATS DE PAQUET SOURCE

Si vous ne savez pas quel format source utiliser, il est conseill\(’e de choisir soit \(Fo 3.0 (quilt) \(Fc soit \(Fo 3.0 (native) \(Fc. Voir https://wiki.debian.org/Projects/DebSrc3.0 pour plus d’informations sur la mise en \(oeuvre de ces formats dans Debian.

Format : 1.0

Un paquet source dans ce format se compose soit d’un .orig.tar.gz associ\(’e \(‘a un .diff.gz ou un simple .tar.gz (dans ce cas, le paquet est appel\(’e natif native). L’archive tar originale pourrait \(^etre accompagn\(’ee de fa\(,con facultative d’une signature amont s\(’epar\(’ee .orig.tar.gz.asc, extraction prise en charge depuis dpkg 1.18.5.
Extraction
Extraire un paquet natif revient \(‘a une simple extraction de l’archive tar dans le r\(’epertoire cible. L’extraction d’un paquet non natif consiste au d\(’epaquetage du .orig.tar.gz puis l’application des correctifs contenus dans le .diff.gz. La date de tous les fichiers correctifs est r\(’egl\(’ee \(‘a celle du moment de l’extraction depuis le paquet source (cela \(’evite les horodatages faux menant \(‘a des probl\(‘emes lorsque des fichiers g\(’en\(’er\(’es automatiquement sont modifi\(’es). Le diff peut cr\(’eer de nouveaux fichiers (tout le r\(’epertoire debian est cr\(’e\(’e de cette fa\(,con) mais ne peut pas supprimer de fichiers (les fichiers vides seront laiss\(’es l\(‘a).
Construction
Construire un paquet natif revient simplement \(‘a cr\(’eer une archive tar avec le r\(’epertoire du source. La cr\(’eation d’un paquet non natif consiste \(‘a extraire l’archive d’origine dans un r\(’epertoire s\(’epar\(’e \(Fo .orig \(Fc puis \(‘a r\(’eg\(’en\(’erer le .diff.gz en comparant le r\(’epertoire du paquet source avec le r\(’epertoire \(Fo .orig \(Fc.
Options de construction (avec --build) :
Si l’on donne un second argument, ce sera le nom du r\(’epertoire source d’origine ou le nom du fichier tar ou bien une cha\(^ine vide si le paquet est un \(Fo Debian pure souche \(Fc et n’a donc pas de fichiers \(Fo diffs \(Fc pour sa \(Fo debianisation \(Fc. S’il n’y a pas de second argument, dpkg-source cherche le fichier tar des sources d’origine paquet_version-amont.orig.tar.gz ou bien le r\(’epertoire source d’origine r\(’epertoire.orig selon les param\(‘etres -sX.
Les options -sa, -sp, -sk, -su et -sr ne remplacent pas les fichiers tar ou les r\(’epertoires existants. Pour cela, il faut utiliser les options -sA, -sP, -sK, -sU et -sR.
-sk Sp\(’ecifie que le source d’origine est attendu sous forme tar ; par d\(’efaut, paquet_version-amont.orig.tarextension. Il le laisse en place en tant que fichier tar ou le copie dans le r\(’epertoire en cours s’il n’y est pas d\(’ej\(‘a. Le fichier sera d\(’epaquet\(’e dans r\(’epertoire.orig pour la g\(’en\(’eration du fichier diff.
-sp Comme -sk mais supprimera le r\(’epertoire \(‘a nouveau par la suite.
-su Quand on sp\(’ecifie que le source d’origine est un r\(’epertoire ; la valeur par d\(’efaut est le r\(’epertoire paquet-version-amont.orig et dpkg-source cr\(’ee une nouvelle archive du source d’origine.
-sr Comme -su mais supprimera ce r\(’epertoire apr\(‘es utilisation.
-ss Indique que le source d’origine est disponible \(‘a la fois comme un r\(’epertoire et comme un fichier tar. dpkg-source se servira du r\(’epertoire pour cr\(’eer le \(Fo diff \(Fc, mais du fichier tar pour cr\(’eer le fichier .dsc. Aussi, faire attention avec cette option. Si le r\(’epertoire et le fichier tar ne correspondent pas, il en r\(’esulte une mauvaise archive source.
-sn Indique de ne pas chercher de source d’origine et de ne pas cr\(’eer de \(Fo diff \(Fc. Le second argument, s’il existe, doit \(^etre une cha\(^ine vide. Cela sert pour les paquets Debian pure souche qui n’ont pas un source d’origine distincte et donc pas de fichier \(Fo diff \(Fc de debianisation.
-sa or -sA Indique comme source d’origine soit un fichier tar, soit un r\(’epertoire — le deuxi\(‘eme argument, s’il existe, doit \(^etre l’un d’eux ou bien une cha\(^ine vide (cela revient \(‘a utiliser l’option -sn). Quand un fichier tar existe, il est d\(’epaquet\(’e pour cr\(’eer le fichier \(Fo diff \(Fc ; ensuite il est supprim\(’e (cela revient \(‘a utiliser l’option -sp) ; quand un r\(’epertoire est trouv\(’e, il est empaquet\(’e et dpkg-source cr\(’ee le source d’origine et supprime ensuite ce r\(’epertoire (cela revient \(‘a utiliser l’option -sr) ; quand ni l’un ni l’autre n’est trouv\(’e, dpkg-source suppose que le paquet ne poss\(‘ede pas de fichier \(Fo diff \(Fc de debianisation, mais seulement une simple archive source (cela revient \(‘a utiliser l’option -sn). Quand les deux sont trouv\(’es, dpkg-source ignore le r\(’epertoire et le remplace si l’option -sA a \(’et\(’e sp\(’ecifi\(’ee (cela revient \(‘a utiliser l’option -sP) ou il provoque une erreur si l’option -sa a \(’et\(’e sp\(’ecifi\(’ee. L’option par d\(’efaut est -sa.
--abort-on-upstream-changes
Ce processus \(’echoue si le fichier de diff\(’erences contient des modifications apport\(’ees \(‘a des fichiers en dehors du sous-r\(’epertoire debian (depuis dpkg 1.15.8). Cette option n’est pas autoris\(’ee dans debian/source/options mais peut \(^etre utilis\(’ee dans debian/source/local-options.
options d’extraction (avec --extract) :
Dans tous ces cas, l’arborescence existante des sources d’origine est supprim\(’ee.
-sp Quand on extrait le r\(’epertoire source d’origine (s’il existe), il est conserv\(’e en tant que fichier tar. S’il n’est pas d\(’ej\(‘a dans le r\(’epertoire courant ou si ce r\(’epertoire contient un fichier diff\(’erent, le fichier tar est copi\(’e dans ce r\(’epertoire. (Cela est le comportement par d\(’efaut).
-su D\(’epaquetage de l’arborescence du r\(’epertoire source d’origine.
-sn Assure que le r\(’epertoire source d’origine ne sera ni copi\(’e dans le r\(’epertoire en cours, ni d\(’epaquet\(’e. Si une arborescence source d’origine est pr\(’esente dans le r\(’epertoire courant, elle est toujours supprim\(’ee.
Toutes les options -sX s’excluent mutuellement. Si vous en indiquez plusieurs, seule la derni\(‘ere sera prise en compte.
--skip-debianization
Passe l’\(’etape d’application du fichier de diff\(’erences Debian aux sources amont (depuis dpkg 1.15.1).

Format : 2.0

Extraction prise en charge depuis dpkg 1.13.9, construction depuis dpkg 1.14.8. Aussi connu sous le nom de \(Fo wig&pen \(Fc. Ce format n’est pas recommand\(’e pour une utilisation massive, le format \(Fo 3.0 (quilt) \(Fc le remplace. Wig&pen a \(’et\(’e la premi\(‘ere sp\(’ecification d’une nouvelle g\(’en\(’eration de format de paquet source.
Le comportement de ce format est le m\(^eme que pour le format \(Fo 3.0 (quilt) \(Fc sauf qu’il n’utilise pas de liste explicite de correctifs. Tous les fichiers dans debian/patches/ correspondant \(‘a l’expression rationnelle Perl [\w-]+ doivent \(^etre des correctifs valables : ils sont appliqu\(’es au moment de l’extraction.
Lors de la construction d’un nouveau paquet source, toute modification apport\(’ee au source amont est enregistr\(’ee dans un correctif nomm\(’e zz_debian-diff-auto.

Format : 3.0 (native)

Pris en charge depuis dpkg 1.14.17. Ce format est une extension du format de paquet natif tel que d\(’efini dans le format 1.0. Il g\(‘ere toutes les m\(’ethodes de compression et ignore par d\(’efaut tout fichier et r\(’epertoire sp\(’ecifique \(‘a VCS ainsi que de nombreux fichiers temporaires (voir la valeur par d\(’efaut associ\(’ee \(‘a l’option -I dans la sortie de --help).

Format : 3.0 (quilt)

Pris en charge depuis 1.14.17. Un paquet source dans ce format contient au moins une archive tar d’origine (.orig.tar.ext o\(‘u ext peut \(^etre gz, bz2 lzma et xz) et une archive tar debian (.debian.tar.ext). Il peut \(’egalement contenir d’autres archives tar d’origine (.orig-composant.tar.ext). composant ne peut \(^etre constitu\(’e que de caract\(‘eres alphanum\(’eriques (\(Fo a-zA-Z0-9 \(Fc) et de tirets (\(Fo - \(Fc). Chaque archive tar originale peut \(^etre accompagn\(’ee de fa\(,con facultative d’une signature amont s\(’epar\(’ee (.orig.tar.ext.asc et .orig-composant.tar.ext.asc), extraction prise en charge depuis dpkg 1.17.20, construction depuis dpkg 1.18.5.
Extraction
L’archive principale tar d’origine est extraite tout d’abord, puis toutes les autres archives tar d’origine sont extraites dans des sous-r\(’epertoires dont le nom est form\(’e \(‘a partir de la partie composant de leur nom. L’archive tar Debian est extraite du r\(’epertoire source, apr\(‘es la suppression de tout r\(’epertoire debian existant. Notez que l’archive tar Debian doit contenir un sous-r\(’epertoire debian, mais elle peut \(’egalement contenir des fichiers binaires en dehors de ce r\(’epertoire (voir l’option --include-binaries).
Toutes les modifications figurant dans debian/patches/distributeur.series ou debian/patches/series sont alors appliqu\(’ees, o\(‘u distributeur sera le nom en minuscules du distributeur actuel, ou Debian s’il n’y a pas de distributeur d\(’efini. Si l’ancien fichier est utilis\(’e et qu’il n’y en a pas de plus r\(’ecent (ou si c’est un lien symbolique), alors celui-ci est remplac\(’e par un lien symbolique vers l’ancien. Cette disposition vise \(‘a simplifier l’utilisation de quilt pour g\(’erer l’ensemble des correctifs. Les fichiers de s\(’eries propres au distributeur sont destin\(’es \(‘a permettre de s\(’erialiser plusieurs branches de d\(’eveloppement en se basant sur le distributeur, d’une mani\(‘ere d\(’eclarative, de pr\(’ef\(’erence au codage ouvert de cette gestion dans debian/rules. Cela est particuli\(‘erement utile quand le source \(‘a besoin de correctifs de mani\(‘ere conditionnelle car les fichiers affect\(’es n\(cqont pas de gestion interne d\(cqinclusion conditionnelle. Notez toutefois que si dpkg-source analyse correctement les fichiers de s\(’eries avec les options utilis\(’ees pour l’application du correctif (stock\(’ees sur chaque ligne apr\(‘es le nom du correctif et une ou plusieurs espaces), il n’ignore pas ces options et s’attendra toujours \(‘a ce que les correctifs puissent \(^etre appliqu\(’es avec l’option -p1 de patch. Il va donc \(’emettre un avertissement lorsqu’il rencontrera ces options, et la construction est susceptible d’\(’echouer.
Notez que lintian(1) \(’emettra des avertissements sans condition lors de l’utilisation de s\(’eries de distributeur du fait d’une r\(‘egle controvers\(’ee particuli\(‘ere de Debian qui ne devrait pas affecter une utilisation externe ; pour les faire taire, le profil lintian de dpkg peut \(^etre utilis\(’e en passant l’option \(Fo--profile dpkg\(Fc \(‘a lintian(1).
La date de tous les fichiers correctifs est celle du moment o\(‘u se d\(’eroule l’extraction du paquet source (cela \(’evite les horodatages faux menant \(‘a des probl\(‘emes lorsque des fichiers g\(’en\(’er\(’es automatiquement sont modifi\(’es).
Au contraire du comportement par d\(’efaut de quilt, les correctifs doivent s’appliquer sans d\(’ecalage (\(Fo fuzz \(Fc). Quand cela n’est pas le cas, il est sugg\(’er\(’e de les rafra\(^ichir avec quilt sinon dpkg-source se terminera avec une erreur en tentant de les appliquer.
Similaire au comportement par d\(’efaut de quilt, les modifications peuvent aussi supprimer des fichiers.
Le fichier .pc/applied-patches est cr\(’e\(’e si certains correctifs ont \(’et\(’e appliqu\(’es au cours de l’extraction.
Construction
Les originaux de toutes les archives tar trouv\(’ees dans le r\(’epertoire courant sont extraits dans un r\(’epertoire temporaire en suivant la m\(^eme logique que pour le d\(’epaquetage, le r\(’epertoire debian est copi\(’e dans le r\(’epertoire temporaire, et tous les correctifs except\(’e le correctif automatique debian-changes-version ou debian-changes, selon --single-debian-patch) sont appliqu\(’ees. Le r\(’epertoire temporaire est compar\(’e \(‘a celui du paquet source. Si le fichier de diff\(’erences n’est pas vide, la construction \(’echoue \(‘a moins que --single-debian-patch ou --auto-commit aient \(’et\(’e utilis\(’es, et dans ce cas le diff est stock\(’e dans le correctif automatique. Si le correctif automatique est cr\(’e\(’e ou supprim\(’e, il est ajout\(’e ou supprim\(’e dans le fichier \(Fo series \(Fc et les m\(’etadonn\(’ees de quilt.
Tout changement dans un fichier binaire ne peut \(^etre indiqu\(’e dans le diff et va d\(’eboucher sur un \(’echec \(‘a moins que le responsable ne d\(’ecide d\(’elib\(’er\(’ement d’inclure cette modification binaire dans l’archive tar Debian (en le listant dans debian/source/include-binaries). La construction pourra \(’egalement \(’echouer si des fichiers binaires sont trouv\(’es dans le sous-r\(’epertoire debian sans \(^etre indiqu\(’e dans la liste blanche de debian/source/include-binaries.
Le r\(’epertoire debian mis \(‘a jour et la liste des binaires modifi\(’es sont ensuite utilis\(’es pour recr\(’eer l’archive tar debian.
Le diff g\(’en\(’er\(’e automatiquement n’inclut pas les changements sp\(’ecifiques sur les fichiers VCS ainsi sur que de nombreux fichiers temporaires (pour la valeur par d\(’efaut associ\(’ee \(‘a l’option -i, voir la sortie de --help). En particulier, le r\(’epertoire .pc utilis\(’e par quilt est ignor\(’e lors de la g\(’en\(’eration automatique du correctif.
Note : dpkg-source --before-build (et --build) prendront soin d’appliquer les correctifs indiqu\(’es dans le fichier series afin qu’un paquet soit toujours construit avec toutes les corrections appliqu\(’ees. Pour effectuer cette d\(’etection, il recherche la liste des correctifs non appliqu\(’es (ils sont mentionn\(’es dans le fichier series mais pas dans .pc/applied-patches) et si le premier de cette liste peut \(^etre appliqu\(’e sans erreur, il les applique tous. L’option --no-preparation peut \(^etre utilis\(’ee pour d\(’esactiver ce comportement.
Enregistrement des modifications
--commit [r\(’epertoire] [nom-du-correctif] [fichier-de-correctif]
Cr\(’ee un correctif correspondant aux modifications locales non g\(’er\(’ees par le syst\(‘eme de gestion de correctifs quilt et les int\(‘egre dans la liste des correctifs sous le nom nom-du-correctif. Si le nom est omis, il sera demand\(’e interactivement. Si fichier-de-correctifs est indiqu\(’e, il est utilis\(’e comme fichier de modifications locales \(‘a int\(’egrer. Une fois int\(’egr\(’e, un \(’editeur est lanc\(’e afin de permettre d’ajouter des m\(’eta-informations dans l’en-t\(^ete du correctif.
Le fait de passer fichier-de-correctifs est essentiellement utile apr\(‘es un \(’echec de construction qui pr\(’eg\(’en\(‘ere ce fichier. Sur ces bases, le fichier est supprim\(’e apr\(‘es int\(’egration. Veuillez \(’egalement noter que les modifications contenues dans le fichier de correctifs doivent d\(’ej\(‘a \(^etre appliqu\(’ees dans l’arborescence et que les fichiers modifi\(’es par le correctif ne doivent pas comporter de modifications suppl\(’ementaires.
Si la cr\(’eation de correctif d\(’etecte des fichiers binaires modifi\(’es, ils seront ajout\(’es automatiquement \(‘a debian/source/include-binaries afin de pouvoir \(^etre inclus dans l’archive debian (de fa\(,con analogue \(‘a ce que ferait dpkg-source --include-binaries --build).
Options de construction
--allow-version-of-quilt-db=version
Autorise dpkg-source \(‘a construire le fichier si la version des m\(’etadonn\(’ees de quilt est celle indiqu\(’ee, m\(^eme si dpkg-source n’en n’a pas connaissance (depuis dpkg 1.15.5.4). En fait, cela indique que la version indiqu\(’ee des m\(’etadonn\(’ees de quilt est compatible avec la version 2 que dpkg-source g\(‘ere. La version des m\(’etadonn\(’ees de quilt est conserv\(’ee dans .pc/.version.
--include-removal
N’ignore pas les fichiers supprim\(’es et les inclut dans le fichier de modifications g\(’en\(’er\(’e automatiquement.
--include-timestamp
Inclut la date dans le correctif g\(’en\(’er\(’e automatiquement.
--include-binaries
Ajoute tous les binaires modifi\(’es dans l’archive tar debian. Les ajoute aussi \(‘a debian/source/include-binaries : elles seront ajout\(’ees par d\(’efaut dans les constructions suivantes aussi cette option n’est donc plus n\(’ecessaire.
--no-preparation
N’essaye pas de pr\(’eparer l’arbre de la construction en appliquant les correctifs qui ne sont apparemment pas appliqu\(’es (depuis dpkg 1.14.8).
--single-debian-patch
Utilise debian/patches/debian-changes au lieu de debian/patches/debian-changes-version comme nom du correctif automatique cr\(’e\(’e au cours de la construction (depuis dpkg 1.15.5.4). Cette option est particuli\(‘erement pratique lorsque le paquet est g\(’er\(’e avec un outil de gestion de versions et qu’un jeu de correctifs ne peut \(^etre cr\(’e\(’e de fa\(,con fiable. Dans ce cas, les diff\(’erences avec la version amont doivent \(^etre conserv\(’ees dans un correctif unique. Cette option serait indiqu\(’ee dans debian/source/local-options et accompagn\(’ee par un fichier debian/source/local-patch-header qui explique la meilleure m\(’ethode pour revoir les corrections sp\(’ecifiques \(‘a Debian, par exemple dans le gestionnaire de versions utilis\(’e.
--create-empty-orig
Cr\(’ee automatiquement l’archive principale tar d’origine vide si elle est manquante et qu’il existe des archives tar d’origine additionnelles (depuis dpkg 1.15.6). Cette option peut \(^etre utilis\(’ee lorsque le paquet source est une collection de diff\(’erents sources amont et qu’il n’existe pas de logiciel \(Fo principal \(Fc.
--no-unapply-patches, --unapply-patches
Par d\(’efaut, dpkg-source retire automatiquement les correctifs dans le point d’entr\(’ee --after-build s’ils ont \(’et\(’e appliqu\(’es pendant --before-build (--unapply-patches depuis dpkg 1.15.8, --no-unapply-patches depuis dpkg 1.16.5). Ces options permettent de d\(’esactiver ou activer unilat\(’eralement ce retrait des correctifs. Elles ne sont permises que dans debian/source/local-options afin que tous les paquets source cr\(’e\(’es aient le m\(^eme comportement par d\(’efaut.
--abort-on-upstream-changes
Ce processus \(’echouera si un correctif automatique a \(’et\(’e cr\(’e\(’e (depuis dpkg 1.15.8). Cette option peut servir \(‘a v\(’erifier que toutes les modifications ont \(’et\(’e enregistr\(’ees correctement dans des correctifs quilt distincts avant la construction du paquet source. Elle n’est pas autoris\(’ee dans debian/source/options mais peut prendre place dans debian/source/local-options.
--auto-commit
Pas d’\(’echec du processus de construction si un correctif automatique a \(’et\(’e cr\(’e\(’e : il est enregistr\(’e automatiquement dans le fichier series de quilt.
Options d’extraction
--skip-debianization
Passe l’\(’etape d’extraction de l’archive tar debian des sources amont (depuis dpkg 1.15.1).
--skip-patches
Ne pas appliquer des correctifs \(‘a la fin de l’extraction (depuis dpkg 1.14.18).

Format : 3.0 (custom)

Pris en charge depuis dpkg 1.14.17. Ce format est particulier. Il ne repr\(’esente pas un r\(’eel format de paquet source mais peut \(^etre utilis\(’e pour cr\(’eer des paquets sources avec des fichiers arbitraires.
Options de construction
Tous les arguments qui ne sont pas des options sont pris pour des fichiers \(‘a int\(’egrer dans le paquet source g\(’en\(’er\(’e. Ils doivent exister et \(^etre de pr\(’ef\(’erence dans le r\(’epertoire courant. Au moins un fichier doit \(^etre donn\(’e.
--target-format=valeur
Required. D\(’efinit le format r\(’eel du paquet source g\(’en\(’er\(’e. Le fichier g\(’en\(’er\(’e .dsc contiendra cette valeur dans son champ format et non \(Fo 3.0 (custom) \(Fc.

Format : 3.0 (git)

Pris en charge depuis dpkg 1.14.17. Ce format est exp\(’erimental.
Un paquet source qui utilise ce format est constitu\(’e d’un seul ensemble d’un d\(’ep\(^ot git .git qui contient les sources du paquet. Il peut \(’egalement exister un fichier .gitshallow qui donne les r\(’evisions d’un clone git \(Fo shallow \(Fc.
Extraction
Cet ensemble est clon\(’e sous forme d’un d\(’ep\(^ot git dans le r\(’epertoire cible. S’il existe un fichier .gitshallow, il est install\(’e en tant que .git/shallow dans le d\(’ep\(^ot git clon\(’e.
Veuillez noter que, par d\(’efaut, le nouveau d\(’ep\(^ot aura la m\(^eme branche r\(’ecup\(’er\(’ee que celle qui \(’etait r\(’ecup\(’er\(’ee dans les sources d’origine (souvent \(Fo master \(Fc mais cela peut \(^etre tout \(‘a fait autre chose). Toutes les autres branches seront disponibles sous remotes/origin.
Construction
Avant d’aller plus loin, quelques v\(’erifications sont effectu\(’ees afin de s’assurer qu’il n’existe aucun changement non ignor\(’e non soumis.
git-bundle(1) permet de cr\(’eer un ensemble \(‘a partir du d\(’ep\(^ot git. Par d\(’efaut, toutes les branches et \(’etiquettes du d\(’ep\(^ot sont incluses dans cet ensemble.
Options de construction
--git-ref=r\(’ef
Permet d’indiquer une r\(’ef\(’erence git \(‘a inclure dans l’ensemble git. L’utilisation de cette option d\(’esactive le comportement par d\(’efaut qui est d’inclure toutes les branches et \(’etiquettes. Cette option peut \(^etre utilis\(’ee plusieurs fois. Le param\(‘etre r\(’ef peut \(^etre le nom d’une branche ou une \(’etiquette \(‘a inclure. Il peut \(’egalement \(^etre tout param\(‘etre que l’on peut passer \(‘a git-rev-list(1). Par exemple, pour n’inclure que la branche \(Fo master \(Fc, on peut utiliser --git-ref=master. Pour inclure toutes les \(’etiquettes et toutes les branches, sauf la branche priv\(’ee, on peut utiliser -git-ref=--all -- git-ref=^private.
--git-depth=nombre
Cr\(’ee un clone \(Fo shallow \(Fc dont l’historique est tronqu\(’e au nombre indiqu\(’e de r\(’evisions.

Format : 3.0 (bzr)

Pris en charge depuis dpkg 1.14.17. Ce format est exp\(’erimental. Il cr\(’ee une archive tar contenant le d\(’ep\(^ot bzr correspondant.
Extraction
L’archive tar est d\(’ecompress\(’ee puis bzr est utilis\(’e afin de r\(’ecup\(’erer la branche courante.
Construction
Avant d’aller plus loin, quelques v\(’erifications sont effectu\(’ees afin de s’assurer qu’il n’existe aucun changement non ignor\(’e non soumis.
Ensuite, la partie sp\(’ecifique du r\(’epertoire source du gestionnaire de versions est copi\(’ee dans un r\(’epertoire temporaire. Avant que ce r\(’epertoire temporaire ne soit empaquet\(’e dans une archive tar, divers nettoyages sont effectu\(’es pour \(’economiser de l’espace.

DIAGNOSTICS

aucun format source indiqu\(’e dans debian/source/format

Le fichier debian/source/format devrait toujours exister et indiquer le format source souhait\(’e. Pour pr\(’eserver la compatibilit\(’e avec d’anciennes versions, le format \(Fo 1.0 \(Fc est implicite quand le fichier n’existe pas. Il est d\(’econseill\(’e de d\(’ependre de ce comportement qui pourrait \(^etre modifi\(’e dans de futures versions de dpkg-source, qui \(’echoueront alors en l’absence d’une mention explicite de format.
Cela est d\(^u au fait que le format \(Fo 1.0 \(Fc n’est plus le format recommand\(’e, qu’il est conseill\(’e de choisir un des formats les plus r\(’ecents (\(Fo 3.0 (quilt) \(Fc ou \(Fo 3.0 (native) \(Fc) mais que dpkg-source ne le fera pas automatiquement. Si vous souhaitez continuer \(‘a utiliser l’ancien format, il est n\(’ecessaire d’\(^etre explicite et indiquer \(Fo 1.0 \(Fc dans debian/source/format.

le fichier de diff\(’erences modifie les fichiers amont suivants

Lors de l’utilisation du format source \(Fo 1.0 \(Fc, il est d\(’econseill\(’e de modifier directement les fichiers amont car les modifications restent alors cach\(’ees et souvent non document\(’ees dans le fichier diff.gz. Au contraire, il est conseill\(’e de conserver les modifications sous forme de correctifs dans le r\(’epertoire debian et de les appliquer au moment de la construction. Pour \(’eviter ces op\(’erations plus complexes, vous pouvez \(’egalement choisir le format \(Fo 3.0 (quilt) \(Fc qui permet ces op\(’erations de mani\(‘ere native.

impossible d’identifier les changements de fichier

Les modifications des sources amont sont en g\(’en\(’eral conserv\(’ees dans des fichiers de correctifs mais certaines modifications ne peuvent \(^etre repr\(’esent\(’ees sous forme de tels fichiers qui ne peuvent modifier que des fichiers texte. Si vous essayez de remplacer un fichier avec un objet d’un type diff\(’erent (par exemple remplacer un fichier par un lien ou un r\(’epertoire), ce message d’erreur s’affichera.

le fichier fichier, nouvellement cr\(’e\(’e, ne sera pas repr\(’esent\(’e dans le fichier de diff\(’erences

Les fichiers vides ne peuvent pas \(^etre cr\(’e\(’es avec des correctifs. En cons\(’equence, la modification n’est pas enregistr\(’ee dans le paquet source, ce qui provoque cet avertissement.

le mode ex\(’ecutable permissions de fichier ne sera pas repr\(’esent\(’e dans le fichier de diff\(’erences

Les fichiers de correctifs n’enregistrent pas les permissions de fichiers et, en cons\(’equence, les permissions des ex\(’ecutables ne sont pas enregistr\(’ees dans le paquet source, ce qui provoque cet avertissement.

le mode sp\(’ecial permissions de fichier ne sera pas repr\(’esent\(’e dans le fichier de diff\(’erences

Les fichiers correctifs n’enregistrent pas les permissions de fichiers et, en cons\(’equence, les permissions modifi\(’ees ne sont pas enregistr\(’ees dans le paquet source, ce qui provoque cet avertissement.

ENVIRONNEMENT

DPKG_COLORS
D\(’efinit le mode de couleur (depuis dpkg 1.18.5). Les valeurs actuellement accept\(’ees sont auto (par d\(’efaut), always et never.
DPKG_NLS
Si cette variable est d\(’efinie, elle sera utilis\(’ee pour d\(’ecider l’activation de la prise en charge des langues (NLS - Native Language Support), connu aussi comme la gestion de l’internationalisation (ou i18n) (depuis dpkg 1.19.0). Les valeurs permises sont : 0 et 1 (par d\(’efaut).
SOURCE_DATE_EPOCH
Si cette option est utilis\(’ee, elle sera utilis\(’ee comme horodatage (en seconde \(‘a partir de \(Fo l’epoch \(Fc) pour fixer le \(Fo mtime \(Fc dans les entr\(’ees du fichier tar(5).
VISUAL EDITOR Utilis\(’e par les modules de format source \(Fo 2.0 \(Fc et \(Fo 3.0 (quilt) \(Fc.
GIT_DIR
GIT_INDEX_FILE GIT_OBJECT_DIRECTORY GIT_ALTERNATE_OBJECT_DIRECTORIES GIT_WORK_TREE Utilis\(’es par les modules de format source \(Fo 3.0 (git) \(Fc.

FICHIERS

debian/source/format

Ce fichier contient sur une seule ligne le format \(‘a utiliser pour construire le paquet source (les formats accept\(’es sont d\(’ecrits plus haut). Il ne doit pas contenir d’espace avant ou apr\(‘es l’indication du format.

debian/source/include-binaries

This file contains a list of pathnames of binary files (one per line) relative to the source root directory that should be included in the debian tarball. Leading and trailing spaces are stripped. Lines starting with \(oq#\(cq are comments and are skipped. Empty lines are ignored.

debian/source/options

Ce fichier contient la liste des options qui seront automatiquement ajout\(’ees au jeu d’options de ligne de commande lors de l’appel \(‘a dpkg-source --build ou dpkg-source --print-format. Des options comme --compression et --compression-level conviennent bien pour ce fichier.
Chaque option doit \(^etre plac\(’ee sur une ligne distincte. Les lignes vides et les lignes commen\(,cant par le caract\(‘ere \(Fo # \(Fc sont ignor\(’ees. Les caract\(‘eres initiaux \(Fo -- \(Fc doivent \(^etre retir\(’es et les options courtes ne peuvent pas \(^etre utilis\(’ees. Des espaces optionnelles sont autoris\(’ees autour du symbole \(Fo = \(Fc, ainsi que des guillemets optionnels autour de la valeur d’une option donn\(’ee. Voici un exemple d’un tel fichier :
# autoriser dpkg-source \(‘a cr\(’eer un fichier debian.tar.bz2 avec la
#compression maximale
compression = "bzip2"
compression-level = 9
# utiliser debian/patches/debian-changes comme correctif automatique
single-debian-patch
# ignorer les modifications dans config.{sub,guess}
extend-diff-ignore = "(^|/)(config.sub|config.guess)$"
Note : les options de format ne sont pas accept\(’ees dans ce fichier. Vous devriez utiliser debian/source/format \(‘a la place.

debian/source/local-options

Identique \(‘a debian/source/options mais n’est pas enregistr\(’e dans le paquet source cr\(’e\(’e. Ce fichier peut \(^etre utile pour conserver une pr\(’ef\(’erence propre au responsable ou au d\(’ep\(^ot de gestionnaire de versions o\(‘u le paquet source est g\(’er\(’e.

debian/source/local-patch-header et debian/source/patch-header

Texte en format libre qui sera ajout\(’e au d\(’ebut du correctif automatique cr\(’e\(’e dans les formats \(Fo 2.0 \(Fc et \(Fo 3.0 (quilt) \(Fc. local-patch-header n’est pas inclus dans le paquet source cr\(’e\(’e alors que patch-header l’est.

debian/patches/distributeur.series

debian/patches/series

Ce fichier comporte la liste de toutes les correctifs qui ont \(’et\(’e appliqu\(’es (dans l’ordre indiqu\(’e) aux sources amont. Les espaces situ\(’ees avant et apr\(‘es les noms sont ignor\(’ees. L’argument distributeur sera le nom en minuscules du distributeur ou debian si aucun distributeur n’est d\(’efini. Si le fichier de s\(’eries propre au distributeur n’existe pas, le fichier de s\(’eries sans distributeur sera utilis\(’e. Les lignes commen\(,cant par \(Fo # \(Fc sont des commentaires et sont ignor\(’ees, ainsi que les lignes vides. Les autres lignes d\(’ebutent par le nom du fichier de correctifs (relatif au r\(’epertoire debian/patches/) et se terminent \(‘a la premi\(‘ere espace ou \(‘a la fin de la ligne. Des options facultatives de quilt peuvent \(^etre ajout\(’ees jusqu’\(‘a la fin de la ligne ou jusqu’au premier caract\(‘ere \(Fo # \(Fc pr\(’ec\(’ed\(’e par une ou plusieurs espaces (ce qui indique le d\(’ebut d’un commentaire se terminant \(‘a la fin de la ligne).

BOGUES

Le moment o\(‘u se d\(’eroule le remplacement d’un champ par rapport \(‘a certaines d\(’eterminations de champ affich\(’ees sur la sortie standard est plut\(^ot embrouill\(’e.

TRADUCTION

Ariel VARDI <>, 2002. Philippe Batailler, 2006. Nicolas Fran\(,cois, 2006. Veuillez signaler toute erreur \(&#145;a <>.
⇧ Top