[ovs-dev] [PATCH ovn] Build OVN using external OVS directory

Numan Siddique nusiddiq at redhat.com
Thu Aug 1 15:00:23 UTC 2019


On Thu, Aug 1, 2019 at 7:49 PM Ilya Maximets <i.maximets at samsung.com> wrote:

> On 01.08.2019 16:21, Numan Siddique wrote:
> >
> >
> > On Thu, Aug 1, 2019 at 6:33 PM Ilya Maximets <i.maximets at samsung.com
> <mailto:i.maximets at samsung.com>> wrote:
> >
> >     > On Thu, Aug 1, 2019 at 5:57 PM Lucas Alvares Gomes <lucasagomes at
> gmail.com <http://gmail.com>>
> >     > wrote:
> >     >
> >     >> Thanks Numan,
> >     >>
> >     >> I've manually tested it (using the snippet example in the commit
> >     >> message) locally in an env of mine and it works.
> >     >>
> >     >
> >     > Thanks for the review. Right now this patch is failing in travis
> CI. It
> >     > runs "make distcheck" and it is failing
> >     > I am working on it.
> >
> >     I guess, you need to add '--with-ovs-source' to
> DISTCHECK_CONFIGURE_FLAGS
> >     for it to work.
> >
> >
> > That's right. But it is turning to be a bit tricky. In
> .travis/linux-build.sh I am doing something like this now (still WIP)
> >
> > *******
> >
> > function configure_ovs()
> > {
> >     git clone https://github.com/openvswitch/ovs.git ovs_src
> >     pushd ovs_src
> >     ./boot.sh && ./configure $* || { cat config.log; exit 1; }
> >     make -j4
> >     popd
> > }
> >
> > function configure_ovn()
> > {
> >     configure_ovs
> >     ./boot.sh && ./configure --with-ovs-source=ovs_src $* || { cat
> config.log; exit 1; }
> > }
> >
> > export DISTCHECK_CONFIGURE_FLAGS="$OPTS --with-ovs-source=$PWD/ovs_src"
> >     if ! make distcheck -j4 TESTSUITEFLAGS="-j4" RECHECK=yes; then
> >         # testsuite.log is necessary for debugging.
> >         cat */_build/tests/testsuite.log
> >         exit 1
> >     fi
> > ***************
> >
> > In the function configure_ovn, I need to pass --with-ovs-source=ovs_src.
> > If I pass --with-ovs-source=$PWD/ovs_src, then configure of make
> distcheck fails with the error
> >
> > ########
> > if test -d "ovn-2.12.90"; then find "ovn-2.12.90" -type d ! -perm -200
> -exec chmod u+w {} ';' && rm -rf "ovn-2.12.90" || { sleep 5 && rm -rf
> "ovn-2.12.90"; }; else :; fi
> > test -d "ovn-2.12.90" || mkdir "ovn-2.12.90"
> > cp: cannot stat
> './/home/nusiddiq/workspace_cpp/ovn-org/ovn_tst/ovs_src/ovsdb/ovsdb-idlc.1':
> No such file or directory
> > make[2]: *** [Makefile:2744: distdir-am] Error 1
> > make[2]: Leaving directory '/home/nusiddiq/workspace_cpp/ovn-org/ovn_tst'
> > make[1]: *** [Makefile:2739: distdir] Error 2
> > ##########
>
> I see. It's hard to understand where the root cause.
> There are few more issues:
>

Thanks for pointing them out.

>
> 1.
> diff --git a/tests/automake.mk b/tests/automake.mk
> index 255964fb7..f4027923f 100644
> --- a/tests/automake.mk
> +++ b/tests/automake.mk
> @@ -230,7 +230,7 @@ tests/testpki-req2.pem: tests/pki/stamp
>  tests/testpki-privkey2.pem: tests/pki/stamp
>         $(AM_V_GEN)cp tests/pki/test2-privkey.pem $@
>
> -OVS_PKI = $(SHELL) $(srcdir)/ovs/utilities/ovs-pki.in --dir=tests/pki
> --log=tests/ovs-pki.log
> +OVS_PKI = $(SHELL) $(OVSDIR)/utilities/ovs-pki.in --dir=tests/pki
> --log=tests/ovs-pki.log
>  tests/pki/stamp:
>         $(AM_V_at)rm -f tests/pki/stamp
>         $(AM_V_at)rm -rf tests/pki
> --
>
> 2. You need to do something with $abs_top_srcdir which is extensively used
> by
>    testsuite. It points to the OVN base directory, but in most places it
> should
>    point to OVS base directory to have access to
> vswitchd/vswitch.ovsschema and
>    some other files.
>
>
Correct.
To resolve this I added the below in tests/automake.mk and replaced
abs_top_srcdir with ovs_srcdir.

*****
check-local:
set $(SHELL) '$(TESTSUITE)' -C tests AUTOTEST_PATH=$(AUTOTEST_PATH)
ovs_srcdir=$(ovs_srcdir); \
"$$@" $(TESTSUITEFLAGS) || (test X'$(RECHECK)' = Xyes && "$$@" --recheck)
*****

Thanks
Numan



> Best regards, Ilya Maximets.
>


More information about the dev mailing list