diff options
author | Juha Karjalainen <juha.karjalainen@qt.io> | 2018-11-01 12:23:34 +0200 |
---|---|---|
committer | Jani Heikkinen <jani.heikkinen@qt.io> | 2019-06-10 10:07:20 +0000 |
commit | 31f5c48a80e140562588bd673ef35fb4efe3d643 (patch) | |
tree | 7d439a99c4890bfc7abaef89430c67f3a2db0341 /coin | |
parent | 5fd662b550d2fc8f32101ef3a4981e71c01b2f0a (diff) | |
download | qt5-31f5c48a80e140562588bd673ef35fb4efe3d643.tar.gz |
Provisioning: Change openssl version to 1.1.1b
Use newest LTS version of openssl as support for 1.0.2 series
will end at end of 2019.
For windows 7 x86 openssl 1.0.2 will be used until all need fixed
are made to submodule tests
Task-number: QTQAINFRA-2327
Change-Id: I930d239cd139b6202ebdfb5cdc8068ff2ad0b8a3
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
(cherry picked from commit 3e838f2a34d0c1538535bd184aa12681497c8a38)
Diffstat (limited to 'coin')
21 files changed, 356 insertions, 126 deletions
diff --git a/coin/platform_configs/default.txt b/coin/platform_configs/default.txt index 523fdeda..9d9c9625 100644 --- a/coin/platform_configs/default.txt +++ b/coin/platform_configs/default.txt @@ -7,20 +7,20 @@ qtci-windows-10-x86_64-10 MSVC2015 qtci-windows-10-x86_64-10 WinRT_10 x86 MSVC2015 Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -debug-and-release -release -force-debug-info -nomake tests -nomake examples -platform win32-msvc2015 -xplatform winrt-x86-msvc2015 qtci-windows-10-x86_64-10 WinRT_10 armv7 MSVC2015 Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -debug-and-release -release -force-debug-info -nomake tests -nomake examples -platform win32-msvc2015 -xplatform winrt-arm-msvc2015 qtci-windows-10-x86_64-10 MSVC2017 Packaging -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -debug-and-release -release -force-debug-info -nomake tests -opengl dynamic -nomake examples -openssl -I %OPENSSL_INCLUDE_x64% -L %OPENSSL_LIB_x64% -plugin-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x64% -L %MYSQL_LIB_x64% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x64% -L %POSTGRESQL_LIB_x64% -qtci-linux-Ubuntu-16.04-x86_64-2 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -R . -openssl -qtlibinfix TestInfix -qtnamespace TestNamespace -qtci-linux-Ubuntu-18.04-x86_64 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -force-debug-info -nomake tests -no-widgets -nomake examples -R . -openssl -qtci-linux-Ubuntu-18.04-x86_64 GCC OutOfSourceBuild Documentation -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -R . -openssl -qtlibinfix TestInfix -qtnamespace TestNamespace -qtci-linux-openSUSE-42.3-x86_64 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -nomake examples -no-pch -R . -openssl -qtci-linux-openSUSE-42.3-x86_64 ICC_18 DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -nomake examples -no-pch -system-sqlite -R . -openssl -platform linux-icc-64 -qtci-linux-openSUSE-42.3-x86_64 WebAssembly GCC Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -release -static -nomake tests -nomake examples -no-pch -no-dbus -no-headersclean -no-ssl -no-warnings-are-errors -no-feature-thread -xplatform wasm-emscripten -qtci-linux-RHEL-7.4-x86_64 GCC Packaging -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-libudev -no-use-gold-linker -force-debug-info -separate-debug-info -openssl -plugin-sql-mysql -plugin-sql-psql -plugin-sql-sqlite -qt-libjpeg -qt-libpng -qt-xcb -sysconfdir /etc/xdg -qt-pcre -qt-harfbuzz -R . +qtci-linux-Ubuntu-16.04-x86_64-2 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -R . -qtlibinfix TestInfix -qtnamespace TestNamespace -openssl -I {{.Env.OPENSSL_HOME}} +qtci-linux-Ubuntu-18.04-x86_64 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -force-debug-info -nomake tests -no-widgets -nomake examples -R . -openssl -I {{.Env.OPENSSL_HOME}} +qtci-linux-Ubuntu-18.04-x86_64 GCC OutOfSourceBuild Documentation -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -R . -qtlibinfix TestInfix -qtnamespace TestNamespace -openssl -I {{.Env.OPENSSL_HOME}} +qtci-linux-openSUSE-42.3-x86_64 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -nomake examples -no-pch -R . -openssl -I {{.Env.OPENSSL_HOME}} +qtci-linux-openSUSE-42.3-x86_64 ICC_18 DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -nomake examples -no-pch -system-sqlite -R . -openssl -platform linux-icc-64 -I {{.Env.OPENSSL_HOME}} +qtci-linux-openSUSE-42.3-x86_64 WebAssembly GCC Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -release -static -nomake tests -nomake examples -no-pch -no-dbus -no-headersclean -no-ssl -no-warnings-are-errors -no-feature-thread -xplatform wasm-emscripten -I {{.Env.OPENSSL_HOME}} +qtci-linux-RHEL-7.4-x86_64 GCC Packaging -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-libudev -no-use-gold-linker -force-debug-info -separate-debug-info -openssl -plugin-sql-mysql -plugin-sql-psql -plugin-sql-sqlite -qt-libjpeg -qt-libpng -qt-xcb -sysconfdir /etc/xdg -qt-pcre -qt-harfbuzz -R . -I {{.Env.OPENSSL_HOME}} qtci-macos-10.13-x86_64-2 Clang Packaging -opensource -confirm-license -verbose -prefix /Users/qt/work/install -debug-and-release -release -nomake tests -nomake examples -plugin-sql-mysql -plugin-sql-psql -plugin-sql-sqlite -xplatform macx-clang -separate-debug-info -sdk macosx -device-option QMAKE_APPLE_DEVICE_ARCHS=x86_64 -sysconfdir /Library/Preferences/Qt -I/usr/local/opt/openssl/include qtci-macos-10.12-x86_64-9 Clang -opensource -confirm-license -verbose -prefix /Users/qt/work/install -developer-build -release -qtnamespace TestNamespace -nomake tests -nomake examples -no-pch -no-framework -xplatform macx-clang -sdk macosx -device-option QMAKE_APPLE_DEVICE_ARCHS=x86_64 -I/usr/local/opt/openssl/include qtci-macos-10.13-x86_64-2 IOS_ANY multi Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /Users/qt/work/install -debug-and-release -nomake tests -no-icu -nomake examples -no-sql-mysql -no-sql-psql -plugin-sql-sqlite -static -xplatform macx-ios-clang qtci-macos-10.13-x86_64-2 TvOS_ANY multi Clang DisableTests -opensource -confirm-license -verbose -prefix /Users/qt/work/install -debug-and-release -nomake tests -nomake examples -no-sql-mysql -no-sql-psql -plugin-sql-sqlite -xplatform macx-tvos-clang qtci-macos-10.13-x86_64-2 WatchOS_ANY multi Clang DisableTests -opensource -confirm-license -verbose -prefix /Users/qt/work/install -debug-and-release -nomake tests -nomake examples -no-sql-mysql -no-sql-psql -plugin-sql-sqlite -xplatform macx-watchos-clang -qtci-linux-RHEL-7.4-x86_64 Android_ANY armv7 Clang Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-dbus -no-qpa-platform-guard -no-use-gold-linker -sysconfdir /etc/xdg -opengl es2 -openssl -I /home/qt/openssl-1.0.2/include -android-sdk /opt/android/sdk -android-ndk /opt/android/android-ndk-r19c -android-ndk-host linux-x86_64 -android-arch armeabi-v7a -xplatform android-clang -qtci-linux-RHEL-7.4-x86_64 Android_ANY arm64 Clang Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-dbus -no-qpa-platform-guard -no-use-gold-linker -sysconfdir /etc/xdg -opengl es2 -openssl -I /home/qt/openssl-1.0.2/include -android-sdk /opt/android/sdk -android-ndk /opt/android/android-ndk-r19c -android-ndk-host linux-x86_64 -android-arch arm64-v8a -xplatform android-clang +qtci-linux-RHEL-7.4-x86_64 Android_ANY armv7 Clang Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-dbus -no-qpa-platform-guard -no-use-gold-linker -sysconfdir /etc/xdg -opengl es2 -openssl -I {{.Env.OPENSSL_ANDROID_HOME}}/include -android-sdk /opt/android/sdk -android-ndk /opt/android/android-ndk-r19c -android-ndk-host linux-x86_64 -android-arch armeabi-v7a -xplatform android-clang +qtci-linux-RHEL-7.4-x86_64 Android_ANY arm64 Clang Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-dbus -no-qpa-platform-guard -no-use-gold-linker -sysconfdir /etc/xdg -opengl es2 -openssl -I {{.Env.OPENSSL_ANDROID_HOME}}/include -android-sdk /opt/android/sdk -android-ndk /opt/android/android-ndk-r19c -android-ndk-host linux-x86_64 -android-arch arm64-v8a -xplatform android-clang qtci-linux-Ubuntu-18.04-x86_64 QEMU armv7 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -nomake examples -no-xcb -R . -openssl -device linux-imx7-g++ -device-option CROSS_COMPILE=/opt/yocto-armv7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi- -device-option DISTRO_OPTS="hard-float boot2qt" -sysroot /opt/yocto-armv7/sysroots/armv7ahf-neon-poky-linux-gnueabi -extprefix /home/qt/work/install -mysql_config /opt/yocto-armv7/sysroots/armv7ahf-neon-poky-linux-gnueabi/usr/bin/mysql_config -psql_config /dev/null -tslib qtci-linux-Ubuntu-18.04-x86_64 QEMU arm64 GCC -opensource -confirm-license -verbose -prefix /home/qt/work/install -developer-build -nomake tests -nomake examples -no-xcb -R . -openssl -device linux-generic-g++ -device-option CROSS_COMPILE=/opt/yocto-arm64/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux- -device-option DISTRO_OPTS=boot2qt -sysroot /opt/yocto-arm64/sysroots/aarch64-poky-linux -extprefix /home/qt/work/install -mysql_config /opt/yocto-arm64/sysroots/aarch64-poky-linux/usr/bin/mysql_config -psql_config /dev/null -tslib qtci-linux-Ubuntu-18.04-x86_64 GCC TestOnly LicenseCheck diff --git a/coin/platform_configs/qt5.txt b/coin/platform_configs/qt5.txt index 0605cc7f..a2b374d0 100644 --- a/coin/platform_configs/qt5.txt +++ b/coin/platform_configs/qt5.txt @@ -6,7 +6,7 @@ qtci-windows-7-x86-3 Mingw73 qtci-windows-10-x86_64-10 Mingw73 Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -debug-and-release -nomake tests -nomake examples -opengl dynamic -openssl -I %OPENSSL_INCLUDE_x64% -L %OPENSSL_LIB_x64% -plugin-sql-mysql -plugin-sql-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x64% -L %MYSQL_LIB_x64% -plugin-sql-psql -I %POSTGRESQL_INCLUDE_x64% -L %POSTGRESQL_LIB_x64% -platform win32-g++ qtci-windows-10-x86_64-10 WinRT_10 armv7 MSVC2017 Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -debug-and-release -nomake tests -nomake examples -force-debug-info -platform win32-msvc2017 -xplatform winrt-arm-msvc2017 qtci-windows-10-x86_64-10 WinRT_10 MSVC2017 Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -debug-and-release -nomake tests -nomake examples -force-debug-info -platform win32-msvc2017 -xplatform winrt-x64-msvc2017 -qtci-linux-RHEL-7.4-x86_64 Android_ANY x86 GCC Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-dbus -no-use-gold-linker -no-qpa-platform-guard -opengl es2 -sysconfdir /etc/xdg -openssl -I /home/qt/openssl-1.0.2/include -xplatform android-clang -android-sdk /opt/android/sdk -android-ndk /opt/android/android-ndk-r19c -android-ndk-host linux-x86_64 -android-arch x86 +qtci-linux-RHEL-7.4-x86_64 Android_ANY x86 GCC Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix /home/qt/work/install -release -nomake tests -nomake examples -no-dbus -no-use-gold-linker -no-qpa-platform-guard -opengl es2 -sysconfdir /etc/xdg -openssl -I {{.Env.OPENSSL_ANDROID_HOME}}/include -xplatform android-clang -android-sdk /opt/android/sdk -android-ndk /opt/android/android-ndk-r19c -android-ndk-host linux-x86_64 -android-arch x86 qtci-windows-10-x86_64-10 Android_ANY armv7 Mingw73 Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake tests -nomake examples -no-dbus -opengl es2 -sysconfdir /etc/xdg -openssl -I c:\utils\openssl-android-master\include -xplatform android-clang -android-sdk C:\Utils\Android -android-ndk c:\Utils\Android\android-ndk-r19c -android-arch armeabi-v7a qtci-windows-10-x86_64-10 Android_ANY arm64 Mingw73 Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake tests -nomake examples -no-dbus -opengl es2 -sysconfdir /etc/xdg -openssl -I c:\utils\openssl-android-master\include -xplatform android-clang -android-sdk C:\Utils\Android -android-ndk c:\Utils\Android\android-ndk-r19c -android-arch arm64-v8a qtci-windows-10-x86_64-10 Android_ANY x86 Mingw73 Clang Packaging DisableTests -opensource -confirm-license -verbose -prefix c:\Users\qt\work\install -release -nomake tests -nomake examples -no-dbus -opengl es2 -sysconfdir /etc/xdg -openssl -I c:\utils\openssl-android-master\include -xplatform android-clang -android-sdk C:\Utils\Android -android-ndk c:\Utils\Android\android-ndk-r19c -android-arch x86 diff --git a/coin/provisioning/common/linux/openssl_for_android_linux.sh b/coin/provisioning/common/linux/openssl_for_android_linux.sh index 09d0b6d5..d833975f 100755 --- a/coin/provisioning/common/linux/openssl_for_android_linux.sh +++ b/coin/provisioning/common/linux/openssl_for_android_linux.sh @@ -35,32 +35,38 @@ # This script install OpenSSL from sources. # Requires GCC and Perl to be in PATH. - +set -ex # shellcheck source=../unix/DownloadURL.sh source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" # shellcheck source=../unix/SetEnvVar.sh source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" -version="1.0.2p" +exports_file="/tmp/export.sh" +# source previously made environmental variables. +if uname -a |grep -q "Ubuntu"; then + # shellcheck disable=SC1090 + grep -e "^export" "$HOME/.profile" > $exports_file && source $exports_file + rm -rf "$exports_file" +else + # shellcheck disable=SC1090 + grep -e "^export" "$HOME/.bashrc" > $exports_file && source $exports_file + rm -rf "$exports_file" +fi + +version="1.1.1b" officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" cachedUrl="http://ci-files01-hki.intra.qt.io/input/openssl/openssl-$version.tar.gz" targetFile="/tmp/openssl-$version.tar.gz" -installFolder="/home/qt/" -sha="f34b5322e92415755c7d58bf5d0d5cf37666382c" -# Until every VM doing Linux Android builds have provisioned the env variable -# OPENSSL_ANDROID_HOME, we can't change the hard coded path that's currently in Coin. -# QTQAINFRA-1436 -opensslHome="${installFolder}openssl-1.0.2" - +sha="e9710abf5e95c48ebf47991b10cbb48c09dae102" +opensslHome="${HOME}/openssl/android/openssl-${version}" DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" +mkdir -p "${HOME}/openssl/android/" +tar -xzf "$targetFile" -C "${HOME}/openssl/android/" -tar -xzf "$targetFile" -C "$installFolder" -# This rename should be removed once hard coded path from Coin is fixed. (QTQAINFRA-1436) -mv "${opensslHome}p" "${opensslHome}" -pushd "$opensslHome" - -echo "Running configure" -perl Configure shared android +TOOLCHAIN=${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/bin +cd "$opensslHome" +PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm +PATH=$TOOLCHAIN:$PATH CC=clang make build_generated SetEnvVar "OPENSSL_ANDROID_HOME" "$opensslHome" diff --git a/coin/provisioning/common/macos/install_openssl.sh b/coin/provisioning/common/macos/install_openssl.sh deleted file mode 100755 index 3b1978e2..00000000 --- a/coin/provisioning/common/macos/install_openssl.sh +++ /dev/null @@ -1,81 +0,0 @@ -#!/usr/bin/env bash - -############################################################################# -## -## Copyright (C) 2018 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 install OpenSSL - -set -ex - -# shellcheck source=../common/unix/InstallFromCompressedFileFromURL.sh -source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh" -# shellcheck source=../common/unix/SetEnvVar.sh -source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" - -opensslVersion="1.0.2p" -opensslFile="openssl-$opensslVersion.tar.gz" -opensslDlUrl="http://ci-files01-hki.intra.qt.io/input/openssl/$opensslFile" -opensslAltDlUrl="https://www.openssl.org/source/$opensslFile" -opensslSha1="f34b5322e92415755c7d58bf5d0d5cf37666382c" - -# Below target location has been hard coded into Coin. -# QTQAINFRA-1195 -openssl_install_dir=/usr/local/openssl-$opensslVersion -opensslTargetLocation="/usr/local/opt/openssl" - -InstallFromCompressedFileFromURL "$opensslDlUrl" "$opensslAltDlUrl" "$opensslSha1" "/tmp/openssl-$opensslVersion" "openssl-$opensslVersion" -cd "/tmp/openssl-$opensslVersion" -pwd -sudo ./config --prefix=$openssl_install_dir -echo "Running 'make' for OpenSSL" -sudo make --silent > /tmp/openssl_make.log 2>&1 -echo "Running 'make install' for OpenSSL" -sudo make --silent install > /tmp/openssl_make_install.log 2>&1 - -path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/') -sudo mkdir -p "$path" -sudo ln -s $openssl_install_dir $opensslTargetLocation - -SetEnvVar "PATH" "\"$opensslTargetLocation/bin:\$PATH\"" -SetEnvVar "MANPATH" "\"$opensslTargetLocation/share/man:\$MANPATH\"" - -SetEnvVar "OPENSSL_DIR" "\"$openssl_install_dir\"" -SetEnvVar "OPENSSL_INCLUDE" "\"$openssl_install_dir/include\"" -SetEnvVar "OPENSSL_LIB" "\"$openssl_install_dir/lib\"" - -security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null -security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null - -sudo rm -rf /tmp/openssl-$opensslVersion - -echo "OpenSSL = $opensslVersion" >> ~/versions.txt diff --git a/coin/provisioning/common/unix/install-openssl.sh b/coin/provisioning/common/unix/install-openssl.sh new file mode 100755 index 00000000..afc1509e --- /dev/null +++ b/coin/provisioning/common/unix/install-openssl.sh @@ -0,0 +1,91 @@ +#!/usr/bin/env bash + +############################################################################# +## +## Copyright (C) 2019 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 install OpenSSL from sources. +# Requires GCC and Perl to be in PATH. +set -ex +os="$1" +# shellcheck source=../unix/DownloadURL.sh +source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh" +# shellcheck source=../unix/SetEnvVar.sh +source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh" + +version="1.1.1b" +officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz" +cachedUrl="http://ci-files01-hki.intra.qt.io/input/openssl/openssl-$version.tar.gz" +targetFile="/tmp/openssl-$version.tar.gz" +sha="e9710abf5e95c48ebf47991b10cbb48c09dae102" +opensslHome="${HOME}/openssl-${version}" +opensslSource="${opensslHome}-src" +DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile" +tar -xzf "$targetFile" -C "$HOME" +mv "$opensslHome" "$opensslSource" +cd "$opensslSource" +pwd + +if [[ "$os" == "linux" ]]; then + ./Configure --prefix="$opensslHome" shared no-ssl3-method enable-ec_nistp_64_gcc_128 linux-x86_64 "-Wa,--noexecstack" + make && make install_sw install_ssldirs + SetEnvVar "OPENSSL_HOME" "$opensslHome" +elif [ "$os" == "macos" ]; then + # Below target location has been hard coded into Coin. + # QTQAINFRA-1195 + openssl_install_dir=/usr/local/openssl-$version + opensslTargetLocation="/usr/local/opt/openssl" + sudo ./Configure --prefix=$openssl_install_dir shared no-ssl3-method enable-ec_nistp_64_gcc_128 darwin64-x86_64-cc "-Wa,--noexecstack" + echo "Running 'make' for OpenSSL" + # shellcheck disable=SC2024 + sudo make --silent > /tmp/openssl_make.log 2>&1 + echo "Running 'make install' for OpenSSL" + # shellcheck disable=SC2024 + sudo make --silent install > /tmp/openssl_make_install.log 2>&1 + + path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/') + sudo mkdir -p "$path" + sudo ln -s $openssl_install_dir $opensslTargetLocation + + SetEnvVar "PATH" "\"$opensslTargetLocation/bin:\$PATH\"" + SetEnvVar "MANPATH" "\"$opensslTargetLocation/share/man:\$MANPATH\"" + + SetEnvVar "OPENSSL_DIR" "\"$openssl_install_dir\"" + SetEnvVar "OPENSSL_INCLUDE" "\"$openssl_install_dir/include\"" + SetEnvVar "OPENSSL_LIB" "\"$openssl_install_dir/lib\"" + + security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null + security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null +fi + + +echo "OpenSSL = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index cf144c90..981fa51d 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -35,33 +35,40 @@ . "$PSScriptRoot\helpers.ps1" +if (Is64BitWinHost) { + $msys_bash = "C:\Utils\msys64\usr\bin\bash" +} else { + $msys_bash = "C:\Utils\msys32\usr\bin\bash" +} + # OpenSSL need to be configured from sources for Android build in windows 7 # Msys need to be installed to target machine # More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html -$version = "1.0.2p" +$version = "1.1.1b" $zip = Get-DownloadLocation ("openssl-$version.tar.gz") -$sha1 = "f34b5322e92415755c7d58bf5d0d5cf37666382c" +$sha1 = "e9710abf5e95c48ebf47991b10cbb48c09dae102" $destination = "C:\Utils\openssl-android-master" +# msys unix style paths +$ndkPath = "/c/Utils/Android/android-ndk-r19c" +$openssl_path = "/c/Utils/openssl-android-master" +$cc_path = "$ndkPath/toolchains/llvm/prebuilt/windows-x86_64/bin" Download https://www.openssl.org/source/openssl-$version.tar.gz \\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-$version.tar.gz $zip Verify-Checksum $zip $sha1 -Extract-7Zip $zip C:\Utils -Extract-7Zip C:\Utils\openssl-$version.tar C:\Utils -Rename-Item C:\Utils\openssl-$version $destination +Extract-7Zip $zip C:\Utils\tmp +Extract-7Zip C:\Utils\tmp\openssl-$version.tar C:\Utils\tmp +Move-Item C:\Utils\tmp\openssl-${version} $destination Remove-Item -Path $zip -Remove-Item C:\Utils\openssl-$version.tar - -# Make sure configure for openssl has a "make" and "perl" available -$env:PATH = $env:PATH + ";C:\msys\1.0\bin;C:\strawberry\perl\bin" Write-Host "Configuring OpenSSL $version for Android..." Push-Location $destination -Run-Executable "C:\msys\1.0\bin\bash.exe" "-c `"c:/strawberry/perl/bin/perl Configure shared android`"" +# $ must be escaped in powershell... +Start-Process -NoNewWindow -Wait -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_HOME=$ndkPath PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") +Start-Process -NoNewWindow -Wait -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_HOME=$ndkPath PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") Pop-Location -# Following command is needed when using version 1.1.0. With version 1.1.0 msys is not needed. -# C:\mingw530\bin\mingw32-make.exe include\openssl\opensslconf.h - +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME" "$destination" +Remove-item C:\Utils\tmp -Recurse -Confirm:$false Write-Output "Android OpenSSL = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/openssl.ps1 b/coin/provisioning/common/windows/openssl.ps1 index 4cc6a3b3..2f21db37 100644 --- a/coin/provisioning/common/windows/openssl.ps1 +++ b/coin/provisioning/common/windows/openssl.ps1 @@ -36,7 +36,7 @@ # This script installs OpenSSL $version. # Both x86 and x64 versions needed when x86 integrations are done on x64 machine -$version = "1_0_2p" +$version = "1_1_1b" $packagex64 = "C:\Windows\Temp\Win64OpenSSL-$version.exe" $packagex86 = "C:\Windows\Temp\Win32OpenSSL-$version.exe" @@ -47,7 +47,7 @@ if (Is64BitWinHost) { $installFolder = "C:\openssl" $externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" - $sha1 = "ec8b4111afb86ffc81837a30667aa076afe9d1e6" + $sha1 = "5b50819dd84aa9219e0cad9cdddf78285bdd1bbb" Write-Host "Fetching from URL ..." Download $externalUrl $internalUrl $packagex64 @@ -74,7 +74,7 @@ if (Is64BitWinHost) { $externalUrl = "https://slproweb.com/download/Win32OpenSSL-$version.exe" $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe" -$sha1 = "753d6b2cb8b6c808f6212bd21b6e6e7822a4e236" +$sha1 = "1ae5ad4fe5dae01dd056274979cce26945c9e86c" Write-Host "Fetching from URL ..." Download $externalUrl $internalUrl $packagex86 diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/09-install-openssl.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/09-install-openssl.sh new file mode 100755 index 00000000..4f1d3768 --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/09-install-openssl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# shellcheck source=../common/unix/install-openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "linux" diff --git a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/09-install-openssl.sh b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/09-install-openssl.sh new file mode 100755 index 00000000..4f1d3768 --- /dev/null +++ b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/09-install-openssl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# shellcheck source=../common/unix/install-openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "linux" diff --git a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/10-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/50-openssl_for_android_linux.sh index ef2b3ba8..ef2b3ba8 100755 --- a/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/10-openssl_for_android_linux.sh +++ b/coin/provisioning/qtci-linux-RHEL-7.4-x86_64/50-openssl_for_android_linux.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86/09-install-openssl.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86/09-install-openssl.sh new file mode 100755 index 00000000..4f1d3768 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86/09-install-openssl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# shellcheck source=../common/unix/install-openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "linux" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/10-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86/50-openssl_for_android_linux.sh index 81ea3b17..81ea3b17 100755 --- a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/10-openssl_for_android_linux.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86/50-openssl_for_android_linux.sh diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/09-install-openssl.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/09-install-openssl.sh new file mode 100755 index 00000000..4f1d3768 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/09-install-openssl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# shellcheck source=../common/unix/install-openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "linux" diff --git a/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-openssl_for_android_linux.sh new file mode 100755 index 00000000..81ea3b17 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-16.04-x86_64/50-openssl_for_android_linux.sh @@ -0,0 +1,39 @@ +#!/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$ +## +############################################################################# + +set -ex + +# shellcheck source=../common/linux/openssl_for_android_linux.sh +source "${BASH_SOURCE%/*}/../common/linux/openssl_for_android_linux.sh" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/09-install-openssl.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/09-install-openssl.sh new file mode 100755 index 00000000..4f1d3768 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/09-install-openssl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# shellcheck source=../common/unix/install-openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "linux" diff --git a/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/50-openssl_for_android_linux.sh b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/50-openssl_for_android_linux.sh new file mode 100755 index 00000000..81ea3b17 --- /dev/null +++ b/coin/provisioning/qtci-linux-Ubuntu-18.04-x86_64/50-openssl_for_android_linux.sh @@ -0,0 +1,39 @@ +#!/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$ +## +############################################################################# + +set -ex + +# shellcheck source=../common/linux/openssl_for_android_linux.sh +source "${BASH_SOURCE%/*}/../common/linux/openssl_for_android_linux.sh" diff --git a/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/09-install-openssl.sh b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/09-install-openssl.sh new file mode 100755 index 00000000..4f1d3768 --- /dev/null +++ b/coin/provisioning/qtci-linux-openSUSE-42.3-x86_64/09-install-openssl.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +set -ex + +# shellcheck source=../common/unix/install-openssl.sh +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "linux" diff --git a/coin/provisioning/qtci-macos-10.12-x86_64/35-openssl.sh b/coin/provisioning/qtci-macos-10.12-x86_64/35-openssl.sh index 963f48d6..44fa76f1 100755 --- a/coin/provisioning/qtci-macos-10.12-x86_64/35-openssl.sh +++ b/coin/provisioning/qtci-macos-10.12-x86_64/35-openssl.sh @@ -3,4 +3,4 @@ set -ex # shellcheck source=../common/macos/install_openssl.sh -source "${BASH_SOURCE%/*}/../common/macos/install_openssl.sh" +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "macos" diff --git a/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh b/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh index 963f48d6..44fa76f1 100755 --- a/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh +++ b/coin/provisioning/qtci-macos-10.13-x86_64/35-openssl.sh @@ -3,4 +3,4 @@ set -ex # shellcheck source=../common/macos/install_openssl.sh -source "${BASH_SOURCE%/*}/../common/macos/install_openssl.sh" +source "${BASH_SOURCE%/*}/../common/unix/install-openssl.sh" "macos" diff --git a/coin/provisioning/qtci-windows-10-x86_64/10-openssl_for_android.ps1 b/coin/provisioning/qtci-windows-10-x86_64/50-openssl_for_android.ps1 index 25c6f28a..25c6f28a 100644 --- a/coin/provisioning/qtci-windows-10-x86_64/10-openssl_for_android.ps1 +++ b/coin/provisioning/qtci-windows-10-x86_64/50-openssl_for_android.ps1 diff --git a/coin/provisioning/qtci-windows-7-x86/09-openssl.ps1 b/coin/provisioning/qtci-windows-7-x86/09-openssl.ps1 index d57ad1cd..ae867cdc 100644 --- a/coin/provisioning/qtci-windows-7-x86/09-openssl.ps1 +++ b/coin/provisioning/qtci-windows-7-x86/09-openssl.ps1 @@ -1 +1,94 @@ -. "$PSScriptRoot\..\common\windows\openssl.ps1" +############################################################################# +## +## Copyright (C) 2019 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\windows\helpers.ps1" + +# This script installs OpenSSL $version. +# Both x86 and x64 versions needed when x86 integrations are done on x64 machine + +$version = "1_0_2p" +$packagex64 = "C:\Windows\Temp\Win64OpenSSL-$version.exe" +$packagex86 = "C:\Windows\Temp\Win32OpenSSL-$version.exe" + +if (Is64BitWinHost) { + + # Install x64 bit version + $architecture = "x64" + $installFolder = "C:\openssl" + $externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe" + $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" + $sha1 = "ec8b4111afb86ffc81837a30667aa076afe9d1e6" + + Write-Host "Fetching from URL ..." + Download $externalUrl $internalUrl $packagex64 + Verify-Checksum $packagex64 $sha1 + Write-Host "Installing $packagex64 ..." + Run-Executable "$packagex64" "/SP- /SILENT /LOG /SUPPRESSMSGBOXES /NORESTART /DIR=$installFolder" + + Write-Host "Remove downloaded $packagex64 ..." + Remove-Item -Path $packagex64 + + Set-EnvironmentVariable "OPENSSL_CONF_x64" "$installFolder\bin\openssl.cfg" + Set-EnvironmentVariable "OPENSSL_INCLUDE_x64" "$installFolder\include" + Set-EnvironmentVariable "OPENSSL_LIB_x64" "$installFolder\lib" +} + +# Install x86 bit version +$architecture = "x86" + +if (Is64BitWinHost) { + $installFolder = "C:\openssl$architecture" +} else { + $installFolder = "C:\openssl" +} + +$externalUrl = "https://slproweb.com/download/Win32OpenSSL-$version.exe" +$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe" +$sha1 = "753d6b2cb8b6c808f6212bd21b6e6e7822a4e236" + +Write-Host "Fetching from URL ..." +Download $externalUrl $internalUrl $packagex86 +Verify-Checksum $packagex86 $sha1 +Write-Host "Installing $packagex86 ..." +Run-Executable "$packagex86" "/SP- /SILENT /LOG /SUPPRESSMSGBOXES /NORESTART /DIR=$installFolder" + +Write-Host "Remove downloaded $packagex86 ..." +Remove-Item -Path $packagex86 + +Set-EnvironmentVariable "OPENSSL_CONF_x86" "$installFolder\bin\openssl.cfg" +Set-EnvironmentVariable "OPENSSL_INCLUDE_x86" "$installFolder\include" +Set-EnvironmentVariable "OPENSSL_LIB_x86" "$installFolder\lib" + +# Store version information to ~/versions.txt, which is used to print version information to provision log. +Write-Output "OpenSSL = $version" >> ~/versions.txt + |