]> git.donarmstrong.com Git - debhelper.git/commitdiff
In v8 mode, dh_makeshlibs will run dpkg-gensymbols on all shared libraries it generat...
authorJoey Hess <joey@kitenet.net>
Sun, 23 May 2010 23:26:41 +0000 (19:26 -0400)
committerJoey Hess <joey@kitenet.net>
Sun, 23 May 2010 23:27:44 +0000 (19:27 -0400)
debhelper.pod
debian/changelog
dh_makeshlibs
doc/TODO

index dae1a1a886a2b1f22d9e2c00aa66fe3e37a0f7b8..2f44e4d0908c4b4a400b7e4fc07a42161573b9ab 100644 (file)
@@ -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
index 61890527b90c56ab632a884738efc5ab155cf50d..2a9fc6693c5e6469198d4fd4c2663299903a6014 100644 (file)
@@ -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
 
index 03a54f95420d3d990f39ef14c962863730608f18..428e5b278f15f077ae351777fbe0d060ffee6a4f 100755 (executable)
@@ -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");
                }
index 89de90b8798dee60e4cfeb56efe7d98df9264865..728e38eb3674c54ad34b1edad75b9c38fd6167af 100644 (file)
--- 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