From a99d3432f71c4be5045ae2cdcc3b7070de5abe23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simo=20F=C3=A4lt?= Date: Wed, 26 Jul 2017 10:19:45 +0300 Subject: Install python3 on all platforms Python3 is required in 5.6 by pyside-setup. Task-number: QTAUTO-345 Change-Id: If11ca425fa08cce8a518710ded0a6ec58159343d Reviewed-by: Simon Hausmann (cherry picked from commit a5f3f8ed482d314d092e1a6ddc5568839bb59c74) (cherry picked from commit a7658388892bc70c3c5f3a6f6e31639ef5b766d1) (cherry picked from commit 1859f9b26ce0177cb83e917148b10ff08bb25db7) --- coin/provisioning/common/InstallPKGFromURL.sh | 104 +++++++++++++++++++++ coin/provisioning/common/python3.ps1 | 70 ++++++++++++++ coin/provisioning/common/python3.sh | 52 +++++++++++ coin/provisioning/common/vc_redist.ps1 | 64 +++++++++++++ .../qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh | 14 +++ .../qtci-linux-Ubuntu-14.04-x86_64/08-pythondev.sh | 4 +- .../qtci-osx-10.10-x86_64/025-python3.sh | 1 + .../qtci-osx-10.11-x86_64/025-python3.sh | 1 + .../qtci-osx-10.8-x86_64/025-python3.sh | 1 + .../qtci-osx-10.9-x86_64/025-python3.sh | 1 + coin/provisioning/qtci-windows-10-x86/python3.ps1 | 1 + .../qtci-windows-10-x86_64/python3.ps1 | 1 + .../qtci-windows-7-x86/07-vc_redist.ps1 | 1 + coin/provisioning/qtci-windows-7-x86/python3.ps1 | 1 + .../qtci-windows-8-x86/07-vc_redist.ps1 | 1 + coin/provisioning/qtci-windows-8-x86/python3.ps1 | 1 + .../qtci-windows-8-x86_64/07-vc_redist.ps1 | 1 + .../provisioning/qtci-windows-8-x86_64/python3.ps1 | 1 + 18 files changed, 319 insertions(+), 1 deletion(-) create mode 100644 coin/provisioning/common/InstallPKGFromURL.sh create mode 100644 coin/provisioning/common/python3.ps1 create mode 100755 coin/provisioning/common/python3.sh create mode 100644 coin/provisioning/common/vc_redist.ps1 create mode 100644 coin/provisioning/qtci-osx-10.10-x86_64/025-python3.sh create mode 100644 coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh create mode 100644 coin/provisioning/qtci-osx-10.8-x86_64/025-python3.sh create mode 100644 coin/provisioning/qtci-osx-10.9-x86_64/025-python3.sh create mode 100644 coin/provisioning/qtci-windows-10-x86/python3.ps1 create mode 100644 coin/provisioning/qtci-windows-10-x86_64/python3.ps1 create mode 100644 coin/provisioning/qtci-windows-7-x86/07-vc_redist.ps1 create mode 100644 coin/provisioning/qtci-windows-7-x86/python3.ps1 create mode 100644 coin/provisioning/qtci-windows-8-x86/07-vc_redist.ps1 create mode 100644 coin/provisioning/qtci-windows-8-x86/python3.ps1 create mode 100644 coin/provisioning/qtci-windows-8-x86_64/07-vc_redist.ps1 create mode 100644 coin/provisioning/qtci-windows-8-x86_64/python3.ps1 diff --git a/coin/provisioning/common/InstallPKGFromURL.sh b/coin/provisioning/common/InstallPKGFromURL.sh new file mode 100644 index 00000000..c00b646c --- /dev/null +++ b/coin/provisioning/common/InstallPKGFromURL.sh @@ -0,0 +1,104 @@ +#!/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$ +## +############################################################################# + +# shellcheck source=try_catch.sh +source "${BASH_SOURCE%/*}/try_catch.sh" + +ExceptionCreateTmpFile=100 +ExceptionDownloadPrimaryUrl=101 +ExceptionDownloadAltUrl=102 +ExceptionSHA1=103 +ExceptionInstallerPKG=104 +ExceptionDeleteTmpFile=105 + + +function InstallPKGFromURL { + url=$1 + url_alt=$2 + expectedSha1=$3 + targetDirectory=$4 + + try + ( + echo "Creating temporary file" + targetFile=$(mktemp "$TMPDIR$(uuidgen).pkg") || trow $ExceptionCreateTmpFile + try + ( + echo "Downloading PKG from primary URL '$url'" + curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" || throw $ExceptionDownloadPrimaryUrl + ) + catch || { + case $ex_code in + $ExceptionDownloadPrimaryUrl) + echo "Failed to download '$url' multiple times" + echo "Downloading PKG from alternative URL '$url_alt'" + curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url_alt" || throw $ExceptionDownloadAltUrl + ;; + esac + } + echo "Checking SHA1 on PKG '$targetFile'" + echo "$expectedSha1 *$targetFile" > $targetFile.sha1 + /usr/bin/shasum --check $targetFile.sha1 || throw $ExceptionSHA1 + echo "Run installer on PKG" + sudo installer -package "$targetFile" -target "$targetDirectory" || throw $ExceptionInstallerPKG + echo "Removing file '$targetFile'" + rm "$targetFile" || throw $ExceptionDeleteTmpFile + ) + + catch || { + case $ex_code in + $ExceptionCreateTmpFile) + echo "Failed to create temporary file" + exit 1; + ;; + $ExceptionDownloadAltUrl) + echo "Failed downloading PKG from primary and alternative URLs" + exit 1; + ;; + $ExceptionSHA1) + echo "Failed to check sha1sum." + exit 1; + ;; + $ExceptionInstallerPKG) + echo "Failed running installer on PKG." + exit 1; + ;; + $ExceptionDeleteTmpFile) + echo "Failed deleting temporary file." + exit 1; + ;; + esac + } +} diff --git a/coin/provisioning/common/python3.ps1 b/coin/provisioning/common/python3.ps1 new file mode 100644 index 00000000..3c565874 --- /dev/null +++ b/coin/provisioning/common/python3.ps1 @@ -0,0 +1,70 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite 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$ +## +############################################################################# + +param([Int32]$archVer=32) +. "$PSScriptRoot\helpers.ps1" + +# This script installs Python $version. +# Python3 is required for building some qt modules. + +$version = "3.6.1" +$package = "C:\Windows\temp\python-$version.exe" +$install_path = "C:\Python36" + +# check bit version +if ( $archVer -eq 64 ) { + echo "Running in 64 bit system" + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version-amd64.exe" + $sha1 = "bf54252c4065b20f4a111cc39cf5215fb1edccff" +} +else { + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.exe" + $sha1 = "76c50b747237a0974126dd8b32ea036dd77b2ad1" +} + +echo "Fetching from URL..." +Download $externalUrl $internalUrl $package +Verify-Checksum $package $sha1 +echo "Installing $package..." +cmd /c "$package /q TargetDir=$install_path" +echo "Remove $package..." +del $package + +[Environment]::SetEnvironmentVariable("PYTHON3_PATH", "$install_path", [EnvironmentVariableTarget]::Machine) +[Environment]::SetEnvironmentVariable("PIP3_PATH", "$install_path\Scripts", [EnvironmentVariableTarget]::Machine) + +# Install python virtual env +cmd /c "$install_path\Scripts\pip3.exe install virtualenv" diff --git a/coin/provisioning/common/python3.sh b/coin/provisioning/common/python3.sh new file mode 100755 index 00000000..56e82386 --- /dev/null +++ b/coin/provisioning/common/python3.sh @@ -0,0 +1,52 @@ +#!/bin/bash + +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## 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 python3 + +source "${BASH_SOURCE%/*}/InstallPKGFromURL.sh" + +PrimaryUrl="http://ci-files01-hki.ci.local/input/mac/python-3.6.1-macosx10.6.pkg" +AltUrl="https://www.python.org/ftp/python/3.6.1/python-3.6.1-macosx10.6.pkg" +SHA1="ae0c749544c2d573c3cc29c4c2d7d9a595db28f9" +DestDir="/" + +InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir" + +/Library/Frameworks/Python.framework/Versions/3.6/bin/pip3 install virtualenv + +echo "export PYTHON3_PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin" >> ~/.bashrc +echo "export PIP3_PATH=/Library/Frameworks/Python.framework/Versions/3.6/bin" >> ~/.bashrc +echo "python3 = 3.6.1" >> ~/versions.txt diff --git a/coin/provisioning/common/vc_redist.ps1 b/coin/provisioning/common/vc_redist.ps1 new file mode 100644 index 00000000..95567669 --- /dev/null +++ b/coin/provisioning/common/vc_redist.ps1 @@ -0,0 +1,64 @@ +############################################################################# +## +## Copyright (C) 2017 The Qt Company Ltd. +## Copyright (C) 2017 Pelagicore AG +## Contact: http://www.qt.io/licensing/ +## +## This file is part of the test suite 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$ +## +############################################################################# + +param([Int32]$archVer=32) +. "$PSScriptRoot\helpers.ps1" + +# This script installs Visual C++ Redistributable for Visual Studio 2015 +# This is a dependency of the current python3 version + +# check bit version +if ( $archVer -eq 64 ) { + echo "Running in 64 bit system" + $arch = "x64" + $externalUrl = "https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x64.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/vc_redist.x64.exe" + $sha1 = "3155cb0f146b927fcc30647c1a904cd162548c8c" +} +else { + $arch = "x86" + $externalUrl = "https://download.microsoft.com/download/9/3/F/93FCF1E7-E6A4-478B-96E7-D4B285925B00/vc_redist.x86.exe" + $internalUrl = "http://ci-files01-hki.ci.local/input/windows/vc_redist.x86.exe" + $sha1 = "bfb74e498c44d3a103ca3aa2831763fb417134d1" +} + +$package = "C:\Windows\temp\vc_redist.$arch.exe" + +echo "Fetching from URL..." +Download $externalUrl $internalUrl $package +Verify-Checksum $package $sha1 +echo "Installing $package..." +cmd /c "$package /q" +echo "Remove $package..." +del $package diff --git a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh index b419f217..0003127a 100644 --- a/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh @@ -2,3 +2,17 @@ # version: provided by default Linux distribution repository # needed to build pyside sudo yum install -y python-devel python-virtualenv + +# install the EPEL repository which provides python3 +wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm +sudo rpm -Uvh epel-release-latest-6.noarch.rpm +sudo rm -f epel-release-latest-6.noarch.rpm + +# install python3 +sudo yum install -y python34-devel + +# install pip3 +wget https://bootstrap.pypa.io/get-pip.py +sudo python3 get-pip.py +sudo rm -f get-pip.py +sudo pip3 install virtualenv diff --git a/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/08-pythondev.sh b/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/08-pythondev.sh index 205f598b..d4cd60e8 100644 --- a/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/08-pythondev.sh +++ b/coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/08-pythondev.sh @@ -3,4 +3,6 @@ # needed to build pyside sudo apt-get update -sudo apt-get install -y python-dev +sudo apt-get install -y python-dev python3-dev python3-pip + +sudo pip3 install virtualenv diff --git a/coin/provisioning/qtci-osx-10.10-x86_64/025-python3.sh b/coin/provisioning/qtci-osx-10.10-x86_64/025-python3.sh new file mode 100644 index 00000000..cd4e3fd9 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.10-x86_64/025-python3.sh @@ -0,0 +1 @@ +source "${BASH_SOURCE%/*}/../common/python3.sh" diff --git a/coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh b/coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh new file mode 100644 index 00000000..cd4e3fd9 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh @@ -0,0 +1 @@ +source "${BASH_SOURCE%/*}/../common/python3.sh" diff --git a/coin/provisioning/qtci-osx-10.8-x86_64/025-python3.sh b/coin/provisioning/qtci-osx-10.8-x86_64/025-python3.sh new file mode 100644 index 00000000..cd4e3fd9 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.8-x86_64/025-python3.sh @@ -0,0 +1 @@ +source "${BASH_SOURCE%/*}/../common/python3.sh" diff --git a/coin/provisioning/qtci-osx-10.9-x86_64/025-python3.sh b/coin/provisioning/qtci-osx-10.9-x86_64/025-python3.sh new file mode 100644 index 00000000..cd4e3fd9 --- /dev/null +++ b/coin/provisioning/qtci-osx-10.9-x86_64/025-python3.sh @@ -0,0 +1 @@ +source "${BASH_SOURCE%/*}/../common/python3.sh" diff --git a/coin/provisioning/qtci-windows-10-x86/python3.ps1 b/coin/provisioning/qtci-windows-10-x86/python3.ps1 new file mode 100644 index 00000000..164fbe43 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86/python3.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python3.ps1" 32 diff --git a/coin/provisioning/qtci-windows-10-x86_64/python3.ps1 b/coin/provisioning/qtci-windows-10-x86_64/python3.ps1 new file mode 100644 index 00000000..b0c21996 --- /dev/null +++ b/coin/provisioning/qtci-windows-10-x86_64/python3.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python3.ps1" 64 diff --git a/coin/provisioning/qtci-windows-7-x86/07-vc_redist.ps1 b/coin/provisioning/qtci-windows-7-x86/07-vc_redist.ps1 new file mode 100644 index 00000000..ad3d5950 --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/07-vc_redist.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\vc_redist.ps1" 32 diff --git a/coin/provisioning/qtci-windows-7-x86/python3.ps1 b/coin/provisioning/qtci-windows-7-x86/python3.ps1 new file mode 100644 index 00000000..164fbe43 --- /dev/null +++ b/coin/provisioning/qtci-windows-7-x86/python3.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python3.ps1" 32 diff --git a/coin/provisioning/qtci-windows-8-x86/07-vc_redist.ps1 b/coin/provisioning/qtci-windows-8-x86/07-vc_redist.ps1 new file mode 100644 index 00000000..ad3d5950 --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86/07-vc_redist.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\vc_redist.ps1" 32 diff --git a/coin/provisioning/qtci-windows-8-x86/python3.ps1 b/coin/provisioning/qtci-windows-8-x86/python3.ps1 new file mode 100644 index 00000000..164fbe43 --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86/python3.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python3.ps1" 32 diff --git a/coin/provisioning/qtci-windows-8-x86_64/07-vc_redist.ps1 b/coin/provisioning/qtci-windows-8-x86_64/07-vc_redist.ps1 new file mode 100644 index 00000000..6070c80b --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86_64/07-vc_redist.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\vc_redist.ps1" 64 diff --git a/coin/provisioning/qtci-windows-8-x86_64/python3.ps1 b/coin/provisioning/qtci-windows-8-x86_64/python3.ps1 new file mode 100644 index 00000000..b0c21996 --- /dev/null +++ b/coin/provisioning/qtci-windows-8-x86_64/python3.ps1 @@ -0,0 +1 @@ +. "$PSScriptRoot\..\common\python3.ps1" 64 -- cgit v1.2.3