From f132490a618759e01e8d6bbbe108fb41bf9de277 Mon Sep 17 00:00:00 2001 From: Qt Submodule Update Bot Date: Sun, 5 Nov 2017 21:35:20 +0200 Subject: [PATCH 1/9] Update submodules on '5.9' in qt5 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I07353da970e5939cfba760c23b11d74d2de02a9c Reviewed-by: Tony Sarajärvi --- qtbase | 2 +- qtconnectivity | 2 +- qtdeclarative | 2 +- qtdoc | 2 +- qtlocation | 2 +- qtmultimedia | 2 +- qtquickcontrols2 | 2 +- qtserialbus | 2 +- qttools | 2 +- qtvirtualkeyboard | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/qtbase b/qtbase index 9f0dda29..b5b1e103 160000 --- a/qtbase +++ b/qtbase @@ -1 +1 @@ -Subproject commit 9f0dda29d5d070f63b7f098139f01f07ec91ffdf +Subproject commit b5b1e1036ff59b584719b8af7b3be8223a662233 diff --git a/qtconnectivity b/qtconnectivity index 6029bad7..ca6b84af 160000 --- a/qtconnectivity +++ b/qtconnectivity @@ -1 +1 @@ -Subproject commit 6029bad7d1007aecd155985ba13d6c23a01015b8 +Subproject commit ca6b84af1612440a925b4a8223cbed4beb9ac33e diff --git a/qtdeclarative b/qtdeclarative index 742e869a..87999238 160000 --- a/qtdeclarative +++ b/qtdeclarative @@ -1 +1 @@ -Subproject commit 742e869afe2dbba6aae6302d20ba9c82f3ed99c6 +Subproject commit 87999238141588987b3cef6cd68ff62a7e3e8daa diff --git a/qtdoc b/qtdoc index 07446998..053aea2e 160000 --- a/qtdoc +++ b/qtdoc @@ -1 +1 @@ -Subproject commit 07446998a4d75ceb6376dd674b9e9426b170ae6b +Subproject commit 053aea2e785df6361d86a5eb912d3ea25f72ee17 diff --git a/qtlocation b/qtlocation index 467bcda1..af2ea98b 160000 --- a/qtlocation +++ b/qtlocation @@ -1 +1 @@ -Subproject commit 467bcda16b0589a75d6b81d4b475a90cecae129d +Subproject commit af2ea98b9a7555acf4d0d9c08a2edd489b613e72 diff --git a/qtmultimedia b/qtmultimedia index 5b42ce74..c3c6b7d0 160000 --- a/qtmultimedia +++ b/qtmultimedia @@ -1 +1 @@ -Subproject commit 5b42ce74199671f88ee82c971ebff70f87c018db +Subproject commit c3c6b7d0987b90e4a987ee84b2f31adf06568a0d diff --git a/qtquickcontrols2 b/qtquickcontrols2 index 1d39e62a..6470a54e 160000 --- a/qtquickcontrols2 +++ b/qtquickcontrols2 @@ -1 +1 @@ -Subproject commit 1d39e62ada99d85a411e1d6fc26925e342f5b59b +Subproject commit 6470a54ed34523822c50ac846a17a9f76564cf58 diff --git a/qtserialbus b/qtserialbus index 60c0114e..be9168ae 160000 --- a/qtserialbus +++ b/qtserialbus @@ -1 +1 @@ -Subproject commit 60c0114e846a593895503a78d13b006f93e95675 +Subproject commit be9168aebae32a86094e6dfcb32b454b4887ff33 diff --git a/qttools b/qttools index 779002b1..d6838615 160000 --- a/qttools +++ b/qttools @@ -1 +1 @@ -Subproject commit 779002b14dc2e9e4eb22f2c2c243f3da12fa4c72 +Subproject commit d683861584a38a1d1b855bde25412c06c878a1c1 diff --git a/qtvirtualkeyboard b/qtvirtualkeyboard index 49eabec1..19cae9dd 160000 --- a/qtvirtualkeyboard +++ b/qtvirtualkeyboard @@ -1 +1 @@ -Subproject commit 49eabec1a99b3b2a1db05cb46d5402015391cedb +Subproject commit 19cae9ddecbff856e5ff0e294402091db0c2484b From e3deccd936278e365e6dc94059e18ed03ed53bd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20J=C3=A4ntti?= Date: Tue, 26 Sep 2017 15:04:23 +0300 Subject: [PATCH 2/9] Yocto toolchain provisioning to CI MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Provisioning scripts need to install Yocto toolchains (32 and 64 bit) so that the artifacts aren't needed to be unzipped during Qt builds. Task-number: QTQAINFRA-1454 Change-Id: Idceeabb7aa9ffe2555fb98c94916f8429c32af75 Reviewed-by: Tony Sarajärvi --- coin/platform_configs/default.txt | 3 +- coin/platform_configs/qtdeclarative.txt | 3 +- .../003-qemu.sh | 10 ++- .../004-yocto.sh | 89 +++++++++++++++++++ 4 files changed, 101 insertions(+), 4 deletions(-) create mode 100755 coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/004-yocto.sh diff --git a/coin/platform_configs/default.txt b/coin/platform_configs/default.txt index 672b22a2..06a17b54 100644 --- a/coin/platform_configs/default.txt +++ b/coin/platform_configs/default.txt @@ -18,6 +18,7 @@ qtci-osx-10.11-x86_64-3 Clang qtci-osx-10.10-x86_64 Clang Release NoFramework DisableTests qtci-macos-10.12-x86_64-8 IOS_ANY x86_64 Clang Release DisableTests Static qtci-linux-RHEL-7.4-x86_64 Android_ANY armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker -qtci-linux-Ubuntu-16.04-x86_64-1 Boot2Qt_Morty armv7 GCC Release +qtci-linux-Ubuntu-16.04-x86_64-1 QEMU armv7 GCC Release +qtci-linux-Ubuntu-16.04-x86_64-1 QEMU arm64 GCC Release qtci-linux-Ubuntu-16.04-x86_64-1 GCC TestOnly LicenseCheck qtci-linux-RHEL-6.6-x86_64 QNX_660 armv7 GCC Packaging Release DisableTests OpenGLES2 NoUseGoldLinker diff --git a/coin/platform_configs/qtdeclarative.txt b/coin/platform_configs/qtdeclarative.txt index 2a9d9ac7..3139af8b 100644 --- a/coin/platform_configs/qtdeclarative.txt +++ b/coin/platform_configs/qtdeclarative.txt @@ -1,3 +1,4 @@ Template Target OS Target arch Compiler Features --------------------------------- ------------------- ----------- ----------- ------------------------------------------------------------------------------------- -qtci-linux-Ubuntu-16.04-x86_64-1 Boot2Qt_Morty armv7 GCC DeveloperBuild +qtci-linux-Ubuntu-16.04-x86_64-1 QEMU armv7 GCC DeveloperBuild +qtci-linux-Ubuntu-16.04-x86_64-1 QEMU arm64 GCC DeveloperBuild diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh index 20fb83ad..62366933 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh @@ -43,7 +43,7 @@ cd "$tempDir" #latest commit from the master proven to work git checkout c7f1cf01b8245762ca5864e835d84f6677ae8b1f git submodule update --init pixman -./configure --target-list=arm-linux-user --static +./configure --target-list=arm-linux-user,aarch64-linux-user --static make sudo make install rm -rf "$tempDir" @@ -51,13 +51,19 @@ rm -rf "$tempDir" # Enable binfmt support sudo apt-get -y install binfmt-support -# Install qemu binfmt +# Install qemu binfmt for 32bit and 64bit arm architectures sudo update-binfmts --package qemu-arm --install arm \ /usr/local/bin/qemu-arm \ --magic \ "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \ --mask \ "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" +sudo update-binfmts --package qemu-aarch64 --install aarch64 \ +/usr/local/bin/qemu-aarch64 \ +--magic \ +"\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00" \ +--mask \ +"\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" # First test using QFont fails if fonts-noto-cjk is installed. This happens because # running fontcache for that font takes > 5 mins when run on QEMU. Running fc-cache diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/004-yocto.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/004-yocto.sh new file mode 100755 index 00000000..050f4aba --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/004-yocto.sh @@ -0,0 +1,89 @@ +#!/bin/bash + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# This script installs the Yocto toolchain + +set -e + +source "${BASH_SOURCE%/*}/../common/DownloadURL.sh" + +echo "Installing Yocto toolchain for 32-bit b2qt..." + +versionARM="2.2.2" +package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarmv7-2c947f7.sh" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/boot2qt/morty/$package" +AltUrl="http://download.qt.io/development_releases/prebuilt/boot2qt/morty/$package" +SHA1="2583ae29951954cb27f12400fcb4ee94738d1430" +yoctoInstaller="/tmp/yocto-toolchain-ARMv7.sh" +yoctoLocationARMv7="/opt/yocto-armv7" +sysrootARMv7="sysroots/armv7ahf-neon-poky-linux-gnueabi" +crosscompileARMv7="sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-" + +DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller" +chmod +x "$yoctoInstaller" + +/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationARMv7" +rm -rf "$yoctoInstaller" + +echo "Installing Yocto toolchain for 64-bit b2qt..." + +versionARM64="2.2.2" +package="b2qt-x86_64-meta-toolchain-b2qt-embedded-sdk-qemuarm64-2c947f7.sh" +PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/boot2qt/morty/$package" +AltUrl="http://download.qt.io/development_releases/prebuilt/boot2qt/morty/$package" +SHA1="512b5bc1ad62af88d021eb511eeac4648d661fc6" +yoctoInstaller="/tmp/yocto-toolchain-ARM64.sh" +yoctoLocationARM64="/opt/yocto-arm64" +sysrootARM64="sysroots/aarch64-poky-linux" +crosscompileARM64="sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-" + +DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$yoctoInstaller" +chmod +x "$yoctoInstaller" + +/bin/bash "$yoctoInstaller" -y -d "$yoctoLocationARM64" +rm -rf "$yoctoInstaller" + +if [ -e "$yoctoLocationARMv7/$sysrootARMv7" -a -e "$yoctoLocationARMv7/${crosscompileARMv7}g++" -a -e "$yoctoLocationARM64/$sysrootARM64" -a -e "$yoctoLocationARM64/${crosscompileARM64}g++" ]; then + echo "export QEMUARMV7_TOOLCHAIN_SYSROOT=$yoctoLocationARMv7/$sysrootARMv7" >> ~/.profile + echo "export QEMUARMV7_TOOLCHAIN_CROSS_COMPILE=$yoctoLocationARMv7/$crosscompileARMv7" >> ~/.profile + echo "export QEMUARM64_TOOLCHAIN_SYSROOT=$yoctoLocationARM64/$sysrootARM64" >> ~/.profile + echo "export QEMUARM64_TOOLCHAIN_CROSS_COMPILE=$yoctoLocationARM64/$crosscompileARM64" >> ~/.profile +else + echo "Error! Couldn't find installation paths for Yocto toolchain. Aborting provisioning." 1>&2 + exit 1 +fi + +echo "Yocto ARMv7 toolchain = $versionARM" >> ~/versions.txt +echo "Yocto ARM64 toolchain = $versionARM64" >> ~/versions.txt From 894c63834baf28c78c87e39d25bc8940d4e35cb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tony=20Saraj=C3=A4rvi?= Date: Tue, 7 Nov 2017 09:11:53 +0200 Subject: [PATCH 3/9] Fix spelling of ANDROID_SDK_HOME It was incorrectly created at ANDROID_SDK_ROOT, but Coin doesn't use that env variable. It uses _HOME. Change-Id: I64b8befd4341e917c7aa28586ac8bf1dbf4e23a4 Reviewed-by: Heikki Halmet --- coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh b/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh index 16b2f0c4..e041027d 100755 --- a/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh +++ b/coin/provisioning/qtci-macos-10.12-x86_64/030-android.sh @@ -79,7 +79,7 @@ try echo "Running SDK manager for platforms;$sdkApiLevel, tools, platform-tools and build-tools;$sdkBuildToolsVersion." echo "y" |"$sdkTargetFolder/tools/bin/sdkmanager" "platforms;$sdkApiLevel" "tools" "platform-tools" "build-tools;$sdkBuildToolsVersion" || throw $ExceptionSdkManager - echo "export ANDROID_SDK_ROOT=$sdkTargetFolder" >> ~/.bashrc + echo "export ANDROID_SDK_HOME=$sdkTargetFolder" >> ~/.bashrc echo "export ANDROID_NDK_HOME=$targetFolder/android-ndk-$ndkVersion" >> ~/.bashrc echo "export ANDROID_NDK_HOST=darwin-x86_64" >> ~/.bashrc echo "export ANDROID_API_VERSION=$sdkApiLevel" >> ~/.bashrc From 0e278c4e95aa5d2e9df315125c119f36149fcc95 Mon Sep 17 00:00:00 2001 From: Heikki Halmet Date: Fri, 3 Nov 2017 13:09:55 +0200 Subject: [PATCH 4/9] Provisioning: Remove logical OR when echo errors MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit set -e won't work if logical OR is used after commands. These error echo's need to be removed so that error catch will works. Also set -ex added to print executed command when error caught. Task-number: QTQAINFRA-1533 Change-Id: Ib4ea832a0ee813f99f59ebacad51ec57c3eff57d Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/qnx_700.sh | 8 ++++---- .../android_linux.sh | 12 +++++------ .../qtci-linux-RHEL-6.6-x86_64/install_icu.sh | 12 +++++------ .../qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh | 12 +++++------ .../009-install_icu.sh | 20 +++++++++---------- .../003-qemu.sh | 4 ++-- 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/coin/provisioning/common/qnx_700.sh b/coin/provisioning/common/qnx_700.sh index 0b17a7a0..1f1c0f3f 100644 --- a/coin/provisioning/common/qnx_700.sh +++ b/coin/provisioning/common/qnx_700.sh @@ -35,18 +35,18 @@ # This script installs QNX 7. -set -e +set -ex targetFolder="/opt/" sourceFile="http://ci-files01-hki.intra.qt.io/input/qnx/qnx700.tar.xz" sha1="949a87c5f00d0756956cb4b1b3b213ecaeee9113" folderName="qnx700" targetFile="qnx700.tar.xz" -wget --tries=5 --waitretry=5 --output-document="$targetFile" "$sourceFile" || echo "Failed to download '$url' multiple times" -echo "$sha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" +wget --tries=5 --waitretry=5 --output-document="$targetFile" "$sourceFile" +echo "$sha1 $targetFile" | sha1sum --check if [ ! -d "$targetFolder" ]; then mkdir -p $targetFolder fi -sudo tar -C $targetFolder -Jxf $targetFile|| echo "Failed to extract $targetFile" +sudo tar -C $targetFolder -Jxf $targetFile sudo chown -R qt:users "$targetFolder"/"$folderName" # Verify that we have last file in tar diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh index fb8679f2..69b3c10e 100644 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/android_linux.sh @@ -43,7 +43,7 @@ # E.g The Bluetooth features that require Android 21 will disable themselves dynamically when running on an Android 16 device. # That's why we need to use Andoid-21 API version in Qt 5.9. -set -e +set -ex targetFolder="/opt/android" baseUrl="http://ci-files01-hki.intra.qt.io/input/android" @@ -78,8 +78,8 @@ function InstallAndroidPackage { folderName=$7 name=$8 - sudo wget --tries=5 --waitretry=5 --output-document="$targetFile" "$url" || echo "Failed to download '$url' multiple times" - echo "$sha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" + sudo wget --tries=5 --waitretry=5 --output-document="$targetFile" "$url" + echo "$sha1 $targetFile" | sha1sum --check sudo chmod 755 "$targetFile" sudo $extract || echo "Failed to extract $url" sudo chown -R qt:users "$targetFolder"/"$folderName" @@ -89,10 +89,10 @@ function InstallAndroidPackage { if [ -d "$targetFolder" ]; then echo "Removing old Android installation" - sudo rm -fr "$targetFolder" || ( echo "Can't remove $targetFolder" ; exit 1; ) + sudo rm -fr "$targetFolder" fi -sudo mkdir "$targetFolder" || ( echo "Can't create $targetFolder" ; exit 1; ) +sudo mkdir "$targetFolder" # Install Android SDK echo "Installing Android SDK version $sdkPackage..." @@ -104,7 +104,7 @@ InstallAndroidPackage "$targetFolder" $ndkPackage $ndkUrl $ndkSha1 $ndkTargetFil # run update for Android SDK and install SDK API version 21, latest SDK tools, platform-tools and build-tools echo "Running Android SDK update for API version 21, SDK-tools, platform-tools and build-tools-$sdkBuildToolsVersion..." -echo "y" |"$targetFolder"/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion || echo "Failed to run update" +echo "y" |"$targetFolder"/sdk/tools/android update sdk --no-ui --all --filter $sdkApiLevel,tools,platform-tools,build-tools-$sdkBuildToolsVersion echo 'export ANDROID_API_VERSION=android-21' >> ~/.bashrc diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh index 42db3716..03a69edb 100644 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/install_icu.sh @@ -35,7 +35,7 @@ # This script installs the right ICU version -set -e +set -ex icuVersion="56.1" icuLocation="/usr/lib64" sha1="f2eab775c04ce5f3bdae6c47d06b62158b5d6753" @@ -45,10 +45,10 @@ function Install7ZPackageFromURL { expectedSha1=$2 targetDirectory=$3 - targetFile=`mktemp` || echo "Failed to create temporary file" - wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times" - echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" - sudo /usr/local/bin/7z x -yo$targetDirectory $targetFile || echo "Failed to unzip $url archive" + targetFile=`mktemp` + wget --tries=5 --waitretry=5 --output-document=$targetFile $url + echo "$expectedSha1 $targetFile" | sha1sum --check + sudo /usr/local/bin/7z x -yo$targetDirectory $targetFile rm $targetFile } @@ -61,7 +61,7 @@ echo "Installing custom ICU devel packages on RHEL" sha1Dev="82f8b216371b848b8d36ecec7fe7b6e9b0dba0df" develPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel6.6-x64-devel.7z" -tempDir=`mktemp -d` || echo "Failed to create temporary directory" +tempDir=`mktemp -d` trap "sudo rm -fr $tempDir" EXIT Install7ZPackageFromURL $develPackageURL $sha1Dev $tempDir sudo cp -a $tempDir/lib/* /usr/lib64 diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh index ad5c90d3..27c7137b 100644 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/patch_qnx.sh @@ -39,7 +39,7 @@ # A copy of the patch must be in the root of the Coin path in # provisioning/qnx/patch-660-4367-RS6069_cpp-headers.zip -set -e +set -ex sha1="57a11ffe4434ad567b3c36f7b828dbb468a9e565" function InstallZipPackageFromURL { @@ -47,12 +47,12 @@ function InstallZipPackageFromURL { expectedSha1=$2 targetDirectory=$3 - targetFile=`mktemp` || echo "Failed to create temporary file" - wget --tries=5 --waitretry=5 --output-document=$targetFile $url || echo "Failed to download '$url' multiple times" - echo "$expectedSha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" + targetFile=`mktemp` + wget --tries=5 --waitretry=5 --output-document=$targetFile $url + echo "$expectedSha1 $targetFile" | sha1sum --check - tempDir=`mktemp -d` || echo "Failed to create temporary directory" - /usr/bin/unzip -o -d $tempDir $targetFile || echo "Failed to unzip $url archive" + tempDir=`mktemp -d` + /usr/bin/unzip -o -d $tempDir $targetFile trap "sudo rm -fr $targetFile $tempDir" EXIT sudo cp -rafv $tempDir/patches/660-4367/target/* /opt/qnx660/target/ diff --git a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/009-install_icu.sh b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/009-install_icu.sh index b51c9c8c..9447c43f 100755 --- a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/009-install_icu.sh +++ b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/009-install_icu.sh @@ -33,7 +33,7 @@ ## ############################################################################# -set -e +set -ex # This script will install ICU @@ -47,20 +47,20 @@ develPackageURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/ echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation" -targetFile=`mktemp` || echo "Failed to create temporary file" -wget --tries=5 --waitretry=5 --output-document=$targetFile $baseBinaryPackageURL || echo "Failed to download '$baseBinaryPackageURL' multiple times" -echo "$sha1 $targetFile" | sha1sum --check || echo "Failed to check sha1sum" -sudo 7z x -y -o"/usr/lib64" $targetFile || echo "Failed to unzip $baseBinaryPackageURL archive" +targetFile=`mktemp` +wget --tries=5 --waitretry=5 --output-document=$targetFile $baseBinaryPackageURL +echo "$sha1 $targetFile" | sha1sum --check +sudo 7z x -y -o"/usr/lib64" $targetFile sudo rm $targetFile echo "Installing custom ICU devel packages on RHEL" -tempDir=`mktemp -d` || echo "Failed to create temporary directory" +tempDir=`mktemp -d` -targetFile=`mktemp` || echo "Failed to create temporary file" -wget --tries=5 --waitretry=5 --output-document=$targetFile $develPackageURL || echo "Failed to download '$develPackageURL' multiple times" -echo "$sha1Dev $targetFile" | sha1sum --check || echo "Failed to check sha1sum" -7z x -y -o$tempDir $targetFile || echo "Failed to unzip $develPackageURL archive" +targetFile=`mktemp` +wget --tries=5 --waitretry=5 --output-document=$targetFile $develPackageURL +echo "$sha1Dev $targetFile" | sha1sum --check +7z x -y -o$tempDir $targetFile sudo cp -a $tempDir/lib/* /usr/lib64 sudo cp -a $tempDir/* /usr/ diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh index 62366933..74ef2b4e 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/003-qemu.sh @@ -32,11 +32,11 @@ ## ############################################################################# -set -e +set -ex # build latest qemu to usermode sudo apt-get -y install automake autoconf libtool -tempDir=$(mktemp -d) || echo "Failed to create temporary directory" +tempDir=$(mktemp -d) git clone git://git.qemu.org/qemu.git "$tempDir" cd "$tempDir" From 207494b1d32ec331383d08e6f490cd0b4cfcb82e Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Wed, 8 Nov 2017 10:59:56 +0100 Subject: [PATCH 5/9] Update submodules on '5.9' in qt5 Change-Id: I038001efcd21e74f02786441c4a30c81d30d1336 Reviewed-by: Liang Qi --- qt3d | 2 +- qtbase | 2 +- qtdeclarative | 2 +- qtdoc | 2 +- qtquickcontrols2 | 2 +- qtremoteobjects | 2 +- qttools | 2 +- qtwayland | 2 +- qtwebengine | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/qt3d b/qt3d index 294eefef..252d2e5f 160000 --- a/qt3d +++ b/qt3d @@ -1 +1 @@ -Subproject commit 294eefef0f8cfdba2edd73b5bd2ba7435b102ce5 +Subproject commit 252d2e5f2a237862cc50f926f66184d499298239 diff --git a/qtbase b/qtbase index b5b1e103..31cc29e9 160000 --- a/qtbase +++ b/qtbase @@ -1 +1 @@ -Subproject commit b5b1e1036ff59b584719b8af7b3be8223a662233 +Subproject commit 31cc29e9be22a5c09cb90d004d967d524a02408f diff --git a/qtdeclarative b/qtdeclarative index 87999238..54f15f5d 160000 --- a/qtdeclarative +++ b/qtdeclarative @@ -1 +1 @@ -Subproject commit 87999238141588987b3cef6cd68ff62a7e3e8daa +Subproject commit 54f15f5df5cf545bf4d675ccbafecd482b4a2b0b diff --git a/qtdoc b/qtdoc index 053aea2e..e4ccd4a7 160000 --- a/qtdoc +++ b/qtdoc @@ -1 +1 @@ -Subproject commit 053aea2e785df6361d86a5eb912d3ea25f72ee17 +Subproject commit e4ccd4a7a2ac752b8f674f6b57dbaf9a33b9b5a8 diff --git a/qtquickcontrols2 b/qtquickcontrols2 index 6470a54e..f46776cc 160000 --- a/qtquickcontrols2 +++ b/qtquickcontrols2 @@ -1 +1 @@ -Subproject commit 6470a54ed34523822c50ac846a17a9f76564cf58 +Subproject commit f46776cc68f88a8cbc518cacf6c63f31f11d73b0 diff --git a/qtremoteobjects b/qtremoteobjects index 1d95be3c..c10eaf91 160000 --- a/qtremoteobjects +++ b/qtremoteobjects @@ -1 +1 @@ -Subproject commit 1d95be3c4a36b2e369b4ba3171581f0a7d5095ba +Subproject commit c10eaf9148ec111c3fb752cc15e854e5c7fd3ea7 diff --git a/qttools b/qttools index d6838615..9df14033 160000 --- a/qttools +++ b/qttools @@ -1 +1 @@ -Subproject commit d683861584a38a1d1b855bde25412c06c878a1c1 +Subproject commit 9df140339230d92690758ebc3e3b6cc6c1a5e8e3 diff --git a/qtwayland b/qtwayland index f1407493..bfd08f5e 160000 --- a/qtwayland +++ b/qtwayland @@ -1 +1 @@ -Subproject commit f1407493d6d25f24a3c71fbcedc00598baa44b56 +Subproject commit bfd08f5ebd33e452c08595e5811698a16d3166fa diff --git a/qtwebengine b/qtwebengine index 399d77a3..e9309d91 160000 --- a/qtwebengine +++ b/qtwebengine @@ -1 +1 @@ -Subproject commit 399d77a38ff52d33dc871a5b221db253308b7436 +Subproject commit e9309d91ac3ec0ddd7076b5cf66655380aa82cac From 537ea17d14526bc6564765e2dd4652e11a3ed235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joni=20J=C3=A4ntti?= Date: Thu, 2 Nov 2017 11:16:42 +0200 Subject: [PATCH 6/9] Fix Ubuntu 16.04 random provisioning fail MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ubuntu 16.04 provisioning sometimes fails in the apt-get commands for package installations. This is caused by a lock that is still in use when the system is calling the apt-get commands. This change will use the apt daemon to queue the install commands and wait for the lock to release instead of checking once and then failing if the lock is not open. Task-number: QTQAINFRA-1502 Change-Id: Idd4aff42f99cf4d14c08aef8fcc3cb7dbc58b2dd Reviewed-by: Tony Sarajärvi --- .../qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh | 37 +++++++++---------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh index f07be55a..f47875a3 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/002-apt.sh @@ -50,40 +50,40 @@ try echo "Installing packages" # Git is not needed by builds themselves, but is nice to have # immediately as one starts debugging - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install git || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install git || throw $ExceptionAPT # 7zip is a needed decompressing tool - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install p7zip || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install p7zip || throw $ExceptionAPT # libssl-dev provides headers for OpenSSL - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libssl-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libssl-dev || throw $ExceptionAPT # Needed libraries for X11 support accordingly to https://wiki.qt.io/Building_Qt_5_from_Git - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install "^libxcb.*" libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev || throw $ExceptionAPT # Enable linking to system dbus - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libdbus-1-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libdbus-1-dev || throw $ExceptionAPT # Needed libraries for WebEngine - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libudev-dev libegl1-mesa-dev libfontconfig1-dev libxss-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libudev-dev libegl1-mesa-dev libfontconfig1-dev libxss-dev || throw $ExceptionAPT # Common event loop handling - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libglib2.0-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libglib2.0-dev || throw $ExceptionAPT # MySQL support - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libmysqlclient-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libmysqlclient-dev || throw $ExceptionAPT # PostgreSQL support - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libpq-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libpq-dev || throw $ExceptionAPT # SQLite support - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libsqlite3-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libsqlite3-dev || throw $ExceptionAPT # ODBC support - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install unixodbc-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install unixodbc-dev || throw $ExceptionAPT # Support for FreeType font engine - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libfreetype6-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libfreetype6-dev || throw $ExceptionAPT # Enable the usage of system jpeg libraries - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libjpeg-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libjpeg-dev || throw $ExceptionAPT # Enable support for printer driver - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libcups2-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libcups2-dev || throw $ExceptionAPT # Install libraries needed for QtMultimedia to be able to support all plugins - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev || throw $ExceptionAPT - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install libgstreamer-plugins-good1.0-dev libgstreamer-plugins-bad1.0-dev || throw $ExceptionAPT # Support for cross-building to x86 (needed by WebEngine boot2qt builds) - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install g++-multilib || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install g++-multilib || throw $ExceptionAPT # python3 development package - sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install python3-dev python3-pip python3-virtualenv || throw $ExceptionAPT + yes | sudo aptdcon --hide-terminal --install python3-dev python3-pip python3-virtualenv || throw $ExceptionAPT ) catch || { case $ex_code in @@ -101,4 +101,3 @@ catch || { ;; esac } - From ada909932df1690c077d4c19e5aa5564c6d4a883 Mon Sep 17 00:00:00 2001 From: Heikki Halmet Date: Mon, 9 Oct 2017 11:42:37 +0300 Subject: [PATCH 7/9] Provisioning: Update Java to version 8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Current version of Java isn't installing correctly during provisioning. Silent installation needs parameters which are added to script. Without those the installation process tries to open Java3BillDevices.jpg unsuccessfully and the installation fails Task-number: QTQAINFRA-1498 Task-number: QTQAINFRA-1394 Change-Id: I5672d230eb348186345887da81cdd97a4f59bce8 Reviewed-by: Tony Sarajärvi --- coin/provisioning/common/install-java.ps1 | 62 ------------------- .../08-install-java.ps1 | 1 - .../qtci-windows-10-x86_64/08-install-jdk.ps1 | 1 + .../qtci-windows-8.1-x86/08-install-java.ps1 | 1 - .../qtci-windows-8.1-x86/08-install-jdk.ps1 | 1 + .../08-install-java.ps1 | 1 - .../08-install-jdk.ps1 | 1 + 7 files changed, 3 insertions(+), 65 deletions(-) delete mode 100644 coin/provisioning/common/install-java.ps1 delete mode 100644 coin/provisioning/qtci-windows-10-x86_64/08-install-java.ps1 create mode 100644 coin/provisioning/qtci-windows-10-x86_64/08-install-jdk.ps1 delete mode 100644 coin/provisioning/qtci-windows-8.1-x86/08-install-java.ps1 create mode 100644 coin/provisioning/qtci-windows-8.1-x86/08-install-jdk.ps1 delete mode 100644 coin/provisioning/qtci-windows-8.1-x86_64/08-install-java.ps1 create mode 100644 coin/provisioning/qtci-windows-8.1-x86_64/08-install-jdk.ps1 diff --git a/coin/provisioning/common/install-java.ps1 b/coin/provisioning/common/install-java.ps1 deleted file mode 100644 index 50f12c89..00000000 --- a/coin/provisioning/common/install-java.ps1 +++ /dev/null @@ -1,62 +0,0 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: http://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL21$ -## Commercial License Usage -## Licensees holding valid commercial Qt licenses may use this file in -## accordance with the commercial license agreement provided with the -## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and The Qt Company. For licensing terms -## and conditions see http://www.qt.io/terms-conditions. For further -## information use the contact form at http://www.qt.io/contact-us. -## -## GNU Lesser General Public License Usage -## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 2.1 or version 3 as published by the Free -## Software Foundation and appearing in the file LICENSE.LGPLv21 and -## LICENSE.LGPLv3 included in the packaging of this file. Please review the -## following information to ensure the GNU Lesser General Public License -## requirements will be met: https://www.gnu.org/licenses/lgpl.html and -## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -## -## As a special exception, The Qt Company gives you certain additional -## rights. These rights are described in The Qt Company LGPL Exception -## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -## -## $QT_END_LICENSE$ -## -############################################################################# - -. "$PSScriptRoot\..\common\helpers.ps1" - -# This script will install Java RE -# Official Java RE 7 downloads require Oracle accounts. Using local mirrors only. - -$installdir = "C:\Program Files\Java\jre7" - -$version = "7u7" -if( (is64bitWinHost) -eq 1 ) { - $arch = "x64" - $sha1 = "9af03460c416931bdee18c2dcebff5db50cb8cb3" -} -else { - $arch = "i586" - $sha1 = "f76b1be20b144b1ee1d1de3255edb0a6b57d0219" -} - -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\jre-" + $version + "-windows-" + $arch + ".exe" -$javaPackage = "C:\Windows\Temp\java-$version.exe" - -Copy-Item $url_cache $javaPackage -cmd /c "$javaPackage /s SPONSORS=0" -echo "Cleaning $javaPackage.." -Remove-Item -Recurse -Force "$javaPackage" - -[Environment]::SetEnvironmentVariable("JAVA_HOME", "$installdir", [EnvironmentVariableTarget]::Machine) -Add-Path "$installdir\bin" - -echo "Java = $version $arch" >> ~\versions.txt diff --git a/coin/provisioning/qtci-windows-10-x86_64/08-install-java.ps1 b/coin/provisioning/qtci-windows-10-x86_64/08-install-java.ps1 deleted file mode 100644 index 07c4f487..00000000 --- a/coin/provisioning/qtci-windows-10-x86_64/08-install-java.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\install-java.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/08-install-jdk.ps1 b/coin/provisioning/qtci-windows-10-x86_64/08-install-jdk.ps1 new file mode 100644 index 00000000..3b64ffec --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/08-install-jdk.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\install-jdk.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86/08-install-java.ps1 b/coin/provisioning/qtci-windows-8.1-x86/08-install-java.ps1 deleted file mode 100644 index 07c4f487..00000000 --- a/coin/provisioning/qtci-windows-8.1-x86/08-install-java.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\install-java.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86/08-install-jdk.ps1 b/coin/provisioning/qtci-windows-8.1-x86/08-install-jdk.ps1 new file mode 100644 index 00000000..3b64ffec --- /dev/null +++ b/coin/provisioning/qtci-windows-8.1-x86/08-install-jdk.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\install-jdk.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86_64/08-install-java.ps1 b/coin/provisioning/qtci-windows-8.1-x86_64/08-install-java.ps1 deleted file mode 100644 index 07c4f487..00000000 --- a/coin/provisioning/qtci-windows-8.1-x86_64/08-install-java.ps1 +++ /dev/null @@ -1 +0,0 @@ -. "$PSScriptRoot\..\common\install-java.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86_64/08-install-jdk.ps1 b/coin/provisioning/qtci-windows-8.1-x86_64/08-install-jdk.ps1 new file mode 100644 index 00000000..3b64ffec --- /dev/null +++ b/coin/provisioning/qtci-windows-8.1-x86_64/08-install-jdk.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\install-jdk.ps1" From 60fb3cb2727ede0d8f6e5dd8cbc148b24408ed01 Mon Sep 17 00:00:00 2001 From: Heikki Halmet Date: Wed, 8 Nov 2017 12:19:51 +0200 Subject: [PATCH 8/9] Provisioning: Install signing tools to MacOS MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Install needed certificates and signing tools which are needed when signing release packages Change-Id: I21b9c3d1a6b4c83dec6b8ae1674def4ecc02f444 Reviewed-by: Tony Sarajärvi --- .../qtci-macos-10.12-x86_64/555-signtools.sh | 138 ++++++++++++++++++ 1 file changed, 138 insertions(+) create mode 100755 coin/provisioning/qtci-macos-10.12-x86_64/555-signtools.sh diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/555-signtools.sh b/coin/provisioning/qtci-macos-10.12-x86_64/555-signtools.sh new file mode 100755 index 00000000..49e087a8 --- /dev/null +++ b/coin/provisioning/qtci-macos-10.12-x86_64/555-signtools.sh @@ -0,0 +1,138 @@ +#!/bin/sh + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the provisioning scripts of the Qt Toolkit. +## +## $QT_BEGIN_LICENSE:LGPL21$ +## Commercial License Usage +## Licensees holding valid commercial Qt licenses may use this file in +## accordance with the commercial license agreement provided with the +## Software or, alternatively, in accordance with the terms contained in +## a written agreement between you and The Qt Company. For licensing terms +## and conditions see http://www.qt.io/terms-conditions. For further +## information use the contact form at http://www.qt.io/contact-us. +## +## GNU Lesser General Public License Usage +## Alternatively, this file may be used under the terms of the GNU Lesser +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## +## As a special exception, The Qt Company gives you certain additional +## rights. These rights are described in The Qt Company LGPL Exception +## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +## +## $QT_END_LICENSE$ +## +############################################################################# + +# Install tools for singing packages +# This script assume that OS is vanilla. Target machine dosen't have any signing certificates installed. + +set -ex + +cache="http://ci-files01-hki.intra.qt.io/input" +cacheSigningTools="$cache/mac/sign_tools" +targetFolder="/Users/qt" +keychains="$targetFolder/Library/Keychains" + +Install() { + + url=$1 + targetFile=$2 + expectedSha1=$3 + + echo "Fetching $targetFile from $url..." + curl --retry 5 --retry-delay 10 --retry-max-time 60 "$url" -o "$targetFile" + shasum "$targetFile" |grep "$expectedSha1" + +} + +# qt-license +sha1QtLicense="9d59241d16f68d914f1c7aa1dc23e05faa169e8d" +Install "$cache/semisecure/.qt-license" "$targetFolder/.qt-license" $sha1QtLicense + +# Login keychain +sha1LoginKeychainPassword="aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" +Install "$cacheSigningTools/login_keychain_password.txt" "$targetFolder/login_keychain_password.txt" "$sha1LoginKeychainPassword" +loginKeychainPassword=$(<"$targetFolder/login_keychain_password.txt") +loginKeychain=$keychains/login.keychain + +echo "Setting login.keychain as default keychain.." +security default-keychain -s $loginKeychain* +echo "Unlocking Login keychain with password.." +security unlock-keychain -p "$loginKeychainPassword" $loginKeychain* + +echo "remove the "Lock after X minutes of inactivity" from login.keychain" +security set-keychain-settings $loginKeychain + +# Apple Worldwide Developer Relations Certification Authority -> https://developer.apple.com/certificationauthority/AppleWWDRCA.cer +sha1AppleWWDRCA="ff6797793a3cd798dc5b2abef56f73edc9f83a64" +Install "$cacheSigningTools/AppleWWDRCA.cer" "$targetFolder/AppleWWDRCA.cer" $sha1AppleWWDRCA +sudo security add-certificates -k $loginKeychain* "$targetFolder/AppleWWDRCA.cer" + +# Developer ID Certification Authority -> https://www.apple.com/certificateauthority/DeveloperIDCA.cer +sha1DeveloperIDCA="3b166c3b7dc4b751c9fe2afab9135641e388e186" +Install "$cacheSigningTools/DeveloperIDCA.cer" "$targetFolder/DeveloperIDCA.cer" $sha1DeveloperIDCA +sudo security add-certificates -k $loginKeychain* "$targetFolder/DeveloperIDCA.cer" + +# Create script to unlock keychain 'security unlock-keychain -p 'password' Developer_ID_TheQtCompany.keychain' +sha1UnLockKeychain="4398870e3f558ad28c80566b5f70e24dc29ea724" +unlockKeychain=$targetFolder/unlock-keychain.sh +Install "$cacheSigningTools/unlock-keychain.sh" "$unlockKeychain" $sha1UnLockKeychain +sudo chmod 755 "$unlockKeychain" + +# Codesigning requirements file. The bundle identifier in the requirements file should match the identifier of the application that is signed. +shaCsreq="2c3f00b1845a0f475673fd6934ba25ea51d1f910" +csreq=$targetFolder/csreq_qt_company.txt +Install "$cacheSigningTools/csreq_qt_company.txt" "$csreq" $shaCsreq +chmod 755 "$csreq" + +# iOS signing tools +devIDKeychain="Developer_ID_TheQtCompany.keychain" +shaDevIdKeychain="0420a129c17725a97afd6fdafeb9cddfb80a65ca" +Install "$cacheSigningTools/$devIDKeychain" "$keychains/$devIDKeychain" $shaDevIdKeychain +echo "Opening $devIDKeychain.." +open "$keychains/$devIDKeychain" + +sha1DeveloperIDTheQtCompanyKeychainPassword="d758e067736bbda7a91ffaec66cd38afdaf68ea6" +Install "$cacheSigningTools/Developer_ID_TheQtCompany_keychain_password.txt" "$targetFolder/Developer_ID_TheQtCompany_keychain_password.txt" "$sha1DeveloperIDTheQtCompanyKeychainPassword" +DeveloperIDTheQtCompanyKeychainPassword=$(<"$targetFolder/Developer_ID_TheQtCompany_keychain_password.txt") + +echo "Unlocking $devIDKeychain with password.." +security unlock-keychain -p "$DeveloperIDTheQtCompanyKeychainPassword" $keychains/Developer_ID_TheQtCompany.keychain +security set-keychain-settings $keychains/Developer_ID_TheQtCompany.keychain + +sha1Ios="aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" +Install "$cacheSigningTools/ios_password.txt" "$targetFolder/ios_password.txt" $sha1Ios +iosPassword=$(<"$targetFolder/ios_password.txt") + +iPhoneDeveloper="iosdevelopment.p12" +shaIPhoneDeveloper="f48f6827e8d0ccdc764cb987e401b9a6f7d3f10c" +Install "$cacheSigningTools/latest_ios_cert/$iPhoneDeveloper" "$targetFolder/$iPhoneDeveloper" $shaIPhoneDeveloper +echo "Importing $iPhoneDeveloper.." +security import $targetFolder/$iPhoneDeveloper -k $loginKeychain* -P $iosPassword -T /usr/bin/codesign + +iPhoneDistribution="iosdistribution.p12" +shaIPhoneDistribution="64b1174fc3ce0eca044fbc9fa144f6a2d4330171" +Install "$cacheSigningTools/latest_ios_cert/$iPhoneDistribution" "$targetFolder/$iPhoneDistribution" $shaIPhoneDistribution +echo "Importing $iPhoneDistribution.." +security import "$targetFolder/$iPhoneDistribution" -k $loginKeychain* -P $iosPassword -T /usr/bin/codesign + +# Mobileprovision +echo "Creating directory $targetFolder/Library/MobileDevice/Provisioning Profiles.." +mkdir "$targetFolder/Library/MobileDevice" +mkdir "$targetFolder/Library/MobileDevice/Provisioning Profiles" +shaMobileprovision="88c67c95a6f59e6463a00da0b5021f581db624bf" +Install "$cacheSigningTools/latest_ios_cert/iOS_Dev08112017.mobileprovision" "$targetFolder/Library/MobileDevice/Provisioning Profiles/iOS_Dev08112017.mobileprovision" $shaMobileprovision + +# Removing password files +rm -fr "$targetFolder/login_keychain_password.txt" + From 3653630d229390c9ce5517afcce371860d2ad822 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Arve=20S=C3=A6ther?= Date: Fri, 10 Nov 2017 12:33:05 +0100 Subject: [PATCH 9/9] Provisioning: Disable NTP synchronization for Windows MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit During CI, it has been observed that some processes didn't leave their wait state. (So they were "hanging") During analysis of the event log on that CI node, we found out that at the same time those processes entered this state, the NTP client set a new time and indeed the local time of the CI node changed (it was changed 2 hours forward in our case). For the record, the processes we observed this with was jom.exe and cc1plus.exe (the latter is the g++ compiler in the mingw toolchain)). We therefore have a strong suspicion that the NTP time change was causing the CI hang, so we simply disable it. The virtual machine should anyway get the correct time from its VM host when its started. Change-Id: I1204063399e2a4741b7b26b79858759c1bc5eab2 Reviewed-by: Jędrzej Nowacki --- coin/provisioning/common/disable-ntp.ps1 | 2 ++ coin/provisioning/qtci-windows-10-x86/02-disable-ntp.ps1 | 1 + coin/provisioning/qtci-windows-10-x86_64/02-disable-ntp.ps1 | 1 + coin/provisioning/qtci-windows-7-x86/02-disable-ntp.ps1 | 1 + coin/provisioning/qtci-windows-8-x86/02-disable-ntp.ps1 | 1 + coin/provisioning/qtci-windows-8-x86_64/02-disable-ntp.ps1 | 1 + coin/provisioning/qtci-windows-8.1-x86/02-disable-ntp.ps1 | 1 + coin/provisioning/qtci-windows-8.1-x86_64/02-disable-ntp.ps1 | 1 + 8 files changed, 9 insertions(+) create mode 100644 coin/provisioning/common/disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-10-x86/02-disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-10-x86_64/02-disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-7-x86/02-disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-8-x86/02-disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-8-x86_64/02-disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-8.1-x86/02-disable-ntp.ps1 create mode 100644 coin/provisioning/qtci-windows-8.1-x86_64/02-disable-ntp.ps1 diff --git a/coin/provisioning/common/disable-ntp.ps1 b/coin/provisioning/common/disable-ntp.ps1 new file mode 100644 index 00000000..4ec9d1bd --- /dev/null +++ b/coin/provisioning/common/disable-ntp.ps1 @@ -0,0 +1,2 @@ +# Disable the NTP from syncing +w32tm /config /syncfromflags:NO diff --git a/coin/provisioning/qtci-windows-10-x86/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-10-x86/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1" diff --git a/coin/provisioning/qtci-windows-10-x86_64/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-10-x86_64/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1" diff --git a/coin/provisioning/qtci-windows-7-x86/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-7-x86/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-8-x86/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1" diff --git a/coin/provisioning/qtci-windows-8-x86_64/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-8-x86_64/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86_64/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-8.1-x86/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-8.1-x86/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1" diff --git a/coin/provisioning/qtci-windows-8.1-x86_64/02-disable-ntp.ps1 b/coin/provisioning/qtci-windows-8.1-x86_64/02-disable-ntp.ps1 new file mode 100644 index 00000000..1042c846 --- /dev/null +++ b/coin/provisioning/qtci-windows-8.1-x86_64/02-disable-ntp.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\disable-ntp.ps1"