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

SYNOPSIS

dpkg-source [options] commande

DESCRIPTION

dpkg-source empaquete ou dépaquete 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éparé.

COMMANDES

-x fichier.dsc [répertoire-de-sortie]
Cette option sert à extraire un paquet source. On doit donner un seul argument sans option : le nom du fichier de contrôle des sources Debian (.dsc). Un deuxième argument sans option peut être donné pour indiquer le répertoire où extraire le paquet source, cela ne doit pas exister. Quand aucun répertoire n'est indiqué, le paquet source est extrait dans un répertoire source-version du répertoire courant.

dpkg-source lit, dans le fichier de contrôle, les noms des fichiers qui composent le paquet source ; il suppose qu'ils sont dans le même répertoire que le fichier .dsc.

Les fichiers extraits du paquet auront le même système de propriété et de permission que s'ils avaient été simplement créés -- les répertoires et les fichiers exécutables auront un système de permission égal à 0777 et les simples fichiers, 0666 ; ces deux systèmes étant modifiés par le masque de celui qui fait l'extraction ; si le répertoire parent est « setgid », les répertoires extraits le seront aussi et tous les fichiers et répertoires hériteront du système de propriété de ce groupe.

Si le paquet source utilise un format non-standard (actuellement, cela signifie tous les formats sauf le "1.0"), son nom sera enregistré dans debian/source/format de sorte que la construction du paquet source utilise le même format par défaut.

-b répertoire [paramètres-dans-un-format-spécifique]
Construit un paquet source. Le premier argument non optionnel est pris comme nom du répertoire contenant l'arborescence des sources Debianisées (c'est-à-dire avec un sous-répertoire debian et peut-être des modifications sur les fichiers d'origine). Selon le format du paquet source utilisé pour construire le paquet, d'autres paramètres peuvent être acceptés.

dpkg-source va construire le paquet source dans le premier format qui fonctionnera dans la liste suivante : le(s) format(s) indiqué(s) avec le paramètre de la ligne de commande --format, le format indiqué dans debian/source/format, « 1.0 ». L'utilisation de « 1.0 » comme dernier recours est dépréciée et sera retirée dans le futur. Le format source devrait toujours être indiqué dans debian/source/format. Voir la section FORMATS DE PAQUETS SOURCE pour une description plus détaillée des différents formats de paquet source.

--print-format répertoire
Affiche le format source qui serait utilisé pour construire le paquet source si dpkg-source -b répertoire était utilisé (dans les mêmes conditions et avec les mêmes options).

--before-build répertoire
Cette commande doit être utilisée avant toute construction du paquet (dpkg-buildpackage l'utilise très tôt, avant même debian/rules clean). Elle doit être « idempotent » et peut être lancée plusieurs fois. Tous les formats source ne mettent pas en oeuvre ce branchement et ceux qui le font préparent l'arborescence source pour la construction, par exemple en garantissant que les correctifs Debian sont appliqués.

--after-build répertoire
Cette commande doit être utilisée après toute construction du paquet (dpkg-buildpackage l'utilise en dernier). Elle doit être « idempotent » et peut être lancée plusieurs fois. Tous les formats source ne mettent pas en oeuvre ce branchement et ceux qui le font s'en servent pour défaire ce qui a été fait par --before-build..

-h, --help
Affiche un message d'aide puis quitte.
--version
Affiche le numéro de version puis quitte.

OPTIONS DE CONSTRUCTION GÉNÉRIQUES

-cfichier/control
Indique le principal fichier de contrôle des sources où trouver les renseignements. Par défaut, c'est le fichier debian/control. Lorsqu'un chemin relatif est fourni, on considère qu'il est relatif au répertoire le plus élevé de l'arborescence source.
-lfichier/changelog
Indique le fichier d'enregistrement des changements où trouver des renseignements. Par défaut, c'est le fichier debian/changelog. Lorsqu'un chemin relatif est fourni, on considère qu'il est relatif au répertoire le plus élevé de l'arborescence source.
-Fformat-du-changelog
Donne le format du fichier changelog. Par défaut, c'est une ligne spéciale, près de la fin du fichier, qui l'indique ; sinon, on utilise le format classique debian.
--format=valeur
Utilise le format indiqué pour la construction du paquet source. Ce choix remplace le format indiqué 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éfaut aucun fichier n'est lu. Cette option peut être utilisée plusieurs fois pour lire des variables de substitution depuis plusieurs fichiers.
-Dchamp=valeur
Remplace ou ajoute en sortie un champ dans le fichier de contrôle.
-Uchamp
Supprime en sortie un champ dans le fichier de contrôle.
-Zcompression, --compression=compression
Spécifie le niveau de compression à utiliser pour les fichiers créés (archives et fichiers diffs). Notez que cette option ne causera pas la recompression des archives existantes, cela ne concerne que les nouveaux fichiers. Les valeurs acceptées sont les suivantes : gzip, bzip2, lzma et xz. gzip étant l'option par défaut. xz n'est géré que depuis dpkg-dev 1.15.5.
-zniveau, --compression-level=niveau
Niveau de compression à utiliser. Comme avec -Z cela ne concerne que les fichiers nouvellement créés. Les valeurs prises possibles sont les suivantes : 1 à 9, best, et fast. 9 est la valeur par défaut.
-i[expr. rat.], --diff-ignore[=expr. rat.]
Il est possible de donner une expression rationnelle Perl pour filtrer les fichiers qui doivent être éliminés de la liste des fichiers pour le « diff ». Cette liste est créée avec une commande « find ». Si le fichier source en construction est un fichier source de version 3 utilisant un système de suivi de versions, cette option est utile pour ignorer les modifications non envoyées. L'option -i active cette fonction avec une expression rationnelle qui couvre les fichiers de contrôle des plus usuels systèmes de gestion de version, les fichiers de sauvegardes, les fichiers d'échange et les répertoires utilisés par Libtool. Il ne peut y avoir qu'une seule expression rationnelle active ; seule la dernière mentionnée sera prise en compte.

C'est très utile pour supprimer des fichiers qui sont inclus dans le diff, par exemple, si vous maintenez un source avec un système de contrôle de révision et que voulez construire un paquet source sans inclure des fichiers et répertoires additionnels qu'il contient généralement (par exemple CVS/, .cvsignore, .svn/). L'expression rationnelle par défaut est déjà très exhaustive, mais si avez besoin de la remplacer, veuillez noter que par défaut, il sait vérifier n'importe quelle partie d'un chemin, donc si vous voulez trouver le début d'un nom de fichier ou des noms de fichiers complets, vous devrez fournir les caractères spéciaux vous-même (par exemple'(^|/)', '($|/)').

--extend-diff-ignore=expr.rat.
L'expression rationnelle Perl indiquée complétera celle associée à -i en concaténant "|expr.rat. à l'expression rationnelle par défaut. Cette option est pratique das debian/source/options pour exclure certains fichiers auto-créés de la création automatique de correctifs.
-I[motif-fichier], --tar-ignore[=motif-fichier]
Avec cette option, le fichier est passé à l'option tar(1) quand on veut créer un fichier .orig.tar.gz ou .tar.gz. Par exemple, -ICVS fera que tar sautera les répertoires du CVS quand il doit créer un fichier .tar.gz. On peut répéter cette option pour exclure plusieurs fichiers.

-I ajoute par défaut des options «--exclude » qui élimineront les fichiers et les répertoires de contrôles des systèmes les plus connus de contrôle de version, les fichiers d'échange et de sauvegarde et les répertoires utilisés par Libtool.

Note : même si elles ont des rôles similaires, -i et -I ont une syntaxe et une sémantique très différentes. -i ne peut être spécifié qu'une fois et reçoit une expression rationnelle compatible avec le langage Perl qui est appliquée sur chaque chemin relatif complet de chaque fichier. I peut être spécifié plusieurs fois et prend un motif de nom de fichier avec les méta-caractères du shell. Le motif est appliqué au chemin relatif complet mais aussi à chaque partie du chemin individuellement. La sémantique exacte de l'option « tar --exclude » est un peu compliquée, voir http://www.gnu.org/software/tar/manuel/tar.html#wildcards pour une documentation plus complète.

L'expression rationnelle et le motif par défaut pour les deux options peuvent être trouvés dans la sortie de la commande --help.

LES OPTIONS GENERIQUES POUR EXTRACTION

--no-copy
Ne pas copier l'archive d'origine près de l'extraction du paquet source.
--no-check
Ne vérifie pas les signatures et les sommes de contrôle avant de dépaqueter.
--require-valid-signature
Refuse de décompresser le paquet source s'il ne contient pas de signature OpenPGP pouvant être vérifiée soit avec le fichier de clés trustedkeys.gpg de l'utilisateur, un des fichiers de clés propre à un distributeur ou un des fichiers de clés officiels de Debian (/usr/share/keyrings/debian-keyring.gpg et /usr/share/keyrings/debian-maintainers.gpg).

FORMATS DE PAQUET SOURCE

Si vous ne savez pas quel format source utiliser, il est conseillé de choisir soit « 3.0 (quilt)" soit "3.0 (native)". Voir http://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é à un .diff.gz ou un simple .tar.gz (dans ce cas, le paquet est appelé natif "native").

Extracting

Extraire un paquet natif revient à une simple extraction de l'archive TAR dans le répertoire cible. L'extraction d'un paquet non-natif consiste au dépaquetage du .orig.tar.gz puis l'application des correctifs contenues dans le .diff.gz. La date de tous les fichiers correctifs est celle du moment où a eu lieu l'extraction depuis le paquet source (cela évite les heures fausses menant à des problèmes lorsque des fichiers générés automatiquement sont modifiés). Le diff peut créer de nouveaux fichiers (tout le répertoire debian est créé de cette façon) mais ne peut pas supprimer de fichiers (les fichiers vides seront laissé là).

Construction

Construire un paquet natif revient simplement à créer une archive TAR avec le répertoire du source. La création d'un paquet non-natif consiste à extraire l'archive d'origine dans un répertoire séparé ".orig" puis régénérer le .diff.gz en comparant le répertoire du paquet source avec répertoire ".orig".

Options de construction (avec -b):

Si l'on donne un second argument, ce sera le nom du répertoire source d'origine ou le nom du fichier « tar » ou bien une chaîne vide si le paquet est un « debian pure souche » et n'a donc pas de fichiers « diffs » concernant sa « debianisation ». S'il n'y a pas de second argument, et selon les autres arguments donnés, dpkg-source cherche le fichier « tar » des sources d'origine paquet_version-d'origine.orig.tar.gz ou bien le répertoire source d'origine répertoire.orig selon les paramètres -sX.

Les options -sa, -sp, -sk, -su et -sr ne remplacent pas les fichiers « tar » ou les répertoires existants. Pour cela, il faut utiliser les options -sA, -sP, -sK, -sU et -sR.

-sk
Quand on spécifie en fichier source d'origine un fichier « tar » ; par défaut, paquet_version-d'origine.orig.tarextension. Il le laisse en place en tant que fichier « tar » ou le copie dans le répertoire en cours s'il n'y est pas déjà. Le fichier sera dépaqueté dans répertoire.orig pour la génération du fichier diff.
-sp
Comme -sk mais supprimera le répertoire à nouveau par la suite.
-su
Quand on spécifie que le source d'origine est un répertoire ; la valeur par défaut est le répertoire paquet-version-d'origine.orig et dpkg-source crée une nouvelle archive du source d'origine.
-sr
Comme -su mais supprimera ce répertoire après utilisation.
-ss
Indique que le source d'origine est disponible à la fois comme un répertoire et comme un fichier « tar ». « dpkg-source » se servira du répertoire pour créer le « diff », mais du fichier « tar » pour créer le fichier .dsc. Aussi, faire attention avec cette option. Si le répertoire et le fichier « tar » ne correspondent pas, une mauvaise archive source en résulte.
-sn
Indique de ne pas chercher de source d'origine et de ne pas créer de « diff ». Le second argument, s'il existe, doit être une chaîne vide. Cela sert pour les paquets Debian pure souche qui n'ont pas une source d'origine distincte et donc pas de fichier « diff » de debianisation.
-sa or -sA
Indique comme source d'origine soit un fichier « tar », soit un répertoire - le deuxième argument, s'il existe, doit être l'un d'eux ou bien une chaîne vide (cela revient à utiliser l'option -sn). Quand un fichier « tar » existe, il est dépaqueté pour créer le fichier « diff » ; ensuite il est supprimé (cela revient à utiliser l'option -sp) ; quand un répertoire est trouvé, il est dépaqueté et dpkg-source crée le source d'origine et supprime ensuite ce répertoire (cela revient à utiliser l'option -sr) ; quand ni l'un ni l'autre n'est trouvé, dpkg-source suppose que le paquet ne possède pas de fichier « diff » de debianisation, mais seulement une simple archive source (cela revient à utiliser l'option -sn). Quand les deux sont trouvés, dpkg-source ignore le répertoire et le remplace si l'option -sA a été spécifiée (cela revient à utiliser l'option -sP) ou il provoque une erreur si l'option -sa a été spécifiée. L'option par défaut est -sA.
--abort-on-upstream-changes
Ce processus échoue si le fichier de différences contient des modifications apportées à des fichiers en dehors du sous-répertoire debian. Cette option n'est pas autorisée dans debian/source/options mais peut être utilisée dans debian/source/local-options.

options d'extractions (avec -x):

Dans tous ces cas, l'arborescence existante des sources d'origine est supprimée.

-sp
Quand on extrait le répertoire source d'origine (s'il existe), il est conservé en tant que fichier « tar ». S'il n'est pas déjà dans le répertoire courant ou si ce répertoire contient un fichier différent, le fichier « tar » est copié dans ce répertoire. (Ceci est le comportement par défaut).
-su
Dépaquetage de l'arborescence du répertoire source d'origine.
-sn
Assure que le répertoire source d'origine ne sera ni copié dans le répertoire en cours, ni dépaqueté. Si une arborescence source d'origine est présente dans le répertoire courant, elle est toujours supprimée.

Toutes les options -sX s'excluent mutuellement. Si vous en indiquez plusieurs, seule la dernière sera prise en compte.

--skip-debianization
Passe l'étape d'application du fichier de différences Debian aux sources amont.

Format: 2.0

Aussi connu sous le nom de « wig&pen ». Ce format n'est pas recommandé afin d'assurer une utilisation massive du format "3.0 (quilt)" qui le remplace. Wig&pen a été la première spécification d'une nouvelle génération de format de paquet source.

Le comportement de ce format est le même que pour le format "3.0 (quilt)" sauf qu'il n'utilise pas de liste explicite de correctifs. Tous les fichiers dans debian/patches/ correspondant à l'expression rationnelle Perl [\w-]+ doivent être des correctifs valides : ils sont appliqués au moment de l'extraction.

Lors de la construction d'un nouveau paquet source, toute modification apportée à la source amont est enregistré dans un correctif nommé zz_debian-diff-auto.

Format: 3.0 (native)

Ce format est une extension du format de paquet natif tel que défini dans le format 1.0. Il gère toutes les méthodes de compression et ignore par défaut tout fichier et répertoire VCS ainsi que de nombreux fichiers temporaires (voir la valeur par défaut associé à l'option -I dans la sortie de --help).

Format: 3.0 (quilt)

Un paquet source dans ce format contient au moins une archive tar d'origine (.orig.tar.extext peut être gz, bz2 lzma et xz) et une archive tar debian (.debian.tar.ext). Il peut également contenir d'autres archives tar d'origine (.orig-composant.tar.ext). composant ne peut être constitué que de caractères alphanumériques et de tirets (« - »).

Extracting

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épertoires dont le nom est formé à partir de la partie composant de leur nom. L'archive tar Debian est extraite par dessus le répertoire source, après la suppression de tout répertoire debian existant. Notez que l'archive tar Debian doit contenir un sous-répertoire debian, mais il peut également contenir des fichiers binaires en dehors de ce répertoire (voir l'option --include-binaries).

Toutes les modifications figurant dans debian/patches/debian.series ou debian/patches/series sont alors appliquées. Si l'ancien fichier est utilisé et qu'il n'y a pas de plus récent (ou que c'est un lien symbolique), alors celui-ci est remplacé par un lien symbolique vers l'ancien. Cette disposition vise à simplifier l'utilisation de « quilt » pour gérer l'ensemble des patches. Notez toutefois que si dpkg-source analyse correctement une série de fichiers avec les options utilisées pour l'application du correctif (stockées sur chaque ligne après le nom du patch et d'un ou plusieurs espaces), il n'ignore pas cesoptions et s'attendra toujours que les correctifs puissent être appliqués avec l'option -p1 de patch. Il va donc émettre un avertissement lorsqu'il rencontre ces options, et la construction est susceptible d'échouer.

Similaire au comportement par défaut de « quilt », les modifications peuvent aussi supprimer des fichiers.

Le fichier .pc/applied-patches est créé si certains correctifs ont été appliqués au cours de l'extraction.

Construction

Les originaux de toutes les archives tar trouvées dans le répertoire courant sont extraits dans un répertoire temporaire en suivant la même logique que pour le dépaquetage, le répertoire debian est copié dans le répertoire temporaire, et toutes les mises à jour sauf debian-changes-version sont appliquées. Le répertoire temporaire est comparé à celui du paquet source et le fichier de différences (s'il est non vide) est stocké dans le correctif automatique. Si le correctif automatique est créé ou supprimé, il est ajouté ou supprimé dans le fichier series et les méta-données de quilt.

Tout changement dans un fichier binaire ne peut être indiqué dans le diff et va déboucher sur un échec à moins que le mainteneur décide délibérément d'inclure cette modification binaire dans l'archive tar Debian (en le listant dans debian/source/include-binaries). La construction pourra également échouer si des fichiers binaires sont trouvés dans le sous-répertoire debian sans être indiqué dans la liste blanche de debian/source/include-binaries.

Le répertoire debian mis à jour et la liste des binaires modifiés sont ensuite utilisés pour recréer l'archive tar debian.

Le diff généré automatiquement n'inclut pas les changements spécifiques sur les fichiers VCS ainsi sur que de nombreux fichiers temporaires (pour la valeur par défaut associée à l'option -i, voir la sortie de --help). En particulier, le répertoire .pc utilisé par « quilt » est ignoré lors de la génération automatique du patch.

Note : dpkg-source s'attend à ce que l'arbre source ait toutes les corrections d'appliquées lorsque vous créez le paquet source. Ce n'est pas le cas lorsque l'arbre source a été obtenu par le dépaquetage d'un paquet source utilisant le format : 1.0 par exemple. Pour réduire le problème, dpkg-source appliquera les corrections lui-même s'il détecte qu'elles ne l'ont pas été. Pour effectuer cette détection, il suit le raisonnement suivant : il recherche la liste des correctifs supposément non appliqués (ils sont mentionnés dans le fichier series mais pas dans .pc/applied-patches) et si le premier de cette liste peut être appliqué dans erreur, il les applique tous. L'option --no-preparation peut être utilisée pour désactiver ce comportement. Cette opération est en général effectuée dans le cadre de l'utilisation de la commande --prepare-build.

Options de construction

--allow-version-of-quilt-db=version
Autotide dpkg-source à construire le fichier si la version des méta-données de quilt est celle indiquée, même si dpkg-source n'en n'a pas connaissance. En fait, cela indique que la version indiquée des méta-données de quilt est compatible avec la version 2 que dpkg-source gère. La version des méta-données de quilt est conservée dans .pc/.version.
--include-removal
Ne pas ignorer les fichiers supprimés et les inclure dans le fichier de modification généré automatiquement.
--include-timestamp
Inclure la date dans le patch généré automatiquement.
--include-binaries
Ajouter tous les binaires modifiés dans l'archive tar debian. Les ajouter aussi à debian/source/include-binaries : elles seront ajoutées par défaut dans les constructions correspondantes aussi cette option n'est donc plus nécessaire.
--no-preparation
Ne pas essayer de préparer l'arbre de la construction en appliquant les correctifs qui ne lui sont apparemment pas appliqués.
--single-debian-patch
Utilise debian/patches/debian-changes au lieu de debian/patches/debian-changes-version comme nom du correctif automatiquement créé au cours de la construction. Cette option est particulièrement pratique lorsque le paquet est géré avec un outil de gestion de versions et qu'un jeu de correctifs ne peut être créé de façon fiable. Dans ce cas, les différences avec la version amont doivent être conservées dans un correctif unique. Lorsque cette option est utilisée, il est recommandé d'utiliser un fichier debian/source/patch-header qui explique la mailleure méthode pour relire les corrections spécifiques à Debian, par exemple dans le gestionnaire de versions utilisé.
--create-empty-orig
Crée automatiquement une archive tar d'origine vide si elle est manquante et qu'il existe des archives tar d'origine additionnelles. Cette option peut être utilisée lorsque le paquet source est une collection de différentes sources amont et qu'il n'existe pas de logiciel « principal ».
--unapply-patches
Retire les correctifs dans le point d'entrée --after-build. Cette option est principalement utile lorsque le paquet est construit directement depuis un gestionnaire de versions qui contient les sources amont non modifiées et que l'on souhaite conserver l'arborescence non modifiée après la construction du paquet. Cette option est en général utilisée dans debian/source/local-options (elle n'est pas permis dans debian/source/options afin que tous les paquets source créés aient le même comportement par défaut.
--abort-on-upstream-changes
Ce processus échouera si un correctif automatique a été créé. Elle peut servir à vérifier que toutes les modifications ont été enregistrées correctement dans des correctifs quilt distincts avant la construction du paquet source. Elle n'est pas autorisée dans debian/source/options mais peut prendre place dans debian/source/local-options.

Options d'extraction

--skip-debianization
Passe l'étape d'extraction de l'archive tar debian par dessus les sources amont
--skip-patches
Ne pas appliquer des correctifs à la fin de l'extraction.

Format: 3.0 (custom)

Ce format est particulier. Il ne représente pas un réel format de paquet source mais peut être utilisé pour créer des paquets sources avec des fichiers arbitraires.

Options de construction

Tous les arguments qui ne sont pas des options sont pris pour des fichiers à intégrer dans le paquet source généré. Ils doivent exister et être de préférence dans le répertoire courant. Au moins un fichier doit être donné.

--target-format=valeur
Required. Définit le format réel du paquet source généré. Le fichier généré .dsc contiendra cette valeur dans son champ format et non "3.0 (custom)".

Format: 3.0 (git)

Ce format est expérimental.

Un paquet source qui utilise ce format est constitué d'un ensemble d'un seul dépôt git .git qui contient les sources du paquet. Il peut également exister un fichier .gitshallow qui donne les révisions d'un clone git « shallow ».

Extracting

Cet ensemble est cloné sous forme d'un dépôt git dans le répertoire cible. S'il existe un fichier .gitshallow, il est installé en tant que « .git/shallow » dans le dépôt git cloné.

Veuillez noter que, par défaut, le nouveau dépôt aura la même branche récupérée que celle qui était récupérée dans les sources d'origine (souvent « master » mais cela peut être tout à fait autre chose). Toutes les autres branches seront disponibles sous « remotes/origin ».

Construction

Avant d'aller plus loin, quelques vérifications sont effectuées afin de s'assurer qu'il n'existe aucun changement non-soumis et à ne pas ignorer.

git-bundle(1) permet de créer un ensemble à partir du dépôt git. Par défaut, toutes les branches et étiquettes du dépôt sont inclus dans cet ensemble.

Options de construction

--git-ref=réf
Permet d'indiquer une référence git à inclure dans l'ensemble git. L'utilisation de cette option désactive le comportement par défaut qui est d'inclure toutes les branches et étiquettes. Cette option peut-être utilisée plusieurs fois. Le paramètre réf peut être le nom d'une branche ou une étiquette à inclure. Il peut également être tout paramètre que l'on peut passer à git-rev-list(1). Par exemple, pour n'inclure que la « master », on peut utiliser --git-ref=master. Pour inclure toutes les étiquettes et toutes les branches, sauf la branche privée, on peut utiliser -git-ref=--all -- git-ref=^private.
--git-depth=nombre
Crée un clone « shallow » dont l'historique est tronqué au nombre indiqué de révisions.

Format: 3.0 (bzr)

Ce format est expérimental. Il crée une archive tar contenant le dépôt bzr correspondant.

Extracting

L'archive tar est décompressée puis bzr est utilisé afin de récupérer la branche courante.

Construction

Avant d'aller plus loin, quelques vérifications sont effectuées afin de s'assurer qu'il n'existe aucun changement non-soumis et à ne pas ignorer.

Ensuite, la partie spécifique du répertoire source du gestionnaire de versions est copiée dans un répertoire temporaire. Avant que ce répertoire temporaire ne soit empaqueté dans une archive tar, divers nettoyages sont effectuées pour économiser de l'espace.

AVERTISSEMENTS ET ERREURS

aucun format source indiqué dans debian/source/format

Le fichier debian/source/format devrait toujours exister et indiquer le format source souhaité. Pour préserver la compatibilité avec d'anciennes versions, le format « 1.0 » est implicite quand le fichier n'existe pas. Il est déconseillé de dépendre de ce comportement qui pourrait être modifié dans de futures versions de dpkg-source, qui échoueront alors en l'absence d'une mention explicite de format.

Cela est dû au fait que le format « 1.0 » n'est plus le format recommandé, qu'il est conseillé de choisir un des formats les plus récents (« 3.0 (quilt) » ou « 3.0 (native) ») mais que dpkg-source ne le fera pas automatiquement. Si vous souhaitez continuer à utiliser l'ancien format, il est nécessaire d'être explicite et indiquer « 1.0 » dans debian/source/format.

le fichier de différences modifie les fichiers amont suivants

Lors de l'utilisation du format source « 1.0 », il est déconseillé de modifier directement les fichiers amont car les modifications restent alors cachées et souvent non documentées dans le fichier diff.gz. AU contraire, il est conseillé de conserver les modifications sous forme de correctifs dans le répertoire debian et de les appliquer au moment de la construction. Pour éviter ces opérations plus complexes, vous pouvez également choisir le format « 3.0 (quilt) » qui permet ces opérations de manière native.

impossible d'identifier les changements de fichier

Les modifications des sources amont sont en général conservées dans des fichiers de correctifs mais certaines modifications ne peuvent être représentées 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érent (par exemple remplacer un fichier par un lien ou un répertoire), ce message d'erreur s'affichera.

le fichier fichier, nouvellement créé, ne sera pas représenté dans le fichier de différences

Les fichiers vides ne peuvent pas être créés avec des correctifs. En conséquence, la modification n'est pas enregistrée dans le paquet source, ce qui provoque cet avertissement.

le mode exécutable permissions de fichier ne sera pas représenté dans le fichier de différences

le mode spécial permissions de fichier ne sera pas représenté dans le fichier de différences

Les fichiers correctifs n'enregistrent pas les permissions de fichiers et, en conséquence, les permissions modifiées ne sont pas enregistrées dans le paquet source, ce qui provoque cet avertissement.

FORMATS DE FICHIERS

debian/source/format

Ce fichier contient sur une seule ligne le format à utiliser pour construire le paquet source (les formats acceptés sont décrits plus haut). Il ne doit pas contenir d'espaces avant ou après l'indication du format.

debian/source/include-binaries

Ce fichier contient une liste de fichiers binaires (un par ligne) qui doivent être inclus dans l'archive tar debian. Les espaces placés avant ou après ces noms sont supprimés. Les lignes commençant par « # » sont des commentaires et sont ignorées, ainsi que les lignes vides.

debian/source/options

Ce fichier contient la liste des options qui seront automatiquement ajoutées au jeu d'options de ligne de commande utilisées par dpkg-source -b ou dpkg-source --print-format. Des options comme --compression et --compression-level conviennent bien pour ce fichier.

Chaque option doit être placée sur une ligne distincte. Les lignes vides et les lignes commençant par le caractère « # » sont ignorées. Les caractères initiaux « -- » doivent être retirés et les options courtes ne peuvent pas être utilisées. Des espaces optionnels sont autorisés autour du symbole « = », ainsi que des guillemets optionnels autour de la valeur d'une option donnée. Voici un exemple d'un tel fichier :


  # autoriser dpkg-source à créer 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

Note : les options de format ne sont pas acceptées dans ce fichier. Vous devriez utiliser debian/source/format à la place.

debian/source/local-options

Identique à debian/source/options mais n'est pas enregistré dans le paquet source créé. Ce fichier peut être utile pour conserver une préférence propre au responsable ou au dépôt de gestionnaire de versions où le paquet source est géré.

debian/source/patch-header

Texte en format libre qui sera ajouté au correctif automatique créé dans les formats « 2.0 » et « 3.0 (quilt) ».

debian/patches/series

Ce fichier comporte la liste de toutes les corrections qui ont été appliquées (dans l'ordre indiqué) aux sources amont. Les espaces situés avant et après les noms sont ignorés. Les lignes commençant par « # » sont des commentaires et sont ignorées, ainsi que les lignes vides. Les autres lignes débutent par le nom du fichier de correction (relatif au répertoire debian/patches/) qui se termine au premier espace ou à la fin de la ligne. Des options facultatives de quilt peuvent être placées jusqu'à la fin de la ligne ou jusqu'au premier caractère « # » précédé par un ou plusieurs espaces (qui indique un commentaire qui se poursuit jusqu'à la fin de la ligne).

BOGUES

Le moment où a lieu le remplacement d'un champ par rapport à certaines déterminations de champ affichées sur la sortie standard est plutôt embrouillé.

AUTEURS

Copyright © 1995-1996 Ian Jackson
Copyright © 2000 Wichert Akkerman
Copyright © 2008-2010 Raphaël Hertzog

Ce programme est un logiciel libre ; voyez la « GNU General Public Licence » version 2 ou supérieure pour le copyright. Il n'y a PAS de garantie.

TRADUCTION

Ariel VARDI <[email protected]>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <[email protected]>.