I did some testing just now.

I've updated ntpsec.postrm in git. I dropped the unnecessary LANG=C on
the first check, updated the style of the "then" statement, and most
importantly, moved the deluser inside the "! dpkg -s ntp" block:

        if ! dpkg -s ntp > /dev/null 2>&1; then
                rm -rf /var/lib/ntp/
                rm -rf /var/log/ntpstats/
                if ! LANG=C dpkg -s ntpsec-ntpviz 2> /dev/null | \
                     grep -qE "^Status: (hold|install)"; then
                        deluser --system --quiet ntp || true
                fi
        fi

Here is the equivalent diff for ntp, which I have tested and confirmed:

diff --git a/debian/ntp.postrm b/debian/ntp.postrm
index d959aa5..7ec4b6b 100644
--- a/debian/ntp.postrm
+++ b/debian/ntp.postrm
@@ -25,7 +25,12 @@ installinit_error() {
 #DEBHELPER#

 if [ "$1" = "purge" ]; then
-       deluser --system --quiet ntp || true
-       rm -rf /var/lib/ntp/
-       rm -rf /var/log/ntpstats/
+       if ! dpkg -s ntpsec > /dev/null 2>&1; then
+               rm -rf /var/lib/ntp/
+               rm -rf /var/log/ntpstats/
+               if ! LANG=C dpkg -s ntpsec-ntpviz 2> /dev/null | \
+                    grep -qE "^Status: (hold|install)"; then
+                       deluser --system --quiet ntp || true
+               fi
+       fi
 fi

If this coordination is acceptable, I believe it solves the various
interactions. I'm happy to test more scenarios if anyone thinks I missed
something.

If this coordination is not acceptable, I'm open to alternative suggestions.

-- 
Richard

Reply via email to