diff options
| author | Michael Biebl <biebl@debian.org> | 2010-11-29 00:48:02 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2010-11-29 00:48:02 +0100 |
| commit | e2123f8ef48519892659c90f64f588a7b24069ee (patch) | |
| tree | f87005bd6dc2a3edc6db3dd7b0ebdb05fdb17265 /debian/network-manager.postinst | |
| parent | 9fae01fa351805b2903e535736e06971bc0b925e (diff) | |
| parent | a38c18be91a727db6daf6055a2ed7996f148c8aa (diff) | |
Merge remote branch 'svn/master'
Diffstat (limited to 'debian/network-manager.postinst')
| -rw-r--r-- | debian/network-manager.postinst | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/debian/network-manager.postinst b/debian/network-manager.postinst new file mode 100644 index 00000000..6ef57ff7 --- /dev/null +++ b/debian/network-manager.postinst @@ -0,0 +1,86 @@ +#!/bin/sh + +set -e + +# This script can be called in the following ways: +# +# After the package was installed: +# <postinst> configure <old-version> +# +# +# If prerm fails during upgrade or fails on failed upgrade: +# <old-postinst> abort-upgrade <new-version> +# +# If prerm fails during deconfiguration of a package: +# <postinst> abort-deconfigure in-favour <new-package> <version> +# removing <old-package> <version> +# +# If prerm fails during replacement due to conflict: +# <postinst> abort-remove in-favour <new-package> <version> + +# Move a conffile without triggering a dpkg question +mv_conffile() { + local OLDCONFFILE="$1" + local NEWCONFFILE="$2" + + [ -e "$OLDCONFFILE" ] || return 0 + + echo "Preserving user changes to $NEWCONFFILE ..." + mv -f "$NEWCONFFILE" "$NEWCONFFILE".dpkg-new + mv -f "$OLDCONFFILE" "$NEWCONFFILE" +} + +case "$1" in + configure) + + if ! getent group netdev > /dev/null; then + addgroup --quiet --system netdev + fi + + if [ -x "/etc/init.d/dbus" ]; then + invoke-rc.d dbus force-reload || true + fi + + # Stop the service on upgrades before it is started again. + # dh_installinit -r will create the start code. + if [ -n "$2" ]; then + if [ -x "/etc/init.d/network-manager" ]; then + invoke-rc.d network-manager stop || true + fi + fi + + # Update init script priorities + if dpkg --compare-versions "$2" lt "0.7.0.99-1"; then + for i in 0 1 6 ; do + if [ -e /etc/rc$i.d/K14network-manager ]; then + mv /etc/rc$i.d/K14network-manager /etc/rc$i.d/K88network-manager + fi + done + fi + + # Kill nm-system-settings service as in 0.8 it is no longer a separate process + if dpkg --compare-versions "$2" lt "0.7.999-1"; then + kill `pidof /usr/sbin/nm-system-settings` 2>/dev/null || true + fi + + if dpkg --compare-versions "$2" lt "0.8.1-2"; then + mv_conffile "/etc/NetworkManager/nm-system-settings.conf" "/etc/NetworkManager/NetworkManager.conf" + fi + + if [ -z "$2" ] || dpkg --compare-versions "$2" lt-nl "0.8.1-4"; then + echo "Disabling interfaces configured with plain DHCP in /etc/network/interfaces so that NetworkManager can take them over" + /usr/lib/NetworkManager/ifblacklist_migrate.sh + fi + ;; + + abort-upgrade|abort-deconfigure|abort-remove) + ;; + + *) + echo "$0 called with unknown argument \`$1'" 1>&2 + exit 1 + ;; +esac + +#DEBHELPER# + |