diff options
Diffstat (limited to 'coin/provisioning/common/windows')
78 files changed, 1417 insertions, 2585 deletions
diff --git a/coin/provisioning/common/windows/3dstudio_3rdparty.ps1 b/coin/provisioning/common/windows/3dstudio_3rdparty.ps1 index bbef2f04..afbc7ff1 100644 --- a/coin/provisioning/common/windows/3dstudio_3rdparty.ps1 +++ b/coin/provisioning/common/windows/3dstudio_3rdparty.ps1 @@ -2,7 +2,7 @@ $zip = Get-DownloadLocation "Qt3DStudio-3rdparty-win64-CI.zip" -$url = "http://ci-files01-hki.intra.qt.io/input/3rdparty/Qt3DStudio-3rdparty-win64-CI.zip" +$url = "http://ci-files01-hki.ci.qt.io/input/3rdparty/Qt3DStudio-3rdparty-win64-CI.zip" Download $url $url $zip Verify-Checksum $zip "08D740D2EFB4CBCDE7D012908B89AA48DE5CD4E1" diff --git a/coin/provisioning/common/windows/allow-remote-desktop-access.ps1 b/coin/provisioning/common/windows/allow-remote-desktop-access.ps1 index 10b0453f..b17f443c 100644 --- a/coin/provisioning/common/windows/allow-remote-desktop-access.ps1 +++ b/coin/provisioning/common/windows/allow-remote-desktop-access.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script allows the Windows Remote Desktop Access diff --git a/coin/provisioning/common/windows/android-openssl.ps1 b/coin/provisioning/common/windows/android-openssl.ps1 index f03cf297..3542c907 100644 --- a/coin/provisioning/common/windows/android-openssl.ps1 +++ b/coin/provisioning/common/windows/android-openssl.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2022 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # Requires: 7z, perl and msys @@ -51,59 +15,88 @@ if (Is64BitWinHost) { # Msys need to be installed to target machine # More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html -$version = "1.1.1m" -$ndk_version = "r23b" -$zip = Get-DownloadLocation ("openssl-${version}_fixes-ndk_root.tar.gz") -$prebuilt_zip = Get-DownloadLocation ("prebuilt-openssl-${version}-for-android-used-ndk-${ndk_version}-windows.zip") -$sha1 = "c9638d25b9709eda1ac52591c0993af52d6d1206" -$prebuilt_sha1 = "0aebe55d2436f235e1a24ae9d1030cb6ce8f31da" -$destination = "C:\Utils\openssl-android-master" -$prebuilt_url = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\prebuilt-openssl-${version}-for-android-used-ndk-${ndk_version}-windows.zip" - -# msys unix style paths -$ndkPath = "/c/Utils/Android/android-ndk-${ndk_version}" -$openssl_path = "/c/Utils/openssl-android-master" -$cc_path = "$ndkPath/toolchains/llvm/prebuilt/windows-x86_64/bin" -if ((Test-Path $prebuilt_url)) { - Download $prebuilt_url $prebuilt_url $prebuilt_zip - Verify-Checksum $prebuilt_zip $prebuilt_sha1 - Extract-7Zip $prebuilt_zip C:\Utils - Remove $prebuilt_zip -} else { - # openssl-${version}_fixes-ndk_root.tar.gz package includes fixes from https://github.com/openssl/openssl/pull/17322 and string ANDROID_NDK_HOME is replaced with ANDROID_NDK_ROOT in Configurations/15-android.conf - Download \\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-${version}_fixes-ndk_root.tar.gz \\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-${version}_fixes-ndk_root.tar.gz $zip - Verify-Checksum $zip $sha1 +$openssl_version = "3.0.7" +$ndk_version_latest = "r26b" +$ndk_version_default = "$ndk_version_latest" +$openssl_compressed = Get-DownloadLocation ("openssl-${openssl_version}.tar.gz") +$openssl_sha1 = "f20736d6aae36bcbfa9aba0d358c71601833bf27" +$prebuilt_sha1_ndk_latest = "ea925d5a5b696916fb3650403a2eb3189c52b5ce" +$prebuilt_sha1_ndk_default = "$prebuilt_sha1_ndk_latest" +$destination_prefix = "C:\Utils\prebuilt-openssl-${openssl_version}-for-android-ndk" + +function Install($1, $2) { + $ndk_version = $1 + $prebuilt_sha1 = $2 + + # msys unix style paths + $openssl_path = "/c/Utils/openssl-android-master" + $ndk_path = "/c/Utils/Android/android-ndk-${ndk_version}" + $cc_path = "$ndk_path/toolchains/llvm/prebuilt/windows-x86_64/bin" - Extract-7Zip $zip C:\Utils\tmp - Extract-7Zip C:\Utils\tmp\openssl-$version.tar C:\Utils\tmp - Move-Item C:\Utils\tmp\openssl-${version} $destination - Remove "$zip" + $prebuilt_url_openssl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip" + $prebuilt_zip_openssl = Get-DownloadLocation ("prebuilt-openssl-${openssl_version}-for-android-ndk-${ndk_version}.zip") - Write-Host "Configuring OpenSSL $version for Android..." - Push-Location $destination - # $ must be escaped in powershell... + if ((Test-Path $prebuilt_url_openssl)) { + Write-Host "Install prebuilt OpenSSL for Android" + Download $prebuilt_url_openssl $prebuilt_url_openssl $prebuilt_zip_openssl + Verify-Checksum $prebuilt_zip_openssl $prebuilt_sha1 + Extract-7Zip $prebuilt_zip_openssl C:\Utils + Remove $prebuilt_zip_openssl + } else { + Write-Host "Build OpenSSL for Android from sources" + # openssl-${openssl_version}_fixes-ndk_root.tar.gz package includes fixes from https://github.com/openssl/openssl/pull/17322 and string ANDROID_NDK_HOME is replaced with ANDROID_NDK_ROOT in Configurations/15-android.conf + Download \\ci-files01-hki.ci.qt.io\provisioning\openssl\openssl-${openssl_version}.tar.gz \\ci-files01-hki.ci.qt.io\provisioning\openssl\openssl-${openssl_version}.tar.gz $openssl_compressed + Verify-Checksum $openssl_compressed $openssl_sha1 - function CheckExitCode { + Extract-7Zip $openssl_compressed C:\Utils\tmp + Extract-7Zip C:\Utils\tmp\openssl-${openssl_version}.tar C:\Utils\tmp + Move-Item C:\Utils\tmp\openssl-${openssl_version} ${destination}-${ndk_version} + Remove "$openssl_compressed" - param ( - $p - ) + Write-Host "Configuring OpenSSL $openssl_version for Android..." + Push-Location ${destination}-${ndk_version} + # $ must be escaped in powershell... - if ($p.ExitCode) { - Write-host "Process failed with exit code: $($p.ExitCode)" - exit 1 + function CheckExitCode { + + param ( + $p + ) + + if ($p.ExitCode) { + Write-host "Process failed with exit code: $($p.ExitCode)" + exit 1 + } } + + # ANDROID_NDK_ROOT needs to be in environment variables before running this script + # Set-EnvironmentVariable "ANDROID_NDK_ROOT" "C:\Utils\Android\android-ndk-r26b" + + $make_install = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"yes | pacman -S make`"") + CheckExitCode $make_install + + $configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") + CheckExitCode $configure + + $make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndk_path PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") + CheckExitCode $make + + Pop-Location + Remove-item C:\Utils\tmp -Recurse -Confirm:$false } - $configure = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndkPath PATH=${cc_path}:`$PATH CC=clang $openssl_path/Configure shared android-arm`"") - CheckExitCode $configure +} - $make = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys_bash" -ArgumentList ("-lc", "`"pushd $openssl_path; ANDROID_NDK_ROOT=$ndkPath PATH=${cc_path}:`$PATH CC=clang make -f $openssl_path/Makefile build_generated`"") - CheckExitCode $make +# Install NDK Default version +Install $ndk_version_default $prebuilt_sha1_ndk_default - Pop-Location - Remove-item C:\Utils\tmp -Recurse -Confirm:$false +if (Test-Path -Path ${destination_prefix}-${ndk_version_latest}) { + Write-Host "OpenSSL for Android Latest version is the same than Default. Installation done." +} else { + # Install NDK Latest version + Install $ndk_version_latest $prebuilt_sha1_ndk_latest } -Set-EnvironmentVariable "OPENSSL_ANDROID_HOME" "$destination" -Write-Output "Android OpenSSL = $version" >> ~/versions.txt +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_DEFAULT" "${destination_prefix}-${ndk_version_default}" +Set-EnvironmentVariable "OPENSSL_ANDROID_HOME_LATEST" "${destination_prefix}-${ndk_version_latest}" +Write-Output "Android OpenSSL = $openssl_version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/android.ps1 b/coin/provisioning/common/windows/android.ps1 index 5ee6d22e..b594238c 100644 --- a/coin/provisioning/common/windows/android.ps1 +++ b/coin/provisioning/common/windows/android.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2022 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -46,23 +10,26 @@ # That's why we need to use Andoid-21 API version in Qt 5.9. # NDK -$ndkVersion = "r23b" -$ndkCachedUrl = "\\ci-files01-hki.intra.qt.io\provisioning\android\android-ndk-$ndkVersion-windows.zip" -$ndkOfficialUrl = "https://dl.google.com/android/repository/android-ndk-$ndkVersion-windows.zip" -$ndkChecksum = "6e3fb50022c611a2b13d02f5de5c21cc7206a298" -$ndkFolder = "c:\Utils\Android\android-ndk-$ndkVersion" -$ndkZip = "c:\Windows\Temp\android_ndk_$ndkVersion.zip" +$ndkVersionLatest = "r26b" +$ndkVersionDefault = $ndkVersionLatest +$ndkChecksumLatest = "17453c61a59e848cffb8634f2c7b322417f1732e" +$ndkChecksumDefault = $ndkChecksumLatest +$ndkCachedUrlLatest = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionLatest-windows.zip" +$ndkOfficialUrlLatest = "https://dl.google.com/android/repository/android-ndk-$ndkVersionLatest-windows.zip" +$ndkCachedUrlDefault = "\\ci-files01-hki.ci.qt.io\provisioning\android\android-ndk-$ndkVersionDefault-windows.zip" +$ndkOfficialUrlDefault = "https://dl.google.com/android/repository/android-ndk-$ndkVersionDefault-windows.zip" +$ndkZip = "C:\Windows\Temp\android_ndk.zip" # SDK $toolsVersion = "2.1" $toolsFile = "commandlinetools-win-6609375_latest.zip" $sdkApi = "ANDROID_API_VERSION" -$sdkApiLevel = "android-31" -$sdkBuildToolsVersion = "31.0.0" -$toolsCachedUrl= "\\ci-files01-hki.intra.qt.io\provisioning\android\$toolsFile" +$sdkApiLevel = "android-34" +$sdkBuildToolsVersion = "34.0.0" +$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile" $toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile" $toolsChecksum = "e2e19c2ff584efa87ef0cfdd1987f92881323208" -$toolsFolder = "c:\Utils\Android\cmdline-tools" +$cmdFolder = "c:\Utils\Android\cmdline-tools" $sdkZip = "c:\Windows\Temp\$toolsFile" @@ -71,19 +38,38 @@ function Install($1, $2, $3, $4) { $zip = $2 $checksum = $3 $offcialUrl = $4 + $tempExtractDir = "C:\Windows\Temp\android_extract" Download $offcialUrl $cacheUrl $zip Verify-Checksum $zip "$checksum" - Extract-7Zip $zip C:\Utils\Android + Extract-7Zip $zip $tempExtractDir + $baseDirectory = (Get-ChildItem $tempExtractDir -Attributes D | Select-Object -First 1).Name + Move-Item -Path ($tempExtractDir + "\" + $baseDirectory) -Destination "C:\Utils\Android\$baseDirectory" -Force + Remove $zip + + return "C:\Utils\Android\$baseDirectory" } -Write-Host "Installing Android NDK $nkdVersion" -Install $ndkCachedUrl $ndkZip $ndkChecksum $ndkOfficialUrl -Set-EnvironmentVariable "ANDROID_NDK_ROOT" $ndkFolder +New-Item -ItemType Directory -Path C:\Utils\Android\ +New-Item -ItemType Directory -Path C:\Windows\Temp\android_extract +Write-Host "Installing Android NDK $ndkVersionDefault" +$ndkFolderDefault = Install $ndkCachedUrlDefault $ndkZip $ndkChecksumDefault $ndkOfficialUrlDefault +Set-EnvironmentVariable "ANDROID_NDK_ROOT_DEFAULT" $ndkFolderDefault +# To be used by vcpkg +Set-EnvironmentVariable "ANDROID_NDK_HOME" $ndkFolderDefault +$env:ANDROID_NDK_HOME = "$ndkFolderDefault" + +if ($ndkVersionDefault -eq $ndkVersionLatest) { + Write-Host "Android Latest version is the same than Default. NDK installation done." +} else { + Write-Host "Installing Android NDK $nkdVersionLatest" + $ndkFolderLatest = Install $ndkCachedUrlLatest $ndkZip $ndkChecksumLatest $ndkOfficialUrlLatest + Set-EnvironmentVariable "ANDROID_NDK_ROOT_LATEST" $ndkFolderLatest +} -Install $toolsCachedUrl $sdkZip $toolsChecksum $sdkOfficialUrl -New-Item -ItemType directory -Path $toolsFolder -Move-Item -Path C:\Utils\Android\tools -Destination $toolsFolder\ +$toolsFolder = Install $toolsCachedUrl $sdkZip $toolsChecksum $toolsOfficialUrl +New-Item -ItemType directory -Path $cmdFolder +Move-Item -Path $toolsFolder -Destination $cmdFolder\ Set-EnvironmentVariable "ANDROID_SDK_ROOT" "C:\Utils\Android" Set-EnvironmentVariable "ANDROID_API_VERSION" $sdkApiLevel @@ -106,7 +92,7 @@ Out-File -FilePath C:\Utils\Android\licenses\android-sdk-license -Encoding utf8 # Attempt to catch all errors of sdkmanager.bat, even when hidden behind a pipeline. $ErrorActionPreference = "Stop" -cd $toolsFolder\tools\bin\ +cd $cmdFolder\tools\bin\ $sdkmanager_args += "platforms;$sdkApiLevel", "platform-tools", "build-tools;$sdkBuildToolsVersion", "--sdk_root=C:\Utils\Android" $command = 'for($i=0;$i -lt 6;$i++) { $response += "y`n"}; $response | .\sdkmanager.bat @sdkmanager_args | Out-Null' Invoke-Expression $command @@ -117,4 +103,4 @@ cmd /c "dir C:\Utils\android" Write-Output "Android SDK tools= $toolsVersion" >> ~/versions.txt Write-Output "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt Write-Output "Android SDK Api Level = $sdkApiLevel" >> ~/versions.txt -Write-Output "Android NDK = $ndkVersion" >> ~/versions.txt +Write-Output "Android NDK = $ndkVersionDefault" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/cmake.ps1 b/coin/provisioning/common/windows/cmake.ps1 index fd383b52..af1e2872 100644 --- a/coin/provisioning/common/windows/cmake.ps1 +++ b/coin/provisioning/common/windows/cmake.ps1 @@ -1,59 +1,45 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" -$majorminorversion = "3.21" -$version = "3.21.3" - -$zip = Get-DownloadLocation ("cmake-" + $version + "-windows-i386.zip") -$officialurl = "https://cmake.org/files/v" + $majorminorversion + "/cmake-" + $version + "-windows-i386.zip" -$cachedurl = "\\ci-files01-hki.intra.qt.io\provisioning\cmake\cmake-" + $version + "-windows-i386.zip" +$majorminorversion = "3.27" +$version = "3.27.7" + +$cpu_arch = Get-CpuArchitecture +Write-Host "Installing CMake for architecture $cpu_arch" +switch ($cpu_arch) { + arm64 { + $arch = "arm64" + $sha1 = "52ee08671dcb478c5ec6e862f41717f65047c598" + $majorminorversion = "3.29" + $version = "3.29.2" + Break + } + x64 { + $arch = "i386" + $sha1 = "b6147215a5f9cd1138b012265229fbf2224d02c6" + } + default { + throw "Unknown architecture $cpu_arch" + } +} + +$filename = "cmake-" + $version + "-windows-" + $arch +$filename_zip = $filename + ".zip" + +$zip = Get-DownloadLocation ($filename_zip) +$officialurl = "https://cmake.org/files/v" + $majorminorversion + "/" + $filename_zip +$cachedurl = "https://ci-files01-hki.ci.qt.io/input/cmake/" + $filename_zip Write-Host "Removing old cmake" Remove "C:\CMake" Download $officialurl $cachedurl $zip -Verify-Checksum $zip "f853ad791629141ce4121b175a2afdb4e46e7a54" +Verify-Checksum $zip $sha1 Extract-7Zip $zip C: -$defaultinstallfolder = "C:\cmake-" + $version + "-windows-i386" +$defaultinstallfolder = "C:\" + $filename Rename-Item $defaultinstallfolder C:\CMake Add-Path "C:\CMake\bin" diff --git a/coin/provisioning/common/windows/conan.ps1 b/coin/provisioning/common/windows/conan.ps1 index 50b731a0..22247897 100644 --- a/coin/provisioning/common/windows/conan.ps1 +++ b/coin/provisioning/common/windows/conan.ps1 @@ -1,45 +1,9 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################ +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" -$scriptsPath = "C:\Python36\Scripts" +$scriptsPath = [System.Environment]::GetEnvironmentVariable('PIP3_PATH', [System.EnvironmentVariableTarget]::Machine) $version = "1.39.0" Run-Executable "$scriptsPath\pip3.exe" "install conan==$version" Write-Output "Conan = $version" >> ~\versions.txt @@ -51,8 +15,8 @@ Set-EnvironmentVariable "CONAN_V2_MODE" "1" # This is temporary solution for installing packages provided by Conan until we have fixed Conan setup for this -$url_conan = "\\ci-files01-hki.intra.qt.io\provisioning\windows\.conan.zip" -$url_conan_home = "\\ci-files01-hki.intra.qt.io\provisioning\windows\.conanhome.zip" +$url_conan = "\\ci-files01-hki.ci.qt.io\provisioning\windows\.conan.zip" +$url_conan_home = "\\ci-files01-hki.ci.qt.io\provisioning\windows\.conanhome.zip" $sha1_conan_compressed = "1abbe43e7a29ddd9906328702b5bc5231deeb721" $sha1_conanhome_compressed = "f44c2ae21cb1c7dc139572e399b7b0eaf492af03" $conan_compressed = "C:\.conan.zip" diff --git a/coin/provisioning/common/windows/disable-autoreboot.ps1 b/coin/provisioning/common/windows/disable-autoreboot.ps1 index 47257280..d13b6b9d 100644 --- a/coin/provisioning/common/windows/disable-autoreboot.ps1 +++ b/coin/provisioning/common/windows/disable-autoreboot.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" Get-WmiObject Win32_OSRecoveryConfiguration -EnableAllPrivileges | Set-WmiInstance -Arguments @{ AutoReboot=$False } diff --git a/coin/provisioning/common/windows/disable-defragment.ps1 b/coin/provisioning/common/windows/disable-defragment.ps1 index fd7870c2..bb449e56 100644 --- a/coin/provisioning/common/windows/disable-defragment.ps1 +++ b/coin/provisioning/common/windows/disable-defragment.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # Windows 7 does not have Get-ScheduledTask and Unregister-ScheduledTask # thus needing its own version. diff --git a/coin/provisioning/common/windows/disable-sleep.ps1 b/coin/provisioning/common/windows/disable-sleep.ps1 index e147c830..c6c3c814 100644 --- a/coin/provisioning/common/windows/disable-sleep.ps1 +++ b/coin/provisioning/common/windows/disable-sleep.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script prevents Windows from going to sleep diff --git a/coin/provisioning/common/windows/disable-uac.ps1 b/coin/provisioning/common/windows/disable-uac.ps1 index b27355c6..c84b998d 100644 --- a/coin/provisioning/common/windows/disable-uac.ps1 +++ b/coin/provisioning/common/windows/disable-uac.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script disables the Windows UAC diff --git a/coin/provisioning/common/windows/disable-windefender.ps1 b/coin/provisioning/common/windows/disable-windefender.ps1 index 89199496..ca74e95f 100644 --- a/coin/provisioning/common/windows/disable-windefender.ps1 +++ b/coin/provisioning/common/windows/disable-windefender.ps1 @@ -1,41 +1,5 @@ -########################################################################### -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # Turning off win defender. # diff --git a/coin/provisioning/common/windows/disable-windows-module-installer.ps1 b/coin/provisioning/common/windows/disable-windows-module-installer.ps1 index c7f85ff7..2d829b04 100644 --- a/coin/provisioning/common/windows/disable-windows-module-installer.ps1 +++ b/coin/provisioning/common/windows/disable-windows-module-installer.ps1 @@ -1,4 +1,6 @@ +. "$PSScriptRoot\helpers.ps1" + # Disable Windows Module Installer (Trusted Installer). # Trusted Installe enables installation, modification, and removal of Windows updates and optional components. # If this service is disabled, install or uninstall of Windows updates might fail for this computer. -sc.exe config TrustedInstaller start=disabled +Run-Executable "sc.exe" "config TrustedInstaller start=disabled" diff --git a/coin/provisioning/common/windows/disable-windows-updates.ps1 b/coin/provisioning/common/windows/disable-windows-updates.ps1 index 8fd1b9a1..a55d5803 100644 --- a/coin/provisioning/common/windows/disable-windows-updates.ps1 +++ b/coin/provisioning/common/windows/disable-windows-updates.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # This script disables the automatic Windows updates diff --git a/coin/provisioning/common/windows/dxsdk.ps1 b/coin/provisioning/common/windows/dxsdk.ps1 index 35b7d8de..e4a40108 100644 --- a/coin/provisioning/common/windows/dxsdk.ps1 +++ b/coin/provisioning/common/windows/dxsdk.ps1 @@ -4,7 +4,7 @@ $package = "DXSDK_Jun10.exe" -$cachedUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\$package" +$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\$package" $officialUrl = "https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/$package" $sdkChecksumSha1 = "8fe98c00fde0f524760bb9021f438bd7d9304a69" $package_path = "C:\Windows\Temp\$package" diff --git a/coin/provisioning/common/windows/emsdk.ps1 b/coin/provisioning/common/windows/emsdk.ps1 index 65f3bf11..e1b92fd3 100644 --- a/coin/provisioning/common/windows/emsdk.ps1 +++ b/coin/provisioning/common/windows/emsdk.ps1 @@ -1,57 +1,35 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install emscripten needed by WebAssembly -$version = "3.1.10" +$version = "3.1.50" +$zipVersion = $version -replace '\.', "_" +$temp = "$env:tmp" +$cacheUrl = "https://ci-files01-hki.ci.qt.io/input/emsdk/emsdk_windows_${zipVersion}.zip" +$sha = "40dc636688166ecdb476da40d02c491ee5032f7b" # Make sure python is in the path Prepend-Path "C:\Python27" cd "C:\\Utils" -C:\PROGRA~1\Git\bin\git clone https://github.com/emscripten-core/emsdk.git $installLocationEmsdk = "C:\\Utils\\emsdk" -cd $installLocationEmsdk -.\emsdk install $version -.\emsdk activate $version +try { + Write-Host "Fetching from cached location" + Download $cacheUrl $cacheUrl ${temp}\${zipVersion}.zip + Verify-Checksum ${temp}\${zipVersion}.zip $sha + Extract-7Zip ${temp}\${zipVersion}.zip C:\Utils\ + cd $installLocationEmsdk + .\emsdk activate $version +} catch { + Write-Host "Can't find cached emsdk. Cloning it" + C:\PROGRA~1\Git\bin\git clone https://github.com/emscripten-core/emsdk.git + cd $installLocationEmsdk + .\emsdk install $version + .\emsdk activate $version +} $versionWinPython = $($Env:EMSDK_PYTHON -split ('python\\') -split ('_64bit'))[1] $versionNode = $($Env:EMSDK_NODE -split ('node\\') -split ('_64bit'))[1] diff --git a/coin/provisioning/common/windows/exceutequeueditems.ps1 b/coin/provisioning/common/windows/exceutequeueditems.ps1 index 97042b0b..0d6a7267 100644 --- a/coin/provisioning/common/windows/exceutequeueditems.ps1 +++ b/coin/provisioning/common/windows/exceutequeueditems.ps1 @@ -1,45 +1,30 @@ -############################################################################# -## -## Copyright (C) 2018 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2018 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" -Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait +function ngen() { + Param ( + [ValidateSet("Framework","Framework64","FrameworkArm64")][string]$framework + ) + Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\$framework\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait +} -if( (is64bitWinHost) -eq 1 ) { - Start-Process -NoNewWindow -FilePath "C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\ngen.exe" -ArgumentList ExecuteQueuedItems -Wait +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + ngen("FrameworkArm64") + Break + } + x64 { + ngen("Framework") + ngen("Framework64") + Break + } + x86 { + ngen("Framework") + Break + } + default { + throw "Unknown architecture $cpu_arch" + } } diff --git a/coin/provisioning/common/windows/fbx_windows.ps1 b/coin/provisioning/common/windows/fbx_windows.ps1 index 0daebb87..41b8768e 100644 --- a/coin/provisioning/common/windows/fbx_windows.ps1 +++ b/coin/provisioning/common/windows/fbx_windows.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -46,7 +10,7 @@ $version = "2016.1.2" $name = "fbx20161_2_fbxsdk_vs2015_win_nospace" $packageName = "$name.7z" $installerName = "$name.exe" -$cacheUrl = "\\ci-files01-hki.intra.qt.io\provisioning\fbx\$packageName" +$cacheUrl = "\\ci-files01-hki.ci.qt.io\provisioning\fbx\$packageName" $sha1 = "de80edc255ffd5ce86ba25869dad72b4c809fd41" # The executable is an interactive installer only. We can't run it in a script silently. diff --git a/coin/provisioning/common/windows/grpc.ps1 b/coin/provisioning/common/windows/grpc.ps1 new file mode 100644 index 00000000..7acbe896 --- /dev/null +++ b/coin/provisioning/common/windows/grpc.ps1 @@ -0,0 +1,122 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +. "$PSScriptRoot\helpers.ps1" + +# Here we build gRPC libraries for MinGW and MSVC. +# Since it's a c++ library we need both msvc and mingw because they mangle symbols differently. +# For MSVC it builds with both debug and release configurations because of the visual c++ runtime. +# For MinGW we only need one, so we only build with release. +# The function below takes care of the common part of building - invoking cmake, +# calling ninja and installing it to a directory which we set an environment variable to. +# Because we have two compilers we also have two env. vars. and then each +# config in CI has the gRPC_ROOT set to the appropriate one. +function build-install-grpc { + param( + [string]$CC, + [string]$CXX, + [string]$BuildType, + [string]$Postfix # Used for install-path and the environment variable name + ) + $installPrefix = "C:\Utils\grpc" + $installPath = "${installPrefix}-$Postfix" + $envVariableName = "Protobuf_ROOT_$Postfix" + $protobufRoot = (Get-Item -Path "Env:$envVariableName").Value + Write-Output "Configuring and building gRPC for $CXX" + $oldCC = $env:CC + $oldCXX = $env:CXX + $env:CC = $CC + $env:CXX = $CXX + Remove build-grpc + mkdir build-grpc + Push-Location build-grpc + $configureOptions = @( + # add postfix for multi-config + "-DCMAKE_DEBUG_POSTFIX=d" + "-DCMAKE_RELWITHDEBINFO_POSTFIX=rd" + # plugins + "-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF" + "-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF" + "-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF" + "-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF" + "-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF" + "-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF" + # extensions + "-DgRPC_BUILD_CSHARP_EXT=OFF" + # general + "-DgRPC_BUILD_TESTS=OFF" + "-DgRPC_PROTOBUF_PROVIDER=package" + "-DgRPC_SSL_PROVIDER=package" + # protobuf + "-DProtobuf_USE_STATIC_LIBS=ON" + "-DCMAKE_PREFIX_PATH=$protobufRoot" + ) + cmake .. -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="$BuildType" -DCMAKE_INSTALL_PREFIX="$installPath" $extraCMakeArgs $configureOptions + $result = $LASTEXITCODE + if ($result -eq 0) { + # ninja install:all # This is broken and does not work + foreach ($config in $BuildType.split(";")) { + ninja -f "build-$config.ninja" install + } + $result = $LASTEXITCODE + } + $env:CC = $oldCC + $env:CXX = $oldCXX + Set-EnvironmentVariable "gRPC_ROOT_$Postfix" "$installPath" + Pop-Location + Remove build-grpc + if ($result -ne 0) { + throw "Build exited with $result" + } +} + + +# Ensures a tool is in path or adds it to path if the $Path supplied to it +# contains it. Will throw if it's not found at all +function Find-Tool { + param( + [string]$Name, + [string]$Path + ) + # Is tool missing from path? + if (!(Get-Command $Name -ErrorAction SilentlyContinue)) { + # Is tool in the $Path directory? + if (Test-Path "$Path\$Name" -ErrorAction SilentlyContinue) { + $env:Path += ";$Path" + } + else { + throw "Cannot find $Name in path or $Name in $Path, something is configured wrong" + } + } +} +# This script is fairly late in provisioning so both of these should be present! +Find-Tool -Name "cmake.exe" -Path "C:\CMake\bin" +Find-Tool -Name "ninja.exe" -Path "C:\Utils\Ninja" + +$version="1.50.1" +$sha1="be1b0c3dbfbc9714824921f50dffb7cf044da5ab" +$internalUrl="http://ci-files01-hki.ci.qt.io/input/automotive_suite/grpc-all-$version.zip" +$externalUrl="" + +$basedir = "$env:HOMEDRIVE\$env:HOMEPATH\grpc" +mkdir $basedir +$targetDir = "$basedir\grpc-$version" +$targetFile = "$targetDir.zip" +Download $externalUrl $internalUrl $targetFile +Verify-Checksum $targetFile $sha1 +Extract-7Zip $targetFile $basedir +Remove $targetFile + +Push-Location $targetDir + +### gRPC supports only MSVC compiler + +EnterVSDevShell + +# We pass along an extra argument to stop gRPC linking with the static runtime to match Protobuf config +build-install-grpc -CC "cl" -CXX "cl" -BuildType "Release;RelWithDebInfo;Debug" -Postfix "msvc" -ExtraArguments @("-DgRPC_MSVC_STATIC_RUNTIME=OFF") + +Pop-Location +Remove $basedir + +Write-Output "gRPC = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/helpers.ps1 b/coin/provisioning/common/windows/helpers.ps1 index 1967b02a..9fbf27aa 100644 --- a/coin/provisioning/common/windows/helpers.ps1 +++ b/coin/provisioning/common/windows/helpers.ps1 @@ -196,6 +196,28 @@ function Is64BitWinHost return [environment]::Is64BitOperatingSystem } +enum CpuArch { + x64 + x86 + arm64 + unknown +} + +function Get-CpuArchitecture +{ + # Possible values are "AMD64", "IA64", "ARM64", and "x86" + $arch = [System.Environment]::GetEnvironmentVariable('PROCESSOR_ARCHITECTURE', 'Machine') + if ($arch -eq "AMD64") { + return [CpuArch]::x64 + } elseif ($arch -eq "x86") { + return [CpuArch]::x86 + } elseif ($arch -eq "ARM64") { + return [CpuArch]::arm64 + } + + return [CpuArch]::unknown +} + function IsProxyEnabled { return (Get-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings').proxyEnable } @@ -274,3 +296,50 @@ function DeleteSchedulerTask { Write-Host "Disabling $Task from Task Scheduler" SCHTASKS /DELETE /TN "Microsoft\Windows\$Task" /F } + +function GetVSPath { + Param ( + [string]$VSWhere = "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe", + [string]$Component = "Microsoft.VisualStudio.Component.VC.Tools.x86.x64" + ) + + return (& $VSWhere -nologo -latest -products * -requires $Component -property installationPath) +} + +function EnterVSDevShell { + Param ( + [string]$HostArch = "amd64", + [string]$Arch = "amd64" + ) + + $vsWere = "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" + $vcComponent = "Microsoft.VisualStudio.Component.VC.CoreIde" + # We pick the oldest build tools we can find and use that to be compatible with it and any newer version: + # If MSVC has an ABI break this will stop working, and yet another build must be added. + $VSPath = (& $vsWere -nologo -products * -requires $vcComponent -sort -format value -property installationPath | Select-Object -Last 1) + + Write-Host "Enter VisualStudio developer shell (-host_arch=$HostArch -arch=$Arch)" + try { + Import-Module "$VSPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" + Enter-VsDevShell -VsInstallPath $VSPath -DevCmdArguments "-host_arch=$HostArch -arch=$Arch -no_logo" + } catch { + Write-Host "Failed to enter VisualStudio DevShell" + return $false + } + return $true +} + +function Invoke-MtCommand { + param( + [String] $vcVarsScript, + [String] $arch, + [String] $manifest, + [String] $executable + ) + $tempFile = [IO.Path]::GetTempFileName() + Add-Content -Path $tempFile -Value $manifest + $cmdLine = """$vcVarsScript"" $arch & mt.exe -manifest ""$tempFile"" -outputresource:""$executable"";1" + Write-Output Executing $cmdLine + & $Env:SystemRoot\system32\cmd.exe /c $cmdLine | Write-Output + Remove-Item $tempFile +} diff --git a/coin/provisioning/common/windows/install-azure-tool.ps1 b/coin/provisioning/common/windows/install-azure-tool.ps1 index 0d2e2ef9..9f82f54e 100644 --- a/coin/provisioning/common/windows/install-azure-tool.ps1 +++ b/coin/provisioning/common/windows/install-azure-tool.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install Azure singtool using Dotnet SDK diff --git a/coin/provisioning/common/windows/install-breakpad.ps1 b/coin/provisioning/common/windows/install-breakpad.ps1 index 994e8991..6bdb4b9f 100644 --- a/coin/provisioning/common/windows/install-breakpad.ps1 +++ b/coin/provisioning/common/windows/install-breakpad.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################ +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # This script install breakpad from sources. # for manual install.. remember to checkout correct version @@ -56,12 +20,12 @@ $breakpad_commit_sha="b988fa74ec18de6214b18f723e48331d9a7802ae" $breakpad_tar="breakpad_$breakpad_commit_sha.tar.gz" -$breakpad_tar_url="http://ci-files01-hki.intra.qt.io/input/breakpad/$breakpad_tar" +$breakpad_tar_url="http://ci-files01-hki.ci.qt.io/input/breakpad/$breakpad_tar" $breakpad_tar_sha="a2d404d2aebc947cdac5840a9bccd65dfafae24c" $linux_syscall_support_commit_sha1="93426bda6535943ff1525d0460aab5cc0870ccaf" $linux_syscall_support_tar="linux-syscall-support_$linux_syscall_support_commit_sha1.tar.gz" -$linux_syscall_support_tar_url="http://ci-files01-hki.intra.qt.io/input/linux-syscall-support/$linux_syscall_support_tar" +$linux_syscall_support_tar_url="http://ci-files01-hki.ci.qt.io/input/linux-syscall-support/$linux_syscall_support_tar" $linux_syscall_support_tar_sha="62565be0920f3661e138d68026b79fbbdc2a11e4" $targetBreakpad="$env:tmp\$breakpad_tar" diff --git a/coin/provisioning/common/windows/install-dependencywalker.ps1 b/coin/provisioning/common/windows/install-dependencywalker.ps1 index 1d015ffa..abaa4d79 100644 --- a/coin/provisioning/common/windows/install-dependencywalker.ps1 +++ b/coin/provisioning/common/windows/install-dependencywalker.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -49,7 +13,7 @@ if (Is64BitWinHost) { $arch = "_x86" $sha1 = "bfec714057e8449b0246051be99ba46a7760bab9" } -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\depends22" + $arch + ".zip" +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\depends22" + $arch + ".zip" $url_official = "http://www.dependencywalker.com/depends22" + $arch + ".zip" $dependsPackage = "C:\Windows\Temp\depends-$version.zip" @@ -62,6 +26,10 @@ Verify-Checksum $dependsPackage $sha1 Extract-7Zip $dependsPackage $TARGETDIR +# Copy the content also into the cache location of nuitka +# This makes it usable without the need to download it again +Copy-Item -Path $TARGETDIR -Destination "$env:LOCALAPPDATA\Nuitka\Nuitka\Cache\downloads\depends\x86_64" -Recurse + Write-Host "Cleaning $dependsPackage.." Remove "$dependsPackage" diff --git a/coin/provisioning/common/windows/install-dotnet.ps1 b/coin/provisioning/common/windows/install-dotnet.ps1 index 7f3065de..aea40e86 100644 --- a/coin/provisioning/common/windows/install-dotnet.ps1 +++ b/coin/provisioning/common/windows/install-dotnet.ps1 @@ -1,52 +1,16 @@ -############################################################################# -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install Dotnet SDK which is required for Azure installation $version = "2.1" if (Is64BitWinHost) { - $urlCache = "http://ci-files01-hki.intra.qt.io/input/windows/dotnet-sdk-2.1.809-win-x64.exe" + $urlCache = "http://ci-files01-hki.ci.qt.io/input/windows/dotnet-sdk-2.1.809-win-x64.exe" $urlOfficial = "https://download.visualstudio.microsoft.com/download/pr/c980b6fb-e570-4c73-b344-e4dae6573777/f844ac1a4c6ea5de7227a701786126fd/dotnet-sdk-2.1.809-win-x64.exe" $sha1 = "343e80c2ab558a30696dbe03ad2288bf435d5cd8" } else { - $urlCache = "http://ci-files01-hki.intra.qt.io/input/windows/dotnet-sdk-2.1.809-win-x86.exe" + $urlCache = "http://ci-files01-hki.ci.qt.io/input/windows/dotnet-sdk-2.1.809-win-x86.exe" $urlOfficial = "https://download.visualstudio.microsoft.com/download/pr/cf86a2f3-f6b2-4959-8e41-cf84b0d2f294/a61e834f56abe2dc2e12599e1a60c10b/dotnet-sdk-2.1.809-win-x86.exe" $sha1 = "b38a4e1392f17aed110508a1687f1c65b9d86161" } diff --git a/coin/provisioning/common/windows/install-ffmpeg.ps1 b/coin/provisioning/common/windows/install-ffmpeg.ps1 index 73b7444f..f8ad9f15 100644 --- a/coin/provisioning/common/windows/install-ffmpeg.ps1 +++ b/coin/provisioning/common/windows/install-ffmpeg.ps1 @@ -1,52 +1,16 @@ -############################################################################ -## -## Copyright (C) 2022 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install FFmpeg $msys = "C:\Utils\msys64\usr\bin\bash" -$version = "n5.0" +$version = "n6.1.1" $ffmpeg_name = "ffmpeg-" + $version; -$sha1 = "3F7C6D5264A04BC27BA471D189B0483954820D65" +$sha1 = "7AECCED8A0366BE407329B4E176167534233DA12" -$url_cached = "http://ci-files01-hki.intra.qt.io/input/ffmpeg/" + $version + ".zip" +$url_cached = "https://ci-files01-hki.ci.qt.io/input/ffmpeg/" + $version + ".zip" $url_public = "https://github.com/FFmpeg/FFmpeg/archive/refs/tags/" +$version + ".zip" $download_location = "C:\Windows\Temp\" + $ffmpeg_name + ".zip" $unzip_location = "C:\" @@ -58,62 +22,148 @@ Verify-Checksum $download_location $sha1 Extract-7Zip $download_location $unzip_location Remove $download_location -function CheckExitCode { - param ($p) +$config = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt" +Write-Host "FFmpeg configuration $config" + +function InstallFfmpeg { + Param ( + [string]$buildSystem, + [string]$msystem, + [string]$additionalPath, + [string]$ffmpegDirEnvVar, + [string]$toolchain, + [bool]$shared + ) + + Write-Host "Configure and compile ffmpeg for $buildSystem" + + $oldPath = $env:PATH - if ($p.ExitCode) { - Write-host "Process failed with exit code: $($p.ExitCode)" - exit 1 + if ($additionalPath) { $env:PATH = "$additionalPath;$env:PATH" } + $env:MSYS2_PATH_TYPE = "inherit" + $env:MSYSTEM = $msystem + + $cmd = "cd /c/$ffmpeg_name" + $cmd += " && mkdir -p build/$buildSystem && cd build/$buildSystem" + $cmd += " && ../../configure --prefix=installed $config" + if ($toolchain) { $cmd += " --toolchain=$toolchain" } + if ($shared) { $cmd += " --enable-shared --disable-static" } + $cmd += " && make install -j" + + Write-Host "MSYS cmd:" + Write-Host $cmd + $buildResult = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys" -ArgumentList ("-lc", "`"$cmd`"") + + $env:PATH = $oldPath + + if ($buildResult.ExitCode) { + Write-Host "Failed to build ffmpeg for $buildSystem" + return $false } + + Set-EnvironmentVariable $ffmpegDirEnvVar "C:\$ffmpeg_name\build\$buildSystem\installed" + return $true } -$config = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt" -Write-Host "FFmpeg configuration $config" +function InstallMingwFfmpeg { + $mingwPath = [System.Environment]::GetEnvironmentVariable("MINGW_PATH", [System.EnvironmentVariableTarget]::Machine) + return InstallFfmpeg -buildSystem "mingw" -msystem "MINGW" -additionalPath "$mingwPath\bin" -ffmpegDirEnvVar "FFMPEG_DIR_MINGW" -shared $true +} + + +function InstallMsvcFfmpeg { + Param ( + [bool]$isArm64 + ) -Write-Host "Configure and compile ffmpeg for MINGW" -$mingw = [System.Environment]::GetEnvironmentVariable("MINGW1120", [System.EnvironmentVariableTarget]::Machine) -$env:PATH += ";$mingw\bin" -$env:MSYS2_PATH_TYPE = "inherit" -$env:MSYSTEM = "MINGW" + $arch = "amd64" + $buildSystem = "msvc" + $ffmpegDirEnvVar = "FFMPEG_DIR_MSVC" -$cmd = "cd /c/$ffmpeg_name" -$cmd += "&& mkdir -p build/mingw && cd build/mingw" -$cmd += "&& ../../configure --prefix=installed $config" -$cmd += "&& make install -j" + $config = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt" -$build = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys" -ArgumentList ("-lc", "`"$cmd`"") -CheckExitCode $build + if ($isArm64) { + $arch = "arm64" + $buildSystem += "-arm64" + $ffmpegDirEnvVar += "_ARM64" + $config += " --enable-cross-compile --arch=arm64 --disable-asm" + } -Set-EnvironmentVariable "FFMPEG_DIR_MINGW" "C:\$ffmpeg_name\build\mingw\installed" + $result = EnterVSDevShell -Arch $arch + if (-Not $result) { + return $false + } + $result = InstallFfmpeg -buildSystem $buildSystem -msystem "MSYS" -toolchain "msvc" -ffmpegDirEnvVar $ffmpegDirEnvVar -shared $true + + if ($result) { + # As ffmpeg build system creates lib*.a file we have to rename them to *.lib files to be recognized by WIN32 + Write-Host "Rename libraries lib*.a -> *.lib" + try { + $msvcDir = [System.Environment]::GetEnvironmentVariable("FFMPEG_DIR_MSVC", [System.EnvironmentVariableTarget]::Machine) + Get-ChildItem "$msvcDir\lib\lib*.a" | ForEach-Object { + $NewName = $_.Name -replace 'lib(\w+).a$', '$1.lib' + $Destination = Join-Path -Path $_.Directory.FullName -ChildPath $NewName + Move-Item -Path $_.FullName -Destination $Destination -Force + } + } catch { + Write-Host "Failed to rename libraries lib*.a -> *.lib" + return $false + } + } -Write-Host "Enter VisualStudio developer shell" -$vsPath = "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional" -try { - Import-Module "$vsPath\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" - Enter-VsDevShell -VsInstallPath $vsPath -DevCmdArguments "-arch=x64 -no_logo" -} catch { - Write-host "Failed to enter VisualStudio DevShell" - exit 1 + return $result } -Write-Host "Configure and compile ffmpeg for MSVC" -$env:MSYSTEM = "MSYS" -$env:MSYS2_PATH_TYPE = "inherit" -$cmd = "CC=cl;" -$cmd += "cd /c/$ffmpeg_name" -$cmd += "&& mkdir -p build/msvc && cd build/msvc" -$cmd += "&& ../../configure --toolchain=msvc --prefix=installed $config" -$cmd += "&& make install -j" +function InstallLlvmMingwFfmpeg { + return InstallFfmpeg -buildSystem "llvm-mingw" -msystem "CLANG64" -ffmpegDirEnvVar "FFMPEG_DIR_LLVM_MINGW" -additionalPath "C:\llvm-mingw\bin" -shared $true +} -$build = Start-Process -NoNewWindow -Wait -PassThru -ErrorAction Stop -FilePath "$msys" -ArgumentList ("-lc", "`"$cmd`"") -CheckExitCode $build +function InstallAndroidArmv7 { + + $target_toolchain_arch="armv7a-linux-androideabi" + $target_arch="armv7-a" + $target_cpu="armv7-a" + $api_version="24" + + $ndkVersionLatest = "r26b" + $ndkFolderLatest = "/c/Utils/Android/android-ndk-$ndkVersionLatest" + + $toolchain="${ndkFolderLatest}/toolchains/llvm/prebuilt/windows-x86_64" + $toolchain_bin="${toolchain}/bin" + $sysroot="${toolchain}/sysroot" + $cxx="${toolchain_bin}/${target_toolchain_arch}${api_version}-clang++" + $cc="${toolchain_bin}/${target_toolchain_arch}${api_version}-clang" + $ld="${toolchain_bin}/ld.exe" + $ar="${toolchain_bin}/llvm-ar.exe" + $ranlib="${toolchain_bin}/llvm-ranlib.exe" + $nm="${toolchain_bin}/llvm-nm.exe" + $strip="${toolchain_bin}/llvm-strip.exe" + $openssl_path = [System.Environment]::GetEnvironmentVariable("OPENSSL_ANDROID_HOME_DEFAULT", [System.EnvironmentVariableTarget]::Machine) + $openssl_path = $openssl_path.Replace("\", "/") + + $config = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt" + $config += " --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera" + $config += " --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/" + $config += " --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}" + $config += " --extra-cflags=-I$envOPENSSL_ANDROID_HOME_DEFAULT/include --extra-ldflags=-L$env:OPENSSL_ANDROID_HOME_DEFAULT/armeabi-v7a" + $config += " --extra-cflags=-I${openssl_path}/include --extra-ldflags=-L${openssl_path}/armeabi-v7a" + + return InstallFfmpeg -buildSystem "android-arm" -msystem "ANDROID_CLANG" -ffmpegDirEnvVar "FFMPEG_DIR_ANDROID_ARMV7" +} -$ffmpeg_mscv_install = "C:\$ffmpeg_name\build\msvc\installed" +$mingwRes = InstallMingwFfmpeg +$llvmMingwRes = InstallLlvmMingwFfmpeg +$androidArmV7Res = InstallAndroidArmv7 +$msvcRes = InstallMsvcFfmpeg -isArm64 $false +$msvcArm64Res = InstallMsvcFfmpeg -isArm64 $true -# As ffmpeg build system creates lib*.a file we have to rename them to *.lib files to be recognized by WIN32 -Write-Host "Rename libraries lib*.a -> *.lib" -Get-ChildItem "$ffmpeg_mscv_install\lib\lib*.a" | Rename-Item -NewName { $_.Name -replace 'lib(\w+).a$', '$1.lib' } +Write-Host "Ffmpeg installation results:" +Write-Host " mingw:" $(if ($mingwRes) { "OK" } else { "FAIL" }) +Write-Host " msvc:" $(if ($msvcRes) { "OK" } else { "FAIL" }) +Write-Host " msvc-arm64:" $(if ($msvcArm64Res) { "OK" } else { "FAIL" }) +Write-Host " llvm-mingw:" $(if ($llvmMingwRes) { "OK" } else { "FAIL" }) +Write-Host " android-armv7:" $(if ($androidArmV7Res) { "OK" } else { "FAIL" }) -Set-EnvironmentVariable "FFMPEG_DIR_MSVC" $ffmpeg_mscv_install +exit $(if ($mingwRes -and $msvcRes -and $msvcArm64Res -and $llvmMingwRes -and $androidArmV7Res) { 0 } else { 1 }) diff --git a/coin/provisioning/common/windows/install-git.ps1 b/coin/provisioning/common/windows/install-git.ps1 index 56098d15..47c2cc03 100644 --- a/coin/provisioning/common/windows/install-git.ps1 +++ b/coin/provisioning/common/windows/install-git.ps1 @@ -1,55 +1,19 @@ -############################################################################# -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" -# Install Git version 2.31.0 +# Install Git -$version = "2.31.0" +$version = "2.36.1" if (Is64BitWinHost) { $arch = "-64-bit" - $sha1 = "495d78f8d961e030944d9cb53af80d909d493c3f" + $sha1 = "594bdfc4e7704fb03fe14b7c0613087dfa3d4416" } else { $arch = "-32-bit" - $sha1 = "e57c040aea297b363aefaf26424f2e7a84a4a173" + $sha1 = "1bbe040254c236607ccb84e14a3f608b1a4e959a" } $gitPackage = "C:\Windows\Temp\Git-" + $version + $arch + ".exe" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\Git-" + $version + $arch + ".exe" +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\Git-" + $version + $arch + ".exe" $url_official = "https://github.com/git-for-windows/git/releases/download/v" + $version + ".windows.1/Git-" + $version + $arch + ".exe" Write-Host "Fetching Git $version..." diff --git a/coin/provisioning/common/windows/install-gnuwin32.ps1 b/coin/provisioning/common/windows/install-gnuwin32.ps1 index a467b4e9..a6e300e6 100644 --- a/coin/provisioning/common/windows/install-gnuwin32.ps1 +++ b/coin/provisioning/common/windows/install-gnuwin32.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################ +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install gnuwin32 @@ -43,7 +7,7 @@ $prog = "gnuwin32" $zipPackage = "$prog.zip" $temp = "$env:tmp" -$internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/$prog/$zipPackage" +$internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/$prog/$zipPackage" $externalUrl = "http://download.qt.io/development_releases/$prog/$zipPackage" Download $externalUrl $internalUrl "$temp\$zipPackage" Verify-Checksum "$temp\$zipPackage" "d7a34a385ccde2374b8a2ca3369e5b8a1452c5a5" diff --git a/coin/provisioning/common/windows/install-jdk.ps1 b/coin/provisioning/common/windows/install-jdk.ps1 index dc3a5acd..dc19551d 100644 --- a/coin/provisioning/common/windows/install-jdk.ps1 +++ b/coin/provisioning/common/windows/install-jdk.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -45,19 +9,24 @@ if (Is64BitWinHost) { $version = "11.0.12" $arch = "x64" $sha1 = "135ffd1c350509729551876232a5354070732e92" + $installdir = "C:\Program Files\Java\jdk-$version" + $url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\jdk-" + $version + "-windows-" + $arch + ".exe" } else { - $version = "8u144" - $arch = "i586" - $sha1 = "3b9ab95914514eaefd72b815c5d9dd84c8e216fc" + $version = "11.0.11.9" + $arch = "x86-32" + $sha1 = "a861e994208ee85bf83a76105f6858feeb6fbb33" + $installdir = "C:\Program Files\AdoptOpenJDK\jdk-$version-hotspot" + $url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\OpenJDK11U-jdk_x86-32_windows_hotspot_11.0.11_9.msi" } -$installdir = "C:\Program Files\Java\jdk-$version" - -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\jdk-" + $version + "-windows-" + $arch + ".exe" # NOTE! Official URL is behind login portal. It can't be used whit this script instead it need to be fetched to $url_cache first # java 11: https://www.oracle.com/java/technologies/downloads/#java11-windows # java 8: $official_url = "http://download.oracle.com/otn-pub/java/jdk/8u144-b01/090f390dda5b47b9b721c7dfaa008135/jdk-" + $version + "-windows-" + $arch + ".exe" -$javaPackage = "C:\Windows\Temp\jdk-$version.exe" +if (Is64BitWinHost) { + $javaPackage = "C:\Windows\Temp\jdk-$version.exe" +} else { + $javaPackage = "C:\Windows\Temp\jdk-$version.msi" +} Write-Host "Fetching Java SE $version..." $ProgressPreference = 'SilentlyContinue' @@ -65,7 +34,11 @@ Write-Host "...from local cache" Download $url_cache $url_cache $javaPackage Verify-Checksum $javaPackage $sha1 -Run-Executable "$javaPackage" "/s SPONSORS=0" +if (Is64BitWinHost) { + Run-Executable "$javaPackage" "/s SPONSORS=0" +} else { + Run-Executable "msiexec" "/quiet /i $javaPackage" +} Remove "$javaPackage" Write-Host "Remove Java update from startup" diff --git a/coin/provisioning/common/windows/install-jq.ps1 b/coin/provisioning/common/windows/install-jq.ps1 new file mode 100644 index 00000000..6f5bd333 --- /dev/null +++ b/coin/provisioning/common/windows/install-jq.ps1 @@ -0,0 +1,31 @@ +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +. "$PSScriptRoot\helpers.ps1" + +# This script installs jq + +$jqProgram = "jq" +$jqVersion = "1.6" +$jqExeSHA1 = "2b7ae7b902aa251b55f2fd73ad5b067d2215ce78" +$jqInstallLocation = "C:\Utils\jq" +$jqExe = "C:\Windows\Temp\jq.exe" +$jqCacheURL = "\\ci-files01-hki.ci.qt.io\provisioning\jq\jq-win64-$jqVersion.exe" +$jqOfficialURL = "https://github.com/jqlang/jq/releases/download/jq-$jqVersion/jq-win64.exe" + +Download "$jqOfficialURL" "$jqCacheURL" "$jqExe" +Verify-Checksum $jqExe $jqExeSHA1 +New-Item -Path "C:\Utils" -Name "jq" -ItemType "directory" -Force +Move-Item -Path "$jqExe" -Destination "$jqInstallLocation" -Force + +if(![System.IO.File]::Exists("$jqInstallLocation\jq.exe")){ + Write-Host "Can't find $jqInstallLocation\jq.exe." + exit 1 +} + +# Add jq to Path. It is necessary to prepend it to $env:Path as well, to make +# it available during provisioning +Prepend-Path "$jqInstallLocation" +$env:Path = "$jqInstallLocation;$env:Path" + +Write-Output "jq = $jqVersion" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/install-mcuxpresso.ps1 b/coin/provisioning/common/windows/install-mcuxpresso.ps1 index d74f4b69..b3fa2b4c 100644 --- a/coin/provisioning/common/windows/install-mcuxpresso.ps1 +++ b/coin/provisioning/common/windows/install-mcuxpresso.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -43,7 +7,7 @@ # MCUXpresso IDE provides the tools for flashing and onboard debugging $version = "11.2.0_4120" -$url = "http://ci-files01-hki.intra.qt.io/input/windows/MCUXpressoIDE_$version.zip" +$url = "http://ci-files01-hki.ci.qt.io/input/windows/MCUXpressoIDE_$version.zip" $zip = "C:\Windows\Temp\MCUXpressoIDE_$version.zip" Download $url $url $zip diff --git a/coin/provisioning/common/windows/install-mingw.ps1 b/coin/provisioning/common/windows/install-mingw.ps1 index 0eb37e96..d42eeaab 100644 --- a/coin/provisioning/common/windows/install-mingw.ps1 +++ b/coin/provisioning/common/windows/install-mingw.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################ +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -46,15 +10,19 @@ function InstallMinGW [string] $sha1 = $(BadParam("SHA1 checksum of the file")) ) - $null, $null, $arch, $version, $null, $threading, $ex_handling, $build_ver, $revision = $release.split('-') + if ($release -like "*11.2.0*") { + $null, $null, $arch, $version, $null, $threading, $ex_handling, $build_ver, $revision = $release.split('-') + $url_original = "https://github.com/cristianadam/mingw-builds/releases/download/v" + $version + "-" + $revision + "/" + $arch + "-" + $version + "-release-" + $threading + "-" + $ex_handling + "-" + $build_ver + "-" + $revision + ".7z" + } + else { + $null, $null, $arch, $version, $null, $threading, $ex_handling, $runtime_library, $build_ver, $revision = $release.split('-') + $url_original = "https://github.com/niXman/mingw-builds-binaries/releases/download/" + $version + "-" + $build_ver + "-" + $revision + "/" + $arch + "-" + $version + "-release-" + $threading + "-" + $ex_handling + "-" + $runtime_library + "-" + $build_ver + "-" + $revision + ".7z" + } if ($arch -eq "x86_64") { $win_arch = "Win64" } - $envvar = "MINGW$version" - $envvar = $envvar -replace '["."]' + $envvar = "MINGW_PATH" $targetdir = "C:\$envvar" - - $url_original = "https://github.com/cristianadam/mingw-builds/releases/download/v" + $version + "-" + $revision + "/" + $arch + "-" + $version + "-release-" + $threading + "-" + $ex_handling + "-" + $build_ver + "-" + $revision + ".7z" - $url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\" + $release + ".7z" + $url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/" + $release + ".7z" $mingwPackage = "C:\Windows\Temp\MinGW-$version.zip" Download $url_original $url_cache $mingwPackage Verify-Checksum $mingwPackage $sha1 diff --git a/coin/provisioning/common/windows/install-msys2.ps1 b/coin/provisioning/common/windows/install-msys2.ps1 index 0f704a3f..7a79d4ab 100644 --- a/coin/provisioning/common/windows/install-msys2.ps1 +++ b/coin/provisioning/common/windows/install-msys2.ps1 @@ -1,58 +1,22 @@ -############################################################################ -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will installs msys2 -$version = "20220319" +$version = "20240113" $prog = "msys2" $arch = "x86_64" -$sha1 = "d3d05090c09c08a47efbffe469142b45231cbc89" +$sha1 = "b46c08fd901da0fdba1dc30422a322766d7d03c6" $sha1_prebuilt = "d86d45d72228f53f7ae060771bc95b6f54c703c8" $folder = "msys64" $package_prebuilt = $folder + "_" + $version + "_prebuilt.7z" $package = $prog + "-base-" + $arch + "-" + $version + ".tar.xz" -$url_cache_prebuilt = "\\ci-files01-hki.intra.qt.io\provisioning\windows\$package_prebuilt" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\$package" +$url_cache_prebuilt = "\\ci-files01-hki.ci.qt.io\provisioning\windows\$package_prebuilt" +$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/$package" $url_official = "http://repo.msys2.org/distrib/$arch/$package" $TargetLocation = "C:\Utils" @@ -71,7 +35,7 @@ if ((Test-Path $url_cache_prebuilt)) { # install perl make and yasm # Run these without 'Run-Executable' function. When using the function the gpg-agent will lock the needed tmp*.tmp file. - cmd /c "$msys `"-l`" `"-c`" `"rm -rf /etc/pacman.d/gnupg;pacman-key --init;pacman-key --populate msys2;pacman -S --noconfirm perl make yasm`"" + cmd /c "$msys `"-l`" `"-c`" `"rm -rf /etc/pacman.d/gnupg;pacman-key --init;pacman-key --populate msys2;pacman-key --refresh;pacman -S --noconfirm perl make yasm diffutils`"" Start-Sleep -s 60 cmd /c "$msys `"-l`" `"-c`" `"echo y | cpan -i Text::Template Test::More`"" diff --git a/coin/provisioning/common/windows/install-notepad++.ps1 b/coin/provisioning/common/windows/install-notepad++.ps1 index 175bcbb4..17e86d27 100644 --- a/coin/provisioning/common/windows/install-notepad++.ps1 +++ b/coin/provisioning/common/windows/install-notepad++.ps1 @@ -1,56 +1,37 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install Notepad++ -$version = "7.3" -if (Is64BitWinHost) { - $arch = ".x64" - $sha1 = "E7306DF1D6E81801FB4BE0868610DB70E979B0AA" -} else { - $arch = "" - $sha1 = "d4c403675a21cc381f640b92e596bae3ef958dc6" +$version = "8.6.5" + +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + $arch = ".arm64" + $sha1 = "eecb8a6b6ed3cb1e467d227b8b7751283c35434e" + Break + } + x64 { + $arch = ".x64" + $sha1 = "a0bf3fb15015bc1fbcb819d9a9c61f4762f4a10f" + Break + } + x86 { + $arch = "" + $sha1 = "ba940c6b526da1ce127f43b835b4d8c9d5c4b59c" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } } -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\npp." + $version + ".Installer" + $arch + ".exe" -$url_official = "https://notepad-plus-plus.org/repository/7.x/" + $version + "/npp." + $version + ".Installer" + $arch + ".exe" + +$filename_exe = "npp." + $version + ".Installer" + $arch + ".exe" +$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/" + $filename_exe +$url_official = "https://github.com/notepad-plus-plus/notepad-plus-plus/releases/download/v" + $version + "/" + $filename_exe $nppPackage = "C:\Windows\Temp\npp-$version.exe" Download $url_official $url_cache $nppPackage diff --git a/coin/provisioning/common/windows/install-openssh.ps1 b/coin/provisioning/common/windows/install-openssh.ps1 new file mode 100644 index 00000000..1f746b14 --- /dev/null +++ b/coin/provisioning/common/windows/install-openssh.ps1 @@ -0,0 +1,48 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +. "$PSScriptRoot\helpers.ps1" + +# Install Openssh + +$version = "v9.2.2.0p1-Beta" + +$temp = "$env:tmp" +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + $zipPackage = "OpenSSH-ARM64" + $sha1 = "ca3e8f44a550b7ae71c8e122acd4ed905d66feb0" + Break + } + x64 { + $zipPackage = "OpenSSH-Win64" + $sha1 = "1397d40d789ae0911b3cc818b9dcd9321fed529b" + Break + } + x86 { + $zipPackage = "OpenSSH-Win32" + $sha1 = "4642C62F72C108C411E27CE282A863791B63329B" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } +} + +Write-Host "Fetching $zipPackage $version..." +$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/" + $version + "/" + $zipPackage + ".zip" +$url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/" + $version + "/" + $zipPackage + ".zip" +Download $url_official $url_cache "$temp\$zipPackage" +Verify-Checksum "$temp\$zipPackage" $sha1 + +Write-Host "Extracting the package" +Extract-7Zip "$temp\$zipPackage" C:\"Program Files" + +Write-Host "Installing $zipPackage $version..." +$path = "C:\Program Files\" + $zipPackage + "\install-sshd.ps1" + +# Installation done as shown at https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH +powershell.exe -ExecutionPolicy Bypass -File $path +netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22 +net start sshd +Set-Service sshd -StartupType Automatic diff --git a/coin/provisioning/common/windows/install-ruby.ps1 b/coin/provisioning/common/windows/install-ruby.ps1 index 53b8c834..53c8faf5 100644 --- a/coin/provisioning/common/windows/install-ruby.ps1 +++ b/coin/provisioning/common/windows/install-ruby.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -49,7 +13,7 @@ if (Is64BitWinHost) { $arch = "-x86" $sha1 = "2639a481c3b5ad11f57d5523cc41ca884286089e" } -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\rubyinstaller-" + $version + $arch + ".exe" +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\rubyinstaller-" + $version + $arch + ".exe" $url_official = "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-" + $version + "/rubyinstaller-" + $version + $arch + ".exe" $rubyPackage = "C:\Windows\Temp\rubyinstaller-$version.exe" diff --git a/coin/provisioning/common/windows/install-sccache.ps1 b/coin/provisioning/common/windows/install-sccache.ps1 index 57bcf140..b8f1605c 100644 --- a/coin/provisioning/common/windows/install-sccache.ps1 +++ b/coin/provisioning/common/windows/install-sccache.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # Install mozilla sccache @@ -50,7 +14,7 @@ param( $basename = "sccache-" + $version + "-" + $arch $zipfile = $basename + ".tar.gz" $tempfile = "C:\Windows\Temp\" + $zipfile -$urlCache = "http://ci-files01-hki.intra.qt.io/input/sccache/" + $zipfile +$urlCache = "http://ci-files01-hki.ci.qt.io/input/sccache/" + $zipfile $urlOfficial = "https://github.com/mozilla/sccache/releases/download/" + $version + "/" + $zipfile $targetFolder = "C:\Program Files\" diff --git a/coin/provisioning/common/windows/install-sed.ps1 b/coin/provisioning/common/windows/install-sed.ps1 index d60efb18..8b9c9671 100644 --- a/coin/provisioning/common/windows/install-sed.ps1 +++ b/coin/provisioning/common/windows/install-sed.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -47,8 +11,8 @@ $sha1 = "dfd3d1dae27a24784d7ab40eb074196509fa48fe" $dep_sha1 = "f7edbd7152d8720c95d46dd128b87b8ba48a5d6f" $pkg = "$prog-$version-bin.zip" $dep_pkg = "$prog-$version-dep.zip" -$cached_url = "http://ci-files01-hki.intra.qt.io/input/windows/gnuwin32/$pkg" -$dep_cached_url = "http://ci-files01-hki.intra.qt.io/input/windows/gnuwin32/$dep_pkg" +$cached_url = "http://ci-files01-hki.ci.qt.io/input/windows/gnuwin32/$pkg" +$dep_cached_url = "http://ci-files01-hki.ci.qt.io/input/windows/gnuwin32/$dep_pkg" $install_location = "c:\Utils\$prog" $tmp_location = "c:\users\qt\downloads" diff --git a/coin/provisioning/common/windows/install-sevenzip.ps1 b/coin/provisioning/common/windows/install-sevenzip.ps1 index 7b130a73..47a34e2b 100644 --- a/coin/provisioning/common/windows/install-sevenzip.ps1 +++ b/coin/provisioning/common/windows/install-sevenzip.ps1 @@ -1,58 +1,36 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script installs 7-Zip -$version = "16.04" -$nonDottedVersion = "1604" - -if (Is64BitWinHost) { - $arch = "-x64" - $sha1 = "338A5CC5200E98EDD644FC21807FDBE59910C4D0" -} else { - $arch = "" - $sha1 = "dd1cb1163c5572951c9cd27f5a8dd550b33c58a4" +$version = "23.01" +$nonDottedVersion = "2301" + +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + $arch = "-arm64" + $sha1 = "be65c2ea6119c04945c66b13413892f2bb03d9a7" + Break + } + x64 { + $arch = "-x64" + $sha1 = "7DF28D340D7084647921CC25A8C2068BB192BDBB" + Break + } + x86 { + $arch = "" + $sha1 = "D5D00E6EA8B8E68CE7A704FD478DC950E543C25C" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } } -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\7z" + $nonDottedVersion + $arch + ".exe" +$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/7z" + $nonDottedVersion + $arch + ".exe" $url_official = "http://www.7-zip.org/a/7z" + $nonDottedVersion + $arch + ".exe" $7zPackage = "C:\Windows\Temp\7zip-$nonDottedVersion.exe" $7zTargetLocation = "C:\Utils\sevenzip\" diff --git a/coin/provisioning/common/windows/install-stm32cubeprogrammer.ps1 b/coin/provisioning/common/windows/install-stm32cubeprogrammer.ps1 index 2b79ee59..4df207ce 100644 --- a/coin/provisioning/common/windows/install-stm32cubeprogrammer.ps1 +++ b/coin/provisioning/common/windows/install-stm32cubeprogrammer.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -43,7 +7,7 @@ # Official donwload from https://www.st.com/en/development-tools/stm32cubeprog.html $version ="2_5_0" -$url = "http://ci-files01-hki.intra.qt.io/input/windows/STMicroelectronics_v${version}.zip" +$url = "http://ci-files01-hki.ci.qt.io/input/windows/STMicroelectronics_v${version}.zip" $zip = "C:\Windows\Temp\STMicroelectronics_v${version}.zip" Download $url $url $zip diff --git a/coin/provisioning/common/windows/install-strawberry-perl.ps1 b/coin/provisioning/common/windows/install-strawberry-perl.ps1 index 5783fdbc..94cef218 100644 --- a/coin/provisioning/common/windows/install-strawberry-perl.ps1 +++ b/coin/provisioning/common/windows/install-strawberry-perl.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -50,7 +14,7 @@ if (Is64BitWinHost) { $sha1 = "6ad89c6358a174c048f113bfd274d2d0378d60aa" } $installer_name = "strawberry-perl-" + $version + $arch + ".msi" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\" + $installer_name +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\" + $installer_name $url_official = "http://strawberryperl.com/download/" + $version + "/" + $installer_name $strawberryPackage = "C:\Windows\Temp\" + $installer_name diff --git a/coin/provisioning/common/windows/install-vcpkg-ports-android.ps1 b/coin/provisioning/common/windows/install-vcpkg-ports-android.ps1 new file mode 100644 index 00000000..646f36cd --- /dev/null +++ b/coin/provisioning/common/windows/install-vcpkg-ports-android.ps1 @@ -0,0 +1,23 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +. "$PSScriptRoot\helpers.ps1" + +Write-Host "Installing vcpkg android ports" +$vcpkgExe = "$env:VCPKG_ROOT\vcpkg.exe" +$vcpkgRoot = "$env:VCPKG_ROOT" + +Set-Location -Path "$PSScriptRoot\vcpkg" +Copy-Item "$PSScriptRoot\..\shared\vcpkg-configuration.json" -Destination "$PSScriptRoot\vcpkg" + +Run-Executable "$vcpkgExe" "install --triplet armeabi-v7a-android-qt --x-install-root armeabi-v7a-android-qt-tmp --debug" + +New-Item -Path "$vcpkgRoot" -Name "installed" -ItemType "directory" -Force +Copy-Item -Path "armeabi-v7a-android-qt-tmp\*" -Destination "$vcpkgRoot\installed" -Recurse -Force + +$versions = jq.exe -r '.overrides[] | \"vcpkg \(.name) for android = \(.version)\"' vcpkg.json +$versions = $versions.Replace("vcpkg", "`nvcpkg") +Write-Output "$versions" >> ~/versions.txt + +Remove-Item -Path "armeabi-v7a-android-qt-tmp" -Recurse -Force + +Set-Location "$PSScriptRoot" diff --git a/coin/provisioning/common/windows/install-vcpkg-ports.ps1 b/coin/provisioning/common/windows/install-vcpkg-ports.ps1 new file mode 100644 index 00000000..55eae4be --- /dev/null +++ b/coin/provisioning/common/windows/install-vcpkg-ports.ps1 @@ -0,0 +1,26 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +. "$PSScriptRoot\helpers.ps1" + +Write-Host "Installing vcpkg ports" +$vcpkgExe = "$env:VCPKG_ROOT\vcpkg.exe" +$vcpkgRoot = "$env:VCPKG_ROOT" + +Set-Location -Path "$PSScriptRoot\vcpkg" +Copy-Item "$PSScriptRoot\..\shared\vcpkg-configuration.json" -Destination "$PSScriptRoot\vcpkg" + +Run-Executable "$vcpkgExe" "install --triplet x64-windows-qt --x-install-root x64-windows-qt-tmp --debug" +Run-Executable "$vcpkgExe" "install --triplet arm64-windows-qt --x-install-root arm64-windows-qt-tmp --debug" + +New-Item -Path "$vcpkgRoot" -Name "installed" -ItemType "directory" -Force +Copy-Item -Path "x64-windows-qt-tmp\*" -Destination "$vcpkgRoot\installed" -Recurse -Force +Copy-Item -Path "arm64-windows-qt-tmp\*" -Destination "$vcpkgRoot\installed" -Recurse -Force + +$versions = jq.exe -r '.overrides[] | \"vcpkg \(.name) = \(.version)\"' vcpkg.json +$versions = $versions.Replace("vcpkg", "`nvcpkg") +Write-Output "$versions" >> ~/versions.txt + +Remove-Item -Path "x64-windows-qt-tmp" -Recurse -Force +Remove-Item -Path "arm64-windows-qt-tmp" -Recurse -Force + +Set-Location "$PSScriptRoot" diff --git a/coin/provisioning/common/windows/install-vcpkg.ps1 b/coin/provisioning/common/windows/install-vcpkg.ps1 new file mode 100644 index 00000000..f5d1dad3 --- /dev/null +++ b/coin/provisioning/common/windows/install-vcpkg.ps1 @@ -0,0 +1,58 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only +. "$PSScriptRoot\helpers.ps1" + +# This script will install vcpkg + +Write-Host "Installing vcpkg" + +$n = Get-Content "$PSScriptRoot\..\shared\vcpkg_version.txt" +$n = $n.Split('=') +$vcpkgVersion = $n[1] +$nonDottedVersion = $vcpkgVersion.Replace(".", "") + +# Download vcpkg +$vcpkgRoot = "C:\Utils\vcpkg-$vcpkgVersion" +$vcpkgRepo = Get-Content -Path "$PSScriptRoot\..\shared\vcpkg_registry_mirror.txt" | Select-Object -First 1 + +Write-Host "Cloning the vcpkg repo" +git.exe clone "$vcpkgRepo" "$vcpkgRoot" +git.exe -C "$vcpkgRoot" checkout "tags/$vcpkgVersion" + +# Download vcpkg-tool, i.e., vcpkg.exe + +$n = Get-Content "$PSScriptRoot\..\shared\vcpkg_tool_release_tag.txt" +$n = $n.Split('=') +$vcpkgExeReleaseTag = $n[1] +$nonDottedReleaseTag = $vcpkgExeReleaseTag.replace('-', "") + +$vcpkgExeOfficialUrl = "https://github.com/microsoft/vcpkg-tool/releases/download/$vcpkgExeReleaseTag/vcpkg.exe" +$vcpkgExeCacheUrl = "\\ci-files01-hki.ci.qt.io\provisioning\vcpkg\vcpkg-$nonDottedReleaseTag-windows-x64.exe" +$vcpkgExeSHA1 = "F74DCDE7F6F5082EF6DC31FED486FAD69BE8D442" +$vcpkgExe = "C:\Windows\Temp\vcpkg.exe" + +Download "$vcpkgExeOfficialUrl" "$vcpkgExeCacheUrl" "$vcpkgExe" +Verify-Checksum $vcpkgExe $vcpkgExeSHA1 +Move-Item "$vcpkgExe" -Destination "$vcpkgRoot" -Force + +if(![System.IO.File]::Exists("$vcpkgRoot\vcpkg.exe")){ + Write-Host "Can't find $vcpkgRoot\vcpkg.exe." + exit 1 +} + +# Disable telemetry +Set-Content -Value "" -Path "$vcpkgRoot\vcpkg.disable-metrics" -Force + +# Setting VCPKG_ROOT using Set-EnvironmentVariable makes the variable only +# available during build time. In order to make it available during the +# provisioning, we need to directly set it via $env:VCPKG_ROOT as well. +Set-EnvironmentVariable "VCPKG_ROOT" "$vcpkgRoot" +$env:VCPKG_ROOT = "$vcpkgRoot" + +# Set a source for vcpkg Binary and Asset Cache +# The `coin/provisioning/common/windows/mount-vcpkg-cache-drive.ps1` script is +# mounting the SMB share located in `vcpkg-server.ci.qt.io/vcpkg` to drive V:\ +$env:VCPKG_BINARY_SOURCES = "files,V:/binaries,readwrite" +$env:X_VCPKG_ASSET_SOURCES = "x-azurl,file:///V:/assets,,readwrite" + +Write-Output "vcpkg = $vcpkgVersion" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/install_telegraf.ps1 b/coin/provisioning/common/windows/install_telegraf.ps1 index 16f76cb9..3090a25e 100644 --- a/coin/provisioning/common/windows/install_telegraf.ps1 +++ b/coin/provisioning/common/windows/install_telegraf.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\..\..\common\windows\helpers.ps1" @@ -43,28 +7,53 @@ # Install a specific version of Telegraf # https://github.com/influxdata/telegraf/releases -$version = "1.12.6" - -if (Is64BitWinHost) { - $arch = "amd64" - $sha256 = "5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a" -} else { - $arch = "i386" - $sha256 = "5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271" +$version = "1.12.6" # TODO: ARM is not supported in this version +$has_telegraf_ver = $false + +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + $arch = "arm64" + $sha256 = "5925642aad9a35886b172050203287cf33078313f543021781885ed94d9cbcff" + $version = "1.29.4" # TODO: ARM needs this, update this to all + $has_telegraf_ver = $true + Break + } + x64 { + $arch = "amd64" + $sha256 = "5d025d85070e8c180c443580afa8a27421a7bbcf14b5044894e9f3298d0ce97a" + Break + } + x86 { + $arch = "i386" + $sha256 = "5178a0bdaab448c2ef965b0e36f835849cea731ccd87c4a4527f0f05fbbdf271" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } } -$filename = "telegraf-" + $version + "_windows_" + $arch + ".zip" +$telegraf_ver = "telegraf-" + $version +$filename_zip = $telegraf_ver + "_windows_" + $arch + ".zip" -$url_cache = "http://ci-files01-hki.intra.qt.io/input/telegraf/" + $filename -$url_official = "https://dl.influxdata.com/telegraf/releases/" + $filename -$tempfile = "C:\Windows\Temp\" + $filename +$url_cache = "http://ci-files01-hki.ci.qt.io/input/telegraf/" + $filename_zip +$url_official = "https://dl.influxdata.com/telegraf/releases/" + $filename_zip +$tempfile = "C:\Windows\Temp\" + $filename_zip Write-Host "Fetching Telegraf $version..." Download $url_official $url_cache $tempfile Verify-Checksum $tempfile $sha256 sha256 Write-Host "Installing telegraf.exe under C:\Utils\telegraf" -Extract-7Zip $tempfile C:\Utils "telegraf" + +if ($has_telegraf_ver -eq $true) { + Extract-7Zip $tempfile C:\Utils + Rename-Item "C:\Utils\$telegraf_ver" "C:\Utils\telegraf" +} else { + Extract-7Zip $tempfile C:\Utils "telegraf" +} + Copy-Item "$PSScriptRoot\..\..\common\windows\telegraf-coin.conf" C:\telegraf-coin.conf . "$PSScriptRoot\telegraf_password.ps1" diff --git a/coin/provisioning/common/windows/jom.ps1 b/coin/provisioning/common/windows/jom.ps1 index 7cb60229..77216b85 100644 --- a/coin/provisioning/common/windows/jom.ps1 +++ b/coin/provisioning/common/windows/jom.ps1 @@ -3,7 +3,7 @@ $version = "1_1_2" $zip = Get-DownloadLocation "jom_$version.zip" -Download http://download.qt.io/official_releases/jom/jom_$version.zip http://ci-files01-hki.intra.qt.io/input/windows/jom_$version.zip $zip +Download http://download.qt.io/official_releases/jom/jom_$version.zip http://ci-files01-hki.ci.qt.io/input/windows/jom_$version.zip $zip Verify-Checksum $zip "80EE5678E714DE99DDAF5F7593AB04DB1C7928E4" Extract-7Zip $zip C:\Utils\Jom diff --git a/coin/provisioning/common/windows/libclang-v100-dyn.ps1 b/coin/provisioning/common/windows/libclang-v100-dyn.ps1 index 2b0caa18..3bb19670 100644 --- a/coin/provisioning/common/windows/libclang-v100-dyn.ps1 +++ b/coin/provisioning/common/windows/libclang-v100-dyn.ps1 @@ -26,7 +26,7 @@ function install() { $zip = "c:\users\qt\downloads\libclang-dyn.7z" $script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" - $script:CachedUrl = "http://ci-files01-hki.intra.qt.io/input/libclang/dynamic/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" + $script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/dynamic/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" Download $OfficialUrl $CachedUrl $zip Verify-Checksum $zip $sha1 diff --git a/coin/provisioning/common/windows/libclang.ps1 b/coin/provisioning/common/windows/libclang.ps1 index ba7a7d80..57f42057 100644 --- a/coin/provisioning/common/windows/libclang.ps1 +++ b/coin/provisioning/common/windows/libclang.ps1 @@ -5,7 +5,7 @@ param( ) . "$PSScriptRoot\helpers.ps1" -$libclang_version="12.0" +$libclang_version="15.0.0" Write-Output "libClang = $libclang_version" >> ~/versions.txt # PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/). @@ -14,7 +14,6 @@ Write-Output "libClang = $libclang_version" >> ~/versions.txt # Starting from Qt 5.11 QDoc requires Clang to parse C++ $baseDestination = "C:\Utils\libclang-" + $libclang_version + "-" + $toolchain -$libclang_version = $libclang_version -replace '["."]' function install() { @@ -26,7 +25,7 @@ function install() { $zip = "c:\users\qt\downloads\libclang.7z" $script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" - $script:CachedUrl = "http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" + $script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_$libclang_version-based-windows-$toolchain`_$archVer.7z" Download $OfficialUrl $CachedUrl $zip Verify-Checksum $zip $sha1 @@ -39,7 +38,7 @@ $toolchainSuffix = "" if ( $toolchain -eq "vs2019" ) { if ( $archVer -eq 64 ) { - $sha1 = "44fabbd45b4b7e659c49347c156bae09d7aaffdc" + $sha1 = "e7c2d27f0e99d63e49225cb1be18c76a1e2a124b" } else { $sha1 = "" @@ -49,7 +48,7 @@ if ( $toolchain -eq "vs2019" ) { if ( $toolchain -eq "mingw" ) { if ( $archVer -eq 64 ) { - $sha1 = "9333170111aa90af6e1db824cd964dba227a4710" + $sha1 = "6c9300051533d5648ffe3e8ae1eb00decae8e6bf" } else { $sha1 = "" @@ -63,9 +62,3 @@ if ( $setDefault ) { Set-EnvironmentVariable "LLVM_INSTALL_DIR" ($baseDestination + "-$archVer") } Set-EnvironmentVariable ("LLVM_INSTALL_DIR_${toolchainSuffix}") ($baseDestination + "-$archVer") - -if ( $libclang_version -eq "120" ) { - # This is a hacked static build of libclang which requires special - # handling on the qdoc side. - Set-EnvironmentVariable "QDOC_USE_STATIC_LIBCLANG" "1" -} diff --git a/coin/provisioning/common/windows/libusb.ps1 b/coin/provisioning/common/windows/libusb.ps1 index 8b0342e1..d654d4bf 100644 --- a/coin/provisioning/common/windows/libusb.ps1 +++ b/coin/provisioning/common/windows/libusb.ps1 @@ -1,56 +1,20 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # libusb-1.0 is needed by qt-apps/qdb . "$PSScriptRoot\helpers.ps1" -$archive = Get-DownloadLocation "libusb-1.0.24.7z" +$archive = Get-DownloadLocation "libusb-1.0.26.7z" $libusb_location = "C:\Utils\libusb-1.0" -Copy-Item \\ci-files01-hki.intra.qt.io\provisioning\libusb-1.0\libusb-1.0.24.7z $archive -Verify-Checksum $archive "1ACAAD5C8F5190A10958867101A5FEEF1FFA1CD8" +Copy-Item \\ci-files01-hki.ci.qt.io\provisioning\libusb-1.0\libusb-1.0.26.7z $archive +Verify-Checksum $archive "89b50c7d6085350ed809a12b19131ff4f608b2f2" Extract-7Zip $archive $libusb_location # Tell qt-apps/qdb build system where to find libusb Set-EnvironmentVariable "LIBUSB_PATH" $libusb_location -Write-Output "libusb = libusb-1.0.24" >> ~/versions.txt +Write-Output "libusb = libusb-1.0.26" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/longpath.ps1 b/coin/provisioning/common/windows/longpath.ps1 new file mode 100644 index 00000000..31666ef4 --- /dev/null +++ b/coin/provisioning/common/windows/longpath.ps1 @@ -0,0 +1,2 @@ +New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force + diff --git a/coin/provisioning/common/windows/mesa_llvmpipe.ps1 b/coin/provisioning/common/windows/mesa_llvmpipe.ps1 index 283a92b2..cae1dab8 100644 --- a/coin/provisioning/common/windows/mesa_llvmpipe.ps1 +++ b/coin/provisioning/common/windows/mesa_llvmpipe.ps1 @@ -1,51 +1,15 @@ -############################################################################# -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" $version = "11_2_2" $package = "C:\Windows\temp\opengl32sw.7z" -$mesaOpenglSha1_64 = "0ed35efbc8112282be5d0c87c37fde2d15e81998" -$mesaOpenglUrl_64_cache = "http://ci-files01-hki.intra.qt.io/input/windows/opengl32sw-64-mesa_$version-signed.7z" -$mesaOpenglUrl_64_alt = "http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64-mesa_$version-signed.7z" -$mesaOpenglSha1_32 = "96bd6ca0d7fd249fb61531dca888965ffd20f53c" -$mesaOpenglUrl_32_cache = "http://ci-files01-hki.intra.qt.io/input/windows/opengl32sw-32-mesa_$version-signed.7z" -$mesaOpenglUrl_32_alt = "http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-32-mesa_$version-signed.7z" +$mesaOpenglSha1_64 = "58f948746696b17a594b2f542e87b0e831b28dc3" +$mesaOpenglUrl_64_cache = "http://ci-files01-hki.ci.qt.io/input/windows/opengl32sw-64-mesa_$version-signed_sha256.7z" +$mesaOpenglUrl_64_alt = "http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-64-mesa_$version-signed_sha256.7z" +$mesaOpenglSha1_32 = "974f468acaa0018d46607e2100f1214fecd35bd4" +$mesaOpenglUrl_32_cache = "http://ci-files01-hki.ci.qt.io/input/windows/opengl32sw-32-mesa_$version-signed_sha256.7z" +$mesaOpenglUrl_32_alt = "http://download.qt.io/development_releases/prebuilt/llvmpipe/windows/opengl32sw-32-mesa_$version-signed_sha256.7z" function Extract-Mesa { diff --git a/coin/provisioning/common/windows/mimersql.ps1 b/coin/provisioning/common/windows/mimersql.ps1 new file mode 100644 index 00000000..b5e041d0 --- /dev/null +++ b/coin/provisioning/common/windows/mimersql.ps1 @@ -0,0 +1,31 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +. "$PSScriptRoot\helpers.ps1" + +# This script will install Mimer SQL + + +$version = "1107b" + +$url_cache = "https://ci-files01-hki.ci.qt.io/input/windows/MimerSQLInstaller_x64_" + $version + ".exe" +$url_official = "https://install.mimer.com/qt/windows_" + $version + "/MimerSQLInstaller_x64.exe" +$mimersqlPackage = "C:\Windows\Temp\MimerSQLInstaller_x64_" + $version + ".exe" +$sha1 = "A709A06EA1D897B13FA10DBDD4BE3BD0FEB04B28" +$mimer_dir="c:\MimerSQL" + +Download $url_official $url_cache $mimersqlPackage +Verify-Checksum $mimersqlPackage $sha1 +Run-Executable "$mimersqlPackage" "/install InstallFolder=$mimer_dir /passive" + +Set-EnvironmentVariable "MIMERSQL_DEV_ROOT" "$mimer_dir\dev" + +Write-Host "Cleaning $mimersqlPackage.." +#Remove "$mimersqlPackage" +Remove "$mimer_dir\dev\include\odbcinst.h" +Remove "$mimer_dir\dev\include\Sql.h" +Remove "$mimer_dir\dev\include\sqlext.h" +Remove "$mimer_dir\dev\include\sqltypes.h" +Remove "$mimer_dir\dev\include\sqlucode.h" + +Write-Output "Mimer SQL = $version" >> ~\versions.txt diff --git a/coin/provisioning/common/windows/mount-vcpkg-cache-drive.ps1 b/coin/provisioning/common/windows/mount-vcpkg-cache-drive.ps1 new file mode 100644 index 00000000..25a7536c --- /dev/null +++ b/coin/provisioning/common/windows/mount-vcpkg-cache-drive.ps1 @@ -0,0 +1,20 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +$credentialsFile = "$env:USERPROFILE\vcpkg_samba_credentials" + +# Extract username and password from the credentials +$username = "vcpkg" +$securePassword = Get-Content -Path "$credentialsFile" -TotalCount 1 | ConvertTo-SecureString -AsPlainText -Force + +# Create a PSCredential object +$credential = New-Object PSCredential -ArgumentList $username, $securePassword + +# Mount the SMB share +# Check if the mount was successful +if (New-PSDrive -Persist -Scope Global -Name V -PSProvider FileSystem -Root \\vcpkg-server.ci.qt.io\vcpkg -Credential $credential) +{ + Write-Host "SMB share mounted successfully!" +} else { + Write-Host "Failed to mount SMB share." +} diff --git a/coin/provisioning/common/windows/mqtt_broker.ps1 b/coin/provisioning/common/windows/mqtt_broker.ps1 index 1853eeb9..4161ddea 100644 --- a/coin/provisioning/common/windows/mqtt_broker.ps1 +++ b/coin/provisioning/common/windows/mqtt_broker.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -44,7 +8,7 @@ $zip = Get-DownloadLocation "pahotest.zip" $commitSHA = "20bad2475c27a6e1d24a56d90a9fceb40963261e" $sha1 = "a0ac88715c2aebb9573a113dc13925a90da19233" -$internalUrl = "http://ci-files01-hki.intra.qt.io/input/mqtt_broker/paho.mqtt.testing-$commitSHA.zip" +$internalUrl = "http://ci-files01-hki.ci.qt.io/input/mqtt_broker/paho.mqtt.testing-$commitSHA.zip" $externalUrl = "https://github.com/eclipse/paho.mqtt.testing/archive/$commitSHA.zip" Download $externalUrl $internalUrl $zip diff --git a/coin/provisioning/common/windows/msvc-2013-update5.ps1 b/coin/provisioning/common/windows/msvc-2013-update5.ps1 index 52aba390..c75ca030 100644 --- a/coin/provisioning/common/windows/msvc-2013-update5.ps1 +++ b/coin/provisioning/common/windows/msvc-2013-update5.ps1 @@ -1,48 +1,12 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # Install Visual Studio 2013 update 5 $version = "2013 Update 5 (KB2829760)" $package = "C:\Windows\Temp\vs12-kb2829760.exe" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\VS2013.5.exe" +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\VS2013.5.exe" Write-Host "Fetching patch for Visual Studio $version..." Copy-Item $url_cache $package diff --git a/coin/provisioning/common/windows/msys.ps1 b/coin/provisioning/common/windows/msys.ps1 index 58aa060b..a7414788 100644 --- a/coin/provisioning/common/windows/msys.ps1 +++ b/coin/provisioning/common/windows/msys.ps1 @@ -3,7 +3,7 @@ # This script will install msys which is needed for configuring openssl for Android $version = "1.0.11" -$url = "\\ci-files01-hki.intra.qt.io\provisioning\windows\msys-$version.7z" +$url = "\\ci-files01-hki.ci.qt.io\provisioning\windows\msys-$version.7z" $zip = Get-DownloadLocation ("msys-$version.7z") $sha1 = "22cd76f1263db8c72727a9537228c481ff33c285" diff --git a/coin/provisioning/common/windows/mysql.ps1 b/coin/provisioning/common/windows/mysql.ps1 index 18a9ce88..10a8b633 100644 --- a/coin/provisioning/common/windows/mysql.ps1 +++ b/coin/provisioning/common/windows/mysql.ps1 @@ -1,89 +1,37 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script installs MySQL $version. # Both x86 and x64 versions needed when x86 integrations are done on x64 machine -$version = "5.7.25" -$baseNameX64 = "mysql-$version-winx64" -$packagex64 = "C:\Windows\temp\$baseNameX64.zip" -$baseNameX86 = "mysql-$version-win32" -$packagex86 = "C:\Windows\temp\$baseNameX86.zip" -$installFolder = "C:\Utils\my_sql" - -function DownloadAndInstall -{ - Param ( - [string]$internalUrl, - [string]$package, - [string]$installPath +$version = "8.0.36" +$installFolder = "C:\Utils" +$officialUrl = "https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-${version}-winx64.zip" +$cacheURl = "http://ci-files01-hki.ci.qt.io/input/windows/mysql-${version}-winx64.zip" +$sha = "e5003569386006ccde9000c98e28e28073c1433d" +$zip = Get-DownloadLocation ("mysql-" + $version + "-winx64.zip") + +function Install { + param( + [string]$officialUrl, + [string]$cacheUrl, + [string]$zip, + [string]$sha ) - Write-Host "Fetching from URL ..." - Copy-Item $internalUrl $package - - $zipDir = [io.path]::GetFileNameWithoutExtension($package) - Extract-7Zip $package $installPath "$zipDir\lib $zipDir\bin $zipDir\share $zipDir\include" - - Remove "$package" -} - -if (Is64BitWinHost) { - # Install x64 bit version - $architecture = "x64" - $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\mysql-$version-winx64.zip" - - DownloadAndInstall $internalUrl $packagex64 $installFolder - - Set-EnvironmentVariable "MYSQL_INCLUDE_x64" "$installFolder\$baseNameX64\include" - Set-EnvironmentVariable "MYSQL_LIB_x64" "$installFolder\$baseNameX64\lib" + Download $officialUrl $cacheURl $zip + Verify-Checksum $zip $sha + Extract-7Zip $zip $installFolder + Remove $zip } -# Install x86 bit version -$architecture = "x86" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\mysql-$version-win32.zip" -DownloadAndInstall $internalUrl $packagex86 $installFolder +Install $officialUrl $cacheURl $zip $sha -Set-EnvironmentVariable "MYSQL_INCLUDE_x86" "$installFolder\$baseNameX86\include" -Set-EnvironmentVariable "MYSQL_LIB_x86" "$installFolder\$baseNameX86\lib" +# Can't set MySQL_ROOT & MySQL_LIBRARY_DIR variables. Those will enable mysql in every windows target. +# Let's use ENV_MySQL_* and use it in platform_configs +Set-EnvironmentVariable "ENV_MySQL_ROOT" "${installFolder}\mysql-${version}-winx64" +Set-EnvironmentVariable "ENV_MySQL_LIBRARY_DIR" "${installFolder}\mysql-${version}-winx64\lib" -# Store version information to ~/versions.txt, which is used to print version information to provision log. Write-Output "MySQL = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/ninja.ps1 b/coin/provisioning/common/windows/ninja.ps1 index e1a29412..956e7835 100644 --- a/coin/provisioning/common/windows/ninja.ps1 +++ b/coin/provisioning/common/windows/ninja.ps1 @@ -1,13 +1,63 @@ . "$PSScriptRoot\helpers.ps1" -$zip = Get-DownloadLocation "ninja-1.10.2-win-x86.zip" - -Download http://master.qt.io/development_releases/prebuilt/ninja/v1.10.2/ninja-win-x86.zip \\ci-files01-hki.intra.qt.io\provisioning\ninja\ninja-1.10.2-win-really-x86.zip $zip -Verify-Checksum $zip "1a22ee9269df8ed69c4600d7ee4ccd8841bb99ca" +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + $arch = "arm64" + $version = "1.12.0" + $longPathFixed = $true # fixed https://github.com/ninja-build/ninja/pull/2225 in 1.12.0 + $zip = Get-DownloadLocation "ninja-$version-win-$arch.zip" + $internalUrl = "https://ci-files01-hki.ci.qt.io/input/ninja/v$version/ninja-win$arch.zip" + $externalUrl = "https://github.com/ninja-build/ninja/releases/download/v$version/ninja-win$arch.zip" + $sha1 = "51bf1bac149ae1e3d1572fa9fa87d6431dbddc8b" + Break + } + x64 { + $arch = "amd64" + $version = "1.10.2" + $longPathFixed = $false + $zip = Get-DownloadLocation "ninja-$version-win-x86.zip" + # TODO: Fix this QTQAINFRA-6296 + $internalUrl = "http://master.qt.io/development_releases/prebuilt/ninja/v$version/ninja-win-x86.zip" + $externalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\ninja\ninja-$version-win-really-x86.zip" + $sha1 = "1a22ee9269df8ed69c4600d7ee4ccd8841bb99ca" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } +} +Download $internalUrl $externalUrl $zip +Verify-Checksum $zip $sha1 Extract-7Zip $zip C:\Utils\Ninja Remove "$zip" Add-Path "C:\Utils\Ninja" -Write-Output "Ninja = 1.10.2" >> ~/versions.txt +Write-Output "Ninja ($arch) = $version" >> ~/versions.txt + +if ( -Not $longPathFixed ) { + +$manifest = @" +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"> + <application> + <windowsSettings> + <activeCodePage xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">UTF-8</activeCodePage> + <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware> + </windowsSettings> + </application> +</assembly> +"@ + + +$vs2019 = [System.IO.File]::Exists("C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat") + +if($vs2019) { +Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe" +} else { +Invoke-MtCommand "C:\Program Files (x86)\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsall.bat" amd64 $manifest "C:\Utils\Ninja\ninja.exe" +} + +} diff --git a/coin/provisioning/common/windows/nodejs.ps1 b/coin/provisioning/common/windows/nodejs.ps1 index f1b2ff61..3dc6ffe5 100644 --- a/coin/provisioning/common/windows/nodejs.ps1 +++ b/coin/provisioning/common/windows/nodejs.ps1 @@ -1,65 +1,44 @@ -############################################################################# -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install Node.js # Needed by QtWebengine -$version = "12.18.0" -if (Is64BitWinHost) { - $arch = "x64" - $sha1 = "457b1527d249ee471a9445953a906cb10c75378d" -} else { - $arch = "x86" - $sha1 = "58801900f5bddca9c00feed6b84fed729426fc92" +$version = "20.7.0" +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + $arch = "arm64" + $sha256 = "ab4b990c2c1d4a55d565813e7a2f71669dc4d1005faa47185d30bde4416975ab" + $version = "20.12.2" # TODO: ARM starts with newer, LTS + Break + } + x64 { + $arch = "x64" + $sha256 = "b3e5cbf8e247c75f9ddd235d49cfe40f25dde65bdd0eec4cefbca2805d80376b" + Break + } + x86 { + $arch = "x86" + $sha256 = "d6a3c63a5ae71374c144a33c418ab96be497b08df0e9f51861a78127db03aeb5" + Break + } + default { + throw "Unknown architecture $cpu_arch" + } } -$package = "C:\Windows\temp\nodejs-$version.zip" +$package = "C:\Windows\temp\nodejs-$version.7z" $targetFolder = "C:\Utils" $installFolder = "C:\Utils\node-v$version-win-$arch" -$externalUrl = "https://nodejs.org/dist/v$version/node-v$version-win-$arch.zip" -$internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/node-v$version-win-$arch.zip" +$externalUrl = "https://nodejs.org/dist/v$version/node-v$version-win-$arch.7z" +$internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/node-v$version-win-$arch.7z" Write-Host "Installing Node.js" Download $externalUrl $internalUrl $package -Verify-Checksum $package $sha1 +Verify-Checksum $package $sha256 "sha256" Extract-7Zip $package $targetFolder Add-Path $installFolder Remove $package diff --git a/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 b/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 index ee6b8c0d..4542b34c 100644 --- a/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 +++ b/coin/provisioning/common/windows/opcua_unifiedautomation.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -50,7 +14,7 @@ function DownloadAndInstallUA $zip = Get-DownloadLocation "uasdkcpp.zip" Write-Host "UACPPSDK: Downloading Unified Automation CPP installer..." - $internalUrl = "http://ci-files01-hki.intra.qt.io/input/opcua_uacpp/$InstallerFileName.zip" + $internalUrl = "http://ci-files01-hki.ci.qt.io/input/opcua_uacpp/$InstallerFileName.zip" # No public download link exists $externalUrl = $internalUrl diff --git a/coin/provisioning/common/windows/openssl-arm64.ps1 b/coin/provisioning/common/windows/openssl-arm64.ps1 index 3af34428..16627039 100644 --- a/coin/provisioning/common/windows/openssl-arm64.ps1 +++ b/coin/provisioning/common/windows/openssl-arm64.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2022 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -46,7 +10,10 @@ # From Visual studio 'C++ Universal Windows Platform support for v142 build tools (ARM64)' and 'Windows Universal C Runtime' were installed # cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build # call vcvarsamd64_arm64 -# +# curl -o C:\Utils\openssl-3.0.7.zip http://ci-files01-hki.ci.qt.io/input/openssl/openssl-3.0.7.zip +# cd C:\Utils +# C:\Utils\sevenzip\7z.exe x C:\Utils\openssl-3.0.7.zip +# cd C:\Utils\openssl-3.0.7 # perl Configure no-asm VC-WIN64-ARM --debug --prefix=C:\openssl_arm64\ --openssldir=C:\openssl_arm64\ # nmake # nmake install @@ -56,9 +23,9 @@ # nmake install ################################################################################################################################################# -$version = "1_1_1_m" -$url = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\openssl-$version-arm64.zip" -$sha1 = "52963bba9b542eb885f19641f5cd78870246ea02" +$version = "3_0_7" +$url = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\openssl-$version-arm64.zip" +$sha1 = "19be15069d981b4a96f5715f039df7aaa7456d52" $installFolder = "C:\openssl_arm64" $zip_package = "C:\Windows\Temp\$version.zip" @@ -68,10 +35,29 @@ Verify-Checksum $zip_package $sha1 Extract-7Zip $zip_package C:\ Remove $zip_package -Set-EnvironmentVariable "OPENSSL_ROOT_DIR_x64_arm64" "$installFolder" -Set-EnvironmentVariable "OPENSSL_CONF_x64_arm64" "$installFolder\bin\openssl.cfg" -Set-EnvironmentVariable "OPENSSL_INCLUDE_x64_arm64" "$installFolder\include" -Set-EnvironmentVariable "OPENSSL_LIB_x64_arm64" "$installFolder\lib" +$cpu_arch = Get-CpuArchitecture +switch ($cpu_arch) { + arm64 { + # For native arm64 + Set-EnvironmentVariable "OPENSSL_ROOT_DIR_arm64" "$installFolder" + Set-EnvironmentVariable "OPENSSL_CONF_arm64" "$installFolder\bin\openssl.cfg" + Set-EnvironmentVariable "OPENSSL_INCLUDE_arm64" "$installFolder\include" + Set-EnvironmentVariable "OPENSSL_LIB_arm64" "$installFolder\lib" + Break + } + x64 { + # For cross-compiling x64_arm64 + Set-EnvironmentVariable "OPENSSL_ROOT_DIR_x64_arm64" "$installFolder" + Set-EnvironmentVariable "OPENSSL_CONF_x64_arm64" "$installFolder\bin\openssl.cfg" + Set-EnvironmentVariable "OPENSSL_INCLUDE_x64_arm64" "$installFolder\include" + Set-EnvironmentVariable "OPENSSL_LIB_x64_arm64" "$installFolder\lib" + } + default { + throw "Unknown architecture $cpu_arch" + } +} + +Prepend-Path "$installFolder\bin" # Store version information to ~/versions.txt, which is used to print version information to provision log. Write-Output "OpenSSL ARM= $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/openssl.ps1 b/coin/provisioning/common/windows/openssl.ps1 index 526c59f5..8f59f9d2 100644 --- a/coin/provisioning/common/windows/openssl.ps1 +++ b/coin/provisioning/common/windows/openssl.ps1 @@ -1,48 +1,12 @@ -############################################################################# -## -## Copyright (C) 2022 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script installs OpenSSL $version. # Both x86 and x64 versions needed when x86 integrations are done on x64 machine -$version = "1_1_1m" +$version = "3_0_7" $packagex64 = "C:\Windows\Temp\Win64OpenSSL-$version.exe" $packagex86 = "C:\Windows\Temp\Win32OpenSSL-$version.exe" @@ -52,8 +16,8 @@ if (Is64BitWinHost) { $architecture = "x64" $installFolder = "C:\openssl" $externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe" - $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" - $sha1 = "16d83bd6d36be7b3ea85f822135352fa8f8d8134" + $internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe" + $sha1 = "2fb73f233bc565939312782b8157bebc26a5e17b" Write-Host "Fetching from URL ..." Download $externalUrl $internalUrl $packagex64 @@ -67,6 +31,7 @@ if (Is64BitWinHost) { Set-EnvironmentVariable "OPENSSL_CONF_x64" "$installFolder\bin\openssl.cfg" Set-EnvironmentVariable "OPENSSL_INCLUDE_x64" "$installFolder\include" Set-EnvironmentVariable "OPENSSL_LIB_x64" "$installFolder\lib" + Prepend-Path "$installFolder\bin" } # Install x86 bit version @@ -79,8 +44,8 @@ if (Is64BitWinHost) { } $externalUrl = "https://slproweb.com/download/Win32OpenSSL-$version.exe" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe" -$sha1 = "1d7146e56b201404ce67f1e636eab360211c175a" +$internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe" +$sha1 = "ddead693fa279ad6b1baf123b3af51a9ef289dc1" Write-Host "Fetching from URL ..." Download $externalUrl $internalUrl $packagex86 diff --git a/coin/provisioning/common/windows/postgresql.ps1 b/coin/provisioning/common/windows/postgresql.ps1 index 11fea057..3bb99d47 100644 --- a/coin/provisioning/common/windows/postgresql.ps1 +++ b/coin/provisioning/common/windows/postgresql.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2020 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -51,7 +15,7 @@ if (Is64BitWinHost) { $architecture = "x64" $installFolder = "C:\Utils\postgresql" $externalUrl = "http://get.enterprisedb.com/postgresql/postgresql-$version-windows-x64-binaries.zip" - $internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\postgresql-$version-windows-x64-binaries.zip" + $internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\postgresql-$version-windows-x64-binaries.zip" $sha1 = "5dd604f91973112209362b5abbbd1220c026f645" Write-Host "Fetching from URL ..." @@ -73,7 +37,7 @@ if (Is64BitWinHost) { # Install x86 bit version $architecture = "x86" $externalUrl = "http://get.enterprisedb.com/postgresql/postgresql-$version-windows-binaries.zip" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\postgresql-$version-windows-binaries.zip" +$internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\postgresql-$version-windows-binaries.zip" $sha1 = "46309190e60eead99c2d39c1dd18a91f2104d000" if (Is64BitWinHost) { $installFolder = "C:\Utils\postgresql$architecture" diff --git a/coin/provisioning/common/windows/protobuf.ps1 b/coin/provisioning/common/windows/protobuf.ps1 new file mode 100644 index 00000000..c0f7b257 --- /dev/null +++ b/coin/provisioning/common/windows/protobuf.ps1 @@ -0,0 +1,118 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only + +. "$PSScriptRoot\helpers.ps1" + +# Here we build protobuf libraries for MinGW and MSVC. +# Since it's a c++ library we need both msvc and mingw because they mangle symbols differently. +# For MSVC it builds with both debug and release configurations because of the visual c++ runtime. +# For MinGW we only need one, so we only build with release. +# The function below takes care of the common part of building - invoking cmake, +# calling ninja and installing it to a directory which we set an environment variable to. +# Because we have two compilers we also have two env. vars. and then each +# config in CI has the Protobuf_ROOT set to the appropriate one. +function build-install-protobuf { + param( + [string]$CC, + [string]$CXX, + [string]$BuildType, + [string]$Postfix, # Used for install-path and the environment variable name + [string[]]$ExtraArguments = @() + ) + $installPrefix = "C:\Utils\protobuf" + $installPath = "${installPrefix}-$Postfix" + Write-Output "Configuring and building protobuf for $CXX" + $oldCC = $env:CC + $oldCXX = $env:CXX + $env:CC = $CC + $env:CXX = $CXX + mkdir build + Push-Location build + cmake .. -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="$BuildType" -DCMAKE_INSTALL_PREFIX="$installPath" -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_WITH_ZLIB=OFF -DCMAKE_DEBUG_POSTFIX="d" -DCMAKE_RELWITHDEBINFO_POSTFIX="rd" $ExtraArguments + # ninja install:all # This is broken and does not work + foreach ($config in $BuildType.split(";")) { + ninja -f "build-$config.ninja" install + } + $env:CC = $oldCC + $env:CXX = $oldCXX + Set-EnvironmentVariable "Protobuf_ROOT_$Postfix" "$installPath" + # Set environment variable without "Machine" scope to be used by grpc.ps1 script + [Environment]::SetEnvironmentVariable("Protobuf_ROOT_$Postfix", "$installPath") + Pop-Location + Remove build +} + +function Find-Tool { + param( + [string]$Name, + [string]$Path + ) + # Is tool missing from path? + if (!(Get-Command $Name -ErrorAction SilentlyContinue)) { + # Is tool in the $Path directory? + if (Test-Path "$Path\$Name") { + $env:Path += ";$Path" + } + else { + throw "Cannot find $Name in path or $Name in $Name, something is configured wrong" + } + } +} +# This script is fairly late in provisioning so both of these should be present! +Find-Tool -Name "cmake.exe" -Path "C:\CMake\bin" +Find-Tool -Name "ninja.exe" -Path "C:\Utils\Ninja" + +$version = "21.9" +$sha1 = "3226a0e49d048759b702ae524da79387c59f05cc" +$internalUrl = "http://ci-files01-hki.ci.qt.io/input/protobuf/protobuf-all-$version.zip" +$externalUrl = "https://github.com/protocolbuffers/protobuf/releases/download/v$version/protobuf-all-$version.zip" + +$targetDir = "$env:HOMEDRIVE\$env:HOMEPATH\protobuf-$version" +$targetFile = "$targetDir.zip" +Download $externalUrl $internalUrl $targetFile +Verify-Checksum $targetFile $sha1 +Extract-7Zip $targetFile (Join-Path $env:HOMEDRIVE $env:HOMEPATH) +Remove $targetFile + + +# cd into the cmake directory where the CMakeLists.txt file is located +# then we build in a build\ subfolder there for simplicity's sake +Push-Location $targetDir + +### MinGW + +# Check if mingw is where we expect it to be and add it to path: +$mingwPath = [System.Environment]::GetEnvironmentVariable("MINGW_PATH", [System.EnvironmentVariableTarget]::Machine) + "\bin" +if (!(Test-Path $mingwPath)) { + throw "Cannot find mingw in $mingwPath, something is configured wrong" +} + +$oldPath = $env:Path +$env:Path = "$mingwPath;$env:Path" +build-install-protobuf -CC "gcc" -CXX "g++" -BuildType "Release;RelWithDebInfo;Debug" -Postfix "mingw" +$env:Path = $oldPath + +### LLVM MinGW + +$llvmMingwPath = "C:\llvm-mingw" +if (!(Test-Path $llvmMingwPath)) { + throw "Cannot find llvm-mingw in $llvmMingwPath, something is configured wrong" +} + +$oldPath = $env:Path +$env:Path = "$llvmMingwPath\bin;$env:Path" +build-install-protobuf -CC "clang" -CXX "clang++" -BuildType "Release;RelWithDebInfo;Debug" -Postfix "llvm_mingw" +$env:Path = $oldPath + +### MSVC + +EnterVSDevShell + +# We pass along an extra argument to stop protobuf linking with the static runtime +build-install-protobuf -CC "cl" -CXX "cl" -BuildType "Release;RelWithDebInfo;Debug" -Postfix "msvc" -ExtraArguments @("-Dprotobuf_MSVC_STATIC_RUNTIME=OFF") + +$env:Path = $oldPath +Pop-Location +Remove $targetDir + +Write-Output "Protobuf = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/python.ps1 b/coin/provisioning/common/windows/python.ps1 deleted file mode 100644 index f1c5fc6a..00000000 --- a/coin/provisioning/common/windows/python.ps1 +++ /dev/null @@ -1,119 +0,0 @@ -############################################################################# -## -## Copyright (C) 2020 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# - -# This script installs Python $version. -# Python is required for building Qt 5 from source. -param( - [Int32]$archVer=32, - [string]$targetDir="C:\Python27" -) -. "$PSScriptRoot\helpers.ps1" - -$version = "2.7.13" -if ( $archVer -eq 64 ) { - $arch = ".amd64" - $sha1 = "d9113142bae8829365c595735e1ad1f9f5e2894c" -} else { - $arch = "" - $sha1 = "7e3b54236dbdbea8fe2458db501176578a4d59c0" -} -$package = "C:\Windows\temp\python-$version.msi" -$externalUrl = "https://www.python.org/ftp/python/$version/python-$version" + $arch + ".msi" -$internalUrl = "\\ci-files01-hki.intra.qt.io\provisioning\windows\python-$version" + $arch + ".msi" - -Write-Host "Fetching from URL..." -Download $externalUrl $internalUrl $package -Verify-Checksum $package $sha1 - -# Python installation is flaky, but seems to pass with second run if error occurs. -$stop = $false -[int]$retry = "0" -do { - try { - # /levx = e:'All error messages' v:'Verbose' x:'Extra debugging info' - Run-Executable "msiexec" "/passive /i $package /levx C:\Windows\Temp\Python_log.log TARGETDIR=$targetDir ALLUSERS=1" - $stop = $true - } - catch { - Get-Content C:\Windows\Temp\Python_log.log -Tail 50 - if ($retry -gt 2) { - Write-Host "Python installation failed!" - throw - } - else { - Write-Host "Couldn't install python, retrying in 30 seconds" - Start-Sleep -s 30 - $retry = $retry + 1 - } - } -} -while ($stop -ne $true) - -# 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 -Write-Host "Changing allowZip64 value to 'True'..." -(Get-Content $targetDir\lib\zipfile.py) | ForEach-Object { $_ -replace "allowZip64=False", "allowZip64=True" } | Set-Content $targetDir\lib\zipfile.py -Remove "$package" - -# When installing 32 bit python to 64 bit host, we want to keep only default python in path -# For cross-compilation we export some helper env variable -if (($archVer -eq 32) -And (Is64BitWinHost)) { - Set-EnvironmentVariable "PYTHON2_32_PATH" "$targetDir" - Set-EnvironmentVariable "PIP2_32_PATH" "$targetDir\Scripts" -} else { - Add-Path "$targetDir;$targetDir\Scripts" -} - - -Run-Executable "$targetDir\python.exe" "-m ensurepip" - -Write-Host "Upgrade pip to the latest version available." -Run-Executable "$targetDir\python.exe" "-m pip install --upgrade pip" - -# Install python virtual env -if (IsProxyEnabled) { - $proxy = Get-Proxy - Write-Host "Using proxy ($proxy) with pip" - $pip_args = "--proxy=$proxy" -} -Run-Executable "$targetDir\Scripts\pip.exe" "$pip_args install virtualenv" - -# Install PyPDF2 for QSR documentation -Run-Executable "$targetDir\Scripts\pip.exe" "$pip_args install PyPDF2" - -Write-Output "Python-$archVer = $version" >> ~/versions.txt diff --git a/coin/provisioning/common/windows/python3.ps1 b/coin/provisioning/common/windows/python3.ps1 index c7481f2f..46f75d7c 100644 --- a/coin/provisioning/common/windows/python3.ps1 +++ b/coin/provisioning/common/windows/python3.ps1 @@ -1,42 +1,6 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Copyright (C) 2017 Pelagicore AG -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# Copyright (C) 2017 Pelagicore AG +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # This script installs Python $version. # Python3 is required for building some qt modules. @@ -52,13 +16,26 @@ param( $package = "C:\Windows\temp\python-$version.exe" # check bit version -if ( $archVer -eq 64 ) { - Write-Host "Installing 64 bit Python" - $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe" - $internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/python-$version-amd64.exe" -} else { - $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.exe" - $internalUrl = "http://ci-files01-hki.intra.qt.io/input/windows/python-$version.exe" +$cpu_arch = Get-CpuArchitecture +Write-Host "Installing $cpu_arch Python" +switch ($cpu_arch) { + arm64 { + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-arm64.exe" + $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version-arm64.exe" + Break + } + x64 { + if ($archVer -eq "64") { + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version-amd64.exe" + $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version-amd64.exe" + } else { + $externalUrl = "https://www.python.org/ftp/python/$version/python-$version.exe" + $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/python-$version.exe" + } + } + default { + throw "Unknown architecture $cpu_arch" + } } Write-Host "Fetching from URL..." @@ -96,19 +73,11 @@ if (IsProxyEnabled) { Write-Host "Upgrade pip3 to the latest version available." Run-Executable "$install_path\python.exe" "-m pip install --upgrade pip" +Write-Host "Configure pip" +Run-Executable "$install_path\python.exe" "-m pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache" +Run-Executable "$install_path\python.exe" "-m pip config --user set global.extra-index-url https://pypi.org/simple/" Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install virtualenv wheel html5lib" -# Install all needed packages in a special wheel cache directory -$python3_wheel_dir="$install_path\python3-wheels" -Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args wheel --wheel-dir $python3_wheel_dir -r $PSScriptRoot\..\shared\requirements.txt" - -Set-EnvironmentVariable "PYTHON3_WHEEL_CACHE-$version-$archVer" "$python3_wheel_dir" -# PYTHON3_WHEEL_CACHE is already in use so we should keep it pointing to 64 bit default -# wheel cache -if (($setDefault) -And ($archVer -eq 64)) { - Set-EnvironmentVariable "PYTHON3_WHEEL_CACHE" "$python3_wheel_dir" -} - # Install PyPDF2 for QSR documentation Run-Executable "$install_path\Scripts\pip3.exe" "$pip_args install PyPDF2" diff --git a/coin/provisioning/common/windows/qnx710.ps1 b/coin/provisioning/common/windows/qnx710.ps1 index e3df17a1..c720619c 100644 --- a/coin/provisioning/common/windows/qnx710.ps1 +++ b/coin/provisioning/common/windows/qnx710.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # This script installs QNX 7. @@ -64,10 +28,10 @@ $folderName = "qnx710" $targetPath = "$targetFolder$folderName" # QNX SDP -$cachedUrl = "\\ci-files01-hki.intra.qt.io\provisioning\qnx\qnx710-windows-linux-20220405.tar.xz" -$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20220405.tar.xz" +$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx710-windows-linux-20240417.tar.xz" +$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20240417.tar.xz" $targetFile = "qnx710.tar.xz" -$sha1 = "134af2e0f75d7b7c516f824fafee265b89e51d48" +$sha1 = "cd2d35004fb2798089e29d9e1226691426632da0" DownloadAndExtract $sourceFile $sha1 $targetFile $targetFolder $cachedUrl Copy-Item $aarch64le_toolchain $targetPath diff --git a/coin/provisioning/common/windows/set-network-test-server.ps1 b/coin/provisioning/common/windows/set-network-test-server.ps1 index f314494c..938ef99a 100644 --- a/coin/provisioning/common/windows/set-network-test-server.ps1 +++ b/coin/provisioning/common/windows/set-network-test-server.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" diff --git a/coin/provisioning/common/windows/set-proxy.ps1 b/coin/provisioning/common/windows/set-proxy.ps1 index 4fcd073f..f2a89e43 100644 --- a/coin/provisioning/common/windows/set-proxy.ps1 +++ b/coin/provisioning/common/windows/set-proxy.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only $n = Get-Content "$PSScriptRoot\..\shared\http_proxy.txt" $n = $n.Split('=') diff --git a/coin/provisioning/common/windows/share-test-folders.ps1 b/coin/provisioning/common/windows/share-test-folders.ps1 index d6666b9d..36b02e82 100644 --- a/coin/provisioning/common/windows/share-test-folders.ps1 +++ b/coin/provisioning/common/windows/share-test-folders.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2022 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # This script creates and shares folders so that we can run I/O tests with # UNC paths, without depending on an SBM server @@ -45,6 +9,8 @@ $writable='testsharewritable' $readonlypath="${env:SystemDrive}\${readonly}" $writablepath="${env:SystemDrive}\${writable}" +Write-Host "******************** Creating folders ${readonlpath} and ${writablepath}" + if ($(Test-Path -Path $readonlypath)) { Remove-SmbShare -Name $readonly -Force Remove-Item -Path $readonlypath -Force -Recurse @@ -64,3 +30,11 @@ New-Item "${readonlypath}\readme.txt" -ItemType File New-Item ${writablepath} -ItemType Directory New-SmbShare -Name ${writable} -Path ${writablepath} -ChangeAccess Users + +Write-Host "******************** File system content" +dir ${env:SystemDrive} +cd "\\${env:COMPUTERNAME}\${readonly}" +dir +cd "\\${env:COMPUTERNAME}\${writable}" +dir +Write-Host "******************** Done Content" diff --git a/coin/provisioning/common/windows/squish-coco.ps1 b/coin/provisioning/common/windows/squish-coco.ps1 index 5587fb03..160bc654 100644 --- a/coin/provisioning/common/windows/squish-coco.ps1 +++ b/coin/provisioning/common/windows/squish-coco.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2018 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:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2018 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only # This script installs Squish Coco for RTA @@ -43,7 +7,7 @@ $coco_version="4.2.2" -$url="http://ci-files01-hki.intra.qt.io/input/coco/SquishCocoSetup_" + $coco_version + "_Windows_x64.exe" +$url="http://ci-files01-hki.ci.qt.io/input/coco/SquishCocoSetup_" + $coco_version + "_Windows_x64.exe" $sha1="d6f9f3c20df086ec9a7e13a068f4446442ae5d51" $installer="C:\Windows\Temp\SquishCocoSetup_" + $coco_version + "_Windows_x64.exe" diff --git a/coin/provisioning/common/windows/squishInstall.ps1 b/coin/provisioning/common/windows/squishInstall.ps1 index 0159ec64..ec4d240a 100644 --- a/coin/provisioning/common/windows/squishInstall.ps1 +++ b/coin/provisioning/common/windows/squishInstall.ps1 @@ -1,53 +1,19 @@ -############################################################################# -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will pre-installed squish package for Windows. # Squish is need by Release Test Automation (RTA) -$version = "6.7.2" -$qtBranch = "62x" +$version = "7.2.1" +$qtBranch = "66x" $targetDir = "C:\Utils\squish" $squishPackage = "C:\Utils\rta_squish" -$squishUrl = "\\ci-files01-hki.intra.qt.io\provisioning\squish\jenkins_build\stable" -$licenseUrl = "\\ci-files01-hki.intra.qt.io\provisioning\squish\coin\" +$squishUrl = "\\ci-files01-hki.ci.qt.io\provisioning\squish\jenkins_build\stable" +$licenseBranch="squish_license" +$licenseUrl = "\\ci-files01-hki.ci.qt.io\provisioning\squish\coin\$licenseBranch" +$testSuiteUrl="\\ci-files01-hki.ci.qt.io\provisioning\squish\coin\suite_test_squish" # Squish license $licensePackage = ".squish-license" @@ -67,7 +33,7 @@ if (($OSVersion -eq "Windows 10 Enterprise") -or ($OSVersion -eq "Windows 10 Pro # In Windows 11 case $OSVersion is 'Windows 10 Pro' $winVersion = "win10" if (Is64BitWinHost) { - $sha1 = "3dd65fe3996bffd25892d5a7dfd2da26420a3f33" + $sha1 = "eed4ed4936fbbacb11e0d8a00ff190e1ea808eeb" } } else { $winVersion = "n/a" @@ -75,11 +41,12 @@ if (($OSVersion -eq "Windows 10 Enterprise") -or ($OSVersion -eq "Windows 10 Pro $squishArchive = "prebuild-squish-$version-$qtBranch-$winVersion-$arch.zip" Copy-Item "$squishUrl\$squishArchive" "C:\Utils" +Copy-Item -Recurse "$testSuiteUrl" "C:\Utils" Verify-Checksum "C:\Utils\$squishArchive" $sha1 Extract-7Zip "C:\Utils\$squishArchive" "C:\Utils" -Rename-Item "$squishPackage" "$targetDir" + Remove-Item "C:\Utils\prebuild*" Write-Host "Verifying Squish Installation for following targets:" get-childitem "$targetDir" -Filter squishrunner.exe -Recurse | % { $_.FullName } -get-childitem "$targetDir" -Filter squishrunner.exe -Recurse | % { if (cmd /c $_.FullName --testsuite "$targetDir\suite_test_squish" |Select-String -Pattern "Squish test run successfully") { Write-Host "Squish tested successfully"} else { [Environment]::Exit(1) } } +get-childitem "$targetDir" -Filter squishrunner.exe -Recurse | % { if (cmd /c $_.FullName --testsuite "C:\Utils\suite_test_squish" |Select-String -Pattern "Squish test run successfully") { Write-Host "Squish tested successfully"} else { [Environment]::Exit(1) } } diff --git a/coin/provisioning/common/windows/telegraf_password.ps1 b/coin/provisioning/common/windows/telegraf_password.ps1 index 6d46da0f..36a4f523 100644 --- a/coin/provisioning/common/windows/telegraf_password.ps1 +++ b/coin/provisioning/common/windows/telegraf_password.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2019 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2019 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" diff --git a/coin/provisioning/common/windows/unset-proxy.ps1 b/coin/provisioning/common/windows/unset-proxy.ps1 index 22352efc..fa9e74d1 100644 --- a/coin/provisioning/common/windows/unset-proxy.ps1 +++ b/coin/provisioning/common/windows/unset-proxy.ps1 @@ -1,41 +1,5 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only Write-Host "Disabling proxy" # A bit-mask is needed to disable "Automatically detect settings" from LAN diff --git a/coin/provisioning/common/windows/update-msvc2019.ps1 b/coin/provisioning/common/windows/update-msvc2019.ps1 index 78c4bc85..30f96594 100644 --- a/coin/provisioning/common/windows/update-msvc2019.ps1 +++ b/coin/provisioning/common/windows/update-msvc2019.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -43,13 +7,15 @@ # NOTE! Visual Studio is pre-installed to tier 1 image so this script won't install the whole Visual Studio. See ../../../pre-provisioning/qtci-windows-10-x86_64/msvc2019.txt # MSVC 2019 online installers can be found from here https://docs.microsoft.com/en-us/visualstudio/releases/2019/history#installing-an-earlier-release +# NOTE! Currenlty Buildtools are not updated. There seems to be an issue with installer. When it's run twice it get stuck and can't be run again. + $version = "16.11.10" -$urlCache_vsInstaller = "\\ci-files01-hki.intra.qt.io\provisioning\windows\msvc\vs2019_Professional_$version.exe" +$urlCache_vsInstaller = "\\ci-files01-hki.ci.qt.io\provisioning\windows\msvc\vs2019_Professional_$version.exe" $urlOfficial_vsInstaller = "https://download.visualstudio.microsoft.com/download/pr/791f3d28-7e20-45d9-9373-5dcfbdd1f6db/cd440cf67c0cf1519131d1d51a396e44c5b4f7b68b541c9f35c05a310d692f0a/vs_Professional.exe" $sha1_vsInstaller = "d4f3b3b7dc28dcc3f25474cd1ca1e39fca7dcf3f" -$urlCache_buildToolsInstaller = "\\ci-files01-hki.intra.qt.io\provisioning\windows\msvc\vs2019_BuildTools_$version.exe" -$urlOfficial_buildToolsInstaller = "https://download.visualstudio.microsoft.com/download/pr/791f3d28-7e20-45d9-9373-5dcfbdd1f6db/d5eabc3f4472d5ab18662648c8b6a08ea0553699819b88f89d84ec42d12f6ad7/vs_BuildTools.exe" -$sha1_buildToolsInstaller = "69889f45d229de8e0e76b6d9e05964477eee2e78" +$urlCache_buildToolsInstaller = "\\ci-files01-hki.ci.qt.io\provisioning\windows\msvc\vs2019_BuildTools_$version.exe" +# $urlOfficial_buildToolsInstaller = "https://download.visualstudio.microsoft.com/download/pr/791f3d28-7e20-45d9-9373-5dcfbdd1f6db/d5eabc3f4472d5ab18662648c8b6a08ea0553699819b88f89d84ec42d12f6ad7/vs_BuildTools.exe" +# $sha1_buildToolsInstaller = "69889f45d229de8e0e76b6d9e05964477eee2e78" $installerPath = "C:\Windows\Temp\installer.exe" function Install { @@ -71,10 +37,63 @@ function Install { Remove-Item -Force -Path $installerPath } +function Get-Vswhere-Property { + Param ( + [ValidateSet(2017, 2019, 2022)] + [int] $vsYear = $(BadParam("Visual Studio Year")), + + [ValidatePattern("Professional|Build *Tools|Community|Enterprise")] + [string] $vsEdition = $(BadParam("Visual Studio Edition")), + + [string] $property = $(BadParam("vswhere property")) + ) + + $range = switch ($vsYear) + { + 2017 { "[15.0,16`)" } + 2019 { "[16.0,17`)" } + 2022 { "[17.0,18`)" } + } + + $vsEdition = $vsEdition -replace " ","" + + $vswhereInfo = New-Object System.Diagnostics.ProcessStartInfo + $vswhereInfo.FileName = "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" + $vswhereInfo.RedirectStandardError = $true + $vswhereInfo.RedirectStandardOutput = $true + $vswhereInfo.UseShellExecute = $false + $vswhereInfo.Arguments = "-version $range", "-latest", ` + "-products Microsoft.VisualStudio.Product.$vsEdition", "-property $property" + $vswhereProcess = New-Object System.Diagnostics.Process + $vswhereProcess.StartInfo = $vswhereInfo + $vswhereProcess.Start() | Out-Null + $vswhereProcess.WaitForExit() + $stdout = $vswhereProcess.StandardOutput.ReadToEnd() + if ([string]::IsNullOrEmpty($stdout)) + { + throw "VS edition or property $property not found by vswhere" + } + $stderr = $vswhereProcess.StandardError.ReadToEnd() + $vsExit = $vswhereProcess.ExitCode + if ($vsExit -ne 0) + { + throw "vswhere failed with exit code $vsExit. stderr: $stderr" + } + return $stdout +} + Install $urlOfficial_vsInstaller $urlCache_vsInstaller $sha1_vsInstaller -Install $urlOfficial_buildToolsInstaller $urlCache_buildToolsInstaller $sha1_buildToolsInstaller +# Install $urlOfficial_buildToolsInstaller $urlCache_buildToolsInstaller $sha1_buildToolsInstaller + +$msvc2019Version = Get-Vswhere-Property 2019 "Professional" catalog_productDisplayVersion +$msvc2019Complete = Get-Vswhere-Property 2019 "Professional" isComplete +$msvc2019Launchable = Get-Vswhere-Property 2019 "Professional" isLaunchable -$msvc2019Version = (cmd /c "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property catalog_productDisplayVersion 2`>`&1) +if($msvc2019Version -ne $version -or [int]$msvc2019Complete -ne 1 ` + -or [int]$msvc2019Launchable -ne 1) { + throw "MSVC 2019 update failed. msvc2019Version: $($msvc2019Version) ` + msvc2019Complete: $($msvc2019Complete) msvc2019Launchable: $($msvc2019Launchable)" +} Write-Output "Visual Studio 2019 = $msvc2019Version" >> ~\versions.txt Write-Output "Visual Studio 2019 Build Tools = $version" >> ~\versions.txt diff --git a/coin/provisioning/common/windows/vc_redist.ps1 b/coin/provisioning/common/windows/vc_redist.ps1 index 62814b10..69eab4d2 100644 --- a/coin/provisioning/common/windows/vc_redist.ps1 +++ b/coin/provisioning/common/windows/vc_redist.ps1 @@ -1,42 +1,6 @@ -############################################################################# -## -## Copyright (C) 2017 The Qt Company Ltd. -## Copyright (C) 2017 Pelagicore AG -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2017 The Qt Company Ltd. +# Copyright (C) 2017 Pelagicore AG +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -47,12 +11,12 @@ if (Is64BitWinHost) { Write-Host "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.intra.qt.io/input/windows/vc_redist.x64.exe" + $internalUrl = "http://ci-files01-hki.ci.qt.io/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.intra.qt.io/input/windows/vc_redist.x86.exe" + $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/vc_redist.x86.exe" $sha1 = "bfb74e498c44d3a103ca3aa2831763fb417134d1" } diff --git a/coin/provisioning/common/windows/vcpkg/vcpkg.json b/coin/provisioning/common/windows/vcpkg/vcpkg.json new file mode 100644 index 00000000..70cb16fb --- /dev/null +++ b/coin/provisioning/common/windows/vcpkg/vcpkg.json @@ -0,0 +1,12 @@ +{ + "overrides": [ + { + "name": "openssl", + "version": "3.0.7", + "port-version": 2 + } + ], + "dependencies": [ + "openssl" + ] +} diff --git a/coin/provisioning/common/windows/vulkansdk.ps1 b/coin/provisioning/common/windows/vulkansdk.ps1 index 6af8aa56..aeeff696 100644 --- a/coin/provisioning/common/windows/vulkansdk.ps1 +++ b/coin/provisioning/common/windows/vulkansdk.ps1 @@ -1,41 +1,5 @@ -############################################################################ -## -## Copyright (C) 2021 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2021 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" @@ -45,7 +9,7 @@ $version = "1.2.182.0" $vulkanPackage = "C:\Windows\Temp\vulkan-installer-$version.exe" $sha1 = "1b662f338bfbfdd00fb9b0c09113eacb94f68a0e" -Download "https://sdk.lunarg.com/sdk/download/1.2.182.0/windows/VulkanSDK-$version-Installer.exe" "\\ci-files01-hki.intra.qt.io\provisioning\windows\VulkanSDK-$version-Installer.exe" $vulkanPackage +Download "https://sdk.lunarg.com/sdk/download/1.2.182.0/windows/VulkanSDK-$version-Installer.exe" "\\ci-files01-hki.ci.qt.io\provisioning\windows\VulkanSDK-$version-Installer.exe" $vulkanPackage Verify-Checksum "$vulkanPackage" "$sha1" Run-Executable $vulkanPackage "/S" diff --git a/coin/provisioning/common/windows/win10sdk.ps1 b/coin/provisioning/common/windows/win10sdk.ps1 index dd75cf71..f5c87846 100644 --- a/coin/provisioning/common/windows/win10sdk.ps1 +++ b/coin/provisioning/common/windows/win10sdk.ps1 @@ -1,47 +1,11 @@ -############################################################################ -## -## Copyright (C) 2018 The Qt Company Ltd. -## Contact: https://www.qt.io/licensing/ -## -## This file is part of the provisioning scripts of the Qt Toolkit. -## -## $QT_BEGIN_LICENSE:LGPL$ -## 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 https://www.qt.io/terms-conditions. For further -## information use the contact form at https://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 3 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL3 included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 3 requirements -## will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 2.0 or (at your option) the GNU General -## Public license version 3 or any later version approved by the KDE Free -## Qt Foundation. The licenses are as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -## included in the packaging of this file. Please review the following -## information to ensure the GNU General Public License requirements will -## be met: https://www.gnu.org/licenses/gpl-2.0.html and -## https://www.gnu.org/licenses/gpl-3.0.html. -## -## $QT_END_LICENSE$ -## -############################################################################# +# Copyright (C) 2018 The Qt Company Ltd. +# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only . "$PSScriptRoot\helpers.ps1" # This script will install Windows 10 SDK -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\winsdksetup.exe" +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\winsdksetup.exe" $url_official = "https://download.microsoft.com/download/8/C/3/8C37C5CE-C6B9-4CC8-8B5F-149A9C976035/windowssdk/winsdksetup.exe" $package = "C:\Windows\Temp\winsdksetup.exe" $sha1 = "db237323f1779fb143e7cdc558e4345e7004489e" diff --git a/coin/provisioning/common/windows/winrtrunner.ps1 b/coin/provisioning/common/windows/winrtrunner.ps1 index 6c092917..bb29e1a6 100644 --- a/coin/provisioning/common/windows/winrtrunner.ps1 +++ b/coin/provisioning/common/windows/winrtrunner.ps1 @@ -2,7 +2,7 @@ $zip = Get-DownloadLocation "winrtrunner.zip" $url = "http://download.qt.io/development_releases/prebuilt/winrtrunner/winrtrunner_2018-07-06.zip" -$url_cache = "\\ci-files01-hki.intra.qt.io\provisioning\windows\winrtrunner\winrtrunner_2018-07-06.zip" +$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\winrtrunner\winrtrunner_2018-07-06.zip" Download $url $url_cache $zip Verify-Checksum $zip "93548e8c3fb8fded2474996ef5e0163f489ce8cf" |