summaryrefslogtreecommitdiffstats
path: root/man/fr/dpkg-gensymbols.man
diff options
context:
space:
mode:
Diffstat (limited to 'man/fr/dpkg-gensymbols.man')
-rw-r--r--man/fr/dpkg-gensymbols.man591
1 files changed, 591 insertions, 0 deletions
diff --git a/man/fr/dpkg-gensymbols.man b/man/fr/dpkg-gensymbols.man
new file mode 100644
index 0000000..e6fc0c9
--- /dev/null
+++ b/man/fr/dpkg-gensymbols.man
@@ -0,0 +1,591 @@
+.\" dpkg manual page - dpkg-gensymbols(1)
+.\"
+.\" Copyright © 2007-2011 Raphaël Hertzog <hertzog@debian.org>
+.\" Copyright © 2009-2010 Modestas Vainius <modestas@vainius.eu>
+.\" Copyright © 2012-2015 Guillem Jover <guillem@debian.org>
+.\"
+.\" This is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\" This is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public License
+.\" along with this program. If not, see <https://www.gnu.org/licenses/>.
+.
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH dpkg\-gensymbols 1 %RELEASE_DATE% %VERSION% "suite dpkg"
+.nh
+.SH NOM
+dpkg\-gensymbols \- Création des fichiers de symboles (information de
+dépendances de bibliothèques partagées)
+.
+.SH SYNOPSIS
+\fBdpkg\-gensymbols\fP [\fIoption\fP...]
+.
+.SH DESCRIPTION
+\fBdpkg\-gensymbols\fP analyse un répertoire temporaire de construction (par
+défaut debian/tmp), y recherche les bibliothèques et crée un fichier
+\fIsymbols\fP qui les décrit. Si ce fichier n'est pas vide, il est installé
+dans le sous\-répertoire DEBIAN du répertoire de construction afin de pouvoir
+être inclus dans les informations de contrôle du paquet.
+.P
+Lors de la création de ces fichiers, il utilise en entrée certains fichiers
+de symboles fournis par le responsable. Il recherche les fichiers suivants
+(en utilisant le premier trouvé)\ :
+.IP • 4
+debian/\fIpaquet\fP.symbols.\fIarch\fP
+.IP • 4
+debian/symbols.\fIarch\fP
+.IP • 4
+debian/\fIpaquet\fP.symbols
+.IP • 4
+debian/symbols
+.P
+L'intérêt principal de ces fichiers est de fournir la version minimale
+associée à chaque symbole fourni par les bibliothèques. En général, cela
+correspond à la première version du paquet qui a fourni ce symbole, mais
+cette valeur peut être augmentée manuellement par le responsable si
+l'interface binaire applicative (ABI) du symbole est étendue sans casser la
+compatibilité avec les versions précédentes. La tenue à jour de ces fichiers
+est à la charge du responsable du paquet, avec l'aide de
+\fBdpkg\-gensymbols\fP.
+.P
+Quand les fichiers de symboles créés sont différents de ceux fournis par le
+responsable, \fBdpkg\-gensymbols\fP affichera les différences entre les deux
+versions. Si ces différences sont trop importantes, le programme peut même
+se terminer en échec (le nombre de différences tolérées peut être réglé avec
+l'option \fB\-c\fP).
+.SH "TENUE À JOUR DES FICHIERS SYMBOLES"
+Les fichiers de symboles deviennent réellement utiles lorsqu'ils permettent
+de suivre l'évolution du paquet sur plusieurs versions. En conséquence, le
+responsable doit les mettre à jour chaque fois qu'un nouveau symbole est
+ajouté afin que la version minimale associée corresponde à la réalité. Pour
+effectuer cette opération correctement, le fichier de différences indiqué
+dans le journal de construction peut être utilisé. Dans la plupart des cas,
+ce fichier de différences peut être appliqué tel quel au fichier
+debian/\fIpaquet\fP.symbols. Cela étant, quelques adaptations sont généralement
+nécessaires\ : il est par exemple recommandé de retirer le numéro de révision
+Debian de la version minimale afin que les paquets rétro\-portés, de numéro
+de version inférieur mais avec la même version amont continuent à répondre
+aux pré\-requis. Si le numéro de révision Debian ne peut vraiment pas être
+retiré car le nouveau symbole est la conséquence d'une modification propre à
+Debian, il est suggéré d'ajouter un suffixe «\ \fB~\fP\ » au numéro de version.
+.P
+Avant d'appliquer le correctif au fichier de symboles, le responsable doit
+contrôler qu'il est correct. Les symboles publics sont supposés ne jamais
+disparaître et le correctif ne devrait donc qu'ajouter des lignes.
+.P
+Veuillez noter qu'il est possible de placer des commentaires dans les
+fichiers de symboles\ :\ toute ligne commençant par «\ #\ » est un commentaire
+sauf si elle commence par «\ #include\ » (voir la section \fButilisation des
+inclusions\fP). Les lignes commençant par «\ #MISSING:\ » sont des commentaires
+spéciaux qui indiquent les symboles qui peuvent avoir disparu.
+.P
+N'oubliez pas de vérifier si les anciennes versions des symboles ne doivent
+pas être incrémentées. Il n'y a pas de moyen pour que \fBdpkg\-gensymbols\fP
+prévienne de cela. Appliquer aveuglement le fichier de différences ou
+supposer qu'il n'y a rien à changer, s'il n'y a pas de fichier de
+différences, sans vérifier s'il y a ces modifications, peut faire que des
+paquets, avec des dépendances lâches, prétendent qu'ils peuvent fonctionner
+avec des paquets plus anciens avec lesquels ils ne peuvent fonctionner. Cela
+introduira des bogues difficiles à trouver avec des mises à niveau
+(partielles).
+.SS "Utilisation du remplacement de #PACKAGE#"
+.P
+Dans de rares cas, le nom de la bibliothèque dépend de l'architecture. Afin
+d'éviter de coder le nom du paquet en dur dans le fichier de symboles, il
+est possible d'utiliser le marqueur \fI#PACKAGE#\fP. Il sera remplacé par le
+vrai nom du paquet lors de l'installation des fichiers de symboles. À la
+différence du marqueur \fI#MINVER#\fP, \fI#PACKAGE#\fP n'apparaîtra jamais dans le
+fichier de symboles d'un paquet binaire.
+.SS "Utilisation des étiquettes de symbole"
+.P
+L'étiquetage des symboles («\ symbol tagging\ ») est utile pour marquer des
+symboles qui sont particuliers d'une manière ou d'une autre. Tout symbole
+peut avoir un nombre quelconque d'étiquettes associées. Bien que toutes les
+étiquettes soient analysées et conservées, seules certaines d'entre elles
+sont comprises par \fBdpkg\-gensymbols\fP et déclenchent un traitement
+spécifique des symboles. Veuillez consulter la sous\-section \fBÉtiquettes
+standard de symbole\fP pour une référence complète à propos de ces étiquettes.
+.P
+L'indication de l'étiquette vient juste avant le nom du symbole (sans
+espace). Elle commence toujours par une parenthèse ouvrante \fB(\fP, se termine
+avec une parenthèse fermante \fB)\fP et doit contenir au moins une
+étiquette. Les étiquettes multiples doivent être séparées par le caractère
+\fB|\fP. Chaque étiquette peut comporter optionnellement une valeur, séparée du
+nom de l'étiquette par le caractère \fB=\fP. Les noms et valeurs des étiquettes
+sont des chaînes quelconques qui ne doivent pas comporter les caractères
+\fB)\fP \fB|\fP et \fB=\fP. Les noms de symbole qui suivent une étiquette peuvent
+optionnellement être mis entre guillemets avec les caractères \fB'\fP ou \fB"\fP
+afin d'y autoriser la présence d'espaces. Cependant, si aucune étiquette
+n'est utilisée, les guillemets sont alors traités comme une partie du nom du
+symbole, qui s'arrête alors au premier espace.
+.P
+ (étiq1=je suis marqué|étiquette avec espace)"symbole comportant des espaces"@Base 1.0
+ (optional)symbole_non_protégé@Base 1.0 1
+ symbole_non_étiqueté@Base 1.0
+.P
+Le premier symbole de cet exemple est appelé \fIsymbole comportant des
+espaces\fP et utilise deux étiquettes\ :\ \fIétiq1\fP avec la valeur \fIje suis
+marqué\fP et \fIétiquette avec espace\fP sans valeur. Le deuxième symbole, appelé
+\fIsymbole_non_protégé\fP ne comporte que l'étiquette \fIoptional\fP. Le dernier
+symbole est un exemple de symbole normal sans étiquette.
+.P
+Comme les étiquettes de symbole sont une extension du format de
+\fBdeb\-symbols(5)\fP, elles ne peuvent apparaître que dans les fichiers de
+symboles des paquets source (ces fichiers peuvent ensuite être vus comme des
+modèles permettant de construire les fichiers de symboles inclus dans les
+paquets binaires). Lorsque \fBdpkg\-gensymbols\fP est lancé sans l'option \fB\-t\fP,
+il affiche les fichiers de symboles compatibles avec le format
+\fBdeb\-symbols(5)\fP\ : il traite entièrement les symboles d'après les exigences
+des étiquettes standard et supprime les étiquettes dans sa sortie. Au
+contraire, dans le mode modèle («\ template\ », option \fB\-t\fP), tous les
+symboles et leurs étiquettes (standard et inconnues) sont conservés dans la
+sortie et écrits dans leur forme d'origine.
+.SS "Étiquettes standard de symbole"
+.TP
+\fBoptional\fP
+Un symbole marqué comme optionnel peut disparaître de la bibliothèque à tout
+moment et ne provoquera pas l'échec de \fBdpkg\-gensymbols\fP. Cependant, les
+symboles optionnels disparus apparaîtront en permanence comme manquants dans
+le fichier de différences, à chaque nouvelle version du paquet. Ce
+comportement sert de rappel au responsable qu'un tel symbole doit être
+supprimé du fichier de symboles ou bien rajouté à la bibliothèque. Un tel
+symbole optionnel, précédemment déclaré comme manquant («\ MISSING\ »), peut
+réapparaître soudainement dans la version suivante en étant remis à l'état
+existant («\ existing\ »), sans modification de sa version minimale.
+
+Cette étiquette est utile pour les symboles qui sont privés car leur
+disparition ne provoque pas de changement d'interface applicative (ABI). Par
+exemple, la plupart des modèles d'instanciation C++ sont dans cette
+catégorie. Comme toute autre étiquette, celle\-ci peut comporter une valeur
+arbitraire qui peut servir à indiquer pour quelle raison le symbole est
+optionnel.
+.TP
+\fBarch=\fP\fIliste\-d'architectures\fP
+.TQ
+\fBarch\-bits=\fP\fIoctets\-architecture\fP
+.TQ
+\fBarch\-endian=\fP\fIboutisme\-d'architecture\fP
+Ces étiquettes permettent de restreindre la liste des architectures avec
+lesquelles le symbole est censé exister. Les étiquettes \fBarch\-bits\fP et
+\fBarch\-endian\fP sont prises en charge depuis dpkg\ 1.18.0. Lorsque la liste
+des symboles est mise à jour avec ceux découverts dans la bibliothèque, tous
+les symboles spécifiques d'architectures qui ne concernent pas
+l'architecture en cours sont ignorés. Si un symbole propre à l'architecture
+en cours n'existe pas dans la bibliothèque, les processus normaux pour des
+symboles manquants s'appliquent jusqu'à éventuellement provoquer l'échec de
+\fBdpkg\-gensymbols\fP. D'un autre côté, si le symbole propre à une architecture
+est trouvé alors qu'il n'est pas censé exister (parce que l'architecture
+courante n'est pas mentionnée dans l'étiquette ou ne correspond pas au
+boutisme et aux octets), il est rendu indépendant de l'architecture
+(c'est\-à\-dire que les étiquettes d'architecture, d'octets de l'architecture
+et de boutisme d'architecture sont abandonnées et le symbole apparaît dans
+le fichier de différences) mais non considéré comme nouveau. (NdT\ : une
+aspirine peut être nécessaire après la lecture de ce paragraphe)
+
+Dans le mode de fonctionnement par défaut (pas en mode «\ modèle\ »), seuls
+les symboles spécifiques de certaines architectures qui correspondent à
+l'architecture courante sont écrits dans le fichier de symboles. Au
+contraire, tous les symboles spécifiques d'architectures (y compris ceux des
+architectures différentes) seront écrits dans le fichier de symboles, dans
+le mode «\ modèle\ ».
+
+Le format de \fIliste\-d'architectures\fP est le même que le format utilisé dans
+les champs \fBBuild\-Depends\fP des fichiers \fIdebian/control\fP (à l'exception
+des crochets d'inclusion []). Par exemple, le premier symbole de la liste
+qui suit sera pris en compte sur les architectures alpha, n'importe quelle
+amd64 et ia64, le second uniquement sur les architectures linux et le
+troisième partout sauf sur armel.
+
+ (arch=alpha any\-amd64 ia64)un_symbole_spécifique_64bit@Base 1.0
+ (arch=linux\-any)un_symbole_spécifique_linux@Base 1.0
+ (arch=!armel)un_symbole_inexistant_sur_armel@Base 1.0
+
+Les \fIoctets\-architecture\fP sont soit \fB32\fP soit \fB64\fP.
+
+ (arch\-bits=32)32bit_specific_symbol@Base 1.0
+ (arch\-bits=64)64bit_specific_symbol@Base 1.0
+
+Le \fIboutisme\-d'architecture\fP est soit \fBlittle\fP soit \fBbig\fP.
+
+ (arch\-endian=little)little_endian_specific_symbol@Base 1.0
+ (arch\-endian=big)big_endian_specific_symbol@Base 1.0
+
+Plusieurs restrictions peuvent être chaînées.
+
+ (arch\-bits=32|arch\-endian=little)32bit_le_symbol@Base 1.0
+.TP
+\fBignore\-blacklist\fP
+\fBdpkg\-gensymbols\fP comporte une liste interne de symboles ignorés qui ne
+devraient pas apparaître dans les fichiers de symboles car ils sont en
+général uniquement des effets de bord de détails de mise en œuvre de la
+chaîne d'outils de construction. Si, pour une raison précise, vous voulez
+vraiment inclure un de ces symboles dans le fichier, vous pouvez imposer
+qu'il soit ignoré, avec \fBignore\-blacklist\fP. Cela peut être utile pour
+certaines bibliothèques de bas niveau telles que libgcc.
+.TP
+\fBc++\fP
+Indique un motif de symbole \fIc++\fP. Voir la sous\-section \fBUtilisation de
+motifs de symbole\fP plus loin.
+.TP
+\fBsymver\fP
+Indique un motif de symbole \fIsymver\fP (version de symbole). Voir la
+sous\-section \fBUtilisation des motifs de symbole\fP plus loin.
+.TP
+\fBregex\fP
+Indique un motif de symbole basé sur une \fIexpression\-rationnelle\fP. Voir la
+sous\-section \fBUtilisation des motifs de symbole\fP plus loin.
+.SS "Utilisation de motifs de symbole"
+.P
+Au contraire d'une indication normale de symbole, un motif permet de couvrir
+des symboles multiples de la bibliothèque. \fBdpkg\-gensymbols\fP essaie de
+faire correspondre chaque motif à chaque symbole qui n'est pas explicitement
+défini dans le fichier de symboles. Dès qu'un motif est trouvé qui
+correspond au symbole, l'ensemble de ses étiquettes et propriétés sont
+utilisées comme spécification de base du symbole. Si aucun des motifs ne
+correspond, le symbole sera considéré comme nouveau.
+
+Un motif est considéré comme perdu si aucun symbole ne lui correspond dans
+la bibliothèque. Par défaut, cela provoquera un échec de \fBdpkg\-gensymbols\fP
+s'il est utilisé avec l'option \fB\-c1\fP (ou une valeur plus
+élevée). Cependant, si l'échec n'est pas souhaité, le motif peut être marqué
+comme optionnel avec l'étiquette \fIoptional\fP. Dans ce cas, si le motif ne
+correspond à rien, il sera simplement mentionné dans le fichier de
+différences comme \fIMISSING\fP (manquant). De plus, comme pour tout autre
+symbole, le motif peut être limité à des architectures données avec
+l'étiquette \fIarch\fP. Veuillez consulter la sous\-section \fBÉtiquettes
+standard de symbole\fP pour plus d'informations.
+
+Les motifs sont une extension du format de \fBdeb\-symbols(5)\fP en ce sens
+qu'ils ne sont valables que dans les modèles de fichiers de
+symboles. Cependant, la partie comportant le nom de symbole est utilisée
+comme une expression à faire correspondre à \fIname@version\fP du symbole
+réel. Afin de faire la distinction entre les différents types de motifs, un
+motif sera usuellement marqué avec une étiquette spéciale.
+
+Actuellement, \fBdpkg\-gensymbols\fP gère trois types de base de motifs\ :
+.TP 3
+\fBc++\fP
+Ce motif est repéré par l'étiquette \fIc++\fP. Il ne sera comparé qu'aux
+symboles C++ avec leur nom de symbole rétabli (demangled) tel qu'affiché
+avec l'utilitaire \fBc++filt\fP. Ce motif est très pratique pour faire
+correspondre les symboles dont les noms décorés (mangled) peuvent différer
+selon les architectures bien que leurs noms d'origine restent les mêmes. Un
+tel groupe de symboles sont les \fInon\-virtual thunks\fP pour lesquels les
+décalages (offsets) spécifiques d'architectures sont inclus dans leur nom
+décoré. Une manifestation usuelle de ce cas est le destructeur virtuel qui,
+dans le contexte d'un «\ problème du diamant\ », a besoin d'un symbole de
+transition spécial (ou «\ thunk\ ») non virtuel. Par exemple, même si
+_ZThn8_N3NSB6ClassDD1Ev@Base sur une architecture 32\ bits est identique à
+_ZThn16_N3NSB6ClassDD1Ev@Base sur une architecture 64\ bits, les deux peuvent
+être indiqués avec le même motif \fIc++\fP\ :
+
+libdummy.so.1 libdummy1 #MINVER#
+ [...]
+ (c++)"non\-virtual thunk to NSB::ClassD::~ClassD()@Base" 1.0
+ [...]
+
+Le nom non décoré ci\-dessus peut être obtenu avec la commande suivante\ :
+
+ $ echo '_ZThn8_N3NSB6ClassDD1Ev@Base' | c++filt
+
+Veuillez noter que, bien que le nom décoré soit unique dans la bibliothèque
+par définition, cela n'est pas forcément vrai pour le nom non décoré. Deux
+symboles réels différents peuvent avoir le même nom non décoré. C'est par
+exemple le cas avec les symboles «\ thunk\ » non virtuels dans des
+configurations d'héritage complexes ou avec la plupart des constructeurs et
+destructeurs (puisque g++ crée usuellement deux symboles réels pour
+eux). Cependant, comme ces collisions se produisent au niveau de l'interface
+applicative binaire (ABI), elles ne devraient pas dégrader la qualité du
+fichier de symboles.
+.TP
+\fBsymver\fP
+Ce motif est indiqué par l'étiquette \fIsymver\fP. Les bibliothèques bien
+gérées utilisent des symboles versionnés où chaque version correspond à la
+version amont à laquelle le symbole a été ajouté. Si c'est le cas, il est
+possible d'utiliser un motif \fIsymver\fP pour faire correspondre chaque
+symbole associé à la version spécifique. Par exemple\ :
+
+libc.so.6 libc6 #MINVER#
+ (symver)GLIBC_2.0 2.0
+ [...]
+ (symver)GLIBC_2.7 2.7
+ access@GLIBC_2.0 2.2
+
+Tous les symboles associés avec les versions GLIBC_2.0 et GLIBC_2.7
+conduiront respectivement à des versions minimales de\ 2.0 et\ 2.7, à
+l'exception du symbole access@GLIBC_2.0. Ce dernier amène à une dépendance
+minimale sur la version\ 2.2 de libc6 bien qu'il soit dans le scope de
+«\ (symvar)GLIBC_2.0\ ». Cela est dû au fait que les symboles spécifiques
+prennent le pas sur les motifs.
+
+Veuillez noter que les anciens motifs avec caractères génériques (indiqués
+sous la forme «\ *@version\ ») dans le champ de nom de symbole sont toujours
+gérés. La nouvelle syntaxe «\ (symver|optional)version\ » doit toutefois leur
+être préférée. Par exemple, «\ *@GLIBC_2.0\ 2.0\ » devrait être écrit sous la
+forme «\ (symver|optional)GLIBC_2.0\ 2.0\ » si un comportement analogue est
+recherché.
+.TP
+\fBregex\fP
+Les motifs d'expressions rationnelles sont indiqués par l'étiquette
+\fIexpression\-rationnelle\fP. La correspondance se fait avec une expression
+rationnelle Perl sur le champ de nom de symbole. La correspondance est faite
+telle quelle et il ne faut donc pas oublier le caractère \fI^\fP, sinon la
+correspondance est faite sur n'importe quelle partie du symbole réel
+\fIname@version\fP. Par exemple\ :
+
+libdummy.so.1 libdummy1 #MINVER#
+ (regex)"^mystack_.*@Base$" 1.0
+ (regex|optional)"private" 1.0
+
+Les symboles tels que «\ mystack_new@Base\ », «\ mystack_push@Base\ »,
+«\ mystack_pop@Base\ », etc., seront en correspondance avec le premier motif
+alors que, par exemple, «\ ng_mystack_new@Base\ » ne le sera pas. Le deuxième
+motif correspondra pour tous les symboles qui comportent la chaîne
+«\ private\ » dans leur nom et les correspondances hériteront de l'étiquette
+\fIoptional\fP depuis le motif.
+.P
+Les motifs de base indiqués précédemment peuvent être combinés au
+besoin. Dans ce cas, ils sont traités dans l'ordre où les étiquettes sont
+indiquées. Par exemple, les deux motifs
+
+ (c++|regex)"^NSA::ClassA::Private::privmethod\ed\e(int\e)@Base" 1.0
+ (regex|c++)N3NSA6ClassA7Private11privmethod\edEi@Base 1.0
+
+seront en correspondance avec les symboles
+«\ _ZN3NSA6ClassA7Private11privmethod1Ei@Base"\ » et
+«\ _ZN3NSA6ClassA7Private11privmethod2Ei@Base\ ». Lors de la correspondance
+avec le premier motif, le symbole brut est d'abord rétabli d’origine en tant
+que symbole C++, puis comparé à l'expression rationnelle. D'un autre côté,
+lors de la correspondance avec le deuxième motif, l'expression rationnelle
+est comparée au nom de symbole brut, puis le symbole est testé en tant que
+symbole C++ en tentant de le rétablir d’origine. L'échec de n'importe quel
+motif basique provoquera l'échec de l'ensemble du motif. Ainsi, par exemple,
+«\ __N3NSA6ClassA7Private11privmethod\edEi@Base\ » ne correspondra à aucun des
+motifs car ce n'est pas un symbole C++ valable (NdT\ :\ j'ai l'impression de
+traduire du Klingon\ !).
+
+En général, les motifs sont divisés en deux groupes\ :\ les alias (\fIc++\fP et
+\fIsymver\fP basique) et les motifs génériques (\fIexpression\-rationnelle\fP et
+toutes les combinaisons de motifs basiques multiples). La correspondance de
+motifs basés sur des alias est rapide (O(1)) alors que les motifs génériques
+sont O(N) (N étant le nombre de motifs génériques) pour chaque symbole. En
+conséquence, il est déconseillé d'abuser des motifs génériques.
+
+Lorsque plusieurs motifs correspondent pour le même symbole réel, les alias
+(d'abord \fIc++\fP, puis \fIsymver\fP) sont privilégiés par rapport aux motifs
+génériques. Ceux\-ci sont essayés dans l'ordre où ils apparaissent dans le
+modèle de fichier de symboles, en s'arrêtant à la première
+correspondance. Veuillez noter, cependant, que la modification manuelle de
+l'ordre des entrées de fichiers n'est pas recommandée car \fBdpkg\-gensymbols\fP
+crée des fichiers de différences d'après l'ordre alphanumérique de leur nom.
+.SS "Utilisation des inclusions"
+.P
+Lorsqu'un jeu de symboles exportés varie selon les architectures, il est
+souvent peu efficace d'utiliser un seul fichier de symboles. Pour couvrir
+ces cas, une directive d'inclusion peut devenir utile dans certains cas\ :
+.IP • 4
+Il est possible de factoriser la partie commune dans un fichier externe
+donné et l'inclure dans le fichier \fIpaquet\fP.symbols.\fIarch\fP avec une
+directive «\ include\ » utilisée de la manière suivante\ :
+
+#include "\fIpaquets\fP.symbols.common"
+.IP •
+La directive d'inclusion peut également être étiquetée comme tout autre
+symbole\ :
+
+(étiquette|...|étiquetteN)#include "fichier_à_inclure"
+
+Le résultat sera que tous les symboles inclus depuis \fIfichier_à_inclure\fP
+seront considérés comme étiquetés par défaut avec \fIetiq\fP ... \fIetiqN\fP. Cela
+permet de créer un fichier \fIpaquet\fP.symbols commun qui inclut les fichiers
+de symboles spécifiques des architectures\ :
+
+ symbole_commun1@Base 1.0
+ (arch=amd64 ia64 alpha)#include "package.symbols.64bit"
+ (arch=!amd64\ !ia64\ !alpha)#include "package.symbols.32bit"
+ symbole_commun2@Base 1.0
+.P
+Les fichiers de symboles sont lus ligne par ligne et les directives
+d'inclusion sont traitées dès qu'elles sont trouvées. En conséquence, le
+contenu du fichier d'inclusion peut remplacer une définition qui précède
+l'inclusion et ce qui suit l'inclusion peut remplacer une définition qu'elle
+ajoutait. Tout symbole (ou même une autre directive d'inclusion) dans le
+fichier inclus peut définir des étiquettes supplémentaires ou remplacer les
+valeurs d'étiquettes héritées, dans sa définition d'étiquettes. Cependant,
+pour un symbole donné, il n'existe pas de méthode permettant de remplacer
+une de ses étiquettes héritées.
+.P
+Un fichier inclus peut reprendre la ligne d'en\-tête qui contient le
+«\ SONAME\ » de la bibliothèque. Dans ce cas, cela remplace toute ligne
+d'en\-tête précédente. Il est cependant déconseillé de dupliquer les lignes
+d'en\-tête. Une façon de le faire est la méthode suivante\ :
+.PP
+#include "libmachin1.symbols.common"
+ symboles_specifique_architecture@Base 1.0
+.SS "Bonnes pratiques de gestion des bibliothèques"
+.P
+Une bibliothèque bien maintenue offre les possibilités suivantes\ :
+.IP • 4
+son interface de programmation (API) est stable (les symboles publics ne
+sont jamais supprimés et les changements ne concernent que des ajouts de
+nouveaux symboles publics) et les modifications provoquant une
+incompatibilité doivent être combinés avec un changement de SONAME\ ;
+.IP • 4
+idéalement, elle utilise le versionnage des symboles pour garantir la
+stabilité de l'interface applicative binaire (ABI) malgré ses modifications
+internes et l'extension de son API\ ;
+.IP • 4
+elle n'exporte pas les symboles privés (afin de contourner cela, de tels
+symboles peuvent être étiquetés comme optionnels).
+.P
+En maintenant le fichier de symboles, il est facile d'en voir apparaître et
+disparaître. Cependant, il est plus difficile de contrôler la présence
+d'éventuelles modifications d'API ou ABI. En conséquence, le responsable
+doit contrôler soigneusement le journal des modifications amont, à la
+recherche de cas où une saine gestion des bibliothèques peut avoir été
+omise. Si des problèmes potentiels sont découverts, l'auteur amont doit être
+averti(e) car une correction en amont est meilleure qu'un travail spécifique
+au paquet Debian.
+.SH OPTIONS
+.TP
+\fB\-P\fP\fIrépertoire\-construction\-paquet\fP
+Analyse de \fIrépertoire\-construction\-paquet\fP, plutôt que debian/tmp.
+.TP
+\fB\-p\fP\fIpaquet\fP
+Définit le nom du paquet. Requis si plus d'un paquet binaire est indiqué
+dans debian/control (ou s'il n'y a pas de fichier debian/control).
+.TP
+\fB\-v\fP\fIversion\fP
+Définit la version du paquet. La valeur par défaut est la version extraite
+de debian/changelog. Ce paramètre est requis si le programme est lancé en
+dehors de l'arborescence source d'un paquet.
+.TP
+\fB\-e\fP\fIfichier\-bibliothèque\fP
+N'analyse que les bibliothèques explicitement mentionnées au lieu de
+rechercher toutes les bibliothèques publiques. Les motifs du shell peuvent
+être utilisés pour l'expansion des chemins d'accès (voir la page de manuel
+de \fBFile::Glob\fP(3perl) pour plus d'informations) dans
+\fIfichier\-bibliothèque\fP pour établir une correspondance avec plusieurs
+bibliothèques avec un seul paramètre (afin d'éviter d'utiliser plusieurs
+options \fB\-e\fP).
+.TP
+\fB\-l\fP\fIrépertoire\fP
+Ajoute \fIrépertoire\fP au début de la liste des répertoires où chercher des
+bibliothèques partagées privées (depuis dpkg\ 1.19.1). Cette option peut être
+utilisée plusieurs fois.
+
+Note\ : Utilisez cette option plutôt que le réglage de \fBLD_LIBRARY_PATH\fP,
+parce que cette variable d'environnement est utilisée pour contrôler
+l'éditeur de liens d'exécution et se servir d'elle pour définir les chemins
+des bibliothèques partagées au moment de la construction peut être
+problématique, par exemple, lors d'une compilation croisée.
+.TP
+\fB\-I\fP\fInom\-de\-fichier\fP
+Utilise \fInom\-de\-fichier\fP comme fichier de référence pour créer le fichier
+de symboles à intégrer dans le paquet lui\-même.
+.TP
+\fB\-O\fP[\fInom\-de\-fichier\fP]
+Affiche le fichier de symboles créé sur la sortie standard ou dans le
+\fInom\-de\-fichier\fP, si spécifié, plutôt que dans \fBdebian/tmp/DEBIAN/symbols\fP
+(ou \fIrépertoire\-construction\-paquet\fP\fB/DEBIAN/symbols\fP si \fB\-P\fP est
+présent). Si \fInom\-de\-fichier\fP existe déjà, son contenu sera utilisé comme
+base pour le fichier créé. Cette fonctionnalité permet de mettre à jour le
+fichier de symboles pour qu'il corresponde à une nouvelle version amont de
+la bibliothèque.
+.TP
+\fB\-t\fP
+Écrit le fichier de symboles en mode modèle plutôt que dans un format
+compatible avec \fBdeb\-symbols\fP(5). La différence majeure réside dans le fait
+que les noms de symboles et les étiquettes sont écrits dans leur forme
+d'origine au lieu d'être interprétés, avec réduction des étiquettes en mode
+de compatibilité. De plus, certains symboles peuvent être omis lors de
+l'écriture d'un fichier \fBdeb\-symbols\fP(5) standard (selon les règles de
+traitement des étiquettes) alors que tous les symboles sont écrits lors de
+la création d'un modèle de fichier de symboles.
+.TP
+\fB\-c\fP\fI[0\-4]\fP
+Définit les contrôles à effectuer lors de la comparaison du fichier de
+symboles créé en utilisant le fichier de modèle comme point de départ. Le
+niveau par défaut est\ 1. Plus le niveau est augmenté, plus le nombre de
+contrôles effectués est important. Chaque niveau de contrôle comporte les
+contrôles effectués pour les niveaux inférieurs. Le niveau\ 0 n'échoue
+jamais. Le niveau\ 1 échoue si certains symboles ont disparu. Le niveau\ 2
+échoue si de nouveaux symboles ont été ajoutés. Le niveau\ 3 échoue si
+certaines bibliothèques ont disparu. Le niveau\ 4 échoue si des bibliothèques
+ont été ajoutées.
+
+Cette valeur peut être remplacée par la valeur de la variable
+d'environnement \fBDPKG_GENSYMBOLS_CHECK_LEVEL\fP.
+.TP
+\fB\-q\fP
+Fonctionne en mode silencieux et ne crée jamais de fichier de différences
+entre le fichier de symboles créé et le fichier modèle utilisé comme point
+de départ. N'affiche également aucun avertissement à propos de bibliothèques
+nouvelles ou disparues ou de symboles nouveaux ou disparus. Cette option ne
+désactive que l'affichage informatif, mais pas les contrôles eux\-mêmes (voir
+l'option \fB\-c\fP).
+.TP
+\fB\-a\fP\fIarch\fP
+Définit \fIarch\fP comme architecture lors du traitement des fichiers de
+symboles. Cette option permet de créer un fichier de symboles ou un fichier
+de différences pour n'importe quelle architecture, à condition que les
+fichiers binaires correspondants soient déjà disponibles.
+.TP
+\fB\-d\fP
+Active le mode bavard. De nombreux messages sont affichés pour expliquer ce
+que \fBdpkg\-gensymbols\fP fait.
+.TP
+\fB\-V\fP
+Active le mode bavard. Le fichier de symboles créé contiendra les symboles
+dépréciés sous forme de commentaires. De plus, en mode modèle, les motifs de
+symboles seront suivis de commentaires affichant les symboles réels qui
+correspondent au motif.
+.TP
+\fB\-?\fP, \fB\-\-help\fP
+Affiche un message d'aide puis quitte.
+.TP
+\fB\-\-version\fP
+Affiche le numéro de version puis quitte.
+.
+.SH ENVIRONNEMENT
+.TP
+\fBDPKG_GENSYMBOLS_CHECK_LEVEL\fP
+Remplace le niveau de vérification de commande, même si l'argument en ligne
+de commande \fB\-c\fP a été donné (notez que cela va à l'encontre de la
+convention générale qui veut que les arguments en ligne de commande ont la
+préséance sur les variables d'environnement).
+.TP
+\fBDPKG_COLORS\fP
+Définit le mode de couleur (depuis dpkg\ 1.18.5). Les valeurs actuellement
+acceptées sont \fBauto\fP (par défaut), \fBalways\fP et \fBnever\fP.
+.TP
+\fBDPKG_NLS\fP
+Si cette variable est définie, elle sera utilisée pour décider l'activation
+de la prise en charge des langues (NLS –\ Native Language Support), connu
+aussi comme la gestion de l'internationalisation (ou i18n) (depuis
+dpkg\ 1.19.0). Les valeurs permises sont\ : \fB0\fP et \fB1\fP (par défaut).
+.
+.SH "VOIR AUSSI"
+\fBhttps://people.redhat.com/drepper/symbol\-versioning\fP
+.br
+\fBhttps://people.redhat.com/drepper/goodpractice.pdf\fP
+.br
+\fBhttps://people.redhat.com/drepper/dsohowto.pdf\fP
+.br
+\fBdeb\-symbols\fP(5), \fBdpkg\-shlibdeps\fP(1).
+.SH 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>.