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

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: