diff options
Diffstat (limited to '')
-rw-r--r-- | man/deb-symbols.pod | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/man/deb-symbols.pod b/man/deb-symbols.pod new file mode 100644 index 0000000..8e0ab40 --- /dev/null +++ b/man/deb-symbols.pod @@ -0,0 +1,123 @@ +# dpkg manual page - deb-symbols(5) +# +# Copyright © 2007-2012 Raphaël Hertzog <hertzog@debian.org> +# Copyright © 2011, 2013-2015 Guillem Jover <guillem@debian.org> +# +# This is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +=encoding utf8 + +=head1 NAME + +deb-symbols - Debian's extended shared library information file + +=head1 SYNOPSIS + +B<DEBIAN/symbols> + +=head1 DESCRIPTION + +The symbol files are shipped in Debian binary packages, and its format +is a subset of the template symbol files used by B<dpkg-gensymbols>(1) +in Debian source packages, see L<deb-src-symbols(5)>. + +The format for an extended shared library dependency information entry +in these files is: + +Z<> + I<library-soname> I<main-dependency-template> + [| I<alternative-dependency-template>] + [...] + [* I<field-name>: I<field-value>] + [...] + I<symbol> I<minimal-version> [I<id-of-dependency-template>] + +The I<library-soname> is exactly the value of the SONAME field +as exported by B<objdump>(1). A I<dependency-template> is a +dependency where I<#MINVER#> is dynamically replaced either by +a version check like “(E<gt>= I<minimal-version>)” or by nothing (if +an unversioned dependency is deemed sufficient). + +Each exported I<symbol> (listed as I<name>@I<version>, with +I<version> being “Base” if the library is not versioned) is associated +to a I<minimal-version> of its dependency template (the main dependency +template is always used and will end up being combined with the dependency +template referenced by I<id-of-dependency-template> if present). The +first alternative dependency template is numbered 1, the second one 2, +etc. +Each column is separated by exactly a single whitespace. + +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: + +=over + +=item B<Build-Depends-Package> + +It indicates the name of the “-dev” package associated to the library +and is used by B<dpkg-shlibdeps> to make sure that the dependency +generated is at least as strict as the corresponding build dependency +(since dpkg 1.14.13). + +=item B<Build-Depends-Packages> + +The same as B<Build-Depends-Package> but accepts a comma-separated +list of package names (since dpkg 1.20.0). +This field will override any B<Build-Depends-Package> field present, +and is mostly useful with “-dev” packages and metapackages depending +on these, say for a transition period. + +=item B<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 B<aeabi> +and B<gomp>. + +=item B<Ignore-Blacklist-Groups> + +A deprecated alias for B<Allow-Internal-Symbol-Groups> (since dpkg 1.20.1, +supported since dpkg 1.17.6). + +=back + +=head1 EXAMPLES + +=head2 Simple symbols file + + libftp.so.3 libftp3 #MINVER# + DefaultNetbuf@Base 3.1-1-6 + FtpAccess@Base 3.1-1-6 + [...] + +=head2 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 + [...] + +=head1 SEE ALSO + +L<https://wiki.debian.org/Projects/ImprovedDpkgShlibdeps>, +L<deb-src-symbols(5)>, +B<dpkg-shlibdeps>(1), +B<dpkg-gensymbols>(1). |