Source: shadow Version: 1:4.8.1-1 Tags: patch The maintainer scripts have accumulated a bit of obsolete code over time. This code becomes problematic as we are in the process of changing the installation bootstrap. Less code means less things we touch. Therefore, I ask for cleaning up this code. In detail:
* The code for dealing with logoutd can be removed, because it was already absent in buster (probably longer) and we don't support skip upgrades. * The creation of /etc/subuid and /etc/subgid is duplicated inside login.postinst. Initialize only once. * login.preinst and passwd.preinst handle upgrades from pre 1:4.0.3 and can be deleted. Please consider applying the attached patch. Helmut
diff --minimal -Nru shadow-4.8.1/debian/changelog shadow-4.8.1/debian/changelog --- shadow-4.8.1/debian/changelog 2020-02-07 15:54:14.000000000 +0100 +++ shadow-4.8.1/debian/changelog 2021-06-11 07:55:31.000000000 +0200 @@ -1,3 +1,13 @@ +shadow (1:4.8.1-1.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Remove obsolete upgrade code from maintainer scripts. (Closes: #-1) + + logoutd is gone since at least buster. + + Delete duplicate subuid/subgid creation. + + Delete preinsts upgrading from 1:4.0.3. + + -- Helmut Grohne <hel...@subdivi.de> Fri, 11 Jun 2021 07:55:31 +0200 + shadow (1:4.8.1-1) unstable; urgency=medium * debian/default/useradd: Fix typo DHSELL -> DSHELL (Closes: #897028) diff --minimal -Nru shadow-4.8.1/debian/login.postinst shadow-4.8.1/debian/login.postinst --- shadow-4.8.1/debian/login.postinst 2020-02-07 15:54:14.000000000 +0100 +++ shadow-4.8.1/debian/login.postinst 2021-06-11 07:53:36.000000000 +0200 @@ -2,18 +2,5 @@ set -e -if test "$1" = configure -then - if test -f /etc/init.d/logoutd - then - if test "$(md5sum /etc/init.d/logoutd)" = "9080f92783dd53f6f2108e698c06bd53 /etc/init.d/logoutd" - then - echo "removing logoutd cruft" - rm /etc/init.d/logoutd - update-rc.d logoutd remove - fi - fi -fi -rm -f /etc/pam.d/login.pre-upgrade 2>/dev/null if [ "$1" = "configure" ]; then @@ -38,19 +26,6 @@ fi fi - # Create subuid/subgid if missing - if [ ! -e /etc/subuid ]; then - touch /etc/subuid - chown root:root /etc/subuid - chmod 644 /etc/subuid - fi - - if [ ! -e /etc/subgid ]; then - touch /etc/subgid - chown root:root /etc/subgid - chmod 644 /etc/subgid - fi - #DEBHELPER# exit 0 diff --minimal -Nru shadow-4.8.1/debian/login.preinst shadow-4.8.1/debian/login.preinst --- shadow-4.8.1/debian/login.preinst 2020-02-07 15:54:14.000000000 +0100 +++ shadow-4.8.1/debian/login.preinst 1970-01-01 01:00:00.000000000 +0100 @@ -1,52 +0,0 @@ -#! /bin/sh - -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * <new-preinst> `install' -# * <new-preinst> `install' <old-version> -# * <new-preinst> `upgrade' <old-version> -# * <old-preinst> `abort-upgrade' <new-version> -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - -remove_md5() { - if md5sum $1 2>/dev/null |grep -q $2; then - cp $1 $1.pre-upgrade - sed -e '/^[^#][ \t]*assword[ \t]*required[ \t]*pam_unix.so/ s/ md5$//' $1 >$1.post-upgrade \ - && mv $1.post-upgrade $1 - fi - } - - -case "$1" in - install|upgrade) - if [ "x$2" != "x" ] ; then - if dpkg --compare-versions $2 lt 1:4.0.3 ; then - remove_md5 /etc/pam.d/login 5e61c3334e25625fe1fa4d79cf9123ff - fi - fi - - ;; - - abort-upgrade) - ;; - - *) - echo "preinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - - diff --minimal -Nru shadow-4.8.1/debian/passwd.postinst shadow-4.8.1/debian/passwd.postinst --- shadow-4.8.1/debian/passwd.postinst 2020-02-07 15:54:14.000000000 +0100 +++ shadow-4.8.1/debian/passwd.postinst 2021-06-11 07:54:40.000000000 +0200 @@ -4,19 +4,5 @@ case "$1" in configure) - # Fix permissions on various log files from old versions of the debian - # installer, some unrelated to passwd but we decided to put the fix - # here since there was no better place. This can safely be removed - # after etch is released. - if dpkg --compare-versions "$2" lt "1:4.0.14-9"; then - for log in /var/log/base-config* \ - $(find /var/log/debian-installer/ /var/log/installer/ -type f 2>/dev/null ); do - if [ -e "$log" ]; then - chmod 600 "$log" - fi - done - fi - - rm -f /etc/pam.d/passwd.pre-upgrade 2>/dev/null if ! getent group shadow | grep -q '^shadow:[^:]*:42' then diff --minimal -Nru shadow-4.8.1/debian/passwd.preinst shadow-4.8.1/debian/passwd.preinst --- shadow-4.8.1/debian/passwd.preinst 2020-02-07 15:54:14.000000000 +0100 +++ shadow-4.8.1/debian/passwd.preinst 1970-01-01 01:00:00.000000000 +0100 @@ -1,51 +0,0 @@ -#! /bin/sh - -# -# see: dh_installdeb(1) - -set -e - -# summary of how this script can be called: -# * <new-preinst> `install' -# * <new-preinst> `install' <old-version> -# * <new-preinst> `upgrade' <old-version> -# * <old-preinst> `abort-upgrade' <new-version> -# -# for details, see http://www.debian.org/doc/debian-policy/ or -# the debian-policy package - -remove_md5() { - if md5sum $1 2>/dev/null |grep -q $2; then - cp $1 $1.pre-upgrade - sed -e '/^[^#]*[ \t]*password[ \t]*required[ \t]*pam_unix.so/ s/ md5$//' $1 >$1.post-upgrade \ - && mv $1.post-upgrade $1 - fi - } - - -case "$1" in - install|upgrade) - if [ "x$2" != "x" ] ; then - if dpkg --compare-versions $2 lt 1:4.0.3 ; then - remove_md5 /etc/pam.d/passwd 23a5d1465bbc1e39ca6e0c32f22a75c9 - fi - fi - ;; - - abort-upgrade) - ;; - - *) - echo "preinst called with unknown argument \`$1'" >&2 - exit 1 - ;; -esac - -# dh_installdeb will replace this with shell code automatically -# generated by other debhelper scripts. - -#DEBHELPER# - -exit 0 - -