From 843dfef73c86a8ad71afe36e2db9e711dddc199a Mon Sep 17 00:00:00 2001 From: shravani Date: Tue, 20 Dec 2016 15:09:34 +0530 Subject: Combine the common code for kernel building on deb/rpm This patch removes the duplication of code in rpm/debian build scripts. Change-Id: I88edc93df488bd01a43cd98e4f69f35e09f8f61c Signed-off-by: Shravani --- ci/kernel_build.sh | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 ci/kernel_build.sh (limited to 'ci/kernel_build.sh') diff --git a/ci/kernel_build.sh b/ci/kernel_build.sh new file mode 100755 index 000000000..91e8b7765 --- /dev/null +++ b/ci/kernel_build.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +source ./ci/kernelConfigValidate.sh + +kernel_build_validate $@ +kernel_build_prep + +kernel_rpm_build() { + rpmbuild_dir=/tmp/kvmfornfv_rpmbuild.$$ + artifact_dir=${rpmbuild_dir}/RPMS/x86_64 + mkdir -p $artifact_dir + # Make timestamp part of version string for automated kernel boot verification + date "+-%y%m%d%H%M" > "${kernel_src_dir}/localversion-zzz" + + (cd ${kernel_src_dir}; make RPMOPTS="--define '_topdir ${rpmbuild_dir}'" rpm-pkg) + if [ ${?} -ne 0 ] ; then + echo "${0}: Kernel build failed" + rm -rf ${rpmbuild_dir} + exit 1 + fi + cp -f ${artifact_dir}/* ${output_dir} + rm -rf ${rpmbuild_dir} +} + +quirks(){ + # + # Apply out of tree patches + # + SRC=/root + for i in $SRC/kvmfornfv/patches/$1/*.patch + do + if [ -f "$i" ] + then + echo "Applying: $i" + patch -p1 <$i + fi + done +} + +kernel_deb_build(){ + VERSION="1.0.OPNFV" + # Configure the kernel + cd kernel + +# Workaround build bug on Ubuntu 14.04 +cat < arch/x86/boot/install.sh +#!/bin/sh +cp -a -- "\$2" "\$4/vmlinuz-\$1" +EOF + +# Build the kernel debs +make-kpkg clean +fakeroot make-kpkg --initrd --revision=$VERSION kernel_image kernel_headers +make +mv /root/kvmfornfv/linux-* /root/kvmfornfv/build_output +} + +if [ $pkg_type == "centos" ];then + kernel_rpm_build +elif [ $pkg_type == "ubuntu" ];then + quirks kernel + kernel_deb_build +fi + -- cgit 1.2.3-korg