diff options
author | Joey Hess <joey@kitenet.net> | 2010-05-23 19:26:41 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-05-23 19:27:44 -0400 |
commit | 78279dbcdd52d16b14f2de5eb6958948f9dc3dcf (patch) | |
tree | db124439bdb2780bbe49b3137e6ac4da48b7cee9 | |
parent | 00ed6d0cc8f74caf4a591152a97027194304383c (diff) | |
download | debhelper-78279dbcdd52d16b14f2de5eb6958948f9dc3dcf.tar.gz |
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
-rw-r--r-- | debhelper.pod | 8 | ||||
-rw-r--r-- | debian/changelog | 6 | ||||
-rwxr-xr-x | dh_makeshlibs | 11 | ||||
-rw-r--r-- | doc/TODO | 3 |
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"); } @@ -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 |