Currently we have rhel/openvswitch.spec.in that provides sysv scripts. The fedora package provides systemd scripts. If one upgrades openvswitch package from sysv to systemd, you will end up in a situation where old OVS daemons are running, but systemd does not know about it. One "restart" is needed for systemd to see the old daemons. Another "restart" or "force-reload-kmod" is needed to actually use the new daemons.
This commit, just takes care of the first restart. The "real" restart/force-reload-kmod will still have to be done outside the package installation. Signed-off-by: Gurucharan Shetty <[email protected]> --- rhel/openvswitch-fedora.spec.in | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in index e8165f9..d41d11c 100644 --- a/rhel/openvswitch-fedora.spec.in +++ b/rhel/openvswitch-fedora.spec.in @@ -364,6 +364,12 @@ getent passwd openvswitch >/dev/null || \ usermod -a -G hugetlbfs openvswitch %endif %endif + +%if %{with autoenable} + if [ -x "/etc/init.d/openvswitch" ]; then + touch %{_tmppath}/ovs-upgrade-from-sysv + fi +%endif exit 0 %post @@ -397,6 +403,14 @@ fi %if %{with autoenable} systemctl daemon-reload systemctl enable openvswitch + # Handle upgrades to this package from the OVS repo's rhel packages. + # One "restart" is needed for newer systemd files to see the old running + # daemons. Another "restart" (outside the package postinst script) is + # needed to actually run new daemons. + if [ -e "%{_tmppath}/ovs-upgrade-from-sysv" ]; then + systemctl restart openvswitch + rm "%{_tmppath}/ovs-upgrade-from-sysv" + fi %endif %post selinux-policy -- 1.9.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
