debian: Use a different way to avoid failing install without kernel module.
authorBen Pfaff <blp@nicira.com>
Fri, 16 Mar 2012 21:18:05 +0000 (14:18 -0700)
committerBen Pfaff <blp@nicira.com>
Fri, 16 Mar 2012 21:18:05 +0000 (14:18 -0700)
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>
debian/openvswitch-switch.init
debian/openvswitch-switch.postinst
debian/rules

index 98863e3bc02c7234e2d7a99770e42774aac8bb22..aebf21e52b81a50c72d6a6bed959019b8dc09862 100755 (executable)
@@ -58,6 +58,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
index c50853a11879da0501c88060c5734745b1139f5f..7b9d7bc89a0e19093322e21c2e96d91836ee3901 100755 (executable)
@@ -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
-
-
index 4160025a47f76aefb579114b99d62af5f06fca6f..24c9850fef3f995d7501fc78b8a4bb2278e92428 100755 (executable)
@@ -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