From: Ben Pfaff <blp@nicira.com>
Date: Fri, 16 Mar 2012 21:18:05 +0000 (-0700)
Subject: debian: Use a different way to avoid failing install without kernel module.
X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=4621c036205b8e7c9fe34507d14502455996bf10;p=sliver-openvswitch.git

debian: Use a different way to avoid failing install without kernel module.

The dh_installinit --error-handler option makes a lot of sense, but after
playing with it for a while I could not figure out a nice way to use it
only for openvswitch-switch without either duplicating the dh_installinit
fragments in postinst and prerm (the actual bug that was reported) or
omitting them for some package.

Also, we forgot to write the error handler function for the prerm.

This commit switches to a different way to avoid failing the install when
the kernel module is not available, without using --error-handler.

CC: 663051@bugs.debian.org
Reported-by: Thomas Goirand <zigo@debian.org>
Reviewed-by: Simon Horman <horms@verge.net.au>
Signed-off-by: Ben Pfaff <blp@nicira.com>
---

diff --git a/debian/openvswitch-switch.init b/debian/openvswitch-switch.init
index cb9670cbb..36dd5f928 100755
--- a/debian/openvswitch-switch.init
+++ b/debian/openvswitch-switch.init
@@ -56,6 +56,13 @@ start () {
             echo "For instructions, read"
 	fi
 	echo "/usr/share/doc/openvswitch-datapath-source/README.Debian"
+
+	if test X"$OVS_MISSING_KMOD_OK" = Xyes; then
+	    # We're being invoked by the package postinst.  Do not
+	    # fail package installation just because the kernel module
+	    # is not available.
+	    exit 0
+	fi
     fi
     set ovs_ctl ${1-start} --system-id=random
     if test X"$FORCE_COREFILES" != X; then
diff --git a/debian/openvswitch-switch.postinst b/debian/openvswitch-switch.postinst
index c50853a11..7b9d7bc89 100755
--- a/debian/openvswitch-switch.postinst
+++ b/debian/openvswitch-switch.postinst
@@ -44,25 +44,11 @@ case "$1" in
         ;;
 esac
 
-HAVE_KMOD="no"
-
-init_script_error () {
-	if test X"$HAVE_KMOD" = Xno; then
-		exit 0
-	fi
-	exit 1
-}
-
 # Do not fail package installation just because the kernel module
 # is not available.
-if test -x /etc/init.d/openvswitch-switch; then
-    if invoke-rc.d openvswitch-switch load-kmod; then
-	HAVE_KMOD="yes"
-    fi
-fi
+OVS_MISSING_KMOD_OK=yes
+export OVS_MISSING_KMOD_OK
 
 #DEBHELPER#
 
 exit 0
-
-
diff --git a/debian/rules b/debian/rules
index 4160025a4..24c9850fe 100755
--- a/debian/rules
+++ b/debian/rules
@@ -134,8 +134,7 @@ binary-common:
 	dh_installexamples
 	dh_installdebconf
 	dh_installlogrotate
-	dh_installinit -R -Nopenvswitch-switch
-	dh_installinit -R -popenvswitch-switch --error-handler=init_script_error
+	dh_installinit -R
 	dh_installcron
 	dh_installman --language=C
 	dh_link