Provided by: dpkg-dev_1.14.24ubuntu1_all bug

NOM

       dpkg-shlibdeps - générateur de variables de substitution de dépendances
       pour bibliothèque partagées

SYNOPSIS

       dpkg-shlibdeps [options] excutable|-eexcutable [options]

DESCRIPTION

       dpkg-shlibdeps calcule, pour les exécutables nommés dans ses arguments,
       les  dépendances  envers  les  bibliothèques partagées. Ces dépendances
       sont   ajoutées   au   fichier   debian/substvars   sous    la    forme
       shlibs:dependencyfielddependencyfield  est  le  nom  du  champ de
       «dépendance ». Toute autre variable  après  shlibs:  est  supprimée  du
       fichier.

       dpkg-shlibdeps  a  deux sources possibles pour générer les informations
       concernant les dépendances. Soit les fichiers symbols, soit les shlibs.
       Pour chaque fichier binaire analysé par dpkg-shlibdeps, il recherche la
       liste des bibliothèques partagées qui lui sont liées. Puis pour chacune
       d’elles  il analyse soit le fichier symbols, soit le fichier shlibs (si
       le premier n’existe pas). Ces deux fichiers sont supposés être  fournis
       par    le    paquet    de    la   bibliothèque   et   disponible   dans
       «/var/lib/dpkg/info/paquet.symbols »                                 ou
       «/var/lib/dpkg/info/paquet.shlibs ».  Le  nom  du  paquet est trouvé en
       deux étapes : en cherchant les  fichiers  de  la  bibliothèque  sur  le
       système  (en  cherchant dans le répertoire que ld.so utiliserait), puis
       un utilisant dpkg -S fichier-bibliothque pour trouver  le  paquet  qui
       fournit cette bibliothèque.

   Fichiers symboles
       Les  fichiers symboles contiennent des informations de dépendances plus
       fines en fournissant les dépendances minimales pour chaque  symbole  de
       la  bibliothèque  exportée.  Le  script essaie de trouver un fichier de
       symboles associé à un paquet  de  bibliothèque  dans  les  emplacements
       suivants (le premier trouvé est utilisé) :

       debian/*/DEBIAN/symbols
              L’information  des  bibliothèques partagées générée par l’actuel
              processus de  construction  qui  invoque  aussi  dpkg-shlibdeps.
              Elles  sont générées par dpkg-gensymbols(1) et ne sont utilisées
              que si la bibliothèque se trouve dans  l’arbre  de  construction
              d’un  paquet.  Le  fichier  des  symboles  qui construit l’arbre
              s’appuie sur les fichiers de symboles d’autres paquets binaires.

       /etc/dpkg/symbols/paquet.symbols.architecture

       /etc/dpkg/symbols/paquet.symbols
              L’information de dépendance des bibliothèques partagées associée
              aux systèmes. arch est l’architecture du système actuel  (obtenu
              par dpkg-architecture -qDEB_HOST_ARCH).

       admindir/info/paquet.symbols
              Paquet  fournissant  des informations concernant les dépendances
              envers des bibliothèques partagées.  Sauf  indication  contraire
              spécifiée, admindir est par défaut « /var/lib/dpkg ».

       Lors  de  l’analyse  des  symboles  utilisés  par  tous  les  binaires,
       dpkg-shlibdeps retient la (plus  grande)  version  minimale  nécessaire
       pour  chaque  bibliothèque.  À  la  fin  du  processus,  il est capable
       d’écrire la dépendance minimale pour toutes les bibliothèques utilisées
       (à condition que l’information des fichiers symbols soit exacte).

       Comme  garde  fou  de  sécurité, un fichier de symboles peut fournir un
       champ Build-Depends-Package de méta-information  et  dpkg-shlibdeps  en
       extraira la version minimale requise par le paquet correspondant depuis
       ce champ Build-Depends et utiliser cette version si elle est supérieure
       à la version minimale calculée par l’examen des symboles.

   Fichiers Shlibs
       Les  fichiers  Shlibs  associent  directement  une  bibliothèque  à une
       dépendance (sans regarder les symboles).  Il  agit  donc  souvent  plus
       fortement que ce dont on aurait besoin mais il reste très sûr et facile
       à manipuler.

       Les  dépendances  d’une  bibliothèque  sont  recherchées  à   plusieurs
       endroits.  Le  premier  fichier  d’informations  trouvé qui concerne la
       bibliothèque est utilisé :

       debian/shlibs.local
              Fichier particulier à un paquet remplaçant les informations  qui
              concernent les dépendances envers des bibliothèques partagées.

       /etc/dpkg/shlibs.override
              Fichier  système  remplaçant les informations qui concernent les
              dépendances envers des bibliothèques partagées.

       debian/*/DEBIAN/shlibs
              Information sur la bibliothèque partagée généré par le processus
              actuel  de  construction  qui  invoque  aussi dpkg-shlibdeps. Il
              n’est utilisé que si la bibliothèque se trouve dans  l’arbre  de
              construction  du paquet. Le fichier shlibs qui construit l’arbre
              a priorité sur les fichiers shlibs des autres paquets  binaires.

       admindir/info/paquet.shlibs
              Paquet  fournissant  des informations concernant les dépendances
              envers des bibliothèques partagées.  Sauf  indication  contraire
              spécifiée, admindir est par défaut « /var/lib/dpkg ».

       /etc/dpkg/shlibs.default
              Fichier  système  par  défaut  concernant  les  informations  de
              dépendance envers des bibliothèques partagées.

       Les dépendances trouvées sont ensuite directement  utilisées  (sauf  si
       elles  sont  filtrées parce qu’elles ont été identifiées comme étant en
       double, ou d’un niveau plus faible qu’une autre dépendance).

OPTIONS

       dpkg-shlibdeps interprète des arguments sans option comme des commandes
       exécutables, comme si on avait simplement donné -eexcutable.

       -eexcutable
              Cette   option   inclut   les   bonnes  dépendances  envers  les
              bibliothèques partagées que demande excutable.

       -dchamp-dpendance
              Cette  option  ajoute  les  dépendances  destinées  au  champ  «
              dépendance  »  du  fichier  de  contrôle  champ-dpendance. (Les
              dépendances   pour   ce   champ   sont    dans    la    variable
              shlibs:champ-dpendance.)

              L’option  -dchamp-dpendance  concerne  tous les exécutables qui
              suivent    l’option,     jusqu’à     la     prochaine     option
              -dchamp-dpendance. Par défaut, champ-dpendance vaut Depends.

              Quand,   dans   plusieurs   champs   reconnus  ayant  trait  aux
              dépendances comme les champs Pre-Depends,  Depends,  Recommends,
              Enhances  ou  Suggests  apparaît  la  même  entrée  (ou  bien un
              ensemble      d’alternatives),      dpkg-shlibdeps      supprime
              automatiquement  les dépendances dans tous les champs sauf celui
              qui représente les dépendances les plus importantes.

       -pprfixe-pour-le-nom-des-variables
              Fait   commencer   les    variables    de    substitution    par
              prfixe-pour-le-nom-des-variables:  au lieu de shlibs:. De même,
              toute    variable     de     substitution     commençant     par
              prfixe-pour-le-nom-des-variables:   (au  lieu  de  shlib:)  est
              enlevée du fichier de substitution des variables.

       -O     Affiche les définitions des variables  de  substitution  sur  la
              sortie  standard,  plutôt  que de les ajouter dans le fichier de
              substitution des variables qui est par défaut  debian/substvars.

       -ttype Préférer  les informations sur les dépendances des bibliothèques
              partagées qui sont étiquetées pour un type de paquet  donné.  Si
              aucune  information  de  type  n’est  donnée, il n’utilisera pas
              d’information. Par défaut, le type de  paquet  est  « deb ».  On
              peut  créer une étiquette pour ces informations en les préfixant
              par le nom du type, un deux-points et un espace.

       -Lfichier-local-shlibs
              Lire les informations de remplacement concernant les dépendances
              envers  les bibliothèques partagées dans fichier-local-shlibs au
              lieu de debian/shlibs.local.

       -Tfichier/substvars
              Écrire les variables de substitution dans fichier/substvars ; le
              fichier par défaut est debian/substvars.

       -v     Active  le mode verbeux. De nombreux messages sont affichés pour
              expliquer ce que dpkg-shlibdeps fait.

       -xpackage
              Exclut le  paquet  des  dépendances  générées.  Cela  évite  les
              auto-dépendances  pour  les  paquets fournissant des exécutables
              ELF (exécutables ou modules complémentaires de bibliothèque) qui
              utilisent  une  bibliothèque  incluse dans ce même paquet. Cette
              option peut être utilisée plusieurs fois pour exclure  plusieurs
              paquets.

       -Spkgbuilddir
              Recherche  dans  pkgbuilddir en premier et essaye de trouver une
              bibliothèque. C’est utile lorsque  le  paquet  source  construit
              plusieurs  saveurs  de  la  même bibliothèque et que vous voulez
              vous assurer que  vous  obtiendrez  la  dépendance  d’un  paquet
              binaire  donné. Cette option peut être utilisée plusieurs fois :
              les répertoires seront examinés dans le  même  ordre  avant  les
              répertoires d’autres paquets binaires.

       --ignore-missing-info
              Pas  d’échec  si  l’information  de  dépendance ne peut pas être
              trouvée pour une bibliothèque partagée. L’utilisation  de  cette
              option  est  déconseillée,  toutes  les  bibliothèques devraient
              fournir leurs informations de dépendance (que ce soit  avec  les
              fichiers  shlibs,  ou avec les fichiers symboles), même si elles
              ne sont pas encore utilisées par d’autres paquets.

       --warnings=valeur
              valeur est  un  champ  de  « bit »  définissant  l’ensemble  des
              avertissements  qui peuvent être émis par dpkg-shlibdeps. Le bit
              0 (valeur = 1) active l’avertissement « symbole sym utilisé  par
              le  binaire  trouvé  dans  aucune  des bibliothèques ». Le bit 1
              (valeur  =  2)  active  l’avertissement  « la  dépendance  à  la
              bibliothque pourrait être évitée». Le bit 2 (valeur = 4) active
              l’avertissement « Le binaire  ne  devrait  pas  être  lié  à  la
              bibliothque ».  La valeur par défaut est 3 : les deux premières
              mises en garde sont actives par défaut,  la  dernière  ne  l’est
              pas.  Positionnez  la  valeur à 7 si vous souhaitez que tous les
              avertissements soient actifs.

       --admindir=dir
              Change l’endroit où se trouve la base de données  de  dpkg.  Par
              défaut, c’est /var/lib/dpkg.

       -h, --help
              Affiche un message d’aide puis quitte.

       --version
              Affiche le numéro de version puis quitte.

AVERTISSEMENTS

       Depuis  que dpkg-shlibdeps analyse l’ensemble des symboles utilisés par
       chaque binaire généré par le paquet, il est  en  mesure  d’émettre  des
       avertissements  dans  plusieurs  cas. Ils vous informent des choses qui
       peuvent être améliorées dans le paquet. Dans la plupart  des  cas,  ces
       améliorations  concernent  directement  les sources amont. Dans l’ordre
       d’importance décroissant, voici les différents avertissements que  vous
       pouvez rencontrer:

       symbole sym utilisé par binaire trouvé dans aucune des bibliothèques.
              Le  symbole  indiqué  n’a  pas été trouvé dans les bibliothèques
              liées  au  binaire.  Le  binaire  est  probablement  plutôt  une
              bibliothèque  et  elle  doit  être  liée  avec  une bibliothèque
              supplémentaire durant le  processus  de  construction  (l’option
              -lbibliothque de l’éditeur de liens).

       la  dépendance sur la bibliothque pourrait être évitée si les binaires
       inutiles nétaient pas liés à celle-ci  (ils  utilisent  aucun  de  ses
       symboles).
              Aucun  des  binaires liés à la bibliothque utilise les symboles
              qu’elle fournit. En corrigant tous les binaires, vous  éviteriez
              la dépendance associée à cette bibliothèque (à moins que la même
              dépendance soit également lié à une autre bibliothèque  qui  est
              elle réellement utilisée).

       le  binaire  ne  devrait  pas être lié avec la bibliothque (il ne fait
       usage daucun de ses symboles).
              Le binaire est lié à une bibliothèque dont il n’a pas besoin. Ce
              n’est  pas  un  problème  mais  de  petites   améliorations   de
              performance dans le temps de chargement de celui-ci peuvent être
              obtenues  en  ne  le  liant  pas  à  cette   bibliothèque.   Cet
              avertissement vérifie la même information que la précédente mais
              elle le fait pour tous les binaires  au  lieu  de  ne  faire  le
              contrôle qu’au niveau global sur tous les binaires analysés.

ERREURS

       dpkg-shlibdeps  échouera  s’il  ne  peut  pas  trouver  de bibliothèque
       publique utilisée par un binaire  ou  si  cette  bibliothèque  n’a  pas
       d’informations  sur les dépendances associées (soit les fichier shlibs,
       soit le fichier des symboles). Une bibliothèque publique a un SONAME et
       un  numéro  de  version  (libsomething.so.X).  Une  bibliothèque privée
       (comme un module additionnel) ne devrait pas avoir de SONAME et n’a pas
       besoin d’avoir de version.

       impossible  de  trouver  la bibliothèque library-soname demandée par le
       binaire (son RPATH estrpath)
              Le  binaire utilise une bibliothèque appelée library-soname mais
              dpkg-shlibdeps  n’a  pas  été  en  mesure   de   trouver   cette
              bibliothèque.  dpkg-shlibdeps  crée  une  liste de répertoires à
              vérifier de la manière suivante : les répertoires énumérés  dans
              le    RPATH    du   binaire,   les   répertoires   listés   dans
              /etc/ld.so.conf,  les  répertoires  listés  dans   la   variable
              d’environnement  LD_LIBRARY_PATH,  et  les répertoires publiques
              standard   (/lib,   /usr/lib,   /lib32,   /usr/lib32,    /lib64,
              /usr/lib64).  Ensuite,  il vérifie les répertoires qui sont dans
              l’arbre de construction du paquet binaire  en  cours  d’analyse,
              dans l’arbre de construction du paquets indiqué avec l’option de
              ligne de commande -S, dans les  autres  arbres  de  paquets  qui
              contienent  des  fichiers  Debian/shlibs ou un Debian/symbols et
              enfin dans le répertoire racine. Si la  bibliothèque  n’est  pas
              trouvée  dans l’un de ces répertoires, alors ce message d’erreur
              est obtenu.

              Si la bibliothèque n’est pas  trouvée  est  dans  le  répertoire
              privé  de  ce  même  paquet,  alors  il  vous  faut  ajouter  ce
              répertoire dans LD_LIBRARY_PATH. S’il est dans un  autre  paquet
              binaire  en  cours  de  construction,  alors assurez-vous que le
              fichier shlibs/symbols  de  ce  paquet  est  déjà  créé  et  que
              LD_LIBRARY_PATH  contient répertoire approprié si c’est aussi un
              répertoire privé.

       aucune information de dépendance trouvé pour la bibliothque  (utilisée
       par le binaire).
              La  bibliothèque  nécessaire  au  binaire  a  été  trouvée   par
              dpkg-shlibdeps dans fichier-bibliothque mais dpkg-shlibdeps n’a
              pas été en mesure de trouver d’informations de  dépendance  pour
              cette  bibliothèque.  Pour trouver la dépendance, il a essayé de
              lier la bibliothèque à un paquet Debian avec l’aide de  dpkg  -S
              fichier-bibliothque.    Puis,   il   a   vérifié   les   shlibs
              correspondants et les fichiers symboles  de  /var/lib/dpkg/info/
              et   enfin   les   différents   arbres  des  paquets  construits
              (debian/*/DEBIAN/).

              Cet échec peut être  causé  par  un  shlibs  ou  un  fichier  de
              symboles  qui  serait  mauvais  ou  manquant dans le paquet. Une
              autre cause serait que la bibliothèque soit construite  au  sein
              du  même  paquet  source  et que les fichiers shlibs n’aient pas
              encore été créés (dans ce cas  debian/rules  doit  être  modifié
              pour  créer  le  shlibs  avant  l’appel  de  dpkg-shlibdeps). Un
              mauvais RPATH peut aussi conduire à ce que la bibliothèque  soit
              trouvée      sous      un      nom     non-canonique     (comme:
              /usr/lib/gcc/i486-linux-gnu/4.2.3/../../../../lib/libssl.so.9.8
              au  lieu  de /usr/lib/libssl.so.0.9.8) qui n’est associé à aucun
              paquet,  dpkg-shlibdeps  essaie  de  travailler   sur   ce   nom
              non-canonique   (en   utilisant   realpath(3)),   mais  cela  ne
              fonctionne pas toujours. Il  est  toujours  préférable  de  bien
              nettoyer le RPATH du binaire afin d’éviter ces problèmes.

              L’appel de dpkg-shlibdeps en mode verbeux (-v) fournira beaucoup
              plus informations sur  l’endroit  où  il  a  essayé  de  trouver
              l’information  sur les dépendances. Ceci peut être utile si vous
              ne comprenez pas pourquoi vous obtenez cette erreur.

VOIR AUSSI

       deb-shlibs(5), deb-symbols(5), dpkg-gensymbols(1).

AUTEURS

       Copyright (C) 1995-1996 Ian Jackson
       Copyright (C) 2000 Wichert Akkerman
       Copyright (C) 2006 Frank Lichtenheld
       Copyright (C) 2007-2008 Raphaël Hertzog

       Ce programme est un logiciel libre ;  voyez  la  « GNU  General  Public
       Licence »  version  2  ou supérieure pour le copyright. Il n’y a PAS de
       garantie.

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