dh_makeshlibs
automatically create shlibs file and call dpkg-gensymbols
Synopsis
dh_makeshlibs
[debhelper options]
[-mmajor]
[-V[dependencies]] [-n]
[-Xitem]
[-- params]
add an example, a script, a trick and tips
examples
dh_makeshlibs
Assuming this is a package named libfoobar1, generates a
shlibs file that looks something like:
libfoobar 1 libfoobar1
dh_makeshlibs -V
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)
description
dh_makeshlibs
is a debhelper program that automatically scans for shared
libraries, and generates a shlibs file for the libraries it
finds.
It also adds a
call to ldconfig in the postinst and postrm
scripts (in v3 mode and above only) to any packages in which
it finds shared libraries.
Packages that
support multiarch are detected, and a Pre-Dependency on
multiarch-support is set in ${misc:Pre-Depends} ; you
should make sure to put that token into an appropriate place
in your debian/control file for packages supporting
multiarch.
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
By default, the shlibs file
generated by this program does not make packages depend on
any particular version of the package containing the shared
library. It may be necessary for you to add some version
dependency information to the shlibs file. If
-V is specified with no dependency information,
the current upstream version of the package is plugged into
a dependency that looks like "packagename
(>= packageversion)". Note that
in debhelper compatibility levels before v4, the Debian part
of the package version number is also included. If
-V is specified with parameters, the parameters
can be used to specify the exact dependency information
needed (be sure to include the package name).
Beware of using
-V without any parameters; 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 your library is prone to
changing ABI without updating the upstream
version number), so that if the maintainer screws up then
they won’t break. The flip side is that packages might
end up with dependencies that are too tight and so find it
harder to be upgraded.
-n,
--noscripts
Do not modify
postinst/postrm scripts.
-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.
--
params
Pass params to
dpkg-gensymbols(1).
files
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.
see also
debhelper
This program is
a part of debhelper.
author
Joey Hess
<joeyh[:at:]debian[:dot:]org>