deb822 - Format des données de contrôle RFC822 Debian
Le système de gestion de paquets manipule des données
représentées dans un format commun, connues comme
données de contrôle, stockées dans les
fichiers
de contrôle. Les fichiers de contrôle sont utilisés
pour les paquets source, les paquets binaires et les fichiers
.changes
qui contrôlent l'installation des fichiers
téléversés (les bases de données internes de
dpkg sont dans un format similaire).
Un fichier de contrôle consiste en un ou plusieurs paragraphes de champs
(en anglais, les paragraphes sont ici appelés strophes,
« stanzas »). Les paragraphes sont
séparés par des lignes vides. Les analyseurs peuvent accepter
des lignes qui ne contiennent que des caractères U+0020
ESPACE
et U+0009
TABULATION comme séparateurs de paragraphes, mais les
fichiers de contrôle utiliseront des lignes vides. Certains fichiers de
contrôle acceptent seulement un paragraphe unique, d'autres plusieurs,
dans ce cas, chaque paragraphe fait référence habituellement
à un paquet différent. (Par exemple, dans les paquets source, le
premier paragraphe fait référence au paquet source, et les
paragraphes suivants font référence aux paquets binaires
créés à partir du source.) L'ordre des paragraphes dans
les fichiers de contrôles est important.
Chaque paragraphe consiste en une série de champs de données.
Chaque champ est constitué d'un nom de champ suivi de deux-points
(U+003A «
: »), puis les données ou
valeur associées à ce champ. Le nom du champ est composé
de caractères US-ASCII à l'exception des caractères de
contrôle, de l'espace et des deux-points (c'est-à dire des
caractères entre U+0021 «
! » et
U+0039 «
9 », et entre U+003B
«
; » et U+007E
«
~ » compris). Les noms de champ ne
doivent pas commencer par le caractère de commentaire
« (U+0023
# », ni par le caractère
trait d'union (U+002D «
- »).
Les champs se terminent à la fin de la ligne ou à la fin de la
dernière ligne de continuation (voir ci-dessous). Une espace
horizontale (U+0020
ESPACE et U+0009
TABULATION) peut
apparaître immédiatement avant ou après la valeur et est
ignorée dans ce cas ; par convention, il y une espace unique
après les deux-points. Par exemple, un champ pourrait
être :
Package: dpkg
le nom du champ est
Package et la valeur du champ
dpkg.
Des valeurs de champ vides ne sont permises que dans les fichiers de
contrôle des paquets source (
debian/control). Ces champs sont
ignorés.
Un paragraphe ne doit pas contenir plus d'une instance d'un nom de champ
particulier.
Il y a trois types de champ :
- simple
- Ce champ, y compris sa valeur, doit être une ligne
unique. La coupure du champ est interdite. Il s'agit du type de champ par
défaut lorsque la définition du champ ne précise pas
un type différent.
- coupé
- La valeur d'un champ coupé
(« folded ») est une ligne logique qui peut
s'étendre sur plusieurs lignes. Les lignes qui suivent la
première sont appelées ligne de continuation et doivent
commencer par un caractère U+0020 ESPACE ou U+0009
TABULATION. Une espace, y compris les caractères saut de
ligne, n'est pas importante dans les valeurs de champ des champs
coupés.
La méthode de coupure est similaire à RFC5322, permettant
à des fichiers de contrôle, qui contiennent seulement un
paragraphe et pas des champs à plusieurs lignes, d'être lus
par les analyseurs écrits pour RFC5322.
- à lignes multiples
- La valeur d'un champ à lignes multiples peut
comprendre de multiples lignes de continuation. La première ligne
de la valeur, la partie sur la même ligne que le nom du champ, a
souvent une signification particulière ou peut devoir être
vide. Les autres lignes sont ajoutées avec la même syntaxe
que les lignes de continuation des champs coupés. Une espace, y
compris les caractères saut de ligne, est importante dans les
valeurs des champs à lignes multiples.
Aucune espace ne doit apparaître dans les noms (de paquet,
d'architecture, de fichier ou n'importe quoi d'autre) ou les numéros de
version, ou entre les caractères des relations des versions
multi-caractères.
La présence et le but d'un champ, ainsi que la syntaxe de sa valeur
peuvent différer selon les types de fichiers de contrôle.
Les noms de champ ne sont pas sensibles à la casse, mais il est habituel
de mettre en capitale l'initiale des noms de champ utilisant une casse mixte
comme indiqué plus bas. Les valeurs de champ sont sensibles à la
casse à moins que la description du champ ne dise le contraire.
Les séparateurs de paragraphes (lignes vides) et les lignes
constituées uniquement de U+0020
ESPACE et U+0009
TABULATION, ne sont pas permis dans les valeurs de champ ou entre les
champs. Les lignes vides dans les valeurs de champ sont habituellement
protégées par une U+0020
ESPACE suivie par un point
(U+002E «
. »).
Les lignes débutant par un U+0023 «
# », sans être précédées
d'une espace sont des lignes de commentaires qui ne sont permises que dans les
fichiers de contrôle de paquet source et dans les fichiers
deb-origin(5). Ces lignes de commentaires sont ignorées,
même entre deux lignes de continuation. Elles ne peuvent pas terminer
les lignes logiques.
Tous les fichiers de contrôle doivent être encodés en
UTF-8.
RFC822,
RFC5322.
Ariel VARDI <
[email protected]>, 2002. Philippe Batailler, 2006.
Nicolas François, 2006. Veuillez signaler toute erreur à
<
[email protected]>.