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

Bug#992465: [lintian] systemd-service-file-outside-lib should not flag /usr/lib/systemd/system/



Package: lintian
Version: 2.104.0
Severity: normal
Tags: patch
X-Debbugs-Cc: roam@debian.org

Hi,

Thanks a lot for all your work on Lintian!

The systemd-service-file-outside-lib checks have, since 2015, flagged
unit files found in the /usr/lib/systemd/system/ directory. It seems
that at some point since then (I'm not exactly sure when), maybe because
of the merged-/usr layout, maybe for other reasons, systemd on Debian
has started actually paying attention to unit files found there.

I noticed this almost accidentally, when I rebuilt (still only locally,
although I do intend to upload it soon) my stunnel4 package with
debhelper 13.4 as found in unstable now: as part of fixing #987989,
debhelper now installs unit files in /usr/lib/systemd/system/ instead of
/lib/systemd/system/; see:

  https://salsa.debian.org/debian/debhelper/-/commit/d70caa69c64b124e3611c967cfab93aef48346d8

So debhelper now produces packages that will place unit files into /usr,
and I have just verified that the systemd in testing does, indeed,
notice these files - I successfully enabled and started a stunnel@foo
service through a stunnel@.service file in /usr/lib/systemd/system/.

Maybe it's time to change the systemd-service-file-outside-lib check, at
least partially? (the "do not place unit files in /etc" part is still
very, very good advice for a package)  What do you think about the
attached patch? Tomorrow I will also send another one that adds
(?:usr/)? to a couple of other regular expression checks (with some more
work for at least one of them) so that these files are properly checked,
too.

G'luck,
Peter

-- System Information:
Debian Release: 11.0
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'testing-debug'), (500, 'stable-security'), (500, 'oldoldstable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.10.0-8-amd64 (SMP w/8 CPU threads)
Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), LANGUAGE not set
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.35.2-2
ii  bzip2                           1.0.8-4
ii  diffstat                        1.64-1
ii  dpkg                            1.20.9
ii  dpkg-dev                        1.20.9
ii  file                            1:5.39-3
ii  gettext                         0.21-4
ii  gpg                             2.2.27-2
ii  intltool-debian                 0.35.0+20060710.5
ii  libapt-pkg-perl                 0.1.40
ii  libarchive-zip-perl             1.68-1
ii  libcapture-tiny-perl            0.48-1
ii  libclass-xsaccessor-perl        1.19-3+b7
ii  libclone-perl                   0.45-1+b1
ii  libconfig-tiny-perl             2.26-1
ii  libcpanel-json-xs-perl          4.25-1+b1
ii  libdata-dpath-perl              0.58-1
ii  libdata-validate-domain-perl    0.10-1.1
ii  libdevel-size-perl              0.83-1+b2
ii  libdpkg-perl                    1.20.9
ii  libemail-address-xs-perl        1.04-1+b3
ii  libfile-basedir-perl            0.08-1
ii  libfile-find-rule-perl          0.34-1
ii  libfont-ttf-perl                1.06-1.1
ii  libhtml-html5-entities-perl     0.004-1.1
ii  libipc-run3-perl                0.048-2
ii  libjson-maybexs-perl            1.004003-1
ii  liblist-compare-perl            0.55-1
ii  liblist-moreutils-perl          0.430-2
ii  liblist-utilsby-perl            0.11-1
ii  libmoo-perl                     2.004004-1
ii  libmoox-aliases-perl            0.001006-1.1
ii  libnamespace-clean-perl         0.27-1
ii  libpath-tiny-perl               0.118-1
ii  libperlio-gzip-perl             0.19-1+b7
ii  libproc-processtable-perl       0.59-2+b1
ii  libsereal-decoder-perl          4.018+ds-1+b1
ii  libsereal-encoder-perl          4.018+ds-1+b1
ii  libtext-glob-perl               0.11-1
ii  libtext-levenshteinxs-perl      0.03-4+b8
ii  libtext-markdown-discount-perl  0.12-1+b1
ii  libtext-xslate-perl             3.5.8-1+b1
ii  libtime-duration-perl           1.21-1
ii  libtime-moment-perl             0.44-1+b3
ii  libtimedate-perl                2.3300-2
ii  libtry-tiny-perl                0.30-1
ii  libtype-tiny-perl               1.012002-1
ii  libunicode-utf8-perl            0.62-1+b2
ii  liburi-perl                     5.08-1
ii  libxml-libxml-perl              2.0134+dfsg-2+b1
ii  libyaml-libyaml-perl            0.82+repack-1+b1
ii  lzip                            1.22-3
ii  lzop                            1.04-2
ii  man-db                          2.9.4-2
ii  patchutils                      0.4.2-1
ii  perl [libdigest-sha-perl]       5.32.1-4
ii  t1utils                         1.41-4
ii  unzip                           6.0-26
ii  xz-utils                        5.2.5-2

lintian recommends no packages.

Versions of packages lintian suggests:
ii  binutils-multiarch     2.35.2-2
ii  libtext-template-perl  1.59-1

-- no debconf information
From 85cb59f7bb09aaf97b0ea88f9ecd5c30cd453752 Mon Sep 17 00:00:00 2001
From: Peter Pentchev <roam@ringlet.net>
Date: Thu, 19 Aug 2021 00:41:23 +0300
Subject: [PATCH] Allow files in /usr/lib/systemd/system/.

---
 lib/Lintian/Check/Systemd.pm                       | 3 ---
 t/recipes/checks/systemd/systemd-general/eval/tags | 1 -
 tags/s/systemd-service-file-outside-lib.tag        | 5 ++---
 3 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/lib/Lintian/Check/Systemd.pm b/lib/Lintian/Check/Systemd.pm
index 6f5ba7c3f..74a5c7eb6 100644
--- a/lib/Lintian/Check/Systemd.pm
+++ b/lib/Lintian/Check/Systemd.pm
@@ -291,9 +291,6 @@ sub check_systemd_service_file {
     $self->hint('systemd-service-file-outside-lib', $file)
       if $file =~ m{^etc/systemd/system/};
 
-    $self->hint('systemd-service-file-outside-lib', $file)
-      if $file =~ m{^usr/lib/systemd/system/};
-
     unless ($file->is_open_ok
         || ($file->is_symlink && $file->link eq '/dev/null')) {
 
diff --git a/t/recipes/checks/systemd/systemd-general/eval/tags b/t/recipes/checks/systemd/systemd-general/eval/tags
index b09465675..c5aaa1ae5 100644
--- a/t/recipes/checks/systemd/systemd-general/eval/tags
+++ b/t/recipes/checks/systemd/systemd-general/eval/tags
@@ -4,7 +4,6 @@ systemd-general (binary): systemd-service-file-refers-to-obsolete-target usr/lib
 systemd-general (binary): systemd-service-file-refers-to-obsolete-target etc/systemd/system/systemd-general.test.service syslog.target
 systemd-general (binary): systemd-service-file-refers-to-obsolete-bindto usr/lib/systemd/system/systemd-general.test.service
 systemd-general (binary): systemd-service-file-refers-to-obsolete-bindto etc/systemd/system/systemd-general.test.service
-systemd-general (binary): systemd-service-file-outside-lib usr/lib/systemd/system/systemd-general.test.service
 systemd-general (binary): systemd-service-file-outside-lib etc/systemd/system/systemd-general.test.service
 systemd-general (binary): systemd-service-file-outside-lib etc/systemd/system/fifo-pipe-as-init.service
 systemd-general (binary): systemd-service-file-missing-hardening-features usr/lib/systemd/system/systemd-general.test.service
diff --git a/tags/s/systemd-service-file-outside-lib.tag b/tags/s/systemd-service-file-outside-lib.tag
index 222bbf319..cffa68293 100644
--- a/tags/s/systemd-service-file-outside-lib.tag
+++ b/tags/s/systemd-service-file-outside-lib.tag
@@ -4,9 +4,8 @@ Check: systemd
 Explanation: The package ships a systemd service file outside
  <code>/lib/systemd/system/</code>
  .
- Systemd in Debian searches for unit files in <code>/lib/systemd/system/</code>
- and <code>/etc/systemd/system</code>. Notably, it does *not* look
- in <code>/usr/lib/systemd/system/</code> for service files.
+ Systemd in Debian searches for unit files in <code>/lib/systemd/system/</code>,
+ <code>/usr/lib/systemd/system/</code>, and <code>/etc/systemd/system</code>.
  .
  System administrators should have the possibility to overwrite a
  service file (or parts of it, in newer systemd versions) by placing a
-- 
2.32.0

Attachment: signature.asc
Description: PGP signature


Reply to: