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