:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: : Copyright (c) 2017 Enea AB and others. : : All rights reserved. This program and the accompanying materials : are made available under the terms of the Apache License, Version 2.0 : which accompanies this distribution, and is available at : http://www.apache.org/licenses/LICENSE-2.0 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: From: Alexandru Avadanii Date: Wed, 25 Jan 2017 22:11:44 +0100 Subject: [PATCH] deb-src: Enable building Debian source pkgs Armband plans on shipping prebuilt binaries. Opensource rules dictate they should be accompanied by the corresponding source packages. So, add the possibility to also build Debian sources when a dummy "ovs_build/build_debian_source" file exists (to avoid passing an useless env var to each docker run). Change-Id: I4e308d84c2eb01af043ed73440c46fc692c30d12 Signed-off-by: Alexandru Avadanii --- ovs_build/build-ovs-dpdk.sh | 28 +++++++++++++++++----- ovs_build/build-ovs-nsh.sh | 26 +++++++++++++++++--- .../debian/patches/series | 1 - 3 files changed, 45 insertions(+), 10 deletions(-) delete mode 100644 ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh index 7ce2a62..8dd7430 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -11,14 +11,30 @@ DEB_ARCH="$(dpkg --print-architecture)" export DEB_BUILD_OPTIONS='parallel=8 nocheck' +function debian_build() { + if [ -f "${BUILD_SRC}/build_debian_source" ]; then + dpkg-source -b . + cp -f ../*.{dsc,xz} ${BUILD_HOME}/deb + fi + debian/rules build; fakeroot debian/rules binary +} + +function debian_src_prepare_ovs() { + if [ -f "${BUILD_SRC}/build_debian_source" ]; then + suffix="${OVS_VER}.orig.tar.xz" + tar cJf ../openvswitch_${suffix} --exclude='./debian' . + cd ..; ln -sf openvswitch_${suffix} openvswitch-dpdk_${suffix}; cd - + fi +} + sudo apt-get update sudo apt-get -y --force-yes install devscripts dpkg-dev git wget dkms rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb cd ${BUILD_HOME} -wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz -xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar +wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz -O dpdk_16.07.orig.tar.xz +tar xJvf dpdk_16.07.orig.tar.xz cd dpdk-16.07 cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian . cat << EOF > debian/changelog @@ -45,7 +61,7 @@ sudo apt-get install -y --force-yes debhelper \ python-sphinx \ texlive-fonts-recommended \ texlive-latex-extra -debian/rules build; fakeroot debian/rules binary +debian_build cd ${BUILD_HOME} sudo apt-get install -y --force-yes hwdata @@ -73,7 +89,7 @@ sudo apt-get install -y --force-yes autoconf \ python-six git clone https://github.com/openvswitch/ovs.git -cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git +cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git; debian_src_prepare_ovs cd ${BUILD_HOME}; cp -r ovs ovs-dpdk cd ovs-dpdk @@ -86,10 +102,10 @@ openvswitch-dpdk (${OVS_VER}-1) unstable; urgency=low -- Open vSwitch team $(date --rfc-2822) EOF -debian/rules build; fakeroot debian/rules binary +debian_build cd ${BUILD_HOME}/ovs -debian/rules build; fakeroot debian/rules binary +debian_build cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb cd ${BUILD_HOME}/deb diff --git a/ovs_build/build-ovs-nsh.sh b/ovs_build/build-ovs-nsh.sh index dbebdb2..efbabab 100755 --- a/ovs_build/build-ovs-nsh.sh +++ b/ovs_build/build-ovs-nsh.sh @@ -11,6 +11,22 @@ DEB_ARCH="$(dpkg --print-architecture)" export DEB_BUILD_OPTIONS='parallel=8 nocheck' +function debian_build() { + if [ -f "${BUILD_SRC}/build_debian_source" ]; then + dpkg-source -b . + cp -f ../*.{dsc,xz} ${BUILD_HOME}/deb + fi + debian/rules build; fakeroot debian/rules binary +} + +function debian_src_prepare_ovs() { + if [ -f "${BUILD_SRC}/build_debian_source" ]; then + suffix="${OVS_VER}.orig.tar.xz" + tar cJf ../openvswitch_${suffix} --exclude='./debian' . + cd ..; ln -sf openvswitch_${suffix} openvswitch-dpdk_${suffix}; cd - + fi +} + sudo apt-get update sudo apt-get -y --force-yes install devscripts dpkg-dev git wget dkms @@ -39,12 +55,16 @@ sudo apt-get install -y --force-yes autoconf \ python-six git clone https://github.com/openvswitch/ovs.git -cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git +cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git; debian_src_prepare_ovs +mkdir -p debian/patches; mkdir -p .pc PATCHES=$(cd ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/; echo *patch) for patch in ${PATCHES} do - patch -p1 < ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/${patch} + echo "${patch}" >> debian/patches/series + cp ${BUILD_SRC}/ovs_nsh_patches/v2.6.1/${patch} debian/patches/ + patch -p1 < debian/patches/${patch} done +cp debian/patches/series .pc/applied-patches cat << EOF > debian/changelog openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low @@ -53,7 +73,7 @@ openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low -- Open vSwitch team $(date --rfc-2822) EOF -debian/rules build; fakeroot debian/rules binary +debian_build cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb cd ${BUILD_HOME}/deb diff --git a/ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series b/ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series deleted file mode 100644 index 8b13789..0000000 --- a/ovs_build/openvswitch_2.6-dpdk_16.07/debian/patches/series +++ /dev/null @@ -1 +0,0 @@ -