[Pkg-zsh-devel] Bug#1023317: zsh: re-adds /bin/zsh to /etc/shells on upgrade

Helmut Grohne helmut at subdivi.de
Wed Nov 2 09:46:56 GMT 2022


Package: zsh,zsh-static
Version: 5.9-1
Tags: patch
Severity: serious
Justification: Debian policy 10.7.3

When upgrading or reinstalling zsh or zsh-static, it adds /bin/zsh or
/bin/zsh-static respectively to /etc/shells even if one locally removed
it there. Such behaviour violates Debian policy section 10.7.3. I
propose managing the entry declaratively using dpkg triggers and am
attaching a patch for your convenience.

Helmut
-------------- next part --------------
diff --minimal -Nru zsh-5.9/debian/changelog zsh-5.9/debian/changelog
--- zsh-5.9/debian/changelog	2022-05-15 01:20:26.000000000 +0200
+++ zsh-5.9/debian/changelog	2022-11-02 10:35:53.000000000 +0100
@@ -1,3 +1,10 @@
+zsh (5.9-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Manage /etc/shells using dpkg triggers. (Closes: #-1)
+
+ -- Helmut Grohne <helmut at subdivi.de>  Wed, 02 Nov 2022 10:35:53 +0100
+
 zsh (5.9-1) unstable; urgency=low
 
   * [73d31738,d4d20348,2ae4a398] Import new upstream release 5.9.
diff --minimal -Nru zsh-5.9/debian/control zsh-5.9/debian/control
--- zsh-5.9/debian/control	2022-05-15 01:17:30.000000000 +0200
+++ zsh-5.9/debian/control	2022-11-02 10:35:51.000000000 +0100
@@ -56,7 +56,8 @@
 Architecture: any
 Depends: zsh-common (= ${source:Version}),
          ${misc:Depends},
-         ${shlibs:Depends}
+         ${shlibs:Depends},
+         debianutils (>= 5.3-1~)
 Pre-Depends: ${misc:Pre-Depends}
 Recommends: ${shlibs:Recommends}
 Suggests: zsh-doc
@@ -88,7 +89,8 @@
 
 Package: zsh-static
 Architecture: any
-Depends: ${misc:Depends}
+Depends: ${misc:Depends},
+         debianutils (>= 5.3-1~)
 Recommends: zsh-common
 Suggests: zsh-doc
 Built-Using: ${Built-Using}
diff --minimal -Nru zsh-5.9/debian/rules zsh-5.9/debian/rules
--- zsh-5.9/debian/rules	2022-02-25 11:41:52.000000000 +0100
+++ zsh-5.9/debian/rules	2022-11-02 10:35:22.000000000 +0100
@@ -158,6 +158,8 @@
 	  xargs sed -e 's@\.\./config\.h at config.h@;s@#\(\s*\)include "\([^"]\+\)"@#\1include <zsh/\2>@' -i
 
 	cd debian/zsh-dev/usr/share/aclocal; mv aczshoot.m4 zshoot.m4
+	install -D -m644 debian/zsh.shells debian/zsh/usr/share/debianutils/shells.d/zsh
+	install -D -m644 debian/zsh-static.shells debian/zsh-static/usr/share/debianutils/shells.d/zsh-static
 
 override_dh_gencontrol-arch:
 	dh_gencontrol -a -- -VBuilt-Using="$(BUILT_USING)"
diff --minimal -Nru zsh-5.9/debian/zsh-static.postinst zsh-5.9/debian/zsh-static.postinst
--- zsh-5.9/debian/zsh-static.postinst	2022-02-12 20:54:36.000000000 +0100
+++ zsh-5.9/debian/zsh-static.postinst	2022-11-02 10:33:49.000000000 +0100
@@ -4,9 +4,6 @@
 
 case "$1" in
     (configure)
-#    if test -z "$2"; then
-	    add-shell /bin/zsh-static
-#    fi
     ;;
 
     abort-upgrade|abort-remove|abort-deconfigure)
diff --minimal -Nru zsh-5.9/debian/zsh-static.postrm zsh-5.9/debian/zsh-static.postrm
--- zsh-5.9/debian/zsh-static.postrm	2022-02-12 20:54:36.000000000 +0100
+++ zsh-5.9/debian/zsh-static.postrm	1970-01-01 01:00:00.000000000 +0100
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-set -e
-
-case "$1" in
-	(remove)
-	remove-shell /bin/zsh-static
-	;;
-esac
-
-#DEBHELPER#
diff --minimal -Nru zsh-5.9/debian/zsh-static.shells zsh-5.9/debian/zsh-static.shells
--- zsh-5.9/debian/zsh-static.shells	1970-01-01 01:00:00.000000000 +0100
+++ zsh-5.9/debian/zsh-static.shells	2022-11-02 10:33:46.000000000 +0100
@@ -0,0 +1 @@
+/bin/zsh-static
diff --minimal -Nru zsh-5.9/debian/zsh.postinst zsh-5.9/debian/zsh.postinst
--- zsh-5.9/debian/zsh.postinst	2022-02-12 20:54:36.000000000 +0100
+++ zsh-5.9/debian/zsh.postinst	2022-11-02 10:34:19.000000000 +0100
@@ -12,9 +12,6 @@
 
 case "$1" in
     (configure)
-        add-shell /bin/zsh
-        add-shell /usr/bin/zsh
-
 	# New hardcoded symlinks which unfortunately can't be shipped inside
 	# the package itself since some people want to merge /bin and /usr/bin
 	# against FHS and all Unix tradition.
diff --minimal -Nru zsh-5.9/debian/zsh.postrm zsh-5.9/debian/zsh.postrm
--- zsh-5.9/debian/zsh.postrm	2022-02-12 20:54:36.000000000 +0100
+++ zsh-5.9/debian/zsh.postrm	2022-11-02 10:34:27.000000000 +0100
@@ -4,9 +4,6 @@
 
 case "$1" in
 	(remove)
-	remove-shell /bin/zsh
-	remove-shell /usr/bin/zsh
-
 	# Remove hardcoded symlink again
 	if [ -L /usr/bin/zsh ]; then
 	  rm -f /usr/bin/zsh
diff --minimal -Nru zsh-5.9/debian/zsh.shells zsh-5.9/debian/zsh.shells
--- zsh-5.9/debian/zsh.shells	1970-01-01 01:00:00.000000000 +0100
+++ zsh-5.9/debian/zsh.shells	2022-11-02 10:34:14.000000000 +0100
@@ -0,0 +1,2 @@
+/bin/zsh
+/usr/bin/zsh


More information about the Pkg-zsh-devel mailing list