Bug#927970: lintian: false positives for missing-systemd-timer-for-cron-script?
Package: lintian
Version: 2.12.0
Severity: normal
Hello,
on last Monday (April, the 22nd) I rebuilt my package (apt-listbugs)
inside a pbuilder-managed sid chroot environment and checked the
result with lintian/2.12.0 (that was the version available from sid
on that day: however, it seems to me that nothing relevant has
changed in version 2.13.0).
I got a new complaint from "lintian -EviIL +pedantic" :
missing-systemd-timer-for-cron-script
Well, nothing to say, that's true: apt-listbugs currently lacks
any systemd timer, but ships a cron.daily script.
Hence, I began doing some research on the proper way to ship a
systemd timer along with an equivalent cron script (while avoiding
conflicts between the two).
I looked for examples in other packages which seem to have already
done this. I think two examples could be man-db and logrotate,
is that correct?
$ dpkg -L man-db | grep 'cron\|systemd\/system\/[^\/]\+\.timer'
/etc/cron.daily
/etc/cron.daily/man-db
/etc/cron.weekly
/etc/cron.weekly/man-db
/lib/systemd/system/man-db.timer
$ dpkg -L logrotate | grep 'cron\|systemd\/system\/[^\/]\+\.timer'
/etc/cron.daily
/etc/cron.daily/logrotate
/lib/systemd/system/logrotate.timer
I even looked inside these files, and it seems to me that the systemd
timer is really equivalent to the cron script (in both cases).
But, to my great surprise, I see that lintian [complains] [about] those
two packages, as well!
[complains]: <https://lintian.debian.org/full/cjwatson@debian.org.html#man-db_2.8.5-2>
[about]: <https://lintian.debian.org/full/cgzones@googlemail.com.html#logrotate_3.14.0-4>
Are these false positives?
I took a look at the [code] that implements the check.
[code]: <https://salsa.debian.org/lintian/lintian/blob/master/checks/systemd.pm>
I have a question: is the following line
return if any { m,^/lib/systemd/system/\.timer$, } $info->sorted_index;
missing something in the regexp?
Should it be
return if any { m,^/lib/systemd/system/[^\/]+\.timer$, } $info->sorted_index;
or anyway something able to catch some characters between
"system/" and ".timer" ?
I am not sure this is the cause of the false positives, though.
Of course, I can well be completely off-track, so please bear with me!
Please clarify.
Thanks for your time!
-- System Information:
Debian Release: buster/sid
APT prefers testing
APT policy: (800, 'testing'), (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 4.19.0-4-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US: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.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.12-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:
pn binutils-multiarch <none>
ii libhtml-parser-perl 3.72-3+b3
ii libtext-template-perl 1.55-1
-- no debconf information
Reply to: