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

Bug#914538: lintian: false positives with make prefixes on dh



Package: lintian
Version: 2.5.113
Severity: normal
Tags: patch

Dear Maintainer,

When debian/rules includes a make prefix in front of dh, the use of dh
isn’t recognised and lintian reports
package-does-not-use-debhelper-or-cdbs.

The attached patch fixes this.

Regards,

Stephen


-- System Information:
Debian Release: 9.6
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-debug'), (500, 'stable'), (100, 'unstable-debug'), (100, 'testing-debug'), (100, 'unstable'), (100, 'testing'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-8-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages lintian depends on:
ii  binutils                          2.28-5
ii  bzip2                             1.0.6-8.1
ii  diffstat                          1.61-1+b1
ii  dpkg                              1.18.25
ii  dpkg-dev                          1.18.25
ii  file                              1:5.30-1+deb9u2
ii  gettext                           0.19.8.1-2
ii  gnupg [gpg]                       2.1.18-8~deb9u3
ii  intltool-debian                   0.35.0+20060710.4
ii  libapt-pkg-perl                   0.1.32
ii  libarchive-zip-perl               1.59-1+deb9u1
ii  libcgi-pm-perl                    4.35-1
ii  libclass-accessor-perl            0.34-1
ii  libclone-perl                     0.38-2+b1
ii  libdigest-sha-perl                5.96-1+b1
ii  libdpkg-perl                      1.18.25
ii  libemail-valid-perl               1.202-1
ii  libfile-basedir-perl              0.07-1
ii  libipc-run-perl                   0.94-1+deb9u1
ii  liblist-moreutils-perl            0.416-1+b1
ii  libparse-debianchangelog-perl     1.2.0-12
ii  libperl5.24 [libdigest-sha-perl]  5.24.1-3+deb9u4
ii  libtext-levenshtein-perl          0.13-1
ii  libtimedate-perl                  2.3000-2
ii  liburi-perl                       1.71-1
ii  libxml-simple-perl                2.22-1
ii  libyaml-libyaml-perl              0.63-2
ii  man-db                            2.7.6.1-2
ii  patchutils                        0.3.4-2
ii  perl                              5.24.1-3+deb9u4
ii  t1utils                           1.39-2
ii  xz-utils                          5.2.2-1.2+b1

Versions of packages lintian recommends:
ii  libperlio-gzip-perl  0.19-1+b2

Versions of packages lintian suggests:
pn  binutils-multiarch     <none>
ii  libhtml-parser-perl    3.72-3
ii  libtext-template-perl  1.46-1

-- no debconf information
>From a36de5d0924aa9df78dba247d2b778951aa44a0f Mon Sep 17 00:00:00 2001
From: Stephen Kitt <skitt@debian.org>
Date: Sat, 24 Nov 2018 16:25:48 +0100
Subject: [PATCH] Avoid false positives with make prefixes on dh

debian/rules which use a - or + prefix on dh trigger
package-does-not-use-debhelper-or-cdbs. This patch allows - or + in
front of dh and includes appropriate unit tests.

Signed-off-by: Stephen Kitt <skitt@debian.org>
---
 checks/debhelper.pm                                        |  4 ++--
 .../debian/debian/control.in                               | 14 ++++++++++++++
 .../debian/debian/rules                                    |  7 +++++++
 .../desc                                                   |  6 ++++++
 .../tags                                                   |  2 ++
 .../debian/debian/control.in                               | 14 ++++++++++++++
 .../debian/debian/rules                                    |  7 +++++++
 .../debhelper-package-uses-debhelper-with-prefix-plus/desc |  6 ++++++
 .../debhelper-package-uses-debhelper-with-prefix-plus/tags |  2 ++
 9 files changed, 60 insertions(+), 2 deletions(-)
 create mode 100644 t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/control.in
 create mode 100755 t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/rules
 create mode 100644 t/tests/debhelper-package-uses-debhelper-with-prefix-minus/desc
 create mode 100644 t/tests/debhelper-package-uses-debhelper-with-prefix-minus/tags
 create mode 100644 t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/control.in
 create mode 100755 t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/rules
 create mode 100644 t/tests/debhelper-package-uses-debhelper-with-prefix-plus/desc
 create mode 100644 t/tests/debhelper-package-uses-debhelper-with-prefix-plus/tags

diff --git a/checks/debhelper.pm b/checks/debhelper.pm
index 3b3c67e7b..810226f00 100644
--- a/checks/debhelper.pm
+++ b/checks/debhelper.pm
@@ -87,7 +87,7 @@ sub run {
         }
 
         next if /^\s*\#/;
-        if (m/^\s+-?(dh_\S+)/) {
+        if (m/^\s+[@+-]?(dh_\S+)/) {
             my $dhcommand = $1;
             $build_systems{'debhelper'} = 1
               if not exists($build_systems{'dh'});
@@ -131,7 +131,7 @@ sub run {
             }
             $seencommand = 1;
             $needbuilddepends = 1;
-        } elsif (m,^\s+dh\s+,) {
+        } elsif (m,^\s+[@+-]?dh\s+,) {
             $build_systems{'dh'} = 1;
             delete($build_systems{'debhelper'});
             $seen_dh = 1;
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/control.in b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/control.in
new file mode 100644
index 000000000..28b7d974a
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/control.in
@@ -0,0 +1,14 @@
+Source: {$source}
+Priority: optional
+Section: {$section}
+Maintainer: {$author}
+Standards-Version: {$standards_version}
+Build-Depends: {$build_depends}
+Rules-Requires-Root: binary-targets
+
+Package: {$source}
+Architecture: {$package_architecture}
+Description: {$description}
+ This is a test package designed to exercise some feature or tag of
+ Lintian.  It is part of the Lintian test suite and may do very odd
+ things.  It should not be installed like a regular package.
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/rules b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/rules
new file mode 100755
index 000000000..42680a88b
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/debian/debian/rules
@@ -0,0 +1,7 @@
+#!/usr/bin/make -f
+
+PKG = debhelper-package-uses-debhelper-with-prefix-minus
+DOCS = debian/tmp/usr/share/doc/$(PKG)
+
+%:
+	-dh $@
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/desc b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/desc
new file mode 100644
index 000000000..9e337d2a0
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/desc
@@ -0,0 +1,6 @@
+Testname: debhelper-package-uses-debhelper-with-prefix-minus
+Version: 1.0
+Description: Test for packages using debhelper with a - prefix
+Options: --pedantic -I
+Test-Against:
+ package-does-not-use-debhelper-or-cdbs
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/tags b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/tags
new file mode 100644
index 000000000..32e7485b4
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-minus/tags
@@ -0,0 +1,2 @@
+W: debhelper-package-uses-debhelper-with-prefix-minus source: debhelper-but-no-misc-depends debhelper-package-uses-debhelper-with-prefix-minus
+W: debhelper-package-uses-debhelper-with-prefix-minus: empty-binary-package
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/control.in b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/control.in
new file mode 100644
index 000000000..28b7d974a
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/control.in
@@ -0,0 +1,14 @@
+Source: {$source}
+Priority: optional
+Section: {$section}
+Maintainer: {$author}
+Standards-Version: {$standards_version}
+Build-Depends: {$build_depends}
+Rules-Requires-Root: binary-targets
+
+Package: {$source}
+Architecture: {$package_architecture}
+Description: {$description}
+ This is a test package designed to exercise some feature or tag of
+ Lintian.  It is part of the Lintian test suite and may do very odd
+ things.  It should not be installed like a regular package.
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/rules b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/rules
new file mode 100755
index 000000000..294002eac
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/debian/debian/rules
@@ -0,0 +1,7 @@
+#!/usr/bin/make -f
+
+PKG = debhelper-package-uses-debhelper-with-prefix-plus
+DOCS = debian/tmp/usr/share/doc/$(PKG)
+
+%:
+	+dh $@
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/desc b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/desc
new file mode 100644
index 000000000..67704273e
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/desc
@@ -0,0 +1,6 @@
+Testname: debhelper-package-uses-debhelper-with-prefix-plus
+Version: 1.0
+Description: Test for packages using debhelper with a + prefix
+Options: --pedantic -I
+Test-Against:
+ package-does-not-use-debhelper-or-cdbs
diff --git a/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/tags b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/tags
new file mode 100644
index 000000000..94312102e
--- /dev/null
+++ b/t/tests/debhelper-package-uses-debhelper-with-prefix-plus/tags
@@ -0,0 +1,2 @@
+W: debhelper-package-uses-debhelper-with-prefix-plus source: debhelper-but-no-misc-depends debhelper-package-uses-debhelper-with-prefix-plus
+W: debhelper-package-uses-debhelper-with-prefix-plus: empty-binary-package
-- 
2.11.0


Reply to: