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

Attachment: signature.asc
Description: PGP signature

Reply via email to