summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHeikki Halmet <heikki.halmet@theqtcompany.com>2016-09-09 13:12:51 +0300
committerSimon Hausmann <simon.hausmann@qt.io>2016-09-30 08:31:18 +0000
commitc9d71e9eeb925ee4236acefeb88b14d80d04ba5e (patch)
treebe5e7325978d60c3b496fb7ec83ca1caa2e05677
parent5ee2290c0c9d21230c46ba19f44e0a1f1ec772bf (diff)
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>
-rw-r--r--coin/provisioning/common/01-windows_removethemall.ps161
-rw-r--r--coin/provisioning/common/helpers.ps129
-rw-r--r--coin/provisioning/common/python.ps164
-rw-r--r--coin/provisioning/qtci-windows-10-x86/01-windows_removethemall.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86/python.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86_64/01-windows_removethemall.ps11
-rw-r--r--coin/provisioning/qtci-windows-10-x86_64/python.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/01-windows_removethemall.ps11
-rw-r--r--coin/provisioning/qtci-windows-7-x86/python.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86/01-windows_removethemall.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86/python.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86_64/01-windows_removethemall.ps11
-rw-r--r--coin/provisioning/qtci-windows-8-x86_64/python.ps11
13 files changed, 164 insertions, 0 deletions
diff --git a/coin/provisioning/common/01-windows_removethemall.ps1 b/coin/provisioning/common/01-windows_removethemall.ps1
new file mode 100644
index 00000000..8285ddae
--- /dev/null
+++ b/coin/provisioning/common/01-windows_removethemall.ps1
@@ -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
diff --git a/coin/provisioning/common/helpers.ps1 b/coin/provisioning/common/helpers.ps1
index d7b957f3..0e684452 100644
--- a/coin/provisioning/common/helpers.ps1
+++ b/coin/provisioning/common/helpers.ps1
@@ -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)
+}
diff --git a/coin/provisioning/common/python.ps1 b/coin/provisioning/common/python.ps1
new file mode 100644
index 00000000..39d8146d
--- /dev/null
+++ b/coin/provisioning/common/python.ps1
@@ -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
diff --git a/coin/provisioning/qtci-windows-10-x86/01-windows_removethemall.ps1 b/coin/provisioning/qtci-windows-10-x86/01-windows_removethemall.ps1
new file mode 100644
index 00000000..3bb0af0e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86/01-windows_removethemall.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"
diff --git a/coin/provisioning/qtci-windows-10-x86/python.ps1 b/coin/provisioning/qtci-windows-10-x86/python.ps1
new file mode 100644
index 00000000..5f8aa2f8
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86/python.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\python.ps1"
diff --git a/coin/provisioning/qtci-windows-10-x86_64/01-windows_removethemall.ps1 b/coin/provisioning/qtci-windows-10-x86_64/01-windows_removethemall.ps1
new file mode 100644
index 00000000..3bb0af0e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86_64/01-windows_removethemall.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"
diff --git a/coin/provisioning/qtci-windows-10-x86_64/python.ps1 b/coin/provisioning/qtci-windows-10-x86_64/python.ps1
new file mode 100644
index 00000000..5f8aa2f8
--- /dev/null
+++ b/coin/provisioning/qtci-windows-10-x86_64/python.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\python.ps1"
diff --git a/coin/provisioning/qtci-windows-7-x86/01-windows_removethemall.ps1 b/coin/provisioning/qtci-windows-7-x86/01-windows_removethemall.ps1
new file mode 100644
index 00000000..3bb0af0e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-7-x86/01-windows_removethemall.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"
diff --git a/coin/provisioning/qtci-windows-7-x86/python.ps1 b/coin/provisioning/qtci-windows-7-x86/python.ps1
new file mode 100644
index 00000000..5f8aa2f8
--- /dev/null
+++ b/coin/provisioning/qtci-windows-7-x86/python.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\python.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86/01-windows_removethemall.ps1 b/coin/provisioning/qtci-windows-8-x86/01-windows_removethemall.ps1
new file mode 100644
index 00000000..3bb0af0e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86/01-windows_removethemall.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86/python.ps1 b/coin/provisioning/qtci-windows-8-x86/python.ps1
new file mode 100644
index 00000000..5f8aa2f8
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86/python.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\python.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86_64/01-windows_removethemall.ps1 b/coin/provisioning/qtci-windows-8-x86_64/01-windows_removethemall.ps1
new file mode 100644
index 00000000..3bb0af0e
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86_64/01-windows_removethemall.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\01-windows_removethemall.ps1"
diff --git a/coin/provisioning/qtci-windows-8-x86_64/python.ps1 b/coin/provisioning/qtci-windows-8-x86_64/python.ps1
new file mode 100644
index 00000000..5f8aa2f8
--- /dev/null
+++ b/coin/provisioning/qtci-windows-8-x86_64/python.ps1
@@ -0,0 +1 @@
+. "$PSScriptRoot\..\common\python.ps1"