dpkg-source(1)

NOM
dpkg-source - 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 will build the source package with the first format that works from this ordered list: the format(s) indicated with the --format command-line option(s), the format indicated in debian/source/format, "1.0", "3.0 (quilt)", "3.0 (native)". See section SOURCE PACKAGE FORMATS for an extensive description of the various source package formats.

--print-format répertoire
    Print the source format that would be used to build the source package if dpkg-source -b directory was called (in the same conditions and with the same parameters). In particular it's important that the upstream tarball (if any) can be found in the current directory.

-h, --help
    Affiche un message d'aide puis quitte.

--version
    Affiche le numéro de version puis quitte.

OPTIONS DE CONSTRUCTION GENERIQUES

-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
    Essaie d'abord le format indiqué pour la construction du paquet source. Si ce paramètre est donné plusieurs fois, les formats sont essayés successivment dans l'ordre indiqué. Ce choix ne 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.

-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.

-zlevel, --compression-level=level
    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[regexp]
    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 régulière 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'(^|/)', '($|/)').

-I[motif-de-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 régulière 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 originale 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
If you don't know what source format you should use, you should probably pick either "3.0 (quilt)" or "3.0 (native)". They will become the default formats in the near future. See http://wiki.debian.org/Projects/DebSrc3.0 for information on the deployment of those formats within 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 originale 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 original 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 originelles paquet_version-originelle.orig.tar.gz ou bien le répertoire source originel 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-originelle.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-originelle.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 originel 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 un source originel distinct et donc pas de fichier « diff\ » de debianisation.

-sa or -sA
    Indique comme source originel 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 originel 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.

options d'extractions (avec -x):

Dans tous ces cas, l'arborescence existante du source originel est supprimée.

-sp Quand on extrait le source originel (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 source originel.

-sn Assure que le source originel ne sera ni copié dans le répertoire en cours, ni dépaqueté. Si une arborescence source originelle 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.ext où ext 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.

The file .pc/applied-patches is created if some patches have been applied during the extraction.

Construction

All original tarballs found in the current directory are extracted in a temporary directory by following the same logic as for the unpack, the debian directory is copied over in the temporary directory, and all patches except the automatic patch (debian-changes-version or debian-changes, depending on --single-debian-patch) are applied. The temporary directory is compared to the source package directory and the diff (if non-empty) is stored in the automatic patch. If the automatic patch is created/deleted, it's added/removed from the series file and from the quilt metadata. Any change on a binary file is not representable in a diff and will thus lead to a failure unless the maintainer deliberately decided to include that modified binary file in the debian tarball (by listing it in debian/source/include-binaries). The build will also fail if it finds binary files in the debian sub-directory unless they have been whitelisted through 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 expects the source tree to have all patches listed in the series file applied when you generate the source package. This is not the case when the source tree has been obtained by unpacking a source package using the Format: 1.0 for instance. To mitigate the problem, dpkg-source will apply the patches by itself if it believes that they have not yet been applied. To detect this situation, it uses the following heuristic: it finds the list of supposedly unapplied patches (they are listed in the series file but not in .pc/applied-patches), and if the first patch in that set can be applied without errors, it will apply them all. The option --no-preparation can be used to disable this behaviour.

Options de construction

--allow-version-of-quilt-db=version
    Allow dpkg-source to build the source package if the version of the quilt metadata is the one specified, even if dpkg-source doesn't know about it. Effectively this says that the given version of the quilt metadata is compatible with the version 2 that dpkg-source currently supports. The version of the quilt metadata is stored in .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
    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. When using this option, it is recommended to create a debian/source/patch-header file explaining how the Debian changes can be best reviewed, for example in the VCS that is used.

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) et 3.0 (bzr)
Ces formats sont à titre expérimental. Ils génèrent une archive tar contenant le référentiel VCS correspondant.

Extracting

L'archive tar est décompressée puis le VCS est utilisé afin de vérifier la branche de la version courante.

Construction

Avant d'aller plus loin, quelques vérifications sont effectuées afin de s'assurer que nous n'avons pas de changements non-soumis à ne pas ignorer.

Ensuite, la partie spécifique du répertoire source du VCS 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.

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
This file contains a list of long options that should be automatically prepended to the set of command line options of a dpkg-source -b or dpkg-source --print-format call. Options like --compression and --compression-level are well suited for this file.

Each option should be put on a separate line. Empty lines and lines starting with "#" are ignored. The leading "--" should be stripped and short options are not allowed. Optional spaces are allowed around the "=" symbol and optional quotes are allowed around the value. Here's an example of such a file:

  # let dpkg-source create a debian.tar.bz2 with maximal compression
  compression = "bzip2"
  compression-level = 9
  # use debian/patches/debian-changes as automatic patch
  single-debian-patch

Note: format options are not accepted in this file, you should use debian/source/format instead.

  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)".

  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é.

VOIR AUSSI
dpkg-deb(1), dpkg(1), dselect(1).

AUTEURS
Copyright © 1995-1996 Ian Jackson
Copyright © 2000 Wichert Akkerman
Copyright © 2008-2009 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 <ariel.vardi@freesbee.fr>, 2002. Philippe Batailler, 2006. Nicolas François, 2006. Veuillez signaler toute erreur à <debian-l10n-french@lists.debian.org>.