[ovs-dev] [PATCH ovn 3/4] Fix "make rpm-fedora"
Numan Siddique
nusiddiq at redhat.com
Mon Aug 19 17:23:22 UTC 2019
On Fri, Aug 16, 2019 at 10:46 PM Mark Michelson <mmichels at redhat.com> wrote:
> On 8/13/19 12:28 PM, nusiddiq at redhat.com wrote:
> > From: Numan Siddique <nusiddiq at 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 <nusiddiq at 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?
>
Oops. I meant tarball. I will correct in v2.
Thanks
Numan
>
> > +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
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
>
More information about the dev
mailing list