summary refs log tree commit diff
path: root/debian/network-manager.postinst
blob: 87fee6ea6d9e0405d94ce41b27a4cd52151d7f6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/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
            if [ -f /etc/network/interfaces ]; 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
        fi
        ;;

    abort-upgrade|abort-deconfigure|abort-remove)
        ;;

    *)
        echo "$0 called with unknown argument \`$1'" 1>&2
        exit 1
        ;;
esac

#DEBHELPER#