diff options
author | Liang Qi <liang.qi@qt.io> | 2017-11-11 12:57:00 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2017-11-11 12:57:00 +0100 |
commit | d0df4f2ce938ce39fef4dae4a13f155435793005 (patch) | |
tree | c9eca501d9edab6ebb0d2f1c6f257190dc00479e /coin | |
parent | ee4b7e638b8ab654fc0d27da88e9fc2a85c115d4 (diff) | |
parent | 3653630d229390c9ce5517afcce371860d2ad822 (diff) |
Merge remote-tracking branch 'origin/5.9' into 5.9.3
Change-Id: I2bb4b5d5b507c6586a9f9f7f2765d5f102ad180b
Diffstat (limited to 'coin')
27 files changed, 304 insertions, 123 deletions
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/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/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/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/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 } - 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..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,18 +32,18 @@ ## ############################################################################# -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" #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 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 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" + 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-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-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/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/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" 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" |