Bug#928283: lintian: false positive pkg-js-tools-test-is-missing for openjk: assumes variables contain --with=nodejs
Package: lintian
Version: 2.13.0
Severity: normal
lintian emits pkg-js-tools-test-is-missing for the openjk source package
in contrib.
I believe this is because it uses a variable in the dh invocation, to
disable one binary package (which is not considered ready by upstream)
unless built for experimental or with some DEB_BUILD_OPTIONS:
dh_options =
ifneq ($(with_jk2),ON)
dh_options += -Nopenjk-outcast
endif
...
%:
dh $@ --builddir=obj $(dh_options)
and checks/debhelper.pm assumes this might contain all possible addons:
# Variables could contain any add-ons so assume we have seen
# them all.
foreach my $addon (keys %seen) {
$seen{$addon} = 1 if m,\$[({]\w,;
}
This was fine for the dh_python checks before 2.13.0, because they are
"negative" checks triggered by the python addons *not* being seen, so
processing variables like this disables the checks and cannot cause false
positives. However, this new nodejs check is "positive" and triggers on
the nodejs addon being seen, so processing variables like this enables
the check.
I think the solution would probably look something like this:
my $seen_variable = 0;
...
# Variables could contain any add-ons so treat this as weak evidence
# that we have seen them all.
$seen_variable = 1 if m,\$[({]\w,;
...
if ($seen_dh and not $seen{'python2'} and not $seen_variable) {
# (changed to add $seen_variable)
# consider emitting python-depends-but-no-python-helper
}
...
if ($seen{'nodejs'} and not $overrides{'dh_auto_test'}) {
# (unchanged)
# consider emitting pkg-js-tools-test-is-missing
}
This would avoid false positives for the "positive" checks like nodejs,
while also avoiding false positives for the "negative" checks like python.
smcv
-- System Information:
Debian Release: 10.0
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'testing-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.19.0-4-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages lintian depends on:
ii binutils 2.31.1-16
ii bzip2 1.0.6-9
ii diffstat 1.62-1
ii dpkg 1.19.6
ii dpkg-dev 1.19.6
ii file 1:5.35-4
ii gettext 0.19.8.1-9
ii gpg 2.2.13-1
ii intltool-debian 0.35.0+20060710.5
ii libapt-pkg-perl 0.1.34+b1
ii libarchive-zip-perl 1.64-1
ii libcapture-tiny-perl 0.48-1
ii libcgi-pm-perl 4.40-1
ii libclass-accessor-perl 0.51-1
ii libclone-perl 0.41-1+b1
pn libdigest-sha-perl <none>
ii libdpkg-perl 1.19.6
ii libemail-valid-perl 1.202-1
ii libfile-basedir-perl 0.08-1
ii libio-async-perl 0.72-1
ii libipc-run-perl 20180523.0-1
ii liblist-moreutils-perl 0.416-1+b4
ii libparse-debianchangelog-perl 1.2.0-13
ii libpath-tiny-perl 0.108-1
ii libtext-levenshtein-perl 0.13-1
ii libtimedate-perl 2.3000-2
ii libtry-tiny-perl 0.30-1
ii liburi-perl 1.76-1
ii libxml-simple-perl 2.25-1
ii libyaml-libyaml-perl 0.76+repack-1
ii man-db 2.8.5-2
ii patchutils 0.3.4-2
ii perl 5.28.1-6
ii t1utils 1.41-3
ii xz-utils 5.2.4-1
Versions of packages lintian recommends:
ii libperlio-gzip-perl 0.19-1+b5
Versions of packages lintian suggests:
ii binutils-multiarch 2.31.1-16
ii libhtml-parser-perl 3.72-3+b3
ii libtext-template-perl 1.55-1
-- no debconf information
Reply to: