Scroll to navigation

deb-src-control(5) dpkg suite deb-src-control(5)

NOM

deb-src-control - Format du fichier principal de contrôle dans les paquets source Debian

SYNOPSIS

debian/control

DESCRIPTION

Each Debian source package contains the master «debian/control» file, and its deb822(5) format is a superset of the control file shipped in Debian binary packages, see deb-control(5).

This file contains at least 2 paragraphs, separated by a blank line. The first paragraph lists all information about the source package in general, while each following paragraph describes exactly one binary package. Each paragraph consists of at least one field. A field starts with a fieldname, such as Package or Section (case insensitive), followed by a colon, the body of the field (case sensitive unless stated otherwise) and a newline. Multi-line fields are also allowed, but each supplementary line, without a fieldname, should start with at least one space. The content of the multi-line fields is generally joined to a single line by the tools (except in the case of the Description field, see below). To insert empty lines into a multi-line field, insert a dot after the space. Lines starting with a ‘#’ are treated as comments.

LES CHAMPS SOURCE

La valeur de ce champ est le nom du paquet source et doit correspondre au nom du paquet source dans le fichier debian/changelog. Un nom de paquet doit être constitué uniquement de lettres minuscules (a-z), de chiffres (0-9), des caractères plus (+) et moins (-) et de points (.). Les noms de paquets doivent comporter au moins deux caractères et doivent commencer par un caractère alphanumérique (a-z0-9) en minuscule.
Le format de ce champ sera « Jean Dupont <jdupont@foo.com> » ; il indique le responsable actuel du paquet, par opposition à l'auteur du logiciel ou au responsable originel.
Affiche les noms et les adresses électroniques des co-responsables du paquet, au même format que le champ Maintainer. Des co-responsables multiples peuvent être séparés par des virgules.
Ce champ indique la version la plus récente des normes de la charte de la distribution auxquelles ce paquet se conforme.
Le format de la description du paquet est un résumé bref sur la première ligne (après le champ Description). Les lignes suivantes peuvent servir à une description plus longue et plus détaillée. Chaque ligne de cette description longue doit être précédée d'une espace ; quand c'est une ligne blanche, elle doit contenir un seul « . » après cette espace.
URL de la page d'accueil du projet amont.
L'URL du système de suivi de bogues (BTS) de ce paquet. Le format utilisé est type_de_bts://adresse_du_btsE, par exemple debbugs://bugs.debian.org. Ce champ est en général inutile.
Ce champ est utilisé pour indiquer si le fichier debian/rules exige des droits (fake)root pour exécuter certaines de ses cibles et quand, si c'est le cas.
Les cibles binaires n'exigeront aucun (fake)root.
Les cibles binaires doivent toujours être exécutées avec les droits (fake)root. C'est la valeur par défaut quand le champ est omis ; l'ajout du champ avec un binary-targets explicite, alors qu'il n'est pas strictement nécessaire, marque qu'il a été analysé pour cette exigence.
Il s'agit d'une liste, séparée par des espaces, de mots-clés qui définissent quand (fake)root est exigé.

Les mots-clés sont composés de espace-de-nommage/cas. La partie espace-de-nommage ne peut pas inclure de « / » ou d'espace. La partie cas ne peut pas inclure d'espace. Par ailleurs, les deux parties doivent être entièrement composées de caractères ASCII imprimables.

Chaque outil ou paquet définira un espace de nommage nommé d'après lui-même et fournira le nombre des cas où (fake)root est exigé. (Voir « Mots-clés fournis par l'implémentation » dans rootless-builds.txt).

Quand le champ est défini pour un des mots-clés-implémentation, le constructeur exposera une interface qui est utilisée pour exécuter une commande avec les droits (fake)root. (Voir « API pour obtenir les droits root » dans rootless-builds.txt).

Ces champs sont décrits dans la page de manuel de dsc(5), car ils sont créés à partir des informations déduites de debian/tests/control ou copiés littéralement dans le fichier « control » du paquet source.
Ce champ indique l'URL du système de gestion de version utilisé pour la gestion du paquet. Les systèmes gérés sont Arch, Bzr (Bazaar), Cvs, Darcs, Git, Hg (Mercurial), Mtn (Monotone) et Svn (Subversion). En général, ce champ fait référence à la dernière version du paquet, c'est-à-dire la branche principale ou le « trunk ».
Indique l'URL de l'interface web permettant de parcourir le dépôt du système de gestion de version.
Indique le nom de la distribution dont le paquet provient. Ce champ n'est souvent pas nécessaire.
Champ général qui indique la catégorie d'un paquet ; cette catégorie est fondée sur le programme que ce paquet installe. utils, net, mail, text, x11, etc., représentent quelques catégories habituelles.
Définit l'importance du paquet à l'intérieur du système général. required, standard, optional, extra, etc., représentent des priorités habituelles.

Les champs Section et Priority possèdent un ensemble défini de valeurs acceptées, tiré de la Charte particulière de la distribution.

Liste de paquets à installer et configurer pour pouvoir construire à partir du paquet source. Ces dépendances doivent être satisfaites lors de la construction des paquets binaires dépendant ou non de l'architecture, et des paquets source. Ajouter une dépendance à ce champ n'aura pas exactement le même effet que de l'inclure à la fois dans Build-Depends-Arch et Build-Depends-Indep, parce que la dépendance a aussi besoin d'être prise en compte lors de la construction du paquet source.
Liste analogue à Build-Depends, mais restreinte aux paquets nécessaires pour construire les paquets dépendants de l'architecture. Les paquets indiqués dans Build-Depends sont alors également installés. Ce champ est géré depuis la version 1.16.4 de dpkg ; pour pouvoir construire des paquets avec des versions plus anciennes de dpkg, il est préférable d'utiliser Build-Depends.
Liste analogue à Build-Depends, mais restreinte aux paquets nécessaires pour construire les paquets indépendants de l'architecture. Les paquets indiqués dans Build-Depends sont alors aussi installés.
Liste de paquets qui ne doivent pas être installés lors de la construction du paquet, par exemple s'ils interfèrent avec le système de construction utilisé. Si une dépendance est ajoutée à cette liste, l'effet sera le même que si elle était ajoutée à la fois dans Build-Conflicts-Arch et Build-Conflicts-Indep, en ayant de plus l'effet d'être prise en compte pour les constructions de paquets uniquement source (« source-only builds »).
Identique à Build-Conflicts, mais n'est prise en compte que pour les paquets dépendants de l'architecture. Ce champ est géré depuis la version 1.16.4 de dpkg ; pour pouvoir construire des paquets avec des versions plus anciennes de dpkg, il est préférable d'utiliser Build-Conflicts.
liste analogue à Build-Conflicts mais restreinte à la construction des paquets indépendants de l'architecture.

La syntaxe des champs Build-Depends, Build-Depends-Arch et Build-Depends-Indep est une liste de groupes contenant des paquets alternatifs. Chaque groupe est une liste de paquets séparés par des barres verticales (le symbole du tube) « | ». Les groupes sont séparés par des virgules « , », et la liste peut finir par une virgule qui peut être éliminée lors de la création des champs pour deb-control(5) (depuis dpkg 1.10.14). Une virgule représente un « ET » logique et une barre verticale représente un « OU » logique ; le tube représente un lien plus fort. Chaque nom de paquet est suivi de façon optionnelle par un type d'architecture entre crochets après deux-points « : », éventuellement suivi par un numéro de version entre parenthèses « ( » et « ) », une spécification d'architecture entre crochets « [ » et « ] », et une formule de restriction constituée d'une ou plusieurs listes de noms de profil entre chevrons « < » et « > ».

La syntaxe des champs Build-Conflicts, Build-Conflicts-Arch et Build-Conflicts-Indep est une liste de paquets séparés par des virgules qui représentent le « ET » logique et peut finir par une virgule qui peut être éliminée lors de la création des champs pour deb-control(5) (depuis dpkg 1.10.14). L'indication de paquets alternatifs avec une barre verticale (le symbole du tube) « | » n'est pas prise en charge. Chaque nom de paquet peut être suivi de façon optionnelle par un numéro de version entre parenthèses, un type d'architecture entre crochets et une formule de restriction constituée d'une ou plusieurs listes de noms de profil entre chevrons.

Un nom de type d'architecture peut être un nom d'architecture réelle de Debian (depuis dpkg 1.16.5), any (depuis dpkg 1.16.2) ou native (depuis dpkg 1.16.5). S'il est omis, la valeur par défaut des champs Build-Depends est l'architecture de l'hôte actuel, la valeur par défaut des champs Build-Conflicts est any. Un nom d'architecture réelle de Debian correspondra exactement à l'architecture pour ce nom de paquet, any correspondra à toute architecture pour ce nom de paquet si le paquet a été marqué Multi-Arch: allowed, et native correspondra à l'architecture de construction actuelle si le paquet n'a pas été marqué Multi-Arch: foreign.

Une contrainte sur le numéro de version peut commencer par « >> », et dans ce cas toute version supérieure correspondra, et il peut indiquer (ou pas) le numéro de révision pour le paquet Debian (les deux numéros étant séparés par un trait d'union). Voici les relations acceptées pour les versions : « >> » pour supérieur à, « << » pour inférieur à, « >= » pour supérieur ou égal, « <= » pour inférieur ou égal, et « = » pour égal à.

Une indication d'architecture consiste en un ou plusieurs noms d'architectures, séparés par des espaces. Un nom d'architecture peut être précédé d'un point d'exclamation qui correspond alors au « NON » logique.

Une formule de restriction consiste en une ou plusieurs listes de restriction séparées par des espaces. Chaque liste de restriction est incluse entre chevrons. Les éléments des listes de restriction sont des noms de profils de construction séparés par des espaces et pouvant être préfixés d'un point d'exclamation représentant un « NON » logique. Une formule de restriction représente une forme normale disjonctive.

Veuillez noter que les dépendances des paquets du jeu build-essential peuvent être omises et qu'il n'est pas possible de déclarer des conflits avec ces paquets. La liste des paquets concernés est fournie par le paquet build-essential.

CHAMPS BINAIRES

Veuillez noter que les champs Priority, Section et Homepage peuvent être placés dans le paragraphe d'un paquet binaire et leur valeur remplace alors celle du paquet source.

Ce champ sert à indiquer le nom du paquet binaire. Les restrictions sont les mêmes que celles des paquets source.
Ce champ indique le type de paquet. La valeur udeb est à utiliser pour les paquets à taille contrôlée utilisés par l'installateur Debian. La valeur deb est la valeur par défaut qui est utilisée si le champ n'est pas présent. De nouveaux types pourraient être ajoutés au fil du temps.
Ce champ indique l'architecture matérielle sur laquelle le paquet peut être utilisé. Les paquets qui peuvent être utilisés sur toute architecture doivent utiliser le champ any. Les paquets indépendants de l'architecture, tels les scripts shell ou Perl ou la documentation utilisent la valeur all. Pour restreindre un paquet à certaines architectures, leurs noms doivent être indiqués séparés par des espaces. Il est également possible d'utiliser des noms génériques d'architectures dans cette liste (voir dpkg-architecture(1) pour plus d'informations sur ces architectures génériques).
Ce champ précise les conditions pour lesquelles ce paquet binaire est ou n'est pas construit. Cette condition est exprimée en utilisant la même syntaxe de formule de restriction qui provient du champ Build-Depends.

Si un paragraphe de paquet binaire ne contient pas ce champ, cela signifie de façon implicite que ce paquet se construit avec tous les profils de construction (y compris aucun profil).

En d'autres termes, si un paragraphe de paquet binaire est annoté d'un champ Build-Profiles non vide, alors, ce paquet binaire est créé si et seulement si la condition exprimée par l'expression en forme normale conjonctive est évaluée à vrai.

Ces champs sont décrits dans la page de manuel de deb-control(5), car ils sont copiés littéralement dans le fichier « control » du paquet binaire.
Ces champs déclarent les relations entre les paquets. Ils sont discutés dans la page de manuel de deb-control(5). Quand ces champs se trouvent dans debian/control, ils peuvent aussi se terminer par une virgule (depuis dpkg 1.10.14) ; ils comprennent des spécifications d'architecture et des formules de restriction qui seront réduites lors de la génération des champs pour deb-control(5).
Ces champs sont utilisés par l'installateur dans les udeb et ne sont en général pas nécessaires. Veuillez consulter /usr/share/doc/debian-installer/devel/modules.txt fourni avec le paquet debian-installer pour plus de détails.

LES CHAMPS UTILISATEUR

Il est autorisé d'ajouter au fichier de contrôle des champs supplémentaires définis par l'utilisateur. L'outil ignorera ces champs. Si vous souhaitez que ces champs soient copiés dans ces fichiers de sortie, tels que les paquets binaires, vous devez utiliser un schéma de nommage personnalisé : les champs démarreront par un X, suivi de zéro ou plusieurs des lettres SBC et un trait d'union.

Ce champ apparaîtra dans le fichier de contrôle du paquet des sources, voir dsc(5).
Le champ apparaîtra dans le fichier de contrôle du paquet binaire, voir deb-control(5).
Le champ apparaîtra dans le fichier de contrôle d'envoi (.changes), voir deb-changes(5).

Veuillez noter que les préfixes X[SBC]- sont retirés quand les champs sont copiés dans les fichiers de sortie. Un champ XC-Approved-By apparaîtra sous la forme Approved-By dans le fichier des modifications et n'apparaîtra pas dans les fichiers de contrôle des paquets binaires ou source.

Il faut prendre en compte le fait que ces champs définis par l'utilisateur se serviront de l'espace de nommage global, lequel pourrait, dans le futur, entrer en conflit avec des champs officiellement reconnus. Pour éviter de telles situations, il est conseillé de les préfixer avec Private- (exemple : XB-Private-New-Field).

EXEMPLE

 # Comment
 Source: dpkg
 Section: admin
 Priority: required
 Maintainer: Dpkg Developers <debian-dpkg@lists.debian.org>
 # this field is copied to the binary and source packages
 XBS-Upstream-Release-Status: stable
 Homepage: https://wiki.debian.org/Teams/Dpkg
 Vcs-Browser: https://git.dpkg.org/cgit/dpkg/dpkg.git
 Vcs-Git: https://git.dpkg.org/git/dpkg/dpkg.git
 Standards-Version: 3.7.3
 Build-Depends: pkg-config, debhelper (>= 4.1.81),
  libselinux1-dev (>= 1.28-4) [!linux-any]
 Package: dpkg-dev
 Section: utils
 Priority: optional
 Architecture: all
 # this is a custom field in the binary package
 XB-Mentoring-Contact: Raphael Hertzog <hertzog@debian.org>
 Depends: dpkg (>= 1.14.6), perl5, perl-modules, cpio (>= 2.4.2-2),
  bzip2, lzma, patch (>= 2.2-1), make, binutils, libtimedate-perl
 Recommends: gcc | c-compiler, build-essential
 Suggests: gnupg, debian-keyring
 Conflicts: dpkg-cross (<< 2.0.0), devscripts (<< 2.10.26)
 Replaces: manpages-pl (<= 20051117-1)
 Description: Debian package development tools
  This package provides the development tools (including dpkg-source)
  required to unpack, build and upload Debian source packages.
  .
  Most Debian source packages will require additional tools to build;
  for example, most packages need make and the C compiler gcc.

VOIR AUSSI

deb822(5), deb-control(5), deb-version(7), dpkg-source(1)

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

2022-07-02 1.20.11