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)