[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

r2546 - in glibc-package/trunk/debian: . control.in debhelper.in



Author: aurel32
Date: 2007-09-09 21:49:22 +0000 (Sun, 09 Sep 2007)
New Revision: 2546

Added:
   glibc-package/trunk/debian/debhelper.in/libc.templates
Modified:
   glibc-package/trunk/debian/changelog
   glibc-package/trunk/debian/control
   glibc-package/trunk/debian/control.in/libc
   glibc-package/trunk/debian/debhelper.in/libc.postinst
Log:
  * debhelper.in/libc.postinst, debhelper.in/libc.templates: prompt user
    with debconf if it is available.  Closes: #440964.
  * debian/control.in/libc: suggests debconf | debconf-2.0.



Modified: glibc-package/trunk/debian/changelog
===================================================================
--- glibc-package/trunk/debian/changelog	2007-09-09 21:03:13 UTC (rev 2545)
+++ glibc-package/trunk/debian/changelog	2007-09-09 21:49:22 UTC (rev 2546)
@@ -20,10 +20,13 @@
   * kfreebsd/local-sysdeps.diff: update to revision 1998 (from glibc-bsd).
   * sysdeps/kfreebsd-amd64.mk: uses x86_64 headers also for the i486 flavour
     now that they are compatible.
-  * any/local-sysmacros.diff: new patch to declare "major", "minor" and 
+  * any/local-sysmacros.diff: new patch to declare "major", "minor" and
     "makedev" as inline function instead of macros.  Closes: #439859.
+  * debhelper.in/libc.postinst, debhelper.in/libc.templates: prompt user
+    with debconf if it is available.  Closes: #440964.
+  * debian/control.in/libc: suggests debconf | debconf-2.0.
 
- -- Aurelien Jarno <aurel32@debian.org>  Sun, 09 Sep 2007 20:08:50 +0200
+ -- Aurelien Jarno <aurel32@debian.org>  Sun, 09 Sep 2007 23:49:09 +0200
 
 glibc (2.6.1-2) unstable; urgency=low
 

Modified: glibc-package/trunk/debian/control
===================================================================
--- glibc-package/trunk/debian/control	2007-09-09 21:03:13 UTC (rev 2545)
+++ glibc-package/trunk/debian/control	2007-09-09 21:49:22 UTC (rev 2546)
@@ -69,6 +69,7 @@
 Section: libs
 Priority: required
 Provides: ${locale-compat:Depends}
+Suggests: debconf | debconf-2.0
 Description: GNU C Library: Shared libraries
  Contains the standard libraries that are used by nearly all programs on
  the system. This package includes shared versions of the standard C library
@@ -140,6 +141,7 @@
 Section: libs
 Priority: required
 Provides: ${locale-compat:Depends}
+Suggests: debconf | debconf-2.0
 Description: GNU C Library: Shared libraries
  Contains the standard libraries that are used by nearly all programs on
  the system. This package includes shared versions of the standard C library
@@ -211,6 +213,7 @@
 Section: libs
 Priority: required
 Provides: ${locale-compat:Depends}
+Suggests: debconf | debconf-2.0
 Description: GNU C Library: Shared libraries
  Contains the standard libraries that are used by nearly all programs on
  the system. This package includes shared versions of the standard C library
@@ -282,6 +285,7 @@
 Section: libs
 Priority: required
 Provides: ${locale-compat:Depends}
+Suggests: debconf | debconf-2.0
 Description: GNU C Library: Shared libraries
  Contains the standard libraries that are used by nearly all programs on
  the system. This package includes shared versions of the standard C library

Modified: glibc-package/trunk/debian/control.in/libc
===================================================================
--- glibc-package/trunk/debian/control.in/libc	2007-09-09 21:03:13 UTC (rev 2545)
+++ glibc-package/trunk/debian/control.in/libc	2007-09-09 21:49:22 UTC (rev 2546)
@@ -3,6 +3,7 @@
 Section: libs
 Priority: required
 Provides: ${locale-compat:Depends}
+Suggests: debconf | debconf-2.0
 Description: GNU C Library: Shared libraries
  Contains the standard libraries that are used by nearly all programs on
  the system. This package includes shared versions of the standard C library

Modified: glibc-package/trunk/debian/debhelper.in/libc.postinst
===================================================================
--- glibc-package/trunk/debian/debhelper.in/libc.postinst	2007-09-09 21:03:13 UTC (rev 2545)
+++ glibc-package/trunk/debian/debhelper.in/libc.postinst	2007-09-09 21:49:22 UTC (rev 2546)
@@ -117,6 +117,12 @@
 
 if [ "$type" = "configure" ]
 then
+
+    # Load debconf module if available
+    if [ -f /usr/share/debconf/confmodule ] ; then
+	. /usr/share/debconf/confmodule
+    fi
+
     # Handle upgrades for libdb.so.3. We do this before calling ldconfig,
     # since it will create a symlink for us. Just move everything over. We
     # use `cat' because I feel it is simpler and safer. Make sure that
@@ -152,85 +158,100 @@
 	fi
 	if dpkg --compare-versions $preversion lt 2.3.5-1; then
 	    echo -n "Checking for services that may need to be restarted..."
-
-	    check="nis smail sendmail exim exim4-base ssh netbase"
-	    check="$check ssh-nonfree postfix-tls wu-ftpd boa cron postfix"
-	    check="$check wu-ftpd-academ vsftpd slapd openldapd wwwoffle"
-	    check="$check cupsys lprng lpr lpr-ppd autofs snmpd ssh-krb5"
-	    check="$check courier-authdaemon mysql-server spamassassin"
-	    check="$check apache apache-ssl apache-perl apache2-common"
-	    check="$check proftpd proftpd-ldap proftpd-mysql proftpd-pgsql"
-	    check="$check dovecot-common cucipop rsync samba saslauthd"
+	    check="apache2-common apache apache-ssl apache-perl autofs at"
+	    check="$check boa cucipop courier-authdaemon cron cupsys exim"
+	    check="$check exim4-base dovecot-common cucipop lprng lpr"
+	    check="$check lpr-ppd mysql-server nis openbsd-inetd"
+	    check="$check openldapd postfix postfix-tls proftpd rsync samba"
+	    check="$check sasl2-bin slapd smail sendmail snmpd ssh"
+	    check="$check spamassassin vsftpd wu-ftpd wu-ftpd-academ wwwoffle"
 	    check="$check webmin dropbear"
 	    # 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 }}')
-	    # apache2 ships its init script in apache2-common, but the
-	    # script is apache2
-	    check=$(echo $check | sed 's/apache2-common/apache2/g')
-	    # exim4 ships its init script in exim4-base, but the script
-	    # is exim4
-	    check=$(echo $check | sed 's/exim4-base/exim4/g')
-	    # The name of proftpd-{ldap,mysql,pgsql} init script is
-	    # same as "proftpd".
-	    check=$(echo $check | sed 's/proftpd-.*/proftpd/g')
-	    # dovecot-common ships its init script, but the
-	    # script name is dovecot for dovecot-{imapd,pop3d}.
-	    check=$(echo $check | sed 's/dovecot-common/dovecot/g')
-	    # lpr and lpr-ppd ship its init script, but the 
-	    # script name is lpd and lpd-ppd.  The inserted space is
-	    # intentional to not replace lprng.
-	    check=$(echo $check | sed 's/lpr /lpd /g')
-	    check=$(echo $check | sed 's/lpr-ppd /lpd-ppd /g')
-	    # We have to list inetd and atd explicitly, because the packages
-	    # have different names to their init scripts
-	    check="$check inetd atd"
-	    rl=$(runlevel | awk '{print $2}')
+	    # 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/\bexim4-base\b/exim4/g' \
+		    -e's/\blpr\b/lpd/g' \
+		    -e's/\blpr-ppd\b/lpd-ppd/g' \
+		    -e's/\bsasl2-bin\b/saslauthd/g' \
+	    )
+	    echo
+	    echo "Checking init scripts..."
+	    rl=$(runlevel | sed 's/.*\ //')
 	    for service in $check; do
-		if [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then
-		    idl=$(filerc $rl $service)
+	        if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+	    	    idl=$(ls /etc/init.d/${service} 2> /dev/null | head -n 1)
+		    if [ -n "$idl" ] && [ -x $idl ]; then
+		        services="$service $services"
+		    else
+			echo "WARNING: init script for $service not found."
+		    fi
 		else
-		    idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1)
-		fi
-		if [ -n "$idl" ] && [ -x $idl ]; then
-		    services="$service $services"
-		fi
+		    if [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then
+			idl=$(filerc $rl $service)
+		    else
+			idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1)
+		    fi
+		    if [ -n "$idl" ] && [ -x $idl ]; then
+			services="$service $services"
+		    fi
+	        fi
 	    done
-	    echo "done."
 	    if [ -n "$services" ]; then
-		echo
-		echo "Name Service Switch update in the C Library: post-installation question."
-		echo
-		echo "Running services and programs that are using NSS need to be restarted,"
-		echo "otherwise they might not be able to do lookup or authentication any more"
-		echo "(for services such as ssh, this can affect your ability to login)."
-		echo "Note: restarting sshd/telnetd should not affect any existing connections."
-		echo
-		echo "The services detected are: "
-		echo "        $services"
-		echo
-		echo "If other services have begun to fail mysteriously after this upgrade, it is"
-		echo "probably necessary to restart them too.  We recommend that you reboot your"
-		echo "machine after the upgrade to avoid NSS-related troubles."
-		echo
-		frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'`
-		if [ "$frontend" = noninteractive ]; then
-		    echo "Non-interactive mode, restarting services"
-		    answer=yes
+
+	        if [ -f /usr/share/debconf/confmodule ] ; then
+		    db_version 2.0
+		    db_reset glibc/restart-services
+		    db_set glibc/restart-services "$services"
+		    db_input critical glibc/restart-services || true
+		    db_go || true
+		    db_get glibc/restart-services
+		    if [ "x$RET" != "x" ]
+		    then
+		        services="$RET"
+		    else
+		    	services=""
+		    fi
 		else
-		    echo -n "Do you wish to restart services? [Y/n] "
-		    read answer
-		    case $answer in
-			Y*|y*) answer=yes ;;
-			N*|n*) answer=no ;;
-			*) answer=yes ;;
-		    esac
+		    echo
+		    echo "Name Service Switch update in the C Library: post-installation question."
+		    echo
+		    echo "Running services and programs that are using NSS need to be restarted,"
+		    echo "otherwise they might not be able to do lookup or authentication any more"
+		    echo "(for services such as ssh, this can affect your ability to login)."
+		    echo "Note: restarting sshd/telnetd should not affect any existing connections."
+		    echo
+		    echo "The services detected are: "
+		    echo "        $services"
+		    echo
+		    echo "If other services have begun to fail mysteriously after this upgrade, it is"
+		    echo "probably necessary to restart them too.  We recommend that you reboot your"
+		    echo "machine after the upgrade to avoid NSS-related troubles."
+		    echo
+		    frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'`
+		    if [ "$frontend" = noninteractive ]; then
+		    	echo "Non-interactive mode, restarting services"
+		    	answer=yes
+		    else
+		    	echo -n "Do you wish to restart services? [Y/n] "
+		    	read answer
+		    	case $answer in
+			    N*|n*) services="" ;;
+			    *) ;;
+		        esac
+		    fi
 		fi
 		echo
-		if [ "$answer" = yes ] && [ "$services" != "" ]; then
+		if [ "$services" != "" ]; then
 		    echo "Restarting services possibly affected by the upgrade:"
 		    failed=""
 		    for service in $services; do
-			if [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then
+		    	if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then
+			    idl="invoke-rc.d ${service}"
+			elif [ -f /usr/share/file-rc/rc ] || [ -f /usr/lib/file-rc/rc ] && [ -f /etc/runlevel.conf ]; then
 			    idl=$(filerc $rl $service)
 			else
 			    idl=$(ls /etc/rc${rl}.d/S??${service} 2> /dev/null | head -1)
@@ -248,22 +269,35 @@
 		    done
 		    echo
 		    if [ -n "$failed" ]; then
-			# Ruh roh, George
-			echo "The following services failed to start: $failed"
-			echo
-			echo "You will need to start these manually by running \`/etc/init.d/<service> start'"
-			echo "If the service still fails to start, you may need to file a bug on"
-			echo "$(package_name) or the service involved."
-			if [ "$DEBIAN_FRONTEND" != noninteractive ]; then
+	        	if [ -f /usr/share/debconf/confmodule ] ; then
+		    	    db_fset glibc/restart-failed seen false
+			    db_subst glibc/restart-failed services "$failed"
+			    db_input critical glibc/restart-failed || true
+			    db_go || true
+			else
+			    echo "The following services failed to start: $failed"
 			    echo
-			    echo -n "Press ENTER to continue: "
-			    read foo
+			    echo "You will need to start these manually by running \`/etc/init.d/<service> start'"
+			    echo "If the service still fails to start, you may need to file a bug on"
+			    echo "$(package_name) or the service involved."
+			    frontend=`echo "$DEBIAN_FRONTEND" | tr '[:upper:]' '[:lower:]'`
+			    if [ "$frontend" != noninteractive ]; then
+			    	echo
+			    	echo -n "Press ENTER to continue: "
+			    	read foo
+			    fi
 			fi
 		    else
 			echo "Services restarted successfully."
-		    fi
-		    echo
+                    fi
 		fi
+                # Shut down the frontend, to make sure none of the
+		# restarted services keep a connection open to it
+	        if [ -f /usr/share/debconf/confmodule ] ; then
+		    db_stop
+		fi
+	    else
+		echo "Nothing to restart."
 	    fi
 	fi # end upgrading and $preversion lt 2.3.5-1
     fi # Upgrading

Added: glibc-package/trunk/debian/debhelper.in/libc.templates
===================================================================
--- glibc-package/trunk/debian/debhelper.in/libc.templates	                        (rev 0)
+++ glibc-package/trunk/debian/debhelper.in/libc.templates	2007-09-09 21:49:22 UTC (rev 2546)
@@ -0,0 +1,20 @@
+Template: glibc/restart-services
+Type: string
+_Description: Services to restart for GNU libc library upgrade:
+ Running services and programs that are using NSS need to be restarted,
+ otherwise they might not be able to do lookup or authentication any more
+ (for services such as ssh, this can affect your ability to login).
+ Please review the following space-separated list of init.d scripts for
+ services to be restarted now, and correct it if needed.
+ .
+ Note: restarting sshd/telnetd should not affect any existing connections.
+
+Template: glibc/restart-failed
+Type: error
+_Description: Failure restarting some services for GNU libc upgrade
+ The following services could not be restarted for the GNU libc library upgrade:
+ .
+ ${services}
+ .
+ You will need to start these manually by running
+ '/etc/init.d/<service> start'.



Reply to: