* #10198: ExecShield wrapperi za grub, grub-probe
[kernel-cn.git] / debian / preinst
1 #!/bin/sh
2 # preinst script for kernel-2.6-cn
3 #
4 # see: dh_installdeb(1)
5
6 set -e
7
8 # summary of how this script can be called:
9 #        * <new-preinst> `install'
10 #        * <new-preinst> `install' <old-version>
11 #        * <new-preinst> `upgrade' <old-version>
12 #        * <old-preinst> `abort-upgrade' <new-version>
13 # for details, see http://www.debian.org/doc/debian-policy/ or
14 # the debian-policy package
15
16
17 case "$1" in
18     install|upgrade)
19     ;;
20
21     abort-upgrade)
22         # check if we have Layer7 active...
23         if iptables-save | grep -qs '^-A.* -m layer7 '; then
24             echo 'CN: Layer7 Netfilter no longer supported, report this to SysHelp!'
25             exit 1
26         fi
27     ;;
28
29     *)
30         echo "preinst called with unknown argument \`$1'" >&2
31         exit 1
32     ;;
33 esac
34
35 # make GRUB template directory
36 if [ ! -d /boot/grub ]; then
37     echo "CN: Made /boot/grub directory."
38     mkdir -p /boot/grub
39 fi
40
41 ################################################################################
42
43 SHIELD=$(sysctl -e -n kernel.exec-shield)
44
45 if [ ! -z "$SHIELD" ]; then
46     sysctl -e -w kernel.exec-shield=0 >/dev/null 2>&1 || true
47     echo "CN: Disabled Exec-Shield."
48 fi
49
50 ################################################################################
51
52 DIVERT_TO="grub grub-probe"
53
54 echo -n "CN: Undiverting binaries:"
55 for i in $DIVERT_TO; do
56     if [ -e /usr/sbin/$i.real ]; then
57         dpkg-divert --remove --rename --package 'kernel-2.6-cn' \
58             --divert /usr/sbin/$i.real /usr/sbin/$i >/dev/null
59     fi
60     echo -n " $i"
61 done
62 echo "."
63
64 # dh_installdeb will replace this with shell code automatically
65 # generated by other debhelper scripts.
66
67 #DEBHELPER#
68
69 exit 0