X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=build%2Fbuild_ovs_rpm.sh;h=eff1201f85b04b4f4f853db72d10a00ed55c4b8e;hb=refs%2Fchanges%2F75%2F28475%2F2;hp=e28c23fe39c710d63f34f0d3825b46295e3b513e;hpb=28de4fbd016fe9dd0f393ba9d530551825b94f1a;p=ovsnfv.git diff --git a/build/build_ovs_rpm.sh b/build/build_ovs_rpm.sh index e28c23f..eff1201 100755 --- a/build/build_ovs_rpm.sh +++ b/build/build_ovs_rpm.sh @@ -55,18 +55,19 @@ done HOME=`pwd` TOPDIR=$HOME -TMPDIR=$TOPDIR/ovsrpm +TEMPDIR=$TOPDIR/ovsrpm BUILDDIR=$HOME +BUILD_BASE=$BUILDDIR source $BUILDDIR/functions.sh echo "---------------------------------------" echo "Clean out old working dir." echo -if [ -d $TMPDIR ] +if [ -d $TEMPDIR ] then - rm -rf $TMPDIR + rm -rf $TEMPDIR fi function install_pre_reqs() { @@ -75,7 +76,25 @@ function install_pre_reqs() { echo sudo yum -y install gcc make python-devel openssl-devel kernel-devel graphviz \ kernel-debug-devel autoconf automake rpm-build redhat-rpm-config \ - libtool python-twisted-core desktop-file-utils groff PyQt4 + libtool python-twisted-core desktop-file-utils groff PyQt4 \ + selinux-policy-devel libpcap libpcap-devel libcap-ng-devel +} +function apply_nsh_patches() { + echo "-------------------------------------------" + echo "Clone NSH patch and copy patch files." + echo + cd $TEMPDIR + if [ -e ovs_nsh_patches ]; then + rm -rf ovs_nsh_patches + fi + git clone https://github.com/yyang13/ovs_nsh_patches.git + cp $TEMPDIR/ovs_nsh_patches/*.patch $RPMDIR/SOURCES + cd $TEMPDIR + if [ -e buildovsnsh ]; then + rm -rf buildovsnsh + fi + git clone https://github.com/tfherbert/buildovsnsh.git + cp buildovsnsh/*.spec $BUILDDIR } VERSION=2.3.90 @@ -102,115 +121,146 @@ mkdir -p $HOME/rpmbuild/SPECS mkdir -p $HOME/rpmbuild/SRPMS -mkdir -p $TMPDIR +mkdir -p $TEMPDIR + +install_pre_reqs -cd $TMPDIR +cd $TEMPDIR if [ ! -z $DPDK ]; then - echo "----------------------------------" - echo "Build OVS for dpdk. Use Fedora copr repo" - echo - echo "----------------------------------" - echo "Clone Fedora copr repo and copy files." - echo - git clone https://github.com/tfherbert/ovs-snap.git - cd ovs-snap - git checkout $COPR_OVS_VERSION - echo "-----------------------------------" - cp $TMPDIR/ovs-snap/openvswitch.spec $RPMDIR/SPECS - cp $TMPDIR/ovs-snap/* $RPMDIR/SOURCES - snapgit=`grep "define snapver" $TMPDIR/ovs-snap/openvswitch.spec | cut -c26-33` - echo "-----------------------------------------------" - echo "Remove any old installed ovs and dpdk rpms." - echo cleanrpms if [ -z $DPDK_VERSION ]; then - DPDK_VERSION=16.04.0 + DPDK_VERSION=16.11 fi echo "-------------------------------------------" echo "Install dpdk and dpdk development rpms for version $DPDK_VERSION" echo - sudo rpm -ivh $HOME/dpdk-${DPDK_VERSION:0:1}*.rpm + sudo rpm -ivh $HOME/dpdk-${DPDK_VERSION}*.rpm sudo rpm -ivh $HOME/dpdk-devel*.rpm echo "----------------------------------------" echo "Copy DPDK RPM to SOURCES" echo cp $HOME/*.rpm $RPMDIR/SOURCES - echo "--------------------------------------------" - echo "Get commit from $snapgit User Space OVS version $TAG" - echo - cd $TMPDIR + cd $TEMPDIR git clone $OVS_REPO_URL - cd $TMPDIR/ovs - git checkout $snapgit - echo "--------------------------------------------" - echo "Creating snapshot, $archive with name same as in spec file." + cd $TEMPDIR/ovs + git checkout v$OVSTAG + echo "----------------------------------------------------" + echo "Build openvswitch RPM for version $OVSTAG" echo - snapser=`git log --pretty=oneline | wc -l` - basever=`grep AC_INIT configure.ac | cut -d' ' -f2 | cut -d, -f1` - prefix=openvswitch-${basever} - archive=${prefix}-${snapser}.git${snapgit}.tar.gz - git archive --prefix=${prefix}-${snapser}.git${snapgit}/ HEAD | gzip -9 > $RPMDIR/SOURCES/${archive} - cd $TMPDIR/ovs-snap echo "--------------------------------------------" - echo "Build openvswitch RPM" - echo - rpmbuild -bb --define "_topdir `echo $RPMDIR`" $setnocheck openvswitch.spec + ./boot.sh + ./configure + make rpm-fedora RPMBUILD_OPT="--with dpdk --without check" else echo "-------------------------------------------------" echo "Build OVS without DPDK:" echo "Use spec files for $os_type in OVS distribution." echo - if [[ "$TAG" =~ "master" ]]; then - git clone $OVS_REPO_URL - cd ovs - - if [[ ! "$OVS_PATCH" =~ "no" ]]; then - echo "Apply patches from $OVS_PATCH" - fi - basever=`grep AC_INIT configure.ac | cut -d' ' -f2 | cut -d, -f1` - export VERSION=$basever + echo "-------------------------------------------" + echo "Remove old rpms." + echo + cleanrpms + cd $TEMPDIR + git clone $OVS_REPO_URL + cd $TEMPDIR/ovs + git checkout $OVS_FORK_COMMIT_FOR_NSH + echo "--------------------------------------------" + echo "Get commit from $snapgit User Space OVS version $TAG" + echo + snapgit=`git log --pretty=oneline -n1|cut -c1-8` + snapser=`git log --pretty=oneline | wc -l` + basever=`grep AC_INIT configure.ac | cut -d' ' -f2 | cut -d, -f1` + prefix=openvswitch-${basever} + snapver=${snapser}.NSH${snapgit} + archive=${prefix}-${snapser}.NSH${snapgit}.tar.gz - echo "--------------------------------------------" - echo "Making distribution tarball for Open vswitch version $VERSION" - echo - ./boot.sh - ./configure - make dist - - echo cp openvswitch-*.tar.gz $HOME/rpmbuild/SOURCES - cp openvswitch-*.tar.gz $HOME/rpmbuild/SOURCES - else - export VERSION=${TAG} - echo "---------------------------------------------" - echo "Get openvswith-${VERSION}.tar.gz" + if [ ! -z $OVS_PATCH ]; then + echo "-------------------------------------------" + echo "Apply OVS patches." echo - curl --silent --output $HOME/rpmbuild/SOURCES/openvswitch-${VERSION}.tar.gz http://openvswitch.org/releases/openvswitch-${VERSION}.tar.gz + apply_nsh_patches fi + echo "----------------------------------" + echo "Create dist name and rpm name. Put $snapver into spec file" + echo + cd $BUILD_BASE + sed -i "s/%define snapver.*/%define snapver ${snapver}/" openvswitch.spec + echo "----------------------------------" + echo "Copy spec file." + echo + cp $BUILD_BASE/openvswitch.spec $RPMDIR/SPECS + cp $BUILD_BASE/openvswitch.spec $RPMDIR/SOURCES + echo "--------------------------------------------" + echo "Creating snapshot, $archive with name same as in spec file." + echo + cd $TEMPDIR/ovs + git archive --prefix=${prefix}-${snapser}.NSH${snapgit}/ HEAD | gzip -9 > $RPMDIR/SOURCES/${archive} + echo "--------------------------------------------" + echo "Build openvswitch RPM" + echo + cd $BUILD_BASE + rpmbuild -bb -vv --without dpdk --define "_topdir `echo $RPMDIR`" $setnocheck openvswitch.spec fi # # This section is for building OVS kernel module. # if [ ! -z $kmod ]; then - cd $TMPDIR/ovs echo "--------------------------------------------" - echo "Making distribution tarball for Open vswitch version $VERSION" + echo Build Open vswitch kernel module echo - ./boot.sh - ./configure - make dist + cd $TEMPDIR + if [ -e ovs ]; then + rm -rf ovs + fi + git clone $OVS_REPO_URL + cd $TEMPDIR/ovs + git checkout $OVS_FORK_COMMIT_FOR_NSH echo "--------------------------------------------" - echo "Copy distribution tarball to $HOME/rpmbuild/SOURCES" + echo "Get commit from $snapgit User Space OVS version $TAG" + echo + snapgit=`git log --pretty=oneline -n1|cut -c1-8` + snapser=`git log --pretty=oneline | wc -l` + basever=`grep AC_INIT configure.ac | cut -d' ' -f2 | cut -d, -f1` + prefix=openvswitch-kmod-${basever} + snapver=${snapser}.NSH${snapgit} + archive=${prefix}-${snapser}.NSH${snapgit}.tar.gz + + if [ ! -z $OVS_PATCH ]; then + echo "-------------------------------------------" + echo "Apply OVS patches." + echo + apply_nsh_patches + fi + echo "----------------------------------" + echo "Create dist name and rpm name. Put $snapver into spec file" + echo + cd $BUILD_BASE + sed -i "s/%define snapver.*/%define snapver ${snapver}/" openvswitch-kmod.spec + echo "----------------------------------" + echo "Copy spec file." + echo + cp $BUILD_BASE/openvswitch-kmod.spec $RPMDIR/SPECS + cp $BUILD_BASE/openvswitch-kmod.spec $RPMDIR/SOURCES + echo "-------------------------------------------" + echo "Apply nsh patches." + echo + apply_nsh_patches + echo "--------------------------------------------" + echo "Creating snapshot, $archive with name same as in spec file." echo - cp openvswitch-*.tar.gz $HOME/rpmbuild/SOURCES + cd $TEMPDIR/ovs + git archive --prefix=${prefix}-${snapser}.NSH${snapgit}/ HEAD | gzip -9 > $RPMDIR/SOURCES/${archive} echo "--------------------------------------------" echo "Building openvswitch kernel module RPM" echo - rpmbuild -bb -D "kversion $kernel_version" -D "kflavors default" --define "_topdir `echo $RPMDIR`" $setnocheck rhel/openvswitch-kmod-${os_type}.spec + cd $BUILD_BASE + rpmbuild -bb -vv -D "kversion $kernel_version" -D "kflavors default" --define "_topdir `echo $RPMDIR`" $setnocheck openvswitch-kmod.spec fi -cp $RPMDIR/RPMS/x86_64/*.rpm $HOME +cp $RPMDIR/RPMS/x86_64/*.rpm $HOME || true +cp $TEMPDIR/ovs/rpm/rpmbuild/RPMS/x86_64/*.rpm $HOME || true exit 0