DPKG-SOURCE(E) Utilitaires de Dpkg DPKG-SOURCE(E) NOM dpkg-source, dpkg-gencontrol, dpkg-shlibdeps, dpkg-gen- changes, dpkg-buildpackage, dpkg-distaddfile, dpkg-par- sechangelog - Les outils de Debian pour les paquets source. SYNOPSIS dpkg-source -x fichier.dsc dpkg-source -b [options] rpertoire [rpertoire-d'orig- ine|''] dpkg-gencontrol [options] dpkg-shlibdeps options dpkg-genchanges [options] dpkg-buildpackage [options] dpkg-distaddfile [options] fichier section priorit dpkg-parsechangelog [options] DESCRIPTION dpkg-source empaqute ou dpaqute une archive source Debian. dpkg-gencontrol lit les information contenues dans une arborescence Debian dpaquete et cre le fichier control d'un paquet binaire (par dfaut, c'est le fichier debian/tmp/DEBIAN/control) ; il ajoute aussi une entre pour ce paquet binaire dans debian/files. dpkg-shlibdeps calcule, pour les excutables nomms dans ses arguments, les dpendances envers les bibliothques partages. Ces dpendances sont ajoutes sous la forme shlibs:dependencyfield -- o dependencyfield est le nom du champ dpendance -- dans le fichier debian/substvars qui indique les substitutions de variables. Toute autre vari- able aprs shlibs: est supprime du fichier. dpkg-shlibdeps lit les informations concernant les dpendances envers les bibliothques partages dans les fichiers suivants : debian/shlibs.local, /etc/dpkg/shlibs.override, le fichier shlibs, (fichier du paquet contenant un fichier qui, selon objdump, satisfait au systme de dpendance envers les bib- liothques) ou bien /etc/dpkg/shlibs.default. Le premier trouv est utilis. Voyez le Debian packaging manual pour des dtails sur le format des fichiers qui traitent des dpendances envers les bibliothques partages. dpkg-genchanges lit les informations la fois dans une arborescence debian dpaquete et dj construite et sur les fichiers qui ont t cres ; puis il cre un fichier de con- trle pour la mise en place dans l'archive Debian ( c'est le fichier .changes ). dpkg-buildpackage est un script de contrle qui peut faciliter la construction automatique d'un paquet. dpkg-distaddfile ajoute une entre pour un fichier dans debian/files. dpkg-parsechangelog lit et fait l'analyse du fichier changelog d'une arborescence source dpaquete et affiche les informations qu'il contient sur la sortie standard et sous une forme lisible par la machine. 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 spar. LES OPTIONS COMMUNES Beaucoup de ces programmes partagent les options qui sont dcrites ici ; on dcrit en mme temps les programmes qui les acceptent. -h Affiche la version du programme et un message d'aide qui comprend un rsum des options acceptes. Tous les outils pour les paquets source comprennent cette option. -vversion Avec dpkg-buildpackage, dpkg-genchanges et dpkg- parsechangelog cette option force l'utilisation des informations contenues dans le fichier changelog et qui concernent toutes les versions strictement plus rcentes que version (qui doit apparatre dans le fichier changelog ). Avec dpkg-gencontrol, cette option donne le numro de version du paquet binaire qui sera cre. -Cdescription-des-changements Lit la description des changements dans le fichier description-des-changements plutt que les informa- tions contenues dans le fichier changelog de l'arborescence source. dpkg-buildpackage et dpkg- genchanges acceptent cette option. -madresse-du-responsable Utilise adresse-du-responsable comme nom et adresse lectronique du responsable de paquet pour cette mise en place, plutt que d'utiliser les informa- tions contenues dans le fichier control de l'arborescence source. dpkg-buildpackage et dpkg- genchanges acceptent cette option. -eadresse-du-responsable Utilise adresse-du-responsable comme nom et adresse lectronique du responsable de paquet pour cette mise en place, plutt que d'utiliser les informa- tions contenues dans le fichier changelog de l'arborescence source. dpkg-buildpackage et dpkg- genchanges acceptent cette option. -si, -sa, -sd Ces options contrlent si l'archive source originale est incluse dans l'installation produite par dpkg- buildpackage et dpkg-genchanges quand on construit un paquet source (i.e., les options -b or -B ne sont pas utilises). Par dfaut, ou quand l'option -si est indique, les sources originales sont incluses si le numro de version se termine par -0 ou -1, i.e., si la partie rvision Debian du numro de version est gal 0 ou 1. L'option -sa force l'inclusion des sources origi- nales ; l'option -sd force leur exclusion et inclut seulement le diff . -Vnom=valeur Fixe la valeur d'une variable de substitution. dpkg-source, dpkg-gencontrol and dpkg-genchanges acceptent cette option. Voyez ci-dessous pour une discussion sur la valeur de substitution. -Tfichier/substvars Lit (ou, crit pour dpkg-shlibdeps), les variables de substitution dans le fichier fichier/substvars; Par dfaut c'est le fichier debian/substvars. dpkg- source, dpkg-gencontrol, dpkg-shlibdeps et dpkg- genchanges acceptent cette option. -Dchamp=valeur Remplace ou ajoute en sortie un champ dans le fichier de contrle. dpkg-source, dpkg-gencontrol et dpkg-genchanges acceptent cette option. -Uchamp Supprime en sortie un champ dans le fichier de con- trle. dpkg-source, dpkg-gencontrol and dpkg-gen- changes acceptent cette option. -b|-B|-S Avec dpkg-genchanges et dpkg-buildpackage les options -b et -B indiquent qu'on veut seulement construire un paquet binaire. L'option -b indique qu'aucun fichier source n'est construire ou dis- tribuer, et l'option -B indique en plus qu'aucun fichier, appartenant un paquet binaire ne dpendant pas d'une architecture, n'est distribuer. L'option -S indique que seul le source doit tre mise en place et qu'on a pas besoin de construire un paquet binaire. Seul dpkg-buildpackage se sert des options -b et -B; dpkg-genchanges cre seulement un fichier .changes pour tous les fichiers produits par la cible binary-* du paquet qui est construit. L'option -b indique dpkg-source de construire un paquet source (plutt que d'en extraire un) -- voyez ci-dessous. -cfichier/control indique le principal fichier de contrle des sources o trouver des renseignements. Par dfaut, c'est le fichier debian/control. dpkg-source, dpkg-gencon- trol et dpkg-genchanges acceptent cette option. -lfichier/changelog indique le fichier d'enregistrement des changements o trouver des renseignements. Par dfaut, c'est le fichier debian/changelog. dpkg-source, dpkg-gen- control et dpkg-genchanges acceptent cette option. -ffichier/liste-des-fichiers lit ou crit la liste des fichiers qui doivent tre mis en place dans le fichier fichier/liste-des- fichiers, plutt que dans le fichier debian/files. dpkg-gencontrol, dpkg-genchanges et dpkg-dis- taddfile acceptent cette option. -Fformat-du-changelog donne le format du fichier changelog. Par dfaut, c'est une ligne spciale, prs de la fin du fichier, qui l'indique (voyez le Debian packaging manual) ; sinon, on utilise le format classique debian, dcrit dans le Debian packaging manual. dpkg-source, dpkg-gencontrol et dpkg-genchanges acceptent cette option. LES OPTIONS DE DPKG-SOURCE Quand on fournit les options communes -c et -l avec des chemins relatifs, on considre qu'ils sont relatifs au rpertoire le plus lev de l'arborescence source. -x Cette option sert extraire un paquet source. On doit donner un seul argument sans option : le nom du fichier de contrle des sources Debian (.dsc). Aucune option n'est utile avec dpkg-source -x. dpkg-source lit, dans le fichier de contrle, les noms des fichiers qui composent le paquet source ; il suppose qu'ils sont dans le mme rpertoire que le fichier .dsc. Les fichiers extraits du paquet auront le mme systme de proprit et de permission que s'ils avaient t simplement cres -- les rpertoires et les fichiers excutables auront un systme de permission gal 0777 et les simples fichiers, 0666 ; ces deux systmes tant modifis par le masque de celui qui fait l'extraction ; Si le rpertoire parent est setgid , les rpertoires extraits le seront aussi et tous les fichiers et rpertoires hriteront du systme de proprit de ce groupe. -b Construire : empaqueter une arborescence. Un ou deux arguments, sans options, seront fournis. Le premier reprsente le nom du rpertoire qui contient l'arborescence non empaquete. Si l'on donne un sec- ond argument, ce sera le nom du rpertoire source original ou bien le nom du fichier tar ou bien une chane vide si le paquet est 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 donns, dpkg-source cherche le fichier tar des sources originelles paquet_version-originelle.orig.tar.gz ou bien le rpertoire source originel rpertoire.orig ou bien une chane vide (pas de source originel, et donc pas de diffs ). -i[<regexp>] On peut donner une expression rgulire Perl corre- spondant aux fichiers d'une liste qui doivent tre filtrs pour le diff . (Cette liste est cre par une commande find .) L'option -i toute seule fil- tre les sous-rpertoires CVS, RCS et libtool .deps et tous les fichiers qu'ils contiennent, aussi bien les fichiers de sauvegarde termins par un ~ que ceux cres par une interruption de l'diteur JOE. C'est trs utile pour supprimer les fichiers super- flus qui sont inclus dans le .diff.gz (p.ex., debian/BUGS_TODO/* ou debian/RCS/*,v ). Quand on suit avec un CVS distant un paquet que l'on main- tient, et qu'on a pas la possibilit d'enregistrer les fichiers debian de contrle ou d'tiqueter cvs- buildpackage(e), il faut faire un checkout/update supplmentaire dans un rpertoire tenu vierge pour crer le fichier .orig.tar.gz. Les fichiers CVS/Entries de ce rpertoire contiennent des dates qui diffrent de celles du rpertoire de travail ; cela provoque indment leur inclusion dans chaque .diff.gz cre, moins d'utiliser l'option -i. -sa,-sp,-su,-sk,-sA,-sP,-sU,-sK,-ss with -b Quand on spcifie -sk or -sp, dpkg-source s'attend ce que le source originel soit un fichier tar ; par dfaut c'est le fichier paquet_version-orig- inelle.orig.tar.gz. Il le laisse en place en tant que fichier tar ou le copie dans le rpertoire en cours s'il n'y est pas dj. Quand on utilise -sp au lieu de -sk, il le supprime ensuite. Quand on spcifie -su or -sr, le source originel est attendu comme un rpertoire ; par dfaut c'est le rpertoire paquet-version-originelle.orig et dpkg- source cre une nouvelle archive du source originel. Quand on utilise -sr, dpkg-source supprime ce rper- toire aprs usage. Quand on utilise -ss, dpkg-source s'attend ce que le source originel soit disponible la fois comme un rpertoire et comme un fichier tar . Il se sert du rpertoire pour crer le diff , mais se sert du fichier tar pour crer le fichier .dsc. On doit faire attention avec cette option -- Si le rper- toire et le fichier tar ne correspondent pas, une mauvaise archive source en rsulte. Quand on utilise -sn, dpkg-source ne cherche pas de source originel, et ne cre pas de diff . Le sec- ond argument, s'il existe, doit tre une chane 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. Quand on utilise -sa ou -sA, dpkg-source cherche un source originel soit sous forme de fichier tar , soit sous forme de rpertoire -- le deuxime argu- ment, s'il existe, ou bien une chane vide (cela revient utiliser l'option -sn). Quand un fichier tar existe, il est dpaquet et dpkg-source cre un fichier diff ; ensuite il supprime le fichier tar (cela revient utiliser l'option -sp); quand un rpertoire est trouv, il est dpaquet et dpkg- source cre le source originel et supprime ensuite ce rpertoire (cela revient utiliser l'option -sr); Quand ni l'un ni l'autre n'est trouv, dpkg-source suppose que le paquet ne possde pas de fichier diff de debianisation, mais seulement une simple archive source (cela revient utiliser l'option -sn). Quand les deux sont trouvs, dpkg-source ignore le rpertoire, et le remplace si l'option -sA a t spcifie (cela revient utiliser l'option -sP); ou bien il provoque une erreur quand l'option -sa a t spcifie. L'option par dfaut est -sA. Les options -sa, -sp, -sk, -su et -sr ne remplacent pas les fichiers tar ou les rpertoires existants. Pour cela, il faut utiliser les options -sA, -sP, -sK, -su et -sR. -sp,-su,-sn avec -x Dans tous ces cas, l'arborescence existante d'un source originel est supprime. Quand on utilise l'option -sp lors d'une extrac- tion, le source originel (s'il existe) est laiss en tant que fichier tar . S'il n'est pas dj dans le rpertoire en cours ou si ce rpertoire contient un fichier diffrent, le fichier tar est copi dans ce rpertoire. C'est le comportement par dfaut. L'option -su dpaqute une arborescence source orig- inelle. L'option -sn assure que le source originel ne sera ni copi dans le rpertoire en cours, ni dpaquet. Une arborescence source originelle prsente dans le rpertoire en cours est toujours supprime. LES OPTIONS POUR DPKG-GENCONTROL dpkg-gencontrol ne prend pas d'argument sans options. -ppaquet cette option produit les informations concernant le paquet binaire paquet. Si le fichier de contrle des sources liste un seul paquet binaire, on peut omettre cette option ; sinon c'est indispensable d'indiquer le paquet pour lequel on veut produire les informations. -nnom-de-fichier Le nom du paquet est nom-de-fichier au lieu de l'habituel : paquet_version_arch.deb. -is, -ip, -isp ces options incluent, dans le fichier de contrle du paquet binaire, les champs Section et Priority qui concernent ce paquet et qui se trouvent dans le fichier principal de contrle des sources. Habituellement on ne met pas ces informations l mais dans le fichier .changes. L'option -isp inclue les deux champs, -is seulement le champ Sec- tion et -ip seulement le champ Priority. -Prep-de-construction-du-paquet Cette option indique dpkg-source que le rpertoire de construction du paquet est rep-de-construction- du-paquet au lieu de debian/tmp. Cette valeur sert trouver la valeur par dfaut de la variable de sub- stitution Installed-Size et celle du champ corre- spondant dans le fichier de contrle (on utilise la commande du); elle donne aussi l'emplacement par dfaut pour le fichier de sortie. -O Cette option provoque l'affichage du fichier de contrle sur la sortie standard au lieu de debian/tmp/DEBIAN/control (ou rep-de-construction- du-paquet/DEBIAN/control si l'option -P a t utilise). LES OPTIONS POUR DPKG-SHLIBDEPS dpkg-shlibdeps interprte des arguments sans option comme des commandes excutables, comme si on avait simplement donn -eexcutable. -eexcutable Cette option inclue les bonnes dpendances envers les bibliothques partages que demande excutable. -dchamp-dpendance Cette option ajoute les dpendances destines au champ dpendance du fichier de contrle champ-dpen- dance. (Les dpendances pour ce champ sont dans la variable shlibs:champ-dpendance.) L'option -dchamp-dpendance concerne tous les excutables qui suivent l'option, jusqu' la prochaine option -dchamp-dpendance. Par dfaut, champ-dpendance vaut Depends. Quand, dans plusieurs champs reconnus ayant trait aux dpendances comme les champs Pre-Depends, Depends, Recommends, Enhances ou Suggests, apparat la mme entre (ou bien un ensemble d'alternatives) dpkg-shlibdeps supprime automatiquement les dpen- dances dans tous les champs sauf celui qui reprsente les dpendances les plus importantes. -pprfixe-pour-le-nom-des-variables Les variables de substitution commenceront par prfixe-pour-le-nom-des-variables: au lieu de shlib:. De mme, toute variable de substitution commenant par prfixe-pour-le-nom-des-variables: (au lieu de shlib:) sont enlevs du fichier de substitu- tion des variables. -Lfichier-local-shlibs dpkg-shlibs lira les information de remplacement concernant les dpendances envers les bibliothques partages dans fichier-local-shlibs au lieu de debian/shlibs.local. -O Les dfinitions des variables de substitution seront affiches sur la sortie standard, plutt qu'ajoutes dans le fichier de substitution des variables qui est par dfaut debian/substvars. LES OPTIONS DE DPKG-GENCHANGES dpkg-genchanges ne prend pas d'argument sans options. -urpertoire-des-fichiers--installer Cherche les fichiers installer dans rpertoire-des- fichiers--installer plutt que dans .. (dpkg-gen- changes doit trouver ces fichiers de manire mettre leurs tailles et leurs sommes de contrle dans le fichier .changes.) -q dpkg-genchanges affiche habituellement des messages d'information sur la sortie d'erreur standard ; par exemple, combien de fichiers source du paquet sont en cours d'installation. -q supprime ces messages. LES OPTIONS DE DPKG-BUILDPACKAGE dpkg-buildpackage ne prend pas d'arguments sans options. -kkey-id Prcise un key-ID pour la signature des paquets. -rcommande-pour-obtenir-privilges-de-root Quand dpkg-buildpackage doit excuter une partie du processus de construction en tant que root, il prfixe la commande excute par commande-pour- obtenir-privilges-de-root si elle existe. com- mande-pour-obtenir-privilges-de-root sera le nom d'un programme prsent dans le PATH et ce programme prend comme argument le nom de la commande relle excuter et les arguments qu'elle doit prendre. commande-pour-obtenir-privilges-de-root ne contien- dra pas d'espace ni aucun mtacaractre du shell. commande-pour-obtenir-privilges-de-root est clas- siquement sudo, super ou really. su ne va pas, puisque ce programme demande une option -c pour excuter une commande ; et mme alors il ne peut qu'appeler le shell de l'utilisateur au lieu de passer directement les arguments la commande qui doit tre excute. -pcommande-de-signature Quand dpkg-buildpackage doit excuter GPG ou PGP pour signer un fichier source de contrle (.dsc) ou un fichier .changes, il excute commande-de-signa- ture (en examinant le PATH si ncessaire) au lieu de pgp. commande-de-signature obtient tous les argu- ments qu'aurait obtenu pgp. Si commande-de-signa- ture veut recevoir ses arguments la manire GPG plutt qu' la manire PGP, on choisira l'option -sgpg. commande-de-signature ne contiendra pas d'espace ni aucun mtacaractre du shell. -tc Nettoyage de l'arborescence (en utilisant commande- pour-obtenir-privilges-de-root debian/rules clean) aprs la construction du paquet. -us, -uc Ne pas signer, respectivement, soit le paquet source, soit le fichier .changes . -aarchitecture Prcise l'architecture Debian pour laquelle on con- struit. L'architecture de la machine sur laquelle on construit est automatiquement dtermine ; c'est aussi l'architecture par dfaut de la machine hte. -i[<regexp>] chane passe telle quelle dpkg-source. -D Vrifie les dpendances de constructions et les con- flits ; se termine en cas de problmes. -d Ne vrifie pas les dpendances de constructions et les conflits. LES ARGUMENTS DE DPKG-DISTADDFILE dpkg-distaddfile ne prend pas d'option particulire. Il prend trois arguments sans options, savoir le nom du fichier, la section et la priorit, pour le fichier .changes. Le nom du fichier sera indiqu relativement au rper- toire dans lequel dpkg-genchanges s'attend trouver les fichiers, habituellement .., plutt que rela- tivement au rpertoire dans lequel est excut dpkg- distaddfile. LES ARGUMENTS DE DPKG-PARSECHANGELOG dpkg-parsechangelog ne prend ni d'option particulire ni d'argument sans options. LA SUBSTITUTION DE VARIABLE Avant que dpkg-source, dpkg-gencontrol et dpkg-genchanges n'crivent leurs informations de contrle (dans le fichier source de contrle .dsc pour dpkg-source et sur la sortie standard pour dpkg-gencontrol et dpkg-genchanges), ils accomplissent quelques substitutions de variable dans le fichier de sortie. Une substitution de variable est de la forme : ${variable- name}. Les noms de variable consistent en caractres alphanumriques, traits d'union et deux points ; ils com- mencent par une lettre ou un chiffre. La substitution se fait rptitivement jusqu' ce qu'il n'en reste aucune faire ; le texte entier du champ aprs la substitution est rex- amin pour chercher d'autres substitutions. Quand toutes les substitutions ont t faites, chaque occur- rence de la chane ${} (laquelle n'est pas une substitution autorise) est remplace par un signe $. On peut dfinir les variables en utilisant l'option commune -V. On peut aussi se servir du fichier debian/substvars (ou tout autre fichier avec l'option -T). Ce fichier est compos de lignes de la forme suivante : name=value. Les espaces rsiduels sur chaque ligne, les lignes vides et les lignes qui commencent par un symbole # sont ignors. En outre, les variables standards suivantes sont disponibles : Arch L'architecture pour laquelle on construit (tire de dpkg --print-architecture). Source-Version La version du paquet source (tire du fichier changelog). Installed-Size La taille de tous les fichiers installs du paquet. Cette valeur est copie dans le champ adquat du fichier control ; Quand on fixe cette variable, cela modifie la valeur de ce champ. Quand elle est indtermine, dpkg-gencontrol use de la commande du -k debian/tmp pour trouver une valeur par dfaut. Extra-Size L'espace disque supplmentaire utilis pour l'instal- lation du paquet. Quand on fixe cette variable, on ajoute sa valeur la valeur de la variable Installed-Size (qu'elle soit dfinie explicitement ou calcule par dfaut) avant que la variable Installed-Size ne soit copie dans le champ du fichier control . F:fieldname La valeur du champ fieldname affich en sortie et qui doit tre classiquement en majuscules. Quand on fixe ces variables, cela ne prend effet que l o elles sont effectivement dveloppes. Format La version du format du fichier .changes produite par la version des scripts construisant le source. Quand on dtermine cette variable, le contenu du champ Format dans le fichier .changes est aussi modifi. Newline, Space, Tab Ces variables contiennent chacune le caractre cor- respondant. shlibs:dependencyfield Les variables dtermines de cette faon sont pro- duites par dpkg-shlibdeps - voyez plus haut. Quand une variable est rfrence mais n'est pas dfinie, cela produit un avertissement et une valeur nulle est assume. FICHIERS debian/control Le principal fichier d'information sur les sources ; il donne des renseignements qui ne dpendent pas d'une version concernant le paquet source et les paquets binaires qui peuvent tre cres. debian/changelog Le fichier d'enregistrement des modifications ; on s'en sert pour connatre les informations qui dpen- dent d'une version du paquet source, par exemple l'urgence ou la distribution d'une installation sur le serveur, les modifications faites depuis telle dition et le numro de la version source lui-mme. debian/files la liste des fichiers cres qui seront installs sur le serveur. dpkg-gencontrol ajoute les noms prsums des fichiers des paquets binaires partir des fichiers control qu'il cre ; pour ajouter d'autres fichiers on peut se servir de dpkg-dis- taddfile. dpkg-genchanges lit dans ce fichier les donnes ncessaires la cration du fichier .changes. debian/substvars La liste des variables de substitution et leurs valeurs. debian/shlibs.local Fichier particulier un paquet remplaant les infor- mations qui concernent les dpendances envers des bibliothques partages. /etc/dpkg/shlibs.override Fichier systme remplaant les informations qui con- cernent les dpendances envers des bibliothques partages. /etc/dpkg/shlibs.default Fichier systme par dfaut concernant les informa- tions de dpendances envers des bibliothques partages. BOGUES Le moment o a lieu le remplacement d'un champ par rapport certaines dterminations de champ affich sur la sortie standard est plutt embrouill. On opre deux fois la substitution de variable sur les entres d'un paquet binaire dans le fichier debian/files. Cela ne devrait pas poser de problmes puisque $, { et } ne sont pas permis dans les noms de paquets et les numros de version. On devrait pouvoir mettre des espaces et des mtacaractres du shell dans les arguments initiaux de commande-pour- obtenir-privilges-de-root et commande-de-signature. VOIR AUSSI Debian packaging manual, Debian policy manual, dpkg-deb(b), dpkg(g), dselect(t), gpg(g), pgp(p). AUTEUR Ces outils et cette page de manuel ont t crits par Ian Jackson. COPYRIGHT Copyright (C) 1995-1996 Ian Jackson Copyright (C) 2000 Wichert Akkerman Ce sont des logiciels libres ; voyez la GNU General Pub- lic Licence version 2 ou suprieure pour le copyright. Il n'y a pas de garantie. Voyez /usr/share/doc/dpkg/copyright et /usr/share/common-licenses/GPL pour des prcisions. TRADUCTION Philippe Batailler, Fvrier 2001. Debian Project Januari 2000 DPKG-SOURCE(E)