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

Bug#941419: lintian: false positive package-supports-alternative-init-but-no-init.d-script if systemd unit is statically enabled



Package: lintian
Version: 2.24.0
Severity: minor

Steps to reproduce
------------------

Run lintian against a package like dbus that:

1) statically enables a systemd unit, i.e. installs a symbolic link
  /lib/systemd/system/multi-user.target.wants/dbus.service ->
  ../dbus.service
2) has a corresponding LSB init script /etc/init.d/dbus

(This is unusual and special, but a few packages that are entangled with
systemd, or more generally, with system boot - such as dbus, plymouth,
and systemd itself - legitimately do this.)

Expected result
---------------

lintian warns me about systemd-service-file-missing-install-key (unless I
override it, which I do in dbus). As I said, this is an unusual situation,
so I'm OK with this being something I'm expected to override.

lintian does not warn me about
package-supports-alternative-init-but-no-init.d-script (sic), because I have
a corresponding LSB init script.

(Side note: the name of the tag is misleading now that systemd is the
default; I don't think we can really claim that our default init system
is an "alternative" any more. However, I realise Policy has the same bug.)

Actual result
-------------

I get warned about systemd-service-file-missing-install-key twice:
once for /lib/systemd/system/dbus.service (as expected), and once for
/lib/systemd/system/multi-user.target.wants/dbus.service (not necessarily
desired, and might point towards the nature of this bug).

I also get warned about
package-supports-alternative-init-but-no-init.d-script for
/lib/systemd/system/multi-user.target.wants/dbus.service. This is
just not true: the closest LSB equivalent, /etc/init.d/dbus, does
exist. Perhaps Lintian mistakenly thinks it should be looking for
/etc/init.d/multi-user.target.wants/dbus?

Suggested solution
------------------

If a symlink to a systemd unit appears in a directory in the search path
(/etc/systemd/system, /lib/systemd/system, possibly others), consider it
for analysis as usual.

If a symlink to a systemd unit appears in *a subdirectory of* a directory
in the search path (/etc/systemd/system/multi-user.target.wants,
/lib/systemd/system/sysinit.target.requires, many others), do not
analyze it as though it was a systemd unit in its own right.

Thanks,
    smcv

-- System Information:
Debian Release: bullseye/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'stable-debug'), (500, 'buildd-unstable'), (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'buildd-experimental'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.2.0-3-amd64 (SMP w/2 CPU cores)
Kernel taint flags: TAINT_WARN, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_GB.utf8, LC_CTYPE=en_GB.utf8 (charmap=UTF-8), LANGUAGE=en_GB:en (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.32.51.20190909-1
ii  bzip2                        1.0.8-2
ii  diffstat                     1.62-1+b1
ii  dpkg                         1.19.7
ii  dpkg-dev                     1.19.7
ii  file                         1:5.37-5
ii  gettext                      0.19.8.1-9
ii  gpg                          2.2.17-3
ii  intltool-debian              0.35.0+20060710.5
ii  libapt-pkg-perl              0.1.36+b1
ii  libarchive-zip-perl          1.66-2
ii  libcapture-tiny-perl         0.48-1
ii  libcgi-pm-perl               4.44-1
ii  libclass-accessor-perl       0.51-1
ii  libclone-perl                0.41-1+b1
ii  libdpkg-perl                 1.19.7
ii  libemail-valid-perl          1.202-1
ii  libfile-basedir-perl         0.08-1
ii  libfile-find-rule-perl       0.34-1
ii  libio-async-loop-epoll-perl  0.20-1
ii  libio-async-perl             0.74-1
ii  libipc-run-perl              20180523.0-1
ii  liblist-compare-perl         0.53-1
ii  liblist-moreutils-perl       0.416-1+b4
ii  libmoo-perl                  2.003004-2
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  libtype-tiny-perl            1.004004-1
ii  liburi-perl                  1.76-1
ii  libxml-simple-perl           2.25-1
ii  libyaml-libyaml-perl         0.80+repack-2
ii  man-db                       2.8.7-3
ii  patchutils                   0.3.4-2+b1
ii  perl [libdigest-sha-perl]    5.28.1-6
ii  t1utils                      1.41-3
ii  xz-utils                     5.2.4-1+b1

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

Versions of packages lintian suggests:
ii  binutils-multiarch     2.32.51.20190909-1
ii  libhtml-parser-perl    3.72-3+b3
ii  libtext-template-perl  1.55-1

-- no debconf information


Reply to: