[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[lintian] 01/01: c/debhelper.pm: Correct false positives in typo-in-debhelper-override-target when matching multiple targets, extra whitespace and wildcards.



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

lamby pushed a commit to branch typo-false-positive-834370
in repository lintian.

commit 9fae431b5b4392a6920147e0864d44c305270d4f
Author: Chris Lamb <lamby@debian.org>
Date:   Wed Aug 24 21:40:00 2016 +0100

    c/debhelper.pm: Correct false positives in typo-in-debhelper-override-target when matching multiple targets, extra whitespace and wildcards.
    
    Signed-off-by: Chris Lamb <lamby@debian.org>
---
 checks/debhelper.pm                                 | 11 ++++++++---
 .../debhelper-override-typos/debian/debian/rules    | 21 +++++++++++++++++++--
 t/tests/debhelper-override-typos/tags               | 15 ++++++++++++---
 3 files changed, 39 insertions(+), 8 deletions(-)

diff --git a/checks/debhelper.pm b/checks/debhelper.pm
index 3883033..9babcfe 100644
--- a/checks/debhelper.pm
+++ b/checks/debhelper.pm
@@ -178,10 +178,15 @@ sub run {
             $dhcompatvalue = $1;
             # one can export and then set the value:
             $level = $1 if ($level);
-        } elsif (/^override_(dh_[^:]+)/) {
+        } elsif (/(.*override_dh_.*):/) {
+            my $targets = $1;
             $needbuilddepends = 1;
-            my $dhcommand = $1;
-            if (not $dh_commands_depends->known($dhcommand)) {
+            # Can be multiple targets per rule.
+            while ($targets =~ /\boverride_(dh_[^\s]+)/g) {
+                my $dhcommand = $1;
+                # If maintainer is using wildcards, it's unlikely to be a typo.
+                next if ($dhcommand =~ /%/);
+                next if ($dh_commands_depends->known($dhcommand));
                 # Unknown command, so check for likely misspellings
                 foreach my $x (sort $dh_commands_depends->all) {
                     if (distance($dhcommand, $x) < 3) {
diff --git a/t/tests/debhelper-override-typos/debian/debian/rules b/t/tests/debhelper-override-typos/debian/debian/rules
index 975c83a..1014f51 100755
--- a/t/tests/debhelper-override-typos/debian/debian/rules
+++ b/t/tests/debhelper-override-typos/debian/debian/rules
@@ -5,11 +5,28 @@
 
 # Good
 override_dh_install:
+override_dh_install :
+ override_dh_install: #
+prefix_override_dh_gconfs:
 override_dh_will_never_exist:
+override_dh_python2 override_dh_perl :
+override_dh_systemd_enable override_dh_systemd_disable:
+override_dh_auto_configure-% override_dh_auto_install-%:
+foo override_dh_installdeb bar override_dh_installxmlcatalogs: # combining regular and overrides
+
 
 # Bad
+override_dh_nump: # Multiple matches should emit only one tag
 override_dh_instakk:
+ override_dh_installcrons:
 override_dh_install_examples:
+override_dh_install_changelogs : # Extra space
+override_dh_perls override_dh_python2 : # Bad then good
+override_dh_python2 override_dh_perls : # Good then bad
+override_dh_instakk override_dh_install_examples : # Both broken, with space
+foo override_dh_installdebs bar override_dh_installxmlcatalog: # combining regular and overrides
+
+# Don't worry about anything beyond a colon even if wrong; it will fail anyway.
+override_dh_testdirs: override_dh_ucfs
 
-# Multiple matches should emit only one tag
-override_dh_nump:
+.PHONY: override_dh_ucfs
diff --git a/t/tests/debhelper-override-typos/tags b/t/tests/debhelper-override-typos/tags
index c8185b7..3c86a86 100644
--- a/t/tests/debhelper-override-typos/tags
+++ b/t/tests/debhelper-override-typos/tags
@@ -1,3 +1,12 @@
-W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_instakk -> override_dh_install (line 11)
-W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_install_examples -> override_dh_installexamples (line 12)
-W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_nump -> override_dh_numpy (line 15)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_instakk -> override_dh_install (line 20)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_instakk -> override_dh_install (line 26)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_install_changelogs -> override_dh_installchangelogs (line 23)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_install_examples -> override_dh_installexamples (line 22)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_install_examples -> override_dh_installexamples (line 26)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_installcrons -> override_dh_installcron (line 21)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_installdebs -> override_dh_installdeb (line 27)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_installxmlcatalog -> override_dh_installxmlcatalogs (line 27)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_nump -> override_dh_numpy (line 19)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_perls -> override_dh_perl (line 24)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_perls -> override_dh_perl (line 25)
+W: debhelper-override-typos source: typo-in-debhelper-override-target override_dh_testdirs -> override_dh_testdir (line 30)

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


Reply to: