deb-substvars - Variables de substitution de source Debian
debian/substvars,
debian/paquet-binaire.substvars,
variables
Avant que
dpkg-source,
dpkg-gencontrol et
dpkg-genchanges
n'écrivent leurs informations de contrôle (dans le fichier
source de contrôle
.dsc pour
dpkg-source et sur la sortie
standard pour
dpkg-gencontrol et
dpkg-genchanges), ils
réalisent quelques substitutions de variables dans le fichier de
sortie.
Une substitution de variable est de la forme :
${nom-variable }. Les noms de variable consistent en
caractères alphanumériques (a-zA-Z0-9), traits d'union (-) et
« deux points » (:) ; ils commencent par une
lettre ou un chiffre et sont sensibles à la casse même si ils se
réfèrent à d'autres entités qui préservent
la casse. La substitution se fait répétitivement jusqu'à
ce qu'il n'en reste aucune à faire ; le texte entier du champ
après la substitution est réexaminé pour chercher
d'autres substitutions.
Les variables de substitution peuvent être spécifiées dans
un fichier. Ces fichiers consistent en lignes de forme
nom=valeur ou
nom?=valeur.
L'opérateur
= assigne une variable de substitution normale,
alors que l'opérateur
?= (depuis dpkg 1.21.8) assigne une
variable de substitution optionnelle qui n'émettra pas d'avertissement
même si elle n'est pas utilisée. Les espaces vides à la
fin de chaque ligne, les lignes vides et les lignes commençant par le
symbole
# (les commentaires) sont ignorés.
On peut définir les variables en utilisant l'option commune
-V. On
peut aussi se servir du fichier
debian/substvars (ou tout autre fichier
avec l'option commune
-T).
Quand toutes les substitutions ont été faites, chaque occurrence
de la chaîne
${} (laquelle n'est pas une variable de
substitution réelle) est remplacée par un signe
$. Cela
peut être utilisé comme une séquence d'échappement
telle que
${}{VARIABLE} qui finira sous la forme
${ VARIABLE} sur la sortie.
Quand une variable est référencée mais n'est pas
définie, cela produit un avertissement et une valeur vide est
supposée.
Alors que le remplacement de variables est effectué sur tous les champs
de contrôle, certains de ces champs sont utilisés et
nécessaires pendant la construction alors même que la
substitution n'a pas encore pu être effectuée. Cela explique
pourquoi il n'est pas possible d'utiliser de variables dans les champs
Package,
Source et
Architecture.
La substitution de variables se fait dans le contenu des champs après
leur analyse. En conséquence, si vous souhaitez qu'une variable soit
remplacée sur plusieurs lignes, il n'est pas nécessaire de
placer une espace après le retour à la ligne. Cela se fait
implicitement quand le champ est affiché. Par exemple, si la variable
${Description} est positionnée sur « toto est
truc.${Newline}toto est super. » et si vous avez le champ
suivant :
Description: application toto
${Description}
.
Encore du texte.
Le résultat final sera :
Description: application toto
toto est truc.
toto est super.
.
Encore du texte.
En outre, les variables standard suivantes sont toujours disponibles :
- Arch
- L'architecture de l'hôte actuel (c'est-à-dire
l'architecture pour laquelle le paquet est construit, équivalent de
DEB_HOST_ARCH).
- vendor:Nom
- Le nom du fabriquant actuel (depuis dpkg 1.20.0).
Cette valeur vient du champ Vendor du fichier d'origine du
fabricant actuel, comme dpkg-vendor(1) pourrait le
récupérer.
- vendor:Id
- L'identifiant du fabricant actuel (depuis
dpkg 1.20.0). C'est simplement la variante en bas de casse de
vendor:Name.
- source:Version
- Version du paquet source (depuis dpkg 1.13.19).
- source:Upstream-Version
- La version amont du paquet source, avec
éventuellement l'« epoch » de la
version Debian (depuis dpkg 1.13.19).
- binary:Version
- La version du paquet binaire (qui peut être
différente de source:Version dans un binNMU par exemple ;
depuis dpkg 1.13.19).
- Source-Version
- La version du paquet source, selon le fichier changelog.
Cette variable est maintenant obsolète et produit une erreur
lors de son utilisation, car sa signification est distincte de sa
fonction. Utilisez plutôt source:Version ou
binary:Version.
- source:Synopsis
- Le synopsis du paquet source, extrait du champ
Description du paragraphe source, s'il existe (depuis
dpkg 1.19.0).
- source:Extended-Description
- La description étendue du paquet source, extraite du
champ Description du paragraphe source, s'il existe (depuis
dpkg 1.19.0).
- Installed-Size
- La taille approximative de tous les fichiers
installés du paquet. Cette valeur est copiée dans le champ
adéquat du fichier « control » ; quand
on fixe cette variable, cela modifie la valeur de ce champ. Quand elle est
indéterminée, dpkg-gencontrol calcule la valeur par
défaut en additionnant la taille de chaque fichier ordinaire et
lien symbolique arrondie en unité d'un kio utilisée et sur
la base d'un kio pour n'importe quel type d'objet du système de
fichiers, les liens physiques étant comptés une seule fois
comme des fichiers ordinaires.
Remarque : Il faut tenir compte que cela ne peut jamais
être qu'une approximation dans la mesure où la taille
véritablement occupée sur un système installé
dépend largement du système de fichiers utilisé et de
ses paramètres, ce qui pourrait finir par l'utilisation de plus ou
moins d'espace que ce qui est spécifié dans ce champ.
- Extra-Size
- L'espace disque supplémentaire utilisé pour
l'installation du paquet. Quand on fixe cette variable, on ajoute sa
valeur à la valeur de la variable Installed-Size (qu'elle
soit définie explicitement ou calculée par défaut)
avant qu'elle soit copiée dans le champ Installed-Size du
fichier « control ».
-
S:nom-de-champ
- La valeur du champ nom-de-champ du paragraphe source
(qui doit être classiquement en majuscules, depuis
dpkg 1.18.11). Quand on fixe ces variables, cela ne prend effet que
là où elles sont explicitement développées.
Ces variables ne sont disponibles que lors de la création des
fichiers de contrôle binaires.
-
F:nom-de-champ
- La valeur du champ nom-de-champ affichée en
sortie (qui doit être classiquement en majuscules). Quand on fixe
ces variables, cela ne prend effet que là où elles sont
explicitement développées.
- Format
- La version du format du fichier .changes produite
par la version des scripts construisant le source. Quand on
détermine cette variable, le contenu du champ Format dans le
fichier .changes est aussi modifié.
-
Newline, Space, Tab
- Ces variables contiennent chacune le caractère
correspondant.
-
shlibs:champ-dépendance
- Les variables déterminées de cette
façon sont produites par dpkg-shlibdeps.
- dpkg:Upstream-Version
- La version amont de dpkg (depuis dpkg 1.13.19).
- dpkg:Version
- La version complète de dpkg (depuis
dpkg 1.13.19).
- debian/substvars
- La liste des variables de substitution et leurs
valeurs.
dpkg(1),
dpkg-vendor(1),
dpkg-genchanges(1),
dpkg-gencontrol(1),
dpkg-shlibdeps(1),
dpkg-source(1).
Ariel VARDI <
[email protected]>, 2002. Philippe Batailler, 2006.
Nicolas François, 2006. Veuillez signaler toute erreur à
<
[email protected]>.