man: Document version when new programs where introduced
[dpkg.git] / man / deb-shlibs.pod
blobbbe85cc1175b326343cde6e9b66505b2cee05d77
1 # dpkg manual page - deb-shlibs(5)
3 # Copyright © 1996 Michael Shields <shields@crosslink.net>
4 # Copyright © 2008 Zack Weinberg <zackw@panix.com>
6 # This is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU General Public License as published by
8 # the Free Software Foundation; either version 2 of the License, or
9 # (at your option) any later version.
11 # This is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU General Public License for more details.
16 # You should have received a copy of the GNU General Public License
17 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
19 =encoding utf8
21 =head1 NAME
23 deb-shlibs - Debian shared library information file
25 =head1 SYNOPSIS
27 B<debian/shlibs>, B<debian/>I<binary-name>B<.shlibs>, B<DEBIAN/shlibs>
29 =head1 DESCRIPTION
31 B<shlibs>
32 files map shared library names and versions
33 (I<SONAMEs>)
34 to dependencies suitable for a package control file.  There is one
35 entry per line. Blank lines are B<not> allowed.  Lines beginning
36 with a B<#> character are considered commentary, and are ignored.
37 All other lines must have the format:
39 =over
41 [I<type>B<:>]
42 I<library>
43 I<version>
44 I<dependencies>
46 =back
48 The I<library> and I<version> fields are whitespace-delimited,
49 but the I<dependencies> field extends to the end of the line.  The
50 I<type> field is optional and normally not needed.
52 The I<dependencies> field has the same syntax as the B<Depends>
53 field in a binary control file, see B<deb-control>(5).
55 =head1 SONAME FORMATS
57 The SONAME formats supported are:
59 =over
61 I<name>.so.I<version>
63 =back
65 and
67 =over
69 I<name>-I<version>.so
71 =back
73 where I<name> is usually prefixed by B<lib>.
75 The former tends to be used by shared libraries with stable interfaces.
76 The latter by shared libraries with unstable interfaces, where the whole
77 version becomes part of the SONAME and needs to be specified in full
78 when linking against those libraries.
80 =head1 EXAMPLES
82 The
83 B<shlibs>
84 file for a typical library package, named
85 I<libcrunch1>,
86 that provides one library whose SONAME is
87 I<libcrunch.so.1>,
88 might read
90 =over
92  libcrunch 1 libcrunch1 (>= 1.2-1)
94 =back
96 The I<dependencies>
97 must mention the most recent version of the package that added new
98 symbols to the library: in the above example, new symbols were added to
99 version 1.2 of
100 I<libcrunch>.
101 This is not the only reason the dependencies might need to be
102 tightened.
104 =head1 SEE ALSO
106 B<deb-control>(5),
107 B<dpkg-shlibdeps>(1),
108 B<deb-symbols>(5).