]> git.donarmstrong.com Git - debhelper.git/commitdiff
dh: When there's an -indep override target without -arch, or vice versa, avoid acting...
authorJoey Hess <joey@kitenet.net>
Thu, 7 Jun 2012 16:00:37 +0000 (12:00 -0400)
committerJoey Hess <joey@kitenet.net>
Thu, 7 Jun 2012 16:01:05 +0000 (12:01 -0400)
Hmm, this is technically a behavior change, but hopefully not one anything
could sanely depend on working like it used to.

debian/changelog
dh

index 3c90023c2dd8e0f432865f81cd185d042295474b..49a4eb8c6d55bcff80b0f82d9440a5c25b12a6a4 100644 (file)
@@ -1,3 +1,11 @@
+debhelper (9.20120529) UNRELEASED; urgency=low
+
+  * dh: When there's an -indep override target without -arch, or vice versa,
+    avoid acting on packages covered by the override target when running
+    the command for packages not covered by it. Closes: #676462
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 07 Jun 2012 11:58:03 -0400
+
 debhelper (9.20120528) unstable; urgency=low
 
   * dh_installcatalogs: Turn /etc/sgml/$package.cat into conffiles
diff --git a/dh b/dh
index 3e6ccf426a28256dfcc4359677ee572eec7653c8..17919dce794f365c6028235c78c2a22cdc07b84f 100755 (executable)
--- a/dh
+++ b/dh
@@ -662,11 +662,21 @@ foreach my $i (0..$stoppoint) {
        # the usual command. (The non-arch-specific override is tried first,
        # for simplest semantics; mixing it with arch-specific overrides
        # makes little sense.)
+       my @oldtodo=@todo;
        foreach my $override_type (undef, "arch", "indep") {
                @todo = run_override($override_type, $command, \@todo, @opts);
        }
        next unless @todo;
 
+       # No need to run the command for any packages handled by the
+       # override targets.
+       my %todo=map { $_ => 1 } @todo;
+       foreach my $package (@oldtodo) {
+               if (! $todo{$package}) {
+                       push @opts, "-N$package";
+               }
+       }
+
        run($command, @opts);
 }