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


       dh_ada_library - help packaging Ada libraries for Debian


       dh_ada_library [debhelper options] [[variable=value ...] project.gpr] ...


       dh_ada_library  is  a  debhelper  program  that  handles  some  common  tasks in packaging
       libraries written in the Ada programming language.

       Each project.gpr argument designates  a  GNAT  project  file  building  a  shared  library
       provided  by  the  source  package.  Since using environment variables in such projects is
       common practice, a list of variable assignments may be provided before each project.

       dh_ada_library reads each project file and extracts the  following  information  from  it:
       library  name,  imported projects, source directories, library directory, object directory
       (containing  ALI   files)   and   linker   options   (both   Leading_Library_Options   and
       Library_Options).   Then  it parses debian/control to check that three package names exist
       conforming to the Coexistence Not Allowed naming scheme described in the Debian Policy for
       Ada  and  extracts  the  ALI  files  version  (aliversion)) and the shared library version
       (soversion).  Then, dh_ada_library processes each of the three packages as follows:

   Runtime library package
       dh_ada_library installs the shared library (mode 644) into the package then runs  dh_strip
       with options storing its debugging information into the -dbg package.

       If  the  shared  library declares its stack executable, dh_ada_library generates a lintian
       override for the runtime library  package  about  GNAT  using  trampolines  for  exception
       handling.  dh_lintian is run first so that it will not overwrite the override file later.

   Debugging symbols (-dbg) package
       The  ada:Depends,  ada:Recommends,  ada:Suggests  substitution  variables  receive  values
       reflecting that the -dbg package depends on  the  library  package,  recommends  the  -dev
       package and suggests the gnat package.

       Versions  <=  5.3  used to replace the documentation directory with a symbolic link to the
       one in the runtime library package, but usage has shown that  linking  directories  caused
       upgrade  problems.   If  a binary package built with such a version has been released, the
       source    package    should     add     maintainer     scripts     as     described     in

   Development package (-dev)
       First,   dh_ada_library   installs   the   usual   development   symbolic   link   (*.so->
       *.so.soversion), ALI files (mode 444) and  sources  (mode  644)  into  the  -dev  package.
       Languages  other  than Ada listed in the project file are taken into account, whether they
       have been previously  dealt  with  by  gprbuild,  or  ignored  by  gnatmake  and  compiled
       separately.   Then it looks for a file named libLIBRARY_NAME.a (the static library) in the
       current directory or its subdirectories and installs this file (mode 644)  into  the  -dev

       A  second  project  file,  intended  for  use  by programs linking against the library, is
       generated and installed into the -dev package.  The Linker  package  of  the  new  project
       inherits  any  -l  or  -L  linker options from Leading_Library_Options and Library_Options
       attributes of the build project file.

       Each renaming exception is transmitted to the generated project.

       dh_ada_library runs dh_strip before installing the static library so that the latter keeps
       its debugging information.

       The ada:Depends substitution variable receives a value reflecting that the package depends
       on gnat, gnat-X.Y and the library package.  For each imported library project  recognized,
       either  as  already processed or installed on the build system by dpkg-query, a dependency
       is added into ada:Depends and the generated project is added the corresponding with  line.
       In the case of an already processed project within the same source package, the dependency
       mandates an exact binary:Version, ensuring that all static  libraries  are  compiled  with
       compatible options.


       This  program  does  not belong to the debhelper suite.  To activate it, please run the dh
       sequencer with the --with ada-library option.

       The Library_Version project attribute is  purposedly  ignored.   Instead,  the  soname  is
       guessed  from  the  library  package  name.   For  projects  needing  an external variable
       definition to set this attribute, any arbitrary value may be given.  This will often allow
       the  maintainer  to use a simple debian/ada_libraries file instead of a debhelper override
       or an environment variable exportation.

       Both libraries and ALI files are installed into /usr/lib/DEB_HOST_MULTIARCH,  the  project
       and  sources into /usr/share/ada/adainclude.  This implies that the -dev package cannot be
       declared Multi-Arch: same as the content of the project (and maybe of  generated  sources)
       will vary across architectures.


              Projects and variables, in addition to those in the command line if called directly
              from debian/rules.  Line breaks are considered as normal spaces.  This  may  change
              in  the  future  and it is recommended to put exactly one affectation or project on
              each line.  Any line starting with a dash will be ignored.


       Common debhelper command line options and environment variables are recognized.


       dh_ada_library 'DIRS=src gen SOVERSION=ignored foo.gpr --verbose --no-act


       debhelper(7), dh_installdocs(1), dh_lintian(1), dh_strip(1), deb-substvars(5), the  Debian
       Policy for Ada available at


       dh_ada_library  and  this  manpage were written by Nicolas Boulenguez <>
       for the Debian project (and may be used by others).

                                            2015-10-19                          DH_ADA_LIBRARY(1)