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