dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / deb-symbols.man
1 .\" dpkg manual page - deb-symbols(5)
2 .\"
3 .\" Copyright © 2007-2012 Raphaël Hertzog <hertzog@debian.org>
4 .\" Copyright © 2011, 2013-2015 Guillem Jover <guillem@debian.org>
5 .\"
6 .\" This is free software; you can redistribute it and/or modify
7 .\" it under the terms of the GNU General Public License as published by
8 .\" the Free Software Foundation; either version 2 of the License, or
9 .\" (at your option) any later version.
10 .\"
11 .\" This is distributed in the hope that it will be useful,
12 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
13 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 .\" GNU General Public License for more details.
15 .\"
16 .\" You should have received a copy of the GNU General Public License
17 .\" along with this program. If not, see <https://www.gnu.org/licenses/>.
18 .
19 .TH deb\-symbols 5 "%RELEASE_DATE%" "%VERSION%" "dpkg suite"
20 .nh
21 .SH NAME
22 deb\-symbols \- Debian's extended shared library information file
23 .
24 .SH SYNOPSIS
25 symbols
26 .
27 .SH DESCRIPTION
28 The symbol files are shipped in Debian binary packages, and its format
29 is a subset of the template symbol files used by \fBdpkg\-gensymbols\fP(1)
30 in Debian source packages.
31 .P
32 The format for an extended shared library dependency information entry
33 in these files is:
34 .PP
35 .I library-soname main-dependency-template
36 .br
37 [| \fIalternative-dependency-template\fP]
38 .br
39 [...]
40 .br
41 [* \fIfield-name\fP: \fIfield-value\fP]
42 .br
43 [...]
44 \fIsymbol\fP \fIminimal-version\fP [\fIid-of-dependency-template\fP]
45 .P
46 The \fIlibrary-soname\fR is exactly the value of the SONAME field
47 as exported by \fBobjdump\fR(1). A \fIdependency-template\fR is a
48 dependency where \fI#MINVER#\fR is dynamically replaced either by
49 a version check like “(>= \fIminimal-version\fR)” or by nothing (if
50 an unversioned dependency is deemed sufficient).
51 .P
52 Each exported \fIsymbol\fR (listed as \fIname\fR@\fIversion\fR, with
53 \fIversion\fR being “Base” if the library is not versioned) is associated
54 to a \fIminimal-version\fR of its dependency template (the main dependency
55 template is always used and will end up being combined with the dependency
56 template referenced by \fIid-of-dependency-template\fR if present). The
57 first alternative dependency template is numbered 1, the second one 2,
58 etc.
59 .P
60 Each entry for a library can also have some fields of meta-information.
61 Those fields are stored on lines starting with an asterisk. Currently,
62 the only valid fields are:
63 .TP
64 .B Build\-Depends\-Package
65 It indicates the name of the “\-dev” package associated to the library
66 and is used by \fBdpkg\-shlibdeps\fP to make sure that the dependency
67 generated is at least as strict as the corresponding build dependency
68 (since dpkg 1.14.13).
69 .TP
70 .B Ignore\-Blacklist\-Groups
71 It indicates what blacklist groups should be ignored, as a whitespace
72 separated list, so that the symbols contained in those groups get
73 included in the output file (since dpkg 1.17.6).
74 This should only be necessary for toolchain
75 packages providing those blacklisted symbols. The available groups are
76 system dependent, for ELF and GNU-based systems these are \fBaeabi\fP
77 and \fBgomp\fP.
78 .SH EXAMPLES
79 .SS Simple symbols file
80 .PP
81 libftp.so.3 libftp3 #MINVER#
82 DefaultNetbuf@Base 3.1-1-6
83 FtpAccess@Base 3.1-1-6
84 [...]
85 .SS Advanced symbols file
86 .PP
87 libGL.so.1 libgl1
88 .br
89 | libgl1\-mesa\-glx #MINVER#
90 .br
91 * Build\-Depends\-Package: libgl1\-mesa\-dev
92 publicGlSymbol@Base 6.3-1
93 [...]
94 implementationSpecificSymbol@Base 6.5.2-7 1
95 [...]
96 .SH SEE ALSO
97 .BR https://wiki.debian.org/Projects/ImprovedDpkgShlibdeps
98 .br
99 .BR dpkg\-shlibdeps (1),
100 .BR dpkg\-gensymbols (1).