summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Fält <simo.falt@qt.io>2017-07-26 10:19:45 +0300
committerSimon Hausmann <simon.hausmann@qt.io>2017-08-30 19:57:54 +0000
commita99d3432f71c4be5045ae2cdcc3b7070de5abe23 (patch)
tree0f567df088d4587a323079d016795033138bc1f5
parent39b3764a5ade3c86715770911b80a0a8a89855f5 (diff)
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 <simon.hausmann@qt.io> (cherry picked from commit a5f3f8ed482d314d092e1a6ddc5568839bb59c74) (cherry picked from commit a7658388892bc70c3c5f3a6f6e31639ef5b766d1) (cherry picked from commit 1859f9b26ce0177cb83e917148b10ff08bb25db7)
-rw-r--r--coin/provisioning/common/InstallPKGFromURL.sh104
-rw-r--r--coin/provisioning/common/python3.ps170
-rwxr-xr-xcoin/provisioning/common/python3.sh52
-rw-r--r--coin/provisioning/common/vc_redist.ps164
-rw-r--r--coin/provisioning/qtci-linux-RHEL-6.6-x86_64/08-pythondev.sh14
-rw-r--r--coin/provisioning/qtci-linux-Ubuntu-14.04-x86_64/08-pythondev.sh4
-rw-r--r--coin/provisioning/qtci-osx-10.10-x86_64/025-python3.sh1
-rw-r--r--coin/provisioning/qtci-osx-10.11-x86_64/025-python3.sh1
-rw-r--r--coin/provisioning/qtci-osx-10.8-x86_64/025-python3.sh1
-rw-r--r--coin/provisioning/qtci-osx-10.9-x86_64/025-python3.sh1
-rw-r--r--coin/provisioning/qtci-windows-10-x86/python3.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86_64/python3.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/07-vc_redist.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/python3.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86/07-vc_redist.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86/python3.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86_64/07-vc_redist.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86_64/python3.ps11
18 files changed, 319 insertions, 1 deletions
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