Bug#1035847: x2gobroker-* packages fail to purge without adduser
Package: x2gobroker
Version: 0.0.4.3-2.1
Severity: serious
User: josch@debian.org
Usertags: adduserpurge
Control: tag -1 + patch
X-Debbugs-CC: josch@debian.org
Hi,
the packages passwd and adduser are not part of the Essential:yes set.
According to policy §7.2 maintainer scripts cannot assume them being installed
when purging a package. If one tries to remove this package without adduser
(which depends on passwd) installed, one gets:
--%<-------------------------------------------------------------------------
==> x2gobroker-agent.log <==
Purging configuration files for x2gobroker-agent (0.0.4.3-2.1) ...
/var/lib/dpkg/info/x2gobroker-agent.postrm: 35: deluser: not found
dpkg: error processing package x2gobroker-agent (--purge):
installed x2gobroker-agent package post-removal script subprocess returned error exit status 127
Errors were encountered while processing:
x2gobroker-agent
==> x2gobroker-authservice.log <==
Purging configuration files for x2gobroker-authservice (0.0.4.3-2.1) ...
/var/lib/dpkg/info/x2gobroker-authservice.postrm: 31: deluser: not found
dpkg: error processing package x2gobroker-authservice (--purge):
installed x2gobroker-authservice package post-removal script subprocess returned error exit status 127
Errors were encountered while processing:
x2gobroker-authservice
==> x2gobroker-daemon.log <==
Purging configuration files for x2gobroker-daemon (0.0.4.3-2.1) ...
/var/lib/dpkg/info/x2gobroker-daemon.postrm: 31: deluser: not found
dpkg: error processing package x2gobroker-daemon (--purge):
installed x2gobroker-daemon package post-removal script subprocess returned error exit status 127
Errors were encountered while processing:
x2gobroker-daemon
==> x2gobroker-loadchecker.log <==
Purging configuration files for x2gobroker-loadchecker (0.0.4.3-2.1) ...
/var/lib/dpkg/info/x2gobroker-loadchecker.postrm: 31: deluser: not found
dpkg: error processing package x2gobroker-loadchecker (--purge):
installed x2gobroker-loadchecker package post-removal script subprocess returned error exit status 127
Errors were encountered while processing:
x2gobroker-loadchecker
==> x2gobroker-ssh.log <==
Purging configuration files for x2gobroker-ssh (0.0.4.3-2.1) ...
/var/lib/dpkg/info/x2gobroker-ssh.postrm: 30: deluser: not found
dpkg: error processing package x2gobroker-ssh (--purge):
installed x2gobroker-ssh package post-removal script subprocess returned error exit status 127
Errors were encountered while processing:
x2gobroker-ssh
==> x2gobroker-wsgi.log <==
Purging configuration files for x2gobroker-wsgi (0.0.4.3-2.1) ...
/var/lib/dpkg/info/x2gobroker-wsgi.postrm: 47: deluser: not found
dpkg: error processing package x2gobroker-wsgi (--purge):
installed x2gobroker-wsgi package post-removal script subprocess returned error exit status 127
Errors were encountered while processing:
x2gobroker-wsgi
-->%-------------------------------------------------------------------------
There is ongoing discussion how to handle system users on package
removal, see https://bugs.debian.org/621833
For a discussion about use of adduser during purge, see #1035654.
To work around this problem, at least 125 source packages [codesearch] simply
ignore failures of calling the passwd or adduser tools during purge. The
following patch should fix this package by doing the same:
--%<-------------------------------------------------------------------------
diff -Nru x2gobroker-0.0.4.3/debian/x2gobroker-agent.postrm x2gobroker-0.0.4.3/debian/x2gobroker-agent.postrm
--- x2gobroker-0.0.4.3/debian/x2gobroker-agent.postrm 2019-03-31 16:49:49.000000000 +0200
+++ x2gobroker-0.0.4.3/debian/x2gobroker-agent.postrm 2023-05-10 08:01:29.000000000 +0200
@@ -32,9 +32,9 @@
if [ ! -d /usr/share/doc/x2gobroker-daemon ] && [ ! -d /usr/share/doc/x2gobroker-authservice ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ] && [ ! -d /usr/share/doc/x2gobroker-loadchecker ]; then
# remove user/group x2gobroker from system (if not in use by x2gobroker-daemon, x2gobroker-authservice, x2gobroker-wsgi, x2gobroker-loadchecker)
- getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
+ getent passwd x2gobroker 1>/dev/null && deluser x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
rm -Rf /var/lib/x2gobroker
fi
@@ -52,4 +52,4 @@
#DEBHELPER#
-exit 0
\ No newline at end of file
+exit 0
diff -Nru x2gobroker-0.0.4.3/debian/x2gobroker-authservice.postrm x2gobroker-0.0.4.3/debian/x2gobroker-authservice.postrm
--- x2gobroker-0.0.4.3/debian/x2gobroker-authservice.postrm 2019-03-31 16:49:49.000000000 +0200
+++ x2gobroker-0.0.4.3/debian/x2gobroker-authservice.postrm 2023-05-10 08:01:29.000000000 +0200
@@ -28,9 +28,9 @@
if [ ! -d /usr/share/doc/x2gobroker-daemon ] && [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ] && [ ! -d /usr/share/doc/x2gobroker-loadchecker ]; then
# remove user/group x2gobroker from system (only if not in use by x2gobroker-daemon, x2gobroker-agent, x2gobroker-wsgi, x2gobroker-loadchecker)
- getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
+ getent passwd x2gobroker 1>/dev/null && deluser x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
rm -Rf /var/lib/x2gobroker
fi
diff -Nru x2gobroker-0.0.4.3/debian/x2gobroker-daemon.postrm x2gobroker-0.0.4.3/debian/x2gobroker-daemon.postrm
--- x2gobroker-0.0.4.3/debian/x2gobroker-daemon.postrm 2019-03-31 16:49:49.000000000 +0200
+++ x2gobroker-0.0.4.3/debian/x2gobroker-daemon.postrm 2023-05-10 08:01:29.000000000 +0200
@@ -28,9 +28,9 @@
if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-authservice ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ] && [ ! -d /usr/share/doc/x2gobroker-loadchecker ]; then
# remove user/group x2gobroker from system (only if not in use by x2gobroker-agent, x2gobroker-authservice, x2gobroker-wsgi, x2gobroker-loadchecker)
- getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
+ getent passwd x2gobroker 1>/dev/null && deluser x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
rm -Rf /var/lib/x2gobroker
fi
diff -Nru x2gobroker-0.0.4.3/debian/x2gobroker-loadchecker.postrm x2gobroker-0.0.4.3/debian/x2gobroker-loadchecker.postrm
--- x2gobroker-0.0.4.3/debian/x2gobroker-loadchecker.postrm 2019-03-31 16:49:49.000000000 +0200
+++ x2gobroker-0.0.4.3/debian/x2gobroker-loadchecker.postrm 2023-05-10 08:01:29.000000000 +0200
@@ -28,9 +28,9 @@
if [ ! -d /usr/share/doc/x2gobroker-daemon ] && [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ] && [ ! -d /usr/share/doc/x2gobroker-authservice ]; then
# remove user/group x2gobroker from system (only if not in use by x2gobroker-daemon, x2gobroker-agent, x2gobroker-wsgi, x2gobroker-authservice)
- getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
+ getent passwd x2gobroker 1>/dev/null && deluser x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
rm -Rf /var/lib/x2gobroker
fi
diff -Nru x2gobroker-0.0.4.3/debian/x2gobroker-ssh.postrm x2gobroker-0.0.4.3/debian/x2gobroker-ssh.postrm
--- x2gobroker-0.0.4.3/debian/x2gobroker-ssh.postrm 2019-03-31 16:49:49.000000000 +0200
+++ x2gobroker-0.0.4.3/debian/x2gobroker-ssh.postrm 2023-05-10 08:01:29.000000000 +0200
@@ -27,9 +27,9 @@
if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-authservice ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ] && [ ! -d /usr/share/doc/x2gobroker-daemon ]; then
# remove user/group x2gobroker from system (only if not in use by x2gobroker-agent, x2gobroker-authservice, x2gobroker-wsgi)
- getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
+ getent passwd x2gobroker 1>/dev/null && deluser x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
rm -Rf /var/lib/x2gobroker
fi
diff -Nru x2gobroker-0.0.4.3/debian/x2gobroker-wsgi.postrm x2gobroker-0.0.4.3/debian/x2gobroker-wsgi.postrm
--- x2gobroker-0.0.4.3/debian/x2gobroker-wsgi.postrm 2019-03-31 16:49:49.000000000 +0200
+++ x2gobroker-0.0.4.3/debian/x2gobroker-wsgi.postrm 2023-05-10 08:01:29.000000000 +0200
@@ -44,9 +44,9 @@
if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-authservice ] && [ ! -d /usr/share/doc/x2gobroker-daemon ] && [ ! -d /usr/share/doc/x2gobroker-loadchecker ]; then
# remove user/group x2gobroker from system (only if not in use by x2gobroker-agent, x2gobroker-authservice, x2gobroker-daemon, x2gobroker-loadchecker)
- getent passwd x2gobroker 1>/dev/null && deluser x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
- getent group x2gobroker 1>/dev/null && delgroup x2gobroker
+ getent passwd x2gobroker 1>/dev/null && deluser x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
+ getent group x2gobroker 1>/dev/null && delgroup x2gobroker || true
rm -Rf /var/lib/x2gobroker
fi
-->%-------------------------------------------------------------------------
If you prefer I can fix this via an NMU.
Thanks!
cheers, josch
[codesearch] https://codesearch.debian.net/search?q=del%28user%7Cgroup%29.*%5C%7C%5C%7C+true+path%3Adebian%2F.*%5C.%28pre%7Cpost%29rm%24&literal=0
Reply to: