.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man 5.01 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "deb-symbols 5" .TH deb-symbols 5 2024-03-10 1.22.6 "dpkg suite" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME deb\-symbols \- Debian's extended shared library information file .SH SYNOPSIS .IX Header "SYNOPSIS" \&\fBDEBIAN/symbols\fR .SH DESCRIPTION .IX Header "DESCRIPTION" The symbol files are shipped in Debian binary packages, and its format is a subset of the template symbol files used by \fBdpkg\-gensymbols\fR\|(1) in Debian source packages, see \fBdeb\-src\-symbols\fR\|(5). .PP The format for an extended shared library dependency information entry in these files is: .PP \fIlibrary-soname\fR \fImain-dependency-template\fR [| \fIalternative-dependency-template\fR] [...] [* \fIfield-name\fR: \fIfield-value\fR] [...] \fIsymbol\fR \fIminimal-version\fR [\fIid-of-dependency-template\fR] .PP The \fIlibrary-soname\fR is exactly the value of the SONAME field as exported by \fBobjdump\fR\|(1). A \fIdependency-template\fR is a dependency where \fI#MINVER#\fR is dynamically replaced either by a version check like \(lq(>= \fIminimal-version\fR)\(rq or by nothing (if an unversioned dependency is deemed sufficient). .PP Each exported \fIsymbol\fR (listed as \fIname\fR@\fIversion\fR, with \&\fIversion\fR being \(lqBase\(rq if the library is not versioned) is associated to a \fIminimal-version\fR of its dependency template (the main dependency template is always used and will end up being combined with the dependency template referenced by \fIid-of-dependency-template\fR if present). The first alternative dependency template is numbered 1, the second one 2, etc. Each column is separated by exactly a single whitespace. .PP Each entry for a library can also have some fields of meta-information. Those fields are stored on lines starting with an asterisk. Currently, the only valid fields are: .IP \fBBuild-Depends-Package\fR 4 .IX Item "Build-Depends-Package" It indicates the name of the \(lq\-dev\(rq package associated to the library and is used by \fBdpkg-shlibdeps\fR to make sure that the dependency generated is at least as strict as the corresponding build dependency (since dpkg 1.14.13). .IP \fBBuild-Depends-Packages\fR 4 .IX Item "Build-Depends-Packages" The same as \fBBuild-Depends-Package\fR but accepts a comma-separated list of package names (since dpkg 1.20.0). This field will override any \fBBuild-Depends-Package\fR field present, and is mostly useful with \(lq\-dev\(rq packages and metapackages depending on these, say for a transition period. .IP \fBAllow-Internal-Symbol-Groups\fR 4 .IX Item "Allow-Internal-Symbol-Groups" It indicates what internal symbol groups should be ignored, as a whitespace separated list, so that the symbols contained in those groups get included in the output file (since dpkg 1.20.1). This should only be necessary for toolchain packages providing those internal symbols. The available groups are system dependent, for ELF and GNU-based systems these are \fBaeabi\fR and \fBgomp\fR. .IP \fBIgnore-Blacklist-Groups\fR 4 .IX Item "Ignore-Blacklist-Groups" A deprecated alias for \fBAllow-Internal-Symbol-Groups\fR (since dpkg 1.20.1, supported since dpkg 1.17.6). .SH EXAMPLES .IX Header "EXAMPLES" .SS "Simple symbols file" .IX Subsection "Simple symbols file" .Vb 4 \& libftp.so.3 libftp3 #MINVER# \& DefaultNetbuf@Base 3.1\-1\-6 \& FtpAccess@Base 3.1\-1\-6 \& [...] .Ve .SS "Advanced symbols file" .IX Subsection "Advanced symbols file" .Vb 7 \& libGL.so.1 libgl1 \& | libgl1\-mesa\-glx #MINVER# \& * Build\-Depends\-Package: libgl1\-mesa\-dev \& publicGlSymbol@Base 6.3\-1 \& [...] \& implementationSpecificSymbol@Base 6.5.2\-7 1 \& [...] .Ve .SH "SEE ALSO" .IX Header "SEE ALSO" , \&\fBdeb\-src\-symbols\fR\|(5), \&\fBdpkg\-shlibdeps\fR\|(1), \&\fBdpkg\-gensymbols\fR\|(1).