From ba869e19755beffdee350c56417e4510db2bae06 Mon Sep 17 00:00:00 2001 From: Heikki Halmet Date: Thu, 20 May 2021 15:48:22 +0300 Subject: [PATCH] Add Integrity target for QtBase including provisioning changes At this point let's add only target for QtBase. Target for QtDeclarative, QtQuick3d and QtQuickcontrols2 will be added later when we have all required fixes. Task-number: QTQAINFRA-3555 Task-number: QTQAINFRA-4285 Change-Id: I59ef76079e98ba428cdb7abcb2560f434c37f517 Reviewed-by: Kimmo Ollila Reviewed-by: Toni Saario --- coin/platform_configs/integrity.yaml | 13 ++++++++ coin/platform_configs/qtbase.yaml | 3 +- coin/provisioning/common/linux/integrity.sh | 32 ++++++++++--------- .../qtci-linux-Ubuntu-20.04-x86_64/02-apt.sh | 13 ++++++++ .../08-integrity.sh | 0 5 files changed, 45 insertions(+), 16 deletions(-) create mode 100644 coin/platform_configs/integrity.yaml rename coin/provisioning/{qtci-linux-RHEL-8.2-x86_64 => qtci-linux-Ubuntu-20.04-x86_64}/08-integrity.sh (100%) diff --git a/coin/platform_configs/integrity.yaml b/coin/platform_configs/integrity.yaml new file mode 100644 index 00000000..e5764a9f --- /dev/null +++ b/coin/platform_configs/integrity.yaml @@ -0,0 +1,13 @@ +Version: 2 +Configurations: + - + Template: 'qtci-linux-Ubuntu-20.04-x86_64-50' + Compiler: 'GCC' + Platform dependency: 'Ubuntu-20.04-host' + Features: ['Sccache', 'DisableTests'] + Configure arguments: '-DQT_HOST_PATH=/home/qt/work/install -DQT_BUILD_EXAMPLES=OFF -DCMAKE_TOOLCHAIN_FILE=/home/qt/integrity_toolchain/toolchain.cmake -DQT_QMAKE_TARGET_MKSPEC=devices/integrity-armv8-SA8155P -DINPUT_harfbuzz=no -DFEATURE_library=OFF -DBUILD_qtdoc=OFF -DBUILD_qttranslations=OFF -DFEATURE_printdialog=OFF --debug-trycompile -DFEATURE_quick3d_assimp=OFF -DFEATURE_dbus=OFF -GNinja -DUNIX=ON -DFEATURE_gtk3=OFF -DFEATURE_glib=OFF -DFEATURE_libudev=OFF -DFEATURE_system_pcre2=OFF -DFEATURE_sql_mysql=OFF -DCMAKE_C_COMPILER=cxintarm64 -DCMAKE_CXX_COMPILER=cxintarm64' + Environment variables: ['INTEGRITY_DIR=/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/integrity', + 'INTEGRITY_BSP=platform-sa8155', 'INTEGRITY_BUILD_TARGET=rel', 'QC_MULTIMEDIA_INC_DIR=/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/include/amss/multimedia', + 'GL_INC_DIR=/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/include/public', + 'GL_LIB_DIR=/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/base:/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/multimedia/display:/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/multimedia/graphics:/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/out/rel/libs/platform/:/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/qc_bsp/AMSS/multimedia/graphics/opengl/esx/build/integrity/prebuilt/', + 'PATH=/home/qt/integrity_toolchain/hlos_dev_boot/apps/ghs_apps_proc/comp:$PATH'] diff --git a/coin/platform_configs/qtbase.yaml b/coin/platform_configs/qtbase.yaml index e5f67158..d13358ef 100644 --- a/coin/platform_configs/qtbase.yaml +++ b/coin/platform_configs/qtbase.yaml @@ -2,7 +2,8 @@ Version: 2 Include: [ cmake_platforms.yaml, cmake_platforms_static_tests.yaml, - macos-developer-build-tests.yaml + macos-developer-build-tests.yaml, + integrity.yaml ] Configurations: - diff --git a/coin/provisioning/common/linux/integrity.sh b/coin/provisioning/common/linux/integrity.sh index 180881a3..68ca06a2 100755 --- a/coin/provisioning/common/linux/integrity.sh +++ b/coin/provisioning/common/linux/integrity.sh @@ -2,7 +2,7 @@ ############################################################################# ## -## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2021 The Qt Company Ltd. ## Contact: http://www.qt.io/licensing/ ## ## This file is part of the provisioning scripts of the Qt Toolkit. @@ -33,26 +33,28 @@ ## ############################################################################# -# This script installs INTEGRITY +# This script installs needed toolchains for INTEGRITY # shellcheck source=../unix/InstallFromCompressedFileFromURL.sh source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" +# shellcheck source=../unix/DownloadURL.sh +source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="11.4.4" -PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/integrity/ghs_$version.tar.gz" -AltUrl="$PrimaryUrl" # we lack an external source for this -SHA1="4afa3c15e13c91734951b73f6b21388294c5d794" -targetFolder="/opt/ghs" +urlToolchainEs7="http://ci-files01-hki.ci.local/input/integrity/integrity_toolchain_es7.zip" +urlToolchainAddons="http://ci-files01-hki.ci.local/input/integrity/integrity_toolchain_addons.zip" +SHA1_toolchainEs7="3c1edba781aa518e53e962cdb5fc5483aaa4991b" +SHA1_toolchainAddons="1eb838edca4edaa3d9076b5ce4aea6409ffaa022" +targetFolder="$HOME" appPrefix="" -InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix" +echo "Install Integrity toolchain es7" +InstallFromCompressedFileFromURL "$urlToolchainEs7" "$urlToolchainEs7" "$SHA1_toolchainEs7" "$targetFolder" "$appPrefix" -SetEnvVar "INTEGRITY_BSP" "platform-cortex-a9" -SetEnvVar "INTEGRITY_PATH" "$targetFolder/comp_201654" -SetEnvVar "INTEGRITY_DIR" "$targetFolder/int1144" -SetEnvVar "INTEGRITY_GL_INC_DIR" "\$INTEGRITY_DIR/INTEGRITY-include/Vivante/sdk/inc" -SetEnvVar "INTEGRITY_GL_LIB_DIR" "\$INTEGRITY_DIR/libs/Vivante" - -echo "INTEGRITY = $version" >> ~/versions.txt +echo "Install Integrity toochain addons" +DownloadURL "$urlToolchainAddons" "$urlToolchainAddons" "$SHA1_toolchainAddons" "/tmp/integrity_toolchain_addons.zip" +unzip "/tmp/integrity_toolchain_addons.zip" -d "/tmp" +mv /tmp/toolchain/* $targetFolder/toolchain +mv $targetFolder/toolchain $targetFolder/integrity_toolchain +sudo rm -fr /tmp/toolchain diff --git a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/02-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/02-apt.sh index 4c2d4f6c..ad01f9f4 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/02-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/02-apt.sh @@ -55,6 +55,9 @@ function set_internal_repo { deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-updates main restricted universe multiverse deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-backports main restricted universe deb [arch=amd64] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-security main restricted universe multiverse + deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal main restricted + deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal-updates main restricted + deb [arch=i386] http://repo-clones.ci.qt.io/apt-mirror/mirror/ubuntu/ focal universe EOC } @@ -192,6 +195,16 @@ installPackages+=(diffstat) installPackages+=(binfmt-support) # Vulkan is needed for examples installPackages+=(libvulkan-dev) +# For integrity +installPackages+=(libc6:i386) +installPackages+=(libncurses5:i386) +installPackages+=(libstdc++6:i386) +installPackages+=(libx11-6:i386) +installPackages+=(lib32z1) +installPackages+=(linux-libc-dev:i386) +installPackages+=(libxcursor1:i386) +installPackages+=(libc6-dev-i386) +sudo dpkg --add-architecture i386 echo "Running update for apt" waitLoop diff --git a/coin/provisioning/qtci-linux-RHEL-8.2-x86_64/08-integrity.sh b/coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/08-integrity.sh similarity index 100% rename from coin/provisioning/qtci-linux-RHEL-8.2-x86_64/08-integrity.sh rename to coin/provisioning/qtci-linux-Ubuntu-20.04-x86_64/08-integrity.sh