Bug#927970: lintian: false positives for missing-systemd-timer-for-cron-script?

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Bug#927970: lintian: false positives for missing-systemd-timer-for-cron-script?

Francesco Poli (wintermute)
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@...#man-db_2.8.5-2>
[about]: <https://lintian.debian.org/full/cgzones@...#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 | Threaded
Open this post in threaded view
|

Bug#927970: lintian: false positives for missing-systemd-timer-for-cron-script?

Chris Lamb -2
tags 927970 + pending
thanks

> I have a question: is the following line
>
>    return if any { m,^/lib/systemd/system/\.timer$, } $info->sorted_index;
>
> missing something in the regexp?

You are, of course, entirely right. Fixed in Git, now pending upload:

  https://salsa.debian.org/lintian/lintian/commit/591f36e58ed56b289c4cee34f736f39f91a65fc9

  checks/systemd.pm | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)


Regards,

--
      ,''`.
     : :'  :     Chris Lamb
     `. `'`      [hidden email] / chris-lamb.co.uk
       `-

Reply | Threaded
Open this post in threaded view
|

Bug#927970: lintian: false positives for missing-systemd-timer-for-cron-script?

Francesco Poli (wintermute)
On Thu, 25 Apr 2019 13:43:23 -0400 Chris Lamb wrote:

[...]
> You are, of course, entirely right. Fixed in Git, now pending upload

I am glad to help!   :-)

Thanks for your prompt reaction.
Bye.

--
 http://www.inventati.org/frx/
 There's not a second to spare! To the laboratory!
..................................................... Francesco Poli .
 GnuPG key fpr == CA01 1147 9CD2 EFDF FB82  3925 3E1C 27E1 1F69 BFFE

attachment0 (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Bug#927970: lintian: false positives for missing-systemd-timer-for-cron-script?

Francesco Poli (wintermute)
Control: found -1 lintian/2.14.0


On Thu, 25 Apr 2019 22:29:28 +0200 Francesco Poli wrote:

> On Thu, 25 Apr 2019 13:43:23 -0400 Chris Lamb wrote:
>
> [...]
> > You are, of course, entirely right. Fixed in Git, now pending upload
>
> I am glad to help!   :-)
>
> Thanks for your prompt reaction.
> Bye.

Hello again,
I still get the false positive...
I am therefore reopening the bug report.


I have a doubt: should the following line

  if any { m,^/lib/systemd/system/[^\/]+\.timer$, } $info->sorted_index;

drop the "/" at the beginning?

Or are the false positives caused by something else?

Please clarify.
Thanks for your time again!


--
 http://www.inventati.org/frx/
 There's not a second to spare! To the laboratory!
..................................................... Francesco Poli .
 GnuPG key fpr == CA01 1147 9CD2 EFDF FB82  3925 3E1C 27E1 1F69 BFFE

attachment0 (849 bytes) Download Attachment