deb-symbols(5)
π deb-symbols(5) β like, the whole manual, bestie π
okay so this is deb-symbols(5) from the dpkg suite, and it's literally the glow-up guide to Debian's extended shared library info files. buckle up π
β¨ NAME β¨
deb-symbols β Debian's extended shared library information file. that's it, that's the vibe. π
π¦ SYNOPSIS π¦
DEBIAN/symbols
one file. one path. main character energy only. π
πΈ DESCRIPTION πΈ
so the symbol files ship inside Debian binary packages, and their format is a subset of the template symbol files that dpkg-gensymbols(1) uses in Debian source packages β peep deb-src-symbols(5) for the source-side lore. π
the rule, no cap: a symbols file must be shipped in the same binary package as the shared libraries it describes. why? because that guarantees the symbol descriptions actually match the library being described, and so the symbols file can be found from the package that owns the shared library. matching sets. periodt. π
the format for an extended shared library dependency info entry in these files is, and I quote the layout exactly:
library-soname main-dependency-template
[| alternative-dependency-template]
[...]
[* field-name: field-value]
[...]
symbol minimal-version [id-of-dependency-template]
so let's break it down, bestie:
- the library-soname is exactly the value of the
SONAMEfield as exported byobjdump(1). like, exactly exactly. don't get creative. π - a dependency-template is a dependency where
#MINVER#is dynamically replaced either by a version check like "(>= minimal-version)" or by nothing at all (that's when an unversioned dependency is deemed sufficient). slay, conditional formatting. β¨ - each exported symbol β listed as
name@version, with version being "Base" if the library isn't versioned β is associated to a minimal-version of its dependency template. the main dependency template is always used, and it'll end up being combined with the dependency template referenced by id-of-dependency-template if that's present. the first alternative dependency template is numbered1, the second one2, etc. and every column is separated by exactly a single whitespace. one. single. space. π
each entry for a library can also carry some fields of meta-information, and those live on lines starting with an asterisk. currently the only valid fields are these icons right here:
β Build-Depends-Package
it indicates the name of the "-dev" package associated with the library, and dpkg-shlibdeps uses it to make sure the dependency it generates is at least as strict as the corresponding build dependency. πͺ
supported since dpkg 1.14.13.
β Build-Depends-Packages
the same as Build-Depends-Package but it accepts a comma-separated list of package names. this field will override any Build-Depends-Package field present, and it's mostly useful with "-dev" packages and metapackages that depend on these β say, for a transition period. π«Ά
supported since dpkg 1.20.0.
β 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. this should only be necessary for toolchain packages that provide those internal symbols. the available groups are system dependent β for ELF and GNU-based systems these are aeabi and gomp. π§
supported since dpkg 1.20.1.
π EXAMPLES π
π Simple symbols file
libftp.so.3 libftp3 #MINVER#
DefaultNetbuf@Base 3.1-1-6
FtpAccess@Base 3.1-1-6
[...]
clean, minimal, iconic. look at her go. β¨
π Advanced symbols file
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
[...]
see that 1 at the end of the last line? that's the id-of-dependency-template doing its thing. ate. π₯
π SEE ALSO π
- <https://wiki.debian.org/Projects/ImprovedDpkgShlibdeps>
deb-src-symbols(5)dpkg-shlibdeps(1)dpkg-gensymbols(1)
go read them, iykyk. π
that's the whole page, bestie, no details skipped, we keep every single one. π
this had 1.23.11-dirty energy and dropped on 2026-09-09 β mwah, sending you off with a kiss from the dpkg suite π«Άπ
π¦ where this page comes from
- arch rolling: dpkg 1.23.11-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms