[debhelper-devel] [debhelper] 01/01: Dh_Getopt: Fix discard of warning/error messages in option parsing

Niels Thykier nthykier at moszumanska.debian.org
Tue Sep 26 18:29:21 UTC 2017

This is an automated email from the git hooks/post-receive script.

nthykier pushed a commit to branch master
in repository debhelper.

commit fa8e36543c863f9c5a70a7abfcbc7f22262e92c0
Author: Niels Thykier <niels at thykier.net>
Date:   Tue Sep 26 18:17:53 2017 +0000

    Dh_Getopt: Fix discard of warning/error messages in option parsing
    When testing -O options, the __WARN__ handler would be set to a sub to
    throw away warnings for -O options.  However, the original __WARN__
    handler would not be properly reset in the case where it was
    originally "undef" (which happens to be the default).  This triggered
    a discard of real error messages in case there was a later call to
    Concretely, this was trivially reproducible via:
      DH_OPTIONS=-Oa dh_makeshlibs -ppackage-that-does-not-exist
    This /should/ have failed with:
      dh_makeshlibs: Requested unknown package foo via -p/--package, expected one of: [...]
      dh_makeshlibs: unknown option or error during option parsing; aborting
    But prior to this commit, only the latter line would appear.  This
    sadly makes the error rather hard to understand.
    Signed-off-by: Niels Thykier <niels at thykier.net>
 debian/changelog                  | 4 ++++
 lib/Debian/Debhelper/Dh_Getopt.pm | 2 +-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/debian/changelog b/debian/changelog
index 564fbe3..590186c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,10 @@
 debhelper (10.9.1) UNRELEASED; urgency=medium
   * dh_builddeb: Add some missing error checks.
+  * Dh_Lib.pm: Fix bug where debhelper could shallow some error
+    messages during parsing when -O options were passed via
+    DH_OPTIONS (among other).  Thanks to Adrian Bunk and
+    Andrew Shadura for reporting the issue.  (Closes: #876689)
  -- Niels Thykier <niels at thykier.net>  Thu, 21 Sep 2017 19:13:19 +0000
diff --git a/lib/Debian/Debhelper/Dh_Getopt.pm b/lib/Debian/Debhelper/Dh_Getopt.pm
index 10da2df..dce0bca 100644
--- a/lib/Debian/Debhelper/Dh_Getopt.pm
+++ b/lib/Debian/Debhelper/Dh_Getopt.pm
@@ -174,7 +174,7 @@ sub getoptions {
 		$SIG{__WARN__}=sub {};
 	my $ret=Getopt::Long::GetOptionsFromArray($array, %options);
-	if ($oldwarn) {
+	if ($params{test} || $params{ignore_unknown_options}) {

Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debhelper/debhelper.git

More information about the debhelper-devel mailing list