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 {};
}
"<>" => \&NonOption,
);
- if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) {
+ if ($params{ignore_unknown_options}) {
$SIG{__WARN__}=$oldwarn;
return 1;
}
# Parse options and set %dh values.
sub parseopts {
- my $options=shift;
+ my %params=@_;
my @ARGV_extra;
# 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
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");
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.
* 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
# (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.