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 stanzas, separated by a blank line. The first stanza lists all information about the source package in general, while each following stanza describes exactly one binary package. Each stanza 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

Source: nom-du-paquet-source (requis)
    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.

Maintainer: nom-complet-et-adresse-électronique (recommandé)
    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.

Uploaders: nom-complet-et-adresse-électronique
    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.

Standards-Version: chaîne-de-la-version
    Ce champ indique la version la plus récente des normes de la charte de la distribution auxquelles ce paquet se conforme.

Description description-courte
description-longue
    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.

Homepage: URL
    URL de la page d'accueil du projet amont.

Bugs: URL
    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.

Rules-Requires-Root: no|binary-targets|mots-clés-implémentation
    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.

    no  Les cibles binaires n'exigeront aucun (fake)root.

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

    mots-clés-implémentation
        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).

Testsuite: liste-de-noms
Testsuite-Triggers: liste-de-paquets
    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.

Vcs-Arch: URL
Vcs-Bzr: URL
Vcs-Cvs: URL
Vcs-Darcs: URL
Vcs-Git: URL
Vcs-Hg: URL
Vcs-Mtn: URL
Vcs-Svn: URL
    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 ».

Vcs-Browser: URL
    Indique l'URL de l'interface web permettant de parcourir le dépôt du système de gestion de version.

Origin: nom
    Indique le nom de la distribution dont le paquet provient. Ce champ n'est souvent pas nécessaire.

Section: section
    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.

Priority: priorité
    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.

Build-Depends: liste-de-paquets
    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.

Build-Depends-Arch:liste-de-paquets
    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.

Build-Depends-Indep: liste-de-paquets
    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.

Build-Conflicts: liste de paquets
    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 »).

Build-Conflicts-Arch: liste-de-paquets
    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.

Build-Conflicts-Indep: liste-de-paquets
    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
Note that the Priority, Section and Homepage fields can also be in a binary stanza to override the global value from the source package.

Package: nom-du-paquet-binaire (requis)
    Ce champ sert à indiquer le nom du paquet binaire. Les restrictions sont les mêmes que celles des paquets source.

Package-Type: deb|udeb|type
    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.

Architecture: arch|all|any (requis)
    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).

Build-Profiles: formule-de-restriction
    This field specifies the conditions for which this binary package does or does not build. To express that condition, the same restriction formula syntax from the Build-Depends field is used (including the angle brackets).

    If a binary package stanza does not contain this field, then it implicitly means that it builds with all build profiles (including none at all).

    In other words, if a binary package stanza is annotated with a non-empty Build-Profiles field, then this binary package is generated if and only if the condition expressed by the conjunctive normal form expression evaluates to true.

Protected: yes|no
Essential: yes|no
Build-Essential: yes|no
Multi-Arch: same|foreign|allowed|no
Tag: liste-d'étiquettes
Description: description-courte (recommandé)
    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.

Depends: liste-de-paquets
Pre-Depends: liste-de-paquets
Recommends: liste-de-paquets
Suggests: liste-de-paquets
Breaks: liste-de-paquets
Enhances: liste-de-paquets
Replaces: liste-de-paquets
Conflicts: liste-de-paquets
Provides: liste-de-paquets
Built-Using: liste-de-paquets
Static-Built-Using: package-list
    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).

Subarchitecture: valeur
Kernel-Version: valeur
Installer-Menu-Item: valeur
    These fields are used by the debian-installer in udebs and are usually not needed. For more details about them, see <https://salsa.debian.org/installer-team/debian-installer/-/raw/master/doc/devel/modules.txt>.

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.

S   Ce champ apparaîtra dans le fichier de contrôle du paquet des sources, voir dsc(5).

B   Le champ apparaîtra dans le fichier de contrôle du paquet binaire, voir deb-control(5).

C   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
/usr/share/doc/dpkg-1.21.15-r3/spec/rootless-builds.txt, 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>.