Source: pam
Version: 1.5.2-9.1
Severity: serious
Tags: patch pending sid trixie
Justification: library ABI skew on upgrade
User: debian-...@lists.debian.org
Usertags: time-t

NOTICE: these changes must not be uploaded to unstable yet!

Dear maintainer,

As part of the 64-bit time_t transition required to support 32-bit
architectures in 2038 and beyond
(https://wiki.debian.org/ReleaseGoals/64bit-time), we have identified
pam as a source package shipping runtime libraries whose ABI
either is affected by the change in size of time_t, or could not be
analyzed via abi-compliance-checker (and therefore to be on the safe
side we assume is affected).

To ensure that inconsistent combinations of libraries with their
reverse-dependencies are never installed together, it is necessary to
have a library transition, which is most easily done by renaming the
runtime library package.

Since turning on 64-bit time_t is being handled centrally through a change
to the default dpkg-buildflags (https://bugs.debian.org/1037136), it is
important that libraries affected by this ABI change all be uploaded close
together in time.  Therefore I have prepared a 0-day NMU for pam
which will initially be uploaded to experimental if possible, then to
unstable after packages have cleared binary NEW.

Please find the patch for this NMU attached.

If you have any concerns about this patch, please reach out ASAP.  Although
this package will be uploaded to experimental immediately, there will be a
period of several days before we begin uploads to unstable; so if information
becomes available that your package should not be included in the transition,
there is time for us to amend the planned uploads.



-- System Information:
Debian Release: trixie/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.2.0-39-generic (SMP w/32 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru pam-1.5.2/debian/changelog pam-1.5.2/debian/changelog
--- pam-1.5.2/debian/changelog  2023-10-24 14:38:53.000000000 -0300
+++ pam-1.5.2/debian/changelog  2024-02-05 14:00:52.000000000 -0300
@@ -1,3 +1,10 @@
+pam (1.5.2-9.2) experimental; urgency=medium
+
+  * Non-maintainer upload.
+  * Rename libraries for 64-bit time_t transition.
+
+ -- Lucas Kanashiro <kanash...@debian.org>  Mon, 05 Feb 2024 14:00:52 -0300
+
 pam (1.5.2-9.1) unstable; urgency=medium
 
   * Non-maintainer upload acked by Sam Hartman.
diff -Nru pam-1.5.2/debian/control pam-1.5.2/debian/control
--- pam-1.5.2/debian/control    2023-10-24 12:19:43.000000000 -0300
+++ pam-1.5.2/debian/control    2024-02-05 14:00:51.000000000 -0300
@@ -12,10 +12,13 @@
 Homepage: http://www.linux-pam.org/
 Rules-Requires-Root: binary-targets
 
-Package: libpam0g
+Package: libpam0t64
+Provides: ${t64:Provides}
+X-Time64-Compat: libpam0g
+Breaks: libpam0g (<< ${source:Version})
 Architecture: any
 Multi-Arch: same
-Replaces: libpam0g-util
+Replaces: libpam0g, libpam0g-util
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Pre-Depends: ${misc:Pre-Depends}
 Suggests: libpam-doc
@@ -69,7 +72,7 @@
 Section: libdevel
 Architecture: any
 Multi-Arch: same
-Depends: ${misc:Depends}, libpam0g (= ${binary:Version}), libc6-dev|libc-dev
+Depends: ${misc:Depends}, libpam0t64 (= ${binary:Version}), libc6-dev|libc-dev
 Provides: libpam-dev
 Description: Development files for PAM
  Contains C header files and development libraries for libpam, the Pluggable
diff -Nru pam-1.5.2/debian/libpam0g.docs pam-1.5.2/debian/libpam0g.docs
--- pam-1.5.2/debian/libpam0g.docs      2023-10-24 12:19:43.000000000 -0300
+++ pam-1.5.2/debian/libpam0g.docs      1969-12-31 21:00:00.000000000 -0300
@@ -1,2 +0,0 @@
-debian/local/Debian-PAM-MiniPolicy
-README
diff -Nru pam-1.5.2/debian/libpam0g.install pam-1.5.2/debian/libpam0g.install
--- pam-1.5.2/debian/libpam0g.install   2023-10-24 12:19:43.000000000 -0300
+++ pam-1.5.2/debian/libpam0g.install   1969-12-31 21:00:00.000000000 -0300
@@ -1 +0,0 @@
-lib/*/lib*.so.*
diff -Nru pam-1.5.2/debian/libpam0g.lintian-overrides 
pam-1.5.2/debian/libpam0g.lintian-overrides
--- pam-1.5.2/debian/libpam0g.lintian-overrides 2023-10-24 12:19:43.000000000 
-0300
+++ pam-1.5.2/debian/libpam0g.lintian-overrides 1969-12-31 21:00:00.000000000 
-0300
@@ -1,11 +0,0 @@
-# obvious multilib package false-positive; also the package name hasn't
-# changed since the glibc transition, go us!
-libpam0g: package-name-doesnt-match-sonames libpam-misc0 libpam0 libpamc0
-# yes, these are deliberately asked in the postinst because the checking
-# for daemons to be restarted needs to be done in the postinst and not 
-# before
-libpam0g: no-debconf-config
-libpam0g: postinst-uses-db-input
-# Yes, we want to use systemctl; if the service is running we do need
-# to restart it. We have already asked the admin.
-libpam0g: maintainer-script-calls-systemctl
diff -Nru pam-1.5.2/debian/libpam0g.postinst pam-1.5.2/debian/libpam0g.postinst
--- pam-1.5.2/debian/libpam0g.postinst  2023-10-24 12:19:43.000000000 -0300
+++ pam-1.5.2/debian/libpam0g.postinst  1969-12-31 21:00:00.000000000 -0300
@@ -1,233 +0,0 @@
-#!/bin/sh
-
-# postinst based heavily on the postinst of libssl0.9.8, courtesy of 
-# Christoph Martin.
-
-. /usr/share/debconf/confmodule
-
-set -e
-
-# element() is a helper function for file-rc:
-element() {
-    local element list IFS
-
-    element="$1"
-
-    [ "$2" = "in" ] && shift
-    list="$2"
-    [ "$list" = "-" ] && return 1
-    [ "$list" = "*" ] && return 0
-
-    IFS=","
-    set -- $list
-    case $element in
-       "$1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$7"|"$8"|"$9")
-           return 0
-    esac
-    return 1
-}
-
-# filerc (runlevel, service) returns /etc/init.d/service, if service is
-# running in $runlevel:
-filerc() {
-    local runlevel basename
-    runlevel=$1
-    basename=$2
-    while read LINE
-    do
-       case $LINE in
-           \#*|"") continue
-       esac
-
-       set -- $LINE
-       SORT_NO="$1"; STOP="$2"; START="$3"; CMD="$4"
-       [ "$CMD" = "/etc/init.d/$basename" ] || continue
-
-       if element "$runlevel" in "$START" || element "S" in "$START"
-       then
-           echo "/etc/init.d/$basename"
-           return 0
-       fi
-    done < /etc/runlevel.conf
-    echo ""
-}
-
-if test -d /run/systemd/system; then
-    is_service_configured() {
-        systemctl is-enabled --quiet $1 || return 1
-    }
-    restart_service() {
-        if systemctl try-restart $1; then
-            :
-        else
-            failed="$failed $1"
-        fi
-    }
-else # not systemd
-    is_service_configured() {
-        service="$1"
-       idl="/etc/init.d/${service}"
-       if [ -n "$idl" ] && [ -x $idl ]; then
-           return 0
-       else
-            return 1
-        fi
-    }
-
-    restart_service() {
-        service="$1"
-       idl="invoke-rc.d ${service}"
-       echo -n "  $service: stopping..." 2>&1
-       $idl stop > /dev/null 2>&1 || true
-       sleep 1
-       echo -n "starting..." 2>&1
-       if $idl start > /dev/null 2>&1; then
-           echo "done." 2>&1
-       else
-           echo "FAILED! ($?)" 2>&1
-           failed="$service $failed"
-       fi
-    }
-fi
-    
-                 installed_services() {
-    check="$@"
-
-    # Only get the ones that are installed, and configured
-    check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk 
'{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) 
{ print package }}')
-
-    # some init scripts don't match the package names
-    check=$(echo $check | \
-       sed -e's/\bapache2-common\b/apache2/g' \
-           -e's/\bat\b/atd/g' \
-           -e's/\bdovecot-common\b/dovecot/g' \
-           -e's/\bdante-server\b/danted/g' \
-           -e's/\bexim4-base\b/exim4/g' \
-           -e's/\bheartbeat-2\b/heartbeat/g' \
-           -e's/\bhylafax-server\b/hylafax/g' \
-           -e's/\bpartimage-server\b/partimaged/g' \
-           -e's/\bpostgresql-common\b/postgresql/g' \
-           -e's/\bsamba\b/smbd samba-ad-dc/g' \
-           -e's/\bsasl2-bin\b/saslauthd/g' \
-    )
-
-    for service in $check; do
-       if is_service_configured $service; then
-               services="$service $services"
-       else
-               echo "WARNING:  $service not configured." >&2
-       fi
-    done
-    echo "$services"
-}
-
-if [ "$1" = "configure" ]
-then
-    if [ ! -z "$2" ]; then
-       if dpkg --compare-versions "$2" lt 1.4.0-2; then
-           db_version 2.0
-
-           echo -n "Checking for services that may need to be restarted..."
-
-           check="apache2-common at bayonne cherokee courier-authdaemon"
-           check="$check cron cups"
-           check="$check dante-server diald dovecot-common exim exim4-base"
-           check="$check fcron fireflier-server freeradius gdm heartbeat"
-           check="$check heartbeat-2 hylafax-server iiimf-server inn2"
-           check="$check kannel linesrv linesrv-mysql lsh-server"
-           check="$check muddleftpd netatalk nuauth partimage-server"
-           check="$check perdition pgpool popa3d"
-           check="$check postgresql-common proftpd pure-ftpd"
-           check="$check pure-ftpd-ldap pure-ftpd-mysql"
-           check="$check pure-ftpd-postgresql racoon samba sasl2-bin"
-           check="$check sfs-server solid-pop3d squid squid3 tac-plus"
-           check="$check vsftpd wu-ftpd wzdftpd xrdp yardradius yaws"
-
-           if [ -z "$(who | awk '$2 ~ /console/ && $NF ~ /:[0-9]/ { print $NF }
-                                  $2 ~ /:[0-9]/ { print $2 }')" ]
-           then
-               check="$check wdm xdm"
-           fi
-
-           echo "Checking init scripts..."
-           services=$(installed_services "$check")
-           if [ -n "$services" ]; then
-               db_input critical libraries/restart-without-asking || true
-               db_go || true
-               db_get libraries/restart-without-asking
-               if [ "$RET" != true ]; then
-                   db_reset libpam0g/restart-services
-                   db_set libpam0g/restart-services "$services"
-                   db_input critical libpam0g/restart-services || true
-                   db_go || true
-                   db_get libpam0g/restart-services
-
-                   if [ "x$RET" != "x" ]
-                   then
-                       services=$RET
-                   else
-                       services=""
-                   fi
-               fi
-               echo
-               if [ "$services" != "" ]; then
-                   echo "Restarting services possibly affected by the upgrade:"
-                   failed=""
-                   rl=$(runlevel | sed 's/.*\ //')
-                   for service in $services; do
-                       idl="invoke-rc.d ${service}"
-
-                       case "$service" in
-                           gdm)
-                               echo -n "  $service: reloading..."
-                               if $idl reload > /dev/null 2>&1; then
-                                   echo "done."
-                               else
-                                   echo "FAILED! ($?)"
-                                   failed="$service $failed"
-                               fi
-                               continue
-                           ;;
-                       esac
-                        restart_service "$service"
-                   done
-                   echo
-                   if [ -n "$failed" ]; then
-                       db_subst libpam0g/restart-failed services "$failed"
-                       db_input critical libpam0g/restart-failed || true
-                       db_go || true
-                   else
-                       echo "Services restarted successfully."
-                   fi
-                   echo
-               fi
-           else
-               echo "Nothing to restart."
-           fi
-
-           if [ -n "$(who | awk '$2 ~ /console/ && $NF ~ /:[0-9]/ { print $NF }
-                                  $2 ~ /:[0-9]/ { print $2 }')" ]
-           then
-               dms=""
-               for service in wdm xdm; do
-                   case "$services" in
-                       *$service*)     ;;
-                       *)      dms="$dms $service"
-                   esac
-               done
-               services=$(installed_services "$dms")
-               if [ -n "$services" ]; then
-                   db_input critical libpam0g/xdm-needs-restart || true
-                   db_go || true
-               fi
-           fi
-
-           # Shut down the frontend, to make sure none of the
-           # restarted services keep a connection open to it
-           db_stop
-       fi # end upgrading and $2 lt 1.4.0-2
-    fi # Upgrading
-fi
-
-#DEBHELPER#
-
diff -Nru pam-1.5.2/debian/libpam0g.symbols pam-1.5.2/debian/libpam0g.symbols
--- pam-1.5.2/debian/libpam0g.symbols   2023-10-24 12:19:43.000000000 -0300
+++ pam-1.5.2/debian/libpam0g.symbols   1969-12-31 21:00:00.000000000 -0300
@@ -1,16 +0,0 @@
-libpam.so.0 libpam0g #MINVER#
- *@LIBPAM_1.0 0.99.7.1
- *@LIBPAM_1.4 1.4.0
- *@LIBPAM_EXTENSION_1.0 0.99.7.1
- *@LIBPAM_EXTENSION_1.1 1.1.0
- *@LIBPAM_EXTENSION_1.1.1 1.1.1
- *@LIBPAM_MODUTIL_1.0 0.99.7.1
- *@LIBPAM_MODUTIL_1.1 0.99.10.0
- *@LIBPAM_MODUTIL_1.1.3 1.1.3
- *@LIBPAM_MODUTIL_1.1.9 1.3.1
- *@LIBPAM_MODUTIL_1.3.2 1.3.2
- *@LIBPAM_MODUTIL_1.4.1 1.4.1
-libpam_misc.so.0 libpam0g #MINVER#
- *@LIBPAM_MISC_1.0 0.99.7.1
-libpamc.so.0 libpam0g #MINVER#
- *@LIBPAMC_1.0 0.99.7.1
diff -Nru pam-1.5.2/debian/libpam0g.templates 
pam-1.5.2/debian/libpam0g.templates
--- pam-1.5.2/debian/libpam0g.templates 2023-10-24 12:19:43.000000000 -0300
+++ pam-1.5.2/debian/libpam0g.templates 1969-12-31 21:00:00.000000000 -0300
@@ -1,38 +0,0 @@
-Template: libpam0g/restart-services
-Type: string
-_Description: Services to restart for PAM library upgrade:
- Most services that use PAM need to be restarted to use modules built for
- this new version of libpam.  Please review the following space-separated
- list of services to be restarted now, and correct it
- if needed.
-
-Template: libpam0g/xdm-needs-restart
-Type: error
-_Description: Display manager must be restarted manually
- The wdm and xdm display managers require a restart for the new version of
- libpam, but there are X login sessions active on your system that would be
- terminated by this restart.  You will therefore need to restart these
- services by hand before further X logins will be possible.
-
-Template: libpam0g/restart-failed
-Type: error
-#flag:translate!:3
-_Description: Failure restarting some services for PAM upgrade
- The following services could not be restarted for the PAM library upgrade:
- .
- ${services}
- .
- You will need to start these manually by running
- '/etc/init.d/<service> start'.
-
-Template: libraries/restart-without-asking
-Type: boolean
-Default: false
-_Description: Restart services during package upgrades without asking?
- There are services installed on your system which need to be restarted
- when certain libraries, such as libpam, libc, and libssl, are upgraded.
- Since these restarts may cause interruptions of service for the system,
- you will normally be prompted on each upgrade for the list of services
- you wish to restart.  You can choose this option to avoid being prompted;
- instead, all necessary restarts will be done for you automatically so you
- can avoid being asked questions on each library upgrade.
diff -Nru pam-1.5.2/debian/libpam0t64.docs pam-1.5.2/debian/libpam0t64.docs
--- pam-1.5.2/debian/libpam0t64.docs    1969-12-31 21:00:00.000000000 -0300
+++ pam-1.5.2/debian/libpam0t64.docs    2023-10-24 12:19:43.000000000 -0300
@@ -0,0 +1,2 @@
+debian/local/Debian-PAM-MiniPolicy
+README
diff -Nru pam-1.5.2/debian/libpam0t64.install 
pam-1.5.2/debian/libpam0t64.install
--- pam-1.5.2/debian/libpam0t64.install 1969-12-31 21:00:00.000000000 -0300
+++ pam-1.5.2/debian/libpam0t64.install 2023-10-24 12:19:43.000000000 -0300
@@ -0,0 +1 @@
+lib/*/lib*.so.*
diff -Nru pam-1.5.2/debian/libpam0t64.lintian-overrides 
pam-1.5.2/debian/libpam0t64.lintian-overrides
--- pam-1.5.2/debian/libpam0t64.lintian-overrides       1969-12-31 
21:00:00.000000000 -0300
+++ pam-1.5.2/debian/libpam0t64.lintian-overrides       2024-02-05 
14:00:51.000000000 -0300
@@ -0,0 +1,12 @@
+# obvious multilib package false-positive; also the package name hasn't
+# changed since the glibc transition, go us!
+libpam0t64: package-name-doesnt-match-sonames libpam-misc0 libpam0 libpamc0
+# yes, these are deliberately asked in the postinst because the checking
+# for daemons to be restarted needs to be done in the postinst and not 
+# before
+libpam0t64: no-debconf-config
+libpam0t64: postinst-uses-db-input
+# Yes, we want to use systemctl; if the service is running we do need
+# to restart it. We have already asked the admin.
+libpam0t64: maintainer-script-calls-systemctl
+libpam0t64: package-name-doesnt-match-sonames libpam0g
diff -Nru pam-1.5.2/debian/libpam0t64.postinst 
pam-1.5.2/debian/libpam0t64.postinst
--- pam-1.5.2/debian/libpam0t64.postinst        1969-12-31 21:00:00.000000000 
-0300
+++ pam-1.5.2/debian/libpam0t64.postinst        2023-10-24 12:19:43.000000000 
-0300
@@ -0,0 +1,233 @@
+#!/bin/sh
+
+# postinst based heavily on the postinst of libssl0.9.8, courtesy of 
+# Christoph Martin.
+
+. /usr/share/debconf/confmodule
+
+set -e
+
+# element() is a helper function for file-rc:
+element() {
+    local element list IFS
+
+    element="$1"
+
+    [ "$2" = "in" ] && shift
+    list="$2"
+    [ "$list" = "-" ] && return 1
+    [ "$list" = "*" ] && return 0
+
+    IFS=","
+    set -- $list
+    case $element in
+       "$1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$7"|"$8"|"$9")
+           return 0
+    esac
+    return 1
+}
+
+# filerc (runlevel, service) returns /etc/init.d/service, if service is
+# running in $runlevel:
+filerc() {
+    local runlevel basename
+    runlevel=$1
+    basename=$2
+    while read LINE
+    do
+       case $LINE in
+           \#*|"") continue
+       esac
+
+       set -- $LINE
+       SORT_NO="$1"; STOP="$2"; START="$3"; CMD="$4"
+       [ "$CMD" = "/etc/init.d/$basename" ] || continue
+
+       if element "$runlevel" in "$START" || element "S" in "$START"
+       then
+           echo "/etc/init.d/$basename"
+           return 0
+       fi
+    done < /etc/runlevel.conf
+    echo ""
+}
+
+if test -d /run/systemd/system; then
+    is_service_configured() {
+        systemctl is-enabled --quiet $1 || return 1
+    }
+    restart_service() {
+        if systemctl try-restart $1; then
+            :
+        else
+            failed="$failed $1"
+        fi
+    }
+else # not systemd
+    is_service_configured() {
+        service="$1"
+       idl="/etc/init.d/${service}"
+       if [ -n "$idl" ] && [ -x $idl ]; then
+           return 0
+       else
+            return 1
+        fi
+    }
+
+    restart_service() {
+        service="$1"
+       idl="invoke-rc.d ${service}"
+       echo -n "  $service: stopping..." 2>&1
+       $idl stop > /dev/null 2>&1 || true
+       sleep 1
+       echo -n "starting..." 2>&1
+       if $idl start > /dev/null 2>&1; then
+           echo "done." 2>&1
+       else
+           echo "FAILED! ($?)" 2>&1
+           failed="$service $failed"
+       fi
+    }
+fi
+    
+                 installed_services() {
+    check="$@"
+
+    # Only get the ones that are installed, and configured
+    check=$(dpkg -s $check 2> /dev/null | egrep '^Package:|^Status:' | awk 
'{if ($1 ~ /^Package:/) { package=$2 } else if ($0 ~ /^Status: .* installed$/) 
{ print package }}')
+
+    # some init scripts don't match the package names
+    check=$(echo $check | \
+       sed -e's/\bapache2-common\b/apache2/g' \
+           -e's/\bat\b/atd/g' \
+           -e's/\bdovecot-common\b/dovecot/g' \
+           -e's/\bdante-server\b/danted/g' \
+           -e's/\bexim4-base\b/exim4/g' \
+           -e's/\bheartbeat-2\b/heartbeat/g' \
+           -e's/\bhylafax-server\b/hylafax/g' \
+           -e's/\bpartimage-server\b/partimaged/g' \
+           -e's/\bpostgresql-common\b/postgresql/g' \
+           -e's/\bsamba\b/smbd samba-ad-dc/g' \
+           -e's/\bsasl2-bin\b/saslauthd/g' \
+    )
+
+    for service in $check; do
+       if is_service_configured $service; then
+               services="$service $services"
+       else
+               echo "WARNING:  $service not configured." >&2
+       fi
+    done
+    echo "$services"
+}
+
+if [ "$1" = "configure" ]
+then
+    if [ ! -z "$2" ]; then
+       if dpkg --compare-versions "$2" lt 1.4.0-2; then
+           db_version 2.0
+
+           echo -n "Checking for services that may need to be restarted..."
+
+           check="apache2-common at bayonne cherokee courier-authdaemon"
+           check="$check cron cups"
+           check="$check dante-server diald dovecot-common exim exim4-base"
+           check="$check fcron fireflier-server freeradius gdm heartbeat"
+           check="$check heartbeat-2 hylafax-server iiimf-server inn2"
+           check="$check kannel linesrv linesrv-mysql lsh-server"
+           check="$check muddleftpd netatalk nuauth partimage-server"
+           check="$check perdition pgpool popa3d"
+           check="$check postgresql-common proftpd pure-ftpd"
+           check="$check pure-ftpd-ldap pure-ftpd-mysql"
+           check="$check pure-ftpd-postgresql racoon samba sasl2-bin"
+           check="$check sfs-server solid-pop3d squid squid3 tac-plus"
+           check="$check vsftpd wu-ftpd wzdftpd xrdp yardradius yaws"
+
+           if [ -z "$(who | awk '$2 ~ /console/ && $NF ~ /:[0-9]/ { print $NF }
+                                  $2 ~ /:[0-9]/ { print $2 }')" ]
+           then
+               check="$check wdm xdm"
+           fi
+
+           echo "Checking init scripts..."
+           services=$(installed_services "$check")
+           if [ -n "$services" ]; then
+               db_input critical libraries/restart-without-asking || true
+               db_go || true
+               db_get libraries/restart-without-asking
+               if [ "$RET" != true ]; then
+                   db_reset libpam0g/restart-services
+                   db_set libpam0g/restart-services "$services"
+                   db_input critical libpam0g/restart-services || true
+                   db_go || true
+                   db_get libpam0g/restart-services
+
+                   if [ "x$RET" != "x" ]
+                   then
+                       services=$RET
+                   else
+                       services=""
+                   fi
+               fi
+               echo
+               if [ "$services" != "" ]; then
+                   echo "Restarting services possibly affected by the upgrade:"
+                   failed=""
+                   rl=$(runlevel | sed 's/.*\ //')
+                   for service in $services; do
+                       idl="invoke-rc.d ${service}"
+
+                       case "$service" in
+                           gdm)
+                               echo -n "  $service: reloading..."
+                               if $idl reload > /dev/null 2>&1; then
+                                   echo "done."
+                               else
+                                   echo "FAILED! ($?)"
+                                   failed="$service $failed"
+                               fi
+                               continue
+                           ;;
+                       esac
+                        restart_service "$service"
+                   done
+                   echo
+                   if [ -n "$failed" ]; then
+                       db_subst libpam0g/restart-failed services "$failed"
+                       db_input critical libpam0g/restart-failed || true
+                       db_go || true
+                   else
+                       echo "Services restarted successfully."
+                   fi
+                   echo
+               fi
+           else
+               echo "Nothing to restart."
+           fi
+
+           if [ -n "$(who | awk '$2 ~ /console/ && $NF ~ /:[0-9]/ { print $NF }
+                                  $2 ~ /:[0-9]/ { print $2 }')" ]
+           then
+               dms=""
+               for service in wdm xdm; do
+                   case "$services" in
+                       *$service*)     ;;
+                       *)      dms="$dms $service"
+                   esac
+               done
+               services=$(installed_services "$dms")
+               if [ -n "$services" ]; then
+                   db_input critical libpam0g/xdm-needs-restart || true
+                   db_go || true
+               fi
+           fi
+
+           # Shut down the frontend, to make sure none of the
+           # restarted services keep a connection open to it
+           db_stop
+       fi # end upgrading and $2 lt 1.4.0-2
+    fi # Upgrading
+fi
+
+#DEBHELPER#
+
diff -Nru pam-1.5.2/debian/libpam0t64.symbols 
pam-1.5.2/debian/libpam0t64.symbols
--- pam-1.5.2/debian/libpam0t64.symbols 1969-12-31 21:00:00.000000000 -0300
+++ pam-1.5.2/debian/libpam0t64.symbols 2024-02-05 14:00:51.000000000 -0300
@@ -0,0 +1,16 @@
+libpam.so.0 libpam0t64 #MINVER#
+ *@LIBPAM_1.0 0.99.7.1
+ *@LIBPAM_1.4 1.4.0
+ *@LIBPAM_EXTENSION_1.0 0.99.7.1
+ *@LIBPAM_EXTENSION_1.1 1.1.0
+ *@LIBPAM_EXTENSION_1.1.1 1.1.1
+ *@LIBPAM_MODUTIL_1.0 0.99.7.1
+ *@LIBPAM_MODUTIL_1.1 0.99.10.0
+ *@LIBPAM_MODUTIL_1.1.3 1.1.3
+ *@LIBPAM_MODUTIL_1.1.9 1.3.1
+ *@LIBPAM_MODUTIL_1.3.2 1.3.2
+ *@LIBPAM_MODUTIL_1.4.1 1.4.1
+libpam_misc.so.0 libpam0g #MINVER#
+ *@LIBPAM_MISC_1.0 0.99.7.1
+libpamc.so.0 libpam0g #MINVER#
+ *@LIBPAMC_1.0 0.99.7.1
diff -Nru pam-1.5.2/debian/libpam0t64.templates 
pam-1.5.2/debian/libpam0t64.templates
--- pam-1.5.2/debian/libpam0t64.templates       1969-12-31 21:00:00.000000000 
-0300
+++ pam-1.5.2/debian/libpam0t64.templates       2023-10-24 12:19:43.000000000 
-0300
@@ -0,0 +1,38 @@
+Template: libpam0g/restart-services
+Type: string
+_Description: Services to restart for PAM library upgrade:
+ Most services that use PAM need to be restarted to use modules built for
+ this new version of libpam.  Please review the following space-separated
+ list of services to be restarted now, and correct it
+ if needed.
+
+Template: libpam0g/xdm-needs-restart
+Type: error
+_Description: Display manager must be restarted manually
+ The wdm and xdm display managers require a restart for the new version of
+ libpam, but there are X login sessions active on your system that would be
+ terminated by this restart.  You will therefore need to restart these
+ services by hand before further X logins will be possible.
+
+Template: libpam0g/restart-failed
+Type: error
+#flag:translate!:3
+_Description: Failure restarting some services for PAM upgrade
+ The following services could not be restarted for the PAM library upgrade:
+ .
+ ${services}
+ .
+ You will need to start these manually by running
+ '/etc/init.d/<service> start'.
+
+Template: libraries/restart-without-asking
+Type: boolean
+Default: false
+_Description: Restart services during package upgrades without asking?
+ There are services installed on your system which need to be restarted
+ when certain libraries, such as libpam, libc, and libssl, are upgraded.
+ Since these restarts may cause interruptions of service for the system,
+ you will normally be prompted on each upgrade for the list of services
+ you wish to restart.  You can choose this option to avoid being prompted;
+ instead, all necessary restarts will be done for you automatically so you
+ can avoid being asked questions on each library upgrade.

Reply via email to