On Fri, Jul 26, 2019 at 8:21 AM Numan Siddique <[email protected]> wrote: > > Hello All, > > The split work is almost done and we have pushed it to the ovn repo branch > for now - https://github.com/ovn-org/ovn/commits/ovs_ovn_split > If some one is interested, please try it out and let us know any comments > or issues.
Hi Numan, It looks like the ovs_ovn_split branch doesn't build: # git clone https://github.com/ovn-org/ovn.git ovn # cd ovn # ./boot.sh # ./configure --enable-Werror --enable-sparse # make make all-recursive make[1]: Entering directory `/root/ovn' Making all in ovs make[2]: Entering directory `/root/ovn/ovs' make all-recursive make[3]: Entering directory `/root/ovn/ovs' Making all in datapath make[4]: Entering directory `/root/ovn/ovs/datapath' make[5]: Entering directory `/root/ovn/ovs/datapath' make[5]: Leaving directory `/root/ovn/ovs/datapath' make[4]: Leaving directory `/root/ovn/ovs/datapath' make[4]: Entering directory `/root/ovn/ovs' make[4]: Leaving directory `/root/ovn/ovs' make[3]: Leaving directory `/root/ovn/ovs' make[2]: Leaving directory `/root/ovn/ovs' make[2]: Entering directory `/root/ovn' depbase=`echo lib/acl-log.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\ /bin/sh ./libtool --tag=CC --mode=compile env REAL_CC="gcc -std=gnu99" CHECK="sparse -Wsparse-error -I ./include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64 -DHAVE_CONFIG_H -I. -I ./ovs/include -I ./ovs/include -I ./ovs/lib -I ./ovs/lib -I ./ovs -I ./ovs -I ./lib -I ./lib -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF $depbase.Tpo -c -o lib/acl-log.lo lib/acl-log.c &&\ mv -f $depbase.Tpo $depbase.Plo libtool: compile: env "REAL_CC=gcc -std=gnu99" "CHECK=sparse -Wsparse-error -I ./include/sparse -m64 -I /usr/local/include " cgcc -target=x86_64 -DHAVE_CONFIG_H -I. -I ./ovs/include -I ./ovs/include -I ./ovs/lib -I ./ovs/lib -I ./ovs -I ./ovs -I ./lib -I ./lib -Wstrict-prototypes -Wall -Wextra -Wno-sign-compare -Wpointer-arith -Wformat -Wformat-security -Wswitch-enum -Wunused-parameter -Wbad-function-cast -Wcast-align -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-field-initializers -fno-strict-aliasing -Wshadow -Werror -Werror -g -O2 -MT lib/acl-log.lo -MD -MP -MF lib/.deps/acl-log.Tpo -c lib/acl-log.c -o lib/acl-log.o ./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__v' shadows an earlier one ./ovs/include/openvswitch/nsh.h:372:11: originally declared here ./ovs/include/openvswitch/nsh.h:372:11: error: symbol '__x' shadows an earlier one ./ovs/include/openvswitch/nsh.h:372:11: originally declared here ./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__v' shadows an earlier one ./ovs/include/openvswitch/nsh.h:383:11: originally declared here ./ovs/include/openvswitch/nsh.h:383:11: error: symbol '__x' shadows an earlier one ./ovs/include/openvswitch/nsh.h:383:11: originally declared here make[2]: *** [lib/acl-log.lo] Error 1 Building ovs master works fine for me: # git clone https://github.com/openvswitch/ovs.git ovs # cd ovs # ./boot.sh # ./configure --enable-Werror --enable-sparse # make <snip> mv tests/system-afxdp-testsuite.tmp tests/system-afxdp-testsuite mv tests/system-kmod-testsuite.tmp tests/system-kmod-testsuite mv tests/system-userspace-testsuite.tmp tests/system-userspace-testsuite touch -c manpage-check mv tests/testsuite.tmp tests/testsuite make[2]: Leaving directory `/root/ovs' make[1]: Leaving directory `/root/ovs' Regards, Dumitru > > We are planning to push the changes to the master branch hopefully Friday > if everything goes fine. > > Thanks > Numan > > > On Fri, Jul 26, 2019 at 12:05 AM Mark Michelson <[email protected]> wrote: > > > On 7/25/19 12:37 PM, Ilya Maximets wrote: > > > Hi. > > > > > > I have a question regarding the split. > > > Sorry if it's obvious from the RFC splitting code which I didn't look at. > > > > > > The question is: > > > How the patches for the common data structures (lists, hash maps) will be > > > applied to OVN? Will we need to post same patch for both repositories in > > the > > > future if it changes/fixes common libraries? Or all this code will be > > hosted > > > only in OVS repo and will be included like a submodule or something like > > that? > > > > > > Best regards, Ilya Maximets. > > > > Hi Ilya, > > > > OVN will be a separate repo from OVS. Initially, OVS will be a subtree > > of OVN, but soon, we will want to be able to build OVN while having a > > completely separate OVS on the system. When all is said and done, it > > should be possible to build OVN as long as you have, say, an ovs-devel > > package installed on your system. > > > > I think the answer to your question is that as an OVS developer, if you > > make a change to a core component, you only need to post the change to > > the OVS repo. > > > > From an OVN developer's perspective, if an OVN feature/bugfix requires > > a parallel change to be made to a core OVS library, then the OVN > > developer will need to post the library change to OVS as well as the > > usage of that change to OVN. As long as OVS is a subtree of OVN, it's > > just a matter of ensuring the subtree is kept up to date. However, once > > OVS is built separately, then configure-time checks of OVS features or > > minimum version checks will need to be added to OVN to ensure that the > > code can build properly. > > > > This approach should place most of the burden of OVN compatibility with > > OVS on OVN developers rather than OVS developers. > > > > > >> Numan and I have discussed this, and we're planning to perform the split > > >> tomorrow July 25. Numan will be applying the commits he referenced below > > >> to the ovn-org branch to get it up to date. I will be submitting a > > >> review for OVS to remove all of the OVN code, documentation, etc. from > > it. > > >> > > >> If there are any reasons why we should hold off on this, please mention > > >> them as soon as possible. > > >> > > >> Thanks > > >> > > >> On 7/22/19 2:35 PM, Numan Siddique wrote: > > >>> Hi Ben, Mark and All, > > >>> > > >>> Now that branch 2.12 is created, shall we proceed with the OVS/OVN > > split ? > > >>> > > >>> In order to do the split we need to do the below tasks > > >>> > > >>> In ovn-org/ovn repo > > >>> Step 1. Sync the ovs subtree to the latest (from the OVS repo). > > >>> 2. Delete all the ovn related code from the root dir. Right now there > > is > > >>> no history for the OVN files in the ovn-org/ovn repo > > >>> 3. Copy OVN files from openvswitch/ovs repo using git-filter-branch. > > >>> This will preserver the history. > > >>> 4. Sync the test files from ovs subtree so that tests pass. > > >>> > > >>> During this period its better to freeze merging OVN related patches in > > >>> the OVS repo. > > >>> And finally delete the OVN related code from the OVS repo. > > >>> > > >>> I have done a PoC here - > > >>> https://github.com/numansiddique/ovn/commits/ovn_sync_from_ovs_v3/p4 > > >>> All the relates commits can be found here. > > >>> > > >>> > > >>> Does these steps seem fine ? Any concerns ? > > >>> If this seems fine, can we choose a date to start this process ? > > >>> > > >>> Thanks > > >>> Numan > > >>> > > > > > > > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
