From bfd59d44ff9e6362e19e88d3582ed5ee7e569c09 Mon Sep 17 00:00:00 2001
From: Russ Allbery
Date: Sat, 17 Mar 2012 11:04:14 -0700
Subject: [PATCH] Further symbols wording fixes from Charles Plessy
Retain the dpkg-shlibdeps section in the appendix as a stub pointing
to the main page so that we don't renumber subsequent sections. Add
more explanation for why dependencies change for each build of a
binary package. Combine the dpkg-shlibdeps instructions somewhat and
mention that debian/substvars is only a default.
---
policy.sgml | 77 ++++++++++++++++++++++++++++++++---------------------
1 file changed, 46 insertions(+), 31 deletions(-)
diff --git a/policy.sgml b/policy.sgml
index 5520006..57caf5d 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -5832,8 +5832,12 @@ Replaces: mail-transport-agent
installed. These dependencies must be added to the binary
package when it is built, since they may change based on which
version of a shared library the binary or library was linked
- with. To allow these dependencies to be constructed, shared
- libraries must provide either a symbols file or
+ with even if there are no changes to the source of the binary
+ (for example, symbol versions change, macros become functions or
+ vice versa, or the binary package may determine at compile-time
+ whether new library interfaces are available and can be called).
+ To allow these dependencies to be constructed, shared libraries
+ must provide either a symbols file or
a shlibs file, which provide information on the
package dependencies required to ensure the presence of this
library. Any package which uses a shared library must use these
@@ -5894,23 +5898,22 @@ Replaces: mail-transport-agent
the libraries and the symbols in those libraries directly
needed by the binaries or shared libraries in the package.
- dpkg-shlibdeps will use the symbols
- or shlibs files installed by the shared libraries
- to generate dependency information.
-
-
-
- If your package contains any compiled binaries or shared
- libraries, put a call to dpkg-shlibdeps into
+ To do this, put a call to dpkg-shlibdeps into
your debian/rules file in the source package.
List all of the compiled binaries, libraries, or loadable
modules in your package.
- The easiest way to do this is to use a package helper
- framework such as debhelper. If you are
+ The easiest way to call dpkg-shlibdeps
+ correctly is to use a package helper framework such
+ as debhelper. If you are
using debhelper,
the dh_shlibdeps program will do this work for
you. It will also correctly handle multi-binary packages.
+ dpkg-shlibdeps will use the symbols
+ or shlibs files installed by the shared libraries
+ to generate dependency information. The package must then
+ provide a substitution variable into which the discovered
+ dependency information can be placed.
@@ -5928,25 +5931,26 @@ Replaces: mail-transport-agent
- This command puts the dependency information into
- the debian/substvars file, which is then used
- by dpkg-gencontrol. You will need to place
- a ${shlibs:Depends} variable in the Depends
- field in the control file of every binary package built by
- this source package that contains compiled binaries,
- libraries, or loadable modules. If you have multiple binary
- packages, you will need to call dpkg-shlibdeps on
- each one which contains compiled libraries or binaries, using
- the -T option to the dpkg utilities to
- specify a different substvars file for each
- binary package.
+ dpkg-shlibdeps puts the dependency information
+ into the debian/substvars file by default, which
+ is then used by dpkg-gencontrol. You will need
+ to place a ${shlibs:Depends} variable in
+ the Depends field in the control file of every binary
+ package built by this source package that contains compiled
+ binaries, libraries, or loadable modules. If you have
+ multiple binary packages, you will need to
+ call dpkg-shlibdeps on each one which contains
+ compiled libraries or binaries, using the -T option
+ to the dpkg utilities to specify a
+ different substvars file for each binary
+ package.
Again, dh_shlibdeps
and dh_gencontrol will handle everything except
- the control file modification for you if you're
- using debhelper, including generating
- separate substvars files for each binary
- package and calling dpkg-gencontrol with the
- appropriate flags.
+ the addition of the variable to the control file for you if
+ you're using debhelper, including
+ generating separate substvars files for each
+ binary package and calling dpkg-gencontrol with
+ the appropriate flags.
@@ -6132,8 +6136,8 @@ Replaces: mail-transport-agent
During the package build, if the package itself
contains shared libraries with symbols
files, they will be generated in these staging
- directories
- by dpkg-gensymbols. symbols
+ directories by dpkg-gensymbols
+ (see [). symbols
files found in the build tree take precedence
over symbols files from other binary
packages.
@@ -11070,6 +11074,17 @@ END-INFO-DIR-ENTRY
dpkg-genchanges.
+
+
+ dpkg-shlibdeps - calculates shared library
+ dependencies
+
+
+ ]
+ See .
+
+
+
dpkg-distaddfile - adds a file to
--
2.39.2