Package: init-system-helpers Version: 1.57 Severity: normal File: /usr/bin/deb-systemd-helper Tags: patch
Dear Maintainer,
dh_installsystemduser/13.1 adds the following snippets to postrm scripts:
--8<---------------------------------------------------------------------->8--
# Automatically added by dh_installsystemduser/13.1
if [ "$1" = "remove" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ] ; then
deb-systemd-helper --user mask 'NAME.service' >/dev/null || true
fi
fi
if [ "$1" = "purge" ]; then
if [ -x "/usr/bin/deb-systemd-helper" ] ; then
deb-systemd-helper --user purge 'NAME.service' >/dev/null || true
deb-systemd-helper --user unmask 'NAME.service' >/dev/null || true
fi
fi
# End automatically added section
--8<---------------------------------------------------------------------->8--
So `postrm remove` creates a symlink ‘/etc/systemd/user/NAME.service →
/dev/null’
plus an empty file
‘/var/lib/systemd/deb-systemd-user-helper-masked/NAME.service’.
`postrm purge` removes these but not the parents directories, hence causes
`piuparts -d sid --no-upgrade-test` to fail with
ERROR: FAIL: Package purging left files on system:
/etc/systemd/user/ not owned
/var/lib/systemd/deb-systemd-user-helper-masked/ not owned
The attached patch fixes this. I mirrored what was done for /etc/systemd/system
resp. /var/lib/systemd/deb-systemd-helper-masked, namely claiming ownership for
/etc/systemd/user and removing /var/lib/systemd/deb-systemd-user-helper-masked
if empty.
-- System Information:
Debian Release: bullseye/sid
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Kernel: Linux 5.7.0-1-amd64 (SMP w/8 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)
Versions of packages init-system-helpers depends on:
ii perl-base 5.30.3-4
init-system-helpers recommends no packages.
init-system-helpers suggests no packages.
Versions of packages init-system-helpers is related to:
ii insserv 1.21.0-1
-- no debconf information
--
Guilhem.
From 1a380bde29ef719380f4b8011f0dba20df2fd142 Mon Sep 17 00:00:00 2001 From: Guilhem Moulin <[email protected]> Date: Thu, 2 Jul 2020 20:26:13 +0200 Subject: Ensure dh_installsystemduser(1)-added snippets pass piuparts Claim ownership of /etc/systemd/user (like /etc/systemd/system) and make `deb-systemd-helper --user unmask` remove /var/lib/systemd/deb-systemd-user-helper-masked if empty (like `deb-systemd-helper unmask` does for /var/lib/systemd/deb-systemd-helper-masked). This fixes `piuparts -d sid --no-upgrade-test` failing with ERROR: FAIL: Package purging left files on system: /etc/systemd/user/ not owned /var/lib/systemd/deb-systemd-user-helper-masked/ not owned For packages shipping user units installed with dh_installsystemduser(1). Closes: #-1 --- debian/init-system-helpers.dirs | 1 + script/deb-systemd-helper | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/debian/init-system-helpers.dirs b/debian/init-system-helpers.dirs index ecc30d6..4f65e8a 100644 --- a/debian/init-system-helpers.dirs +++ b/debian/init-system-helpers.dirs @@ -7,4 +7,5 @@ /etc/rc6.d /etc/rcS.d /etc/systemd/system +/etc/systemd/user /var/lib/systemd diff --git a/script/deb-systemd-helper b/script/deb-systemd-helper index 2400352..0b4d929 100755 --- a/script/deb-systemd-helper +++ b/script/deb-systemd-helper @@ -603,7 +603,8 @@ for my $scriptname (@ARGV) { unmask_service($scriptname, $service_path); # Clean up the state dir if it’s empty, or at least clean up all empty # subdirectories. Necessary to cleanly pass a piuparts run. - rmdir_if_empty('/var/lib/systemd/deb-systemd-helper-masked'); + rmdir_if_empty(SYSTEM_INSTANCE_MASKED_STATE_DIR); + rmdir_if_empty(USER_INSTANCE_MASKED_STATE_DIR); } } -- 2.27.0
signature.asc
Description: PGP signature

