From: Joey Hess <joey@kitenet.net>
Date: Fri, 28 May 2010 19:16:52 +0000 (-0400)
Subject: Revert "In v8 mode, debhelper only ever acts on packages that can be built for the... 
X-Git-Tag: 7.9.1~4
X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=1b399c04b40bc6f0fac4aa218a76c9a7132e7e71;p=debhelper.git

Revert "In v8 mode, debhelper only ever acts on packages that can be built for the given architecture, even if -N or -p are used to specify packages specific to other architectures."

This reverts commit 653fb43cfa731d047deaf19b61aef2ebbeb00990.

Oops, I meant to not make this change.. -N was already fixed, and fixing -p
does not seem important.
---

diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm
index 0689892..257fe64 100644
--- a/Debian/Debhelper/Dh_Getopt.pm
+++ b/Debian/Debhelper/Dh_Getopt.pm
@@ -230,9 +230,8 @@ sub parseopts {
 	}
 	
 	# If we have not been given any packages to act on, assume they
-	# want us to act on all relevant packages. Note we have to do
-	# this before excluding packages out, below.
-	my @packages_relevant=getpackages("both");
+	# want us to act on them all. Note we have to do this before excluding
+	# packages out, below.
 	if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) {
 		if ($dh{DOINDEP} || $dh{DOARCH}) {
 			# User specified that all arch (in)dep package be
@@ -240,27 +239,25 @@ sub parseopts {
 			warning("You asked that all arch in(dep) packages be built, but there are none of that type.");
 			exit(0);
 		}
-		push @{$dh{DOPACKAGES}}, @packages_relevant;
+		push @{$dh{DOPACKAGES}},getpackages("both");
 	}
 
 	# Remove excluded packages from the list of packages to act on.
 	# Also unique the list, in case some options were specified that
 	# added a package to it twice.
-	# And avoid acting on packages that are not relevant.
 	my @package_list;
 	my $package;
 	my %packages_seen;
-	my %packages_relevant=map { $_ => 1 } @packages_relevant;
 	foreach $package (@{$dh{DOPACKAGES}}) {
 		if (defined($dh{EXCLUDE_LOGGED}) &&
 		    grep { $_ eq basename($0) } load_log($package)) {
 			$exclude_package{$package}=1;
 		}
-		if (! $exclude_package{$package} &&
-		    ! exists $packages_seen{$package} &&
-		    $packages_relevant{$package}) {
-			$packages_seen{$package}=1;
-			push @package_list, $package;	
+		if (! $exclude_package{$package}) {
+			if (! exists $packages_seen{$package}) {
+				$packages_seen{$package}=1;
+				push @package_list, $package;	
+			}
 		}
 	}
 	@{$dh{DOPACKAGES}}=@package_list;
diff --git a/debhelper.pod b/debhelper.pod
index c97db21..a7735b1 100644
--- a/debhelper.pod
+++ b/debhelper.pod
@@ -530,12 +530,6 @@ can cause some packages to fail to build.
 
 dh requires the sequence to run be specified as the first parameter, and
 any switches come after it. Ie, use "dh $@ --foo", not "dh --foo $@"
-  
-=item -
-
-Debhelper only ever acts on packages that can be built for the given
-architecture, even if -N or -p are used to specify packages specific
-to other architectures.
 
 =back
 
diff --git a/debian/changelog b/debian/changelog
index 592ade3..5df9e2c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,9 +26,6 @@ debhelper (7.9.1) UNRELEASED; urgency=low
     file with a name like HISTORY. Closes: #582749
   * dh_installchangelogs: Also look for changelog files in doc(s)
     subdirectories. Closes: #521258
-  * In v8 mode, debhelper only ever acts on packages that can be built
-    for the given architecture, even if -N or -p are used to specify
-    packages specific to other architectures.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 17 May 2010 20:01:19 -0400
 
diff --git a/doc/TODO b/doc/TODO
index 81275ac..1f50080 100644
--- a/doc/TODO
+++ b/doc/TODO
@@ -1,5 +1,6 @@
 v8:
 
+* 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
   compatability) in #544844.