bionic (1) dh_ada_library.1.gz

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

NAME

       dh_ada_library - help packaging Ada libraries for Debian

SYNOPSIS

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

DESCRIPTION

       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, if debian/control mentions a
       -dbg package, runs 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  file  /usr/share/doc/dh-ada-policy/README.Debian describes how to provide the same service with less
       efforts.

       If debian/control ments a  -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 https://wiki.debian.org/MissingCopyrightFile.

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

       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.

REMARKS

       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.

FILES

       debian/ada_libraries
              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.

OPTIONS

       Common debhelper command line options and environment variables are recognized.

EXAMPLES

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

SEE ALSO

       debhelper(7), dh_installdocs(1), dh_lintian(1), dh_strip(1), deb-substvars(5), the Debian Policy for  Ada
       available at http://people.debian.org/~lbrenta/debian-ada-policy.html.

AUTHOR

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

                                                   2015-10-19                                  DH_ADA_LIBRARY(1)