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

Ilya Maximets i.maximets at samsung.com
Thu Aug 1 14:19:13 UTC 2019


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:

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.

Best regards, Ilya Maximets.


More information about the dev mailing list