about summary refs log tree commit diff
path: root/debian/network-manager.postinst
blob: e2cb04981d38842b893f7f3a56eac7112ecebf38 (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
#!/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>

case "$1" in
    configure)
        # request a reboot (NM tears down interfaces on restart
        # which is not the way we want to go)
        [ -x /usr/share/update-notifier/notify-reboot-required ] && \
            /usr/share/update-notifier/notify-reboot-required

        update-rc.d -f NetworkManager remove >/dev/null

        if [ -x "/etc/init.d/dbus" ]; then
            invoke-rc.d dbus force-reload || true
        fi

        # This directory can contain sensitive data and should not be world-readable
        chmod 0700 /var/lib/NetworkManager

        NIF=/etc/network/interfaces
        if [ -z "$2" ] && [ -f $NIF ]; then
            ifaces=`grep -v '^#' $NIF | awk '/iface/ {print $2}' | sort -u | sed -e 's/lo//' -e '/^$/d' -e 's/^/- /'`
            if [ -n "$ifaces" ]; then
                echo "" 1>&2
                echo "The following network interfaces were found in $NIF" 1>&2
                echo "which means they are currently configured by ifupdown:" 1>&2
                echo "$ifaces" 1>&2
                echo "If you want to manage those interfaces with NetworkManager instead" 1>&2
                echo "remove their configuration from $NIF." 1>&2
                echo "" 1>&2
            fi
        fi

	if dpkg --compare-versions "$2" le-nl "9999"; then
		mkdir -p /etc/NetworkManager/conf.d || true
		# for old versions, override the global config with a null config,
		# but only if the netplan config has not been modified by an user.
		if find /etc/netplan -name "*.yaml" | wc -l | grep -qc 0; then
			touch /etc/NetworkManager/conf.d/10-globally-managed-devices.conf
		fi
	fi

        if dpkg --compare-versions "$2" lt-nl "1.20.4-2"; then
            if [ -f /var/lib/NetworkManager/secret_key ]; then
                chmod 0600 /var/lib/NetworkManager/secret_key
            fi
        fi
        if dpkg --compare-versions "$2" lt-nl "1.25.91-1"; then
            update-rc.d -f network-manager remove || true
        fi
        if dpkg --compare-versions "$2" lt-nl "1.35.91-1"; then
            deb-systemd-helper purge "nm-priv-helper.service" || true
        fi
        ;;

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

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

#DEBHELPER#