This will print a warning and avoid user-space restart if system already had 1.3 or older OVS installed. This is a workaround for a bug where older kernel modules could not communicate with newer user-space.
Issue: 9128 Signed-off-by: Ansis Atteka <[email protected]> Reported-by: Michael Kruze <[email protected]> --- debian/automake.mk | 1 + debian/openvswitch-switch.postinst | 16 ++++++++++++++++ debian/openvswitch-switch.prerm | 6 ++++++ debian/rules | 3 +-- 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 debian/openvswitch-switch.prerm diff --git a/debian/automake.mk b/debian/automake.mk index 755d727..500a0a4 100644 --- a/debian/automake.mk +++ b/debian/automake.mk @@ -39,6 +39,7 @@ EXTRA_DIST += \ debian/openvswitch-switch.manpages \ debian/openvswitch-switch.postinst \ debian/openvswitch-switch.postrm \ + debian/openvswitch-switch.prerm \ debian/openvswitch-switch.template \ debian/openvswitch-test.dirs \ debian/openvswitch-test.install \ diff --git a/debian/openvswitch-switch.postinst b/debian/openvswitch-switch.postinst index c50853a..f358445 100755 --- a/debian/openvswitch-switch.postinst +++ b/debian/openvswitch-switch.postinst @@ -61,6 +61,22 @@ if test -x /etc/init.d/openvswitch-switch; then fi fi +if [ -n "$2" ] && dpkg --compare-versions "$2" lt 1.4; then + printf "\nThere is an upgrade bug from pre-1.4 Open vSwitch. As a\n" + printf "workaround you must manually run force-reload-kmod command\n" + printf "or reboot the system to finish the upgrade.\n\n" +else + if [ -x "/etc/init.d/openvswitch-switch" ]; then + update-rc.d openvswitch-switch defaults >/dev/null + if [ -n "$2" ]; then + _dh_action=restart + else + _dh_action=start + fi + invoke-rc.d openvswitch-switch $_dh_action || init_script_error + fi +fi + #DEBHELPER# exit 0 diff --git a/debian/openvswitch-switch.prerm b/debian/openvswitch-switch.prerm new file mode 100644 index 0000000..8110222 --- /dev/null +++ b/debian/openvswitch-switch.prerm @@ -0,0 +1,6 @@ +#!/bin/sh +set -e + +if [ -x "/etc/init.d/openvswitch-switch" ] && [ "$1" = remove ]; then + invoke-rc.d openvswitch-switch stop || init_script_error +fi \ No newline at end of file diff --git a/debian/rules b/debian/rules index c8b6c63..ddbe26e 100755 --- a/debian/rules +++ b/debian/rules @@ -117,8 +117,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 -popenvswitch-switch --error-handler=init_script_error --no-start dh_installcron dh_installman --language=C dh_link -- 1.7.5.4 _______________________________________________ dev mailing list [email protected] http://openvswitch.org/mailman/listinfo/dev
