summaryrefslogtreecommitdiffstats
path: root/man/deb-symbols.pod
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 18:35:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-15 18:35:28 +0000
commitea314d2f45c40a006c0104157013ab4b857f665f (patch)
tree3ef2971cb3675c318b8d9effd987854ad3f6d3e8 /man/deb-symbols.pod
parentInitial commit. (diff)
downloaddpkg-ea314d2f45c40a006c0104157013ab4b857f665f.tar.xz
dpkg-ea314d2f45c40a006c0104157013ab4b857f665f.zip
Adding upstream version 1.22.4.upstream/1.22.4
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--man/deb-symbols.pod127
1 files changed, 127 insertions, 0 deletions
diff --git a/man/deb-symbols.pod b/man/deb-symbols.pod
new file mode 100644
index 0000000..ca9b086
--- /dev/null
+++ b/man/deb-symbols.pod
@@ -0,0 +1,127 @@
+# 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 L<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 L<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)>,
+L<dpkg-shlibdeps(1)>,
+L<dpkg-gensymbols(1)>.