Provided by: debhelper_13.14.1ubuntu5_all bug

NAME

       dh_makeshlibs - automatically create shlibs file and call dpkg-gensymbols

SYNOPSIS

       dh_makeshlibs [debhelper options] [-mmajor] [-V[dependencies]] [-n] [-Xitem] [-- params]

DESCRIPTION

       dh_makeshlibs is a debhelper program that automatically scans for shared libraries, and generates a
       shlibs file for the libraries it finds.

       It will also ensure that ldconfig is invoked during install and removal when it finds shared libraries.
       Since debhelper 9.20151004, this is done via a dpkg trigger.  In older versions of debhelper,
       dh_makeshlibs would generate a maintainer script for this purpose.

       Since debhelper 12.3, dh_makeshlibs will by default add an additional udeb line for udebs in the shlibs
       file, when the udeb has the same name as the deb followed by a "-udeb" suffix (e.g. if the deb is called
       "libfoo1", then debhelper will auto-detect the udeb if it is named "libfoo1-udeb"). Please use the
       --add-udeb and --no-add-udeb options below when this auto-detection is insufficient.

       If you previously used --add-udeb and are considering to migrate to using the new auto-detection feature
       in 12.3, then please remember to test that the resulting DEBIAN/shlibs files are as expected.  There are
       some known corner cases, where the auto-detection is insufficient.  These include when the udeb contains
       library files from multiple regular deb packages or when the packages do not follow the expected naming
       convention.

FILES

       debian/package.shlibs
           Installs  this  file,  if  present,  into  the  package as DEBIAN/shlibs.  If omitted, debhelper will
           generate a shlibs file automatically if it detects any libraries.

           Note in compat levels 9 and  earlier,  this  file  was  installed  by  dh_installdeb(1)  rather  than
           dh_makeshlibs.

       debian/package.symbols
       debian/package.symbols.arch
           These  symbols files, if present, are passed to dpkg-gensymbols(1) to be processed and installed. Use
           the arch specific names if you need to provide different symbols files for different architectures.

OPTIONS

       -mmajor, --major=major
           Instead of trying to guess the major number of  the  library  with  objdump,  use  the  major  number
           specified  after  the  -m parameter. This is much less useful than it used to be, back in the bad old
           days when this program looked at library filenames rather than using objdump.

       -V, -Vdependencies
       --version-info, --version-info=dependencies
           If a shlibs file is generated by this program, this option controls what version will be used in  the
           dependency relation.

           In  compat  12 and later, dh_makeshlibs defaults to -VUpstream-Version.  In compat 11 and earlier the
           default behaved like -VNone.

           The dh_makeshlibs tool can generate dependencies in three variants:

           -VUpstream-Version
               The dependency will be "packagename (>= packageversion)".  Note that  Upstream-Version  is  case-
               sensitive and must be written exactly as shown here.

               This  is  a  conservative  setting  that  always  ensures  that  other  packages'  shared library
               dependencies are at least as tight as they need to be (unless the library is  prone  to  changing
               ABI without updating the upstream version number).

               The  flip  side  is that packages might end up with dependencies that are too tight in some cases
               (note a symbols file can mitigate this issue).  This is often of  minor  temporary  inconvenience
               and  usually  a  lot  better  than  the  fall  out  caused  by  forgetting to bump the dependency
               information.

               This explicit form was  added  in  debhelper/11.3.   In  previous  versions,  a  -V  without  any
               dependency information was used instead (and that form still works)

           -VNone
               The  dependency  will  be  "packagename".   Note  that None is case-sensitive and must be written
               exactly as shown here.

               This form is generally unsafe with the only exception being if upstream does not extend  the  ABI
               in  any  way.   However,  most  upstreams  improve  their  interfaces over time and packagers are
               recommended to use -VUpstream-Version (or one of the other forms of -Vdependencies).

               Alternatively, this may be sufficient if (and only if) the package uses  symbol  versioning  (see
               dpkg-gensymbols(1))  and  does  not build any udeb packages.  Note that symbols are not supported
               for udeb packages, which solely relies on shlibs for dependency handling.

           -Vpackage-relation
               In this case, the value passed to -V will be used as a dependency relation.  The package-relation
               should generally be of the  form  "some-package-name  (>=  some-package-version)".   Remember  to
               include the package name.

               Note that debhelper will use the value as it is with no sanity checking or modification.  In rare
               special  cases,  this  is  needed  to  generate  a dependency on a different package than the one
               containing the library.

           When choosing a value for this option, please keep mind that if the package provides a symbols  file,
           then  that  this  is  generally  preferred  over  the  shlibs  file  for  regular .deb packages.  See
           dpkg-shlibdeps(1) for more information on this topic.

       -n, --no-scripts
           Do not add the "ldconfig" trigger even if it seems like the package might need  it.   The  option  is
           called  --no-scripts  for  historical  reasons  as dh_makeshlibs would previously generate maintainer
           scripts that called ldconfig.

       -Xitem, --exclude=item
           Exclude files that contain item anywhere in their filename or directory from being treated as  shared
           libraries.

       --add-udeb=udeb
           Create  an additional line for udebs in the shlibs file and use udeb as the package name for udebs to
           depend on instead of the regular library package.

           This option is only useful for special cases such as when debhelper cannot auto-detect  package  name
           of  the  udeb  package,  when the udeb will contain libraries from multiple deb packages, or when the
           udeb contains libraries not present in the deb package.

       --no-add-udeb
           Do not add any udeb lines to the shlibs file.  This can be used to disable the default auto-detection
           of udebs.

           This may be useful in case you do not want a shlibs file at all for the udeb because no package  will
           depend  on  it.  E.g. because adding a udeb package for the library was "overkill" and the library is
           embedded in a different udeb package.

       -- params
           Pass params to dpkg-gensymbols(1).

EXAMPLES

       dh_makeshlibs -VNone
           Assuming this is a package named libfoobar1, generates a shlibs file that looks something like:
            libfoobar 1 libfoobar1

       dh_makeshlibs -VUpstream-Version
           Assuming the current version of the package is 1.1-3, generates a shlibs file  that  looks  something
           like:
            libfoobar 1 libfoobar1 (>= 1.1)

       dh_makeshlibs -V 'libfoobar1 (>= 1.0)'
           Generates a shlibs file that looks something like:
             libfoobar 1 libfoobar1 (>= 1.0)

SEE ALSO

       debhelper(7)

       This program is a part of debhelper.

AUTHOR

       Joey Hess <joeyh@debian.org>

13.14.1ubuntu5                                     2024-03-01                                   DH_MAKESHLIBS(1)