From: Numan Siddique <[email protected]> Up until now, OVN rpms were generated as sub packages of OpenvSwitch. This patch now splits it and makes OVN rpms independent.
A new spec file - ovn-fedora.spec.in is added for this. The openvswitch-fedora.spec.in has been modified to create only OpenvSwitch packages. Since we are not splitting the OVN code, the spec files run the same build procedure. Only the required binaries/files are copied into the rpms. The new package names will be ovn, ovn-common, ovn-central, ovn-host, ovn-vtep and ovn-docker. Signed-off-by: Numan Siddique <[email protected]> --- Documentation/intro/install/fedora.rst | 17 +- rhel/automake.mk | 9 + rhel/openvswitch-fedora.spec.in | 196 +---------- rhel/ovn-fedora.spec.in | 445 +++++++++++++++++++++++++ 4 files changed, 478 insertions(+), 189 deletions(-) create mode 100644 rhel/ovn-fedora.spec.in diff --git a/Documentation/intro/install/fedora.rst b/Documentation/intro/install/fedora.rst index 5e29e37bf..1acb34e63 100644 --- a/Documentation/intro/install/fedora.rst +++ b/Documentation/intro/install/fedora.rst @@ -103,9 +103,7 @@ in which `./configure` was executed: $ make rpm-fedora This will create the RPMs `openvswitch`, `python-openvswitch`, -`openvswitch-test`, `openvswitch-devel`, `openvswitch-ovn-common`, -`openvswitch-ovn-central`, `openvswitch-ovn-host`, `openvswitch-ovn-vtep`, -`openvswitch-ovn-docker`, and `openvswitch-debuginfo`. +`openvswitch-test`, `openvswitch-devel` and `openvswitch-debuginfo`. To enable DPDK support in the openvswitch package, the ``--with dpdk`` option can be added: @@ -121,6 +119,17 @@ tests. This can take several minutes. $ make rpm-fedora RPMBUILD_OPT="--with check" +To build OVN RPMs, execute the following from the directory in which +`./configure` was executed: + +:: + + $make rpm-fedora-ovn + +This will create the RPMs `ovn`, `ovn-common`, `ovn-central`, `ovn-host`, +`ovn-docker` and `ovn-vtep`. + + Kernel OVS Tree Datapath RPM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -156,7 +165,7 @@ In most cases only the `openvswitch` RPM will need to be installed. The `openvswitch-debuginfo` RPMs are optional unless required for a specific purpose. -The `openvswitch-ovn-*` packages are only needed when using OVN. +The `ovn-*` packages are only needed when using OVN. Refer to the `RHEL README`__ for additional usage and configuration information. diff --git a/rhel/automake.mk b/rhel/automake.mk index bc65d83e5..1c5bf153c 100644 --- a/rhel/automake.mk +++ b/rhel/automake.mk @@ -23,6 +23,8 @@ EXTRA_DIST += \ rhel/openvswitch.spec.in \ rhel/openvswitch-fedora.spec \ rhel/openvswitch-fedora.spec.in \ + rhel/ovn-fedora.spec \ + rhel/ovn-fedora.spec.in \ rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \ rhel/usr_share_openvswitch_scripts_sysconfig.template \ rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ @@ -72,6 +74,13 @@ rpm-fedora: dist $(srcdir)/rhel/openvswitch-fedora.spec -D "_topdir ${RPMBUILD_TOP}" \ -ba $(srcdir)/rhel/openvswitch-fedora.spec +rpm-fedora-ovn: dist $(srcdir)/rhel/ovn-fedora.spec + ${MKDIR_P} ${RPMBUILD_TOP}/SOURCES + cp ${DIST_ARCHIVES} ${RPMBUILD_TOP}/SOURCES + rpmbuild ${RPMBUILD_OPT} \ + -D "_topdir ${RPMBUILD_TOP}" \ + -ba $(srcdir)/rhel/ovn-fedora.spec + # Build kernel datapath RPM rpm-fedora-kmod: dist $(srcdir)/rhel/openvswitch-kmod-fedora.spec ${MKDIR_P} ${RPMBUILD_TOP}/SOURCES diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in index fedaf1077..94206022f 100644 --- a/rhel/openvswitch-fedora.spec.in +++ b/rhel/openvswitch-fedora.spec.in @@ -173,54 +173,6 @@ This provides the ifup and ifdown scripts for use with the legacy network service. %endif -%package ovn-central -Summary: Open vSwitch - Open Virtual Network support -License: ASL 2.0 -Requires: openvswitch openvswitch-ovn-common -Requires: firewalld-filesystem - -%description ovn-central -OVN, the Open Virtual Network, is a system to support virtual network -abstraction. OVN complements the existing capabilities of OVS to add -native support for virtual network abstractions, such as virtual L2 and L3 -overlays and security groups. - -%package ovn-host -Summary: Open vSwitch - Open Virtual Network support -License: ASL 2.0 -Requires: openvswitch openvswitch-ovn-common -Requires: firewalld-filesystem - -%description ovn-host -OVN, the Open Virtual Network, is a system to support virtual network -abstraction. OVN complements the existing capabilities of OVS to add -native support for virtual network abstractions, such as virtual L2 and L3 -overlays and security groups. - -%package ovn-vtep -Summary: Open vSwitch - Open Virtual Network support -License: ASL 2.0 -Requires: openvswitch openvswitch-ovn-common - -%description ovn-vtep -OVN vtep controller - -%package ovn-common -Summary: Open vSwitch - Open Virtual Network support -License: ASL 2.0 -Requires: openvswitch - -%description ovn-common -Utilities that are use to diagnose and manage the OVN components. - -%package ovn-docker -Summary: Open vSwitch - Open Virtual Network support -License: ASL 2.0 -Requires: openvswitch openvswitch-ovn-common %{_py2}-openvswitch - -%description ovn-docker -Docker network plugins for OVN. - %package ipsec Summary: Open vSwitch IPsec tunneling support License: ASL 2.0 @@ -282,7 +234,6 @@ install -p -D -m 0644 \ rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch for service in openvswitch ovsdb-server ovs-vswitchd ovs-delete-transient-ports \ - ovn-controller ovn-controller-vtep ovn-northd \ openvswitch-ipsec; do install -p -D -m 0644 \ rhel/usr_lib_systemd_system_${service}.service \ @@ -328,14 +279,6 @@ install -p -m 644 -D selinux/openvswitch-custom.pp \ $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp install -d $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/ -install -p -m 0644 rhel/usr_lib_firewalld_services_ovn-central-firewall-service.xml \ - $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml -install -p -m 0644 rhel/usr_lib_firewalld_services_ovn-host-firewall-service.xml \ - $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/ovn-host-firewall-service.xml - -install -d -m 0755 $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/ovn -ln -s %{_datadir}/openvswitch/scripts/ovndb-servers.ocf \ - $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers install -p -D -m 0755 \ rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \ @@ -346,6 +289,17 @@ rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace \ $RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \ $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 +# remove ovn unpackages files +rm -f $RPM_BUILD_ROOT%{_bindir}/ovn* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ovn* +rm -f $RPM_BUILD_ROOT%{_mandir}/man5/ovn* +rm -f $RPM_BUILD_ROOT%{_mandir}/man7/ovn* +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/ovn* +rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/ovn* +rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovn* +rm -f $RPM_BUILD_ROOT%{_includedir}/ovn/* +rm -f $RPM_BUILD_ROOT%{_libdir}/libovn* + %check %if %{with check} if make check TESTSUITEFLAGS='%{_smp_mflags}' RECHECK=yes; then :; @@ -379,39 +333,6 @@ rm -rf $RPM_BUILD_ROOT fi %endif -%preun ovn-central -%if 0%{?systemd_preun:1} - %systemd_preun ovn-northd.service -%else - if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || : - /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || : - fi -%endif - -%preun ovn-host -%if 0%{?systemd_preun:1} - %systemd_preun ovn-controller.service -%else - if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || : - /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || : - fi -%endif - -%preun ovn-vtep -%if 0%{?systemd_preun:1} - %systemd_preun ovn-controller-vtep.service -%else - if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable ovn-controller-vtep.service >/dev/null 2>&1 || : - /bin/systemctl stop ovn-controller-vtep.service >/dev/null 2>&1 || : - fi -%endif - %pre getent group openvswitch >/dev/null || groupadd -r openvswitch getent passwd openvswitch >/dev/null || \ @@ -449,36 +370,6 @@ fi fi %endif -%post ovn-central -%if 0%{?systemd_post:1} - %systemd_post ovn-northd.service -%else - # Package install, not upgrade - if [ $1 -eq 1 ]; then - /bin/systemctl daemon-reload >dev/null || : - fi -%endif - -%post ovn-host -%if 0%{?systemd_post:1} - %systemd_post ovn-controller.service -%else - # Package install, not upgrade - if [ $1 -eq 1 ]; then - /bin/systemctl daemon-reload >dev/null || : - fi -%endif - -%post ovn-vtep -%if 0%{?systemd_post:1} - %systemd_post ovn-controller-vtep.service -%else - # Package install, not upgrade - if [ $1 -eq 1 ]; then - /bin/systemctl daemon-reload >dev/null || : - fi -%endif - %post selinux-policy %selinux_modules_install -s targeted %{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp @@ -489,27 +380,6 @@ fi /bin/systemctl daemon-reload >/dev/null 2>&1 || : %endif -%postun ovn-central -%if 0%{?systemd_postun:1} - %systemd_postun ovn-northd.service -%else - /bin/systemctl daemon-reload >/dev/null 2>&1 || : -%endif - -%postun ovn-host -%if 0%{?systemd_postun:1} - %systemd_postun ovn-controller.service -%else - /bin/systemctl daemon-reload >/dev/null 2>&1 || : -%endif - -%postun ovn-vtep -%if 0%{?systemd_postun:1} - %systemd_postun ovn-controller-vtep.service -%else - /bin/systemctl daemon-reload >/dev/null 2>&1 || : -%endif - %postun selinux-policy if [ $1 -eq 0 ] ; then %selinux_modules_uninstall -s targeted openvswitch-custom @@ -550,7 +420,6 @@ fi %{_libdir}/pkgconfig/*.pc %{_includedir}/openvswitch/* %{_includedir}/openflow/* -%{_includedir}/ovn/* %exclude %{_libdir}/*.la %if 0%{?rhel} > 7 || 0%{?fedora} > 28 @@ -637,49 +506,6 @@ fi %attr(750,root,root) /var/log/openvswitch %ghost %attr(755,root,root) %{_rundir}/openvswitch -%files ovn-docker -%{_bindir}/ovn-docker-overlay-driver -%{_bindir}/ovn-docker-underlay-driver - -%files ovn-common -%{_bindir}/ovn-nbctl -%{_bindir}/ovn-sbctl -%{_bindir}/ovn-trace -%{_bindir}/ovn-detrace -%{_datadir}/openvswitch/scripts/ovn-ctl -%{_datadir}/openvswitch/scripts/ovndb-servers.ocf -%{_datadir}/openvswitch/scripts/ovn-bugtool-nbctl-show -%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-lflow-list -%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-show -%{_mandir}/man8/ovn-ctl.8* -%{_mandir}/man8/ovn-nbctl.8* -%{_mandir}/man8/ovn-trace.8* -%{_mandir}/man1/ovn-detrace.1* -%{_mandir}/man7/ovn-architecture.7* -%{_mandir}/man8/ovn-sbctl.8* -%{_mandir}/man5/ovn-nb.5* -%{_mandir}/man5/ovn-sb.5* -%{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers - -%files ovn-central -%{_bindir}/ovn-northd -%{_mandir}/man8/ovn-northd.8* -%config %{_datadir}/openvswitch/ovn-nb.ovsschema -%config %{_datadir}/openvswitch/ovn-sb.ovsschema -%{_unitdir}/ovn-northd.service -%{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml - -%files ovn-host -%{_bindir}/ovn-controller -%{_mandir}/man8/ovn-controller.8* -%{_unitdir}/ovn-controller.service -%{_prefix}/lib/firewalld/services/ovn-host-firewall-service.xml - -%files ovn-vtep -%{_bindir}/ovn-controller-vtep -%{_mandir}/man8/ovn-controller-vtep.8* -%{_unitdir}/ovn-controller-vtep.service - %files ipsec %{_datadir}/openvswitch/scripts/ovs-monitor-ipsec %{_unitdir}/openvswitch-ipsec.service diff --git a/rhel/ovn-fedora.spec.in b/rhel/ovn-fedora.spec.in new file mode 100644 index 000000000..9804a4cca --- /dev/null +++ b/rhel/ovn-fedora.spec.in @@ -0,0 +1,445 @@ +# Spec file for Open Virtual Network (OVN). + +# Copyright (C) 2018 Red Hat, Inc. +# +# Copying and distribution of this file, with or without modification, +# are permitted in any medium without royalty provided the copyright +# notice and this notice are preserved. This file is offered as-is, +# without warranty of any kind. +# +# If tests have to be skipped while building, specify the '--without check' +# option. For example: +# rpmbuild -bb --without check rhel/ovn-fedora.spec +# + +# If libcap-ng isn't available and there is no need for running OVS +# as regular user, specify the '--without libcapng' +%bcond_without libcapng + +# Enable Python 3 by specifying '--with build_python3'. +# This is enabled by default for versions of the distribution that +# have Python 3 by default (Fedora > 22). +%bcond_with build_python3 + +# Enable PIE, bz#955181 +%global _hardened_build 1 + +# some distros (e.g: RHEL-7) don't define _rundir macro yet +# Fedora 15 onwards uses /run as _rundir +%if 0%{!?_rundir:1} +%define _rundir /run +%endif + +# define the python package prefix based on distribution version so that we can +# simultaneously support RHEL-based and later Fedora versions in this spec file. +%if 0%{?fedora} >= 25 +%define _py2 python2 +%endif + +%if 0%{?rhel} || 0%{?fedora} < 25 +%define _py2 python +%endif + +Name: ovn +Summary: Open Virtual Network support +Group: System Environment/Daemons +URL: http://www.openvswitch.org/ +Version: @VERSION@ + +# Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the +# lib/sflow*.[ch] files are SISSL +License: ASL 2.0 and LGPLv2+ and SISSL +Release: 1%{?dist} +Source: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz + +BuildRequires: gcc gcc-c++ +BuildRequires: autoconf automake libtool +BuildRequires: systemd-units openssl openssl-devel +BuildRequires: %{_py2}-devel +%if 0%{?fedora} > 22 || %{with build_python3} +BuildRequires: python3-devel +%endif +BuildRequires: desktop-file-utils +BuildRequires: groff graphviz +BuildRequires: checkpolicy, selinux-policy-devel +BuildRequires: %{_py2}-sphinx +# make check dependencies +BuildRequires: %{_py2}-twisted%{?rhel:-core} %{_py2}-zope-interface %{_py2}-six +BuildRequires: procps-ng +%if %{with libcapng} +BuildRequires: libcap-ng libcap-ng-devel +%endif +BuildRequires: unbound unbound-devel + +Requires: openssl hostname iproute module-init-tools openvswitch + +Requires(pre): shadow-utils +Requires(post): /bin/sed +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units + +# to skip running checks, pass --without check +%bcond_without check + +%description +OVN, the Open Virtual Network, is a system to support virtual network +abstraction. OVN complements the existing capabilities of OVS to add +native support for virtual network abstractions, such as virtual L2 and L3 +overlays and security groups. + +%package central +Summary: Open Virtual Network support +License: ASL 2.0 +Requires: ovn ovn-common +Requires: firewalld-filesystem +Obsoletes: openvswitch-ovn-central +Provides: openvswitch-ovn-central = %{?epoch:%{epoch}:}%{version}-%{release} + +%description central +OVN DB servers and ovn-northd running on a central node. + +%package host +Summary: Open Virtual Network support +License: ASL 2.0 +Requires: ovn ovn-common +Requires: firewalld-filesystem +Obsoletes: openvswitch-ovn-host +Provides: openvswitch-ovn-host = %{?epoch:%{epoch}:}%{version}-%{release} + +%description host +OVN controller running on each host. + +%package vtep +Summary: Open Virtual Network support +License: ASL 2.0 +Requires: ovn ovn-common +Obsoletes: openvswitch-ovn-vtep +Provides: openvswitch-ovn-vtep = %{?epoch:%{epoch}:}%{version}-%{release} + +%description vtep +OVN vtep controller + +%package common +Summary: Open Virtual Network support +License: ASL 2.0 +Requires: ovn +Obsoletes: openvswitch-ovn-common +Provides: openvswitch-ovn-common = %{?epoch:%{epoch}:}%{version}-%{release} + +%description common +Utilities that are use to diagnose and manage the OVN components. + +%package docker +Summary: Open Virtual Network support +License: ASL 2.0 +Requires: ovn ovn-common %{_py2}-openvswitch +Obsoletes: openvswitch-ovn-docker +Provides: openvswitch-ovn-docker = %{?epoch:%{epoch}:}%{version}-%{release} + +%description docker +Docker network plugins for OVN. + +%prep +%setup -n openvswitch-%{version} + +%build +%configure \ +%if %{with libcapng} + --enable-libcapng \ +%else + --disable-libcapng \ +%endif + --enable-ssl \ + --with-pkidir=%{_sharedstatedir}/openvswitch/pki \ +%if 0%{?fedora} > 22 || %{with build_python3} + PYTHON3=%{__python3} \ + PYTHON=%{__python2} +%else + PYTHON=%{__python} +%endif + +make %{?_smp_mflags} +make selinux-policy + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT + +for service in ovn-controller ovn-controller-vtep ovn-northd; do + install -p -D -m 0644 \ + rhel/usr_lib_systemd_system_${service}.service \ + $RPM_BUILD_ROOT%{_unitdir}/${service}.service +done + +rm -rf $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/ + +install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch + +install -d $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/ +install -p -m 0644 rhel/usr_lib_firewalld_services_ovn-central-firewall-service.xml \ + $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml +install -p -m 0644 rhel/usr_lib_firewalld_services_ovn-host-firewall-service.xml \ + $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/ovn-host-firewall-service.xml + +install -d -m 0755 $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/ovn +ln -s %{_datadir}/openvswitch/scripts/ovndb-servers.ocf \ + $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers + +# remove OVS unpackages files +rm -f $RPM_BUILD_ROOT%{_bindir}/ovs* +rm -f $RPM_BUILD_ROOT%{_bindir}/vtep-ctl +rm -f $RPM_BUILD_ROOT%{_sbindir}/ovs* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/ovs* +rm -f $RPM_BUILD_ROOT%{_mandir}/man5/ovs* +rm -f $RPM_BUILD_ROOT%{_mandir}/man5/vtep* +rm -f $RPM_BUILD_ROOT%{_mandir}/man7/ovs* +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/ovs* +rm -f $RPM_BUILD_ROOT%{_mandir}/man8/vtep* +rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/ovs* +rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/vswitch.ovsschema +rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/vtep.ovsschema +rm -f $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs* +rm -rf $RPM_BUILD_ROOT%{_datadir}/openvswitch/bugtool-plugins +rm -f $RPM_BUILD_ROOT%{_includedir}/openvswitch/* +rm -f $RPM_BUILD_ROOT%{_includedir}/openflow/* +rm -f $RPM_BUILD_ROOT%{_libdir}/lib*.so.* +rm -f $RPM_BUILD_ROOT%{_libdir}/*.a +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +rm -f $RPM_BUILD_ROOT%{_libdir}/pkgconfig/*.pc +rm -f $RPM_BUILD_ROOT%{_includedir}/openvswitch/* +rm -f $RPM_BUILD_ROOT%{_includedir}/openflow/* +rm -f $RPM_BUILD_ROOT%{_includedir}/ovn/* +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash +rm -f $RPM_BUILD_ROOT%{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash +rm -rf $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/openvswitch +rm -rf $RPM_BUILD_ROOT%{_usr}/%{_lib}/lib*.so + +%check +%if %{with check} + if make check TESTSUITEFLAGS='%{_smp_mflags}' RECHECK=yes; then :; + else + cat tests/testsuite.log + exit 1 + fi +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%pre central +if [ $1 -eq 1 ] ; then + # Package install. + /bin/systemctl status ovn-northd.service >/dev/null + ovn_status=$? + rpm -ql openvswitch-ovn-central > /dev/null + if [[ "$?" = "0" && "$ovn_status" = "0" ]]; then + # ovn-northd service is running which means old openvswitch-ovn-central + # is already installed and it will be cleaned up. So start ovn-northd + # service when posttrans central is called. + touch %{_localstatedir}/lib/rpm-state/ovn-northd + fi +fi + +%pre host +if [ $1 -eq 1 ] ; then + # Package install. + /bin/systemctl status ovn-controller.service >/dev/null + ovn_status=$? + rpm -ql openvswitch-ovn-host > /dev/null + if [[ "$?" = "0" && "$ovn_status" = "0" ]]; then + # ovn-controller service is running which means old + # openvswitch-ovn-host is installed and it will be cleaned up. So + # start ovn-controller service when posttrans host is called. + touch %{_localstatedir}/lib/rpm-state/ovn-controller + fi +fi + +%pre vtep +if [ $1 -eq 1 ] ; then + # Package install. + /bin/systemctl status ovn-controller-vtep.service >/dev/null + ovn_status=$? + rpm -ql openvswitch-ovn-vtep > /dev/null + if [[ "$?" = "0" && "$ovn_status" = "0" ]]; then + # ovn-controller-vtep service is running which means old + # openvswitch-ovn-vtep is installed and it will be cleaned up. So + # start ovn-controller-vtep service when posttrans host is called. + touch %{_localstatedir}/lib/rpm-state/ovn-controller-vtep + fi +fi + +%preun central +%if 0%{?systemd_preun:1} + %systemd_preun ovn-northd.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || : + fi +%endif + +%preun host +%if 0%{?systemd_preun:1} + %systemd_preun ovn-controller.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || : + fi +%endif + +%preun vtep +%if 0%{?systemd_preun:1} + %systemd_preun ovn-controller-vtep.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable ovn-controller-vtep.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-controller-vtep.service >/dev/null 2>&1 || : + fi +%endif + +%post central +%if 0%{?systemd_post:1} + %systemd_post ovn-northd.service +%else + # Package install, not upgrade + if [ $1 -eq 1 ]; then + /bin/systemctl daemon-reload >dev/null || : + fi +%endif + +%post host +%if 0%{?systemd_post:1} + %systemd_post ovn-controller.service +%else + # Package install, not upgrade + if [ $1 -eq 1 ]; then + /bin/systemctl daemon-reload >dev/null || : + fi +%endif + +%post vtep +%if 0%{?systemd_post:1} + %systemd_post ovn-controller-vtep.service +%else + # Package install, not upgrade + if [ $1 -eq 1 ]; then + /bin/systemctl daemon-reload >dev/null || : + fi +%endif + +%postun + +%postun central +%if 0%{?systemd_postun_with_restart:1} + %systemd_postun_with_restart ovn-northd.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : + if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart ovn-northd.service >/dev/null 2>&1 || : + fi +%endif + +%postun host +%if 0%{?systemd_postun_with_restart:1} + %systemd_postun_with_restart ovn-controller.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : + if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart ovn-controller.service >/dev/null 2>&1 || : + fi +%endif + +%postun vtep +%if 0%{?systemd_postun_with_restart:1} + %systemd_postun_with_restart ovn-controller-vtep.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : + if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart ovn-controller-vtep.service >/dev/null 2>&1 || : + fi +%endif + +%posttrans central +if [ $1 -eq 1 ]; then + # Package install, not upgrade + if [ -e %{_localstatedir}/lib/rpm-state/ovn-northd ]; then + rm %{_localstatedir}/lib/rpm-state/ovn-northd + /bin/systemctl start ovn-northd.service >/dev/null 2>&1 || : + fi +fi + + +%posttrans host +if [ $1 -eq 1 ]; then + # Package install, not upgrade + if [ -e %{_localstatedir}/lib/rpm-state/ovn-controller ]; then + rm %{_localstatedir}/lib/rpm-state/ovn-controller + /bin/systemctl start ovn-controller.service >/dev/null 2>&1 || : + fi +fi + +%posttrans vtep +if [ $1 -eq 1 ]; then + # Package install, not upgrade + if [ -e %{_localstatedir}/lib/rpm-state/ovn-controller-vtep ]; then + rm %{_localstatedir}/lib/rpm-state/ovn-controller-vtep + /bin/systemctl start ovn-controller-vtep.service >/dev/null 2>&1 || : + fi +fi + +%files + +%files docker +%{_bindir}/ovn-docker-overlay-driver +%{_bindir}/ovn-docker-underlay-driver + +%files common +%{_bindir}/ovn-nbctl +%{_bindir}/ovn-sbctl +%{_bindir}/ovn-trace +%{_bindir}/ovn-detrace +%{_datadir}/openvswitch/scripts/ovn-ctl +%{_datadir}/openvswitch/scripts/ovndb-servers.ocf +%{_datadir}/openvswitch/scripts/ovn-bugtool-nbctl-show +%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-lflow-list +%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-show +%{_mandir}/man8/ovn-ctl.8* +%{_mandir}/man8/ovn-nbctl.8* +%{_mandir}/man8/ovn-trace.8* +%{_mandir}/man1/ovn-detrace.1* +%{_mandir}/man7/ovn-architecture.7* +%{_mandir}/man8/ovn-sbctl.8* +%{_mandir}/man5/ovn-nb.5* +%{_mandir}/man5/ovn-sb.5* +%{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers + +%files central +%{_bindir}/ovn-northd +%{_mandir}/man8/ovn-northd.8* +%config %{_datadir}/openvswitch/ovn-nb.ovsschema +%config %{_datadir}/openvswitch/ovn-sb.ovsschema +%{_unitdir}/ovn-northd.service +%{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml + +%files host +%{_bindir}/ovn-controller +%{_mandir}/man8/ovn-controller.8* +%{_unitdir}/ovn-controller.service +%{_prefix}/lib/firewalld/services/ovn-host-firewall-service.xml + +%files vtep +%{_bindir}/ovn-controller-vtep +%{_mandir}/man8/ovn-controller-vtep.8* +%{_unitdir}/ovn-controller-vtep.service + +%changelog +* Thu Dec 20 2018 Numan Siddique <[email protected]> +- OVS/OVN split. -- 2.19.2 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
