diff options
-rw-r--r-- | Debian/Debhelper/Dh_Getopt.pm | 19 | ||||
-rw-r--r-- | Debian/Debhelper/Dh_Lib.pm | 2 | ||||
-rw-r--r-- | debian/changelog | 1 | ||||
-rwxr-xr-x | dh | 38 |
4 files changed, 30 insertions, 30 deletions
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index edb3be76..0d021072 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -68,10 +68,11 @@ sub NonOption { sub getoptions { my $array=shift; - my %options=%{shift()} if ref $_[0]; + my %params=@_; + my %options=%{$params{options}} if ref $params{options}; my $oldwarn; - if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) { + if ($params{ignore_unknown_options}) { $oldwarn=$SIG{__WARN__}; $SIG{__WARN__}=sub {}; } @@ -141,7 +142,7 @@ sub getoptions { "<>" => \&NonOption, ); - if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) { + if ($params{ignore_unknown_options}) { $SIG{__WARN__}=$oldwarn; return 1; } @@ -158,7 +159,7 @@ sub split_options_string { # Parse options and set %dh values. sub parseopts { - my $options=shift; + my %params=@_; my @ARGV_extra; @@ -166,7 +167,7 @@ sub parseopts { # dh through an override target to a command. if (defined $ENV{DH_INTERNAL_OPTIONS}) { @ARGV_extra=split(/\x1e/, $ENV{DH_INTERNAL_OPTIONS}); - getoptions(\@ARGV_extra, $options); + getoptions(\@ARGV_extra, %params, ignore_unknown_options => 1); # Avoid forcing acting on packages specified in # DH_INTERNAL_OPTIONS. This way, -p can be specified @@ -185,18 +186,16 @@ sub parseopts { delete $dh{DOARCH}; } - # DH_OPTIONS can contain additional options - # to be parsed like @ARGV, but with unknown options - # skipped. + # DH_OPTIONS can contain additional options to be parsed like @ARGV if (defined $ENV{DH_OPTIONS}) { @ARGV_extra=split_options_string($ENV{DH_OPTIONS}); - my $ret=getoptions(\@ARGV_extra, $options); + my $ret=getoptions(\@ARGV_extra, %params); if (!$ret) { warning("warning: ignored unknown options in DH_OPTIONS"); } } - my $ret=getoptions(\@ARGV, $options); + my $ret=getoptions(\@ARGV, %params); if (!$ret) { warning("warning: unknown options will be a fatal error in a future debhelper release"); #error("unknown option; aborting"); diff --git a/Debian/Debhelper/Dh_Lib.pm b/Debian/Debhelper/Dh_Lib.pm index a4e35709..f37ff518 100644 --- a/Debian/Debhelper/Dh_Lib.pm +++ b/Debian/Debhelper/Dh_Lib.pm @@ -33,7 +33,7 @@ sub init { grep /^-/, @ARGV) { eval "use Debian::Debhelper::Dh_Getopt"; error($@) if $@; - Debian::Debhelper::Dh_Getopt::parseopts($params{options}); + Debian::Debhelper::Dh_Getopt::parseopts(%params); } # Another way to set excludes. diff --git a/debian/changelog b/debian/changelog index bb8563cc..a3f1fbcf 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ debhelper (7.4.12) UNRELEASED; urgency=low * dh_bugfiles: Doc typo. Closes: #563269 * makefile: Support the (asking for trouble) case of MAKE being set to something with a space in it. Closes: #563557 + * Fix warning about unknown options passed to commands in override targets. -- Joey Hess <joeyh@debian.org> Fri, 01 Jan 2010 13:00:22 -0500 @@ -220,29 +220,29 @@ my @ARGV_orig=@ARGV; # (and comes first so python-central loads later and can disable it). unshift @ARGV, "--with=python-support"; -# Disable complaints about unknown options for both dh and the commands -# it runs. This is done because dh accepts and passes on options that may -# be specific to only some debhelper commands. -$ENV{DH_IGNORE_UNKNOWN_OPTIONS}=1; - init(options => { - "until=s" => \$dh{UNTIL}, - "after=s" => \$dh{AFTER}, - "before=s" => \$dh{BEFORE}, - "remaining" => \$dh{REMAINING}, - "with=s" => sub { - my ($option,$value)=@_; - push @{$dh{WITH}},split(",", $value); - }, - "without=s" => sub { - my ($option,$value)=@_; - @{$dh{WITH}} = grep { $_ ne $value } @{$dh{WITH}}; + "until=s" => \$dh{UNTIL}, + "after=s" => \$dh{AFTER}, + "before=s" => \$dh{BEFORE}, + "remaining" => \$dh{REMAINING}, + "with=s" => sub { + my ($option,$value)=@_; + push @{$dh{WITH}},split(",", $value); + }, + "without=s" => sub { + my ($option,$value)=@_; + @{$dh{WITH}} = grep { $_ ne $value } @{$dh{WITH}}; + }, + "l" => \$dh{LIST}, + "list" => \$dh{LIST}, }, - "l" => \$dh{LIST}, - "list" => \$dh{LIST}, -}); + # Disable complaints about unknown options; they are passed on the + # debhelper commands. + ignore_unknown_options => 1, +); inhibit_log(); + # If make is using a jobserver, but it is not available # to this process, clean out MAKEFLAGS. This avoids # ugly warnings when calling make. |