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 a5f3f8ed48)
(cherry picked from commit a765838889)
(cherry picked from commit 1859f9b26c)
This commit is contained in:
Simo Fält
2017-07-26 10:19:45 +03:00
committed by Simon Hausmann
parent 39b3764a5a
commit a99d3432f7
18 changed files with 319 additions and 1 deletions

View File

@@ -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
}
}

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1 @@
source "${BASH_SOURCE%/*}/../common/python3.sh"

View File

@@ -0,0 +1 @@
source "${BASH_SOURCE%/*}/../common/python3.sh"

View File

@@ -0,0 +1 @@
source "${BASH_SOURCE%/*}/../common/python3.sh"

View File

@@ -0,0 +1 @@
source "${BASH_SOURCE%/*}/../common/python3.sh"

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python3.ps1" 32

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python3.ps1" 64

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\vc_redist.ps1" 32

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python3.ps1" 32

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\vc_redist.ps1" 32

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python3.ps1" 32

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\vc_redist.ps1" 64

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\python3.ps1" 64