aboutsummaryrefslogtreecommitdiffstats
path: root/coin/provisioning/common
diff options
context:
space:
mode:
Diffstat (limited to 'coin/provisioning/common')
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/.gitignore15
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/README.md20
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/app/.gitignore1
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/app/build.gradle26
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/app/src/main/AndroidManifest.xml20
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/app/src/main/java/com/example/gradle_project/MainActivity.java16
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/app/src/main/res/layout/activity_main.xml18
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/build.gradle4
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml16
-rw-r--r--coin/provisioning/common/linux/android/gradle_project/settings.gradle17
-rwxr-xr-xcoin/provisioning/common/linux/android_emulator_launcher.sh120
-rwxr-xr-xcoin/provisioning/common/linux/android_linux.sh203
-rwxr-xr-xcoin/provisioning/common/linux/apt_wait_loop.sh41
-rwxr-xr-xcoin/provisioning/common/linux/axivion-bauhaus-suite.sh44
-rwxr-xr-xcoin/provisioning/common/linux/bootstrap-autostart.sh89
-rwxr-xr-xcoin/provisioning/common/linux/cleanup_cache.sh58
-rwxr-xr-xcoin/provisioning/common/linux/cmake_linux.sh49
-rwxr-xr-xcoin/provisioning/common/linux/cmake_min_supported.sh43
-rw-r--r--coin/provisioning/common/linux/cmake_toolchain_files/integrity_toolchain.cmake2
-rwxr-xr-xcoin/provisioning/common/linux/disable-cracklib.sh2
-rwxr-xr-xcoin/provisioning/common/linux/disable-notifications.sh2
-rwxr-xr-xcoin/provisioning/common/linux/disable-ntp_linux.sh47
-rwxr-xr-xcoin/provisioning/common/linux/disable_kwin_overview.sh43
-rwxr-xr-xcoin/provisioning/common/linux/disable_selinux.sh2
-rwxr-xr-xcoin/provisioning/common/linux/docker.sh87
-rwxr-xr-xcoin/provisioning/common/linux/enable_test_stacktraces.sh35
-rwxr-xr-xcoin/provisioning/common/linux/fbx_linux.sh43
-rwxr-xr-xcoin/provisioning/common/linux/gcc.sh45
-rwxr-xr-xcoin/provisioning/common/linux/install-cpdb.sh26
-rwxr-xr-xcoin/provisioning/common/linux/install-ffmpeg.sh72
-rwxr-xr-xcoin/provisioning/common/linux/install-flite.sh26
-rwxr-xr-xcoin/provisioning/common/linux/install-git.sh51
-rwxr-xr-xcoin/provisioning/common/linux/install-nodejs.sh42
-rwxr-xr-xcoin/provisioning/common/linux/install-vcpkg-ports-android.sh24
-rwxr-xr-xcoin/provisioning/common/linux/install-vcpkg-ports.sh21
-rwxr-xr-xcoin/provisioning/common/linux/install-vcpkg.sh59
-rwxr-xr-xcoin/provisioning/common/linux/install_dwz.sh45
-rwxr-xr-xcoin/provisioning/common/linux/integrity.sh53
-rwxr-xr-xcoin/provisioning/common/linux/mimersql.sh42
-rwxr-xr-xcoin/provisioning/common/linux/mount-vcpkg-cache-drive.sh21
-rwxr-xr-xcoin/provisioning/common/linux/qnx_710.sh73
-rwxr-xr-xcoin/provisioning/common/linux/qnx_800.sh85
-rwxr-xr-xcoin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt2
-rw-r--r--coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom10
-rwxr-xr-xcoin/provisioning/common/linux/remove-update_notifier.sh14
-rwxr-xr-xcoin/provisioning/common/linux/sccache.sh41
-rwxr-xr-xcoin/provisioning/common/linux/set_ulimit.sh41
-rwxr-xr-xcoin/provisioning/common/linux/squish-coco.sh43
-rwxr-xr-xcoin/provisioning/common/linux/ubuntu-version.sh41
-rw-r--r--coin/provisioning/common/linux/vcpkg/vcpkg.json12
-rwxr-xr-xcoin/provisioning/common/linux/version.sh41
-rwxr-xr-xcoin/provisioning/common/linux/vx_works.sh51
-rwxr-xr-xcoin/provisioning/common/linux/vxworks_qemu_launcher.sh39
-rwxr-xr-xcoin/provisioning/common/macos/InstallAppFromCompressedFileFromURL.sh41
-rwxr-xr-xcoin/provisioning/common/macos/InstallPKGFromURL.sh43
-rwxr-xr-xcoin/provisioning/common/macos/android.sh78
-rwxr-xr-xcoin/provisioning/common/macos/cmake.sh49
-rwxr-xr-xcoin/provisioning/common/macos/disable-app-reopen.sh12
-rwxr-xr-xcoin/provisioning/common/macos/disable-notifications_and_warnings.sh2
-rwxr-xr-xcoin/provisioning/common/macos/disable_net_lso.sh46
-rwxr-xr-xcoin/provisioning/common/macos/disable_spotlight.sh41
-rwxr-xr-xcoin/provisioning/common/macos/docker.sh37
-rwxr-xr-xcoin/provisioning/common/macos/enable_zsh_history_and_viminfo.sh12
-rwxr-xr-xcoin/provisioning/common/macos/fbx_macos.sh46
-rwxr-xr-xcoin/provisioning/common/macos/fix_relative_dependencies.sh25
-rwxr-xr-xcoin/provisioning/common/macos/homebrew.sh8
-rwxr-xr-xcoin/provisioning/common/macos/homebrew_for_arm_mac.sh30
-rwxr-xr-xcoin/provisioning/common/macos/increase_limits.sh51
-rwxr-xr-xcoin/provisioning/common/macos/install-commandlinetools.sh41
-rwxr-xr-xcoin/provisioning/common/macos/install-git.sh2
-rwxr-xr-xcoin/provisioning/common/macos/install_xcode.sh49
-rwxr-xr-xcoin/provisioning/common/macos/java.sh43
-rwxr-xr-xcoin/provisioning/common/macos/java_arm.sh43
-rwxr-xr-xcoin/provisioning/common/macos/libiodbc.sh45
-rwxr-xr-xcoin/provisioning/common/macos/libusb.sh66
-rwxr-xr-xcoin/provisioning/common/macos/macos-version.sh61
-rwxr-xr-xcoin/provisioning/common/macos/makeuniversal.sh65
-rwxr-xr-xcoin/provisioning/common/macos/mimersql.sh56
-rwxr-xr-xcoin/provisioning/common/macos/mount-vcpkg-cache-drive.sh28
-rwxr-xr-xcoin/provisioning/common/macos/ninja.sh43
-rwxr-xr-xcoin/provisioning/common/macos/nodejs.sh49
-rwxr-xr-xcoin/provisioning/common/macos/pip.sh6
-rwxr-xr-xcoin/provisioning/common/macos/pkgconfig.sh43
-rwxr-xr-xcoin/provisioning/common/macos/postgresql.sh48
-rwxr-xr-xcoin/provisioning/common/macos/python2.sh47
-rwxr-xr-xcoin/provisioning/common/macos/python3.sh53
-rwxr-xr-xcoin/provisioning/common/macos/sccache.sh41
-rwxr-xr-xcoin/provisioning/common/macos/screenresolution.sh41
-rwxr-xr-xcoin/provisioning/common/macos/set-locale.sh43
-rwxr-xr-xcoin/provisioning/common/macos/set_tcc_permissions.sh31
-rwxr-xr-xcoin/provisioning/common/macos/sha1sum-compatibility.sh41
-rwxr-xr-xcoin/provisioning/common/macos/system_updates.sh41
-rwxr-xr-xcoin/provisioning/common/macos/telegraf-ioping.sh8
-rwxr-xr-xcoin/provisioning/common/macos/telegraf_install.sh59
-rwxr-xr-xcoin/provisioning/common/macos/version.sh41
-rw-r--r--coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake5
-rw-r--r--coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake5
-rw-r--r--coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake5
-rw-r--r--coin/provisioning/common/shared/ffmpeg_config_options.txt2
-rw-r--r--coin/provisioning/common/shared/requirements.txt19
-rwxr-xr-x[-rw-r--r--]coin/provisioning/common/shared/telegraf/telegraf-ioping.sh6
-rw-r--r--coin/provisioning/common/shared/testserver/californium/Dockerfile4
-rw-r--r--coin/provisioning/common/shared/testserver/californium/qt_changes.patch43
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_images.sh82
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_machine.sh51
-rwxr-xr-xcoin/provisioning/common/shared/testserver/docker_testserver.sh45
-rwxr-xr-x[-rw-r--r--]coin/provisioning/common/shared/testserver/settings.sh41
-rw-r--r--coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake7
-rw-r--r--coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake15
-rw-r--r--coin/provisioning/common/shared/triplets/x64-linux-qt.cmake13
-rw-r--r--coin/provisioning/common/shared/triplets/x64-windows-qt.cmake7
-rw-r--r--coin/provisioning/common/shared/triplets/x86-android-qt.cmake15
-rw-r--r--coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake15
-rw-r--r--coin/provisioning/common/shared/vcpkg-configuration.json9
-rw-r--r--coin/provisioning/common/shared/vcpkg_registry_mirror.txt1
-rw-r--r--coin/provisioning/common/shared/vcpkg_tool_release_tag.txt1
-rw-r--r--coin/provisioning/common/shared/vcpkg_version.txt1
-rwxr-xr-xcoin/provisioning/common/unix/DownloadURL.sh60
-rwxr-xr-xcoin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh41
-rwxr-xr-xcoin/provisioning/common/unix/SetEnvVar.sh52
-rwxr-xr-xcoin/provisioning/common/unix/check_and_set_proxy.sh40
-rwxr-xr-xcoin/provisioning/common/unix/common.sourced.sh49
-rwxr-xr-xcoin/provisioning/common/unix/disable-ntp_macos.sh41
-rwxr-xr-xcoin/provisioning/common/unix/emsdk.sh84
-rwxr-xr-xcoin/provisioning/common/unix/install-breakpad.sh45
-rwxr-xr-xcoin/provisioning/common/unix/install-conan.sh2
-rwxr-xr-xcoin/provisioning/common/unix/install-ffmpeg-android.sh106
-rwxr-xr-xcoin/provisioning/common/unix/install-ffmpeg-ios.sh76
-rwxr-xr-xcoin/provisioning/common/unix/install-ffmpeg.sh113
-rwxr-xr-xcoin/provisioning/common/unix/install-openssl.sh86
-rwxr-xr-xcoin/provisioning/common/unix/install_grpc.sh84
-rwxr-xr-xcoin/provisioning/common/unix/install_protobuf.sh101
-rwxr-xr-xcoin/provisioning/common/unix/install_protobuff.sh81
-rwxr-xr-xcoin/provisioning/common/unix/libclang-v100-dyn.sh51
-rwxr-xr-xcoin/provisioning/common/unix/libclang.sh83
-rwxr-xr-xcoin/provisioning/common/unix/mqtt_broker.sh43
-rwxr-xr-xcoin/provisioning/common/unix/openssl_3_for_android.sh76
-rwxr-xr-xcoin/provisioning/common/unix/openssl_for_android.sh91
-rw-r--r--coin/provisioning/common/unix/pyenv.rb80
-rwxr-xr-xcoin/provisioning/common/unix/python_modules.sh41
-rwxr-xr-xcoin/provisioning/common/unix/sccache.sh50
-rwxr-xr-xcoin/provisioning/common/unix/sccache_wrapper14
-rwxr-xr-xcoin/provisioning/common/unix/squishInstall.sh118
-rwxr-xr-xcoin/provisioning/common/unix/telegraf_install.sh89
-rwxr-xr-xcoin/provisioning/common/unix/telegraf_password.sh47
-rw-r--r--coin/provisioning/common/windows/3dstudio_3rdparty.ps12
-rw-r--r--coin/provisioning/common/windows/allow-remote-desktop-access.ps140
-rw-r--r--coin/provisioning/common/windows/android-openssl.ps1157
-rw-r--r--coin/provisioning/common/windows/android.ps1100
-rw-r--r--coin/provisioning/common/windows/cmake.ps178
-rw-r--r--coin/provisioning/common/windows/conan.ps146
-rw-r--r--coin/provisioning/common/windows/disable-autoreboot.ps140
-rw-r--r--coin/provisioning/common/windows/disable-defragment.ps140
-rw-r--r--coin/provisioning/common/windows/disable-sleep.ps140
-rw-r--r--coin/provisioning/common/windows/disable-uac.ps140
-rw-r--r--coin/provisioning/common/windows/disable-windefender.ps140
-rw-r--r--coin/provisioning/common/windows/disable-windows-module-installer.ps14
-rw-r--r--coin/provisioning/common/windows/disable-windows-updates.ps140
-rw-r--r--coin/provisioning/common/windows/dxsdk.ps12
-rw-r--r--coin/provisioning/common/windows/emsdk.ps164
-rw-r--r--coin/provisioning/common/windows/exceutequeueditems.ps167
-rw-r--r--coin/provisioning/common/windows/fbx_windows.ps142
-rw-r--r--coin/provisioning/common/windows/grpc.ps1122
-rw-r--r--coin/provisioning/common/windows/helpers.ps169
-rw-r--r--coin/provisioning/common/windows/install-azure-tool.ps140
-rw-r--r--coin/provisioning/common/windows/install-breakpad.ps144
-rw-r--r--coin/provisioning/common/windows/install-dependencywalker.ps146
-rw-r--r--coin/provisioning/common/windows/install-dotnet.ps144
-rw-r--r--coin/provisioning/common/windows/install-ffmpeg.ps1216
-rw-r--r--coin/provisioning/common/windows/install-git.ps150
-rw-r--r--coin/provisioning/common/windows/install-gnuwin32.ps142
-rw-r--r--coin/provisioning/common/windows/install-jdk.ps165
-rw-r--r--coin/provisioning/common/windows/install-jq.ps131
-rw-r--r--coin/provisioning/common/windows/install-mcuxpresso.ps142
-rw-r--r--coin/provisioning/common/windows/install-mingw.ps156
-rw-r--r--coin/provisioning/common/windows/install-msys2.ps150
-rw-r--r--coin/provisioning/common/windows/install-notepad++.ps175
-rw-r--r--coin/provisioning/common/windows/install-openssh.ps148
-rw-r--r--coin/provisioning/common/windows/install-ruby.ps142
-rw-r--r--coin/provisioning/common/windows/install-sccache.ps142
-rw-r--r--coin/provisioning/common/windows/install-sed.ps144
-rw-r--r--coin/provisioning/common/windows/install-sevenzip.ps174
-rw-r--r--coin/provisioning/common/windows/install-stm32cubeprogrammer.ps142
-rw-r--r--coin/provisioning/common/windows/install-strawberry-perl.ps142
-rw-r--r--coin/provisioning/common/windows/install-vcpkg-ports-android.ps123
-rw-r--r--coin/provisioning/common/windows/install-vcpkg-ports.ps126
-rw-r--r--coin/provisioning/common/windows/install-vcpkg.ps158
-rw-r--r--coin/provisioning/common/windows/install_telegraf.ps191
-rw-r--r--coin/provisioning/common/windows/jom.ps12
-rw-r--r--coin/provisioning/common/windows/libclang-v100-dyn.ps12
-rw-r--r--coin/provisioning/common/windows/libclang.ps115
-rw-r--r--coin/provisioning/common/windows/libusb.ps148
-rw-r--r--coin/provisioning/common/windows/longpath.ps12
-rw-r--r--coin/provisioning/common/windows/mesa_llvmpipe.ps152
-rw-r--r--coin/provisioning/common/windows/mimersql.ps131
-rw-r--r--coin/provisioning/common/windows/mount-vcpkg-cache-drive.ps120
-rw-r--r--coin/provisioning/common/windows/mqtt_broker.ps142
-rw-r--r--coin/provisioning/common/windows/msvc-2013-update5.ps142
-rw-r--r--coin/provisioning/common/windows/msys.ps12
-rw-r--r--coin/provisioning/common/windows/mysql.ps1100
-rw-r--r--coin/provisioning/common/windows/ninja.ps160
-rw-r--r--coin/provisioning/common/windows/nodejs.ps177
-rw-r--r--coin/provisioning/common/windows/opcua_unifiedautomation.ps142
-rw-r--r--coin/provisioning/common/windows/openssl-arm64.ps178
-rw-r--r--coin/provisioning/common/windows/openssl.ps151
-rw-r--r--coin/provisioning/common/windows/postgresql.ps144
-rw-r--r--coin/provisioning/common/windows/protobuf.ps1118
-rw-r--r--coin/provisioning/common/windows/python.ps1119
-rw-r--r--coin/provisioning/common/windows/python3.ps183
-rw-r--r--coin/provisioning/common/windows/qnx710.ps146
-rw-r--r--coin/provisioning/common/windows/set-network-test-server.ps140
-rw-r--r--coin/provisioning/common/windows/set-proxy.ps140
-rw-r--r--coin/provisioning/common/windows/share-test-folders.ps140
-rw-r--r--coin/provisioning/common/windows/squish-coco.ps142
-rw-r--r--coin/provisioning/common/windows/squishInstall.ps157
-rw-r--r--coin/provisioning/common/windows/telegraf_password.ps140
-rw-r--r--coin/provisioning/common/windows/unset-proxy.ps140
-rw-r--r--coin/provisioning/common/windows/update-msvc2019.ps1107
-rw-r--r--coin/provisioning/common/windows/vc_redist.ps146
-rw-r--r--coin/provisioning/common/windows/vcpkg/vcpkg.json12
-rw-r--r--coin/provisioning/common/windows/vulkansdk.ps142
-rw-r--r--coin/provisioning/common/windows/win10sdk.ps142
-rw-r--r--coin/provisioning/common/windows/winrtrunner.ps12
223 files changed, 4272 insertions, 5694 deletions
diff --git a/coin/provisioning/common/linux/android/gradle_project/.gitignore b/coin/provisioning/common/linux/android/gradle_project/.gitignore
new file mode 100644
index 00000000..aa724b77
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/.gitignore
@@ -0,0 +1,15 @@
+*.iml
+.gradle
+/local.properties
+/.idea/caches
+/.idea/libraries
+/.idea/modules.xml
+/.idea/workspace.xml
+/.idea/navEditor.xml
+/.idea/assetWizardSettings.xml
+.DS_Store
+/build
+/captures
+.externalNativeBuild
+.cxx
+local.properties
diff --git a/coin/provisioning/common/linux/android/gradle_project/README.md b/coin/provisioning/common/linux/android/gradle_project/README.md
new file mode 100644
index 00000000..439cd362
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/README.md
@@ -0,0 +1,20 @@
+# Android Gradle Project for COIN
+
+This project is used to at provisioning time to do an Android Gradle build that
+will download Gradle binaries and AGP dependencies, then they will be cached
+allowing consecutive builds, i.e. at test runs to not redownload the Gradle
+binaries which tend to run into network issues and thus improving the
+reliability of the Android integrations on COIN.
+
+The project is a basic empty views Android project that can be created by
+Android Studio, it's Java based. Below is some extra details on relevant files
+that might need updates in the future:
+
+- settings.gradle: mainly sets the the project name
+- under app/src/main/ res/layout/activity_main.xml and src/*/*.java: sets the
+ layout and logic of the app, this shouldn't need to be touched.
+- AndroidManifest.xml / app/build.gradle: Sets project settings like target version.
+- gradle/libs.versions.toml: This sets the version numbers of various dependencies.
+
+Other files required for the project build are gradle wrapper and scripts which
+are fetched by android_linux.sh from qtbase.
diff --git a/coin/provisioning/common/linux/android/gradle_project/app/.gitignore b/coin/provisioning/common/linux/android/gradle_project/app/.gitignore
new file mode 100644
index 00000000..796b96d1
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/coin/provisioning/common/linux/android/gradle_project/app/build.gradle b/coin/provisioning/common/linux/android/gradle_project/app/build.gradle
new file mode 100644
index 00000000..745c08f8
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/app/build.gradle
@@ -0,0 +1,26 @@
+plugins {
+ alias(libs.plugins.androidApplication)
+}
+
+android {
+ namespace 'com.example.gradle_project'
+ compileSdk 34
+
+ defaultConfig {
+ applicationId "com.example.gradle_project"
+ minSdk 23
+ targetSdk 34
+ versionCode 1
+ versionName "1.0"
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+}
+
+dependencies {
+ implementation libs.appcompat
+ implementation libs.material
+}
diff --git a/coin/provisioning/common/linux/android/gradle_project/app/src/main/AndroidManifest.xml b/coin/provisioning/common/linux/android/gradle_project/app/src/main/AndroidManifest.xml
new file mode 100644
index 00000000..492c2115
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/app/src/main/AndroidManifest.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools">
+
+ <application
+ android:allowBackup="true"
+ android:label="gradle_project"
+ android:supportsRtl="true"
+ tools:targetApi="34">
+ <activity
+ android:name=".MainActivity"
+ android:exported="true">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+
+</manifest>
diff --git a/coin/provisioning/common/linux/android/gradle_project/app/src/main/java/com/example/gradle_project/MainActivity.java b/coin/provisioning/common/linux/android/gradle_project/app/src/main/java/com/example/gradle_project/MainActivity.java
new file mode 100644
index 00000000..d3575ef9
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/app/src/main/java/com/example/gradle_project/MainActivity.java
@@ -0,0 +1,16 @@
+// 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
+
+package com.example.gradle_project;
+
+import androidx.appcompat.app.AppCompatActivity;
+
+import android.os.Bundle;
+
+public class MainActivity extends AppCompatActivity {
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+ }
+}
diff --git a/coin/provisioning/common/linux/android/gradle_project/app/src/main/res/layout/activity_main.xml b/coin/provisioning/common/linux/android/gradle_project/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 00000000..c75d0576
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ xmlns:tools="http://schemas.android.com/tools"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ tools:context=".MainActivity">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Hello World!"
+ app:layout_constraintBottom_toBottomOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
+
+</androidx.constraintlayout.widget.ConstraintLayout>
diff --git a/coin/provisioning/common/linux/android/gradle_project/build.gradle b/coin/provisioning/common/linux/android/gradle_project/build.gradle
new file mode 100644
index 00000000..602be027
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/build.gradle
@@ -0,0 +1,4 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+plugins {
+alias(libs.plugins.androidApplication) apply false
+}
diff --git a/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml b/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml
new file mode 100644
index 00000000..65bc49af
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/gradle/libs.versions.toml
@@ -0,0 +1,16 @@
+[versions]
+agp = "7.4.1"
+appcompat = "1.6.1"
+material = "1.11.0"
+constraintlayout = "2.1.4"
+
+[libraries]
+appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
+material = { group = "com.google.android.material", name = "material", version.ref = "material" }
+constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "constraintlayout" }
+
+[plugins]
+androidApplication = { id = "com.android.application", version.ref = "agp" }
+
+[bundles]
+
diff --git a/coin/provisioning/common/linux/android/gradle_project/settings.gradle b/coin/provisioning/common/linux/android/gradle_project/settings.gradle
new file mode 100644
index 00000000..ca34c7e7
--- /dev/null
+++ b/coin/provisioning/common/linux/android/gradle_project/settings.gradle
@@ -0,0 +1,17 @@
+pluginManagement {
+ repositories {
+ google()
+ mavenCentral()
+ gradlePluginPortal()
+ }
+}
+dependencyResolutionManagement {
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
+ repositories {
+ google()
+ mavenCentral()
+ }
+}
+
+rootProject.name = "gradle_project"
+include ':app'
diff --git a/coin/provisioning/common/linux/android_emulator_launcher.sh b/coin/provisioning/common/linux/android_emulator_launcher.sh
new file mode 100755
index 00000000..fad20148
--- /dev/null
+++ b/coin/provisioning/common/linux/android_emulator_launcher.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
+
+# This util launches the Android emulator and ensures it doesn't stuck/freeze
+# by detecting that and restarting it
+
+set -e
+
+EMULATOR_MAX_RETRIES=5
+ADB_MAX_TIMEOUT=300
+EMULATOR_EXEC="$ANDROID_SDK_ROOT/emulator/emulator"
+ADB_EXEC="$ANDROID_SDK_ROOT/platform-tools/adb"
+LOGCAT_PATH="$COIN_CTEST_RESULTSDIR/emulator_logcat_%iter.txt"
+EMULATOR_RUN_LOG_PATH="$COIN_CTEST_RESULTSDIR/emulator_run_log_%iter.txt"
+
+if [ -z "${ANDROID_EMULATOR}" ]; then
+ echo "No AVD name provided via ANDROID_EMULATOR env variable. Aborting!"
+ exit 1
+fi
+
+function check_for_android_device
+{
+ $ADB_EXEC devices | awk 'NR==2{print $2}' | grep -qE '^(online|device)$'
+}
+
+# WARNING: On the very first boot of the emulator it happens that the device
+# "finishes" booting and getprop shows bootanim=stopped and
+# boot_completed=1. But sometimes not all packages have been installed (`pm
+# list packages` shows only 16 packages installed), and after around half a
+# minute the boot animation starts spinning (bootanim=running) again despite
+# boot_completed=1 all the time. After some minutes the boot animation stops
+# again and the list of packages contains 80 packages. Only then the device is
+# fully booted, and only then is dev.bootcomplete=1.
+#
+# To reproduce the emulator booting as the first time, you have to delete the
+# cached images found inside $HOME/.android/avd/{avd_name}.avd/ especially the
+# "userdata-qemu.img.qcow2" file.
+function check_if_fully_booted
+{
+ # The "getprop" command separates lines with \r\n so we trim them
+ bootanim=$( timeout 1 "$ADB_EXEC" shell getprop init.svc.bootanim | tr -d '\r\n')
+ boot_completed=$(timeout 1 "$ADB_EXEC" shell getprop sys.boot_completed | tr -d '\r\n')
+ bootcomplete=$( timeout 1 "$ADB_EXEC" shell getprop dev.bootcomplete | tr -d '\r\n')
+ echo "bootanim=$bootanim boot_completed=$boot_completed bootcomplete=$bootcomplete"
+ [ "$bootanim" = stopped ] && [ "$boot_completed" = 1 ] && [ "$bootcomplete" = 1 ]
+}
+
+for counter in $(seq ${EMULATOR_MAX_RETRIES})
+do
+ $ADB_EXEC kill-server
+ $ADB_EXEC start-server
+
+ if check_for_android_device
+ then
+ echo "Emulator is already running but it shouldn't be. Terminating it now..."
+ pkill '^qemu-system-' || true
+ sleep 5
+ fi
+
+ LOGCAT_PATH=${LOGCAT_PATH//%iter/${counter}}
+ EMULATOR_RUN_LOG_PATH=${EMULATOR_RUN_LOG_PATH//%iter/${counter}}
+
+ echo "Starting emulator ${ANDROID_EMULATOR}, try ${counter}/${EMULATOR_MAX_RETRIES}" \
+ | tee "${EMULATOR_RUN_LOG_PATH}"
+ $EMULATOR_EXEC -avd "$ANDROID_EMULATOR" \
+ -gpu swiftshader_indirect -no-audio -no-window -no-boot-anim \
+ -cores 4 -memory 16000 -partition-size 4096 \
+ -detect-image-hang -restart-when-stalled -no-snapshot-save \
+ -no-nested-warnings -logcat '*:v' -logcat-output "${LOGCAT_PATH}" \
+ </dev/null >"${EMULATOR_RUN_LOG_PATH}" 2>&1 &
+ emulator_pid=$!
+ disown $emulator_pid
+
+ echo "Waiting ${ADB_MAX_TIMEOUT} seconds for emulated device to appear..."
+ timeout ${ADB_MAX_TIMEOUT} "$ADB_EXEC" wait-for-device
+
+ # Due to some bug in Coin/Go, we can't have the emulator command stream
+ # the output to the console while in the background, as Coin will continue
+ # waiting for it. So, rely on re-directing all output to a log file and
+ # then printing it out after the emulator is started.
+ echo "######## Printing out the emulator command logs ########"
+ cat "${EMULATOR_RUN_LOG_PATH}"
+ echo "########################################################"
+
+ echo "Waiting a few minutes for the emulator to fully boot..."
+ emulator_status=down
+ for _ in $(seq ${ADB_MAX_TIMEOUT})
+ do
+ sleep 1
+
+ if check_for_android_device && check_if_fully_booted
+ then
+ emulator_status=up
+ break
+ fi
+ done
+
+ # If emulator status is still offline after timeout period,
+ # we can assume it's stuck, and we must restart it
+ if [ $emulator_status = up ]
+ then
+ echo "Emulator started successfully"
+ break
+ else
+ if [ "$counter" -lt "$EMULATOR_MAX_RETRIES" ]
+ then
+ echo "Emulator failed to start," \
+ "forcefully killing current instance and re-starting emulator"
+ kill $emulator_pid || true
+ sleep 5
+ elif [ "$counter" -eq "$EMULATOR_MAX_RETRIES" ]
+ then
+ echo "Emulator failed to start, reached maximum number of retries. Aborting\!"
+ exit 2
+ fi
+ fi
+done
+
+exit 0
diff --git a/coin/provisioning/common/linux/android_linux.sh b/coin/provisioning/common/linux/android_linux.sh
index e55a63ab..98961077 100755
--- a/coin/provisioning/common/linux/android_linux.sh
+++ b/coin/provisioning/common/linux/android_linux.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 install Android sdk and ndk.
@@ -55,38 +18,74 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
targetFolder="/opt/android"
sdkTargetFolder="$targetFolder/sdk"
-basePath="http://ci-files01-hki.intra.qt.io/input/android"
+sudo mkdir -p "$sdkTargetFolder"
+
+basePath="http://ci-files01-hki.ci.qt.io/input/android"
toolsVersion="2.1"
toolsFile="commandlinetools-linux-6609375_latest.zip"
-ndkVersion="r23b"
-ndkFile="android-ndk-$ndkVersion-linux.zip"
-sdkBuildToolsVersion="31.0.0"
-sdkApiLevel="android-31"
+ndkVersionLatest="r26b"
+ndkVersionDefault=$ndkVersionLatest
+sdkBuildToolsVersion="34.0.0"
+sdkApiLevel="android-34"
toolsSha1="9172381ff070ee2a416723c1989770cf4b0d1076"
-ndkSha1="f47ec4c4badd11e9f593a8450180884a927c330d"
-
-# Android automotive
-sdkApiLevelAutomovie="android-30"
-androidAutomotive11Url="$basePath/${sdkApiLevelAutomovie}_automotive.tar.gz"
-androidAutomotive="android-automotive"
-android11Sha="4a5cd2bea7ce323b724c3ff1faab13d99f9d2be9"
+ndkSha1Latest="fdf33d9f6c1b3f16e5459d53a82c7d2201edbcc4"
+ndkSha1Default=$ndkSha1Latest
+
+# Android 14 avd zip
+android14SystemZipName="android14system_UE1A_230829_036.tar.gz"
+android14SystemZipSha="ede80c6901e8fad1895c97a86542b8e072bb1ee5"
+android14SystemPath="$basePath/$android14SystemZipName"
+
+# Android Automotive max SDK level image
+sdkApiLevelAutomotiveMax="android-33"
+androidAutomotiveMaxUrl="$basePath/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
+androidAutomotiveMaxSha="b020a938ec46af2510047284406e9bed608cad03"
+# Android Automotive min SDK level image
+sdkApiLevelAutomotiveMin="android-29"
+androidAutomotiveMinUrl="$basePath/${sdkApiLevelAutomotiveMin}_automotive.tar.gz"
+androidAutomotiveMinSha="e6092585c00f87eb3b20a2eb7fdf6add42342d2f"
toolsTargetFile="/tmp/$toolsFile"
toolsSourceFile="$basePath/$toolsFile"
-ndkTargetFile="/tmp/$ndkFile"
-ndkSourceFile="$basePath/$ndkFile"
+echo "Download and unzip Android SDK"
DownloadURL "$toolsSourceFile" "$toolsSourceFile" "$toolsSha1" "$toolsTargetFile"
-DownloadURL "$ndkSourceFile" "$ndkSourceFile" "$ndkSha1" "$ndkTargetFile"
-echo "Unzipping Android NDK to '$targetFolder'"
-sudo unzip -q "$ndkTargetFile" -d "$targetFolder"
echo "Unzipping Android Tools to '$sdkTargetFolder'"
sudo unzip -q "$toolsTargetFile" -d "$sdkTargetFolder"
-rm "$ndkTargetFile"
rm "$toolsTargetFile"
+function InstallNdk() {
+
+ ndkVersion=$1
+ ndkSha1=$2
+
+ ndkFile="android-ndk-$ndkVersion-linux.zip"
+ ndkTargetFile="/tmp/$ndkFile"
+ ndkSourceFile="$basePath/$ndkFile"
+
+ DownloadURL "$ndkSourceFile" "$ndkSourceFile" "$ndkSha1" "$ndkTargetFile"
+ echo "Unzipping Android NDK to '$targetFolder'"
+ # Get the package base directory name as string
+ zipBase=$(sudo zipinfo -1 "$ndkTargetFile" 2>/dev/null | awk '!seen {sub("/.*",""); print; seen=1}')
+ sudo unzip -q "$ndkTargetFile" -d "$targetFolder"
+ rm "$ndkTargetFile"
+ androidNdkRoot="${targetFolder}/${zipBase}"
+}
+
+InstallNdk $ndkVersionDefault $ndkSha1Default
+SetEnvVar "ANDROID_NDK_ROOT_DEFAULT" "$androidNdkRoot"
+
+if [ "$ndkVersionDefault" != "$ndkVersionLatest" ]; then
+ InstallNdk $ndkVersionLatest $ndkSha1Latest
+fi
+SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$androidNdkRoot"
+
+# To be used by vcpkg
+SetEnvVar "ANDROID_NDK_HOME" "$targetFolder/android-ndk-$ndkVersionDefault"
+export ANDROID_NDK_HOME="$targetFolder/android-ndk-$ndkVersionDefault"
+
echo "Changing ownership of Android files."
if uname -a |grep -q "el7"; then
sudo chown -R qt:wheel "$targetFolder"
@@ -111,46 +110,96 @@ if [ "$http_proxy" != "" ]; then
echo "y" | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" --sdk_root=$sdkTargetFolder \
--no_https --proxy=http --proxy_host="$proxy_host" --proxy_port="$proxy_port" \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
- | eval $sdkmanager_no_progress_bar_cmd
+ | eval "$sdkmanager_no_progress_bar_cmd"
else
echo "y" | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" --sdk_root=$sdkTargetFolder \
"platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
- | eval $sdkmanager_no_progress_bar_cmd
+ | eval "$sdkmanager_no_progress_bar_cmd"
fi
echo "Checking the contents of Android SDK..."
ls -l "$sdkTargetFolder"
SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
-SetEnvVar "ANDROID_NDK_ROOT" "$targetFolder/android-ndk-$ndkVersion"
SetEnvVar "ANDROID_NDK_HOST" "linux-x86_64"
SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
# shellcheck disable=SC2129
-echo "Android SDK tools = $toolsVersion" >> ~/versions.txt
-echo "Android SDK Build Tools = $sdkBuildToolsVersion" >> ~/versions.txt
-echo "Android SDK API level = $sdkApiLevel" >> ~/versions.txt
-echo "Android NDK = $ndkVersion" >> ~/versions.txt
+cat <<EOB >>~/versions.txt
+Android SDK tools = $toolsVersion
+Android SDK Build Tools = $sdkBuildToolsVersion
+Android SDK API level = $sdkApiLevel
+Android NDK = $ndkVersion
+EOB
cd "$sdkTargetFolder/cmdline-tools/tools/bin"
-./sdkmanager --install "emulator" --sdk_root=$sdkTargetFolder \
- | eval $sdkmanager_no_progress_bar_cmd
-echo "y" | ./sdkmanager --install "system-images;android-23;google_apis;x86" \
- | eval $sdkmanager_no_progress_bar_cmd
-
+./sdkmanager --install "emulator" --sdk_root="$sdkTargetFolder" \
+ | eval "$sdkmanager_no_progress_bar_cmd"
+
+echo "Download and unzip Android Emulator version 34.1.19"
+emulatorFileName="emulator-linux_x64-11525734.zip"
+emulatorCiUrl="https://ci-files01-hki.ci.qt.io/input/android/$emulatorFileName"
+emulatorUrl="http://dl.google.com/android/repository/$emulatorFileName"
+emulatorTargetFile="$sdkTargetFolder/$emulatorFileName"
+emulatorSha1="d6cc94109b081c5f6042dcb71a453144f7e62ce7"
+DownloadURL "$emulatorCiUrl" "$emulatorUrl" "$emulatorSha1" "$emulatorTargetFile"
+echo "Unzipping the Android Emulator to '$sdkTargetFolder'"
+sudo unzip -o -q "$emulatorTargetFile" -d "$sdkTargetFolder"
+rm "$emulatorTargetFile"
+
+echo "y" | ./sdkmanager --install "system-images;android-28;google_apis;x86" \
+ | eval "$sdkmanager_no_progress_bar_cmd"
+
+echo "Extract stored Android 14 Beta $android14SystemZipName"
+DownloadURL "$android14SystemPath" "$android14SystemPath" "$android14SystemZipSha" \
+ "/tmp/$android14SystemZipName"
+sudo tar -xzf "/tmp/$android14SystemZipName" -C "$sdkTargetFolder/system-images"
echo "Checking the contents of Android SDK again..."
ls -l "$sdkTargetFolder"
-echo "no" | ./avdmanager create avd -n emulator_x86_api_23 -c 2048M -f \
- -k "system-images;android-23;google_apis;x86"
+echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
+ -k "system-images;android-28;google_apis;x86"
-echo "Install $sdkApiLevelAutomovie $androidAutomotive"
-DownloadURL "$androidAutomotive11Url" "$androidAutomotive11Url" "$android11Sha" \
- "/tmp/${sdkApiLevelAutomovie}_automotive.tar.gz"
-sudo tar -xzf "/tmp/${sdkApiLevelAutomovie}_automotive.tar.gz" -C $sdkTargetFolder/system-images
-echo "no" | ./avdmanager create avd -n automotive_emulator_x86_api_30 -c 2048M -f \
- -k "system-images;${sdkApiLevelAutomovie};${androidAutomotive};x86"
+echo "no" | ./avdmanager create avd -n emulator_x86_64_api_34 -c 2048M -f \
+ -k "system-images;android-34;google_apis;x86_64"
+
+echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
+DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
+ "/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
+sudo tar -xzf "/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz" -C "$sdkTargetFolder/system-images"
+echo "no" | ./avdmanager create avd -n automotive_emulator_x86_64_api_33 -c 2048M -f \
+ -k "system-images;${sdkApiLevelAutomotiveMax};android-automotive;x86_64"
+
+echo "Install minimum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMin"
+DownloadURL "$androidAutomotiveMinUrl" "$androidAutomotiveMinUrl" "$androidAutomotiveMinSha" \
+ "/tmp/${sdkApiLevelAutomotiveMin}_automotive.tar.gz"
+sudo tar -xzf "/tmp/${sdkApiLevelAutomotiveMin}_automotive.tar.gz" -C $sdkTargetFolder/system-images
+echo "no" | ./avdmanager create avd -n automotive_emulator_x86_64_api_29 -c 2048M -f \
+ -k "system-images;${sdkApiLevelAutomotiveMin};android-automotive;x86_64"
# Purely informative, show the list of avd devices
./avdmanager list avd
+
+# To be used by the VMs to start the emulator for tests
+emulator_script_filename="android_emulator_launcher.sh"
+scripts_dir_name="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
+cp "${scripts_dir_name}/${emulator_script_filename}" "${HOME}"
+ANDROID_EMULATOR_RUNNER="${HOME}/${emulator_script_filename}"
+SetEnvVar "ANDROID_EMULATOR_RUNNER" "$ANDROID_EMULATOR_RUNNER"
+
+# Gradle Caching
+cp -r "${scripts_dir_name}/android/gradle_project" /tmp/gradle_project
+cd /tmp/gradle_project
+# Get Gradle files from qtbase
+qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle"
+commit_sha="0d91cc866f2799d56911bcdadabebb137eafcea8"
+curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties
+curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew
+curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat
+mkdir -p gradle/wrapper
+curl "$qtbaseGradleUrl/gradle/wrapper/gradle-wrapper.jar?h=$commit_sha" > gradle/wrapper/gradle-wrapper.jar
+curl "$qtbaseGradleUrl/gradle/wrapper/gradle-wrapper.properties?h=$commit_sha" > gradle/wrapper/gradle-wrapper.properties
+# Run Gradle
+chmod +x gradlew
+ANDROID_SDK_ROOT="$sdkTargetFolder" sh gradlew build
diff --git a/coin/provisioning/common/linux/apt_wait_loop.sh b/coin/provisioning/common/linux/apt_wait_loop.sh
index 3614f2df..60d5d5ed 100755
--- a/coin/provisioning/common/linux/apt_wait_loop.sh
+++ b/coin/provisioning/common/linux/apt_wait_loop.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
diff --git a/coin/provisioning/common/linux/axivion-bauhaus-suite.sh b/coin/provisioning/common/linux/axivion-bauhaus-suite.sh
new file mode 100755
index 00000000..ab4ce5ef
--- /dev/null
+++ b/coin/provisioning/common/linux/axivion-bauhaus-suite.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+# 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
+
+# This script installs Axivion Bauhaus Suite tool.
+
+set -ex
+
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+# source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+DownloadAndExtract () {
+ url=$1
+ sha=$2
+ file=$3
+
+ DownloadURL "$url" "$url" "$sha" "$file"
+ tar -xzvf "$file"
+
+ rm -rf "$file"
+}
+
+
+# Axivion Bauhaus Suite
+sourceFile="http://ci-files01-hki.ci.qt.io/input/axivion/bauhaus-suite-7_7_4-x86_64-gnu_linux.tar.gz"
+targetFile="bauhaus-suite-7_7_4-x86_64-gnu_linux.tar.gz"
+sha1="df17ac0521864a7f1c0b5b3bfded1817cbf47bae"
+cd "$HOME"
+DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$HOME"
+
+mkdir "$HOME/.bauhaus"
+cd "$HOME/.bauhaus"
+wget http://ci-files01-hki.ci.qt.io/input/axivion/Qt_Evaluation_QSR_INTERN_20250118.key
+cd "$HOME"
+
+#Axivion configuration
+configurationFile="http://ci-files01-hki.ci.qt.io/input/axivion/axivion_config_771_new.tar.gz"
+configurationTargetFile="axivion_config.tar.gz"
+configSha1="db77f376e0b3ee0f7a74701790d1c8abe792bebe"
+DownloadAndExtract "$configurationFile" "$configSha1" "$configurationTargetFile" "$HOME"
+
+echo "Axivion Bauhaus Suite = 7.7.4" >> ~/versions.txt
diff --git a/coin/provisioning/common/linux/bootstrap-autostart.sh b/coin/provisioning/common/linux/bootstrap-autostart.sh
new file mode 100755
index 00000000..d590069e
--- /dev/null
+++ b/coin/provisioning/common/linux/bootstrap-autostart.sh
@@ -0,0 +1,89 @@
+#!/usr/bin/env bash
+# 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
+
+set -ex
+
+# Make bootstap agent run in background without terminal view
+# Terminal view can cause issues with Autotests
+
+# Create shell wrapper to pass environment variables
+wrapper="${HOME}/bootstrap-agent.sh"
+autostart_folder="${HOME}/.config/autostart"
+# This directory should exist. Created in base image (tier 1)
+mkdir -p "${autostart_folder}"
+
+# Create autostart desktop file and shell wrapper
+sudo tee "${autostart_folder}/coin-bootstrap-agent.desktop" <<"EOF"
+[Desktop Entry]
+Type=Application
+Exec=/home/qt/bootstrap-agent.sh
+Hidden=false
+X-GNOME-Autostart-enabled=true
+Name=Coin
+EOF
+
+sudo tee "$wrapper" <<"EOF"
+#!/bin/sh
+# Wait for network to come up
+x=0
+while ! cat "/etc/resolv.conf" | grep -v "#" | grep "nameserver" > /dev/null ; do
+ echo "(WW) wating for network ($x/20)..." >> /home/qt/bootstrap-agent.txt
+ x=$((x+1))
+ sleep 1
+ if [ "$x" -gt 20 ]; then
+ echo "(EE) netowrk down. Exiting bootstrap." >> /home/qt/bootstrap-agent.txt
+ exit 1
+ fi
+done
+echo "(**) network found." >> /home/qt/bootstrap-agent.txt
+
+# Wait for context to be mounted
+x=0
+while ! ([ -f "/media/qt/CONTEXT/context.sh" ] || [ -f "/media/CONTEXT/context.sh" ] || [ -f "/run/media/qt/CONTEXT/context.sh" ]); do
+ echo "(WW) waiting for context file to be mounted ($x/20)..." >> /home/qt/bootstrap-agent.txt
+ x=$((x+1))
+ sleep 1
+ if [ "$x" -gt 20 ]; then
+ echo "(WW) no context file found. Mounting manually." >> /home/qt/bootstrap-agent.txt
+ break
+ fi
+done
+
+# establish mount path (differs per distro)
+if ! ([ -f "/media/qt/CONTEXT/context.sh" ] || [ -f "/media/CONTEXT/context.sh" ] || [ -f "/run/media/qt/CONTEXT/context.sh" ]); then
+ MOUNTPATH="invalid"
+ if [ -d "/run/media/qt/CONTEXT" ]; then
+ MOUNTPATH="/run/media/qt/CONTEXT"
+ fi
+ if [ -d "/media/qt/CONTEXT" ]; then
+ MOUNTPATH="/media/qt/CONTEXT"
+ fi
+ if [ -d "/media/CONTEXT" ]; then
+ MOUNTPATH="/media/CONTEXT"
+ fi
+
+ # try mounting if unmounted
+ if [ -d "$MOUNTPATH" ]; then
+ if ! mount | grep "$MOUNTPATH" > /dev/null ; then
+ echo "(WW) context file not mounted..." >> /home/qt/bootstrap-agent.txt
+ echo "(WW) waiting 1 minute" >> /home/qt/bootstrap-agent.txt
+ sleep 60
+ echo "(**) mount /dev/sr0 $MOUNTPATH" >> /home/qt/bootstrap-agent.txt
+ sudo mount -r /dev/sr0 $MOUNTPATH
+ fi
+ fi
+fi
+
+if ([ -f "/media/qt/CONTEXT/context.sh" ] || [ -f "/media/CONTEXT/context.sh" ] || [ -f "/run/media/qt/CONTEXT/context.sh" ]); then
+ echo "(**) context found." >> /home/qt/bootstrap-agent.txt
+else
+ echo "(EE) context not found. Starting bootstrap anyway." >> /home/qt/bootstrap-agent.txt
+fi
+
+/home/qt/bootstrap-agent /dev/ttyS0
+EOF
+
+# set owner and permissions
+sudo chown qt:users "$wrapper"
+sudo chmod 755 "$wrapper"
diff --git a/coin/provisioning/common/linux/cleanup_cache.sh b/coin/provisioning/common/linux/cleanup_cache.sh
new file mode 100755
index 00000000..acb85965
--- /dev/null
+++ b/coin/provisioning/common/linux/cleanup_cache.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+# 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 needs to be called at the end of provisioning, to clean the cache directory
+
+set -e
+set -f
+QT_USER="qt"
+CACHE=".cache"
+
+echo "---- starting cache cleanup."
+
+# skip if user qt does not exist
+echo "---- checking user $QT_USER"
+if grep -q "^$QT_USER:" /etc/passwd; then
+ echo "(**) found user $QT_USER"
+else
+ echo "(WW) user $QT_USER not found."
+ echo "---- skipping cache cleanup."
+ exit 0
+fi
+
+# assume /home/qt as ~ won't expand into sudo
+CACHEDIR="/home/$QT_USER/$CACHE"
+
+# delete files from a directory if it exists
+echo "---- checking cache directory $CACHEDIR"
+if sudo [ -d "$CACHEDIR" ]; then
+ if [ "$(sudo ls -A $CACHEDIR)" ]; then
+ echo "(WW) cache in $CACHEDIR is not empty."
+ echo "---- removing content:"
+
+ # List files and delete in a loop as wildcard won't expand into sudo
+ sudo ls -A1 "$CACHEDIR" | while read -r FILE
+ do
+ echo "--- rm -rf $FILE"
+ sudo rm -rf "$CACHEDIR/$FILE"
+ done
+ else
+ echo "(**) cache in $CACHEDIR is empty."
+ fi
+else
+ if sudo [ -f "$CACHEDIR" ]; then
+ # replace a cache file with a directory
+ echo "(WW) $CACHEDIR is a file."
+ echo "---- removing $CACHEDIR."
+ sudo rm -r "$CACHEDIR"
+ else
+ echo "(WW) cache directory $CACHEDIR not found."
+ fi
+
+ # create new cache directory and assign rights
+ echo "---- creating cache director $CACHEDIR."
+ sudo mkdir "$CACHEDIR"
+ sudo chown $QT_USER:users $CACHEDIR
+ sudo chmod 700 $CACHEDIR
+fi
diff --git a/coin/provisioning/common/linux/cmake_linux.sh b/coin/provisioning/common/linux/cmake_linux.sh
index 02e54b3b..5fadad24 100755
--- a/coin/provisioning/common/linux/cmake_linux.sh
+++ b/coin/provisioning/common/linux/cmake_linux.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2016 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) 2016 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 CMake
@@ -48,11 +11,11 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-majorminorversion="3.21"
-version="3.21.3"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/cmake/cmake-$version-linux-x86_64.tar.gz"
+majorminorversion="3.27"
+version="3.27.7"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-x86_64.tar.gz"
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-x86_64.tar.gz"
-SHA1="5461d4f066a728445e0b6be0e4d250b828323908"
+SHA1="83ab00c8432a71cfc81e933ee7b3c3e14d50ad6f"
targetFolder="/opt/cmake-$version"
appPrefix="cmake-$version-linux-x86_64"
diff --git a/coin/provisioning/common/linux/cmake_min_supported.sh b/coin/provisioning/common/linux/cmake_min_supported.sh
index c4226519..4c64299b 100755
--- a/coin/provisioning/common/linux/cmake_min_supported.sh
+++ b/coin/provisioning/common/linux/cmake_min_supported.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2016 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) 2016 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 the minimum supported CMake to build Qt
@@ -48,7 +11,7 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
majorminorversion="3.16"
version="3.16.8"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/cmake/cmake-$version-Linux-x86_64.tar.gz"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-Linux-x86_64.tar.gz"
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-Linux-x86_64.tar.gz"
SHA1="a4d2f96f475ccc8e1ae1d97cf6c8ce39abaa9d7c"
targetFolder="/opt/cmake-$version"
diff --git a/coin/provisioning/common/linux/cmake_toolchain_files/integrity_toolchain.cmake b/coin/provisioning/common/linux/cmake_toolchain_files/integrity_toolchain.cmake
index 032e565f..63cbc985 100644
--- a/coin/provisioning/common/linux/cmake_toolchain_files/integrity_toolchain.cmake
+++ b/coin/provisioning/common/linux/cmake_toolchain_files/integrity_toolchain.cmake
@@ -69,7 +69,7 @@ set(CMAKE_C_FLAGS "-bsp $ENV{INTEGRITY_BSP} -os_dir $ENV{INTEGRITY_DIR} -non_sh
set(CMAKE_C_FLAGS_DEBUG "-g -Omaxdebug")
set(CMAKE_C_FLAGS_RELEASE "-Ospeed -Olink -Omax -no_uvfd")
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --signed_fields --diag_suppress=1,82,228,236,381,611,961,997,1795,1931,1974,3148 -std=c11 --c++17 --thread_local_storage --exceptions --defer_parse_function_templates")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --signed_fields --diag_suppress=1,82,228,236,381,611,961,997,1795,1931,1974,3148,1721,1424,193,940,620,111,128,185,826,186,68,830,177,554,550,175,1441,546 -std=c11 --c++17 --thread_local_storage --exceptions --defer_parse_function_templates")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -frigor=accurate --signed_fields --no_implicit_include --link_once_templates -non_shared --new_outside_of_constructor --commons -I $ENV{QC_MULTIMEDIA_INC_DIR}")
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
diff --git a/coin/provisioning/common/linux/disable-cracklib.sh b/coin/provisioning/common/linux/disable-cracklib.sh
index e6cfc7a5..c4a5f9ba 100755
--- a/coin/provisioning/common/linux/disable-cracklib.sh
+++ b/coin/provisioning/common/linux/disable-cracklib.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+#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
sudo chmod -x /etc/cron.daily/cracklib-runtime
diff --git a/coin/provisioning/common/linux/disable-notifications.sh b/coin/provisioning/common/linux/disable-notifications.sh
index 28d21656..802f986c 100755
--- a/coin/provisioning/common/linux/disable-notifications.sh
+++ b/coin/provisioning/common/linux/disable-notifications.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+#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
gsettings set org.gnome.desktop.notifications.application:/update-manager/ enable false
gsettings set org.gnome.desktop.notifications show-banners false
diff --git a/coin/provisioning/common/linux/disable-ntp_linux.sh b/coin/provisioning/common/linux/disable-ntp_linux.sh
index 85159331..f0712f48 100755
--- a/coin/provisioning/common/linux/disable-ntp_linux.sh
+++ b/coin/provisioning/common/linux/disable-ntp_linux.sh
@@ -1,53 +1,16 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
echo "Disable Network Time Protocol (NTP)"
-if uname -a |grep -q "Ubuntu"; then
+if uname -a |grep -q "Ubuntu\|Debian" ; then
sudo timedatectl set-ntp false
-elif cat /etc/os-release | grep "PRETTY_NAME" | grep -q "Leap 15"; then
+elif grep "PRETTY_NAME" /etc/os-release | grep -q "Leap 15"; then
(sudo systemctl stop chronyd && sudo systemctl disable chronyd)
-elif cat /etc/os-release |grep "SUSE Linux Enterprise Server 15"; then
+elif grep -q "SUSE Linux Enterprise Server 15" /etc/os-release; then
sudo timedatectl set-ntp false
else
sudo systemctl disable ntpd || sudo /sbin/chkconfig ntpd off
diff --git a/coin/provisioning/common/linux/disable_kwin_overview.sh b/coin/provisioning/common/linux/disable_kwin_overview.sh
new file mode 100755
index 00000000..988c64c5
--- /dev/null
+++ b/coin/provisioning/common/linux/disable_kwin_overview.sh
@@ -0,0 +1,43 @@
+#!/usr/bin/env bash
+# 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
+
+set -e
+set -f
+QT_USER="qt"
+CONFDIR=".config"
+KWINRC="kwinrc"
+KWC5=$(which kwriteconfig5)
+
+if [ -z "$KWC5" ]; then
+ echo "(WW) kwriteconfig5 script not found."
+ echo "---- skipping overview disabling."
+ exit 0;
+fi
+
+echo "---- ensuring window overview is disabled in kwin."
+
+# skip if user qt does not exist
+echo "---- checking user $QT_USER"
+if grep -q "^$QT_USER:" /etc/passwd; then
+ echo "(**) found user $QT_USER"
+else
+ echo "(WW) user $QT_USER not found."
+ echo "---- skipping overview disabling."
+ exit 0;
+fi
+
+CONFIGFILE="/home/$QT_USER/$CONFDIR/$KWINRC"
+
+# Check kwinrc existence
+echo "---- checking for kwinrc."
+if [ -f "$CONFIGFILE" ]; then
+ echo "(**) found kwinrc at $CONFIGFILE. Disabling overview."
+
+ $KWC5 --file "$CONFIGFILE" --group Effect-windowview --key BorderActivateAll "9"
+ $KWC5 --file "$CONFIGFILE" --group Plugins --key windowOverview "false"
+
+else
+ echo "(WW) no kwinrc found at $CONFIGFILE."
+ echo "(WW) exiting."
+fi
diff --git a/coin/provisioning/common/linux/disable_selinux.sh b/coin/provisioning/common/linux/disable_selinux.sh
index 64852e79..a788818e 100755
--- a/coin/provisioning/common/linux/disable_selinux.sh
+++ b/coin/provisioning/common/linux/disable_selinux.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+#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
# We need to disable selinux while we are overwriting some binaries
# required by it. If this is not done, ICU provisioning will create
diff --git a/coin/provisioning/common/linux/docker.sh b/coin/provisioning/common/linux/docker.sh
index d63a7c34..27673698 100755
--- a/coin/provisioning/common/linux/docker.sh
+++ b/coin/provisioning/common/linux/docker.sh
@@ -1,77 +1,42 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -e
-
PROVISIONING_DIR="$(dirname "$0")/../../"
-. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
-. "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
-
-
-localRepo=http://ci-files01-hki.intra.qt.io/input/docker
-upstreamRepo=https://download.docker.com/linux/ubuntu/dists/bionic/pool/stable/amd64
-
-echo '
- f4c941807310e3fa470dddfb068d599174a3daec containerd.io_1.2.10-3_amd64.deb
- ee640d9258fd4d3f4c7017ab2a71da63cbbead55 docker-ce_19.03.4~3-0~ubuntu-bionic_amd64.deb
- 09402bf5dac40f0c50f1071b17f38f6584a42ad1 docker-ce-cli_19.03.4~3-0~ubuntu-bionic_amd64.deb
-' \
- | xargs -n2 | while read sha f
-do
- DownloadURL $localRepo/$f $upstreamRepo/$f $sha
-done
+# shellcheck source=../unix/common.sourced.sh
+source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
+# shellcheck source=../unix/DownloadURL.sh
+source "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
+
+localRepo=http://ci-files01-hki.ci.qt.io/input/docker
+upstreamRepo=https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/
+
+function getEachUpstream () {
+ while read -r sha f
+ do DownloadURL "$localRepo/$f" "$upstreamRepo/$f" "$sha"
+ done
+}
+cat <<EOF | getEachUpstream
+2666840157bab3b77a850236fbf323c423fb564a containerd.io_1.6.9-1_amd64.deb
+ec6a1ad99b19b6a674349fb13bcc10d62c54c404 docker-ce_23.0.0-1~ubuntu.20.04~focal_amd64.deb
+130774916fa7e2c9997b8fcb4e7696a343f12fb0 docker-ce-cli_23.0.0-1~ubuntu.20.04~focal_amd64.deb
+EOF
sudo apt-get -y install ./containerd.io_*.deb ./docker-ce_*.deb ./docker-ce-cli_*.deb
rm -f ./containerd.io_*.deb ./docker-ce_*.deb ./docker-ce-cli_*.deb
-sudo usermod -a -G docker $USER
+sudo usermod -a -G docker "$USER"
sudo docker --version
# Download and install the docker-compose extension from https://github.com/docker/compose/releases
f=docker-compose-$(uname -s)-$(uname -m)
+dockerComposeVersion="v2.15.1"
DownloadURL \
- $localRepo/$f-1.24.1 \
- https://github.com/docker/compose/releases/download/1.24.1/$f \
- cfb3439956216b1248308141f7193776fcf4b9c9b49cbbe2fb07885678e2bb8a
+ "$localRepo/$f-${dockerComposeVersion}" \
+ "https://github.com/docker/compose/releases/download/${dockerComposeVersion}/$f" \
+ bcfd9ea51dee4c19dccdfaeef0e7956ef68bf14f3d175933742061a7271ef0f5
sudo install -m 755 ./docker-compose* /usr/local/bin/docker-compose
sudo docker-compose --version
rm ./docker-compose*
@@ -80,4 +45,4 @@ rm ./docker-compose*
sudo apt-get install avahi-daemon -y
# Start testserver provisioning
-sudo "$(readlink -f $(dirname ${BASH_SOURCE[0]}))/../shared/testserver/docker_testserver.sh"
+sudo "$(readlink -f "$(dirname "${BASH_SOURCE[0]}")")/../shared/testserver/docker_testserver.sh"
diff --git a/coin/provisioning/common/linux/enable_test_stacktraces.sh b/coin/provisioning/common/linux/enable_test_stacktraces.sh
new file mode 100755
index 00000000..7b5871db
--- /dev/null
+++ b/coin/provisioning/common/linux/enable_test_stacktraces.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+#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
+
+### Enable automatic stacktraces in case of fatal errors in QTest.
+# This requires that gdb can be found in PATH, and that no
+# kernel security settings like yama.ptrace_scope prevent it.
+
+
+PROVISIONING_DIR="$(dirname "$0")/../.."
+# shellcheck source=../unix/common.sourced.sh
+source "$PROVISIONING_DIR/common/unix/common.sourced.sh"
+
+
+f="/etc/sysctl.d/10-ptrace.conf"
+if [ -f $f ]
+then
+ echo "Modifying $f ..."
+ sudo sed -i '/^kernel\.yama\.ptrace_scope *= *[1-9]$/s/[1-9]$/0/' $f
+ # Reload the modified setting, so that we can verify it right afterwards.
+ sudo sysctl -p $f
+fi
+
+# Verify that yama.ptrace_scope = 0, if it's supported by the kernel.
+ptrace_scope_value=$(sudo sysctl kernel.yama.ptrace_scope 2>/dev/null | sed -E 's/.*([0-9])$/\1/')
+if [ -n "$ptrace_scope_value" ] && [ "$ptrace_scope_value" != 0 ]
+then
+ fatal "kernel.yama.ptrace_scope = $ptrace_scope_value \
+ which means that QTest automatic stacktraces will not work"
+else
+ echo kernel.yama.ptrace_scope = "$ptrace_scope_value"
+fi
+
+
+$CMD_PKG_INSTALL gdb
diff --git a/coin/provisioning/common/linux/fbx_linux.sh b/coin/provisioning/common/linux/fbx_linux.sh
index 6241ec5c..0c1176d1 100755
--- a/coin/provisioning/common/linux/fbx_linux.sh
+++ b/coin/provisioning/common/linux/fbx_linux.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 installs FBX SDK
@@ -49,7 +12,7 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
set -e
tarballName="fbx20161_2_fbxsdk_linux.tar.gz"
targetFolder="/opt/fbx"
-cachedUrl="http://ci-files01-hki.intra.qt.io/input/fbx/$tarballName"
+cachedUrl="http://ci-files01-hki.ci.qt.io/input/fbx/$tarballName"
officialUrl="http://download.autodesk.com/us/fbx_release_older/2016.1.2/$tarballName"
sha1="b0a08778de025e2c6e90d6fbdb6531f74a3da605"
tmpFolder="/tmp"
diff --git a/coin/provisioning/common/linux/gcc.sh b/coin/provisioning/common/linux/gcc.sh
index 884129c3..243b9ff6 100755
--- a/coin/provisioning/common/linux/gcc.sh
+++ b/coin/provisioning/common/linux/gcc.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 builds GCC from sources
@@ -56,13 +19,13 @@ function InstallGCC() {
tmpFolder="/tmp"
- prebuiltGCC="http://ci-files01-hki.intra.qt.io/input/gcc/gcc-$version-prebuilt.tar.gz"
+ prebuiltGCC="http://ci-files01-hki.ci.qt.io/input/gcc/gcc-$version-prebuilt.tar.gz"
prebuiltTarget="$tmpFolder/gcc-$version-prebuilt.tar.gz"
installPrefix="/usr/local"
suffixVersion=$(echo "$version" | cut -d "." -f1,2)
sourceFile="gcc-$version.tar.xz"
- cachedUrl="http://ci-files01-hki.intra.qt.io/input/gcc/$sourceFile"
+ cachedUrl="http://ci-files01-hki.ci.qt.io/input/gcc/$sourceFile"
officialUrl="https://gcc.gnu.org/pub/gcc/releases/gcc-$version/gcc-$version.tar.xz"
targetFile="$tmpFolder/$sourceFile"
diff --git a/coin/provisioning/common/linux/install-cpdb.sh b/coin/provisioning/common/linux/install-cpdb.sh
new file mode 100755
index 00000000..3a7ae3b9
--- /dev/null
+++ b/coin/provisioning/common/linux/install-cpdb.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+# 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
+
+# This script installs cpdb from sources.
+# Requires GCC and Perl to be in PATH.
+# The following dependencies should be pre-installed:
+# make, autoconf, autopoint, libglib2.0-dev, libdbus-1-dev, libtool
+set -ex
+
+repName="cpdb-libs"
+gitUrl="https://github.com/openprinting/$repName.git"
+tmpdir="/tmp"
+repDir="$tmpdir/$repName"
+prefix="/usr"
+rm -rf "$repDir"
+cd "$tmpdir"
+git clone -q "$gitUrl"
+cd "$repDir"
+# cpdb-libs v2.0b4 with build bug fixed
+git checkout -q ce848f1571a82ec03881fce127ff28bec8da239e
+./autogen.sh > /dev/null
+./configure --prefix="$prefix" > /dev/null
+make "-j$(nproc)" > /dev/null && sudo make install > /dev/null
+sudo ldconfig
+rm -rf "$repDir"
diff --git a/coin/provisioning/common/linux/install-ffmpeg.sh b/coin/provisioning/common/linux/install-ffmpeg.sh
deleted file mode 100755
index 0dbf86ae..00000000
--- a/coin/provisioning/common/linux/install-ffmpeg.sh
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env bash
-
-############################################################################
-##
-## 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$
-##
-#############################################################################
-
-# This script will build and install FFmpeg static libs
-set -ex
-
-# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
-source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
-# shellcheck source=../unix/SetEnvVar.sh
-source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-
-ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
-
-sudo apt install yasm
-
-version="n5.0"
-ffmpeg_name="FFmpeg-$version"
-
-url_cached="http://ci-files01-hki.intra.qt.io/input/ffmpeg/$version.tar.gz"
-url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
-sha1="1a979876463fd81e481d53ceb3cc117f0fce8521"
-
-target_folder="$HOME"
-app_prefix=""
-
-InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_folder" "$app_prefix"
-
-mkdir -p "$target_folder/$ffmpeg_name/build"
-pushd "$target_folder/$ffmpeg_name/build"
-../configure $ffmpeg_config_options --prefix=installed
-make install -j
-popd
-
-SetEnvVar "FFMPEG_DIR" "$target_folder/$ffmpeg_name/build/installed"
diff --git a/coin/provisioning/common/linux/install-flite.sh b/coin/provisioning/common/linux/install-flite.sh
new file mode 100755
index 00000000..2f89e94e
--- /dev/null
+++ b/coin/provisioning/common/linux/install-flite.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env bash
+# 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 installs flite from sources.
+# Requires make, GCC and git to be in PATH.
+set -ex
+
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+repName="flite"
+gitUrl="https://github.com/festvox/$repName.git"
+tmpdir="/tmp"
+repDir="$tmpdir/$repName"
+prefix="/usr"
+rm -rf "$repDir"
+cd "$tmpdir"
+git clone -q "$gitUrl"
+cd "$repDir"
+git checkout -q v2.2
+./configure --with-pic --enable-shared --prefix="$prefix" > /dev/null
+make "-j$(nproc)" > /dev/null && sudo make install > /dev/null
+rm -rf "$repDir"
diff --git a/coin/provisioning/common/linux/install-git.sh b/coin/provisioning/common/linux/install-git.sh
index b0b01c84..9e2804db 100755
--- a/coin/provisioning/common/linux/install-git.sh
+++ b/coin/provisioning/common/linux/install-git.sh
@@ -1,37 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2022 The Qt Company Ltd.
-## Contact: http://www.qt.io/licensing/
-##
-## This file is part of the provisioning scripts of the Qt Toolkit.
-##
-## $QT_BEGIN_LICENSE:LGPL21$
-## Commercial License Usage
-## Licensees holding valid commercial Qt licenses may use this file in
-## accordance with the commercial license agreement provided with the
-## Software or, alternatively, in accordance with the terms contained in
-## a written agreement between you and The Qt Company. For licensing terms
-## and conditions see http://www.qt.io/terms-conditions. For further
-## information use the contact form at http://www.qt.io/contact-us.
-##
-## GNU Lesser General Public License Usage
-## Alternatively, this file may be used under the terms of the GNU Lesser
-## General Public License version 2.1 or version 3 as published by the Free
-## Software Foundation and appearing in the file LICENSE.LGPLv21 and
-## LICENSE.LGPLv3 included in the packaging of this file. Please review the
-## following information to ensure the GNU Lesser General Public License
-## requirements will be met: https://www.gnu.org/licenses/lgpl.html and
-## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-##
-## As a special exception, The Qt Company gives you certain additional
-## rights. These rights are described in The Qt Company LGPL Exception
-## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-##
-## $QT_END_LICENSE$
-##
-#############################################################################
+# 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 install git from sources.
# Requires GCC and Perl to be in PATH.
@@ -42,23 +11,23 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-version="2.31.1"
+version="2.36.1"
officialUrl="https://github.com/git/git/archive/refs/tags/v$version.tar.gz"
-cachedUrl="http://ci-files01-hki.intra.qt.io/input/git/git-$version.tar.gz"
+cachedUrl="http://ci-files01-hki.ci.qt.io/input/git/git-$version.tar.gz"
targetFile="/tmp/git-$version.tar.gz"
-sha="859dbeaefd9cb6c590050b9cc4b83cb51e412410"
+sha="a17c11da2968f280a13832d97f48e9039edac354"
DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
sourceDir="/tmp/git-$version-source"
-mkdir $sourceDir
-tar -xzf "$targetFile" -C $sourceDir
+mkdir "$sourceDir"
+tar -xzf "$targetFile" -C "$sourceDir"
-cd "$sourceDir/git-2.31.1"
+cd "$sourceDir/git-$version"
installDir="$HOME/git"
make configure
-./configure --prefix=$installDir
+./configure --prefix="$installDir"
make all
sudo make install
SetEnvVar "PATH" "\"$installDir/bin:\$PATH\""
-$installDir/bin/git --version
+"$installDir/bin/git" --version
diff --git a/coin/provisioning/common/linux/install-nodejs.sh b/coin/provisioning/common/linux/install-nodejs.sh
new file mode 100755
index 00000000..95a8a0e5
--- /dev/null
+++ b/coin/provisioning/common/linux/install-nodejs.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# 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
+
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+# This script will install node.js 18.16.0
+version="18.16.0"
+
+uname_m="$(uname -m)"
+case "$uname_m" in
+ x86_64|amd64)
+ sha256="44d93d9b4627fe5ae343012d855491d62c7381b236c347f7666a7ad070f26548"
+ pkgname="node-v$version-linux-x64.tar.xz"
+ dirname="node-v$version-linux-x64"
+ ;;
+ arm64|aarch64)
+ sha256="c81dfa0bada232cb4583c44d171ea207934f7356f85f9184b32d0dde69e2e0ea"
+ pkgname="node-v$version-linux-arm64.tar.xz"
+ dirname="node-v$version-linux-arm64"
+ ;;
+ *) fatal "Unknown architecture in uname: $uname_m" 43 ;;
+esac
+
+internalUrl="http://ci-files01-hki.ci.qt.io/input/nodejs/$pkgname"
+externalUrl="https://nodejs.org/dist/v$version/$pkgname"
+
+targetFile="$HOME/$pkgname"
+DownloadURL "$internalUrl" "$externalUrl" "$sha256" "$targetFile"
+echo "Installing nodejs"
+tar -xJf "$targetFile" -C "$HOME"
+rm "$targetFile"
+
+installPrefix="/opt/$dirname"
+sudo mv "$HOME/$dirname" "$installPrefix"
+
+SetEnvVar "PATH" "$installPrefix/bin:\$PATH"
+
+echo "nodejs = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/linux/install-vcpkg-ports-android.sh b/coin/provisioning/common/linux/install-vcpkg-ports-android.sh
new file mode 100755
index 00000000..4733e9aa
--- /dev/null
+++ b/coin/provisioning/common/linux/install-vcpkg-ports-android.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+# 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
+
+echo "Installing vcpkg android ports"
+
+pushd "${BASH_SOURCE%/*}/vcpkg" || exit
+cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
+
+"$VCPKG_ROOT/vcpkg" install --triplet x86-android-qt --x-install-root x86-android-qt-tmp --debug
+"$VCPKG_ROOT/vcpkg" install --triplet x86_64-android-qt --x-install-root x86_64-android-qt-tmp --debug
+
+mkdir -p "$VCPKG_ROOT/installed"
+cp -R x86-android-qt-tmp/* "$VCPKG_ROOT/installed/"
+cp -R x86_64-android-qt-tmp/* "$VCPKG_ROOT/installed/"
+
+versions=$(jq -r '.overrides[] | "vcpkg \(.name) for android = \(.version)"' vcpkg.json)
+versions="${versions//vcpkg/\\nvcpkg}"
+echo "$versions" >> ~/versions.txt
+
+rm -rf x86-android-qt-tmp
+rm -rf x86_64-android-qt-tmp
+
+popd || exit
diff --git a/coin/provisioning/common/linux/install-vcpkg-ports.sh b/coin/provisioning/common/linux/install-vcpkg-ports.sh
new file mode 100755
index 00000000..90257841
--- /dev/null
+++ b/coin/provisioning/common/linux/install-vcpkg-ports.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+# 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
+
+echo "Installing vcpkg ports"
+
+pushd "${BASH_SOURCE%/*}/vcpkg" || exit
+cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
+
+"$VCPKG_ROOT/vcpkg" install --triplet x64-linux-qt --x-install-root x64-linux-qt-tmp --debug
+
+mkdir -p "$VCPKG_ROOT/installed"
+cp -R x64-linux-qt-tmp/* "$VCPKG_ROOT/installed/"
+
+versions=$(jq -r '.overrides[] | "vcpkg \(.name) = \(.version)"' vcpkg.json)
+versions="${versions//vcpkg/\\nvcpkg}"
+echo "$versions" >> ~/versions.txt
+
+rm -rf x64-linux-qt-tmp
+
+popd || exit
diff --git a/coin/provisioning/common/linux/install-vcpkg.sh b/coin/provisioning/common/linux/install-vcpkg.sh
new file mode 100755
index 00000000..80917beb
--- /dev/null
+++ b/coin/provisioning/common/linux/install-vcpkg.sh
@@ -0,0 +1,59 @@
+#!/usr/bin/env bash
+# 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
+
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
+source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
+
+vcpkgVersion=$(grep 'vcpkg_version=' "${BASH_SOURCE%/*}/../shared/vcpkg_version.txt" | cut -d '=' -f 2)
+
+vcpkgRoot="$HOME/vcpkg-$vcpkgVersion"
+vcpkgRepo=$(head -n 1 "${BASH_SOURCE%/*}/../shared/vcpkg_registry_mirror.txt")
+
+echo "Cloning the vcpkg repo"
+git clone "$vcpkgRepo" "$vcpkgRoot"
+git -C "$vcpkgRoot" checkout "tags/$vcpkgVersion"
+
+vcpkgToolReleaseTag=$(grep 'vcpkg_tool_release_tag=' "${BASH_SOURCE%/*}/../shared/vcpkg_tool_release_tag.txt" | cut -d '=' -f 2)
+nonDottedReleaseTag=${vcpkgVersion//-/}
+
+vcpkgToolOfficialUrl="https://github.com/microsoft/vcpkg-tool/archive/refs/tags/$vcpkgToolReleaseTag.tar.gz"
+vcpkgToolCacheUrl="http://ci-files01-hki.ci.qt.io/input/vcpkg/vcpkg-tool-$nonDottedReleaseTag.tar.gz"
+vcpkgToolSHA1="c6029714fca0304779f10c9c1cbe4b061a2fd945"
+vcpkgToolSourceFolder="$HOME/vcpkg-tool-$vcpkgToolReleaseTag"
+vcpkgToolBuildFolder="$HOME/vcpkg-tool-$vcpkgToolReleaseTag/build"
+
+InstallFromCompressedFileFromURL "$vcpkgToolCacheUrl" "$vcpkgToolOfficialUrl" "$vcpkgToolSHA1" "$HOME" ""
+cmake -S "$vcpkgToolSourceFolder" -B "$vcpkgToolBuildFolder" -GNinja -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -DVCPKG_DEVELOPMENT_WARNINGS=OFF
+cmake --build "$vcpkgToolBuildFolder" --parallel
+
+cp "$vcpkgToolBuildFolder/vcpkg" "$vcpkgRoot/"
+rm -rf "$vcpkgToolSourceFolder"
+
+if [ ! -f "$vcpkgRoot/vcpkg" ]
+then
+ echo "Can't find $vcpkgRoot/vcpkg."
+ exit 1
+fi
+
+chmod 755 "$vcpkgRoot/vcpkg"
+touch "$vcpkgRoot/vcpkg.disable-metrics"
+
+# Setting VCPKG_ROOT using Set-EnvVar 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.
+SetEnvVar "VCPKG_ROOT" "$vcpkgRoot"
+export VCPKG_ROOT="$vcpkgRoot"
+
+# Set a source for vcpkg Binary and Asset Cache
+# The `coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh` script is
+# mounting the SMB share located in `vcpkg-server.ci.qt.io/vcpkg` to
+# $HOME/vcpkg-cache/
+export VCPKG_BINARY_SOURCES="files,$HOME/vcpkg-cache/binaries,readwrite"
+export X_VCPKG_ASSET_SOURCES="x-azurl,file:///$HOME/vcpkg-cache/assets,,readwrite"
+
+echo "vcpkg = $vcpkgVersion" >> ~/versions.txt
diff --git a/coin/provisioning/common/linux/install_dwz.sh b/coin/provisioning/common/linux/install_dwz.sh
index 8c035529..2d8af4ff 100755
--- a/coin/provisioning/common/linux/install_dwz.sh
+++ b/coin/provisioning/common/linux/install_dwz.sh
@@ -1,44 +1,7 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2018 The Qt Company Ltd.
-## Copyright (C) 2020 Konstantin Tokarev <annulen@yandex.ru>
-## 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.
+# Copyright (C) 2020 Konstantin Tokarev <annulen@yandex.ru>
+# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
@@ -49,7 +12,7 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="0.13"
sha1="21e6d5878bb84ac6c9ad07b00ed248d8c547bc7d"
-internalUrl="http://ci-files01-hki.intra.qt.io/input/centos/dwz-$version.tar.xz"
+internalUrl="http://ci-files01-hki.ci.qt.io/input/centos/dwz-$version.tar.xz"
externalUrl="https://www.sourceware.org/ftp/dwz/releases/dwz-$version.tar.xz"
targetDir="$HOME/dwz"
diff --git a/coin/provisioning/common/linux/integrity.sh b/coin/provisioning/common/linux/integrity.sh
index bb47e796..e0d95681 100755
--- a/coin/provisioning/common/linux/integrity.sh
+++ b/coin/provisioning/common/linux/integrity.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 needed toolchains for INTEGRITY
@@ -48,9 +11,9 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-urlToolchainEs7="http://ci-files01-hki.intra.qt.io/input/integrity/integrity_toolchain_es7_20042022.zip"
-urlLibeglmegapack="http://ci-files01-hki.intra.qt.io/input/integrity/integrity_libeglmegapack.zip"
-SHA1_toolchainEs7="9e05277ec6a4610d4df565c3fbe24b9ce2a1f057"
+urlToolchainEs7="http://ci-files01-hki.ci.qt.io/input/integrity/integrity_toolchain_es7_05102022.zip"
+urlLibeglmegapack="http://ci-files01-hki.ci.qt.io/input/integrity/integrity_libeglmegapack.zip"
+SHA1_toolchainEs7="a95e11996d89218ac93493484e483d169976f565"
SHA1_Libeglmegapack="7f8ca64132eaea66202ea8db7f71f3300aab0777"
targetFolder="$HOME"
appPrefix=""
@@ -63,7 +26,7 @@ InstallFromCompressedFileFromURL "$urlToolchainEs7" "$urlToolchainEs7" "$SHA1_to
echo "Install Integrity toolchain addons"
DownloadURL "$urlLibeglmegapack" "$urlLibeglmegapack" "$SHA1_Libeglmegapack" "/tmp/integrity_libeglmegapack.zip"
unzip "/tmp/integrity_libeglmegapack.zip" -d "/tmp"
-mv /tmp/toolchain/* $targetFolder/toolchain
-mv $targetFolder/toolchain $targetFolder/integrity_toolchain
-cp $toolchain_file "$targetFolder/integrity_toolchain/toolchain.cmake"
+mv /tmp/toolchain/* "$targetFolder/toolchain"
+mv "$targetFolder/toolchain" "$targetFolder/integrity_toolchain"
+cp "$toolchain_file" "$targetFolder/integrity_toolchain/toolchain.cmake"
sudo rm -fr /tmp/toolchain
diff --git a/coin/provisioning/common/linux/mimersql.sh b/coin/provisioning/common/linux/mimersql.sh
new file mode 100755
index 00000000..957ad492
--- /dev/null
+++ b/coin/provisioning/common/linux/mimersql.sh
@@ -0,0 +1,42 @@
+#!/usr/bin/env bash
+# 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
+
+set -e
+
+SSL_VER=$1
+PACK_TYPE=$2
+PROVISIONING_DIR="$(dirname "$0")/../../"
+# shellcheck source=../unix/common.sourced.sh
+source "${BASH_SOURCE%/*}/../unix/common.sourced.sh"
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+
+
+localRepo=http://ci-files01-hki.ci.qt.io/input/docker
+upstreamRepo=http://install.mimer.com/qt
+if [ "$SSL_VER" = "openssl-3" ]; then
+ if [ "$PACK_TYPE" = "rpm" ]; then
+ packageFile=mimersqlsrv-11.0.x86_64-openssl3.rpm
+ sha=5f21d440a12cddcc786ddff3a136bef821f1bf64
+ else
+ packageFile=mimersqlsrv_11.0_amd64-openssl3.deb
+ sha=3239b593724c564862d3bbfb70fed16909a93959
+ fi
+else
+ if [ "$PACK_TYPE" = "rpm" ]; then
+ packageFile=mimersqlsrv-11.0.x86_64-openssl1.rpm
+ sha=34533347424ba540b36d0a6ae2f416b901d8bafb
+ else
+ packageFile=mimersqlsrv_11.0_amd64-openssl1.deb
+ sha=f4ac939a190ef048150b06cecc7a392386b6e132
+ fi
+fi
+DownloadURL $localRepo/$packageFile $upstreamRepo/$packageFile $sha /tmp/$packageFile
+
+if [ "$PACK_TYPE" = "rpm" ]; then
+ sudo rpm -U /tmp/$packageFile
+else
+ sudo apt-get -y install /tmp/$packageFile
+fi
+rm -f /tmp/$packageFile
diff --git a/coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh b/coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh
new file mode 100755
index 00000000..6a3a5211
--- /dev/null
+++ b/coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+# 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
+
+set -e
+
+targetDir="$HOME/vcpkg-cache"
+
+# Specify the path to the credential file
+credentialsFile="$HOME/samba_credentials"
+
+sudo mkdir -p "$targetDir"
+
+# Mount the SMB share
+# Check if the mount was successful
+if sudo mount -t cifs //vcpkg-server.ci.qt.io/vcpkg "$targetDir" -o credentials="$credentialsFile",uid="$(id -u)",gid="$(id -g)"
+then
+ echo "SMB share mounted successfully!"
+else
+ echo "Failed to mount SMB share."
+fi
diff --git a/coin/provisioning/common/linux/qnx_710.sh b/coin/provisioning/common/linux/qnx_710.sh
index 790701cf..41d2d103 100755
--- a/coin/provisioning/common/linux/qnx_710.sh
+++ b/coin/provisioning/common/linux/qnx_710.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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.
@@ -55,9 +18,9 @@ DownloadAndExtract () {
folder=$4
DownloadURL "$url" "$url" "$sha" "$file"
- sudo tar -C $folder -Jxf $file
+ sudo tar -C "$folder" -Jxf "$file"
- rm -rf $file
+ rm -rf "$file"
}
aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
@@ -70,36 +33,36 @@ folderName="qnx710"
targetPath="$targetFolder$folderName"
qemuTargetPath="$HOME/QNX"
qemuIpAddress="172.31.1.10"
-qemuNetwork="172.31.1.1"
+export qemuNetwork="172.31.1.1"
qemuSSHuser="root"
qemuSSHurl="$qemuSSHuser@$qemuIpAddress"
qemuLDpath="/proc/boot:/system/lib:/system/lib/dll:/home/qt/work/install/target/lib"
if [ ! -d "$targetFolder" ]; then
- mkdir -p $targetFolder
+ mkdir -p "$targetFolder"
fi
# QNX SDP
-sourceFile="http://ci-files01-hki.intra.qt.io/input/qnx/qnx710-windows-linux-20220405.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"
-sudo cp $aarch64le_toolchain $targetPath
-sudo cp $armv7le_toolchain $targetPath
-sudo cp $x8664_toolchain $targetPath
-cp -R $QNX_qemu_bld_files_dir $qemuTargetPath
+sudo cp "$aarch64le_toolchain" "$targetPath"
+sudo cp "$armv7le_toolchain" "$targetPath"
+sudo cp "$x8664_toolchain" "$targetPath"
+cp -R "$QNX_qemu_bld_files_dir" "$qemuTargetPath"
# fc-match tool is missing from QNX SDP and tst_qfont requires it to work corretly
# Download code-only package from https://www.iana.org/time-zones and follow README
# to build tools for QNX x86_64. If need to build new tool create new qnx_qemu_utils
# package which contains it and update required info below
-sourceFile="http://ci-files01-hki.intra.qt.io/input/qnx/qnx_qemu_utils_20211208.tar.xz"
+sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx_qemu_utils_20211208.tar.xz"
targetFile="qnx_qemu_utils.tar.xz"
targetFolder="$qemuTargetPath/local/misc_files"
sha1="7653f5d50f61f1591d7785c3ec261228ecc9dd22"
-if [ ! -d "$targetFolder" ]; then
- mkdir -p $targetFolder
-fi
+
+mkdir -p "$targetFolder"
+
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
# Add ssl certificates. Expects Ubuntu 20.04 LTS with ca-certificates package installed
@@ -110,10 +73,10 @@ cp -PR /etc/ssl/certs/* "$targetFolder/etc/ssl/certs"
sudo chown -R qt:users "$targetPath"
# Verify that we have last files in tars
-if [ ! -f $targetPath/qnxsdp-env.sh ] || [ ! -f $targetPath/qnx-toolchain-x8664.cmake ]
+if [ ! -f "$targetPath/qnxsdp-env.sh" ] || [ ! -f "$targetPath/qnx-toolchain-x8664.cmake" ]
then
echo "QNX toolchain installation failed!"
- exit -1
+ exit 1
fi
# Set env variables
diff --git a/coin/provisioning/common/linux/qnx_800.sh b/coin/provisioning/common/linux/qnx_800.sh
new file mode 100755
index 00000000..52545d41
--- /dev/null
+++ b/coin/provisioning/common/linux/qnx_800.sh
@@ -0,0 +1,85 @@
+#!/usr/bin/env bash
+# Copyright (C) 2024 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 8.
+
+set -ex
+
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+DownloadAndExtract () {
+ url=$1
+ sha=$2
+ file=$3
+ folder=$4
+
+ DownloadURL "$url" "$url" "$sha" "$file"
+ sudo tar -C "$folder" -Jxf "$file"
+
+ rm -rf "$file"
+}
+
+aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
+armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake"
+x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake"
+QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/"
+
+targetFolder="/opt/"
+folderName="qnx800"
+targetPath="$targetFolder$folderName"
+qemuTargetPath="$HOME/QNX"
+qemuIpAddress="172.31.1.10"
+export qemuNetwork="172.31.1.1"
+qemuSSHuser="root"
+qemuSSHurl="$qemuSSHuser@$qemuIpAddress"
+qemuLDpath="/proc/boot:/system/lib:/system/lib/dll:/home/qt/work/install/target/lib"
+
+if [ ! -d "$targetFolder" ]; then
+ mkdir -p "$targetFolder"
+fi
+
+# QNX SDP
+sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-linux-20240510.tar.xz"
+targetFile="qnx800.tar.xz"
+sha1="93245a5bc11b88563328f0763573942fd25b5e18"
+DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
+
+sudo cp "$aarch64le_toolchain" "$targetPath"
+sudo cp "$armv7le_toolchain" "$targetPath"
+sudo cp "$x8664_toolchain" "$targetPath"
+cp -R "$QNX_qemu_bld_files_dir" "$qemuTargetPath"
+# fc-match tool is missing from QNX SDP and tst_qfont requires it to work corretly
+# Download code-only package from https://www.iana.org/time-zones and follow README
+# to build tools for QNX x86_64. If need to build new tool create new qnx_qemu_utils
+# package which contains it and update required info below
+sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx_qemu_utils_20211208.tar.xz"
+targetFile="qnx_qemu_utils.tar.xz"
+targetFolder="$qemuTargetPath/local/misc_files"
+sha1="7653f5d50f61f1591d7785c3ec261228ecc9dd22"
+
+mkdir -p "$targetFolder"
+
+DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
+
+# Add ssl certificates. Expects Ubuntu 22.04 LTS with ca-certificates package installed
+cp -R /usr/share/ca-certificates "$targetFolder"
+mkdir -p "$targetFolder/etc/ssl/certs"
+cp -PR /etc/ssl/certs/* "$targetFolder/etc/ssl/certs"
+
+sudo chown -R qt:users "$targetPath"
+
+# Verify that we have last files in tars
+if [ ! -f "$targetPath/qnxsdp-env.sh" ] || [ ! -f "$targetPath/qnx-toolchain-x8664.cmake" ]
+then
+ echo "QNX toolchain installation failed!"
+ exit 1
+fi
+
+# Set env variables
+SetEnvVar "QNX_800" "$targetPath"
+
+echo "QNX SDP = 8.0.0" >> ~/versions.txt
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt b/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt
index 53063373..13db322b 100755
--- a/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/opt_scripts/opt_nfs_qt
@@ -25,7 +25,7 @@ function configure()
cat >output/option_files/post_start.opt_nfs <<EOF
echo "---> Starting NFS"
-STARTU_P(fs_nfs3_t,__FS_NFS3_ID__) fs-nfs3 172.31.1.1:$OPT_NFS_QT $OPT_NFS_QT
+STARTU_P(fs_nfs3_t,__FS_NFS3_ID__) fs-nfs3 -t 172.31.1.1:$OPT_NFS_QT $OPT_NFS_QT
EOF
fi
diff --git a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom
index 914ae503..37cbd96d 100644
--- a/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom
+++ b/coin/provisioning/common/linux/qnx_qemu_build_files/local/snippets/system_files.custom
@@ -21,7 +21,7 @@ lib/libGLESv2.so.1=usr/lib/libGLESv2.so.1
lib/libEGL.so.1=usr/lib/libEGL.so.1
lib/libz.so.2=usr/lib/libz.so.2
lib/libxml2.so.2=usr/lib/libxml2.so.2
-lib/libfreetype.so.23=usr/lib/libfreetype.so.23
+lib/libfreetype.so.24=usr/lib/libfreetype.so.24
lib/libbz2.so.1=usr/lib/libbz2.so.1
lib/liblzma.so.5=usr/lib/liblzma.so.5
lib/libbacktrace.so.1=usr/lib/libbacktrace.so.1
@@ -45,6 +45,14 @@ lib/dll/img_codec_tif.so=lib/dll/img_codec_tif.so
# for inotify
xbin/fsevmgr=sbin/fsevmgr
+##############################################
+### MM support
+##############################################
+lib/libstrm.so.1=usr/lib/libstrm.so.1
+lib/libcamapi.so.1=usr/lib/libcamapi.so.1
+lib/libmmrndclient.so.1=usr/lib/libmmrndclient.so.1
+lib/libscreen.so.1=usr/lib/libscreen.so.1
+
# for fontconfig
lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1
xbin/fc-cache=bin/fc-cache
diff --git a/coin/provisioning/common/linux/remove-update_notifier.sh b/coin/provisioning/common/linux/remove-update_notifier.sh
index 4ee32d61..383f242d 100755
--- a/coin/provisioning/common/linux/remove-update_notifier.sh
+++ b/coin/provisioning/common/linux/remove-update_notifier.sh
@@ -1,3 +1,15 @@
#!/usr/bin/env bash
+#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
-sudo apt -q -y remove update-notifier update-manager python3-distupgrade python3-update-manager ubuntu-release-upgrader-core update-manager-core
+installPackages+=(update-notifier)
+
+if uname -a |grep -q "Ubuntu" ; then
+installPackages+=(update-manager-core)
+installPackages+=(update-manager)
+installPackages+=(python3-distupgrade)
+installPackages+=(python3-update-manager)
+installPackages+=(ubuntu-release-upgrader-core)
+fi
+
+sudo apt -q -y remove "${installPackages[@]}"
diff --git a/coin/provisioning/common/linux/sccache.sh b/coin/provisioning/common/linux/sccache.sh
index 4bf53a3b..5e4969b3 100755
--- a/coin/provisioning/common/linux/sccache.sh
+++ b/coin/provisioning/common/linux/sccache.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
diff --git a/coin/provisioning/common/linux/set_ulimit.sh b/coin/provisioning/common/linux/set_ulimit.sh
index 568f88af..e384fe32 100755
--- a/coin/provisioning/common/linux/set_ulimit.sh
+++ b/coin/provisioning/common/linux/set_ulimit.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 will set ulimit size for open files
# Linker for Qt Webengine builds needs to open a multiple files. Without this it will hit the limit.
diff --git a/coin/provisioning/common/linux/squish-coco.sh b/coin/provisioning/common/linux/squish-coco.sh
index e56e5306..eda200d8 100755
--- a/coin/provisioning/common/linux/squish-coco.sh
+++ b/coin/provisioning/common/linux/squish-coco.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# This script installs Squish Coco
@@ -52,7 +15,7 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
version="4.2.2"
sha1="a44f0f039f3712c715eea63c4021d08bf17a44c6"
package="SquishCocoSetup_${version}_Linux_x86_64.run"
-url="http://ci-files01-hki.intra.qt.io/input/coco//$package"
+url="http://ci-files01-hki.ci.qt.io/input/coco//$package"
echo "Enable license for Coco"
diff --git a/coin/provisioning/common/linux/ubuntu-version.sh b/coin/provisioning/common/linux/ubuntu-version.sh
index 23f711f8..2d02bb22 100755
--- a/coin/provisioning/common/linux/ubuntu-version.sh
+++ b/coin/provisioning/common/linux/ubuntu-version.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# This script needs to be called last during provisioning so that the software information will show up last in provision log.
diff --git a/coin/provisioning/common/linux/vcpkg/vcpkg.json b/coin/provisioning/common/linux/vcpkg/vcpkg.json
new file mode 100644
index 00000000..70cb16fb
--- /dev/null
+++ b/coin/provisioning/common/linux/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/linux/version.sh b/coin/provisioning/common/linux/version.sh
index ea2cf73d..4e0443fe 100755
--- a/coin/provisioning/common/linux/version.sh
+++ b/coin/provisioning/common/linux/version.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2016 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) 2016 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 will print all installed software to provision log.
# Script needs to be named so that it will be ran at last during provisioning
diff --git a/coin/provisioning/common/linux/vx_works.sh b/coin/provisioning/common/linux/vx_works.sh
new file mode 100755
index 00000000..ed0bef0c
--- /dev/null
+++ b/coin/provisioning/common/linux/vx_works.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+# 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
+
+# This script installs vxworks libs and toolchain.
+
+set -ex
+
+# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
+source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+VXWORKS_VER="23_09"
+######### VXworks libs #########
+# Installs to /opt/vxworks
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_no_source_patched_$VXWORKS_VER.tar.gz"
+AltUrl=""
+sha1="35a457999b310a6128e3bd7de3103c2235063071"
+targetFolder="/opt/"
+InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
+SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
+
+VXWORKS_BUILD_VER="20240326"
+######### VXworks toolchain #########
+# Installs to /opt/fsl_imx6_2_0_6_2_VSB
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_vsb_${VXWORKS_BUILD_VER}_2.tar.gz"
+AltUrl=""
+sha1="415359ac124e11198a3911c9c4b923269d8da83a"
+targetFolder="/opt/"
+InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
+SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
+
+######### VXworks VIP kernel #########
+# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_vip_${VXWORKS_BUILD_VER}.tar.gz"
+AltUrl=""
+sha1="a6019012a8c7af760469959e2df89875f5ff4e9a"
+targetFolder="/opt/"
+InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
+
+SetEnvVar "VXWORKS_SSH" "WindRiver@10.0.2.4"
+
+# Setup NFS exports that are needed by VxWorks qemu
+sudo bash -c "echo '/home/qt/work 10.0.2.4/24(rw,sync,root_squash,no_subtree_check,anonuid=1000,anongid=1000)' >> /etc/exports"
+sudo bash -c "echo '/opt/fsl_imx6_2_0_6_2_VSB 10.0.2.4/24(rw,sync,root_squash,no_subtree_check,anonuid=1000,anongid=1000)' >> /etc/exports"
+sudo exportfs -a
+
+# Copy start script in place
+cp "${BASH_SOURCE%/*}/../linux/vxworks_qemu_launcher.sh" "${HOME}"
+SetEnvVar "VXWORKS_EMULATOR" "${HOME}/vxworks_qemu_launcher.sh"
diff --git a/coin/provisioning/common/linux/vxworks_qemu_launcher.sh b/coin/provisioning/common/linux/vxworks_qemu_launcher.sh
new file mode 100755
index 00000000..39a68676
--- /dev/null
+++ b/coin/provisioning/common/linux/vxworks_qemu_launcher.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+# 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
+
+# Setup bridge if not exist for VxWorks QEMU
+if ! ip link show br0 >/dev/null 2>&1; then
+ sudo brctl addbr br0
+ sudo brctl stp br0 off
+ sudo ifconfig br0 10.0.2.1 netmask 255.255.255.0 promisc up
+ sudo tunctl -u qt -t tap0
+ sudo ifconfig tap0 promisc up
+ sudo brctl addif br0 tap0
+fi
+
+QEMU_LOG_PATH="/home/qt/work/vxworks_qemu_log.txt"
+qemu-system-arm \
+ -machine sabrelite \
+ -smp 4 \
+ -m 1G \
+ -nographic \
+ -monitor none \
+ -serial null \
+ -serial stdio \
+ -kernel /opt/fsl_imx6_2_0_6_2_VIP_QEMU/default/uVxWorks \
+ -dtb /opt/fsl_imx6_2_0_6_2_VIP_QEMU/default/imx6q-sabrelite.dtb \
+ -append "enet(0,0)host:vxWorks h=10.0.2.1 g=10.0.2.1 e=10.0.2.4 u=target pw=vxTarget s=/romfs/startup_script_arm.txt" \
+ -nic "tap,ifname=tap0,script=no" >"${QEMU_LOG_PATH}" 2>&1 &
+
+for _ in $(seq 30)
+do
+ status=$(ssh -o BatchMode=yes -o HostKeyAlgorithms=+ssh-rsa -o ConnectTimeout=1 "${VXWORKS_SSH}" echo emulator up)
+ if [[ $status == *"emulator up"* ]] ; then
+ echo "VXWORKS QEMU SSH server up"
+ break
+ else
+ echo "Waiting VXWORKS QEMU SSH server"
+ sleep 1
+ fi
+done
diff --git a/coin/provisioning/common/macos/InstallAppFromCompressedFileFromURL.sh b/coin/provisioning/common/macos/InstallAppFromCompressedFileFromURL.sh
index 00c6d308..03454485 100755
--- a/coin/provisioning/common/macos/InstallAppFromCompressedFileFromURL.sh
+++ b/coin/provisioning/common/macos/InstallAppFromCompressedFileFromURL.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 receives URLs to a compressed file. It then downloads it,
# uncompresses it and installs it by default
diff --git a/coin/provisioning/common/macos/InstallPKGFromURL.sh b/coin/provisioning/common/macos/InstallPKGFromURL.sh
index eeeb450d..62ae9db5 100755
--- a/coin/provisioning/common/macos/InstallPKGFromURL.sh
+++ b/coin/provisioning/common/macos/InstallPKGFromURL.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
@@ -48,7 +11,7 @@ function InstallPKGFromURL {
targetDirectory=$4
echo "Creating temporary file"
- package_basename=$(echo "$url" | sed 's|^.*/||')
+ package_basename="${url/*\//}"
tmpdir=$(mktemp -d)
targetFile="$tmpdir/$package_basename"
echo "Downloading PKG from primary URL '$url'"
diff --git a/coin/provisioning/common/macos/android.sh b/coin/provisioning/common/macos/android.sh
new file mode 100755
index 00000000..b7dc953f
--- /dev/null
+++ b/coin/provisioning/common/macos/android.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+# 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 install Android sdk and ndk.
+
+# It also runs update for SDK API, latest SDK tools, latest platform-tools and build-tools version
+
+set -ex
+
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+targetFolder="/opt/android"
+sdkTargetFolder="$targetFolder/sdk"
+
+basePath="/net/ci-files01-hki.ci.qt.io/hdd/www/input/android"
+
+toolsVersion="2.1"
+# toolsFile dertermines tools version
+toolsFile="commandlinetools-mac-6609375_latest.zip"
+
+ndkVersionLatest="r26b"
+ndkVersionDefault="$ndkVersionLatest"
+sdkBuildToolsVersion="34.0.0"
+# this is compile sdk version
+sdkApiLevel="android-34"
+
+toolsSourceFile="$basePath/$toolsFile"
+
+function InstallNdk() {
+
+ ndkVersion=$1
+
+ if [[ ! -d "${targetFolder}/android-ndk-${ndkVersion}" ]]; then
+ echo "Unzipping Android NDK $ndkVersion to '${targetFolder}'"
+ ndkSourceFile="$basePath/android-ndk-$ndkVersion-darwin*.zip"
+ sudo unzip -q "$ndkSourceFile" -d "$targetFolder"
+ fi
+
+}
+
+InstallNdk $ndkVersionDefault
+InstallNdk $ndkVersionLatest
+
+echo "Unzipping Android Tools to '$sdkTargetFolder'"
+sudo unzip -q "$toolsSourceFile" -d "$sdkTargetFolder"
+
+echo "Changing ownership of Android files."
+sudo chown -R qt:wheel "$targetFolder"
+sudo chmod -R 755 $targetFolder
+
+# Run the following command under `eval` or `sh -c` so that the shell properly splits it
+sdkmanager_no_progress_bar_cmd="tr '\r' '\n' | grep -v '^\[[ =]*\]'"
+
+sudo mkdir "$sdkTargetFolder/cmdline-tools"
+sudo mv "$sdkTargetFolder/tools" "$sdkTargetFolder/cmdline-tools"
+
+echo "Running SDK manager for platforms;$sdkApiLevel, platform-tools and build-tools;$sdkBuildToolsVersion."
+(echo "y"; echo "y") | "$sdkTargetFolder/cmdline-tools/tools/bin/sdkmanager" "--sdk_root=$sdkTargetFolder" \
+ "platforms;$sdkApiLevel" "platform-tools" "build-tools;$sdkBuildToolsVersion" \
+ | eval "$sdkmanager_no_progress_bar_cmd"
+
+echo "Checking the contents of Android SDK..."
+ls -l "$sdkTargetFolder"
+
+SetEnvVar "ANDROID_SDK_ROOT" "$sdkTargetFolder"
+SetEnvVar "ANDROID_NDK_ROOT_DEFAULT" "$targetFolder/android-ndk-$ndkVersionDefault"
+SetEnvVar "ANDROID_NDK_ROOT_LATEST" "$targetFolder/android-ndk-$ndkVersionLatest"
+SetEnvVar "ANDROID_NDK_HOST" "darwin-x86_64"
+SetEnvVar "ANDROID_API_VERSION" "$sdkApiLevel"
+
+cat << EOT >>~/versions.txt
+Android SDK tools = $toolsVersion
+Android SDK Build Tools = $sdkBuildToolsVersion
+Android SDK API level = $sdkApiLevel
+Android NDK = $ndkVersionDefault
+EOT
diff --git a/coin/provisioning/common/macos/cmake.sh b/coin/provisioning/common/macos/cmake.sh
index 6dffd685..b9ff8dfb 100755
--- a/coin/provisioning/common/macos/cmake.sh
+++ b/coin/provisioning/common/macos/cmake.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 installs CMake
@@ -48,11 +11,11 @@ source "${BASH_SOURCE%/*}/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-majorminorversion="3.21"
-version="3.21.3"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/cmake/cmake-$version-macos-universal.tar.gz"
+majorminorversion="3.27.7"
+version="3.27.7"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-macos-universal.tar.gz"
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-macos-universal.tar.gz"
-SHA1="6775e6eebae22b5ab3010609132c093e65cc4587"
+SHA1="75153b6c7a418bc7120c6217d4698c7d245d00e0"
appPrefix="cmake-$version-macos-universal"
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix"
diff --git a/coin/provisioning/common/macos/disable-app-reopen.sh b/coin/provisioning/common/macos/disable-app-reopen.sh
new file mode 100755
index 00000000..139f6d04
--- /dev/null
+++ b/coin/provisioning/common/macos/disable-app-reopen.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# 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
+
+# Prevent applications from re-opening after re-boot.
+# This is needed only with physical mac mini machines used in ci.
+
+
+set -e
+
+sudo chown root ~/Library/Preferences/ByHost/com.apple.loginwindow*
+sudo chmod 000 ~/Library/Preferences/ByHost/com.apple.loginwindow*
diff --git a/coin/provisioning/common/macos/disable-notifications_and_warnings.sh b/coin/provisioning/common/macos/disable-notifications_and_warnings.sh
index e189e098..13c0a480 100755
--- a/coin/provisioning/common/macos/disable-notifications_and_warnings.sh
+++ b/coin/provisioning/common/macos/disable-notifications_and_warnings.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+#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
echo "Unload notificationcenterui.plist"
launchctl unload -w /System/Library/LaunchAgents/com.apple.notificationcenterui.plist
diff --git a/coin/provisioning/common/macos/disable_net_lso.sh b/coin/provisioning/common/macos/disable_net_lso.sh
index 328ac308..7c51a486 100755
--- a/coin/provisioning/common/macos/disable_net_lso.sh
+++ b/coin/provisioning/common/macos/disable_net_lso.sh
@@ -1,45 +1,9 @@
#!/usr/bin/env bash
+# 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
-#############################################################################
-##
-## 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$
-##
-#############################################################################
-
-echo """<?xml version=\"1.0\" encoding=\"UTF-8\"?>
+sudo tee -a /Library/LaunchDaemons/net_tcp_tso_off.plist > /dev/null <<EOB
+<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
@@ -67,4 +31,4 @@ echo """<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<true/>
</dict>
</plist>
-""" | sudo tee -a /Library/LaunchDaemons/net_tcp_tso_off.plist
+EOB
diff --git a/coin/provisioning/common/macos/disable_spotlight.sh b/coin/provisioning/common/macos/disable_spotlight.sh
index 915d7fd3..a404d3e7 100755
--- a/coin/provisioning/common/macos/disable_spotlight.sh
+++ b/coin/provisioning/common/macos/disable_spotlight.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# Disable spotlight and and stop indexing
sudo mdutil -a -i off
diff --git a/coin/provisioning/common/macos/docker.sh b/coin/provisioning/common/macos/docker.sh
new file mode 100755
index 00000000..7ae9cdd5
--- /dev/null
+++ b/coin/provisioning/common/macos/docker.sh
@@ -0,0 +1,37 @@
+#!/usr/bin/env bash
+# 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
+
+# shellcheck source=./../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+
+# This script will install Docker which is needed by RTA
+
+chip=$1
+
+if [[ $chip == "amd64" ]]; then
+ sha="158eae1d2f81cc8a0754d2ea3af8c6e6e555f69b"
+else
+ sha="6adf6cc8558af69296208b045187406a95b020bf"
+fi
+
+echo "Installing Docker for $chip chip"
+urlOccifical="https://desktop.docker.com/mac/main/${chip}/Docker.dmg?utm_source=docker"
+urlCache="http://ci-files01-hki.ci.qt.io/input/mac/Docker_${chip}.dmg"
+
+DownloadURL "$urlCache" "$urlOccifical" "$sha" "/tmp/Docker_${chip}.dmg"
+
+sudo hdiutil attach "/tmp/Docker_${chip}.dmg"
+sudo /Volumes/Docker/Docker.app/Contents/MacOS/install --accept-license --user qt
+sudo hdiutil detach /Volumes/Docker
+
+# Add registry mirror for docker images
+mkdir "$HOME/.docker"
+sudo tee -a "$HOME/.docker/daemon.json" <<"EOF"
+{
+ "builder": { "gc": { "defaultKeepStorage": "20GB", "enabled": true } },
+ "experimental": false,
+ "features": { "buildkit": true },
+ "registry-mirrors": ["http://repo-clones.ci.qt.io:5000"]
+}
+EOF
diff --git a/coin/provisioning/common/macos/enable_zsh_history_and_viminfo.sh b/coin/provisioning/common/macos/enable_zsh_history_and_viminfo.sh
new file mode 100755
index 00000000..98daf16d
--- /dev/null
+++ b/coin/provisioning/common/macos/enable_zsh_history_and_viminfo.sh
@@ -0,0 +1,12 @@
+#!/usr/bin/env bash
+# Copyright (C) 2023 The Qt Company Ltd.
+
+if [ -f /Users/qt/.zsh_history ]
+then
+ sudo chown qt:staff /Users/qt/.zsh_history
+fi
+
+if [ -f /Users/qt/.viminfo ]
+then
+ sudo chown qt:staff /Users/qt/.viminfo
+fi
diff --git a/coin/provisioning/common/macos/fbx_macos.sh b/coin/provisioning/common/macos/fbx_macos.sh
index 020c49d8..62d643ee 100755
--- a/coin/provisioning/common/macos/fbx_macos.sh
+++ b/coin/provisioning/common/macos/fbx_macos.sh
@@ -1,42 +1,6 @@
#!/usr/bin/env bash
-#############################################################################
-##
-## 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
# This script installs FBX SDK
@@ -45,16 +9,16 @@ set -ex
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-version="2016.1.2"
+#version="2016.1.2"
fileName="fbx20161_2_fbxsdk_clang_mac.pkg_nospace.tgz"
-cachedUrl="/net/ci-files01-hki.intra.qt.io/hdd/www/input/fbx/$fileName"
+cachedUrl="/net/ci-files01-hki.ci.qt.io/hdd/www/input/fbx/$fileName"
# officialUrl="http://download.autodesk.com/us/fbx_release_older/$version/fbx20161_2_fbxsdk_clang_mac.pkg.tgz"
targetFolder="/tmp"
echo "Extracting '$cachedUrl'"
tar -xzf "$cachedUrl" -C "$targetFolder"
-rm -rf "$targetFolder/$fileName"
+rm -rf "${targetFolder:?}/${fileName}"
echo "Copying preinstalled FBX SDK to Applications"
sudo cp -r "$targetFolder/Autodesk" /Applications
diff --git a/coin/provisioning/common/macos/fix_relative_dependencies.sh b/coin/provisioning/common/macos/fix_relative_dependencies.sh
new file mode 100755
index 00000000..e67a00c4
--- /dev/null
+++ b/coin/provisioning/common/macos/fix_relative_dependencies.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+# Copyright (C) 2024 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
+
+set -e
+
+# realpath is not included to macOS <= 12.
+# dir=$(realpath "$1")
+dir=$(cd "$1" && pwd)
+
+dir_length=${#dir}
+dylib_regex="^$dir/.*\.dylib$"
+
+find "$dir" -type f -name '*.dylib' | while read -r library_path; do
+ install_name=$(otool -D "$library_path" | sed -n '2p' | grep -E "$dylib_regex" )
+ if [ -n "$install_name" ]; then
+ fixed_install_name="@rpath${install_name:dir_length}"
+ install_name_tool -id "$fixed_install_name" "$library_path"
+ fi
+
+ otool -L "$library_path" | awk '/\t/ {print $1}' | grep -E "$dylib_regex" | while read -r dependency_path; do
+ fixed_dependency_path="@loader_path${dependency_path:dir_length}"
+ install_name_tool -change "$dependency_path" "$fixed_dependency_path" "$library_path"
+ done
+done
diff --git a/coin/provisioning/common/macos/homebrew.sh b/coin/provisioning/common/macos/homebrew.sh
index 66463c44..4f3a93ba 100755
--- a/coin/provisioning/common/macos/homebrew.sh
+++ b/coin/provisioning/common/macos/homebrew.sh
@@ -1,4 +1,6 @@
-#!/bin/sh
+#!/bin/bash
+#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
# Will install homebrew package manager for macOS.
@@ -7,11 +9,11 @@
set -e
-. "$(dirname "$0")"/../../common/unix/DownloadURL.sh
+source "$(dirname "$0")"/../../common/unix/DownloadURL.sh
DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \
+ http://ci-files01-hki.ci.qt.io/input/mac/homebrew-install.c744a716f9845988d01e6e238eee7117b8c366c9.rb \
https://raw.githubusercontent.com/Homebrew/install/c744a716f9845988d01e6e238eee7117b8c366c9/install \
b9782cc0b550229de77b429b56ffce04157e60486ab9df00461ccf3dad565b0a \
/tmp/homebrew_install
diff --git a/coin/provisioning/common/macos/homebrew_for_arm_mac.sh b/coin/provisioning/common/macos/homebrew_for_arm_mac.sh
new file mode 100755
index 00000000..e84621ff
--- /dev/null
+++ b/coin/provisioning/common/macos/homebrew_for_arm_mac.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env bash
+# 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
+
+# Will install homebrew package manager for macOS.
+# WARNING: Requires commandlinetools
+
+
+set -e
+
+. "$(dirname "$0")"/../unix/DownloadURL.sh
+. "$(dirname "$0")"/../unix/SetEnvVar.sh
+
+
+DownloadURL \
+ http://ci-files01-hki.ci.qt.io/input/mac/homebrew/be699a568315f57b65519df576d7fc5840b8a5cc/install.sh \
+ https://raw.githubusercontent.com/Homebrew/install/be699a568315f57b65519df576d7fc5840b8a5cc/install \
+ f20e4a577f0cafbab5a44b4d239886d725b3b985 \
+ /tmp/homebrew_install.sh
+
+DownloadURL "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/pw" "aae58d00d0a1b179a09f21cfc67f9d16fb95ff36" "/Users/qt/pw"
+{ pw=$(cat "/Users/qt/pw"); } 2> /dev/null
+sudo chmod 755 /tmp/homebrew_install.sh
+{ (echo "$pw" | /tmp/homebrew_install.sh); } 2> /dev/null
+rm -f "/Users/qt/pw"
+
+# No need to manually do `brew update`, the homebrew installer script does it.
+### brew update
+
+SetEnvVar "PATH" "\$PATH:/opt/homebrew/bin"
diff --git a/coin/provisioning/common/macos/increase_limits.sh b/coin/provisioning/common/macos/increase_limits.sh
index 48abca21..58b20f49 100755
--- a/coin/provisioning/common/macos/increase_limits.sh
+++ b/coin/provisioning/common/macos/increase_limits.sh
@@ -1,43 +1,6 @@
-#!/bin/sh
-
-#############################################################################
-##
-## 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$
-##
-#############################################################################
+#!/bin/bash
+# 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
# Increase the soft and hard RLIMIT_NOFILE and RLIMIT_NPROC limits.
@@ -48,16 +11,16 @@
set -e
PROVISIONING_DIR="$(dirname "$0")/../../"
-. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
-
+# shellcheck source=../unix/common.sourced.sh
+source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
echo "Current limits are:"
ulimit -a
launchctl limit
$CMD_INSTALL -m 644 -o root -g wheel \
- $PROVISIONING_DIR/common/macos/limit.maxfiles.plist \
- $PROVISIONING_DIR/common/macos/limit.maxproc.plist \
+ "$PROVISIONING_DIR/common/macos/limit.maxfiles.plist" \
+ "$PROVISIONING_DIR/common/macos/limit.maxproc.plist" \
/Library/LaunchDaemons/
# Activate the new limits immediately (not for the current session though)
diff --git a/coin/provisioning/common/macos/install-commandlinetools.sh b/coin/provisioning/common/macos/install-commandlinetools.sh
index 146da684..f74eaca0 100755
--- a/coin/provisioning/common/macos/install-commandlinetools.sh
+++ b/coin/provisioning/common/macos/install-commandlinetools.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
set -ex
diff --git a/coin/provisioning/common/macos/install-git.sh b/coin/provisioning/common/macos/install-git.sh
index 6e3eba63..45ac2817 100755
--- a/coin/provisioning/common/macos/install-git.sh
+++ b/coin/provisioning/common/macos/install-git.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+#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
set -ex
diff --git a/coin/provisioning/common/macos/install_xcode.sh b/coin/provisioning/common/macos/install_xcode.sh
index f5124568..440f19b9 100755
--- a/coin/provisioning/common/macos/install_xcode.sh
+++ b/coin/provisioning/common/macos/install_xcode.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# shellcheck source=./../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
@@ -62,7 +25,7 @@ function InstallXCode() {
cd /Applications/ && sudo tar -zxf "$sourceFile"
elif [[ $sourceFile =~ "xip" ]]; then
if [[ $sourceFile =~ "http" ]]; then
- Download $sourceFile /Applications/Xcode_$version.xip
+ Download "$sourceFile" "/Applications/Xcode_$version.xip"
cd /Applications/ && xip -x "Xcode_$version.xip"
else
cd /Applications/ && xip -x "$sourceFile"
@@ -72,12 +35,12 @@ function InstallXCode() {
fi
echo "Versioning application bundle"
- majorVersion=$(echo $version | cut -d '.' -f 1)
+ majorVersion=$(echo "$version" | cut -d '.' -f 1)
versionedAppBundle="/Applications/Xcode${majorVersion}.app"
- sudo mv /Applications/Xcode.app ${versionedAppBundle}
+ sudo mv /Applications/Xcode*.app "${versionedAppBundle}"
echo "Selecting Xcode"
- sudo xcode-select --switch ${versionedAppBundle}
+ sudo xcode-select --switch "${versionedAppBundle}"
echo "Accept license"
sudo xcodebuild -license accept
diff --git a/coin/provisioning/common/macos/java.sh b/coin/provisioning/common/macos/java.sh
index faf450f0..1429f824 100755
--- a/coin/provisioning/common/macos/java.sh
+++ b/coin/provisioning/common/macos/java.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 JDK
@@ -47,7 +10,7 @@ echo "Installing Java Development Kit"
version=11.0.12
targetFile=jdk-${version}_osx-x64_bin.dmg
-url=ci-files01-hki.intra.qt.io:/hdd/www/input/mac
+url=ci-files01-hki.ci.qt.io:/hdd/www/input/mac
# url_alt=https://www.oracle.com/java/technologies/downloads/#java11-linux
echo "Mounting $targetFile"
diff --git a/coin/provisioning/common/macos/java_arm.sh b/coin/provisioning/common/macos/java_arm.sh
index fb603918..1c4b1ed1 100755
--- a/coin/provisioning/common/macos/java_arm.sh
+++ b/coin/provisioning/common/macos/java_arm.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 JDK
@@ -47,7 +10,7 @@ echo "Installing Java Development Kit"
targetFile=zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.dmg
-url=ci-files01-hki.intra.qt.io:/hdd/www/input/mac
+url=ci-files01-hki.ci.qt.io:/hdd/www/input/mac
# url_alt=https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-macosx_aarch64.dmg
echo "Mounting $targetFile"
diff --git a/coin/provisioning/common/macos/libiodbc.sh b/coin/provisioning/common/macos/libiodbc.sh
index 62872b63..059758c8 100755
--- a/coin/provisioning/common/macos/libiodbc.sh
+++ b/coin/provisioning/common/macos/libiodbc.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# Install libiodbc
@@ -46,11 +9,11 @@ set -ex
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-brew install ${BASH_SOURCE%/*}/libiodbc.rb $*
+brew install --formula "${BASH_SOURCE%/*}/libiodbc.rb" "$@"
# CPLUS_INCLUDE_PATH is set so clang and configure can find libiodbc
-read -r -a arr <<< $(brew list --versions libiodbc)
+read -r -a arr <<< "$(brew list --versions libiodbc)"
version=${arr[1]}
SetEnvVar "CPLUS_INCLUDE_PATH" "/usr/local/Cellar/libiodbc/$version/include${CPLUS_INCLUDE_PATH:+:}${CPLUS_INCLUDE_PATH}"
diff --git a/coin/provisioning/common/macos/libusb.sh b/coin/provisioning/common/macos/libusb.sh
index dc30e4fe..2abe6cbf 100755
--- a/coin/provisioning/common/macos/libusb.sh
+++ b/coin/provisioning/common/macos/libusb.sh
@@ -1,49 +1,35 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# Install libusb
set -ex
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
brew install libusb
-read -r -a arr <<< $(brew list --versions libusb)
+read -r -a arr <<< "$(brew list --versions libusb)"
version=${arr[1]}
echo "libusb = $version" >> ~/versions.txt
+
+mkdir /tmp/arm64/
+mkdir /tmp/amd64/
+
+case $(sw_vers -productVersion) in
+ 11*) codename=big_sur;;
+ 12*) codename=monterey;;
+ 13*) codename=ventura;;
+ 14*) codename=sonoma;;
+esac
+
+brew fetch --bottle-tag=arm64_"${codename}" libusb
+brew fetch --bottle-tag="${codename}" libusb
+tar xf "$(brew --cache --bottle-tag=arm64_"${codename}" libusb)" -C /tmp/arm64/
+tar xf "$(brew --cache --bottle-tag="${codename}" libusb)" -C /tmp/amd64
+for f in /tmp/arm64/libusb/"$version"/lib/* ; do
+ if lipo -info "$f" >/dev/null 2>&1; then
+ file="$(basename "$f")"
+ lipo -create -output "$(brew --cellar)/libusb/$version/lib/$file" \
+ "/tmp/arm64/libusb/$version/lib/$file" \
+ "/tmp/amd64/libusb/$version/lib/$file"
+ fi
+done
diff --git a/coin/provisioning/common/macos/macos-version.sh b/coin/provisioning/common/macos/macos-version.sh
index 4bf8eea8..182c1161 100755
--- a/coin/provisioning/common/macos/macos-version.sh
+++ b/coin/provisioning/common/macos/macos-version.sh
@@ -1,57 +1,20 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2016 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) 2016 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 needs to be called last during provisioning so that the software information will show up last in provision log.
set -ex
# Print all build machines versions to provision log
-echo "*********************************************" >> ~/versions.txt
-echo "***** macOS version *****" >> ~/versions.txt
-sw_vers >> ~/versions.txt
-echo "***** All installed packages *****" >> ~/versions.txt
-echo "***** HomeBrew *****" >> ~/versions.txt
-brew list --versions >> ~/versions.txt
-echo "***** Apple's installer *****" >> ~/versions.txt
-pkgutil --pkgs >> ~/versions.txt
-echo "*********************************************" >> ~/versions.txt
-
+( echo "*********************************************"
+ echo "***** macOS version *****"
+ sw_vers
+ echo "***** All installed packages *****"
+ echo "***** HomeBrew *****"
+ brew list --versions
+ echo "***** Apple's installer *****"
+ pkgutil --pkgs
+ echo "*********************************************"
+) >> ~/versions.txt
"$(dirname "$0")/version.sh"
diff --git a/coin/provisioning/common/macos/makeuniversal.sh b/coin/provisioning/common/macos/makeuniversal.sh
index cca42db7..0f5fc6a0 100755
--- a/coin/provisioning/common/macos/makeuniversal.sh
+++ b/coin/provisioning/common/macos/makeuniversal.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# Copies or lipos files from the given DESTDIR dirs to the respective install dir
@@ -45,18 +8,24 @@ set -e
for dir in "$@"; do
echo "Processing files in $dir ..."
- pushd $dir >/dev/null
- find . -type f | while read f; do
+ pushd "$dir" >/dev/null
+ find . -type f -or -type l | while read -r f; do
dst="${f:1}"
- dstdir=$(dirname $dst)
- mkdir -p $dstdir
- if [[ ! -f $dst ]]; then
+ dstdir="$(dirname "$dst")"
+ mkdir -p "$dstdir"
+
+ if [[ -L "$f" ]]; then
+ if [[ ! -L "$dst" && ! -d "$dst" && ! -f "$dst" ]]; then
+ echo "Copying symlink $dir/$f to $dst"
+ cp -P -n "$f" "$dst"
+ fi
+ elif [[ ! -f "$dst" ]]; then
echo "Copying $dir/$f to $dst"
- cp -c $f $dst
- elif lipo -info $f >/dev/null 2>&1; then
+ cp -c "$f" "$dst"
+ elif lipo -info "$f" >/dev/null 2>&1; then
echo "Lipoing $dir/$f into $dst"
- lipo -create -output $dst $dst $f
- elif ! diff $f $dst; then
+ lipo -create -output "$dst" "$dst" "$f"
+ elif ! diff "$f" "$dst"; then
echo "Error: File $f in $dir doesn't match destination $dst"
exit 1
fi
diff --git a/coin/provisioning/common/macos/mimersql.sh b/coin/provisioning/common/macos/mimersql.sh
new file mode 100755
index 00000000..10ee1dc5
--- /dev/null
+++ b/coin/provisioning/common/macos/mimersql.sh
@@ -0,0 +1,56 @@
+#!/usr/bin/env bash
+# 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
+
+# This script installs Mimer SQL
+
+# Mimer SQL is needed for Qt to be able to support Mimer SQL
+
+set -ex
+os="$1"
+
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+
+mimerSqlVersion="11.0.7G"
+if [ "$os" = "macos" ]; then
+ arch=$(uname -m)
+ if [ "$arch" = "x86_64" ]; then
+ mimerSqlPackageName="mimersql-110_x86_64.tgz"
+ SHA1="d748f87b72e7188c527f131db2590f552f18f544"
+ else
+ mimerSqlPackageName="mimersql-110_arm64.tgz"
+ SHA1="f209c97074d096e50e637441073e8aa355c5116e"
+ fi
+else
+ mimerSqlPackageName="mimersql-110_universal.tgz"
+ SHA1="eab32be623f1cbde7c29cea0f0ca4332b8ca502b"
+fi
+
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/mac/$mimerSqlPackageName"
+AltUrl="https://install.mimer.com/qt/macOS/$mimerSqlPackageName"
+
+DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp/$mimerSqlPackageName"
+
+echo "Installing $mimerSqlPackageName"
+if [ -e /tmp/mimersql_${mimerSqlVersion} ]; then
+ rm -r /tmp/mimersql_${mimerSqlVersion}
+fi
+mkdir /tmp/mimersql_${mimerSqlVersion}
+tar -C /tmp/mimersql_${mimerSqlVersion} -zxf /tmp/$mimerSqlPackageName
+if [ ! -e /usr/local/include ]; then
+ sudo mkdir -p /usr/local/include
+ sudo chmod 777 /usr/local/include
+fi
+if [ ! -e /usr/local/lib ]; then
+ sudo mkdir -p /usr/local/lib
+ sudo chmod 777 /usr/local/lib
+fi
+sudo cp /tmp/mimersql_${mimerSqlVersion}/include/*.h /usr/local/include/
+sudo chmod 755 /usr/local/include/mimer*.h
+sudo cp /tmp/mimersql_${mimerSqlVersion}/lib/libmimerapi.dylib /usr/local/lib/
+sudo chmod 755 /usr/local/lib/libmimerapi.dylib
+echo "Removing $mimerSqlPackageName"
+rm "/tmp/$mimerSqlPackageName"
+rm -r /tmp/mimersql_${mimerSqlVersion}
+echo "Mimer SQL = $mimerSqlVersion" >> ~/versions.txt
diff --git a/coin/provisioning/common/macos/mount-vcpkg-cache-drive.sh b/coin/provisioning/common/macos/mount-vcpkg-cache-drive.sh
new file mode 100755
index 00000000..8a3e1f69
--- /dev/null
+++ b/coin/provisioning/common/macos/mount-vcpkg-cache-drive.sh
@@ -0,0 +1,28 @@
+#!/usr/bin/env bash
+# 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
+
+set -e
+
+# Avoid leaking secrets in the logs
+set +x
+
+targetDir="$HOME/vcpkg-cache"
+
+# Specify the path to the credential file
+credentialFile="$HOME/samba_credentials"
+username=$(grep '^username=' "$credentialFile" | cut -d '=' -f 2)
+password=$(grep '^password=' "$credentialFile" | cut -d '=' -f 2)
+
+mkdir -p "$targetDir"
+
+# Mount the SMB share
+# Check if the mount was successful
+if mount -v -t smbfs -o -N "//${username}:${password}@vcpkg-server.ci.qt.io/vcpkg" "$targetDir"
+then
+ echo "SMB share mounted successfully!"
+else
+ echo "Failed to mount SMB share."
+fi
+
+set -x
diff --git a/coin/provisioning/common/macos/ninja.sh b/coin/provisioning/common/macos/ninja.sh
index 2cb05aa2..66ac8324 100755
--- a/coin/provisioning/common/macos/ninja.sh
+++ b/coin/provisioning/common/macos/ninja.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 will install ninja binary
@@ -45,7 +8,7 @@
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
version="1.10.2"
-internalUrl="http://ci-files01-hki.intra.qt.io/input/mac/ninja-mac_v${version}.zip"
+internalUrl="http://ci-files01-hki.ci.qt.io/input/mac/ninja-mac_v${version}.zip"
externalUrl="https://github.com/ninja-build/ninja/releases/download/v${version}/ninja-mac.zip"
SHA1="95d0ca5e7c67ab7181c87e6a6ec59d11b1ff2d30"
DestDir="/usr/local/bin/"
diff --git a/coin/provisioning/common/macos/nodejs.sh b/coin/provisioning/common/macos/nodejs.sh
index 27382fbe..ac927110 100755
--- a/coin/provisioning/common/macos/nodejs.sh
+++ b/coin/provisioning/common/macos/nodejs.sh
@@ -1,55 +1,18 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# shellcheck source=./../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# This script will install Nodejs
-version="14.16.1"
-urlCache="http://ci-files01-hki.intra.qt.io/input/nodejs/node-v$version.pkg"
+version="18.16.0"
+urlCache="http://ci-files01-hki.ci.qt.io/input/nodejs/node-v$version.pkg"
urlOffcial="https://nodejs.org/dist/v$version/node-v$version.pkg"
-sha1="4720274971c40fe51b2c647060f77c45fb4949a7"
+sha256="156aa5b9580288fb0b3c6134eb8fac64e50745d78d33eebe9e29eb7ff87b8e1e"
-DownloadURL $urlCache $urlOffcial $sha1 "/tmp/node-v$version.pkg"
+DownloadURL $urlCache $urlOffcial $sha256 "/tmp/node-v$version.pkg"
sudo installer -pkg "/tmp/node-v$version.pkg" -target /
echo "Nodejs = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/macos/pip.sh b/coin/provisioning/common/macos/pip.sh
index b1c9a864..ce73d283 100755
--- a/coin/provisioning/common/macos/pip.sh
+++ b/coin/provisioning/common/macos/pip.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+#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
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
@@ -9,9 +11,9 @@ function InstallPip {
# Will install pip utility for python
if [[ $python == "python2.7" ]]; then
- DownloadURL "http://ci-files01-hki.intra.qt.io/input/mac/python27/get-pip.py" "https://bootstrap.pypa.io/2.7/get-pip.py" "c4c5f74586cffe49804f167d95d1710b9750ddf0"
+ DownloadURL "http://ci-files01-hki.ci.qt.io/input/mac/python27/get-pip.py" "https://bootstrap.pypa.io/2.7/get-pip.py" "c4c5f74586cffe49804f167d95d1710b9750ddf0"
else
- DownloadURL "http://ci-files01-hki.intra.qt.io/input/mac/get-pip.py" "https://bootstrap.pypa.io/get-pip.py" "209ddf0bb8d1cf06a1f17dd9f21970c76b3d2be2"
+ DownloadURL "http://ci-files01-hki.ci.qt.io/input/mac/get-pip.py" "https://bootstrap.pypa.io/get-pip.py" "209ddf0bb8d1cf06a1f17dd9f21970c76b3d2be2"
fi
sudo "$python" get-pip.py
rm get-pip.py
diff --git a/coin/provisioning/common/macos/pkgconfig.sh b/coin/provisioning/common/macos/pkgconfig.sh
index 5bae9330..5b849821 100755
--- a/coin/provisioning/common/macos/pkgconfig.sh
+++ b/coin/provisioning/common/macos/pkgconfig.sh
@@ -1,49 +1,12 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# Install pkgconfig
set -ex
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
brew install pkgconfig
-read -r -a arr <<< $(brew list --versions pkgconfig)
+read -r -a arr <<< "$(brew list --versions pkgconfig)"
version=${arr[1]}
echo "pkgconfig = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/macos/postgresql.sh b/coin/provisioning/common/macos/postgresql.sh
index b20e4f4e..8980d28e 100755
--- a/coin/provisioning/common/macos/postgresql.sh
+++ b/coin/provisioning/common/macos/postgresql.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# This script installs PostgreSQL
@@ -45,9 +8,9 @@
set -ex
-# shellcheck source=../common/unix/SetEnvVar.sh
+# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-# shellcheck source=../common/unix/DownloadURL.sh
+# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
psqlAppVersion="2.5"
@@ -55,10 +18,9 @@ psqlVersion="14"
packageName="Postgres-$psqlAppVersion-$psqlVersion.dmg"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/macos_10.12_sierra/$packageName"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/mac/macos_10.12_sierra/$packageName"
AltUrl="https://github.com/PostgresApp/PostgresApp/releases/download/v$psqlAppVersion/$packageName"
SHA1="04cb6939704c5ede5646c1da8a686da3ded98a26"
-appPrefix=""
DownloadURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp/$packageName"
diff --git a/coin/provisioning/common/macos/python2.sh b/coin/provisioning/common/macos/python2.sh
index 6d811bd8..2da8b463 100755
--- a/coin/provisioning/common/macos/python2.sh
+++ b/coin/provisioning/common/macos/python2.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# This script installs python2
@@ -48,7 +11,7 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
# shellcheck source=./pip.sh
source "${BASH_SOURCE%/*}/pip.sh"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/python-2.7.16-macosx10.6.pkg"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/mac/python-2.7.16-macosx10.6.pkg"
AltUrl="https://www.python.org/ftp/python/2.7.16/python-2.7.16-macosx10.6.pkg"
SHA1="895a8327a58e7c0e58852638ab3d84843643535b"
DestDir="/"
@@ -57,6 +20,10 @@ InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir"
InstallPip python2.7
+echo "Configure pip"
+/Library/Frameworks/Python.framework/Versions/2.7/bin/pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
+/Library/Frameworks/Python.framework/Versions/2.7/bin/pip config --user set global.extra-index-url https://pypi.org/simple/
+
/Library/Frameworks/Python.framework/Versions/2.7/bin/pip install virtualenv
SetEnvVar "PATH" "/Library/Frameworks/Python.framework/Versions/2.7/bin/:\$PATH"
diff --git a/coin/provisioning/common/macos/python3.sh b/coin/provisioning/common/macos/python3.sh
index 75d76c95..925a4925 100755
--- a/coin/provisioning/common/macos/python3.sh
+++ b/coin/provisioning/common/macos/python3.sh
@@ -1,44 +1,7 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 python3
@@ -49,7 +12,7 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
# shellcheck source=./pip.sh
source "${BASH_SOURCE%/*}/pip.sh"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mac/python-3.9.6-macos11.pkg"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/mac/python-3.9.6-macos11.pkg"
AltUrl="https://www.python.org/ftp/python/3.9.6/python-3.9.6-macos11.pkg"
SHA1="2af5277c2e197719eb4b820430dee5d89e2577b6"
DestDir="/"
@@ -58,15 +21,15 @@ InstallPKGFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$DestDir"
InstallPip python3.9
+echo "Configure pip"
+/Library/Frameworks/Python.framework/Versions/3.9/bin/pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
+/Library/Frameworks/Python.framework/Versions/3.9/bin/pip config --user set global.extra-index-url https://pypi.org/simple/
+
/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3 install virtualenv wheel html5lib
SetEnvVar "PYTHON3_PATH" "/Library/Frameworks/Python.framework/Versions/3.9/bin"
SetEnvVar "PIP3_PATH" "/Library/Frameworks/Python.framework/Versions/3.9/bin"
-# Install all needed packages in a special wheel cache directory
-/Library/Frameworks/Python.framework/Versions/3.9/bin/pip3 wheel --wheel-dir $HOME/python3-wheels -r ${BASH_SOURCE%/*}/../shared/requirements.txt
-SetEnvVar "PYTHON3_WHEEL_CACHE" "$HOME/python3-wheels"
-
# Install Python certificates. Required at least for emsdk installation
open /Applications/Python\ 3.9/Install\ Certificates.command
diff --git a/coin/provisioning/common/macos/sccache.sh b/coin/provisioning/common/macos/sccache.sh
index fe3a68df..85c4aee2 100755
--- a/coin/provisioning/common/macos/sccache.sh
+++ b/coin/provisioning/common/macos/sccache.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
diff --git a/coin/provisioning/common/macos/screenresolution.sh b/coin/provisioning/common/macos/screenresolution.sh
index dd29a0f1..1b552e88 100755
--- a/coin/provisioning/common/macos/screenresolution.sh
+++ b/coin/provisioning/common/macos/screenresolution.sh
@@ -1,43 +1,6 @@
#!/bin/bash
-
-#############################################################################
-##
-## 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
# Install screenresolution and set correct resolution at boot
diff --git a/coin/provisioning/common/macos/set-locale.sh b/coin/provisioning/common/macos/set-locale.sh
index 057d1414..bede1e00 100755
--- a/coin/provisioning/common/macos/set-locale.sh
+++ b/coin/provisioning/common/macos/set-locale.sh
@@ -1,44 +1,7 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 sets the macOS locale to UTF-8
set -ex
diff --git a/coin/provisioning/common/macos/set_tcc_permissions.sh b/coin/provisioning/common/macos/set_tcc_permissions.sh
new file mode 100755
index 00000000..d9fb222b
--- /dev/null
+++ b/coin/provisioning/common/macos/set_tcc_permissions.sh
@@ -0,0 +1,31 @@
+#!/usr/bin/env bash
+#Copyright (C) 2024 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
+
+TCC_DATABASE="$HOME/Library/Application Support/com.apple.TCC/TCC.db"
+if touch "$TCC_DATABASE"; then
+ # We can write to the TCC database
+ BOOTSTRAP_AGENT="$HOME/bootstrap-agent"
+ REQ_STR=$(codesign -d -r- "$BOOTSTRAP_AGENT" 2>&1 | awk -F ' => ' '/designated/{print $2}')
+ REQ_HEX=$(echo "$REQ_STR" | csreq -r- -b >(xxd -p | tr -d '\n'))
+
+ # shellcheck disable=SC2043
+ for service in kTCCServiceMicrophone; do
+ sqlite3 -echo "$TCC_DATABASE" <<EOF
+ DELETE from access WHERE client = '$BOOTSTRAP_AGENT' AND service = '$service';
+ INSERT INTO access (service, client, client_type, auth_value, auth_reason, auth_version, csreq, flags) VALUES (
+ '$service', -- service
+ '$BOOTSTRAP_AGENT', -- client
+ 1, -- client_type (1 - absolute path)
+ 2, -- auth_value (2 - allowed)
+ 4, -- auth_reason (4 - "System Set")
+ 1, -- auth_version
+ X'$REQ_HEX', -- csreq
+ 0 -- flags
+ );
+EOF
+ done
+else
+ echo "TCC database is not writable. Is SIP disabled?" >&2
+ exit 1
+fi
diff --git a/coin/provisioning/common/macos/sha1sum-compatibility.sh b/coin/provisioning/common/macos/sha1sum-compatibility.sh
index 8527ec69..65685371 100755
--- a/coin/provisioning/common/macos/sha1sum-compatibility.sh
+++ b/coin/provisioning/common/macos/sha1sum-compatibility.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# On macOS the sha1 tool is named 'shasum' while on all other unix systems it is called 'sha1sum'.
# In order to make all unix provioning scripts run on macOS without special case handling
diff --git a/coin/provisioning/common/macos/system_updates.sh b/coin/provisioning/common/macos/system_updates.sh
index fd440e93..8cc9410e 100755
--- a/coin/provisioning/common/macos/system_updates.sh
+++ b/coin/provisioning/common/macos/system_updates.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# Disable "Download newly available updates in the background" from App Store
sudo defaults write /Library/Preferences/com.apple.SoftwareUpdate AutomaticDownload -boolean FALSE
diff --git a/coin/provisioning/common/macos/telegraf-ioping.sh b/coin/provisioning/common/macos/telegraf-ioping.sh
index eee1372b..9b6d3851 100755
--- a/coin/provisioning/common/macos/telegraf-ioping.sh
+++ b/coin/provisioning/common/macos/telegraf-ioping.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+#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
# Measure I/O latency once, return data in InfluxDB format
#
@@ -12,7 +14,7 @@
set -e
-[ x"$1" = x ] && echo "$0 takes a path as a first argument" && exit 1
+[ -z "$1" ] && echo "$0 takes a path as a first argument" && exit 1
# Try to run in high priority to avoid slow-downs because of
# factors other than I/O.
@@ -22,5 +24,5 @@ renice -n -10 -p $$ >/dev/null 2>&1 || true
rlatency="$(/usr/local/bin/ioping -B -k -c 3 -i 0.1 "$1" | cut -d " " -f 5)"
wlatency="$(/usr/local/bin/ioping -B -k -c 3 -i 0.1 -W "$1" | cut -d " " -f 5)"
-printf "ioping,path=$1 read_latency_ns=%u,write_latency_ns=%u\n" \
- $rlatency $wlatency
+printf "ioping,path=$1 read_latency_ns=%u,write_latency_ns=%u\n" \
+ "$rlatency" "$wlatency"
diff --git a/coin/provisioning/common/macos/telegraf_install.sh b/coin/provisioning/common/macos/telegraf_install.sh
index f2b83a24..f9658d83 100755
--- a/coin/provisioning/common/macos/telegraf_install.sh
+++ b/coin/provisioning/common/macos/telegraf_install.sh
@@ -1,44 +1,6 @@
-#!/bin/sh
-
-#############################################################################
-##
-## 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$
-##
-#############################################################################
-
+#!/bin/bash
+# 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
# This script installs telegraf and ioping and our script telegraf-ioping.sh
# to the /usr/bin directory.
@@ -52,11 +14,12 @@
######################## BOILERPLATE ###########################
set -e
-
PROVISIONING_DIR="$(dirname "$0")/../../"
-. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
-. "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
+# shellcheck source=../unix/common.sourced.sh
+source "${BASH_SOURCE%/*}/../unix/common.sourced.sh"
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
is_script_executed telegraf_install.sh \
|| fatal "Script telegraf_install.sh should be executed, not sourced"
@@ -67,7 +30,7 @@ is_script_executed telegraf_install.sh \
[ "$PROVISIONING_OS" = linux ] \
&& ioping_sha256=259abf04bcb84f4126ff97c04b6651e1cf5ea6d8a9ff364c769a26c95b6eeb44 \
|| ioping_sha256=55de6a2f1a5343e0ce8df31d82d47a9e79c7e612edbc6dfb39b5fc6fb358b2e3
-DownloadURL "http://ci-files01-hki.intra.qt.io/input/ioping/ioping.${PROVISIONING_OS}-${PROVISIONING_ARCH}" \
+DownloadURL "http://ci-files01-hki.ci.qt.io/input/ioping/ioping.${PROVISIONING_OS}-${PROVISIONING_ARCH}" \
'' "$ioping_sha256" ioping
/usr/bin/sudo mkdir -p /usr/local/bin/
$CMD_INSTALL -m 755 ./ioping /usr/local/bin/
@@ -78,14 +41,14 @@ $CMD_INSTALL -m 755 "$PROVISIONING_DIR"/common/macos/telegraf-ioping.sh /usr/l
# 3. Download and install telegraf
-[ x"$PROVISIONING_OS" = xmacos ] && os=darwin || os=linux
-[ x"$PROVISIONING_ARCH" = xx86 ] && arch=i386 || arch=amd64
+[ "$PROVISIONING_OS" = macos ] && os=darwin || os=linux
+[ "$PROVISIONING_ARCH" = x86 ] && arch=i386 || arch=amd64
package_filename=telegraf-1.12.6_${os}_${arch}.tar.gz
package_sha256_list="$PROVISIONING_DIR"/common/shared/telegraf/telegraf_packages.sha256.txt
package_sha256=$(sed -n "s/.*$package_filename *//p" "$package_sha256_list")
DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/telegraf/"$package_filename" \
+ http://ci-files01-hki.ci.qt.io/input/telegraf/"$package_filename" \
https://dl.influxdata.com/telegraf/releases/"$package_filename" \
"$package_sha256" \
telegraf.tar.gz
diff --git a/coin/provisioning/common/macos/version.sh b/coin/provisioning/common/macos/version.sh
index 7346bcf2..8e3cde83 100755
--- a/coin/provisioning/common/macos/version.sh
+++ b/coin/provisioning/common/macos/version.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## Copyright (C) 2016 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) 2016 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 will print all installed software to provision log.
# Script needs to be named so that it will be ran at last during provisioning
diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake
index 3e3ee6e8..9a207b0e 100644
--- a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake
+++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake
@@ -1,4 +1,5 @@
set(CMAKE_SYSTEM_NAME QNX)
+set(CMAKE_SYSTEM_PROCESSOR aarch64le)
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
@@ -13,7 +14,7 @@ if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endif()
-set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET}/target/qnx7/)
+set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
set(_qnx_toolchain_arch gcc_ntoaarch64le)
@@ -22,4 +23,6 @@ set(CMAKE_C_COMPILER_TARGET ${_qnx_toolchain_arch})
set(CMAKE_CXX_COMPILER q++)
set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
+set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoaarch64-strip)
+
set(CMAKE_SYSROOT $ENV{QNX_TARGET})
diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake
index b441859a..90bd9731 100644
--- a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake
+++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake
@@ -1,4 +1,5 @@
set(CMAKE_SYSTEM_NAME QNX)
+set(CMALE_SYSTEM_PROCESSOR armv7le)
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
@@ -13,7 +14,7 @@ if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endif()
-set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET}/target/qnx7/)
+set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
set(_qnx_toolchain_arch gcc_ntoarmv7le)
@@ -22,4 +23,6 @@ set(CMAKE_C_COMPILER_TARGET ${_qnx_toolchain_arch})
set(CMAKE_CXX_COMPILER q++)
set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
+set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntoarmv7-strip)
+
set(CMAKE_SYSROOT $ENV{QNX_TARGET})
diff --git a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake
index bec28b06..e11488bc 100644
--- a/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake
+++ b/coin/provisioning/common/shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake
@@ -1,4 +1,5 @@
set(CMAKE_SYSTEM_NAME QNX)
+set(CMAKE_SYSTEM_PROCESSOR x86_64)
if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_PROGRAM)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
@@ -13,7 +14,7 @@ if (NOT DEFINED CMAKE_FIND_ROOT_PATH_MODE_INCLUDE)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
endif()
-set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET}/target/qnx7/)
+set(CMAKE_FIND_ROOT_PATH $ENV{QNX_TARGET};$ENV{QNX_TARGET}/${CMAKE_SYSTEM_PROCESSOR})
set(_qnx_toolchain_arch gcc_ntox86_64)
@@ -22,4 +23,6 @@ set(CMAKE_C_COMPILER_TARGET ${_qnx_toolchain_arch})
set(CMAKE_CXX_COMPILER q++)
set(CMAKE_CXX_COMPILER_TARGET ${_qnx_toolchain_arch})
+set(CMAKE_STRIP $ENV{QNX_HOST}/usr/bin/ntox86_64-strip)
+
set(CMAKE_SYSROOT $ENV{QNX_TARGET})
diff --git a/coin/provisioning/common/shared/ffmpeg_config_options.txt b/coin/provisioning/common/shared/ffmpeg_config_options.txt
index fc746288..52f79c14 100644
--- a/coin/provisioning/common/shared/ffmpeg_config_options.txt
+++ b/coin/provisioning/common/shared/ffmpeg_config_options.txt
@@ -1 +1 @@
---disable-programs --disable-doc --disable-debug --disable-network --enable-pic \ No newline at end of file
+--disable-programs --disable-doc --disable-debug --enable-network --disable-lzma --enable-pic --disable-vulkan --disable-v4l2-m2m --disable-decoder=truemotion1
diff --git a/coin/provisioning/common/shared/requirements.txt b/coin/provisioning/common/shared/requirements.txt
deleted file mode 100644
index 863707da..00000000
--- a/coin/provisioning/common/shared/requirements.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-# This file holds all python3 packages need for a certain qt module
-# When adding new packages here, first add a comment with the name of the module
-# Then all the packages. Duplicates are wanted as every module should install
-# all packages it needs and shouldn't depend on a package from another module
-#
-# qtinterfaceframework
-antlr4-python3-runtime==4.9.2
-argh==0.26.2
-click==8.0.1
-coloredlogs==15.0.1
-humanfriendly==10.0
-Jinja2==3.0.1
-MarkupSafe==2.0.1
-path.py==12.5.0
-pathtools==0.1.2
-PyYAML==5.4.1
-six==1.16.0
-typing==3.7.4
-watchdog==2.1.5
diff --git a/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh b/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
index ad95eadc..528047ce 100644..100755
--- a/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
+++ b/coin/provisioning/common/shared/telegraf/telegraf-ioping.sh
@@ -1,4 +1,6 @@
#!/bin/sh
+#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
# Measure I/O latency once, return data in InfluxDB format
#
@@ -12,7 +14,7 @@
set -e
-[ x"$1" = x ] && echo "$0 takes a path as a first argument" && exit 1
+[ -z "$1" ] && echo "$0 takes a path as a first argument" && exit 1
# Try to run in high priority to avoid slow-downs because of
# factors other than I/O.
@@ -23,4 +25,4 @@ rlatency="$(ioping -B -k -c 3 -i 0.1 "$1" | cut -d " " -f 5)"
wlatency="$(ioping -B -k -c 3 -i 0.1 -W "$1" | cut -d " " -f 5)"
printf "ioping,path=$1 read_latency_ns=%u,write_latency_ns=%u\n" \
- $rlatency $wlatency
+ "$rlatency" "$wlatency"
diff --git a/coin/provisioning/common/shared/testserver/californium/Dockerfile b/coin/provisioning/common/shared/testserver/californium/Dockerfile
index 041c3ef4..81d27f9b 100644
--- a/coin/provisioning/common/shared/testserver/californium/Dockerfile
+++ b/coin/provisioning/common/shared/testserver/californium/Dockerfile
@@ -1,5 +1,5 @@
FROM qt_ubuntu_18.04
-ARG packages="avahi-daemon maven default-jdk"
+ARG packages="avahi-daemon maven default-jdk patch"
RUN apt-get update && apt-get -y install $packages
# Get californium-based CoAP test server
@@ -7,6 +7,8 @@ WORKDIR /root/src
ADD californium-*.tar.gz .
RUN mv californium-* californium
WORKDIR /root/src/californium
+ADD qt_changes.patch ./
+RUN patch -p1 < qt_changes.patch
RUN mvn clean install -q -DskipTests
WORKDIR /
diff --git a/coin/provisioning/common/shared/testserver/californium/qt_changes.patch b/coin/provisioning/common/shared/testserver/californium/qt_changes.patch
new file mode 100644
index 00000000..732c0daa
--- /dev/null
+++ b/coin/provisioning/common/shared/testserver/californium/qt_changes.patch
@@ -0,0 +1,43 @@
+diff -ruN californium_3.8.0/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java californium/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java
+--- californium_3.8.0/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java 2023-07-21 11:16:21.142201240 +0200
++++ californium/demo-apps/cf-plugtest-server/src/main/java/org/eclipse/californium/plugtests/PlugtestServer.java 2023-07-21 11:16:51.074210378 +0200
+@@ -100,6 +100,14 @@
+ import org.eclipse.californium.unixhealth.NetSocketHealthLogger;
+ import org.eclipse.californium.unixhealth.NetStatLogger;
+
++import org.eclipse.californium.scandium.DTLSConnector;
++import org.eclipse.californium.scandium.config.DtlsConnectorConfig;
++import org.eclipse.californium.scandium.dtls.pskstore.AdvancedSinglePskStore;
++import org.eclipse.californium.core.network.CoapEndpoint;
++
++import java.net.InetSocketAddress;
++import java.net.InetAddress;
++
+ import picocli.CommandLine;
+ import picocli.CommandLine.ArgGroup;
+ import picocli.CommandLine.Command;
+@@ -437,7 +445,23 @@
+ // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("127.0.0.1", port)));
+ // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("2a01:c911:0:2010::10", port)));
+ // server.addEndpoint(new CoAPEndpoint(new InetSocketAddress("10.200.1.2", port)));
+- server.addEndpoints(config);
++ // server.addEndpoints(config);
++
++ CoapEndpoint.Builder endpointBuilder = new CoapEndpoint.Builder();
++ endpointBuilder.setPort(5683);
++ server.addEndpoint(endpointBuilder.build());
++
++ AdvancedSinglePskStore pskStore = new AdvancedSinglePskStore("Client_identity", "secretPSK".getBytes());
++
++ DtlsConnectorConfig.Builder builder = new DtlsConnectorConfig.Builder(new Configuration());
++ builder.setAddress(new InetSocketAddress(5684));
++ builder.setAdvancedPskStore(pskStore);
++ DTLSConnector dtlsConnector = new DTLSConnector(builder.build());
++
++ endpointBuilder = new CoapEndpoint.Builder();
++ endpointBuilder.setConnector(dtlsConnector);
++ server.addEndpoint(endpointBuilder.build());
++
+ if (server.getEndpoints().isEmpty()) {
+ System.err.println("no endpoint available!");
+ System.exit(ERR_INIT_FAILED);
diff --git a/coin/provisioning/common/shared/testserver/docker_images.sh b/coin/provisioning/common/shared/testserver/docker_images.sh
index 8c731c52..e4782a72 100755
--- a/coin/provisioning/common/shared/testserver/docker_images.sh
+++ b/coin/provisioning/common/shared/testserver/docker_images.sh
@@ -1,51 +1,14 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -e
-
PROVISIONING_DIR="$(dirname "$0")/../../../"
-. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
-. "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
-
+# shellcheck source=../../../common/unix/common.sourced.sh
+source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
+# shellcheck source=../../../common/unix/DownloadURL.sh
+source "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
# Sort files by their SHA-1, and then return the accumulated result
sha1tree () {
@@ -53,14 +16,14 @@ sha1tree () {
[ -x "$(command -v sha1sum)" ] || SHASUM=shasum
find "$@" -type f -print0 | \
- xargs -0 ${SHASUM-sha1sum} | cut -d ' ' -f 1 | \
- sort | ${SHASUM-sha1sum} | cut -d ' ' -f 1
+ xargs -0 "${SHASUM-sha1sum}" | cut -d ' ' -f 1 | \
+ sort | "${SHASUM-sha1sum}" | cut -d ' ' -f 1
}
SERVER_PATH="$PROVISIONING_DIR/common/shared/testserver"
-. "$SERVER_PATH/settings.sh"
+source "$SERVER_PATH/settings.sh"
# Download all necessary dependencies outside of the dockerfiles, so that we
@@ -70,32 +33,33 @@ SERVER_PATH="$PROVISIONING_DIR/common/shared/testserver"
echo 'Downloading support files for the docker images'
DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/docker/rfc3252.txt \
+ http://ci-files01-hki.ci.qt.io/input/docker/rfc3252.txt \
https://tools.ietf.org/rfc/rfc3252.txt \
50c323dedce95e4fdc2db35cd1b8ebf9d74711bf5296ef438b88d186d7dd082d
cp rfc3252.txt "$SERVER_PATH/vsftpd/"
cp rfc3252.txt "$SERVER_PATH/apache2/"
DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/docker/dante-server_1.4.1-1_amd64.deb \
+ http://ci-files01-hki.ci.qt.io/input/docker/dante-server_1.4.1-1_amd64.deb \
http://ppa.launchpad.net/dajhorn/dante/ubuntu/pool/main/d/dante/dante-server_1.4.1-1_amd64.deb \
674a06f356cebd92c64920cec38a6687650a6f880198fbbad05aaaccca5c0a21
mv dante-server_1.4.1-1_amd64.deb "$SERVER_PATH/danted/"
DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/docker/FreeCoAP-0.7.tar.gz \
+ http://ci-files01-hki.ci.qt.io/input/docker/FreeCoAP-0.7.tar.gz \
https://github.com/keith-cullen/FreeCoAP/archive/v0.7.tar.gz \
fa6602e27dc8eaee6e34ff53400c0519da0c5c7cd47bf6f13acb564f52a693ee \
FreeCoAP-0.7.tar.gz
mv FreeCoAP-0.7.tar.gz "$SERVER_PATH/freecoap/"
-# Custom fork of Eclipse Californium with changes not upstream
+# Eclipse Californium 3.8.0, requires to apply a custom patch from
+# $SERVER_PATH/californium/ before usage
DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/docker/californium-secure-test-server.tar.gz \
- https://github.com/sonakur/californium/archive/secure-test-server.tar.gz \
- 0ee7f5d4366b9e31f6d2d42e389cb7a66d2db54987b700a38a3a31e8f38a7a19 \
- californium-secure-test-server.tar.gz
-mv californium-secure-test-server.tar.gz "$SERVER_PATH/californium/"
+ http://ci-files01-hki.ci.qt.io/input/docker/californium-3.8.0.tar.gz \
+ https://github.com/eclipse-californium/californium/archive/refs/tags/3.8.0.tar.gz \
+ 24f8ca393f26c922739462e4586b8ced1ff75f99bfa795defa34a967b5a4a5a0 \
+ californium-3.8.0.tar.gz
+mv californium-3.8.0.tar.gz "$SERVER_PATH/californium/"
echo 'Building the docker images...'
@@ -123,10 +87,10 @@ do
# backwards-incompatible changes across repositories.
context="$SERVER_PATH/$server"
- tag=$(sha1tree $context)
- docker build -t qt-test-server-$server:latest \
- -t qt-test-server-$server:$tag \
- $context
+ tag=$(sha1tree "$context")
+ docker build -t "qt-test-server-$server:latest" \
+ -t "qt-test-server-$server:$tag" \
+ "$context"
done
docker images
diff --git a/coin/provisioning/common/shared/testserver/docker_machine.sh b/coin/provisioning/common/shared/testserver/docker_machine.sh
index 313b5652..9abf0caa 100755
--- a/coin/provisioning/common/shared/testserver/docker_machine.sh
+++ b/coin/provisioning/common/shared/testserver/docker_machine.sh
@@ -1,59 +1,22 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
TestMachine='qt-test-server'
# Deploy docker virtual machine (Boot2Docker) into VirtualBox only if it doesn't exist
-if [ -z $(docker-machine ls -q --filter "name=$TestMachine") ]
+if [ -z "$(docker-machine ls -q --filter "name=$TestMachine")" ]
then
- docker-machine create $@ $TestMachine
- docker-machine ip $TestMachine
+ docker-machine create "$@" "$TestMachine"
+ docker-machine ip "$TestMachine"
else
# Otherwise, start the docker machine and update with new TLS certificates.
- docker-machine start $TestMachine && docker-machine regenerate-certs -f $TestMachine
+ docker-machine start "$TestMachine" && docker-machine regenerate-certs -f "$TestMachine"
fi
# Switch the docker engine to $TestMachine
-eval $(docker-machine env $TestMachine)
+eval "$(docker-machine env "$TestMachine")"
docker-machine ls
diff --git a/coin/provisioning/common/shared/testserver/docker_testserver.sh b/coin/provisioning/common/shared/testserver/docker_testserver.sh
index 18d9aeb8..7e743a80 100755
--- a/coin/provisioning/common/shared/testserver/docker_testserver.sh
+++ b/coin/provisioning/common/shared/testserver/docker_testserver.sh
@@ -1,47 +1,10 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
-[ -x "$(command -v realpath)" ] && FILE=$(realpath ${BASH_SOURCE[0]}) || FILE=${BASH_SOURCE[0]}
+[ -x "$(command -v realpath)" ] && FILE=$(realpath "${BASH_SOURCE[0]}") || FILE="${BASH_SOURCE[0]}"
case $FILE in
*/*) SERVER_PATH="${FILE%/*}" ;;
*) SERVER_PATH="." ;;
@@ -60,4 +23,4 @@ esac
docker info
# Create images
-$SERVER_PATH/docker_images.sh
+"$SERVER_PATH/docker_images.sh"
diff --git a/coin/provisioning/common/shared/testserver/settings.sh b/coin/provisioning/common/shared/testserver/settings.sh
index fc21d46b..03276eeb 100644..100755
--- a/coin/provisioning/common/shared/testserver/settings.sh
+++ b/coin/provisioning/common/shared/testserver/settings.sh
@@ -1,41 +1,6 @@
-#############################################################################
-##
-## 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$
-##
-#############################################################################
+#!/usr/bin/env bash
+# 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
set -ex
diff --git a/coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake b/coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake
new file mode 100644
index 00000000..4d9d5d69
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/arm64-windows-qt.cmake
@@ -0,0 +1,7 @@
+set(VCPKG_TARGET_ARCHITECTURE arm64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE dynamic)
+
+# Qt custom per-port customizations
diff --git a/coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake b/coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake
new file mode 100644
index 00000000..fba6a00a
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/armeabi-v7a-android-qt.cmake
@@ -0,0 +1,15 @@
+set(VCPKG_TARGET_ARCHITECTURE arm)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE static)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_CRT_LINKAGE dynamic)
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Android)
+set(VCPKG_MAKE_BUILD_TRIPLET "--host=armv7a-linux-androideabi")
+set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=armeabi-v7a -DANDROID_ARM_NEON=ON)
diff --git a/coin/provisioning/common/shared/triplets/x64-linux-qt.cmake b/coin/provisioning/common/shared/triplets/x64-linux-qt.cmake
new file mode 100644
index 00000000..95cc1934
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x64-linux-qt.cmake
@@ -0,0 +1,13 @@
+set(VCPKG_TARGET_ARCHITECTURE x64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+ set(VCPKG_FIXUP_ELF_RPATH ON)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Linux)
diff --git a/coin/provisioning/common/shared/triplets/x64-windows-qt.cmake b/coin/provisioning/common/shared/triplets/x64-windows-qt.cmake
new file mode 100644
index 00000000..856b756e
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x64-windows-qt.cmake
@@ -0,0 +1,7 @@
+set(VCPKG_TARGET_ARCHITECTURE x64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE dynamic)
+set(VCPKG_LIBRARY_LINKAGE dynamic)
+
+# Qt custom per-port customizations
diff --git a/coin/provisioning/common/shared/triplets/x86-android-qt.cmake b/coin/provisioning/common/shared/triplets/x86-android-qt.cmake
new file mode 100644
index 00000000..a4b74012
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x86-android-qt.cmake
@@ -0,0 +1,15 @@
+set(VCPKG_TARGET_ARCHITECTURE x86)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE static)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_CRT_LINKAGE dynamic)
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Android)
+set(VCPKG_MAKE_BUILD_TRIPLET "--host=i686-linux-android")
+set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86)
diff --git a/coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake b/coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake
new file mode 100644
index 00000000..47afae58
--- /dev/null
+++ b/coin/provisioning/common/shared/triplets/x86_64-android-qt.cmake
@@ -0,0 +1,15 @@
+set(VCPKG_TARGET_ARCHITECTURE x64)
+
+# Default settings of the triplet from the official vcpkg registry
+set(VCPKG_CRT_LINKAGE static)
+set(VCPKG_LIBRARY_LINKAGE static)
+
+# Qt custom per-port customizations
+if(PORT MATCHES "openssl")
+ set(VCPKG_CRT_LINKAGE dynamic)
+ set(VCPKG_LIBRARY_LINKAGE dynamic)
+endif()
+
+set(VCPKG_CMAKE_SYSTEM_NAME Android)
+set(VCPKG_MAKE_BUILD_TRIPLET "--host=x86_64-linux-android")
+set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DANDROID_ABI=x86_64)
diff --git a/coin/provisioning/common/shared/vcpkg-configuration.json b/coin/provisioning/common/shared/vcpkg-configuration.json
new file mode 100644
index 00000000..83f4f440
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg-configuration.json
@@ -0,0 +1,9 @@
+{
+ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg-configuration.schema.json",
+ "default-registry": {
+ "kind": "git",
+ "repository": "https://git.qt.io/mrmsdbdl/vcpkg-mirror",
+ "baseline": "8eb57355a4ffb410a2e94c07b4dca2dffbee8e50"
+ },
+ "overlay-triplets": [ "./../../shared/triplets" ]
+}
diff --git a/coin/provisioning/common/shared/vcpkg_registry_mirror.txt b/coin/provisioning/common/shared/vcpkg_registry_mirror.txt
new file mode 100644
index 00000000..546ef5b6
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg_registry_mirror.txt
@@ -0,0 +1 @@
+https://git.qt.io/mrmsdbdl/vcpkg-mirror.git
diff --git a/coin/provisioning/common/shared/vcpkg_tool_release_tag.txt b/coin/provisioning/common/shared/vcpkg_tool_release_tag.txt
new file mode 100644
index 00000000..3faa2683
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg_tool_release_tag.txt
@@ -0,0 +1 @@
+vcpkg_tool_release_tag=2023-11-16
diff --git a/coin/provisioning/common/shared/vcpkg_version.txt b/coin/provisioning/common/shared/vcpkg_version.txt
new file mode 100644
index 00000000..d2aa3aa3
--- /dev/null
+++ b/coin/provisioning/common/shared/vcpkg_version.txt
@@ -0,0 +1 @@
+vcpkg_version=2023.10.19
diff --git a/coin/provisioning/common/unix/DownloadURL.sh b/coin/provisioning/common/unix/DownloadURL.sh
index d8698522..455d65d3 100755
--- a/coin/provisioning/common/unix/DownloadURL.sh
+++ b/coin/provisioning/common/unix/DownloadURL.sh
@@ -1,43 +1,6 @@
-#!/bin/sh
-
-#############################################################################
-##
-## 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$
-##
-#############################################################################
+#!/bin/bash
+# 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
# A helper script used for downloading a file from a URL or an alternative
@@ -58,9 +21,12 @@ Download () {
url="$1"
targetFile="$2"
- command -v curl >/dev/null \
- && curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url" \
- || wget --tries 5 -O "$targetFile" "$url"
+ if command -v curl >/dev/null
+ then
+ curl --fail -L --retry 5 --retry-delay 5 -o "$targetFile" "$url"
+ else
+ wget --tries 5 -O "$targetFile" "$url"
+ fi
}
VerifyHash () {
@@ -81,10 +47,10 @@ VerifyHash () {
65) sha256sum "$file" ;;
97) sha384sum "$file" ;;
129) sha512sum "$file" ;;
- *) echo "FATAL! Unknown hash length: $hashLength" 1>&2 && exit 1 ;;
+ *) echo "FATAL! Unknown hash length: $hashLength" 1>&2 ;;
esac | cut -d ' ' -f 1`
- if [ ! "$expectedHash" = "$hash" ]
+ if [ -z "$hash" ] || [ ! "$expectedHash" = "$hash" ]
then
echo "FAIL! wrong file hash: $file $hash" 1>&2
return 1
@@ -98,10 +64,10 @@ DownloadURL () {
url2=$2
expectedHash=$3
# Optional argument $4: destination filename
- if [ x"$4" = x ]
+ if [ -z "$4" ]
then
# defaults to the last component of $url
- targetFile=$(echo $url | sed 's|^.*/||')
+ targetFile="${url/*\//}"
else
targetFile=$4
fi
diff --git a/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh b/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh
index 41b14c0b..c1358fdd 100755
--- a/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh
+++ b/coin/provisioning/common/unix/InstallFromCompressedFileFromURL.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
diff --git a/coin/provisioning/common/unix/SetEnvVar.sh b/coin/provisioning/common/unix/SetEnvVar.sh
index 88a2d193..3f457bb4 100755
--- a/coin/provisioning/common/unix/SetEnvVar.sh
+++ b/coin/provisioning/common/unix/SetEnvVar.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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) 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
# A helper script used for setting environment variables on Unix systems
@@ -49,10 +12,17 @@ function SetEnvVar {
echo "Setting environment variable $name to $path."
- if uname -a |grep -q "Ubuntu"; then
- echo "export $name=$path" >> ~/.profile
+ if uname -a |grep -q -E "Ubuntu|Debian"; then
+ if lsb_release -a |grep "Ubuntu 22.04"; then
+ echo "export $name=$path" >> ~/.bashrc
+ echo "export $name=$path" >> ~/.bash_profile
+ else
+ echo "export $name=$path" >> ~/.profile
+ fi
else
echo "export $name=$path" >> ~/.bashrc
echo "export $name=$path" >> ~/.zshrc
+ echo "export $name=$path" >> ~/.zshenv
+ echo "export $name=$path" >> ~/.zprofile
fi
}
diff --git a/coin/provisioning/common/unix/check_and_set_proxy.sh b/coin/provisioning/common/unix/check_and_set_proxy.sh
index c2e59b6b..59598205 100755
--- a/coin/provisioning/common/unix/check_and_set_proxy.sh
+++ b/coin/provisioning/common/unix/check_and_set_proxy.sh
@@ -1,42 +1,6 @@
#!/usr/bin/env bash
-#############################################################################
-##
-## 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
set -ex
diff --git a/coin/provisioning/common/unix/common.sourced.sh b/coin/provisioning/common/unix/common.sourced.sh
index aba0f78e..c15d9453 100755
--- a/coin/provisioning/common/unix/common.sourced.sh
+++ b/coin/provisioning/common/unix/common.sourced.sh
@@ -1,44 +1,6 @@
#!/bin/sh
-
-
-#############################################################################
-##
-## 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
# Script to be sourced from everywhere you need a common environment. Defines:
@@ -75,7 +37,7 @@ fatal () {
# Takes one argument which should be the filename of this script. Returns true
# if the script is being sourced, false if the script is being executed.
is_script_executed () {
- [ x"$(basename $(echo "$0" | sed s/^-//))" = x"$1" ]
+ [ "$(basename "$(echo "$0" | sed s/^-//)")" = "$1" ]
}
@@ -86,6 +48,7 @@ is_script_executed common.sourced.sh \
_detect_linux_OS_ID () {
if [ -f /etc/os-release ]
then
+ # shellcheck source=/dev/null
. /etc/os-release
PROVISIONING_OS_ID="$ID"
elif [ -f /etc/redhat-release ]
@@ -107,7 +70,7 @@ set_common_environment () {
# script in a portable way
# PROVISIONING_DIR="$(dirname "$0")/../../"
- [ x"$PROVISIONING_DIR" = x ] \
+ [ -z "$PROVISIONING_DIR" ] \
&& fatal "PROVISIONING_DIR variable needs to be set before calling set_common_environment"
uname_s="$(uname -s)"
@@ -145,7 +108,7 @@ set_common_environment () {
uname_m="$(uname -m)"
case "$uname_m" in
x86_64|amd64) PROVISIONING_ARCH=amd64 ;;
- arm64) PROVISIONING_ARCH=arm64 ;;
+ aarch64|arm64)PROVISIONING_ARCH=arm64 ;;
i[3456]86) PROVISIONING_ARCH=x86 ;;
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
esac
diff --git a/coin/provisioning/common/unix/disable-ntp_macos.sh b/coin/provisioning/common/unix/disable-ntp_macos.sh
index f9ec7e1f..fd490e43 100755
--- a/coin/provisioning/common/unix/disable-ntp_macos.sh
+++ b/coin/provisioning/common/unix/disable-ntp_macos.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
diff --git a/coin/provisioning/common/unix/emsdk.sh b/coin/provisioning/common/unix/emsdk.sh
index f74a32f0..580f966f 100755
--- a/coin/provisioning/common/unix/emsdk.sh
+++ b/coin/provisioning/common/unix/emsdk.sh
@@ -1,55 +1,40 @@
#!/usr/bin/env bash
-#############################################################################
-##
-## 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
# shellcheck source=./SetEnvVar.sh
source "${BASH_SOURCE%/*}/SetEnvVar.sh"
-version="3.1.10"
-versionNode="v14.18.2"
+# shellcheck source=./DownloadURL.sh
+source "${BASH_SOURCE%/*}/DownloadURL.sh"
+
+version="3.1.50"
+versionNode="v16.20.0"
+tarBallVersion="${version//./_}"
+if uname -a |grep -q Darwin; then
+ tarBallPackage="emsdk_macos_${tarBallVersion}.tar.gz"
+ sha="c12169ec8d22fc7a9ef1ba98027435bdf3b72729"
+else
+ tarBallPackage="emsdk_linux_${tarBallVersion}.tar.gz"
+ sha="5d81a8f1ddcb8d74c70ba5608efd4266c857944a"
+fi
+cacheUrl="https://ci-files01-hki.ci.qt.io/input/emsdk/${tarBallPackage}"
+target="/tmp/${tarBallPackage}"
mkdir -p /opt
cd /opt
-sudo git clone https://github.com/emscripten-core/emsdk.git
-cd emsdk
-sudo ./emsdk install $version
-sudo ./emsdk activate $version
+echo "URL: $cacheUrl"
+
+if DownloadURL "$cacheUrl" "" "$sha" "$target"; then
+ sudo tar -xzf "$target" -C /opt/
+ sudo rm -f "$target"
+else
+ echo "Emsdk isn't cached. Cloning it"
+ sudo git clone https://github.com/emscripten-core/emsdk.git
+ cd emsdk
+ sudo ./emsdk install "$version"
+ sudo ./emsdk activate "$version"
+fi
# platform-specific toolchain and node binaries. urls obtained from "emsdk install"
if uname -a |grep -q Darwin; then
@@ -58,9 +43,12 @@ else
pathNodeExecutable="node-$versionNode-linux-x64/bin/node"
fi
-SetEnvVar "PATH" "\"\$PATH:/opt/emsdk/emscripten-$version/\""
-SetEnvVar "EMSCRIPTEN" "/opt/emsdk/emscripten-$version"
-SetEnvVar "EMSDK" "/opt/emsdk"
-SetEnvVar "EMSDK_NODE" "/opt/emsdk/$pathNodeExecutable"
+emsdkPath="/opt/emsdk/"
+emscriptenPath="${emsdkPath}upstream/emscripten/"
+
+SetEnvVar "PATH" "\"\$PATH:${emscriptenPath}\""
+SetEnvVar "EMSCRIPTEN" "${emscriptenPath}"
+SetEnvVar "EMSDK" "${emsdkPath}"
+SetEnvVar "EMSDK_NODE" "${emsdkPath}${pathNodeExecutable}"
echo "Emsdk = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/unix/install-breakpad.sh b/coin/provisioning/common/unix/install-breakpad.sh
index b8d268e8..7c3a34fb 100755
--- a/coin/provisioning/common/unix/install-breakpad.sh
+++ b/coin/provisioning/common/unix/install-breakpad.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-############################################################################
-##
-## 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
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
@@ -48,12 +11,12 @@ set -ex
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="/tmp/$breakpad_tar"
diff --git a/coin/provisioning/common/unix/install-conan.sh b/coin/provisioning/common/unix/install-conan.sh
index f30a2300..8fc83090 100755
--- a/coin/provisioning/common/unix/install-conan.sh
+++ b/coin/provisioning/common/unix/install-conan.sh
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
+#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
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
diff --git a/coin/provisioning/common/unix/install-ffmpeg-android.sh b/coin/provisioning/common/unix/install-ffmpeg-android.sh
new file mode 100755
index 00000000..05d0b681
--- /dev/null
+++ b/coin/provisioning/common/unix/install-ffmpeg-android.sh
@@ -0,0 +1,106 @@
+#!/usr/bin/env bash
+# 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 will build and install FFmpeg static libs
+set -ex
+os="$1"
+
+# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
+source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+version="n6.1.1"
+url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
+sha1="59e0c3c4cc48e9c60073495f8c045329bb21f446"
+url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
+ffmpeg_name="FFmpeg-$version"
+
+target_dir="$HOME"
+app_prefix=""
+ffmpeg_source_dir="$target_dir/$ffmpeg_name"
+
+if [ ! -d "$ffmpeg_source_dir" ];
+then
+ InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
+fi
+
+build_ffmpeg_android() {
+
+ target_arch=$1
+ target_dir=$2
+
+ sudo mkdir -p "$target_dir"
+
+ openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include"
+ openssl_libs=""
+ if [ "$target_arch" == "x86_64" ]; then
+ target_toolchain_arch="x86_64-linux-android"
+ target_arch=x86_64
+ target_cpu=x86-64
+ openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64"
+ elif [ "$target_arch" == "x86" ]; then
+ target_toolchain_arch="i686-linux-android"
+ target_arch=x86
+ target_cpu=i686
+ openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86"
+ elif [ "$target_arch" == "arm64" ]; then
+ target_toolchain_arch="aarch64-linux-android"
+ target_arch=aarch64
+ target_cpu=armv8-a
+ openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a"
+ fi
+
+ api_version=24
+
+ ndk_root=$ANDROID_NDK_ROOT_DEFAULT
+ if uname -a |grep -q "Darwin"; then
+ ndk_host=darwin-x86_64
+ else
+ ndk_host=linux-x86_64
+ fi
+
+ toolchain=${ndk_root}/toolchains/llvm/prebuilt/${ndk_host}
+ 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
+ ar=${toolchain_bin}/llvm-ar
+ ranlib=${toolchain_bin}/llvm-ranlib
+
+ ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
+ ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera"
+ ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/"
+ ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}"
+ ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
+
+ local build_dir="$ffmpeg_source_dir/build/$target_arch"
+ sudo mkdir -p "$build_dir"
+ pushd "$build_dir"
+
+ # shellcheck disable=SC2086
+ sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir"
+
+ sudo make install -j4
+ popd
+}
+
+if [ "$os" == "android-x86" ]; then
+ target_arch=x86
+ target_dir="/usr/local/android/ffmpeg-x86"
+
+ SetEnvVar "FFMPEG_DIR_ANDROID_X86" "$target_dir"
+elif [ "$os" == "android-x86_64" ]; then
+ target_arch=x86_64
+ target_dir="/usr/local/android/ffmpeg-x86_64"
+
+ SetEnvVar "FFMPEG_DIR_ANDROID_X86_64" "$target_dir"
+elif [ "$os" == "android-arm64" ]; then
+ target_arch=arm64
+ target_dir="/usr/local/android/ffmpeg-arm64"
+
+ SetEnvVar "FFMPEG_DIR_ANDROID_ARM64" "$target_dir"
+fi
+
+build_ffmpeg_android "$target_arch" "$target_dir"
diff --git a/coin/provisioning/common/unix/install-ffmpeg-ios.sh b/coin/provisioning/common/unix/install-ffmpeg-ios.sh
new file mode 100755
index 00000000..e2a401a5
--- /dev/null
+++ b/coin/provisioning/common/unix/install-ffmpeg-ios.sh
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+# Copyright (C) 2024 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 will build and install FFmpeg static libs
+set -ex
+
+# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
+source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+version="n6.1.1"
+sha1="59e0c3c4cc48e9c60073495f8c045329bb21f446"
+url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
+url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
+ffmpeg_name="FFmpeg-$version"
+
+target_dir="$HOME"
+ffmpeg_source_dir="$target_dir/$ffmpeg_name"
+prefix="/usr/local/ios/ffmpeg"
+
+if [ ! -d "$ffmpeg_source_dir" ];
+then
+ InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir"
+fi
+
+ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
+
+build_ffmpeg_ios() {
+ local target_arch=$1
+
+ if [ "$target_arch" == "x86_64" ]; then
+ target_sdk="iphonesimulator"
+ target_arch="x86_64"
+ minos="-mios-simulator-version-min=13.0"
+ else
+ target_sdk="iphoneos"
+ target_arch="arm64"
+ minos="-miphoneos-version-min=13.0"
+ fi
+
+ local build_dir="$ffmpeg_source_dir/build_ios/$target_arch"
+ sudo mkdir -p "$build_dir"
+ pushd "$build_dir"
+
+ # shellcheck disable=SC2086
+ sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \
+ --sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \
+ --enable-cross-compile \
+ --enable-optimizations \
+ --prefix=$prefix \
+ --arch=$target_arch \
+ --cc="xcrun --sdk ${target_sdk} clang -arch $target_arch" \
+ --cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_arch" \
+ --ar="$(xcrun --sdk ${target_sdk} --find ar)" \
+ --ranlib="$(xcrun --sdk ${target_sdk} --find ranlib)" \
+ --strip="$(xcrun --sdk ${target_sdk} --find strip)" \
+ --nm="$(xcrun --sdk ${target_sdk} --find nm)" \
+ --target-os=darwin \
+ --extra-cflags="$minos" \
+ --extra-cxxflags="$minos" \
+ --enable-cross-compile \
+ --enable-swscale \
+ --enable-pthreads \
+ --disable-audiotoolbox
+
+ sudo make install DESTDIR="$build_dir/installed" -j
+ popd
+}
+
+build_ffmpeg_ios "x86_64"
+build_ffmpeg_ios "arm64"
+sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$ffmpeg_source_dir/build_ios/x86_64/installed" "$ffmpeg_source_dir/build_ios/arm64/installed"
+SetEnvVar "FFMPEG_DIR_IOS" $prefix
+
diff --git a/coin/provisioning/common/unix/install-ffmpeg.sh b/coin/provisioning/common/unix/install-ffmpeg.sh
new file mode 100755
index 00000000..94d032ed
--- /dev/null
+++ b/coin/provisioning/common/unix/install-ffmpeg.sh
@@ -0,0 +1,113 @@
+#!/usr/bin/env bash
+# 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
+
+# This script will build and install FFmpeg static libs
+set -ex
+os="$1"
+
+# shellcheck source=../unix/InstallFromCompressedFileFromURL.sh
+source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+version="n6.1.1"
+url_public="https://github.com/FFmpeg/FFmpeg/archive/$version.tar.gz"
+sha1="59e0c3c4cc48e9c60073495f8c045329bb21f446"
+url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
+ffmpeg_name="FFmpeg-$version"
+
+target_dir="$HOME"
+app_prefix=""
+ffmpeg_source_dir="$target_dir/$ffmpeg_name"
+
+if [ ! -d "$ffmpeg_source_dir" ]
+then
+ InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix"
+fi
+
+ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
+
+install_ff_nvcodec_headers() {
+ nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
+ nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip"
+ nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip"
+ nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e"
+ #nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
+ nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
+ if [ ! -d "$nv_codec_dir" ]
+ then
+ InstallFromCompressedFileFromURL "$nv_codec_url_cached" "$nv_codec_url_public" "$nv_codec_sha1" "$target_dir" ""
+ fi
+
+ sudo make -C "$nv_codec_dir" install -j
+
+ # Might be not detected by default on RHEL
+ export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig"
+}
+
+build_ffmpeg() {
+ local arch="$1"
+ local prefix="$2"
+ local build_dir="$ffmpeg_source_dir/build/$arch"
+ mkdir -p "$build_dir"
+ pushd "$build_dir"
+
+ if [ -z "$prefix" ]
+ then prefix="/usr/local/$ffmpeg_name"
+ fi
+
+ if [ -n "$arch" ]
+ then cc="clang -arch $arch"
+ fi
+
+ # shellcheck disable=SC2086
+ if [ -n "$arch" ]
+ then "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix" --enable-cross-compile --arch="$arch" --cc="$cc"
+ else "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$prefix"
+ fi
+ make install DESTDIR="$build_dir/installed" -j4
+ popd
+}
+
+if [ "$os" == "linux" ]; then
+ install_ff_nvcodec_headers
+
+ ffmpeg_config_options+=" --enable-openssl"
+ build_ffmpeg
+ sudo mv "$ffmpeg_source_dir/build/installed/usr/local/$ffmpeg_name" "/usr/local"
+ SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name"
+
+elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then
+ ffmpeg_config_options+=" --enable-shared --disable-static"
+
+ brew install yasm
+ export MACOSX_DEPLOYMENT_TARGET=12
+ fix_relative_dependencies="${BASH_SOURCE%/*}/../macos/fix_relative_dependencies.sh"
+
+ xcode_major_version=$(xcodebuild -version | awk 'NR==1 {split($2, a, "."); print a[1]}')
+ if [ "$xcode_major_version" -ge 15 ]; then
+ # fix the error: duplicate symbol '_av_ac3_parse_header'
+ ffmpeg_config_options+=" --extra-ldflags=-Wl,-ld_classic"
+ fi
+
+ if [ "$os" == "macos" ]; then
+ build_ffmpeg
+ install_dir="$ffmpeg_source_dir/build/installed"
+ "$fix_relative_dependencies" "$install_dir/usr/local/$ffmpeg_name/lib"
+ sudo mv "$install_dir/usr/local/$ffmpeg_name" "/usr/local"
+ else
+ build_ffmpeg "arm64"
+ build_ffmpeg "x86_64"
+
+ arm64_install_dir="$ffmpeg_source_dir/build/arm64/installed"
+ x86_64_install_dir="$ffmpeg_source_dir/build/x86_64/installed"
+
+ "$fix_relative_dependencies" "$arm64_install_dir/usr/local/$ffmpeg_name/lib"
+ "$fix_relative_dependencies" "$x86_64_install_dir/usr/local/$ffmpeg_name/lib"
+
+ sudo "${BASH_SOURCE%/*}/../macos/makeuniversal.sh" "$arm64_install_dir" "$x86_64_install_dir"
+ fi
+
+ SetEnvVar "FFMPEG_DIR" "/usr/local/$ffmpeg_name"
+fi
diff --git a/coin/provisioning/common/unix/install-openssl.sh b/coin/provisioning/common/unix/install-openssl.sh
index 221b4435..3b3353fb 100755
--- a/coin/provisioning/common/unix/install-openssl.sh
+++ b/coin/provisioning/common/unix/install-openssl.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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 install OpenSSL from sources.
# Requires GCC and Perl to be in PATH.
@@ -48,11 +11,11 @@ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-version="1.1.1m"
+version="3.0.7"
officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz"
-cachedUrl="http://ci-files01-hki.intra.qt.io/input/openssl/openssl-$version.tar.gz"
+cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz"
targetFile="/tmp/openssl-$version.tar.gz"
-sha="39d424c4411e45f1570073d7a71b1830b96007ca"
+sha="f20736d6aae36bcbfa9aba0d358c71601833bf27"
opensslHome="${HOME}/openssl-${version}"
opensslSource="${opensslHome}-src"
DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
@@ -62,16 +25,21 @@ cd "$opensslSource"
pwd
if [[ "$os" == "linux" ]]; then
- ./Configure --prefix="$opensslHome" shared no-ssl3-method enable-ec_nistp_64_gcc_128 linux-x86_64 "-Wa,--noexecstack"
+ if [ $(uname -m) = aarch64 ]; then
+ arch=$(uname -m)
+ else
+ arch="x86_64"
+ fi
+ ./Configure --prefix="$opensslHome" shared enable-ec_nistp_64_gcc_128 "linux-$arch" "-Wa,--noexecstack"
make && make install_sw install_ssldirs
SetEnvVar "OPENSSL_HOME" "$opensslHome"
- if uname -a |grep -q "Ubuntu"; then
- echo "export LD_LIBRARY_PATH=$opensslHome/lib:$LD_LIBRARY_PATH" >> ~/.bash_profile
+ SetEnvVar "PATH" "\"$opensslHome/bin:\$PATH\""
+ if uname -a |grep -q "Debian"; then
+ SetEnvVar "LD_LIBRARY_PATH" "\"$opensslHome/lib:$LD_LIBRARY_PATH\""
else
- echo "export LD_LIBRARY_PATH=$opensslHome/lib:$LD_LIBRARY_PATH" >> ~/.bashrc
+ SetEnvVar "LD_LIBRARY_PATH" "\"$opensslHome/lib64:$LD_LIBRARY_PATH\""
fi
-
-elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
+elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then
# Below target location has been hard coded into Coin.
# QTQAINFRA-1195
echo "prefix=$prefix"
@@ -81,13 +49,13 @@ elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
openssl_install_dir="$prefix/openssl-$version"
opensslTargetLocation="$prefix/opt/openssl"
- commonFlags="no-tests shared no-ssl3-method enable-ec_nistp_64_gcc_128 -Wa,--noexecstack"
+ commonFlags=(no-tests shared no-ssl3-method enable-ec_nistp_64_gcc_128 "-Wa,--noexecstack")
- export MACOSX_DEPLOYMENT_TARGET=10.14
+ export MACOSX_DEPLOYMENT_TARGET=12
opensslBuild="${opensslHome}-build"
opensslDestdir="${opensslHome}-destdir"
- mkdir -p $opensslBuild
+ mkdir -p "$opensslBuild"
if [ "$os" == "macos-universal" ]; then
archs="x86_64 arm64"
@@ -96,10 +64,10 @@ elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
fi
for arch in $archs; do
- cd $opensslBuild
+ cd "$opensslBuild"
echo "Configuring OpenSSL for $arch"
- mkdir -p $arch && cd $arch
- $opensslSource/Configure --prefix=$openssl_install_dir $commonFlags darwin64-$arch-cc
+ mkdir -p "$arch" && cd "$arch"
+ "$opensslSource/Configure" --prefix="$openssl_install_dir" "${commonFlags[@]}" "darwin64-$arch-cc"
echo "Building OpenSSL for $arch in $PWD"
make >> /tmp/openssl_make.log 2>&1
@@ -111,19 +79,19 @@ elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
destdir=""
fi
# shellcheck disable=SC2024
- sudo make install_sw install_ssldirs DESTDIR=$destdir >> /tmp/openssl_make_install.log 2>&1
+ sudo make install_sw install_ssldirs DESTDIR="$destdir" >> /tmp/openssl_make_install.log 2>&1
done
if [ "$os" == "macos-universal" ]; then
echo "Making universal OpenSSL package"
# shellcheck disable=SC2024
sudo rm -Rf "$openssl_install_dir"
- sudo ${SCRIPT_DIR}/../macos/makeuniversal.sh "$opensslDestdir/x86_64" $opensslDestdir/arm64
+ sudo "${SCRIPT_DIR}/../macos/makeuniversal.sh" "$opensslDestdir/x86_64" "$opensslDestdir/arm64"
fi
path=$(echo "$opensslTargetLocation" | sed -E 's/(.*)\/.*$/\1/')
sudo mkdir -p "$path"
- sudo ln -s $openssl_install_dir $opensslTargetLocation
+ sudo ln -s "$openssl_install_dir" "$opensslTargetLocation"
SetEnvVar "PATH" "\"$opensslTargetLocation/bin:\$PATH\""
SetEnvVar "MANPATH" "\"$opensslTargetLocation/share/man:\$MANPATH\""
@@ -132,8 +100,8 @@ elif [ "$os" == "macos" -o "$os" == "macos-universal" ]; then
SetEnvVar "OPENSSL_INCLUDE" "\"$openssl_install_dir/include\""
SetEnvVar "OPENSSL_LIB" "\"$openssl_install_dir/lib\""
- security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null
- security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a $opensslTargetLocation/ssl/cert.pem > /dev/null
+ security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a "$opensslTargetLocation/ssl/cert.pem" > /dev/null
+ security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a "$opensslTargetLocation/ssl/cert.pem" > /dev/null
fi
diff --git a/coin/provisioning/common/unix/install_grpc.sh b/coin/provisioning/common/unix/install_grpc.sh
new file mode 100755
index 00000000..3b94816a
--- /dev/null
+++ b/coin/provisioning/common/unix/install_grpc.sh
@@ -0,0 +1,84 @@
+#!/usr/bin/env bash
+# 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 installs gRPC from sources.
+set -ex
+
+# shellcheck source=./DownloadURL.sh
+source "${BASH_SOURCE%/*}/DownloadURL.sh"
+# shellcheck source=./SetEnvVar.sh
+source "${BASH_SOURCE%/*}/SetEnvVar.sh"
+
+# Extract cmake path from the environment
+if uname -a |grep -q "Ubuntu"; then
+ if lsb_release -a |grep -q "Ubuntu 22.04"; then
+# shellcheck source=/dev/null
+ source ~/.bash_profile
+ else
+# shellcheck source=/dev/null
+ source ~/.profile
+ fi
+else
+# shellcheck source=/dev/null
+ source ~/.bashrc
+fi
+
+version="1.50.1"
+sha1="be1b0c3dbfbc9714824921f50dffb7cf044da5ab"
+internalUrl="http://ci-files01-hki.ci.qt.io/input/automotive_suite/grpc-all-$version.zip"
+externalUrl=""
+installPrefix="$HOME/install-grpc-$version"
+
+targetDir="$HOME/grpc-$version"
+targetFile="$targetDir.zip"
+DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
+unzip -q "$targetFile" -d "$HOME"
+sudo rm "$targetFile"
+
+# devtoolset is needed when running configuration
+if uname -a |grep -qv "Darwin"; then
+ export PATH="/opt/rh/devtoolset-7/root/usr/bin:$PATH"
+fi
+
+if uname -a |grep -q Darwin; then
+ extraCMakeArgs=("-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET=12)
+ SetEnvVar PATH "\$PATH:$installPrefix/bin"
+fi
+
+# MacOS
+if [[ -n "$OPENSSL_DIR" ]]; then
+ extraOpenSslArg=-DOPENSSL_ROOT_DIR=$OPENSSL_DIR
+# Linux
+elif [[ -n "$OPENSSL_HOME" ]]; then
+ extraOpenSslArg=-DOPENSSL_ROOT_DIR=$OPENSSL_HOME
+fi
+
+echo "Configuring and building gRPC"
+
+buildDir="$HOME/build-grpc-$version"
+mkdir -p "$buildDir"
+cd "$buildDir"
+cmake "$targetDir" -G"Ninja Multi-Config" \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \
+ -DCMAKE_INSTALL_PREFIX="$installPrefix" \
+ "${extraCMakeArgs[@]}" \
+ "$extraOpenSslArg" \
+ -DgRPC_BUILD_TESTS=OFF \
+ -DgRPC_PROTOBUF_PROVIDER="package" \
+ -DgRPC_SSL_PROVIDER="package" \
+ -DgRPC_ZLIB_PROVIDER="package"
+ninja all
+
+sudo env "PATH=$PATH" ninja install
+# Refresh shared library cache if OS isn't macOS
+if uname -a |grep -qv "Darwin"; then
+ sudo ldconfig
+fi
+
+SetEnvVar "gRPC_ROOT" "$installPrefix"
+SetEnvVar "absl_ROOT" "$installPrefix"
+
+sudo rm -rf "$targetDir"
+sudo rm -rf "$buildDir"
diff --git a/coin/provisioning/common/unix/install_protobuf.sh b/coin/provisioning/common/unix/install_protobuf.sh
new file mode 100755
index 00000000..110d8b9c
--- /dev/null
+++ b/coin/provisioning/common/unix/install_protobuf.sh
@@ -0,0 +1,101 @@
+#!/usr/bin/env bash
+# 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
+
+# shellcheck source=./DownloadURL.sh
+source "${BASH_SOURCE%/*}/DownloadURL.sh"
+# shellcheck source=./SetEnvVar.sh
+source "${BASH_SOURCE%/*}/SetEnvVar.sh"
+
+# Extract cmake path from the environment
+if uname -a |grep -q "Ubuntu"; then
+ if lsb_release -a |grep "Ubuntu 22.04"; then
+ source ~/.bash_profile
+ else
+ source ~/.profile
+ fi
+else
+ source ~/.bashrc
+fi
+
+# This script will install Google's Protocal Buffers
+
+version="21.9"
+sha1="3226a0e49d048759b702ae524da79387c59f05cc"
+internalUrl="http://ci-files01-hki.ci.qt.io/input/automotive_suite/protobuf-all-$version.zip"
+externalUrl="https://github.com/protocolbuffers/protobuf/releases/download/v$version/protobuf-all-$version.zip"
+
+targetDir="$HOME/protobuf-$version"
+targetFile="$targetDir.zip"
+DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
+unzip "$targetFile" -d "$HOME"
+sudo rm "$targetFile"
+
+cd $targetDir
+
+if uname -a |grep -q "Ubuntu"; then
+ echo 'diff --git a/cmake/conformance.cmake b/cmake/conformance.cmake
+index d6c435ac3..d6fb3a7df 100644
+--- a/cmake/conformance.cmake
++++ b/cmake/conformance.cmake
+@@ -24,6 +24,8 @@ add_executable(conformance_test_runner
+ ${protobuf_SOURCE_DIR}/conformance/conformance.pb.cc
+ ${protobuf_SOURCE_DIR}/conformance/conformance_test.cc
+ ${protobuf_SOURCE_DIR}/conformance/conformance_test_runner.cc
++ ${protobuf_SOURCE_DIR}/conformance/conformance_test_main.cc
++ ${protobuf_SOURCE_DIR}/conformance/text_format_conformance_suite.cc
+ ${protobuf_SOURCE_DIR}/conformance/third_party/jsoncpp/json.h
+ ${protobuf_SOURCE_DIR}/conformance/third_party/jsoncpp/jsoncpp.cpp
+ ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.pb.cc
+@@ -36,6 +38,10 @@ add_executable(conformance_cpp
+ ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto2.pb.cc
+ ${protobuf_SOURCE_DIR}/src/google/protobuf/test_messages_proto3.pb.cc
+ )
++install(TARGETS conformance_test_runner
++ RUNTIME DESTINATION COMPONENT conformance
++ LIBRARY DESTINATION COMPONENT conformance
++ ARCHIVE DESTINATION COMPONENT conformance)
+
+ target_include_directories(
+ conformance_test_runner' | patch -p1
+ extraCMakeArgs=("-Dprotobuf_BUILD_CONFORMANCE=ON")
+fi
+
+# devtoolset is needed when running configuration
+if uname -a |grep -qv "Darwin"; then
+ export PATH="/opt/rh/devtoolset-7/root/usr/bin:$PATH"
+fi
+
+echo "Configuring and building protobuf"
+
+installPrefix="/usr/local"
+if uname -a |grep -q Darwin; then
+ extraCMakeArgs=("-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64" -DCMAKE_OSX_DEPLOYMENT_TARGET=12)
+ SetEnvVar PATH "\$PATH:$installPrefix/bin"
+fi
+
+buildDir="$HOME/build-protobuf-$version"
+mkdir "$buildDir"
+cd "$buildDir"
+cmake "$targetDir" -G"Ninja Multi-Config" \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DCMAKE_INSTALL_PREFIX=$installPrefix \
+ "${extraCMakeArgs[@]}" \
+ -Dprotobuf_BUILD_TESTS=OFF \
+ -Dprotobuf_BUILD_EXAMPLES=OFF \
+ -Dprotobuf_BUILD_PROTOC_BINARIES=ON \
+ -DBUILD_SHARED_LIBS=OFF \
+ -Dprotobuf_WITH_ZLIB=OFF \
+ -DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \
+ -DCMAKE_CROSS_CONFIGS=all \
+ -DCMAKE_DEFAULT_CONFIGS=all
+ninja all:all
+sudo env "PATH=$PATH" ninja install:all
+
+# Refresh shared library cache if OS isn't macOS
+if uname -a |grep -qv "Darwin"; then
+ sudo ldconfig
+fi
+
+sudo rm -r "$targetDir"
+sudo rm -r "$buildDir"
diff --git a/coin/provisioning/common/unix/install_protobuff.sh b/coin/provisioning/common/unix/install_protobuff.sh
deleted file mode 100755
index fb5ae853..00000000
--- a/coin/provisioning/common/unix/install_protobuff.sh
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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$
-##
-#############################################################################
-
-# shellcheck source=./DownloadURL.sh
-source "${BASH_SOURCE%/*}/DownloadURL.sh"
-# shellcheck source=./SetEnvVar.sh
-source "${BASH_SOURCE%/*}/SetEnvVar.sh"
-
-# This script will install Google's Protocal Buffers which is needed by Automotive Suite
-
-version="3.6.1"
-sha1="44b8ba225f3b4dc45fb56d5881ec6a91329802b6"
-internalUrl="http://ci-files01-hki.intra.qt.io/input/automotive_suite/protobuf-all-$version.zip"
-externalUrl="https://github.com/protocolbuffers/protobuf/releases/download/v$version/protobuf-all-$version.zip"
-
-targetDir="$HOME/protobuf-$version"
-targetFile="$targetDir.zip"
-DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
-unzip "$targetFile" -d "$HOME"
-sudo rm "$targetFile"
-
-# devtoolset is needed when running configuration
-if uname -a |grep -qv "Darwin"; then
- export PATH="/opt/rh/devtoolset-7/root/usr/bin:$PATH"
-fi
-
-echo "Configuring and building protobuf"
-cd "$targetDir"
-if uname -a |grep -q Darwin; then
- ./configure --prefix "$(xcrun --sdk macosx --show-sdk-path)/usr/local"
- SetEnvVar PATH "\$PATH:$(xcrun --sdk macosx --show-sdk-path)/usr/local/bin"
-else
- ./configure
-fi
-make -j5
-sudo make install
-
-# Refresh shared library cache if OS isn't macOS
-if uname -a |grep -qv "Darwin"; then
- sudo ldconfig
-fi
-
-sudo rm -r "$targetDir"
diff --git a/coin/provisioning/common/unix/libclang-v100-dyn.sh b/coin/provisioning/common/unix/libclang-v100-dyn.sh
index ee982973..14194f55 100755
--- a/coin/provisioning/common/unix/libclang-v100-dyn.sh
+++ b/coin/provisioning/common/unix/libclang-v100-dyn.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/).
# The Clang library (C-bindings), version 3.9 or higher is required for building.
@@ -59,23 +22,23 @@ if uname -a |grep -q Darwin; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_${version//\./}-based-mac.7z"
sha1="0fe1fa50b1b469d2c05acc3a3468bc93a66f1e5a"
- url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/dynamic/libclang-release_${version//\./}-based-mac.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/dynamic/libclang-release_${version//\./}-based-mac.7z"
elif test -f /etc/redhat-release || /etc/centos-release; then
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/libclang-release_${version//\./}-based-linux-Rhel7.6-gcc5.3-x86_64.7z"
sha1="1d2e265502fc0832a854f989d757105833fbd179"
- url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/dynamic/libclang-release_${version//\./}-based-linux-Rhel7.6-gcc5.3-x86_64.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/dynamic/libclang-release_${version//\./}-based-linux-Rhel7.6-gcc5.3-x86_64.7z"
else
version=$libclang_version
url="https://download.qt.io/development_releases/prebuilt/libclang/dynamic/libclang-release_${version//\./}-based-linux-Ubuntu18.04-gcc9.2-x86_64.7z"
sha1="c1580acb3a82e193acf86f18afb52427c5e67de8"
- url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/libclang-release_${version//\./}-based-linux-Ubuntu18.04-gcc9.2-x86_64.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/libclang-release_${version//\./}-based-linux-Ubuntu18.04-gcc9.2-x86_64.7z"
fi
zip="/tmp/libclang.7z"
destination="/usr/local/libclang-dynlibs-$version"
-DownloadURL $url_cached $url $sha1 $zip
+DownloadURL "$url_cached" "$url" "$sha1" "$zip"
if command -v 7zr &> /dev/null; then
sudo 7zr x $zip -o/usr/local/
else
@@ -85,5 +48,5 @@ sudo mv /usr/local/libclang "$destination"
rm -rf $zip
-echo "export LLVM_DYNAMIC_LIBS_100=$destination" >> ~/.bash_profile
+SetEnvVar "LLVM_DYNAMIC_LIBS_100" "$destination"
echo "libClang for QtForPython= $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/unix/libclang.sh b/coin/provisioning/common/unix/libclang.sh
index 53a76469..5f75d7e4 100755
--- a/coin/provisioning/common/unix/libclang.sh
+++ b/coin/provisioning/common/unix/libclang.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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) 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
# PySide versions following 5.6 use a C++ parser based on Clang (http://clang.org/).
# The Clang library (C-bindings), version 3.9 or higher is required for building.
@@ -53,23 +16,37 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh"
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
-libclang_version=12.0
+PROVISIONING_DIR="$(dirname "$0")/../../"
+# shellcheck source=./common.sourced.sh
+source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
+
+libclang_version="15.0.0"
if uname -a |grep -q Darwin; then
version=$libclang_version
- url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version//\./}-based-mac.7z"
- url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version//\./}-based-mac.7z"
- sha1="bb9223450c1c36ee37d8c91e876dba82db117a7a"
-elif test -f /etc/redhat-release && cat /etc/redhat-release | grep "Red Hat" | grep -v "8" ; then
+ url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-mac.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-mac.7z"
+ sha1="6d916a17459c81551dde47580ae3f071e93338a5"
+elif test -f /etc/redhat-release && grep "Red Hat" /etc/redhat-release | grep -v "8" ; then
version=$libclang_version
- url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version//\./}-based-linux-CentOS8.3-gcc9.2-x86_64.7z"
- url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version//\./}-based-linux-CentOS8.3-gcc9.2-x86_64.7z"
- sha1="d02e4dd30fe3f810c3a0cdcbed5870dec56ed91b"
+ url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Rhel8.4-gcc10.0-x86_64.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Rhel8.4-gcc10.0-x86_64.7z"
+ sha1="6ca035bb522022d34d61759e0460845832933b5c"
+elif [ "$PROVISIONING_OS_ID" = ubuntu ]; then
+ version=$libclang_version
+ url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu22.04-gcc11.2-x86_64.7z"
+ sha1="dd170ec762a7ec8ac84b4b5cac3a422514e5b030"
+elif [ "$PROVISIONING_OS_ID" = debian ]; then
+ version=17.0.1
+ url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Debian11.6-gcc10.0-arm64.7z"
+ sha1="43f0210121b889107e3dab631e8104e661a3866b"
else
version=$libclang_version
- url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version//\./}-based-linux-Ubuntu20.04-gcc9.3-x86_64.7z"
- url_cached="http://ci-files01-hki.intra.qt.io/input/libclang/qt/libclang-release_${version//\./}-based-linux-Ubuntu20.04-gcc9.3-x86_64.7z"
- sha1="81b3e640befa23b5cdebd59e206dc79e4de20ba3"
+ url="https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-release_${version}-based-linux-Ubuntu20.04-gcc9.3-x86_64.7z"
+ url_cached="http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-release_${version}-based-linux-Ubuntu20.04-gcc9.3-x86_64.7z"
+ sha1="bd6615012b8bdb2720a45ede56e05f6db7191843"
fi
zip="/tmp/libclang.7z"
@@ -85,9 +62,5 @@ sudo mv /usr/local/libclang "$destination"
rm -rf $zip
-echo "export LLVM_INSTALL_DIR=$destination" >> ~/.bash_profile
+SetEnvVar "LLVM_INSTALL_DIR" "$destination"
echo "libClang = $version" >> ~/versions.txt
-
-# This is a hacked static build of libclang which requires special
-# handling on the qdoc side.
-SetEnvVar "QDOC_USE_STATIC_LIBCLANG" "1"
diff --git a/coin/provisioning/common/unix/mqtt_broker.sh b/coin/provisioning/common/unix/mqtt_broker.sh
index 21da3776..d3cce755 100755
--- a/coin/provisioning/common/unix/mqtt_broker.sh
+++ b/coin/provisioning/common/unix/mqtt_broker.sh
@@ -1,43 +1,6 @@
#!/bin/bash
-
-#############################################################################
-##
-## 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 installs paho testing broker
@@ -46,7 +9,7 @@ source "${BASH_SOURCE%/*}/InstallFromCompressedFileFromURL.sh"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
CommitSHA="2873885d7e840b4e06483f36f170c609eb30527d"
-PrimaryUrl="http://ci-files01-hki.intra.qt.io/input/mqtt_broker/paho.mqtt.testing-$CommitSHA.zip"
+PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/mqtt_broker/paho.mqtt.testing-$CommitSHA.zip"
AltUrl="https://github.com/eclipse/paho.mqtt.testing/archive/$CommitSHA.zip"
SHA1="1fcc4e61b12f11a1421cc8c3f379276d732e62b7"
targetFolder="/opt/paho_broker"
diff --git a/coin/provisioning/common/unix/openssl_3_for_android.sh b/coin/provisioning/common/unix/openssl_3_for_android.sh
new file mode 100755
index 00000000..0ad79315
--- /dev/null
+++ b/coin/provisioning/common/unix/openssl_3_for_android.sh
@@ -0,0 +1,76 @@
+#!/usr/bin/env bash
+# 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
+
+# This script install prebuilt OpenSSL which was built against Android NDK 25.
+# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories
+
+set -ex
+# shellcheck source=../unix/DownloadURL.sh
+source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
+# shellcheck source=../unix/SetEnvVar.sh
+source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
+
+version="3.0.7"
+ndkVersionLatest="r26b"
+ndkVersionDefault=$ndkVersionLatest
+prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce"
+prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest
+
+: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 25
+# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
+exports_file="/tmp/export.sh"
+# source previously made environmental variables.
+if uname -a |grep -q "Ubuntu"; then
+ # shellcheck disable=SC1090
+ grep -e "^export" "$HOME/.profile" > $exports_file && source $exports_file
+ rm -rf "$exports_file"
+else
+ # shellcheck disable=SC1090
+ grep -e "^export" "$HOME/.bashrc" > $exports_file && source $exports_file
+ rm -rf "$exports_file"
+fi
+
+# ANDROID_NDK_ROOT is required during Configure
+export ANDROID_NDK_ROOT=/opt/android/android-ndk-r26b
+
+officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz"
+cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz"
+targetFile="/tmp/openssl-$version.tar.gz"
+sha="f20736d6aae36bcbfa9aba0d358c71601833bf27"
+opensslHome="${HOME}/openssl/android/openssl-${version}"
+DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
+mkdir -p "${HOME}/openssl/android/"
+tar -xzf "$targetFile" -C "${HOME}/openssl/android/"
+if uname -a |grep -q "Darwin"; then
+ TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/darwin-x86_64/bin
+else
+ TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin
+fi
+cd "$opensslHome"
+PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm
+PATH=$TOOLCHAIN:$PATH CC=clang make build_generated
+EOB
+
+function InstallPrebuiltOpenssl() {
+
+ ndkVersion=$1
+ sha=$2
+
+ opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}"
+ if [[ ! -d ${opensslHome} ]]; then
+ prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip"
+ targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip"
+
+ DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
+ unzip -o "$targetFile" -d "${HOME}"
+ sudo rm -f "$targetFile"
+ fi
+}
+
+InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault
+SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome"
+InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest
+SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
+
+echo "OpenSSL for Android = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/unix/openssl_for_android.sh b/coin/provisioning/common/unix/openssl_for_android.sh
index 448279e2..d555e0cc 100755
--- a/coin/provisioning/common/unix/openssl_for_android.sh
+++ b/coin/provisioning/common/unix/openssl_for_android.sh
@@ -1,45 +1,8 @@
#!/usr/bin/env bash
+# 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
-#############################################################################
-##
-## 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$
-##
-#############################################################################
-
-# This script install prebuilt OpenSSL which was built against Android NDK 21.
+# This script install prebuilt OpenSSL which was built against Android NDK 25.
# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories
set -ex
@@ -48,9 +11,14 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
-version="1.1.1m"
-: ' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK 21
-# Source built requires GCC and Perl to be in PATH.
+version="3.0.7"
+ndkVersionLatest="r26b"
+ndkVersionDefault=$ndkVersionLatest
+prebuiltOpensslNdkShaLatest="ea925d5a5b696916fb3650403a2eb3189c52b5ce"
+prebuiltOpensslNdkShaDefault=$prebuiltOpensslNdkShaLatest
+
+: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r26b
+# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
exports_file="/tmp/export.sh"
# source previously made environmental variables.
if uname -a |grep -q "Ubuntu"; then
@@ -64,9 +32,9 @@ else
fi
officialUrl="https://www.openssl.org/source/openssl-$version.tar.gz"
-cachedUrl="http://ci-files01-hki.intra.qt.io/input/openssl/openssl-$version.tar.gz"
+cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version.tar.gz"
targetFile="/tmp/openssl-$version.tar.gz"
-sha="39d424c4411e45f1570073d7a71b1830b96007ca"
+sha="f20736d6aae36bcbfa9aba0d358c71601833bf27"
opensslHome="${HOME}/openssl/android/openssl-${version}"
DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
mkdir -p "${HOME}/openssl/android/"
@@ -79,20 +47,27 @@ fi
cd "$opensslHome"
PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm
PATH=$TOOLCHAIN:$PATH CC=clang make build_generated
-'
+EOB
-if uname -a |grep -q "Darwin"; then
- prebuiltUrl="http://ci-files01-hki.intra.qt.io/input/openssl/prebuilt-openssl-1.1.1m-for-android-ndk-r23b-darwin.tar.gz"
- sha="2624b0c2772e360bbbae7a7f2dc342e4b97f1a2e"
-else
- prebuiltUrl="http://ci-files01-hki.intra.qt.io/input/openssl/prebuilt-openssl-1.1.1m-for-android-ndk-r23b-linux.tar.gz"
- sha="f58dcb32b2d3e5edc7e5141ae139a50547805f60"
-fi
-targetFile="/tmp/prebuilt-openssl-$version.tar.gz"
-DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
-tar -xzf "$targetFile" -C "${HOME}"
+function InstallPrebuiltOpenssl() {
-opensslHome="${HOME}/openssl/android/openssl-${version}"
-SetEnvVar "OPENSSL_ANDROID_HOME" "$opensslHome"
+ ndkVersion=$1
+ sha=$2
+
+ opensslHome="${HOME}/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}"
+ if [[ ! -d ${opensslHome} ]]; then
+ prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip"
+ targetFile="/tmp/prebuilt-openssl-${version}-for-android-ndk-${ndkVersion}.zip"
+
+ DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
+ unzip -o "$targetFile" -d "${HOME}"
+ sudo rm -f "$targetFile"
+ fi
+}
+
+InstallPrebuiltOpenssl $ndkVersionDefault $prebuiltOpensslNdkShaDefault
+SetEnvVar "OPENSSL_ANDROID_HOME_DEFAULT" "$opensslHome"
+InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslNdkShaLatest
+SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
echo "OpenSSL for Android = $version" >> ~/versions.txt
diff --git a/coin/provisioning/common/unix/pyenv.rb b/coin/provisioning/common/unix/pyenv.rb
new file mode 100644
index 00000000..0c2781ff
--- /dev/null
+++ b/coin/provisioning/common/unix/pyenv.rb
@@ -0,0 +1,80 @@
+class Pyenv < Formula
+ desc "Python version management"
+ homepage "https://github.com/pyenv/pyenv"
+ url "https://github.com/pyenv/pyenv/archive/refs/tags/v2.3.15.tar.gz"
+ sha256 "cf6499e1c8f18fb3473c2afdf5f14826fd42a1c4b051219faea104e38036e4bb"
+ license "MIT"
+ version_scheme 1
+ head "https://github.com/pyenv/pyenv.git", branch: "master"
+
+ livecheck do
+ url :stable
+ regex(/^v?(\d+(?:\.\d+)+(-\d+)?)$/i)
+ end
+
+ bottle do
+ sha256 cellar: :any, arm64_ventura: "ff68efd633ee282abb0c0a6ba72f90d5248644f3143f40e15841b6ae7996e3cd"
+ sha256 cellar: :any, arm64_monterey: "af7621550cc7c005549d96218d2606a521e12595f2efc9ae9d8523cc46d318ba"
+ sha256 cellar: :any, arm64_big_sur: "69d69ceeea16fe45346d8856bf213c0a0e48220097635cf17d40b98fa8e12f83"
+ sha256 cellar: :any, ventura: "48fb21656dc11dc0a6ef25eb7cb5e8829485c1e1fac7d1ca596a46771a9ad91d"
+ sha256 cellar: :any, monterey: "96ba1d1702b7620dd9d0d2fe030af4d31c83504afea1b119910ab2e9c9fbb08c"
+ sha256 cellar: :any, big_sur: "f96dfcecefb40d4794a8ea3ef5981bdeab6e64c412f18f0c128b1d64fe87d913"
+ sha256 cellar: :any_skip_relocation, x86_64_linux: "83737a776f4828a7fb5eb289b10418b7cf829cccca3fc634d7dfe7c96aff4e7e"
+ end
+
+ depends_on "autoconf"
+ depends_on "openssl@3"
+ depends_on "pkg-config"
+ depends_on "readline"
+
+ uses_from_macos "python" => :test
+ uses_from_macos "bzip2"
+ uses_from_macos "libffi"
+ uses_from_macos "ncurses"
+ uses_from_macos "xz"
+ uses_from_macos "zlib"
+
+ def install
+ inreplace "libexec/pyenv", "/usr/local", HOMEBREW_PREFIX
+ inreplace "libexec/pyenv-rehash", "$(command -v pyenv)", opt_bin/"pyenv"
+ inreplace "pyenv.d/rehash/source.bash", "$(command -v pyenv)", opt_bin/"pyenv"
+
+ system "src/configure"
+ system "make", "-C", "src"
+
+ prefix.install Dir["*"]
+ %w[pyenv-install pyenv-uninstall python-build].each do |cmd|
+ bin.install_symlink "#{prefix}/plugins/python-build/bin/#{cmd}"
+ end
+
+ share.install prefix/"man"
+
+ # Do not manually install shell completions. See:
+ # - pyenv/pyenv#1056#issuecomment-356818337
+ # - Homebrew/homebrew-core#22727
+ end
+
+ test do
+ # Create a fake python version and executable.
+ pyenv_root = Pathname(shell_output("#{bin}/pyenv root").strip)
+ python_bin = pyenv_root/"versions/1.2.3/bin"
+ foo_script = python_bin/"foo"
+ foo_script.write "echo hello"
+ chmod "+x", foo_script
+
+ # Test versions.
+ versions = shell_output("eval \"$(#{bin}/pyenv init --path)\" " \
+ "&& eval \"$(#{bin}/pyenv init -)\" " \
+ "&& #{bin}/pyenv versions").split("\n")
+ assert_equal 2, versions.length
+ assert_match(/\* system/, versions[0])
+ assert_equal(" 1.2.3", versions[1])
+
+ # Test rehash.
+ system bin/"pyenv", "rehash"
+ refute_match "Cellar", (pyenv_root/"shims/foo").read
+ assert_equal "hello", shell_output("eval \"$(#{bin}/pyenv init --path)\" " \
+ "&& eval \"$(#{bin}/pyenv init -)\" " \
+ "&& PYENV_VERSION='1.2.3' foo").chomp
+ end
+end
diff --git a/coin/provisioning/common/unix/python_modules.sh b/coin/provisioning/common/unix/python_modules.sh
index c4b60867..00009836 100755
--- a/coin/provisioning/common/unix/python_modules.sh
+++ b/coin/provisioning/common/unix/python_modules.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# needed by packaging scripts
pip3 install bs4
diff --git a/coin/provisioning/common/unix/sccache.sh b/coin/provisioning/common/unix/sccache.sh
index 7adfed32..8a403ba7 100755
--- a/coin/provisioning/common/unix/sccache.sh
+++ b/coin/provisioning/common/unix/sccache.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
set -ex
@@ -50,7 +13,7 @@ function installSccache {
targetVersion=$2
sha1=$3
targetFile=sccache-$targetVersion-$targetArch.tar.gz
- primaryUrl=http://ci-files01-hki.intra.qt.io/input/sccache/$targetFile
+ primaryUrl=http://ci-files01-hki.ci.qt.io/input/sccache/$targetFile
cacheUrl=https://github.com/mozilla/sccache/releases/download/$targetVersion/$targetFile
DownloadURL "$primaryUrl" "$cacheUrl" "$sha1" "$targetFile"
@@ -62,4 +25,11 @@ function installSccache {
# disable sccache server from shutting down after being idle
SetEnvVar "SCCACHE_IDLE_TIMEOUT" "0"
+
+ # copy sccache wrapper and place as a first in PATH
+ mkdir -p "$HOME/sccache_wrapper"
+ cp "${BASH_SOURCE%/*}/sccache_wrapper" "$HOME/sccache_wrapper/sccache"
+ chmod 755 "$HOME/sccache_wrapper/sccache"
+ SetEnvVar "PATH" "$HOME/sccache_wrapper:\$PATH"
+
}
diff --git a/coin/provisioning/common/unix/sccache_wrapper b/coin/provisioning/common/unix/sccache_wrapper
new file mode 100755
index 00000000..52e39513
--- /dev/null
+++ b/coin/provisioning/common/unix/sccache_wrapper
@@ -0,0 +1,14 @@
+#!/usr/bin/env bash
+# Call real sccache with original arguments
+# sccache /opt/android/android-ndk-r23b/toolchains/llvm/prebuilt/linux-x86_64/bin/clang --target=aarch64-none ......
+real_sccache=/usr/local/sccache/sccache
+$real_sccache "$@"
+retval=$?
+
+if test $retval -ne 0
+then
+ echo "Sccache command failed, re-try calling build tool directly"
+ "$@"
+ retval=$?
+fi
+exit $retval
diff --git a/coin/provisioning/common/unix/squishInstall.sh b/coin/provisioning/common/unix/squishInstall.sh
index 09b5e0f3..0195d84a 100755
--- a/coin/provisioning/common/unix/squishInstall.sh
+++ b/coin/provisioning/common/unix/squishInstall.sh
@@ -1,43 +1,6 @@
#!/usr/bin/env bash
-
-#############################################################################
-##
-## 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
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
@@ -47,47 +10,50 @@ set -ex
# This script will fetch and extract pre-buildt squish package for Linux and Mac.
# Squish is need by Release Test Automation (RTA)
-version="6.7.2"
-qtBranch="62x"
+version="7.2.1"
+qtBranch="66x"
installFolder="/opt"
squishFolder="$installFolder/squish"
-preBuildCacheUrl="ci-files01-hki.intra.qt.io:/hdd/www/input/squish/jenkins_build/stable"
+preBuildCacheUrl="ci-files01-hki.ci.qt.io:/hdd/www/input/squish/jenkins_build/stable"
licenseFile=".squish-license"
-licenseUrl="http://ci-files01-hki.intra.qt.io/input/squish/coin/$licenseFile"
-licenseSHA="bda9c3bce2b9a74cb10ead9e87a4ebacd9eef4c2"
+licenseBranch="squish_license"
+licenseUrl="http://ci-files01-hki.ci.qt.io/input/squish/coin/$licenseBranch/$licenseFile"
+licenseSHA="e84b499a2011f9bb1a6eefc7b2338d7ae770927a"
+testSuiteUrl="ci-files01-hki.ci.qt.io:/hdd/www/input/squish/coin/suite_test_squish"
+testSuiteLocal="/tmp/squish_test_suite"
if uname -a |grep -q Darwin; then
compressedFolder="prebuild-squish-$version-$qtBranch-mac.tar.gz"
- sha1="6b7d80be4d107ba53ac9218fe5ca79f72c6e1e2d"
+ sha1="7467c974b65255c86b8fccaeca90e0590d4f7c96"
else
compressedFolder="prebuild-squish-$version-$qtBranch-linux64.tar.gz"
- sha1="1f57efd6f21a994b07f28b0b44ff7972bbf51733"
+ sha1="950a6035c777c8ce0a50a0b3ad468044d07f898b"
fi
mountFolder="/tmp/squish"
sudo mkdir "$mountFolder"
+sudo mkdir "$testSuiteLocal"
# Check which platform
if uname -a |grep -q Darwin; then
usersGroup="staff"
- squishLicenseDir="/Users/qt"
elif uname -a |grep -q "el7"; then
usersGroup="qt"
- squishLicenseDir="/root"
elif uname -a |grep -q "Ubuntu"; then
usersGroup="users"
- squishLicenseDir="/home/qt"
else
usersGroup="users"
- squishLicenseDir="/root"
fi
targetFileMount="$mountFolder"/"$compressedFolder"
-echo "Mounting $preBuildCacheUrl to $mountFolder"
+echo "Mounting Squish packages from $preBuildCacheUrl to $mountFolder"
+echo "Mounting Squish test suite from $testSuiteUrl to $testSuiteLocal"
if uname -a |grep -q Darwin; then
sudo mount -o locallocks "$preBuildCacheUrl" "$mountFolder"
+ sudo mount -o locallocks "$testSuiteUrl" "$testSuiteLocal"
else
sudo mount "$preBuildCacheUrl" "$mountFolder"
+ sudo mount "$testSuiteUrl" "$testSuiteLocal"
fi
echo "Create $installFolder if needed"
if [ ! -d "$installFolder" ]; then
@@ -99,10 +65,6 @@ VerifyHash "$targetFileMount" "$sha1"
echo "Uncompress $compressedFolder"
sudo tar -xzf "$targetFileMount" --directory "$installFolder"
-echo "Unmounting $mountFolder"
-sudo diskutil unmount force "$mountFolder" || sudo umount -f "$mountFolder"
-
-sudo mv "$installFolder/rta_squish_$qtBranch" "$squishFolder"
if uname -a |grep -q Darwin; then
sudo xattr -r -c "$squishFolder"
fi
@@ -110,41 +72,35 @@ fi
if uname -a |grep -q "Ubuntu"; then
if [ ! -e "/usr/lib/tcl8.6" ]; then
sudo mkdir /usr/lib/tcl8.6
- #this needs to be copied only to squish_for_qt6
- sudo cp "$squishFolder/squish_for_qt6/tcl/lib/tcl8.6/init.tcl" /usr/lib/tcl8.6/
+ #this needs to be copied only to squish_for_qt65
+ sudo cp "$squishFolder/squish_for_qt66/tcl/lib/tcl8.6/init.tcl" /usr/lib/tcl8.6/
fi
fi
-
+echo "Download Squish license"
DownloadURL "$licenseUrl" "$licenseUrl" "$licenseSHA" "$HOME/$licenseFile"
echo "Changing ownerships"
sudo chown -R qt:$usersGroup "$squishFolder"
sudo chown qt:$usersGroup "$HOME/$licenseFile"
-echo "Set commands for environment variables in .bashrc"
-if uname -a |grep -q "Ubuntu"; then
- echo "export SQUISH_PATH=$squishFolder/squish_for_qt6" >> ~/.profile
- echo "export PATH=\$PATH:$squishFolder/squish_for_qt6/bin" >> ~/.profile
-else
- echo "export SQUISH_PATH=$squishFolder/squish_for_qt6" >> ~/.bashrc
- echo "export PATH=\$PATH:$squishFolder/squish_for_qt6/bin" >> ~/.bashrc
-fi
echo "Verifying Squish, available installations:"
ls -la $squishFolder
-
-if "$squishFolder/squish_for_qt5/bin/squishrunner" --testsuite "$squishFolder/suite_test_squish" | grep "Squish test run successfully" ; then
- echo "Squish for Qt5 installation tested successfully"
-else
- echo "Squish for Qt5 test failed! Package wasn't installed correctly."
- exit 1
-fi
-if "$squishFolder/squish_for_qt6/bin/squishrunner" --testsuite "$squishFolder/suite_test_squish" | grep "Squish test run successfully" ; then
- echo "Squish for Qt6 installation tested successfully"
-else
- echo "Squish for Qt6 test failed! Package wasn't installed correctly."
- exit 1
-fi
-
-
+cd $squishFolder
+
+for squishInstallation in */ ; do
+ if "$squishInstallation/bin/squishrunner" --testsuite "$testSuiteLocal" | grep "Squish test run successfully" ; then
+ echo "Squish in $squishInstallation tested successfully"
+ else
+ echo "Testing Squish in $squishInstallation failed! Squish wasn't installed correctly."
+ exit 1
+ fi
+done
+
+echo "Clean up installation temp dirs"
+echo "- Unmounting $mountFolder"
+sudo diskutil unmount force "$mountFolder" || sudo umount -f "$mountFolder" || true
+
+echo "- Unmounting $testSuiteLocal"
+sudo diskutil unmount force "$testSuiteLocal" || sudo umount -f "$testSuiteLocal" || true
diff --git a/coin/provisioning/common/unix/telegraf_install.sh b/coin/provisioning/common/unix/telegraf_install.sh
index 6436c8f8..7e1f8a47 100755
--- a/coin/provisioning/common/unix/telegraf_install.sh
+++ b/coin/provisioning/common/unix/telegraf_install.sh
@@ -1,43 +1,6 @@
-#!/bin/sh
-
-#############################################################################
-##
-## 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$
-##
-#############################################################################
+#!/bin/bash
+# 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 installs telegraf and ioping and our script telegraf-ioping.sh
@@ -52,46 +15,56 @@
######################## BOILERPLATE ###########################
set -e
-
PROVISIONING_DIR="$(dirname "$0")/../../"
-. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
-
-. "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
+# shellcheck source=./common.sourced.sh
+source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
+# shellcheck source=./DownloadURL.sh
+source "$PROVISIONING_DIR"/common/unix/DownloadURL.sh
-is_script_executed telegraf_install.sh \
+is_script_executed telegraf_install.sh \
|| fatal "Script telegraf_install.sh should be executed, not sourced"
################################################################
-[ "$PROVISIONING_OS" = linux ] \
- && ioping_sha256=259abf04bcb84f4126ff97c04b6651e1cf5ea6d8a9ff364c769a26c95b6eeb44 \
- || ioping_sha256=55de6a2f1a5343e0ce8df31d82d47a9e79c7e612edbc6dfb39b5fc6fb358b2e3
-DownloadURL "http://ci-files01-hki.intra.qt.io/input/ioping/ioping.${PROVISIONING_OS}-${PROVISIONING_ARCH}" \
- '' "$ioping_sha256" ioping
+if [ "$PROVISIONING_OS" = linux ]
+then ioping_sha256=259abf04bcb84f4126ff97c04b6651e1cf5ea6d8a9ff364c769a26c95b6eeb44
+else ioping_sha256=55de6a2f1a5343e0ce8df31d82d47a9e79c7e612edbc6dfb39b5fc6fb358b2e3
+fi
+
+DownloadURL "http://ci-files01-hki.ci.qt.io/input/ioping/ioping.${PROVISIONING_OS}-${PROVISIONING_ARCH}" \
+ '' "$ioping_sha256" ioping
$CMD_INSTALL -m 755 ./ioping /usr/bin/
rm -f ioping
# 2. Install custom ioping monitoring script
-$CMD_INSTALL -m 755 "$PROVISIONING_DIR"/common/shared/telegraf/telegraf-ioping.sh /usr/bin/
+$CMD_INSTALL -m 755 "$PROVISIONING_DIR"/common/shared/telegraf/telegraf-ioping.sh /usr/bin/
# 3. Download and install telegraf
-[ x"$PROVISIONING_OS" = xmacos ] && os=darwin || os=linux
-[ x"$PROVISIONING_ARCH" = xx86 ] && arch=i386 || arch=amd64
+if [ "$PROVISIONING_OS" = macos ]
+then os=darwin
+else os=linux
+fi
+
+if [ "$PROVISIONING_ARCH" = x86 ]
+then arch=i386
+else arch=amd64
+fi
+
package_filename=telegraf-1.12.6_${os}_${arch}.tar.gz
package_sha256_list="$PROVISIONING_DIR"/common/shared/telegraf/telegraf_packages.sha256.txt
package_sha256=$(sed -n "s/.*$package_filename *//p" "$package_sha256_list")
-DownloadURL \
- http://ci-files01-hki.intra.qt.io/input/telegraf/"$package_filename" \
- https://dl.influxdata.com/telegraf/releases/"$package_filename" \
- "$package_sha256" \
+DownloadURL \
+ http://ci-files01-hki.ci.qt.io/input/telegraf/"$package_filename" \
+ https://dl.influxdata.com/telegraf/releases/"$package_filename" \
+ "$package_sha256" \
telegraf.tar.gz
tar -xzf ./telegraf.tar.gz -C /tmp
telegraf_binary=$(find /tmp/telegraf* -name telegraf -type f | grep /bin/ | head -1)
-$CMD_INSTALL -m 755 "$telegraf_binary" /usr/bin/
+$CMD_INSTALL -m 755 "$telegraf_binary" /usr/bin/
rm -rf /tmp/telegraf*
# 4. Edit config file with passwords
diff --git a/coin/provisioning/common/unix/telegraf_password.sh b/coin/provisioning/common/unix/telegraf_password.sh
index a8327de9..24df7054 100755
--- a/coin/provisioning/common/unix/telegraf_password.sh
+++ b/coin/provisioning/common/unix/telegraf_password.sh
@@ -1,51 +1,14 @@
-#!/bin/sh
-
-#############################################################################
-##
-## 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$
-##
-#############################################################################
+#!/bin/bash
+# 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
######################## BOILERPLATE ###########################
set -e
-
PROVISIONING_DIR="$(dirname "$0")/../../"
-. "$PROVISIONING_DIR"/common/unix/common.sourced.sh
+# shellcheck source=./common.sourced.sh
+source "${BASH_SOURCE%/*}/common.sourced.sh"
is_script_executed telegraf_password.sh \
|| fatal "Script telegraf_password.sh should be executed, not sourced, to avoid leaking secrets in the logs"
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
new file mode 100644
index 00000000..36b02e82
--- /dev/null
+++ b/coin/provisioning/common/windows/share-test-folders.ps1
@@ -0,0 +1,40 @@
+# 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
+
+$readonly='testshare'
+$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
+}
+if ($(Test-Path -Path $writablepath)) {
+ Remove-SmbShare -Name $writable -Force
+ Remove-Item -Path $writablepath -Force -Recurse
+}
+
+New-Item ${readonlypath} -ItemType Directory
+New-Item "${readonlypath}\tmp" -ItemType Directory
+New-SmbShare -Name ${readonly} -Path ${readonlypath} -ReadAccess Users
+# As expected by tst_networkselftest, exactly 34 bytes
+"This is 34 bytes. Do not change..." `
+ | Out-File -Encoding ascii -FilePath "${readonlypath}\test.pri" -NoNewline
+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"