[ovs-dev] [PATCH 1/2] fedora: Ability to auto enable openvswitch service.

Timothy Redaelli tredaelli at redhat.com
Fri May 10 15:13:45 UTC 2019


On Fri,  3 May 2019 00:05:34 -0700
Gurucharan Shetty <guru at ovn.org> wrote:

> We currently have rhel/openvswitch.spec.in that automatically
> enables openvswitch service when the package is installed using
> chkconfig.
> 
> But fedora rpm may not enable openvswitch service automatically.
> The macro currently being used in fedora rpm (systemd_post) will
> look for preset files in /etc/systemd/system-preset/ to figure
> out whether openvswitch service needs to be automatically enabled.
> But, the fedora package does not provide such a file. The argument
> is that people may want to install the package for binaries and
> not necessarily to run OVS.
> 
> If someone now wants to install the fedora package and automatically
> enable openvswitch, he will have to create a new package that OVS
> package depends on to install the preset file. This is unwieldy.
> 
> This commit, provides a rpm build time option to enable the openvswitch
> service automatically. If you now run the below command, openvswitch
> service will be automatically enabled during package installation.
> 
> make rpm-fedora RPMBUILD_OPT="--with autoenable"
> 
> Signed-off-by: Gurucharan Shetty <guru at ovn.org>
> ---
>  rhel/openvswitch-fedora.spec.in | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in
> index ce728b4..e8165f9 100644
> --- a/rhel/openvswitch-fedora.spec.in
> +++ b/rhel/openvswitch-fedora.spec.in
> @@ -32,6 +32,9 @@
>  # This is enabled by default for versions of the distribution that
>  # have Python 3 by default (Fedora > 22).
>  %bcond_with build_python3
> +# If there is a need to automatically enable the package after installation,
> +# specify the "--with autoenable"
> +%bcond_with autoenable
>  
>  # Enable PIE, bz#955181
>  %global _hardened_build 1
> @@ -382,6 +385,7 @@ fi
>  %endif
>  
>  %if 0%{?systemd_post:1}
> +    # This may not enable openvswitch service or do daemon-reload.
>      %systemd_post %{name}.service
>  %else
>      # Package install, not upgrade
> @@ -390,6 +394,11 @@ fi
>      fi
>  %endif
>  
> +%if %{with autoenable}
> +    systemctl daemon-reload
> +    systemctl enable openvswitch
> +%endif
> +
>  %post selinux-policy
>  %selinux_modules_install -s targeted %{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp
>  

Hi,
usually a package on Fedora/RHEL7+ is never enabled by default, unless
it's necessary to enable it for a really good reason.

So any Fedora/RHEL7+ user knows (and expect) that he need to manually
enable/start a service after it's installed.

Probably it's better to put something like (postun?):

if /sbin/chkconfig --level 3 openvswitch; then                                     
    /bin/systemctl enable openvswitch.service >/dev/null 2>&1 || :
    /bin/systemctl restart openvswitch.service >/dev/null 2>&1 || :
fi

Just to enable it if it was enabled before on sysv?

I didn't tested it, but usually (on Fedora spec files) it's the correct
way to do that.

Thank you



More information about the dev mailing list