summaryrefslogtreecommitdiffstats
path: root/man/deb-symbols.pod
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 09:40:31 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 09:40:31 +0000
commitb86570f63e533abcbcb97c2572e0e5732a96307b (patch)
treecabc83be691530ae685c45a8bc7620ccc0e1ebdf /man/deb-symbols.pod
parentInitial commit. (diff)
downloaddpkg-b86570f63e533abcbcb97c2572e0e5732a96307b.tar.xz
dpkg-b86570f63e533abcbcb97c2572e0e5732a96307b.zip
Adding upstream version 1.20.13.upstream/1.20.13upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'man/deb-symbols.pod')
-rw-r--r--man/deb-symbols.pod122
1 files changed, 122 insertions, 0 deletions
diff --git a/man/deb-symbols.pod b/man/deb-symbols.pod
new file mode 100644
index 0000000..c4037c7
--- /dev/null
+++ b/man/deb-symbols.pod
@@ -0,0 +1,122 @@
+# 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.
+
+The format for an extended shared library dependency information entry
+in these files is:
+
+Z<>
+ I<library-soname 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>,
+B<dpkg-shlibdeps>(1),
+B<dpkg-gensymbols>(1).