Provided by: dh-ada-library_6.12_amd64 

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)