On 8/13/19 12:28 PM, nusid...@redhat.com wrote:
From: Numan Siddique <nusid...@redhat.com>

"make rpm-fedora" is broken and this patch fixes it. Previous patch
in this series supported building OVN from external OVS sources.

Before running "make rpm-fedora", it is expected that the developer has run
"make dist" in the OVS source folder to generate the 
openvswitch-%{version}.tar.gz.
This tar file is copied to rpmbuild/SOURCES. The rpm spec file extracts this tar
file (using %autosetup in prep step) and compiles it before compiling OVN.

Signed-off-by: Numan Siddique <nusid...@redhat.com>
---
  Documentation/intro/install/fedora.rst        | 13 +++-
  rhel/automake.mk                              |  2 +
  rhel/etc_logrotate.d_ovn                      | 22 ++++++
  rhel/ovn-fedora.spec.in                       | 78 +++++++++++++------
  ...systemd_system_ovn-controller-vtep.service | 13 ++--
  ..._lib_systemd_system_ovn-controller.service |  7 +-
  .../usr_lib_systemd_system_ovn-northd.service | 12 ++-
  utilities/ovn-ctl                             |  3 +-
  8 files changed, 105 insertions(+), 45 deletions(-)
  create mode 100644 rhel/etc_logrotate.d_ovn

diff --git a/Documentation/intro/install/fedora.rst 
b/Documentation/intro/install/fedora.rst
index c8ea6ec01..4cf9fbdb6 100644
--- a/Documentation/intro/install/fedora.rst
+++ b/Documentation/intro/install/fedora.rst
@@ -96,8 +96,15 @@ Building
  OVN RPMs
  ~~~~~~~~~~~~~~~
-To build OVN RPMs, execute the following from the directory
-in which `./configure` was executed:
+To build OVN RPMs, first generate openvswitch source tar bar in

tar bar?

+your openvwitch source directory by running
+
+::
+
+    $make dist
+
+And then execute the following in the OVN source directory
+(in which `./configure` was executed):
:: @@ -108,7 +115,7 @@ This will create the RPMs `ovn`, `ovn-central`, `ovn-host`, `ovn-vtep`,
  ``ovn-host-debuginfo`` and ```ovn-vtep-debuginfo```.
-You can also have the above commands automatically run the Open vSwitch unit
+You can also have the above commands automatically run the OVN unit
  tests.  This can take several minutes.
::
diff --git a/rhel/automake.mk b/rhel/automake.mk
index be7c275a7..39e216b01 100644
--- a/rhel/automake.mk
+++ b/rhel/automake.mk
@@ -8,6 +8,7 @@
  EXTRA_DIST += \
        rhel/README.RHEL.rst \
        rhel/automake.mk \
+       rhel/etc_logrotate.d_ovn \
        rhel/ovn-fedora.spec \
        rhel/ovn-fedora.spec.in \
        rhel/usr_lib_systemd_system_ovn-controller.service \
@@ -27,6 +28,7 @@ RPMBUILD_OPT ?= --without check
  rpm-fedora: dist $(srcdir)/rhel/ovn-fedora.spec
        ${MKDIR_P} ${RPMBUILD_TOP}/SOURCES
        cp ${DIST_ARCHIVES} ${RPMBUILD_TOP}/SOURCES
+       cp $(ovs_builddir)/openvswitch-$(VERSION).tar.gz ${RPMBUILD_TOP}/SOURCES
        rpmbuild ${RPMBUILD_OPT} \
                   -D "_topdir ${RPMBUILD_TOP}" \
                   -ba $(srcdir)/rhel/ovn-fedora.spec
diff --git a/rhel/etc_logrotate.d_ovn b/rhel/etc_logrotate.d_ovn
new file mode 100644
index 000000000..a351ec303
--- /dev/null
+++ b/rhel/etc_logrotate.d_ovn
@@ -0,0 +1,22 @@
+# Copyright (C) 2019 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.
+
+/var/log/ovn/*.log {
+    su root root
+    daily
+    compress
+    sharedscripts
+    missingok
+    postrotate
+        # Tell OVN daemons to reopen their log files
+        if [ -d /var/run/ovn ]; then
+            for ctl in /var/run/ovn/*.ctl; do
+                ovs-appctl -t "$ctl" vlog/reopen 2>/dev/null || :
+            done
+        fi
+    endscript
+}
diff --git a/rhel/ovn-fedora.spec.in b/rhel/ovn-fedora.spec.in
index 2234e949f..cbca87511 100644
--- a/rhel/ovn-fedora.spec.in
+++ b/rhel/ovn-fedora.spec.in
@@ -1,6 +1,6 @@
  # Spec file for Open Virtual Network (OVN).
-# Copyright (C) 2018 Red Hat, Inc.
+# Copyright (C) 2018,2019 Red Hat, Inc.
  #
  # Copying and distribution of this file, with or without modification,
  # are permitted in any medium without royalty provided the copyright
@@ -48,11 +48,15 @@ Version: @VERSION@
  Obsoletes: openvswitch-ovn-common < %{?epoch:%{epoch}:}%{version}-%{release}
  Provides: openvswitch-ovn-common = %{?epoch:%{epoch}:}%{version}-%{release}
+%define ovsver %{version}
+%define ovsdir openvswitch-%{ovsver}
+
  # 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
+Source: http://openvswitch.org/releases/ovn-%{version}.tar.gz
+Source10: http://openvswitch.org/releases/openvswitch-%{ovsver}.tar.gz
BuildRequires: gcc gcc-c++
  BuildRequires: autoconf automake libtool
@@ -131,10 +135,37 @@ Provides: openvswitch-ovn-docker = 
%{?epoch:%{epoch}:}%{version}-%{release}
  Docker network plugins for OVN.
%prep
-%setup -n openvswitch-%{version}
+%autosetup -n ovn-%{version} -a 10 -p 1
+
%build
+./boot.sh
+
+# Build openvswitch first
+cd openvswitch-%{ovsver}
+./boot.sh
  %configure \
+        --with-ovs-source=ovs \
+%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}
+cd -
+
+# Build OVN.
+%configure \
+        --with-ovs-source=$PWD/openvswitch-%{ovsver} \
  %if %{with libcapng}
          --enable-libcapng \
  %else
@@ -163,7 +194,7 @@ done
rm -rf $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/ -install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch
+install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/ovn
install -d $RPM_BUILD_ROOT%{_prefix}/lib/firewalld/services/
  install -p -m 0644 
rhel/usr_lib_firewalld_services_ovn-central-firewall-service.xml \
@@ -172,9 +203,12 @@ 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 \
+ln -s %{_datadir}/ovn/scripts/ovndb-servers.ocf \
        $RPM_BUILD_ROOT%{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers
+install -p -D -m 0644 rhel/etc_logrotate.d_ovn \
+        $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/ovn
+
  # remove OVS unpackages files
  rm -f $RPM_BUILD_ROOT%{_bindir}/ovs*
  rm -f $RPM_BUILD_ROOT%{_bindir}/vtep-ctl
@@ -185,18 +219,12 @@ 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 -rf $RPM_BUILD_ROOT%{_datadir}/ovn/python
+rm -f $RPM_BUILD_ROOT%{_datadir}/ovn/scripts/ovs*
+rm -rf $RPM_BUILD_ROOT%{_datadir}/ovn/bugtool-plugins
  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
@@ -389,20 +417,22 @@ fi
  %{_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
+%{_datadir}/ovn/scripts/ovn-ctl
+%{_datadir}/ovn/scripts/ovn-lib
+%{_datadir}/ovn/scripts/ovndb-servers.ocf
+%{_datadir}/ovn/scripts/ovn-bugtool-nbctl-show
+%{_datadir}/ovn/scripts/ovn-bugtool-sbctl-lflow-list
+%{_datadir}/ovn/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}/man7/ovn-architecture.7* - Uncomment this once the manpage is fixed
  %{_mandir}/man8/ovn-sbctl.8*
-%{_mandir}/man5/ovn-nb.5*
-%{_mandir}/man5/ovn-sb.5*
+#%{_mandir}/man5/ovn-nb.5* - Uncomment this once the manpage is fixed
+#%{_mandir}/man5/ovn-sb.5* - Uncomment this once the manpage is fixed
  %{_prefix}/lib/ocf/resource.d/ovn/ovndb-servers
+%config(noreplace) %{_sysconfdir}/logrotate.d/ovn
%files docker
  %{_bindir}/ovn-docker-overlay-driver
@@ -411,8 +441,8 @@ fi
  %files central
  %{_bindir}/ovn-northd
  %{_mandir}/man8/ovn-northd.8*
-%config %{_datadir}/openvswitch/ovn-nb.ovsschema
-%config %{_datadir}/openvswitch/ovn-sb.ovsschema
+%config %{_datadir}/ovn/ovn-nb.ovsschema
+%config %{_datadir}/ovn/ovn-sb.ovsschema
  %{_unitdir}/ovn-northd.service
  %{_prefix}/lib/firewalld/services/ovn-central-firewall-service.xml
diff --git a/rhel/usr_lib_systemd_system_ovn-controller-vtep.service b/rhel/usr_lib_systemd_system_ovn-controller-vtep.service
index 4ca684ac0..832849488 100644
--- a/rhel/usr_lib_systemd_system_ovn-controller-vtep.service
+++ b/rhel/usr_lib_systemd_system_ovn-controller-vtep.service
@@ -19,12 +19,12 @@
  # /etc/systemd/system/ovn-controller-vtep.d/local.conf:
  #
  #   [System]
-#   Environment="OVN_DB=unix:/usr/local/var/run/openvswitch/db.sock" 
"VTEP_DB=unix:/usr/local/var/run/openvswitch/vtep.sock"
+#   Environment="OVN_DB=unix:/usr/local/var/run/ovn/db.sock" 
"VTEP_DB=unix:/usr/local/var/run/ovn/vtep.sock"
  #
  # Alternatively, you may specify environment variables in the file 
/etc/sysconfig/ovn-controller-vtep:
  #
-#   OVN_DB="unix:/usr/local/var/run/openvswitch/db.sock"
-#   VTEP_DB="unix:/usr/local/var/run/openvswitch/vtep.sock"
+#   OVN_DB="unix:/usr/local/var/run/ovn/db.sock"
+#   VTEP_DB="unix:/usr/local/var/run/ovn/vtep.sock"
[Unit]
  Description=OVN VTEP gateway controller daemon
@@ -36,12 +36,13 @@ After=openvswitch.service
  Type=simple
  Restart=on-failure
  Environment=OVS_RUNDIR=%t/openvswitch
-Environment=OVN_DB=unix:%t/openvswitch/db.sock
+Environment=OVN_RUNDIR=%t/ovn
+Environment=OVN_DB=unix:%t/ovn/ovnsb_db.sock
  Environment=VTEP_DB=unix:%t/openvswitch/db.sock
  EnvironmentFile=-/etc/sysconfig/ovn-controller-vtep
  ExecStart=/usr/bin/ovn-controller-vtep -vconsole:emer -vsyslog:err 
-vfile:info \
-          --log-file=/var/log/openvswitch/ovn-controller-vtep.log \
-          --no-chdir --pidfile=${OVS_RUNDIR}/ovn-controller-vtep.pid \
+          --log-file=/var/log/ovn/ovn-controller-vtep.log \
+          --no-chdir --pidfile=${OVN_RUNDIR}/ovn-controller-vtep.pid \
            --ovnsb-db=${OVN_DB} --vtep-db=${VTEP_DB}
[Install]
diff --git a/rhel/usr_lib_systemd_system_ovn-controller.service 
b/rhel/usr_lib_systemd_system_ovn-controller.service
index cf65988fe..6c8f33a27 100644
--- a/rhel/usr_lib_systemd_system_ovn-controller.service
+++ b/rhel/usr_lib_systemd_system_ovn-controller.service
@@ -21,12 +21,13 @@ After=openvswitch.service
[Service]
  Type=forking
-PIDFile=/var/run/openvswitch/ovn-controller.pid
+PIDFile=/var/run/ovn/ovn-controller.pid
  Restart=on-failure
+Environment=OVN_RUNDIR=%t/ovn OVS_RUNDIR=%t/openvswitch
  EnvironmentFile=-/etc/sysconfig/ovn-controller
-ExecStart=/usr/share/openvswitch/scripts/ovn-ctl --no-monitor \
+ExecStart=/usr/share/ovn/scripts/ovn-ctl --no-monitor \
            start_controller $OVN_CONTROLLER_OPTS
-ExecStop=/usr/share/openvswitch/scripts/ovn-ctl stop_controller
+ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_controller
[Install]
  WantedBy=multi-user.target
diff --git a/rhel/usr_lib_systemd_system_ovn-northd.service 
b/rhel/usr_lib_systemd_system_ovn-northd.service
index 3c44600a0..82c23cee4 100644
--- a/rhel/usr_lib_systemd_system_ovn-northd.service
+++ b/rhel/usr_lib_systemd_system_ovn-northd.service
@@ -7,25 +7,23 @@
  # /etc/systemd/system/ovn-northd.d/local.conf:
  #
  #   [System]
-#   
Environment="OVN_NORTHD_OPTS=--db-nb-sock=/usr/local/var/run/openvswitch/ovnnb_db.sock
 --db-sb-sock=/usr/local/var/run/openvswitch/ovnsb_db.sock"
+#   Environment="OVN_NORTHD_OPTS=--db-nb-sock=/usr/local/var/run/ovn/ovnnb_db.sock 
--db-sb-sock=/usr/local/var/run/ovn/ovnsb_db.sock"
  #
  # Alternatively, you may specify environment variables in the file 
/etc/sysconfig/ovn-northd:
  #
-#   OVN_NORTHD_OPTS="--db-nb-sock=/usr/local/var/run/openvswitch/ovnnb_db.sock 
--db-sb-sock=/usr/local/var/run/openvswitch/ovnsb_db.sock"
+#   OVN_NORTHD_OPTS="--db-nb-sock=/usr/local/var/run/ovn/ovnnb_db.sock 
--db-sb-sock=/usr/local/var/run/ovn/ovnsb_db.sock"
[Unit]
  Description=OVN northd management daemon
  After=syslog.target
-Requires=openvswitch.service
-After=openvswitch.service
[Service]
  Type=oneshot
  RemainAfterExit=yes
-Environment=OVS_RUNDIR=%t/openvswitch OVS_DBDIR=/var/lib/openvswitch
+Environment=OVN_RUNDIR=%t/ovn OVN_DBDIR=/var/lib/ovn
  EnvironmentFile=-/etc/sysconfig/ovn-northd
-ExecStart=/usr/share/openvswitch/scripts/ovn-ctl start_northd $OVN_NORTHD_OPTS
-ExecStop=/usr/share/openvswitch/scripts/ovn-ctl stop_northd
+ExecStart=/usr/share/ovn/scripts/ovn-ctl start_northd $OVN_NORTHD_OPTS
+ExecStop=/usr/share/ovn/scripts/ovn-ctl stop_northd
[Install]
  WantedBy=multi-user.target
diff --git a/utilities/ovn-ctl b/utilities/ovn-ctl
index a973b09a2..39e03b189 100755
--- a/utilities/ovn-ctl
+++ b/utilities/ovn-ctl
@@ -188,7 +188,7 @@ $cluster_remote_port
      set "$@" --remote=punix:$sock --pidfile=$db_pid_file
      set "$@" --unixctl=$ctrl_sock
- [ "$OVS_USER" != "" ] && set "$@" --user "$OVS_USER"
+    [ "$OVN_USER" != "" ] && set "$@" --user "$OVN_USER"
if test X"$detach" != Xno; then
          set "$@" --detach --monitor
@@ -487,7 +487,6 @@ set_defaults () {
      OVN_CONTROLLER_WRAPPER=
OVN_USER=
-    OVS_USER=
OVN_CONTROLLER_LOG="-vconsole:emer -vsyslog:err -vfile:info"
      OVN_NORTHD_LOG="-vconsole:emer -vsyslog:err -vfile:info"


_______________________________________________
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to