X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=build%2Fbuild_dpdk_rpm.sh;fp=build%2Fbuild_dpdk_rpm.sh;h=1812dc3f22ef0da71dc794627376d4f541041de1;hb=4ce4060e302c0cb98ce6658f44fede048df6aeeb;hp=0000000000000000000000000000000000000000;hpb=8a312b9535b2f3fe721139ed37722a13d1a940b1;p=ovsnfv.git diff --git a/build/build_dpdk_rpm.sh b/build/build_dpdk_rpm.sh new file mode 100755 index 0000000..1812dc3 --- /dev/null +++ b/build/build_dpdk_rpm.sh @@ -0,0 +1,142 @@ +#!/bin/bash + +# Copyright (c) 2016 Open Platform for NFV Project, Inc. and its contributors +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -e + +echo "===============================" +echo executing $0 $@ +echo executing on machine `uname -a` + +usage() { + echo run BuildAndTestOVS -h for complete help on options on ovsnfv scripts. +} + +while getopts "g:hp:u:v" opt; do + case "$opt" in + g) + DPDK_VERSION=${OPTARG} + ;; + h|\?) + usage + exit 1 + ;; + p) + DPDK_PATCH=${OPTARG} + ;; + u) + DPDK_REPO_URL=${OPTARG} + ;; + v) + verbose="yes" + ;; + esac +done + +if [ -z $DPDK_REPO_URL ]; then + DPDK_REPO_URL=http://dpdk.org/git/dpdk +fi +if [ -z $DPDK_VERSION ]; then + DPDK_VERSION=2.2.0 +fi + +HOME=`pwd` +TOPDIR=$HOME +TMPDIR=$TOPDIR/rpms + +if [ -d $TMPDIR ] +then + rm -rf $TMPDIR +fi + +echo "---------------------" +echo "Install dependencies for dpdk" +echo +sudo yum -y install gcc make python-devel openssl-devel autoconf automake rpm-build \ + redhat-rpm-config libtool libpcap-devel numactl-devel python-sphinx \ + libvirt-devel + + +mkdir -p $TMPDIR + +cd $TMPDIR + +mkdir -p $HOME/rpmbuild/RPMS +mkdir -p $HOME/rpmbuild/SOURCES +mkdir -p $HOME/rpmbuild/SPECS +mkdir -p $HOME/rpmbuild/SRPMS + +RPMDIR=$HOME/rpmbuild + +# +# Use Fedora copr spec file +# +echo "---------------------" +echo "Get copr distribution git" +mkdir -p copr +cd copr +git clone https://github.com/tfherbert/dpdk-snap.git +cd dpdk-snap +git checkout $COPR_DPDK_VERSION + +echo "---------------------" +echo "Build DPDK RPM version $DPDK_VERSION" +echo +cd $TMPDIR +git clone $DPDK_REPO_URL +cd dpdk +if [[ "$DPDK_VERSION" =~ "master" ]]; then + git checkout master + snapgit=`git log --pretty=oneline -n1|cut -c1-8` +else + git checkout v$DPDK_VERSION + snapgit=`grep "define snapver" $TMPDIR/copr/dpdk-snap/dpdk.spec | cut -c25-33` +fi + +cp $TMPDIR/copr/dpdk-snap/dpdk.spec $TMPDIR/dpdk +cp $TMPDIR/copr/dpdk-snap/dpdk.spec $RPMDIR/SPECS +cp $TMPDIR/copr/dpdk-snap/*.patch $TMPDIR/copr/dpdk-snap/sources $TMPDIR/copr/dpdk-snap/dpdk-snapshot.sh $RPMDIR/SOURCES +snapser=`git log --pretty=oneline | wc -l` + +makever=`make showversion` +basever=`echo ${makever} | cut -d- -f1` +prefix=dpdk-${basever:0:5} + +archive=${prefix}.tar.gz +DPDK_VERSION=$basever + +echo "-------------------------------" +echo "Creating ${archive}" +echo +git archive --prefix=${prefix}/ HEAD | gzip -9 > ${archive} +cp ${archive} $RPMDIR/SOURCES/ +echo "-------------------------------" +echo building RPM for DPDK version $DPDK_VERSION +echo +rpmbuild -bb --define "_topdir $RPMDIR" dpdk.spec + +echo "-------------------------------" +echo Delete all rpms from $HOME +echo +set +e +rm $HOME/*.rpm +set -e + +echo "-------------------------------" +echo Copy dpdk RPM +echo +cp $RPMDIR/RPMS/x86_64/*.rpm $HOME + +exit 0