On Thu, 20 Dec 2018 18:38:52 +0530
[email protected] wrote:

Hi,
I reviewed the patch inline.

Please consider also too add ovn-fedora.spec to rhel/.gitignore or
travis will complain about it.

> 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
       ^^ I suggest to add a space between $ and make for coherency
          with the other documents

> +
> +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
shadow-utils is not used in this spec file and so it can be removed
(it's used in openvswitch-fedora.spec in order to create the
openvswitch user and hugetlbfs group)

> +Requires(post): /bin/sed
/bin/sed is not used in this spec file and so it can be removed (it's
used in openvswitch-fedora.spec in order to
change /etc/sysconfig/openvswitch and logrotate)

> +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
This is probably not needed since this spec file doesn't ship
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.*
This should not be necessary since you are linking as static libraries

> +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
This should not be necessary since you are linking as static libraries

> +
> +%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.

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to