Provided by: dh-ada-library_6.12_amd64 bug

NAME

       dh_ada_library - aide à empaqueter des bibliothèques Ada pour Debian

SYNOPSIS

       dh_ada_library [options debhelper] [[variable=valeur ...] projet.gpr] ...

DESCRIPTION

       dh_ada_library  est  un  programme de la suite debhelper prenant en charge quelques tâches
       courantes dans l’empaquetage de bibliothèques écrites dans le langage Ada.

       Chaque argument projet.gpr indique un fichier de projet GNAT servant à  compiler  une  des
       bibliothèques   partagées   fournies   par   le   paquet   source.  L’usage  de  variables
       d’environnement dans de tels projets étant monnaie courante, il est  possible  de  fournir
       une liste d’affectations avant chaque projet.

       dh_ada_library  lit chaque fichier de projet et en extrait les informations suivantes : le
       nom de la bibliothèque, les projets importés, les répertoires contenant  les  sources,  le
       répertoire  contenant la bibliothèque partagée (Library_Dir), celui contenant les fichiers
       ALI (Object_Dir), et  les  options  de  l’éditeur  de  liens  (Leading_Library_Options  et
       Library_Options).  Ensuite,  il parcourt debian/control afin de vérifier que trois paquets
       existent, nommés conformément à la Charte Debian pour Ada sous l’intitulé Coexistence  Not
       Allowed  et  il  en  déduit  le  numéro  de version des fichiers ALI (aliversion) et de la
       bibliothèque partagée (soversion). Puis, dh_ada_library traite chacun des trois paquets de
       la façon suivante.

   Paquet fournissant la bibliothèque dynamique
       dh_ada_library  installe  la  bibliothèque  partagée  (mode  644) dans le paquet, puis, si
       debian/control mentionne un paquet -dbg, exécute dh_strip avec  des  options  plaçant  les
       informations de déboguage dans le paquet -dbg.

       Si  la  bibliothèque  partagée  déclare  sa  pile  exécutable,  dh_ada_library  génère  un
       « override » lintian  expliquant  que  GNAT  utilise  des  trampolines  pour  traiter  les
       exceptions.  Avant  cela, dh_lintian est exécuté, car s’il l’était plus tard il risquerait
       de recouvrir le fichier « override ».

   Paquet contenant les symboles de déboguage (-dbg)
       Le fichier /usr/share/doc/dh-ada-policy/README.Debian  décrit  comment  rendre  les  mêmes
       services avec moins d’efforts.

       Si  debian/control  mentionne  un  paquet -dbg, les variables de substitution ada:Depends,
       ada:Recommends, ada:Suggests reçoivent des valeurs indiquant que le paquet -dbg dépend  du
       paquet de bibliothèque, recommande le paquet -dev et suggère le paquet gnat.

       Les version <= 5.3 remplaçaient le répertoire de documentation par un lien symbolique vers
       celui du paquet de bibliothèque, mais cela s’est avéré à l’usage cause de  problèmes  lors
       des  mises à jours. Si un paquet binaire construit avec une telle version a été distribué,
       le paquet source devrait ajouter des scripts  de  maintenance  comme  décrit  à  l’adresse
       https://wiki.debian.org/MissingCopyrightFile.

   Paquet de développement (-dev)
       Pour commencer, dh_ada_library installe le lien symbolique de développement habituel (*.so
       -> *.so.soversion), les fichiers ALI (mode 444) et les sources (mode 644) dans  le  paquet
       -dev.  Les  langages  autres  qu’Ada mentionnés dans le projet sont pris en compte, qu’ils
       aient été pris en compte auparavant par gprbuild, ou  ignorés  par  gnatmake  et  compilés
       séparément.  Ensuite,  il  recherche  un  fichier nommé libLIBRARY_NAME.a (la bibliothèque
       statique) dans le répertoire courant ou un de ses sous-répertoires,  et  l’installe  (mode
       644) dans le paquet -dev.

       Un  second  fichier de projet, conçu pour faciliter la compilation de programmes utilisant
       la bibliothèque, est généré et installé dans le paquet -dev. Le paquet Linker  du  nouveau
       projet  hérite  des  options  destinées à l’éditeur de liens -l ou -L mentionnées dans les
       attributs Leading_Library_Options ou Library_Options du projet de compilation.

       Chaque renommage est transmis au projet généré.

       dh_ada_library exécute dh_strip  avant  d’installer  la  bibliothèque  statique  afin  que
       celle-ci conserve ses informations de déboguage.

       La  variable  de substitution ada:Depends reçoit une valeur indiquant que le paquet dépend
       de gnat, de gnat-X.Y et du paquet de bibliothèque.  Pour  chaque  projet  de  bibliothèque
       importé  et  reconnu,  soit  comme  déjà  parcouru, soit comme installé dans le système de
       construction par dpkg-query, une dépendance est ajoutée  dans  ada:Depends  et  le  projet
       généré se voit ajouter une ligne with. Dans le cas d’un projet déjà parcouru dans le cadre
       du même paquet source, la dépendance exige exactement  la  même  binary:Version,  afin  de
       garantir que toutes les archives statiques sont compilées avec des options compatibles.

REMARQUES

       Ce  programme ne fait pas partie de la suite debhelper. Pour l’activer, veuillez lancer le
       séquenceur dh avec l’option --with ada-library.

       L’attribut Library_Version du projet est délibérément ignoré, et le  nom  d’objet  partagé
       (soname)  est  plutôt  déduit  à  partir  du  nom  du  paquet de bibliothèque. Les projets
       réclamant une définition de variable externe pour définir cet attribut  pourront  recevoir
       une  valeur  arbitraire.  Ceci permettra souvent au mainteneur l’usage d’un simple fichier
       debian/ada_libraries au lieu de  surcharger  une  commande  debhelper  ou  d’exporter  une
       variable d’environnement.

       Les     deux    bibliothèques    et    les    fichiers    ALI    sont    installés    dans
       /usr/lib/DEB_HOST_MULTIARCH, le projet et les sources dans /usr/share/ada/adainclude. Ceci
       signifie  que  le paquet -dev ne peut pas être déclaré Multi-Arch: same puisque le contenu
       du projet (et le cas échéant de sources générées) sera différent selon l’architecture.

FICHIERS

       debian/ada_libraries
              Projets et variables à traiter en plus de ceux mentionnés en ligne de  commande  en
              cas  d’appel  directement  depuis  debian/rules.  Les fins de ligne sont considérés
              comme de simples espaces. Ceci peut être  amené  à  changer,  et  il  est  vivement
              recommandé de mettre exactement une affectation ou un projet par ligne. Toute ligne
              débutant par un dièse est ignorée.

OPTIONS

       Les options en  ligne  de  commande  et  variables  d’environnement  communes  aux  outils
       debhelper sont reconnues.

EXEMPLES

       dh_ada_library 'DIRS=src gen' SOVERSION=sans_effet toto.gpr --verbose --no-act

VOIR AUSSI

       debhelper(7),  dh_installdocs(1),  dh_lintian(1), dh_strip(1), deb-substvars(5), la Charte
       Debian      pour      Ada      disponible       (en       anglais)       à       l’adresse
       http://people.debian.org/~lbrenta/debian-ada-policy.html.

AUTEUR

       Nicolas  Boulenguez  <nicolas@debian.org>  a  écrit  dh_ada_library et sa page de manuel à
       destination du projet Debian et de quiconque les trouvera utiles.

                                            2015-10-19                          DH_ADA_LIBRARY(1)