From cf242248084333a92b3ffd9356b1535cc4a7fa43 Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Wed, 25 Jan 2017 18:06:38 +0100 Subject: [PATCH] AArch64: Add native build support - ovs-dpdk/debian/control: Add arm64 to supported arch list - Dockerfile: For AArch64 native builds, pull Docker image from "aarch64/ubuntu:16.04". - install.sh: Simplify and remove version harcodes Since only one set of packages (DPDK/OVS/OVS-DPDK) is shipped per archive, we can safely wildcard the installed versions in install.sh, which previously hardcoded DPDK and OVS versions. This is helpful for arm64, which has a custom deb subversion for DPDK and also has different package names ("*_arm64.deb"). - build-ovs-*.sh: Fix debian changelog date formatting (two spaces) Change-Id: I0f2ade6516040ae6295ca61c37beba1fd87d28c1 Signed-off-by: Alexandru Avadanii --- deployment_scripts/install.sh | 39 ++++++++----------- ovs_build/build-ovs-dpdk.sh | 2 +- ovs_build/build-ovs-nsh-dpdk.sh | 2 +- .../openvswitch_2.6-dpdk_16.07/debian/control | 2 +- pre_build_hook | 6 +++ 5 files changed, 25 insertions(+), 26 deletions(-) diff --git a/deployment_scripts/install.sh b/deployment_scripts/install.sh index 4a22685..821668d 100644 --- a/deployment_scripts/install.sh +++ b/deployment_scripts/install.sh @@ -11,32 +11,23 @@ dpdk=$3 dpdk_socket_mem=${4:-''} pmd_cpu_mask=${5:-'2'} +ovs="ovs-dpdk.tar.gz" +if [ $nsh = 'true' ]; then + ovs="ovs-nsh-dpdk.tar.gz" +fi + apt-get install -y --allow-unauthenticated dkms -if [ $nsh = 'true' ] -then - curl http://$host:8080/plugins/fuel-plugin-ovs-1.0/repositories/ubuntu/ovs-nsh-dpdk.tar.gz | tar -xzv - dpkg -i openvswitch-datapath-dkms_2.6.1-1.nsh_all.deb - dpkg -i openvswitch-common_2.6.1-1.nsh_amd64.deb - dpkg -i openvswitch-switch_2.6.1-1.nsh_amd64.deb - dpkg -i python-openvswitch_2.6.1-1.nsh_all.deb - if [ $dpdk = 'true' ] - then - apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms - dpkg -i openvswitch-switch-dpdk_2.6.1-1.nsh_amd64.deb - fi -else - curl http://$host:8080/plugins/fuel-plugin-ovs-1.0/repositories/ubuntu/ovs-dpdk.tar.gz | tar -xzv - dpkg -i openvswitch-datapath-dkms_2.6.90-1_all.deb - dpkg -i openvswitch-common_2.6.90-1_amd64.deb - dpkg -i openvswitch-switch_2.6.90-1_amd64.deb - dpkg -i python-openvswitch_2.6.90-1_all.deb - if [ $dpdk = 'true' ] - then - apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms - dpkg -i openvswitch-switch-dpdk_2.6.90-1_amd64.deb +curl http://$host:8080/plugins/fuel-plugin-ovs-1.0/repositories/ubuntu/${ovs} | tar -xzv +dpkg -i openvswitch-datapath-dkms_*.deb +dpkg -i openvswitch-common_*.deb +dpkg -i openvswitch-switch_*.deb +dpkg -i python-openvswitch_*.deb - fi +if [ $dpdk = 'true' ] +then + apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms + dpkg -i openvswitch-switch-dpdk_*.deb fi if [[ $dpdk = 'true' && -n $dpdk_socket_mem ]] @@ -51,3 +42,5 @@ then service openvswitch-switch restart fi + +rm -rf $INSTALL_HOME diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh index 419f9d0..68c705f 100755 --- a/ovs_build/build-ovs-dpdk.sh +++ b/ovs_build/build-ovs-dpdk.sh @@ -25,7 +25,7 @@ dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low * Rebuild debian package * update librte-eal2.symbols - -- Ruijing Guo $(date --rfc-2822) + -- Ruijing Guo $(date --rfc-2822) EOF # copy from debian/control diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh index 23cea86..dbf16c5 100755 --- a/ovs_build/build-ovs-nsh-dpdk.sh +++ b/ovs_build/build-ovs-nsh-dpdk.sh @@ -25,7 +25,7 @@ dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low * Rebuild debian package * update librte-eal2.symbols - -- Ruijing Guo $(date --rfc-2822) + -- Ruijing Guo $(date --rfc-2822) EOF # copy from debian/control diff --git a/ovs_build/openvswitch_2.6-dpdk_16.07/debian/control b/ovs_build/openvswitch_2.6-dpdk_16.07/debian/control index e7171b9..e0c27c5 100644 --- a/ovs_build/openvswitch_2.6-dpdk_16.07/debian/control +++ b/ovs_build/openvswitch_2.6-dpdk_16.07/debian/control @@ -27,7 +27,7 @@ Homepage: http://openvswitch.org/ XS-Testsuite: autopkgtest Package: openvswitch-switch-dpdk -Architecture: i386 amd64 +Architecture: i386 amd64 arm64 Depends: dpdk, openvswitch-switch (>= 2.4.0), ${misc:Depends}, diff --git a/pre_build_hook b/pre_build_hook index 43b5936..194a7b9 100755 --- a/pre_build_hook +++ b/pre_build_hook @@ -3,9 +3,15 @@ set -eux BUILD_FOR=${BUILD_FOR:-ubuntu} +BUILD_ARCH="$(dpkg --print-architecture)" DIR="$(dirname `readlink -f $0`)" function build_pkg { + case ${BUILD_ARCH} in + arm64) + sed -i -e "s|FROM ubuntu|FROM aarch64/ubuntu|g" ovs_build/Dockerfile + ;; + esac case $1 in ubuntu) rm -rf ${DIR}/repositories/ubuntu; mkdir -p ${DIR}/repositories/ubuntu