deb-symbols (5)


NAME

deb-symbols - Debian's extended shared library information file

SYNOPSIS

symbols

DESCRIPTION

The format for an extended shared library dependency information entry in these files is:

library-soname main-dependency-template
[| alternative-dependency-template]
[...]
[* field-name: field-value]
[...]
 symbol minimal-version [id-of-dependency-template]

The library-soname is exactly the value of the SONAME field as exported by objdump(1). A dependency-template is a dependency where #MINVER# is dynamically replaced either by a version check like "(>= minimal-version)" or by nothing (if an unversioned dependency is deemed sufficient).

Each exported symbol (listed as name@version, with version being "Base" if the library is not versioned) is associated to a minimal-version of its dependency template (the main dependency template is used if id-of-dependency-template is not present). The first alternative dependency template is numbered 1, the second one 2, etc.

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 field is Build-Depends-Package, it indicates the name of the "-dev" package associated to the library and is used by dpkg-shlibdeps to make sure that the dependency generated is at least as strict as the corresponding build dependency.

EXAMPLES

Simple symbols file

libftp.so.3 libftp3 #MINVER#
 DefaultNetbuf@Base 3.1-1-6
 FtpAccess@Base 3.1-1-6
 [...]

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 ALSO

https://wiki.debian.org/Projects/ImprovedDpkgShlibdeps
dpkg-shlibdeps(1), dpkg-gensymbols(1).