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: