Package: lintian Version: 2.104.0 Severity: normal Tags: patch X-Debbugs-Cc: r...@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 <r...@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
signature.asc
Description: PGP signature