Provided by: dpkg-dev_1.19.0.5ubuntu2.4_all bug

NOM

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

SYNOPSIS

       dpkg-shlibdeps [option...] [-e]exécutable [option...]

DESCRIPTION

       dpkg-shlibdeps  calcule,  pour  les  exécutables indiqués dans ses paramètres, les dépendances envers les
       bibliothèques  partagées.  Ces  dépendances  sont  ajoutées  au  fichier  de  variables  de  substitution
       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 créer les informations concernant les dépendances. Soit  les
       fichiers  symbols,  soit  les  fichiers shlibs. Pour chaque fichier binaire qu'il analyse, dpkg-shlibdeps
       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 ou si debian/shlibs.local
       contient les dépendances appropriées). Ces deux fichiers sont sensés être fournis par  le  paquet  de  la
       bibliothèque  et  disponibles 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,
       dans le répertoire que ld.so utiliserait, puis un utilisant dpkg -S fichier-bibliothèque 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).

       Affichage de “dpkg-query --control-path paquet symbols”
              Paquet fournissant des informations concernant les dépendances envers des bibliothèques partagées.
              Sauf indication contraire  par  le  biais  de  --admindir,  ces  fichiers  sont  par  défaut  dans
              /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, 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 utilisera 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ée  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.

       Affichage de “dpkg-query --control-path paquet shlibs”
              Paquet fournissant des informations concernant les dépendances envers des bibliothèques partagées.
              Sauf  indication  contraire  par  le  biais  de  --admindir,  ces  fichiers  sont  par défaut dans
              /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é -eexécutable.

       -eexécutable
              Cette  option  inclut  les  bonnes  dépendances  envers  les  bibliothèques  partagées que demande
              exécutable. Cette option peut être utilisée plusieurs fois.

       -lrépertoire
              Prepend directory to the list of directories to search for private shared  libraries  (since  dpkg
              1.17.0). This option can be used multiple times.

              Note :  Utilisez  cette  option plutôt que le réglage de LD_LIBRARY_PATH, parce que cette variable
              d'environnement est utilisé pour contrôler l'éditeur de liens d'exécution et et 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.

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

              L'option -dchamp-dépendance concerne  tous  les  exécutables  qui  suivent  l'option,  jusqu'à  la
              prochaine option -dchamp-dépendance. Par défaut, champ-dépendance 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.

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

       -O[nom-de-fichier]
              Print substitution variable settings to standard output (or  filename  if  specified,  since  dpkg
              1.17.2), rather than being added to the substitution variables file (debian/substvars by default).

       -ttype Prefer  shared  library  dependency  information  tagged  for the given package type. If no tagged
              information is available, falls back to untagged information. The default  package  type  is  deb.
              Shared  library dependency information is tagged for a given type by prefixing it with the name of
              the type, a colon, and whitespace.

       -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     Enable verbose mode  (since  dpkg  1.14.8).  Numerous  messages  are  displayed  to  explain  what
              dpkg-shlibdeps does.

       -xpackage
              Exclude  the  package from the generated dependencies (since dpkg 1.14.8). This is useful to avoid
              self-dependencies for packages which provide ELF binaries (executables or library plugins) using a
              library contained in the same package. This option can be used multiple times to  exclude  several
              packages.

       -Srépertoire-construction-paquet
              Look  into  package-build-dir  first  when  trying to find a library (since dpkg 1.14.15). This is
              useful when the source package builds multiple flavors of the same library and you want to  ensure
              that  you  get the dependency from a given binary package. You can use this option multiple times:
              directories will be tried in the same order before directories of other binary packages.

       -Ipackage-build-dir
              Ignore package-build-dir when looking for shlibs, symbols, and shared library  files  (since  dpkg
              1.18.5). You can use this option multiple times.

       --ignore-missing-info
              Do  not  fail  if  dependency information can't be found for a shared library (since dpkg 1.14.8).
              Usage of this option is discouraged, all libraries should provide dependency  information  (either
              with shlibs files, or with symbols files)  even if they are not yet used by other packages.

       --warnings=valeur
              value  is  a  bit  field defining the set of warnings that can be emitted by dpkg-shlibdeps (since
              dpkg 1.14.17). Bit 0 (value=1) enables the warning “symbol sym used by binary found in none of the
              libraries”, bit 1 (value=2) enables the warning “package could avoid a useless dependency” and bit
              2 (value=4) enables the warning “binary should not be linked against library”. The  default  value
              is  3:  the  first  two warnings are active by default, the last one is not. Set value to 7 if you
              want all warnings to be active.

       --admindir=dir
              Change  the  location  of  the  dpkg  database  (since  dpkg  1.14.0).  The  default  location  is
              /var/lib/dpkg.

       -?, --help
              Affiche un message d'aide puis quitte.

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

DIAGNOSTICS

   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 -lbibliothèque de l'éditeur de liens).

       binary contient une référence non résolue au symbole sym: il s'agit probablement d'un greffon (plugin)
              Le symbole indiqué n'a pas été trouvé dans les bilbiothèques liées avec  le  fichier  binaire.  Le
              binaire  est  très  probablement  un greffon (plugin) et le symbole est probablement fourni par le
              programme qui charge ce greffon. En théorie, un greffon n'a pas de « SONAME » mais ce  binaire  en
              possède  un  et  n'a pas pu être identifié en tant que tel. Cependant, le fait que le binaire soit
              stocké dans un répertoire  non  public  est  une  indication  forte  qu'il  ne  s'agit  pas  d'une
              bibliothèque  partagée  normale.  Si  le  binaire est vraiment un greffon, vous pouvez ignorer cet
              avertissement. Il existe cependant une possibilité qu'il s'agisse d'un vrai  binaire  et  que  les
              programmes  avec  lequel  il  est lié utilisent un RPATH afin que le chargeur dynamique le trouve.
              Dans ce cas, la bibliothèque est incorrecte et doit être corrigée.

       paquet pourrait éviter une dépendance inutile si le binaire n'était pas lié avec bibliothèque (il ne fait
       usage d'aucun de ses symboles)
              Aucun des binaires liés à la bibliothèque utilise les symboles qu'elle fournit. En corrigeant tous
              les binaires, vous éviteriez la dépendance associée à cette bibliothèque  (à  moins  que  la  même
              dépendance soit également liée à une autre bibliothèque qui est elle réellement utilisée).

       package could avoid a useless dependency if binaries were not linked against library (they use none of
       the library's symbols)
              Identique à l'avertissement précédent, pour des binaires multiples.

       le binaire ne devrait pas être lié avec la bibliothèque (il ne fait usage d'aucun de ses symboles)
              The  binary  is  linked  to  a  library  that  it  doesn't need. It's not a problem but some small
              performance improvements in binary load time can be obtained by not linking this library  to  this
              binary.  This  warning checks the same information as the previous one but does it for each binary
              instead of doing the check globally on all binaries analyzed.

   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 est 'rpath')
              The binary uses a library called library-soname but dpkg-shlibdeps has been  unable  to  find  the
              library. dpkg-shlibdeps creates a list of directories to check as following: directories listed in
              the  RPATH  of  the  binary,  directories  added  by  the  -l  option,  directories  listed in the
              LD_LIBRARY_PATH environment  variable,  cross  multiarch  directories  (ex.  /lib/arm64-linux-gnu,
              /usr/lib/arm64-linux-gnu),  standard  public  directories  (/lib, /usr/lib), directories listed in
              /etc/ld.so.conf, and obsolete multilib directories (/lib32, /usr/lib32, /lib64, /usr/lib64).  Then
              it  checks  those  directories  in  the  package's build tree of the binary being analyzed, in the
              packages' build trees indicated with the -S command-line option, in other  packages'  build  trees
              that  contains  a  DEBIAN/shlibs  or DEBIAN/symbols file and finally in the root directory. If the
              library is not found in any of those directories, then you get this error.

              Si la bibliothèque non trouvée est cependant disponible  dans  le  répertoire  privé  de  ce  même
              paquet, alors il vous faut ajouter ce répertoire avec -l. S'il est dans un autre paquet binaire en
              cours  de  construction, alors assurez-vous que les fichiers shlibs/symbols de ce paquet sont déjà
              créés et que -l contient le répertoire approprié si c'est aussi un répertoire privé.

       aucune information de dépendance trouvée pour la bibliothèque (utilisée par le binaire).
              The library needed by binary has been found by dpkg-shlibdeps in library-file  but  dpkg-shlibdeps
              has  been  unable to find any dependency information for that library. To find out the dependency,
              it has tried to map the library to a Debian package with the help of dpkg -S library-file. Then it
              checked the corresponding shlibs and symbols files in  /var/lib/dpkg/info/,  and  in  the  various
              package's build trees (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/openoffice.org/../lib/libssl.so.0.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 bavard (-v) fournira beaucoup plus d'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).

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

1.19.0.5                                           2022-05-25                                  dpkg-shlibdeps(1)