1DH_MAKESHLIBS(1) Debhelper DH_MAKESHLIBS(1)
2
3
4
6 dh_makeshlibs - automatically create shlibs file and call
7 dpkg-gensymbols
8
10 dh_makeshlibs [debhelper options] [-mmajor] [-V[dependencies]] [-n]
11 [-Xitem] [-- params]
12
14 dh_makeshlibs is a debhelper program that automatically scans for
15 shared libraries, and generates a shlibs file for the libraries it
16 finds.
17
18 It will also ensure that ldconfig is invoked during install and removal
19 when it finds shared libraries. Since debhelper 9.20151004, this is
20 done via a dpkg trigger. In older versions of debhelper, dh_makeshlibs
21 would generate a maintainer script for this purpose.
22
24 debian/package.shlibs
25 Installs this file, if present, into the package as DEBIAN/shlibs.
26 If omitted, debhelper will generate a shlibs file automatically if
27 it detects any libraries.
28
29 Note in compat levels 9 and earlier, this file was installed by
30 dh_installdeb(1) rather than dh_makeshlibs.
31
32 debian/package.symbols
33 debian/package.symbols.arch
34 These symbols files, if present, are passed to dpkg-gensymbols(1)
35 to be processed and installed. Use the arch specific names if you
36 need to provide different symbols files for different
37 architectures.
38
40 -mmajor, --major=major
41 Instead of trying to guess the major number of the library with
42 objdump, use the major number specified after the -m parameter.
43 This is much less useful than it used to be, back in the bad old
44 days when this program looked at library filenames rather than
45 using objdump.
46
47 -V, -Vdependencies
48 --version-info, --version-info=dependencies
49 If a shlibs file is generated by this program, this option controls
50 what version will be used in the dependency relation.
51
52 In compat 12 and later, dh_makeshlibs defaults to
53 -VUpstream-Version. In compat 11 and earlier the default behaved
54 like -VNone..
55
56 The dh_makeshlibs tool can generate dependencies in three variants:
57
58 -VUpstream-Version
59 The dependency will be "packagename (>= packageversion)". Note
60 that Upstream-Version is case-sensitive and must be written
61 exactly as shown here.
62
63 This is a conservative setting that always ensures that other
64 packages' shared library dependencies are at least as tight as
65 they need to be (unless the library is prone to changing ABI
66 without updating the upstream version number).
67
68 The flip side is that packages might end up with dependencies
69 that are too tight in some cases (note a symbols file can
70 mitigate this issue). This is often of minor temporary
71 inconvenience and usually a lot better than the fall out caused
72 by forgetting to bump the dependency information.
73
74 This explicit form was added in debhelper/11.3. In previous
75 versions, a -V without any dependency information was used
76 instead (and that form still works)
77
78 -VNone
79 The dependency will be "packagename". Note that None is case-
80 sensitive and must be written exactly as shown here.
81
82 This form is generally unsafe with the only exception being if
83 upstream does not extend the ABI in any way. However, most
84 upstreams improve their interfaces over time and packagers are
85 recommended to use -VUpstream-Version (or one of the other
86 forms of -Vdependencies).
87
88 Alternatively, this may be sufficient if (and only if) the
89 package uses symbol versioning (see dpkg-gensymbols(1)) and
90 does not build any udeb packages. Note that symbols are not
91 supported for udeb packages, which solely relies on shlibs for
92 dependency handling.
93
94 -Vpackage-relation
95 In this case, the value passed to -V will be used as a
96 dependency relation. The package-relation should generally be
97 of the form "some-package-name (>= some-package-version)".
98 Remember to include the package name.
99
100 Note that debhelper will use the value as it is with no sanity
101 checking or modification. In rare special cases, this is
102 needed to generate a dependency on a different package than the
103 one containing the library.
104
105 When choosing a value for this option, please keep mind that if the
106 package provides a symbols file, then that it generally preferred
107 over the shlibs file for regular .deb packages. See
108 dpkg-shlibdeps(1) for more information on this topic.
109
110 -n, --no-scripts
111 Do not add the "ldconfig" trigger even if it seems like the package
112 might need it. The option is called --no-scripts for historical
113 reasons as dh_makeshlibs would previously generate maintainer
114 scripts that called ldconfig.
115
116 -Xitem, --exclude=item
117 Exclude files that contain item anywhere in their filename or
118 directory from being treated as shared libraries.
119
120 --add-udeb=udeb
121 Create an additional line for udebs in the shlibs file and use udeb
122 as the package name for udebs to depend on instead of the regular
123 library package.
124
125 -- params
126 Pass params to dpkg-gensymbols(1).
127
129 dh_makeshlibs -VNone
130 Assuming this is a package named libfoobar1, generates a shlibs
131 file that looks something like:
132 libfoobar 1 libfoobar1
133
134 dh_makeshlibs -VUpstream-Version
135 Assuming the current version of the package is 1.1-3, generates a
136 shlibs file that looks something like:
137 libfoobar 1 libfoobar1 (>= 1.1)
138
139 dh_makeshlibs -V 'libfoobar1 (>= 1.0)'
140 Generates a shlibs file that looks something like:
141 libfoobar 1 libfoobar1 (>= 1.0)
142
144 debhelper(7)
145
146 This program is a part of debhelper.
147
149 Joey Hess <joeyh@debian.org>
150
151
152
15311.4 2018-07-22 DH_MAKESHLIBS(1)