diff options
author | Joey Hess <joey@gnu.kitenet.net> | 2009-06-29 16:10:48 -0400 |
---|---|---|
committer | Joey Hess <joey@gnu.kitenet.net> | 2009-06-29 16:10:48 -0400 |
commit | afabee81e04c52cae5cbf55b8ba4566659505e9b (patch) | |
tree | a79d87c2bf3c9417206a99ef299da3cf5ebf6ebe | |
parent | 86e65737a05bc7dc5e911577bf96e9539ab759c2 (diff) | |
download | debhelper-afabee81e04c52cae5cbf55b8ba4566659505e9b.tar.gz |
Make dh not complain about unknown, command-specific options passed to it
and further suppress warnings about such options it passes on to debhelper
commands. This was attempted incompletely before in version 7.2.17.
-rw-r--r-- | Debian/Debhelper/Dh_Getopt.pm | 22 | ||||
-rw-r--r-- | debian/changelog | 5 | ||||
-rwxr-xr-x | dh | 5 |
3 files changed, 25 insertions, 7 deletions
diff --git a/Debian/Debhelper/Dh_Getopt.pm b/Debian/Debhelper/Dh_Getopt.pm index 9868124c..86f3cdba 100644 --- a/Debian/Debhelper/Dh_Getopt.pm +++ b/Debian/Debhelper/Dh_Getopt.pm @@ -72,8 +72,14 @@ sub NonOption { sub getoptions { my $array=shift; my %options=%{shift()} if ref $_[0]; + + my $oldwarn; + if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) { + $oldwarn=$SIG{__WARN__}; + $SIG{__WARN__}=sub {}; + } - Getopt::Long::GetOptionsFromArray($array, + my $ret=Getopt::Long::GetOptionsFromArray($array, "v" => \$dh{VERBOSE}, "verbose" => \$dh{VERBOSE}, @@ -136,7 +142,15 @@ sub getoptions { %options, "<>" => \&NonOption, - ) + ); + + if ($ENV{DH_IGNORE_UNKNOWN_OPTIONS}) { + $SIG{__WARN__}=$oldwarn; + return 1; + } + else { + return $ret; + } } sub split_options_string { @@ -155,11 +169,7 @@ sub parseopts { # dh through an override target to a command. if (defined $ENV{DH_INTERNAL_OPTIONS}) { @ARGV_extra=split_options_string($ENV{DH_INTERNAL_OPTIONS}); - # Unknown options will be silently ignored. - my $oldwarn=$SIG{__WARN__}; - $SIG{__WARN__}=sub {}; getoptions(\@ARGV_extra, $options); - $SIG{__WARN__}=$oldwarn; # Avoid forcing acting on packages specified in # DH_INTERNAL_OPTIONS. This way, -p can be specified diff --git a/debian/changelog b/debian/changelog index 66b88abd..a28a4839 100644 --- a/debian/changelog +++ b/debian/changelog @@ -21,8 +21,11 @@ debhelper (7.3.0) UNRELEASED; urgency=low * Move two more command-specific options to only be accepted by the commands that use them. The options are: --sourcedir, --destdir - * If any third-party debhelper commands use either of the above options, + If any third-party debhelper commands use either of the above options, they will be broken, and need to be changed to pass options to init(). + * Make dh not complain about unknown, command-specific options passed to it, + and further suppress warnings about such options it passes on to debhelper + commands. This was attempted incompletely before in version 7.2.17. -- Joey Hess <joeyh@debian.org> Mon, 20 Apr 2009 16:26:08 -0400 @@ -197,6 +197,11 @@ my @ARGV_orig=@ARGV; # python-support is enabled by default, at least for now # (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}, |