dpkg (1.18.25) stretch; urgency=medium
[dpkg] / man / deb-symbols.man
CommitLineData
1479465f
GJ
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
22deb\-symbols \- Debian's extended shared library information file
23.
24.SH SYNOPSIS
25symbols
26.
27.SH DESCRIPTION
28The symbol files are shipped in Debian binary packages, and its format
29is a subset of the template symbol files used by \fBdpkg\-gensymbols\fP(1)
30in Debian source packages.
31.P
32The format for an extended shared library dependency information entry
33in 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
46The \fIlibrary-soname\fR is exactly the value of the SONAME field
47as exported by \fBobjdump\fR(1). A \fIdependency-template\fR is a
48dependency where \fI#MINVER#\fR is dynamically replaced either by
49a version check like “(>= \fIminimal-version\fR)” or by nothing (if
50an unversioned dependency is deemed sufficient).
51.P
52Each exported \fIsymbol\fR (listed as \fIname\fR@\fIversion\fR, with
53\fIversion\fR being “Base” if the library is not versioned) is associated
54to a \fIminimal-version\fR of its dependency template (the main dependency
55template is always used and will end up being combined with the dependency
56template referenced by \fIid-of-dependency-template\fR if present). The
57first alternative dependency template is numbered 1, the second one 2,
58etc.
59.P
60Each entry for a library can also have some fields of meta-information.
61Those fields are stored on lines starting with an asterisk. Currently,
62the only valid fields are:
63.TP
64.B Build\-Depends\-Package
65It indicates the name of the “\-dev” package associated to the library
66and is used by \fBdpkg\-shlibdeps\fP to make sure that the dependency
67generated is at least as strict as the corresponding build dependency
68(since dpkg 1.14.13).
69.TP
70.B Ignore\-Blacklist\-Groups
71It indicates what blacklist groups should be ignored, as a whitespace
72separated list, so that the symbols contained in those groups get
73included in the output file (since dpkg 1.17.6).
74This should only be necessary for toolchain
75packages providing those blacklisted symbols. The available groups are
76system dependent, for ELF and GNU-based systems these are \fBaeabi\fP
77and \fBgomp\fP.
78.SH EXAMPLES
79.SS Simple symbols file
80.PP
81libftp.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
87libGL.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).