summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debian/changelog8
-rwxr-xr-xdh10
2 files changed, 18 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 3c90023c..49a4eb8c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -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 3e6ccf42..17919dce 100755
--- 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);
}