From 49281a1503549efdae30e5262f166eced711ffd7 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 7 Jun 2012 12:00:37 -0400 Subject: [PATCH] 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 Hmm, this is technically a behavior change, but hopefully not one anything could sanely depend on working like it used to. --- debian/changelog | 8 ++++++++ dh | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/debian/changelog b/debian/changelog index 3c90023..49a4eb8 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 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 3e6ccf4..17919dc 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); } -- 2.39.2