* #10198: ExecShield wrapperi za grub, grub-probe
[kernel-cn.git] / debian / preinst
index 6cc6e1f..b680d9a 100755 (executable)
@@ -19,6 +19,11 @@ case "$1" in
     ;;
 
     abort-upgrade)
+        # check if we have Layer7 active...
+        if iptables-save | grep -qs '^-A.* -m layer7 '; then
+            echo 'CN: Layer7 Netfilter no longer supported, report this to SysHelp!'
+            exit 1
+        fi
     ;;
 
     *)
@@ -29,9 +34,33 @@ esac
 
 # make GRUB template directory
 if [ ! -d /boot/grub ]; then
+    echo "CN: Made /boot/grub directory."
     mkdir -p /boot/grub
 fi
 
+################################################################################
+
+SHIELD=$(sysctl -e -n kernel.exec-shield)
+
+if [ ! -z "$SHIELD" ]; then
+    sysctl -e -w kernel.exec-shield=0 >/dev/null 2>&1 || true
+    echo "CN: Disabled Exec-Shield."
+fi
+
+################################################################################
+
+DIVERT_TO="grub grub-probe"
+
+echo -n "CN: Undiverting binaries:"
+for i in $DIVERT_TO; do
+    if [ -e /usr/sbin/$i.real ]; then
+        dpkg-divert --remove --rename --package 'kernel-2.6-cn' \
+            --divert /usr/sbin/$i.real /usr/sbin/$i >/dev/null
+    fi
+    echo -n " $i"
+done
+echo "."
+
 # dh_installdeb will replace this with shell code automatically
 # generated by other debhelper scripts.