From: Joey Hess Date: Fri, 28 May 2010 18:41:58 +0000 (-0400) Subject: In v8 mode, debhelper only ever acts on packages that can be built for the given... X-Git-Tag: 7.9.1~5 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=653fb43cfa731d047deaf19b61aef2ebbeb00990;p=debhelper.git 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. --- diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index 257fe64..0689892 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -230,8 +230,9 @@ sub parseopts { } # If we have not been given any packages to act on, assume they - # want us to act on them all. Note we have to do this before excluding - # packages out, below. + # want us to act on all relevant packages. Note we have to do + # this before excluding packages out, below. + my @packages_relevant=getpackages("both"); if (! defined $dh{DOPACKAGES} || ! @{$dh{DOPACKAGES}}) { if ($dh{DOINDEP} || $dh{DOARCH}) { # User specified that all arch (in)dep package be @@ -239,25 +240,27 @@ 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}},getpackages("both"); + push @{$dh{DOPACKAGES}}, @packages_relevant; } # 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}) { - if (! exists $packages_seen{$package}) { - $packages_seen{$package}=1; - push @package_list, $package; - } + if (! $exclude_package{$package} && + ! exists $packages_seen{$package} && + $packages_relevant{$package}) { + $packages_seen{$package}=1; + push @package_list, $package; } } @{$dh{DOPACKAGES}}=@package_list; diff --git a/debhelper.pod b/debhelper.pod index a7735b1..c97db21 100644 --- a/debhelper.pod +++ b/debhelper.pod @@ -530,6 +530,12 @@ 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 5df9e2c..592ade3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -26,6 +26,9 @@ 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 Mon, 17 May 2010 20:01:19 -0400 diff --git a/doc/TODO b/doc/TODO index 1f50080..81275ac 100644 --- a/doc/TODO +++ b/doc/TODO @@ -1,6 +1,5 @@ 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.