From: Russ Allbery
Date: Fri, 13 Jan 2012 18:03:07 +0000 (-0800)
Subject: Improvements and simplifications of symbols/shlibs rewrite
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;ds=sidebyside;h=2d47e9eebcbe675f4815035851b3b42cedaa28af;hp=93717854c4b7b54a1cdadd1e81e1a07dd0bac06d;p=debian%2Fdebian-policy.git
Improvements and simplifications of symbols/shlibs rewrite
Based on review by Raphaƫl Hertzog.
---
diff --git a/policy.sgml b/policy.sgml
index d044507..1f14e34 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -5996,16 +5996,7 @@ Replaces: mail-transport-agent
libraries, 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. If your source package builds only a
- single binary package that contains only compiled binaries and
- libraries (but no scripts) and is not multiarch, you can use a
- command such as:
-
-dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \
- debian/tmp/usr/lib/*
-
- but normally finding all of the binaries is more
- complex.
+ modules in your package.
The easiest way to do this is to use a package helper
framework such as debhelper. If you are
using debhelper, the dh_shlibdeps
@@ -6029,7 +6020,10 @@ dpkg-shlibdeps debian/tmp/usr/bin/* debian/tmp/usr/sbin/* \
binary package.
Again, dh_shlibdeps
and dh_gencontrol will handle all of this for
- you if you're using debhelper.
+ you if you're using debhelper, including generating
+ separate substvars files for each binary
+ package and calling dpkg-gencontrol with the
+ appropriate flags.
@@ -6175,7 +6169,7 @@ libz.so.1 zlib1g #MINVER#
following symbols file:
libGL.so.1 libgl1
-| libgl1-mesa-glx #MINVER#
+ | libgl1-mesa-glx #MINVER#
publicGlSymbol@Base 6.3-1
[...]
implementationSpecificSymbol@Base 6.5.2-7 1
@@ -6216,7 +6210,8 @@ libGL.so.1 libgl1
* Build-Depends-Package: zlib1g-dev
- (Don't forget the leading space.)
+ (Don't forget the space before the * so that it will
+ be parsed as part of the entry for that library.)
@@ -6403,12 +6398,10 @@ int library_do_operation(enum library_op);
directory"
- When packages are being built,
- any debian/shlibs files are copied into the
- control information file area of the temporary build
- directory and given the name shlibs. These
- files give details of any shared libraries included in
- the same package.
+ These files are generated as part of the package build
+ process and staged for inclusion as control files in the
+ binary packages being built. They provide details of
+ any shared libraries included in the same package.
@@ -6559,34 +6552,19 @@ udeb: libz 1 zlib1g-udeb (>= 1:1.2.3.3.dfsg-1)
Providing a shlibs file
- If your package provides a shared library, you need to create
- a shlibs file following the format described
- above. It is usual to call this
- file debian/shlibs (but if you have multiple
- binary packages, you might want to call
- it debian/package.shlibs instead).
- Then let debian/rules install it in the control
- information file area:
-
-install -m644 debian/shlibs debian/tmp/DEBIAN
-
- or, in the case of a multi-binary package:
-
-install -m644 debian/package.shlibs debian/package/DEBIAN/shlibs
-
- An alternative way of doing this is to create
- the shlibs file in the control information file
- area directly from debian/rules without using
- a debian/shlibs file at all,
+ To provide a shlibs file for a shared library
+ binary package, create a shlibs file following
+ the format described above and place it in
+ the DEBIAN directory for that package during the
+ build. It will then be included as a control file for that
+ package
This is what dh_makeshlibs in
the debhelper suite does. If your package
also has a udeb that provides a shared
library, dh_makeshlibs can automatically
generate the udeb: lines if you specify the name of
the udeb with the --add-udeb option.
-
- since the debian/shlibs file itself is ignored by
- dpkg-shlibdeps.
+ .