]>
Commit | Line | Data |
---|---|---|
748b5710 JT |
1 | #!/bin/sh |
2 | # postinst script for ifupdown2 | |
3 | # | |
4 | # see: dh_installdeb(1) | |
5 | ||
2c8c4ce7 RP |
6 | set -e |
7 | ||
748b5710 JT |
8 | # summary of how this script can be called: |
9 | # * <postinst> `configure' <most-recently-configured-version> | |
10 | # * <old-postinst> `abort-upgrade' <new version> | |
11 | # * <conflictor's-postinst> `abort-remove' `in-favour' <package> | |
12 | # <new-version> | |
13 | # * <postinst> `abort-remove' | |
14 | # * <deconfigured's-postinst> `abort-deconfigure' `in-favour' | |
15 | # <failed-install-package> <version> `removing' | |
16 | # <conflicting-package> <version> | |
17 | # for details, see http://www.debian.org/doc/debian-policy/ or | |
18 | # the debian-policy package | |
19 | ||
f0f7d37e RP |
20 | process_udev() |
21 | { | |
22 | # override default udev bridge and hotplug rules because they interfere with | |
23 | # networking init script | |
24 | udev_user_rulesdir=/etc/udev/rules.d/ | |
25 | udev_sys_rulesdir=/lib/udev/rules.d/ | |
26 | if [ -e $udev_user_rulesdir ]; then | |
27 | udev_ifupdown2_overrides="80-networking.rules | |
28 | 60-bridge-network-interface.rules" | |
29 | for u in ${udev_ifupdown2_overrides} | |
30 | do | |
31 | if [ -e ${udev_sys_rulesdir}/$u -a ! -e ${udev_user_rulesdir}/$u ]; then | |
32 | (cd ${udev_user_rulesdir} && ln -sf /dev/null $u) | |
33 | fi | |
34 | done | |
35 | fi | |
36 | } | |
37 | ||
2c8c4ce7 RP |
38 | MYNAME="${0##*/}" |
39 | ||
40 | report() { echo "${MYNAME}: $*" ; } | |
41 | report_warn() { report "Warning: $*" >&2 ; } | |
42 | report_err() { report "Error: $*" >&2 ; } | |
43 | ||
44 | case "$1" in | |
45 | configure) | |
748b5710 | 46 | # Create /etc/network/run |
2c8c4ce7 RP |
47 | [ -d /run/network ] || mkdir -p /run/network |
48 | ||
49 | # for backward compatibility | |
50 | if [ ! -f /etc/network/run ]; then | |
51 | ln -sf /run/network /etc/network/run | |
52 | fi | |
53 | ||
748b5710 JT |
54 | ln -sf /usr/share/python-ifupdown2/generate_interfaces.py \ |
55 | /usr/share/doc/python-ifupdown2/examples/generate_interfaces.py | |
2c8c4ce7 RP |
56 | |
57 | [ -d /etc/network/if-pre-up.d ] || mkdir -p /etc/network/if-pre-up.d | |
58 | [ -d /etc/network/if-up.d ] || mkdir -p /etc/network/if-up.d | |
59 | [ -d /etc/network/if-post-up.d ] || mkdir -p /etc/network/if-post-up.d | |
60 | ||
61 | [ -d /etc/network/if-pre-down.d ] || mkdir -p /etc/network/if-pre-down.d | |
62 | [ -d /etc/network/if-down.d ] || mkdir -p /etc/network/if-down.d | |
63 | [ -d /etc/network/if-post-down.d ] || mkdir -p /etc/network/if-post-down.d | |
64 | ||
65 | ||
66 | # Generic stuff done on all configurations | |
67 | if [ -f /etc/network/interfaces ] ; then | |
68 | # TODO: This should be handled with debconf and the script | |
69 | # could introduce the line there directly | |
70 | if ! grep -q "^[[:space:]]*iface[[:space:]]\+lo0\?[[:space:]]\+inet[[:space:]]\+loopback\>" /etc/network/interfaces ; then | |
71 | report_warn "No 'iface lo' definition found in /etc/network/interfaces" | |
72 | fi | |
73 | ||
74 | if ! grep -q "^[[:space:]]*\(allow-\|\)auto[[:space:]]\+\(.*[[:space:]]\+\|\)lo0\?\([[:space:]]\+\|$\)" /etc/network/interfaces ; then | |
75 | report_warn "No 'auto lo' statement found in /etc/network/interfaces" | |
76 | fi | |
77 | else # ! -f /etc/network/interfaces | |
78 | if [ -z "$2" ]; then | |
79 | echo "Creating /etc/network/interfaces." | |
80 | echo "# interfaces(5) file used by ifup(8) and ifdown(8)" > /etc/network/interfaces | |
81 | echo "auto lo" >> /etc/network/interfaces | |
82 | echo "iface lo inet loopback" >> /etc/network/interfaces | |
83 | else | |
84 | report_warn "/etc/network/interfaces does not exist" | |
85 | fi | |
86 | fi | |
87 | ||
f82758bf RP |
88 | [ -e /sbin/ifup ] || ln -sf /sbin/ifupdown /sbin/ifup |
89 | [ -e /sbin/ifdown ] || ln -sf /sbin/ifupdown /sbin/ifdown | |
90 | [ -e /sbin/ifquery ] || ln -sf /sbin/ifupdown /sbin/ifquery | |
91 | [ -e /sbin/ifreload ] || ln -sf /sbin/ifupdown /sbin/ifreload | |
2c8c4ce7 RP |
92 | |
93 | (cd /usr/share/man/man8/ && ln -sf /usr/share/man/man8/ifup.8.gz ifdown.8.gz) | |
94 | ||
95 | mkdir -p /etc/network/interfaces.d/ | |
f0f7d37e | 96 | process_udev |
748b5710 JT |
97 | update-rc.d networking start 40 S . start 35 0 6 . >/dev/null |
98 | ;; | |
99 | ||
100 | abort-upgrade|abort-remove|abort-deconfigure) | |
2c8c4ce7 RP |
101 | ;; |
102 | ||
748b5710 JT |
103 | *) |
104 | echo "postinst called with unknown argument \`$1'" >&2 | |
105 | exit 1 | |
106 | ;; | |
2c8c4ce7 RP |
107 | esac |
108 | ||
748b5710 JT |
109 | # dh_installdeb will replace this with shell code automatically |
110 | # generated by other debhelper scripts. | |
111 | ||
2c8c4ce7 | 112 | #DEBHELPER# |
2a7c45e8 JT |
113 | |
114 | exit 0 |