summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debhelper.pod8
-rw-r--r--debian/changelog6
-rwxr-xr-xdh_makeshlibs11
-rw-r--r--doc/TODO3
4 files changed, 25 insertions, 3 deletions
diff --git a/debhelper.pod b/debhelper.pod
index dae1a1a8..2f44e4d0 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -518,6 +518,14 @@ Changes from V7 are:
Commands will fail rather than warning when they are passed unknown options.
+=item -
+
+dh_makeshlibs will run dpkg-gensymbols on all shared libraries that it
+generates shlibs files for. So -X can be used to exclude libraries.
+Also, libraries in unusual locations that dpkg-gensymbols would not
+have processed before will be passed to it, a behavior change that
+can cause some packages to fail to build.
+
=back
=back
diff --git a/debian/changelog b/debian/changelog
index 61890527..2a9fc669 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,12 @@ debhelper (7.4.21) UNRELEASED; urgency=low
* Add deprecation warning for dh_clean -k.
* In v8 mode, do not allow directly passing unknown options to debhelper
commands. (Unknown options in DH_OPTIONS still only result in warnings.)
+ * In v8 mode, dh_makeshlibs will run dpkg-gensymbols on all shared
+ libraries it generates shlibs files for. This means that -X can be
+ used to exclude libraries from processing by dpkg-gensymbols. It also
+ means that libraries in unusual locations, where dpkg-gensymbols does
+ not itself normally look will be passed to it, a behavior change which
+ may break some packages. Closes: #557603
-- Joey Hess <joeyh@debian.org> Mon, 17 May 2010 20:01:19 -0400
diff --git a/dh_makeshlibs b/dh_makeshlibs
index 03a54f95..428e5b27 100755
--- a/dh_makeshlibs
+++ b/dh_makeshlibs
@@ -139,13 +139,14 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# because only if we can get a library name and a major number from
# objdump is anything actually added.
my $exclude='';
- my @udeb_lines;
+ my (@udeb_lines, @lib_files);
if (defined($dh{EXCLUDE_FIND}) && $dh{EXCLUDE_FIND} ne '') {
$exclude="! \\( $dh{EXCLUDE_FIND} \\) ";
}
open (FIND, "find $tmp -type f \\( -name '*.so' -or -name '*.so.*' \\) $exclude |");
while (<FIND>) {
my ($library, $major);
+ push @lib_files, $_;
my $objdump=`objdump -p $_`;
if ($objdump=~m/\s+SONAME\s+(.+)\.so\.(.+)/) {
# proper soname format
@@ -222,12 +223,18 @@ foreach my $package (@{$dh{DOPACKAGES}}) {
# dpkg-gensymbols files
my $symbols=pkgfile($package, "symbols");
if (-e $symbols) {
+ my @liblist;
+ if (! compat(7)) {
+ @liblist=map { "-e$_" } @lib_files;
+ }
# -I is used rather than using dpkg-gensymbols
# own search for symbols files, since that search
# is not 100% compatible with debhelper. (For example,
# this supports --ignore being used.)
doit("dpkg-gensymbols", "-p$package", "-I$symbols",
- "-P$tmp", @{$dh{U_PARAMS}});
+ "-P$tmp",
+ @liblist,
+ @{$dh{U_PARAMS}});
if (-s "$tmp/DEBIAN/symbols" == 0) {
doit("rm", "-f", "$tmp/DEBIAN/symbols");
}
diff --git a/doc/TODO b/doc/TODO
index 89de90b8..728e38eb 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -7,11 +7,12 @@ v8:
* make dh_install use hard links for efficiency (maybe?)
* dh_installinit --restart-after-upgrade as default?
* #487006: dh_installman with 3-letter codes
-* apply patch in #557603 (breaks compatibility slightly; see #560120)
* clean up dh's handling of options passed onto commands it calls,
by implementing one of the changes discussed in #570039
(either change #3, change #4, or change #5; change #0 was done, but
was an incomplete workaround)
+ My preference ATM is #3, require dh options come before --,
+ and after, options to be passed on to commands.
* better package arch filtering for -N , -p (#576990)
* Support DEB_BUILD_OPTIONS=debug ; maybe also support passing
-g -O2 by default. See patch (and discussion of why this breaks