summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSwati Sharma <swatix.sharma@intel.com>2016-06-29 02:34:43 +0900
committerswatisharma <swatix.sharma@intel.com>2016-07-21 11:16:22 +0530
commit853d63d099ec2f098f1f36350ec0c5095c3f4fd1 (patch)
tree1216f7b689302da485e49a2c964e0f0605e60d1a
parentc715b6029fd5b4eaf323f5efde4ec5db5ba0a9b4 (diff)
Creation of QEMU(rpm and debian builds)
This includes the scripts that are added to create qemu-rpm and qemu-debian builds for KVM4NFV. Co-Authored-By: Gundarapu Reddy <reddyx.gundarapu@intel.com> Signed-off-by: Swati Sharma <swatix.sharma@intel.com>
-rwxr-xr-xci/build_qemu_rpm_deb/mkcontrol.sh8
-rwxr-xr-xci/build_qemu_rpm_deb/mkspec43
-rwxr-xr-xci/build_qemu_rpm_deb/mkversion10
-rw-r--r--ci/build_qemu_rpm_deb/qemu_build.sh33
-rwxr-xr-xci/build_qemu_rpm_deb/qemu_deb_build.sh30
-rwxr-xr-xci/build_qemu_rpm_deb/qemu_rpm_build.sh32
6 files changed, 156 insertions, 0 deletions
diff --git a/ci/build_qemu_rpm_deb/mkcontrol.sh b/ci/build_qemu_rpm_deb/mkcontrol.sh
new file mode 100755
index 000000000..7eb504a0e
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/mkcontrol.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+echo "Package: qemu"
+echo "Version: $1"
+echo "Section: base"
+echo "Priority: optional"
+echo "Architecture: all"
+echo "Maintainer: Intel"
+echo "Description: control file for qemu debian build on centos"
diff --git a/ci/build_qemu_rpm_deb/mkspec b/ci/build_qemu_rpm_deb/mkspec
new file mode 100755
index 000000000..0b75a181b
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/mkspec
@@ -0,0 +1,43 @@
+#!/bin/sh
+#
+# Output a simple RPM spec file.
+#
+# starting to output the spec
+
+QEMURELEASE=$1
+
+__QEMURELEASE=`echo $QEMURELEASE | sed -e "s/-/_/g"`
+
+echo $srctree
+echo "Name: qemu"
+echo "Summary: The Linux qemu"
+echo "Version: $__QEMURELEASE"
+# we need to determine the NEXT version number
+# rpm -q will agree
+echo "Release: `sudo sh mkversion`"
+echo "License: GPLv2+ and LGPLv2+ and BSD"
+echo "Group: Development/Tools"
+echo "Vendor: The Linux Community"
+echo "URL: http://www.qemu.org"
+echo "Source: qemu-$__QEMURELEASE.tar.gz"
+echo "%description"
+echo "%prep"
+echo " "
+echo "%setup -q"
+echo " "
+echo "%build"
+echo "%_configure"
+echo "make"
+echo "%install"
+echo "rm -rf %{buildroot}"
+echo "make install DESTDIR=%{buildroot}"
+echo "%clean"
+echo "rm -rf %{buildroot}"
+echo "%files"
+echo "%dir"
+echo "/usr/local/share/qemu"
+echo "%doc"
+echo "/usr/local/bin/ivshmem*"
+echo "/usr/local/bin/qemu*"
+echo "/usr/local/libexec/qemu-bridge-helper"
+echo "%changelog"
diff --git a/ci/build_qemu_rpm_deb/mkversion b/ci/build_qemu_rpm_deb/mkversion
new file mode 100755
index 000000000..fa4e585b9
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/mkversion
@@ -0,0 +1,10 @@
+if [ ! -f .version ]
+then
+ touch .version
+ sudo chmod 777 .version
+ echo 1 > .version
+ echo 1
+else
+ expr 0`cat .version` + 1
+ expr 0`cat .version` + 1 > .version
+fi
diff --git a/ci/build_qemu_rpm_deb/qemu_build.sh b/ci/build_qemu_rpm_deb/qemu_build.sh
new file mode 100644
index 000000000..a8863c3ca
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/qemu_build.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+qemu_src_dir=qemu
+workspace=/root
+debbuild_dir=$workspace/debbuild
+rpmbuild_dir=$workspace/rpmbuild
+artifact_rpms=$rpmbuild_dir/RPMS
+artifact_dir=$artifact_rpms/x86_64
+scripts_dir=ci/build_qemu_rpm_deb
+output_dir="$1"
+VERSION=`grep -m 1 "VERSION" ${qemu_src_dir}/config-host.mak | cut -d= -f2-`
+
+usage () {
+ echo "usage: ${0} output_dir"
+ exit 1
+}
+
+if [[ -z "$@" ]]; then
+ usage
+fi
+
+if [ ! -d ${output_dir} -o ! -w ${output_dir} ] ; then
+ echo "${0}: Output directory '${output_dir}' does not exist or cannot be written"
+ exit 1
+fi
+
+if [ ! -d ${qemu_src_dir} ] ; then
+ echo "${0}: Directory '${qemu_src_dir}' does not exist, run this script from the root of kvmfornfv source tree"
+ exit 1
+fi
+
+echo
+echo "Build"
+echo
diff --git a/ci/build_qemu_rpm_deb/qemu_deb_build.sh b/ci/build_qemu_rpm_deb/qemu_deb_build.sh
new file mode 100755
index 000000000..7a830183d
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/qemu_deb_build.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+#Build process for generating qemu debain file.
+
+source ci/build_qemu_rpm_deb/qemu_build.sh
+qemu_deb_build() {
+ sudo mkdir -p $debbuild_dir/qemu-$VERSION
+ sudo cp -r $qemu_src_dir $debbuild_dir/qemu-$VERSION
+ sudo mkdir -p $debbuild_dir/qemu-$VERSION/DEBIAN
+ sudo touch control
+
+#creating control file for debian build.
+ (cd ${scripts_dir}; sudo ./mkcontrol.sh $VERSION > control)
+ sudo mv $scripts_dir/control $debbuild_dir/qemu-$VERSION/DEBIAN/control
+
+#building the qemu debian with control file developed.
+ sudo dpkg-deb --build $debbuild_dir/qemu-$VERSION
+ if [ ${?} -ne 0 ] ; then
+ echo "${0}: qemu build failed"
+ exit 1
+ fi
+}
+
+if [ ! -d ${debbuild_dir} ] ; then
+ echo "creating debbuild directory"
+ sudo mkdir -p $debbuild_dir
+fi
+
+qemu_deb_build
+latest_qemu_build=`sudo ls -rt $debbuild_dir | tail -1`
+sudo cp $debbuild_dir/$latest_qemu_build build_output
diff --git a/ci/build_qemu_rpm_deb/qemu_rpm_build.sh b/ci/build_qemu_rpm_deb/qemu_rpm_build.sh
new file mode 100755
index 000000000..a52ee0f4a
--- /dev/null
+++ b/ci/build_qemu_rpm_deb/qemu_rpm_build.sh
@@ -0,0 +1,32 @@
+#!/bin/bash
+#Build process for Generating qemu rpm.
+
+source ci/build_qemu_rpm_deb/qemu_build.sh
+qemu_rpm_build() {
+ sudo cp -r ${qemu_src_dir} ${qemu_src_dir}-$VERSION
+ sudo tar -zcvf ${qemu_src_dir}-$VERSION.tar.gz ${qemu_src_dir}-$VERSION
+ sudo mv ${qemu_src_dir}-$VERSION.tar.gz ${rpmbuild_dir}/SOURCES/
+
+#create a spec file for rpm creation.
+ (cd ${scripts_dir}; ./mkspec $VERSION > qemu.spec)
+ sudo cp ${scripts_dir}/qemu.spec ${rpmbuild_dir}/SPECS/
+
+#build the qemu rpm with spec file developed
+ sudo rpmbuild -ba ${rpmbuild_dir}/SPECS/qemu.spec
+ if [ ${?} -ne 0 ] ; then
+ echo "${0}: qemu build failed"
+ exit 1
+ fi
+ sudo rm -rf ${qemu_src_dir}-$VERSION
+ sudo rm -rf ${rpmbuild_dir}/SOURCES/${qemu_src_dir}-$VERSION.tar.gz
+}
+
+if [ ! -d ${rpmbuild_dir} ] ; then
+ sudo yum install rpm-build -y
+ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
+ sudo mv rpmbuild $workspace
+fi
+
+qemu_rpm_build
+latest_qemu_build=`ls -rt $artifact_dir | grep qemu-2.6* | tail -1`
+sudo cp $artifact_dir/$latest_qemu_build build_output