Python to provisioning for Windows

Installs Python version 2.7.10.
Python is required for building Qt 5 from source. More
specifically qtdeclarative and qtwebkit require it.

Change-Id: I63c8f3294a8a4799df5e52fbd41a36db8686950e
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
This commit is contained in:
Heikki Halmet
2016-09-09 13:12:51 +03:00
committed by Simon Hausmann
parent 5ee2290c0c
commit c9d71e9eeb
13 changed files with 164 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## 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$
##
#############################################################################
Function Remove {
Param (
[string]$1
)
If (Test-Path $1){
echo "Remove $1"
Remove-Item -Recurse -Force $1
}Else{
echo "'$1' does not exists or already removed !!"
}
}
Function Remove-Path {
Param (
[string]$Path
)
echo "Remove $path from Path"
$name = "Path"
$value = ([System.Environment]::GetEnvironmentVariable("Path").Split(";") | ? {$_ -ne "$path"}) -join ";"
$type = "Machine"
[System.Environment]::SetEnvironmentVariable($name,$value,$type)
}
# Remove Python
Remove C:\Python27
Remove-Path C:\python27\scripts
Remove-Path C:\python27

View File

@@ -29,3 +29,32 @@ function Extract-Zip
$destinationFolder = $shell.Namespace($Destination)
$destinationFolder.CopyHere($zipfile.Items(), 16)
}
function BadParam
{
Param ([string]$Description)
throw("You must specify $Description")
}
function Download
{
Param (
[string] $OfficialUrl = $(BadParam("the official download URL")),
[string] $CachedUrl = $(BadParam("the locally cached URL")),
[string] $Destination = $(BadParam("a download target location"))
)
try {
Invoke-WebRequest -UseBasicParsing $CachedUrl -OutFile $Destination
} catch {
Invoke-WebRequest -UseBasicParsing $OfficialUrl -OutFile $Destination
}
}
function Add-Path
{
Param (
[string]$Path
)
echo "Adding $Path to Path"
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$Path", [EnvironmentVariableTarget]::Machine)
}

View File

@@ -0,0 +1,64 @@
#############################################################################
##
## Copyright (C) 2016 The Qt Company Ltd.
## 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$
##
#############################################################################
. "$PSScriptRoot\helpers.ps1"
# This script installs Python $version.
# Python is required for building Qt 5 from source.
$version = "2.7.10"
$package = "C:\Windows\temp\python-$version.msi"
# check bit version
if ([System.Environment]::Is64BitProcess -eq $TRUE) {
$externalUrl = "https://www.python.org/ftp/python/$version/python-$version.amd64.msi"
$internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.amd64.msi"
$sha1 = "f3a474f6ab191f9b43034c0fb5c98301553775d4"
}
else {
$externalUrl = "https://www.python.org/ftp/python/$version/python-$version.msi"
$internalUrl = "http://ci-files01-hki.ci.local/input/windows/python-$version.msi"
$sha1 = "9e62f37407e6964ee0374b32869b7b4ab050d12a"
}
echo "Fetching from URL..."
Download $externalUrl $internalUrl $package
Verify-Checksum $package $sha1
echo "Installing $package..."
cmd /c "$package /q"
# We need to change allowZip64 from 'False' to 'True' to be able to create ZIP files that use the ZIP64 extensions when the zipfile is larger than 2 GB
echo "Chancing allowZip64 value to 'True'..."
(Get-Content C:\Python27\lib\zipfile.py) | ForEach-Object { $_ -replace "allowZip64=False", "allowZip64=True" } | Set-Content C:\Python27\lib\zipfile.py
echo "Remove $package..."
del $package
Add-Path $path

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

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

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

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

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

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

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

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

View File

@@ -0,0 +1 @@
. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"

View File

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