Compare commits

...

35 Commits

Author SHA1 Message Date
Qt Submodule Update Bot bce71cf4ca Update submodules on '6.12 in qt/qt5'
Change-Id: I60f6ddfec5cf90caf152e165def378126ea559c7
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-08-18 08:17:03 +00:00
Qt Submodule Update Bot 9ea9720196 Update submodules on '6.12 in qt/qt5'
Change-Id: I3203c24f46acc81c2259893c779ef8ba4db37636
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-08-13 21:00:01 +00:00
Jani Heikkinen 44b15983bf manual update for qtqa
Change-Id: I34fb9a603e1b7d44582507cda1f3b8f628611d1a
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
2026-08-12 05:29:24 +00:00
Elias Toivola 0538193fa5 RHEL 9: Use minor version specific repo-clones
Pick-to: 6.11 6.8
Task-number: QTQAINFRA-7810
Change-Id: I71fb2a868aca7aa80795a3ab9630f0ba79bef21e
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit a60717f3fa)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 11:51:18 +00:00
Elias Toivola 0f7b2edf0f Revert^2 "Provisioning: Take repo-clones into use in RHEL 9"
This reverts commit 72a7e5c4db.

Reason for revert: Minor version specific internal repos are now
available

Pick-to: 6.11 6.8
Task-number: QTQAINFRA-7810
Change-Id: Ibdf7d847929175fce2aa3a1b4473695346821a96
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 065d6d06d9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 11:51:05 +00:00
Alexandru Croitor c73ed0d8d5 CMake: Update provisioned CMake to version 4.3.2
Update provisioned cmake to 4.3.2.

Adjust the linux provisioning script to be architecture-aware.

Add the script to the provisioning of the Ubuntu-24.04-aarch64
platform, which was previously missing it and instead relied on the
system 3.28.3 CMake.

Pick-to: 6.11 6.8
Fixes: QTQAINFRA-7785
Change-Id: Ib2b6a55d7b994c95299ddf66546d9362b04823df
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit f408aa690a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:42 +00:00
Nils Petter Skålerud f9b93b1cfc macOS, FFmpeg: Explicitly do not link X11 libraries
The FFmpeg auto-detect mechanism will automatically pull in x11 as a
dependency if the development packages are found on the host. This makes
the FFmpeg unable to run macOS hosts that don't have the x11 package
installed.

This patch makes us explicitly avoid including it.

Change-Id: Ied33d25a60d5c9f54dcf37be3aad5cac0d2cbd03
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 3ea33c05bf)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:38 +00:00
Assam Boudjelthia 71992859b7 Android: bump to Gradle 9.5.1 and AGP 9.2.1
Following Qt 6.12 release 3rd party components update.

Task-number: QTBUG-146315
Change-Id: I688abb791777ac12808f479428cfc95d07f9460b
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit fec1887c6e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:32 +00:00
Alexandru Croitor 5f4400aa72 Provisioning: Don't sudo install grpc on all unix platforms
The package is installed into a subdirectory of the user's home
directory, so there is no need to use sudo.

Change-Id: I06b455678234954eb98a5b61487548fc259520fa
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
(cherry picked from commit f0a6bdb87e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:26 +00:00
Tor Arne Vestbø 84a8c53805 Remove universal build of Qt for iOS
Now that we have individual builds for device, and arm64 and x86_64
simulator, as a workaround for lacking xcframework support.

Change-Id: Ifff43080b32bcab80e5cbf54f9b23ecd443480a6
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 0979c63ba8)
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2026-08-07 08:43:22 +00:00
Nils Petter Skålerud ad96407ff2 Upgrade to FFmpeg n8.1.2
This patch upgrades the provisioned FFmpeg version to n8.1.2
As a prerequisite, it also installs the nasm package on relevant
platforms.

Task-number: QTBUG-139714
Change-Id: Ibc9dc21a9caeba812ff94e8c0b5a2a1ab3959c64
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
(cherry picked from commit a20ee395b0)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:17 +00:00
Assam Boudjelthia e89a2877ab Coin: use the internal Gradle mirror instead of the upstream
Qt for Android builds run Gradle which needs to frequently
request download artifacts from Gradle and Maven, and that
can sometimes fail due to network issues, or worse in times
or many request might get temporarily blocked.

To avoid that, this uses the internal Gradle mirror. This
is done by installing an init script routing every
repository through the internal Nexus mirror.

Also, since Qt's build runs offline, ~/.gradle must be
fully prepared during provisioning, without reaching
public repositories. That's achieve by priming the cache
by building the shared proiect and seeding the Gradle
distribution from the internal mirror into the wrapper
cache, so no wrapper externally request Gradle.

Fixes: QTQAINFRA-6166
Task-number: QTQAINFRA-7942
Change-Id: I1e8dacf8ea5f3c492f12270c5f407bd4e5a2e756
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit cdadd80b87)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:10 +00:00
Tony Sarajärvi 6559cb21d8 Update llvm-mingw to 22.1.7
Also have to update libclang-llvmorg to a version built with llvm-mingw 22.1.7

Task-number: QTQAINFRA-7552
Change-Id: I7e579eacb146718b34ec486598323fa85cf3bfb4
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 8804b39aa5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-07 08:43:03 +00:00
Qt Submodule Update Bot 4dc04de6cd Update submodules on '6.12 in qt/qt5'
Change-Id: I5eff299143e741eb5db257bab433422ceeaa4443
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-08-05 14:51:10 +00:00
Karim Pinter a905d91491 Update coin to VxWorks 26.03
VSB and VIP updated to VxWorks 26.03. NFS updated to v3 UDP only.
Qt home, cache, tmp directory moved to ramfs with HRFS formatting.

Task-number: QTBUG-145458
Change-Id: I954bac54584797d77429937a2e3edec6da5a73fd
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 4d6a473bed)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:33 +00:00
Toni Saario 3cfcbbb4ed Update VxWorks libs to 26_03
Change-Id: I6157d0645dcfdebda2f2bb34e4736c832b4f5956
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 4bb35ed3bb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:31 +00:00
Karim Pinter a7762bff98 Set VxWorks QtBase tests insignificant till all the problems are fixed
Upgrade to VxWorks 26.03, needs several fixes, which depend on each
other. But they fail on staging, because they are not staged together.
After the changes are in dev and 6.12 branch, the test insignificant
feature can be removed.

Change-Id: Idaeb846b757afe0e071fe2f0aed2b35333ca50fe
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 65104d023e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:29 +00:00
Karim Pinter bfcfb5be1c Coin: Run VxWorks QEMU autotests against parallel emulators
Boot several VxWorks QEMU instances per host and drive them
concurrently instead of running every autotest serially against a
single emulator. A 2x2 trial (2 instances, 2 cores each) already
halved the ARM autotest wall-clock time, so scale the launcher to an
arbitrary instance count.

vxworks_qemu_launcher.sh now takes an optional instance id and gives
each instance its own tap device, guest IP (172.31.1.10+N), MAC,
serial FIFO pair and QEMU log. Instance 0 keeps the previous addresses
so a single-instance run is unchanged. The shared bridge/tap setup is
serialized with flock and made idempotent so parallel launches do not
race on it. The SSH readiness probe targets the instance's own IP.

Emulator sizing:
- Intel: 4 instances, -smp 4 -m 4G each (KVM).
- ARM: 2 instances, -smp 2 -m 2G each (TCG).

Bump the x86_64 test configuration from VMSize8 to VMSize16 so the
host can accommodate 4 instances x 4 cores / 4 GB. ARM stays on
VMSize8 (2 x 2 cores).

Fixes: QTBUG-147569
Change-Id: Ic2d7912bdac22d71a3424d14b5000cbef89f61a6
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 20c9b61cf6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:27 +00:00
Tim Blechmann 332c5790cd ffmpeg: bumb nvidia codec headers to nv-codec-headers to 12.0.16
building against nvidia-codec-headers 12 bumps the minimum requirement
to driver version 520 (released october 2022). This should still give us
good coverage on most devices in 2026, while also enabling hardware AV1
encoders.

Change-Id: If345095f1a2aa635f3fb1e343e47d51ba07ee4ec
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 81f3a57d3b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:24 +00:00
Marianne Yrjänä 24348fe918 CI: Update QNX7.1 toolchain
Toolchain updated to newer version and related library version updates done.
Added sshd-session as it's now needed by SSH Daemon.

Pick-to: 6.11 6.8
Change-Id: Iebf22f27c33709902485bd034c9442659c1b54cc
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 14aeaae7de)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:22 +00:00
Assam Boudjelthia 1b8b29a624 Provisioning: add Qt Gradle Plugin to the Gradle cache project
Add Qt Gradle plugin to the provisioning Gradle cache to avoid
potential fetching on each build in qtdeclarative tests.

Pick-to: 6.11 6.8
Fixes: QTBUG-147567
Change-Id: I2ac5ef09b958e50d808a024479ee6d4ed111aff0
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 9969af72b5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:20 +00:00
Assam Boudjelthia 6b1a3ddb0b Provisioning: add feature delivery to the Gradle cache project
Add feature-delivery plugin to the provisioning Gradle cache
to avoid potential fetching on each build in qtbase tests.

Pick-to: 6.11 6.8
Change-Id: Ie9126114287aff77abcd2f68bfff4d8dc25fa6a9
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 4549003489)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-08-03 09:26:18 +00:00
Qt Submodule Update Bot 02761a0550 Update submodules on '6.12 in qt/qt5'
Change-Id: I8cad524203e1a917175cbbce1b7c857b6e37db40
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-08-01 10:14:12 +00:00
Tor Arne Vestbø a1f5df0d8b Add independent iOS simulator and device builds
Xcode 27 no longer ships a universal iOS simulator runtime, so our
trick of building fat binaries for iOS no longer works.

As a stop-gap towards XCFrameworks we build simulator and device
individually, so that we can package them up in the SDK as two
components next to each other.

This does break the convenience of switching between simulator and
device within the same Xcode project, but use through Qt Creator
is not affected as that is always a single-SDK build of the user
project.

Change-Id: I7115f4db7623fff2b539553b72c875cf25d3a3a7
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit b49f3297b8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-30 13:01:14 +00:00
Qt Submodule Update Bot 5425c4e6fe Update submodules on '6.12 in qt/qt5'
Change-Id: I51e50793986ef9f8da31f2032bc44c246a54450c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-07-30 08:15:38 +00:00
Alexandru Croitor 13aef4ed7b CMake: Only parse local .git/config to get initialized submodule
For the purpose of getting the list of already initialized
submodules, it suffices to parse only the local .git/config file
of a repository.

This avoids including the output of a global ~/.gitconfig file, which
might contain bracket symbols, and thus break parsing of active
submodules.

Pick-to: 6.11 6.8
Fixes: QTBUG-145559
Change-Id: Ie08d42f4fa7c9b9e975a027dd6f20419936a606d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit b679f634ea)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-27 04:35:02 +00:00
Simo Fält b44116913e Provisioning: Fix 7z extract commands on RHEL 9.6
More recent 7z requires additional switch due to multi hop links.

Change-Id: Ia023bf8d662d4c842acc97498e0b89cf2a2a167d
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
(cherry picked from commit dd13fa7b41)
2026-07-27 04:34:57 +00:00
Alexandru Croitor 738bd44d38 coin: Fetch latest qlitehtml refs in Coin mirror during Nightly test
This ensures that the RunCMake.InitRepository test will not fail due
to an outdated checkout of the qlitehtml repository in the Coin git
mirror.

Pick-to: 6.11 6.8
Fixes: QTBUG-148458
Change-Id: If37fdf1c1ff7e3c2337efe2da06570627e4dbccd
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 9136724f2e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-27 04:34:53 +00:00
Elias Toivola 3fc86fbac1 Windows 10: remove old provisioning directories again
After 42370c3e0b was merged, another patch
reintroduced the old w10 directories. Remove them again.

This amends 862c3df5bf

Change-Id: I3413d88bd14fdd61ea50bb8966d2c14311ed5136
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
(cherry picked from commit 44aa931e29)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-27 04:34:47 +00:00
Axel Spoerl d1e144e61b Harden qt_run_all.sh / ps1
Scripts were executed with 'sh', because not all provisioning scripts
were executable. That lead to path mismatches.
The script halted on errors. Manual provisioning might not always work.

Drop the 'sh', because all provisioning scripts are executable now.
Add a command line option to toggle whether to halt on errors or not.
On Windows, don't only consider ps1, but also exe, bat, cmd files.

Change-Id: Ife8b0becc91b1d855d29d20e123016ce87dc80bb
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit c425276693)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-20 05:55:59 +00:00
Simo Fält 36eda6481a Add nightly config for Pyside6 Axivion scan
Task-number: QTQAINFRA-5563
Change-Id: If44a576e831ae31ebd6efa4e8fe64521aa83602b
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
(cherry picked from commit d4fc6f01a9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-20 05:55:57 +00:00
Elias Toivola c301370686 Windows 11 24h2: clean old/unused installations
Task-number: QTQAINFRA-7912
Change-Id: Idcb4ebdf6df88d9eb6fe8e6c555688fba53e4a73
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 654c9c2b03)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-16 04:17:28 +00:00
Alexandru Croitor 58e5ed9147 CMake: Fix git-qt-foreach output being lost in non-tty invocations
There's a tty check in qt_internal_foreach_repo_run.
The code reads tty_exit_CODE rather than the correct tty_exit_code.

In a non-tty context (when stdout is a pipe), /usr/bin/tty prints
"not a tty" and has a non-zero exit code, leading to stdout being
redirected to a file named "not a tty" in every submodule.

Use the right name.

Pick-to: 6.11 6.8
Change-Id: I6bba544aa0e3bbe2f09925cae56f303e70643681
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 8e218fec47)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-16 04:17:25 +00:00
Simo Fält a1989884a3 COIN: Add nightly config for Harmony OS developer build
Change-Id: I4793f7e6a368031848696a7fd7f81df6775e9cee
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
(cherry picked from commit 444670374a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-16 04:17:21 +00:00
Elias Toivola 7e17a8b04b Remove unused Windows provisioning directories
Remove versions that are not in use in branches older than 6.12. When we
want to have pick-to's to lts-6.8 (and beyond) after this patch, they
need to have their own separate patches created.

Windows OS:es which are left:
- Windows 10 22h2 x86_64
- Windows 11 23h2 arm64
- Windows 11 24h2 x86_64

Task-number: QTQAINFRA-7912
Change-Id: I70c2df706e5ff36cee0563b59243883a7012e6b1
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 42370c3e0b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-07-16 04:17:18 +00:00
710 changed files with 1022 additions and 2030 deletions
+1 -1
View File
@@ -324,7 +324,7 @@ function(qt_ir_get_already_initialized_submodules prefix
)
qt_ir_parse_git_config_file_contents("${prefix}"
READ_GIT_CONFIG
READ_GIT_CONFIG_LOCAL
PARENT_REPO_BASE_GIT_PATH "${parent_repo_base_git_path}"
WORKING_DIRECTORY "${working_directory}"
)
+1 -1
View File
@@ -1386,7 +1386,7 @@ function(qt_internal_foreach_repo_run)
set(color_supported FALSE)
set(output_goes_where "")
if(NOT tty_exit_CODE AND tty_name)
if(NOT tty_exit_code AND tty_name)
set(color_supported TRUE)
set(output_goes_where "OUTPUT_FILE" "${tty_name}")
endif()
@@ -16,6 +16,13 @@ instructions:
variableName: CONFIGURE_ENV_PREFIX
variableValue: "{{.Env.ENV_PREFIX}}"
# Re-fetch the qlitehtml repository in the Coin git mirror, otherwise the
# RunCMake.InitRepository test might fail trying to checkout a newer sha1 than what is
# available in the Coin git mirror.
- type: UpdateRepo
gitRemote: code.qt.io
repos: [playground/qlitehtml.git]
- type: ExecuteCommand
command: "{{.Env.CONFIGURE_ENV_PREFIX}} cmake {{.SourceDir}}/tests/manual/RunCMake"
executeCommandArgumentSplitingBehavior: SplitAfterVariableSubstitution
+30 -2
View File
@@ -367,7 +367,7 @@ Configurations:
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
]
-
Id: 'ios-universal'
Id: 'ios-device'
Template: 'qtci-macos-26-arm-105'
Target os: 'IOS_ANY'
Target arch: 'arm64'
@@ -376,7 +376,35 @@ Configurations:
Platform dependency: 'macos-universal-on-arm64'
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang',
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphoneos',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
]
-
Id: 'ios-arm64-simulator'
Template: 'qtci-macos-26-arm-105'
Target os: 'IOS_ANY'
Target arch: 'arm64'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-universal-on-arm64'
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphonesimulator',
'TARGET_CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="arm64"',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
]
-
Id: 'ios-x86_64-simulator'
Template: 'qtci-macos-26-arm-105'
Target os: 'IOS_ANY'
Target arch: 'x86_64'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-universal-on-arm64'
Features: ['Packaging', 'Sccache', 'DebugAndRelease', 'DisableTests', 'UseConfigure', 'WarningsAreErrors', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-debug-and-release -nomake examples -platform macx-ios-clang -sdk iphonesimulator',
'TARGET_CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64"',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include -DFFMPEG_DIR={{.Env.FFMPEG_DIR_IOS}} -DQT_DEPLOY_FFMPEG=TRUE',
]
-
@@ -12,7 +12,7 @@ Configurations:
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -make examples -qt-harfbuzz -device linux-imx7-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARMV7_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=hard-float boot2qt" -no-feature-forkfd_pidfd',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARMV7_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
'QT_YOCTO_ENVSETUP={{.Env.QEMUARMV7_TOOLCHAIN_ENVSETUP}}',
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}',
'GST_PLUGIN_SCANNER={{.Env.QEMUARMV7_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
'QT_QUICK_BACKEND=software',
@@ -31,7 +31,7 @@ Configurations:
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
'QT_YOCTO_ENVSETUP={{.Env.QEMUARM64_TOOLCHAIN_ENVSETUP}}',
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}',
'GST_PLUGIN_SCANNER={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
'QT_QUICK_BACKEND=software',
@@ -50,7 +50,7 @@ Configurations:
'TARGET_CONFIGURE_ARGS=-release -force-asserts -force-debug-info -developer-build -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUMIPS64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUMIPS64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
'QT_YOCTO_ENVSETUP={{.Env.QEMUMIPS64_TOOLCHAIN_ENVSETUP}}',
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUMIPS64_TOOLCHAIN_SYSROOT}}',
'GST_PLUGIN_SCANNER={{.Env.QEMUMIPS64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
'QT_QUICK_BACKEND=software',
@@ -12,7 +12,7 @@ Configurations:
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_710}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
'QT_CMAKE_DIR=/opt/cmake-4.3.2/bin',
'QNX_TEST_ENV=TMPDIR=/data/var/tmp HOME=/data/home/root FONTCONFIG_FILE=/data/var/etc/fontconfig/fonts.conf LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=710 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'QNX_QEMU={{.Env.QNX_710_QEMU}}',
@@ -63,7 +63,7 @@ Configurations:
Environment variables: [
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -developer-build -no-dbus -nomake examples',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QNX_800}}/qnx-toolchain-x8664.cmake -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
'QT_CMAKE_DIR=/opt/cmake-4.3.2/bin',
'QNX_TEST_ENV=TMPDIR=/data/var/tmp HOME=/data/home/root FONTCONFIG_FILE=/data/var/etc/fontconfig/fonts.conf LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_SYSTEM_VERSION=802 -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'QNX_QEMU={{.Env.QNX_800_QEMU}}',
@@ -10,7 +10,7 @@ Configurations:
Platform dependency: 'ubuntu-22.04'
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
Environment variables: [
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_3_VSB',
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
'VCPKG_HOST_TRIPLET=x64-linux-qt',
@@ -26,8 +26,8 @@ Configurations:
Platform dependency: 'ubuntu-22.04'
Features: ['VMSize8', 'UseConfigure', 'DoNotRunTests', 'DoNotUploadTests']
Environment variables: [
'WIND_CC_SYSROOT=/opt/nxp_imx8_1_0_7_0_VSB',
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
'WIND_CC_SYSROOT=/opt/nxp_imx8_1_0_7_1_VSB',
'TARGET_CONFIGURE_ARGS=-release -qpa offscreen -nomake examples',
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target'
]
-
@@ -8,10 +8,10 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'vxworks-imx6-buildtest'
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Environment variables: [
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_2_VSB',
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_2_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_2_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_2_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
'WIND_CC_SYSROOT=/opt/fsl_imx6_2_0_6_3_VSB',
'VXWORKS_TEST_LIBS_PATH=/opt/fsl_imx6_2_0_6_3_VSB/usr/lib/common;/opt/fsl_imx6_2_0_6_3_VSB/usr/root/llvm/bin;/opt/fsl_imx6_2_0_6_3_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
'TARGET_CONFIGURE_ARGS=-release -force-debug-info -qpa offscreen -nomake examples',
'TARGET_CMAKE_ARGS=-DBUILD_SHARED_LIBS=OFF -DWARNINGS_ARE_ERRORS=OFF -DCMAKE_TOOLCHAIN_FILE="{{.Env.WIND_CC_SYSROOT}}/mk/rtp.toolchain.cmake" -DFEATURE_vulkan=OFF -DQT_QMAKE_TARGET_MKSPEC=vxworks-clang -DQT_HOST_PATH=/home/qt/work/install -DCMAKE_AUTOGEN_VERBOSE=ON -DCMAKE_STAGING_PREFIX:PATH=/home/qt/work/install/target',
'VCPKG_HOST_TRIPLET=x64-linux-qt',
@@ -25,7 +25,7 @@ Configurations:
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'vxworks-x86_64-buildtest'
Features: ['VMSize8', 'UseConfigure', 'BuildTestsInTest', 'TestOnly']
Features: ['VMSize16', 'UseConfigure', 'BuildTestsInTest', 'TestOnly', 'InsignificantTests']
Environment variables: [
'WIND_CC_SYSROOT=/opt/itl_generic_skylake_VSB',
'VXWORKS_TEST_LIBS_PATH=/opt/itl_generic_skylake_VSB/usr/lib/common;/opt/itl_generic_skylake_VSB/usr/root/llvm/bin;/opt/itl_generic_skylake_VSB/usr/3pp/develop/usr/lib;/home/qt/work/install/target/lib',
@@ -0,0 +1,15 @@
Version: 2
Module only: True
Include: [
cmake_platforms.yaml: [
"ubuntu-24.04-x64-developer-build"
],
cmake_platforms_target_harmonyos.yaml: [
"harmonyos-23-arm64-on-linux-developer-build"
]
]
Configurations: []
Overrides:
-
Id: 'harmonyos-23-arm64-on-linux-developer-build'
-Features: ['DoNotRunTests']
@@ -0,0 +1,14 @@
Version: 2
Module only: True
Include: [
cmake_platforms.yaml: [
'ubuntu-22.04'
]
]
Configurations:
-
Id: 'ubuntu-22.04-Axivion'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['UseConfigure', 'VMSize16', 'RunAsPlatformDependency', 'PysideAxivion']
Platform dependency: 'ubuntu-22.04'
+1 -1
View File
@@ -7,7 +7,7 @@ Include: [
"ubuntu-22.04-developer-build-x11-tests",
"ubuntu-24.04-x64",
"windows-11_24H2-msvc2022-developer-build",
"ios-universal",
"ios-device",
"documentation-warnings",
],
macos.yaml: [
@@ -45,7 +45,7 @@ Configurations:
'TARGET_CONFIGURE_ARGS=-release -no-warnings-are-errors -nomake examples -qt-harfbuzz -device linux-generic-g++ -device-option "CROSS_COMPILE={{.Env.QEMUARM64_TOOLCHAIN_CROSS_COMPILE}}" -device-option "DISTRO_OPTS=boot2qt" -no-feature-forkfd_pidfd -qtlibinfix TestInfix',
'TARGET_CMAKE_ARGS=-DCMAKE_TOOLCHAIN_FILE={{.Env.QEMUARM64_TOOLCHAIN_FILE}} -DQT_FORCE_BUILD_TOOLS=ON',
'QT_YOCTO_ENVSETUP={{.Env.QEMUARM64_TOOLCHAIN_ENVSETUP}}',
"QT_CMAKE_DIR=/opt/cmake-3.30.5/bin",
"QT_CMAKE_DIR=/opt/cmake-4.3.2/bin",
'QT_SYSROOT_FOR_RUNNING_TESTS={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}',
'GST_PLUGIN_SCANNER={{.Env.QEMUARM64_TOOLCHAIN_SYSROOT}}/usr/libexec/gstreamer-1.0/gst-plugin-scanner',
'QT_QUICK_BACKEND=software',
+19 -6
View File
@@ -11,13 +11,26 @@ source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
majorminorversion="3.30"
version="3.30.5"
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="61b339cac5f110d5ed2934f66a26c2e991945e01"
majorminorversion="4.3"
version="4.3.2"
uname_m="$(uname -m)"
case "$uname_m" in
x86_64|amd64)
SHA1="736c0722ed8393b3eb74fd573f6c9c245770206a"
arch="x86_64"
;;
arm64|aarch64)
SHA1="a173eb910c808f561422feb45fe1fe57c3e346fa"
arch="aarch64"
;;
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
esac
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/cmake/cmake-$version-linux-$arch.tar.gz"
AltUrl="https://cmake.org/files/v$majorminorversion/cmake-$version-linux-$arch.tar.gz"
targetFolder="/opt/cmake-$version"
appPrefix="cmake-$version-linux-x86_64"
appPrefix="cmake-$version-linux-$arch"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$targetFolder" "$appPrefix"
@@ -1,3 +1,4 @@
diffutils
make
nasm
yasm
@@ -1,4 +1,5 @@
diffutils
libva-devel
make
nasm
yasm
@@ -1,3 +1,4 @@
diffutils
make
nasm
yasm
@@ -1,4 +1,5 @@
diffutils
libva-dev
make
nasm
yasm
+100 -13
View File
@@ -9,18 +9,105 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SourceEnvVars.sh
source "${BASH_SOURCE%/*}/../unix/SourceEnvVars.sh"
echo "Caching Gradle distribution and dependencies"
gradleCacheFileName="gradle_9.3.1_linux_cache_v2.tar.gz"
gradleCacheUrl="http://ci-files01-hki.ci.qt.io/input/gradle/$gradleCacheFileName"
gradleCacheSha1="e88989d55f68e978442e567e4707a6093c829af6"
gradleCacheFile="/tmp/$gradleCacheFileName"
DownloadURL "$gradleCacheUrl" "$gradleCacheUrl" "$gradleCacheSha1" "$gradleCacheFile"
mkdir -p "$HOME/.gradle"
tar -xzf "$gradleCacheFile" -C "$HOME/.gradle" --strip-components=1
rm "$gradleCacheFile"
echo "Caching Gradle distributions and dependencies"
gradle_project_source="${BASH_SOURCE%/*}/../shared/gradle/project"
cp -r "$gradle_project_source" /tmp/gradle_project
cd /tmp/gradle_project
chmod +x gradlew
sh gradlew build
gradleDistributionMirror="http://ci-files01-hki.ci.qt.io/input/gradle"
gradleInitScript="init.d/nexus-mirror.gradle"
# Route every Gradle repository through the internal Nexus mirror.
mkdir -p "$HOME/.gradle/init.d"
cp "${BASH_SOURCE%/*}/../shared/gradle/$gradleInitScript" "$HOME/.gradle/$gradleInitScript"
# Returns the hash of the Gradle binary distribution for a given Gradle version.
# Gradle calculates the hash as base36(md5(distributionUrl)).
gradleDistributionHash () {
version="$1"
propertiesFile="$gradle_project_source/gradle/wrapper/gradle-wrapper.properties"
# 1. Read the project's distributionUrl.
distributionUrl=$(grep '^distributionUrl=' "$propertiesFile")
distributionUrl=${distributionUrl#distributionUrl=}
# 2. Unescape the Java-properties (e.g. '\:').
distributionUrl=${distributionUrl//\\:/:}
# 3. Swap in the requested version while maintaining the distribution URL.
distributionUrl=${distributionUrl/gradle-[0-9.]*-bin.zip/gradle-$version-bin.zip}
if command -v md5sum >/dev/null 2>&1; then
md5Hex=$(printf '%s' "$distributionUrl" | md5sum | awk '{print $1}')
else
md5Hex=$(printf '%s' "$distributionUrl" | md5)
fi
# Convert the md5 to base36: read it as a number, then repeatedly take the
# next digit (number % 36) and divide by 36, prepending each digit's character.
number=$(printf 'ibase=16; %s\n' "$(printf '%s' "$md5Hex" | tr 'a-f' 'A-F')" | bc)
hash=""
alphabet="0123456789abcdefghijklmnopqrstuvwxyz"
while [ "$number" != "0" ]; do
digit=$(printf '%s %% 36\n' "$number" | bc)
number=$(printf '%s / 36\n' "$number" | bc)
hash="${alphabet:$digit:1}$hash"
done
printf '%s' "$hash"
}
# Seed a Gradle distribution binary into ~/.gradle from the internal mirror.
seedGradleDistribution () {
version="$1"
sha="$2"
distributionDir="$HOME/.gradle/wrapper/dists/gradle-${version}-bin/$(gradleDistributionHash "$version")"
if [ -e "$distributionDir/gradle-${version}-bin.zip.ok" ]; then
return 0
fi
mkdir -p "$distributionDir"
zip="$distributionDir/gradle-${version}-bin.zip"
url="$gradleDistributionMirror/gradle-${version}-bin.zip"
DownloadURL "$url" "$url" "$sha" "$zip"
unzip -q -o "$zip" -d "$distributionDir"
rm -f "$zip"
touch "$distributionDir/gradle-${version}-bin.zip.ok"
}
# Populate ~/.gradle/caches by priming the shared project for each Gradle and AGP profile.
cacheGradleProfile () {
echo "Caching Gradle profile $*"
tmp="$(mktemp -d)"
project="$tmp/project"
cp -r "$gradle_project_source" "$project"
props="$project/gradle/wrapper/gradle-wrapper.properties"
for kv in "$@"; do
case "$kv" in
gradle=*)
sed "s#gradle-[0-9.]*-bin.zip#gradle-${kv#*=}-bin.zip#" "$props" > "$props.tmp"
mv "$props.tmp" "$props"
;;
esac
done
toml="$project/gradle/libs.versions.toml"
for kv in "$@"; do
case "$kv" in
gradle=*) ;;
*)
key="${kv%%=*}"
val="${kv#*=}"
sed "/^\[versions\]/,/^\[/ s/^$key = .*/$key = \"$val\"/" "$toml" > "$toml.tmp"
mv "$toml.tmp" "$toml"
;;
esac
done
sh "$project/gradlew" --project-dir "$project" build
rm -rf "$tmp"
}
# Cache both the current and the previous versions to avoid issues during bumps.
seedGradleDistribution 9.3.1 "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06"
cacheGradleProfile gradle=9.3.1 agp=9.0.0
seedGradleDistribution 9.5.1 "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
cacheGradleProfile gradle=9.5.1 agp=9.2.1
echo "Cached Gradle distributions and dependencies under $HOME/.gradle."
@@ -21,13 +21,12 @@ prefix="${2:-$default_prefix}"
pkgconfig_path="$PKG_CONFIG_PATH"
install_ff_nvcodec_headers() {
local nv_codec_version="11.1.5.3" # use 11.x.x.x to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/tags/n$nv_codec_version.zip"
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-$nv_codec_version.zip"
local nv_codec_sha1="78715d521de102362e553dc92577bbe81905a321"
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
local nv_codec_version="12.0.16.1" # use 11.x.x.x to ensure compatibility with 520 nvidia drivers
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/releases/download/n12.0.16.1/nv-codec-headers-$nv_codec_version.tar.gz"
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-$nv_codec_version.tar.gz"
local nv_codec_sha1="df7239777af15af5d7e563d2af0deff874c3b770"
local target_dir="$HOME"
local nv_codec_dir="$target_dir/nv-codec-headers-n$nv_codec_version"
local nv_codec_dir="$target_dir/nv-codec-headers-$nv_codec_version"
if [ ! -d "$nv_codec_dir" ]; then
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
+2 -2
View File
@@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then
fi
# QNX SDP
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20240417.tar.xz"
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260422.tar.xz"
targetFile="qnx710.tar.xz"
sha1="cd2d35004fb2798089e29d9e1226691426632da0"
sha1="98b24df7e8c53a104aee76e769011396fa4bdafd"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
sudo cp "$aarch64le_toolchain" "$targetPath"
@@ -13,7 +13,7 @@ PATH=__IFS_PATH__:/system/xbin:.
var/share/zoneinfo=usr/share/zoneinfo
[uid=0 gid=0 dperms=755 type=dir] var/share/fonts
var/etc/fontconfig/fonts.conf=etc/fontconfig/fonts.conf
var/etc/fontconfig/fonts.conf=etc/fonts/fonts.conf
var/share/fonts=usr/share/fonts
var/etc/hosts=local/misc_files/etc/hosts
@@ -0,0 +1,3 @@
# local/snippets/ifs_files.custom
# Placeholder for local list of files to add to ifs
/usr/libexec/sshd-session=usr/libexec/sshd-session
@@ -18,6 +18,8 @@ rm -rf /data/var/share/fonts/NotoSansCJK*
rm -rf /data/var/share/fonts/NotoSansMonoCJK*
echo "---> Create fontconfig cache"
fc-cache &
# For fc-match in QFont tests
ln -Ps /system/lib/libfontconfig.so.17 /system/lib/libfontconfig.so.1
# Add default route so QNX knows where to send
# requests for unknown network
@@ -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.24=usr/lib/libfreetype.so.24
lib/libfreetype.so.26=usr/lib/libfreetype.so.26
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
@@ -54,7 +54,7 @@ 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
lib/libfontconfig.so.17=usr/lib/libfontconfig.so.17
xbin/fc-cache=bin/fc-cache
xbin/fc-match=local/misc_files/fc-match
+14 -21
View File
@@ -13,60 +13,60 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
######### VXworks libs #########
# Installs to /opt/vxworks
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_libs_2503.tar.gz"
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_libs_2603.tar.gz"
AltUrl=""
sha1="96db52d86c2138a1ca31212372f48838ec08013e"
sha1="e9337894d4591e1d9e67640181c3d48fdb3d4a12"
targetFolder="/opt"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
SetEnvVar "VXWORKS_HOME" "/opt/vxworks"
SetEnvVar "VXWORKS_SSH" "WindRiver@172.31.1.10"
# IMX 6
VXWORKS_BUILD_VER="16-04-2025"
VXWORKS_BUILD_VER="12-05-2026_2"
######### VXworks toolchain #########
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
# Installs to /opt/fsl_imx6_2_0_6_3_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vsb_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="88f0f139ac62e8c0a4c5477d880a1ff345826479"
sha1="a1553f377ae84a722c8ad258fccb684f9198717c"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_2_VSB"
SetEnvVar "WIND_CC_SYSROOT" "/opt/fsl_imx6_2_0_6_3_VSB"
######### VXworks VIP kernel #########
# Installs to /opt/fsl_imx6_2_0_6_2_VIP_QEMU
# Installs to /opt/fsl_imx6_2_0_6_3_VIP_QEMU
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_vip_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="96056c0f9b1234160db2d9038a9e6fc24a2bbbd7"
sha1="487a056d389a764717142100fb408e65ea720f92"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# IMX 8
# Installs to /opt/nxp_imx8_1_0_6_3_VSB
# Installs to /opt/nxp_imx8_1_0_7_1_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_arm_imx8_vsb_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="cf6194b78bf08b894397fd5ce2a57abd25cf497b"
sha1="b312f38a7ca670398c940c25d20ed2a26155160d"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# Installs to /opt/itl_generic_skylake_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vsb_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="4c75222364d3907db9fb1605cabe0c92616d9ec9"
sha1="9fddd5aa0b9599113c22670fcc1221004978ee8a"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# Installs to /opt/itl_generic_skylake_VIP_QEMU
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_intel_vip_${VXWORKS_BUILD_VER}.tar.gz"
AltUrl=""
sha1="c3af7da92832ea71201dcf1022d7404966291f5c"
sha1="cb366addbea7a1fd34aa49b739dcc0b480350fce"
targetFolder="/opt/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
######### VXworks fonts and certs #########
# Installs to /opt/fsl_imx6_2_0_6_2_VSB
# Installs to /opt/fsl_imx6_2_0_6_3_VSB
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/vxworks/vxworks_misc.tar.gz"
AltUrl=""
sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
targetFolder="/opt/fsl_imx6_2_0_6_2_VSB/"
targetFolder="/opt/fsl_imx6_2_0_6_3_VSB/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
######### VXworks fonts and certs #########
# Installs to /opt/itl_generic_skylake_VSB
@@ -76,13 +76,6 @@ sha1="1bc529b90b35b0b249f219e47d5798225a9b68d8"
targetFolder="/opt/itl_generic_skylake_VSB/"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$sha1" "$targetFolder" ""
# Setup NFS exports that are needed by VxWorks qemu
sudo bash -c "echo '/home/qt/work 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo bash -c "echo '/opt/fsl_imx6_2_0_6_2_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo bash -c "echo '/opt/itl_generic_skylake_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo exportfs -a
# Enable ipv4 routing from vxWorks to Qt DNS
sudo sed -i s/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g /etc/sysctl.conf
sudo iptables -I FORWARD 1 -j ACCEPT
@@ -2,57 +2,109 @@
# 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
# Launch a single VxWorks QEMU emulator instance.
#
# Usage: vxworks_qemu_launcher.sh <arm|intel> [instance-id]
#
# Multiple instances are run in parallel to speed up the autotest run. Each
# instance gets its own tap device, guest IP, MAC address, serial FIFO pair,
# QEMU log and (for the TCG-based ARM emulator) a dedicated set of host CPU
# cores. Instance 0 keeps the historical addresses so a single-instance run
# behaves exactly as before.
[ $# -ge 1 ] || echo "Supply parameter which emulator to start <arm|intel> [instance-id]"
TYPE=$1
INSTANCE=${2:-0}
# Per-instance identifiers. Instance 0 == the original single-emulator layout.
TAP="tap${INSTANCE}"
GUEST_IP="172.31.1.$((10 + INSTANCE))"
MAC=$(printf '52:54:00:12:34:%02x' "$INSTANCE")
PIPE="/tmp/guest${INSTANCE}"
QEMU_LOG_PATH="/home/qt/work/vxworks_qemu_log_${INSTANCE}.txt"
# Per-instance SSH target: same user as VXWORKS_SSH, but the instance's IP.
if [[ "$VXWORKS_SSH" == *"@"* ]]; then
SSH_TARGET="${VXWORKS_SSH%@*}@${GUEST_IP}"
else
SSH_TARGET="${GUEST_IP}"
fi
# Host bridge and per-instance tap setup. Serialized across parallel launches
# and made idempotent so concurrent instances don't race on the shared bridge.
exec 9>"/tmp/vxworks_qemu_host_setup.lock"
flock 9
NFS_CONF_MARKER="# VxWorks QEMU NFS settings (added by vxworks_qemu_launcher.sh)"
if ! grep -qF "$NFS_CONF_MARKER" /etc/nfs.conf; then
# Configure NFS for UDP traffic
sudo bash -c "echo -e '\n${NFS_CONF_MARKER}\n' >> /etc/nfs.conf"
sudo bash -c "echo -e '[nfsd]\n' >> /etc/nfs.conf"
sudo bash -c "echo -e 'udp=y\n' >> /etc/nfs.conf"
sudo bash -c "echo -e 'tcp=n\n' >> /etc/nfs.conf"
sudo bash -c "echo -e 'vers2=n\n' >> /etc/nfs.conf"
sudo bash -c "echo -e 'vers3=y\n' >> /etc/nfs.conf"
sudo bash -c "echo -e 'vers4=n\n' >> /etc/nfs.conf"
# Setup NFS exports that are needed by VxWorks qemu
sudo bash -c "echo '/home/qt/work 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo bash -c "echo '/opt/fsl_imx6_2_0_6_3_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
sudo bash -c "echo '/opt/itl_generic_skylake_VSB 172.31.1.10/24(rw,sync,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
# Restart NFS server
sudo exportfs -a
sudo systemctl restart nfs-server
fi
# 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 172.31.1.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
if ! ip link show "${TAP}" >/dev/null 2>&1; then
sudo tunctl -u qt -t "${TAP}"
sudo ifconfig "${TAP}" promisc up
sudo brctl addif br0 "${TAP}"
fi
exec 9>&-
[ $# -eq 1 ] || echo "Supply parameter which emulator to start <arm|intel>"
TYPE=$1
QEMU_LOG_PATH="/home/qt/work/vxworks_qemu_log.txt"
if [ "$TYPE" = "arm" ] || [ "$TYPE" = "" ]; then
$VXWORKS_QEMU/bin/qemu-system-arm \
-machine sabrelite \
-smp 4 \
-m 1G \
-smp 2 \
-m 2G \
-nographic \
-monitor none \
-serial null \
-serial pipe:/tmp/guest \
-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=172.31.1.1 g=172.31.1.1 e=172.31.1.10 u=target pw=vxTarget s=/romfs/startup_script.txt" \
-nic "tap,ifname=tap0,script=no" >"${QEMU_LOG_PATH}" 2>&1 &
-serial pipe:${PIPE} \
-kernel /opt/fsl_imx6_2_0_6_3_VIP_QEMU/default/uVxWorks \
-dtb /opt/fsl_imx6_2_0_6_3_VIP_QEMU/default/imx6q-sabrelite.dtb \
-append "enet(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=${GUEST_IP} u=target pw=vxTarget s=/romfs/startup_script.txt" \
-rtc base=localtime,clock=rt \
-icount sleep=off \
-nic "tap,ifname=${TAP},script=no,mac=${MAC}" >"${QEMU_LOG_PATH}" 2>&1 &
elif [ "$TYPE" = "intel" ]; then
$VXWORKS_QEMU/bin/qemu-system-x86_64 \
-M q35 \
-smp 8 \
-m 16G \
-smp 4 \
-m 4G \
-cpu "Skylake-Client" \
-enable-kvm \
-monitor none \
-nographic \
-serial null \
-serial pipe:/tmp/guest \
-serial pipe:${PIPE} \
-kernel "/opt/itl_generic_skylake_VIP_QEMU/default/vxWorks" \
-append "sysbootline:gei(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=172.31.1.10 u=target pw=vxTarget s=/romfs/startup_script.txt" \
-nic tap,ifname=tap0,script=no,downscript=no >"${QEMU_LOG_PATH}" 2>&1 &
-append "sysbootline:gei(0,0)host:vxWorks h=172.31.1.1 g=172.31.1.1 e=${GUEST_IP} u=target pw=vxTarget s=/romfs/startup_script.txt" \
-nic "tap,ifname=${TAP},script=no,downscript=no,mac=${MAC}" >"${QEMU_LOG_PATH}" 2>&1 &
fi
for _ in $(seq 30)
do
status=$(ssh -o BatchMode=yes -o HostKeyAlgorithms=+ssh-rsa -o ConnectTimeout=1 "${VXWORKS_SSH}" echo emulator up) || true
status=$(ssh -o BatchMode=yes -o HostKeyAlgorithms=+ssh-rsa -o ConnectTimeout=1 "${SSH_TARGET}" echo emulator up) || true
if [[ $status == *"emulator up"* ]] ; then
echo "VXWORKS QEMU SSH server up"
echo "VXWORKS QEMU SSH server up (instance ${INSTANCE} @ ${GUEST_IP})"
break
else
echo "Waiting VXWORKS QEMU SSH server"
echo "Waiting VXWORKS QEMU SSH server (instance ${INSTANCE} @ ${GUEST_IP})"
sleep 1
fi
done
+3 -3
View File
@@ -11,11 +11,11 @@ source "${BASH_SOURCE%/*}/InstallAppFromCompressedFileFromURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
majorminorversion="3.30.5"
version="3.30.5"
majorminorversion="4.3"
version="4.3.2"
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="c81c2f7482a901c4a32a81034920c23c22233a0f"
SHA1="e3b456c03d992239f9d83d933336768c7fc1ff54"
appPrefix="cmake-$version-macos-universal"
InstallAppFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "$appPrefix"
@@ -1,2 +1,3 @@
diffutils
nasm
yasm
+100 -13
View File
@@ -9,18 +9,105 @@ source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SourceEnvVars.sh
source "${BASH_SOURCE%/*}/../unix/SourceEnvVars.sh"
echo "Caching Gradle distribution and dependencies"
gradleCacheFileName="gradle_9.3.1_darwin_cache_v2.tar.gz"
gradleCacheUrl="http://ci-files01-hki.ci.qt.io/input/gradle/$gradleCacheFileName"
gradleCacheSha1="d4f93be293224e3d55779cf64252337fbb26b53b"
gradleCacheFile="/tmp/$gradleCacheFileName"
DownloadURL "$gradleCacheUrl" "$gradleCacheUrl" "$gradleCacheSha1" "$gradleCacheFile"
mkdir -p "$HOME/.gradle"
tar -xzf "$gradleCacheFile" -C "$HOME/.gradle" --strip-components=1
rm "$gradleCacheFile"
echo "Caching Gradle distributions and dependencies"
gradle_project_source="${BASH_SOURCE%/*}/../shared/gradle/project"
cp -r "$gradle_project_source" /tmp/gradle_project
cd /tmp/gradle_project
chmod +x gradlew
sh gradlew build
gradleDistributionMirror="http://ci-files01-hki.ci.qt.io/input/gradle"
gradleInitScript="init.d/nexus-mirror.gradle"
# Route every Gradle repository through the internal Nexus mirror.
mkdir -p "$HOME/.gradle/init.d"
cp "${BASH_SOURCE%/*}/../shared/gradle/$gradleInitScript" "$HOME/.gradle/$gradleInitScript"
# Returns the hash of the Gradle binary distribution for a given Gradle version.
# Gradle calculates the hash as base36(md5(distributionUrl)).
gradleDistributionHash () {
version="$1"
propertiesFile="$gradle_project_source/gradle/wrapper/gradle-wrapper.properties"
# 1. Read the project's distributionUrl.
distributionUrl=$(grep '^distributionUrl=' "$propertiesFile")
distributionUrl=${distributionUrl#distributionUrl=}
# 2. Unescape the Java-properties (e.g. '\:').
distributionUrl=${distributionUrl//\\:/:}
# 3. Swap in the requested version while maintaining the distribution URL.
distributionUrl=${distributionUrl/gradle-[0-9.]*-bin.zip/gradle-$version-bin.zip}
if command -v md5sum >/dev/null 2>&1; then
md5Hex=$(printf '%s' "$distributionUrl" | md5sum | awk '{print $1}')
else
md5Hex=$(printf '%s' "$distributionUrl" | md5)
fi
# Convert the md5 to base36: read it as a number, then repeatedly take the
# next digit (number % 36) and divide by 36, prepending each digit's character.
number=$(printf 'ibase=16; %s\n' "$(printf '%s' "$md5Hex" | tr 'a-f' 'A-F')" | bc)
hash=""
alphabet="0123456789abcdefghijklmnopqrstuvwxyz"
while [ "$number" != "0" ]; do
digit=$(printf '%s %% 36\n' "$number" | bc)
number=$(printf '%s / 36\n' "$number" | bc)
hash="${alphabet:$digit:1}$hash"
done
printf '%s' "$hash"
}
# Seed a Gradle distribution binary into ~/.gradle from the internal mirror.
seedGradleDistribution () {
version="$1"
sha="$2"
distributionDir="$HOME/.gradle/wrapper/dists/gradle-${version}-bin/$(gradleDistributionHash "$version")"
if [ -e "$distributionDir/gradle-${version}-bin.zip.ok" ]; then
return 0
fi
mkdir -p "$distributionDir"
zip="$distributionDir/gradle-${version}-bin.zip"
url="$gradleDistributionMirror/gradle-${version}-bin.zip"
DownloadURL "$url" "$url" "$sha" "$zip"
unzip -q -o "$zip" -d "$distributionDir"
rm -f "$zip"
touch "$distributionDir/gradle-${version}-bin.zip.ok"
}
# Populate ~/.gradle/caches by priming the shared project for each Gradle and AGP profile.
cacheGradleProfile () {
echo "Caching Gradle profile $*"
tmp="$(mktemp -d)"
project="$tmp/project"
cp -r "$gradle_project_source" "$project"
props="$project/gradle/wrapper/gradle-wrapper.properties"
for kv in "$@"; do
case "$kv" in
gradle=*)
sed "s#gradle-[0-9.]*-bin.zip#gradle-${kv#*=}-bin.zip#" "$props" > "$props.tmp"
mv "$props.tmp" "$props"
;;
esac
done
toml="$project/gradle/libs.versions.toml"
for kv in "$@"; do
case "$kv" in
gradle=*) ;;
*)
key="${kv%%=*}"
val="${kv#*=}"
sed "/^\[versions\]/,/^\[/ s/^$key = .*/$key = \"$val\"/" "$toml" > "$toml.tmp"
mv "$toml.tmp" "$toml"
;;
esac
done
sh "$project/gradlew" --project-dir "$project" build
rm -rf "$tmp"
}
# Cache both the current and the previous versions to avoid issues during bumps.
seedGradleDistribution 9.3.1 "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06"
cacheGradleProfile gradle=9.3.1 agp=9.0.0
seedGradleDistribution 9.5.1 "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
cacheGradleProfile gradle=9.5.1 agp=9.2.1
echo "Cached Gradle distributions and dependencies under $HOME/.gradle."
@@ -22,6 +22,12 @@ ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
default_prefix="/usr/local/$ffmpeg_name"
prefix="${2:-$default_prefix}"
# Disable X11 linkage on macOS. FFmpeg auto-detect
# mechanisms will pull it in as a dependency if found
# on the host. If this happens, it makes the binaries
# not loadable on macOS machines without libx11 installed.
ffmpeg_config_options+=" --disable-libxcb --disable-xlib"
build_ffmpeg() {
local arch="$1"
local build_dir="$ffmpeg_source_dir/build/$arch"
@@ -0,0 +1,39 @@
// Copyright (C) 2026 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
// Installed by Coin into $GRADLE_USER_HOME/init.d to route every gradle
// invocation's repositories through the internal Nexus mirror.
def mirror = 'https://ci-passth-cache.ci.qt.io/repository/gradle-all/'
def addMirror = { repositories ->
repositories.maven { mavenRepository ->
mavenRepository.name = 'qt-nexus-mirror'
mavenRepository.url = mirror
}
}
def enforceMirror = { repositories ->
repositories.all { repository ->
if (repository.name != 'qt-nexus-mirror')
repositories.remove(repository)
}
addMirror(repositories)
}
// Modern templates: replace the settings-level repositories with the mirror.
settingsEvaluated { settings ->
settings.pluginManagement.repositories.clear()
addMirror(settings.pluginManagement.repositories)
settings.dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
repositories.clear()
addMirror(repositories)
}
}
// Legacy templates: replace the buildscript and project repositories with the mirror.
allprojects { project ->
enforceMirror(project.buildscript.repositories)
enforceMirror(project.repositories)
}
@@ -7,7 +7,9 @@ which use `--offline`.
Caches dependencies for:
- `com.android.application`: used by Qt test/example APK builds
- `com.android.library`: used by Qt JAR builds
- `android.dynamic.feature`: used by Feature Delivery tests
- `org.jetbrains.kotlin.android`: used by some Qt modules
- `org.qtproject.qt.gradleplugin`: used by Qt for Android Studio projects
- AndroidX: used by app builds
These files should be updated each time Qt bumps the supported Android or
@@ -10,11 +10,14 @@ android {
applicationId 'org.qtproject.qt.gradlecache.app'
minSdk = 28
}
dynamicFeatures = [':feature']
}
dependencies {
implementation libs.core
implementation libs.appcompat
implementation libs.material
implementation libs.play.feature.delivery
testImplementation libs.junit
}
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="feature_title">Feature</string>
</resources>
@@ -1,4 +1,6 @@
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.android.library) apply false
alias(libs.plugins.android.dynamic.feature) apply false
alias(libs.plugins.qt.gradle.plugin) apply false
}
@@ -0,0 +1,17 @@
plugins {
alias(libs.plugins.android.dynamic.feature)
}
android {
namespace = 'org.qtproject.qt.gradlecache.feature'
compileSdk = 36
defaultConfig {
minSdk = 28
}
}
dependencies {
implementation project(':app')
implementation libs.play.feature.delivery
}
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module
dist:instant="false"
dist:title="@string/feature_title">
<dist:delivery>
<dist:on-demand />
</dist:delivery>
<dist:fusing dist:include="true" />
</dist:module>
</manifest>
@@ -0,0 +1,5 @@
package org.qtproject.qt.gradlecache.feature
object Feature {
fun hello(): String = "hello"
}
@@ -1,16 +1,21 @@
[versions]
agp = "9.0.0"
agp = "9.2.1"
core = "1.17.0"
appcompat = "1.7.1"
material = "1.13.0"
junit = "4.13.2"
play-feature-delivery = "2.1.0"
qt-gradle-plugin = "1.4"
[libraries]
core = { group = "androidx.core", name = "core", version.ref = "core" }
appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "appcompat" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
play-feature-delivery = { module = "com.google.android.play:feature-delivery", version.ref = "play-feature-delivery" }
[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
android-library = { id = "com.android.library", version.ref = "agp" }
android-dynamic-feature = { id = "com.android.dynamic-feature", version.ref = "agp" }
qt-gradle-plugin = { id = "org.qtproject.qt.gradleplugin", version.ref = "qt-gradle-plugin" }
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
@@ -14,4 +14,4 @@ dependencyResolutionManagement {
}
rootProject.name = 'gradlecache'
include ':app', ':lib'
include ':app', ':lib', ':feature'
@@ -3,8 +3,8 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
download_ffmpeg() {
local version="${1:-"n7.1.3"}"
local sha1="${2:-27051817deec88bed3b9652d49f9127d22268d83}"
local version="${1:-"n8.1.2"}"
local sha1="${2:-a7f4ce77209afdadca9f371db261e8d69903dc85}"
local ffmpeg_name="FFmpeg-$version"
local target_dir="$HOME"
@@ -12,7 +12,7 @@ download_ffmpeg() {
if [ ! -d "$ffmpeg_source_dir" ]; then
local url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/FFmpeg-$version.tar.gz"
local app_prefix=""
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
@@ -22,7 +22,7 @@ targetDir="$HOME/grpc-$version"
targetFile="$targetDir.zip"
DownloadURL "$internalUrl" "$externalUrl" "$sha1" "$targetFile"
unzip -q "$targetFile" -d "$HOME"
sudo rm "$targetFile"
rm "$targetFile"
# devtoolset is needed when running configuration
if uname -a |grep -qv "Darwin"; then
@@ -60,7 +60,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
-DgRPC_ZLIB_PROVIDER="package"
ninja all
sudo env "PATH=$PATH" ninja install
env "PATH=$PATH" ninja install
# Refresh shared library cache if OS isn't macOS
if uname -a |grep -qv "Darwin"; then
sudo ldconfig
@@ -69,5 +69,5 @@ fi
SetEnvVar "gRPC_ROOT" "$installPrefix"
SetEnvVar "absl_ROOT" "$installPrefix"
sudo rm -rf "$targetDir"
sudo rm -rf "$buildDir"
rm -rf "$targetDir"
rm -rf "$buildDir"
+6 -6
View File
@@ -3,22 +3,22 @@
. "$PSScriptRoot\helpers.ps1"
$majorminorversion = "3.30"
$version = "3.30.5"
$majorminorversion = "4.3"
$version = "4.3.2"
$cpu_arch = Get-CpuArchitecture
Write-Host "Installing CMake for architecture $cpu_arch"
switch ($cpu_arch) {
arm64 {
$arch = "arm64"
$sha1 = "408977a174476407bd660604f110a26ba41a6efd"
$majorminorversion = "3.30"
$version = "3.30.5"
$sha1 = "71949e4637accf5a92f35d357dc861e6a8d645cf"
$majorminorversion = "4.3"
$version = "4.3.2"
Break
}
x64 {
$arch = "i386"
$sha1 = "d0636735c2d13a4443662605cd80c708f265eacc"
$sha1 = "abc3ae51ec5a11fb367a39ddfb7db0c9ea697a7b"
}
default {
throw "Unknown architecture $cpu_arch"
@@ -1,3 +1,4 @@
diffutils
make
nasm
yasm
+104 -18
View File
@@ -3,23 +3,109 @@
. "$PSScriptRoot\helpers.ps1"
Write-Host "Caching Gradle distribution and dependencies"
$gradleCacheFileName = "gradle_9.3.1_windows_cache_v2.zip"
$gradleCacheCachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\gradle\$gradleCacheFileName"
$gradleCacheOfficialUrl = $gradleCacheCachedUrl
$gradleCacheChecksum = "fcd653a1f4f30da9074a7aa7cfcad9219ed57d96"
$gradleCacheZip = "C:\Windows\Temp\$gradleCacheFileName"
Download $gradleCacheOfficialUrl $gradleCacheCachedUrl $gradleCacheZip
Verify-Checksum $gradleCacheZip $gradleCacheChecksum
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.gradle"
Extract-7Zip $gradleCacheZip "$env:USERPROFILE"
Remove $gradleCacheZip
Write-Host "Caching Gradle distributions and dependencies"
$gradleProjectSource = "$PSScriptRoot\..\shared\gradle\project"
$gradleProjectTarget = "C:\Windows\Temp\gradle_project"
Copy-Item -Recurse -Force $gradleProjectSource $gradleProjectTarget
$env:ANDROID_SDK_ROOT = [Environment]::GetEnvironmentVariable("ANDROID_SDK_ROOT", "Machine")
Push-Location $gradleProjectTarget
cmd /c "gradlew.bat --no-daemon build"
Pop-Location
if ($LASTEXITCODE -ne 0) { throw "Gradle caching failed" }
$gradleDistributionMirror = "\\ci-files01-hki.ci.qt.io\provisioning\gradle"
$gradleInitScript = "init.d\nexus-mirror.gradle"
# Route every Gradle repository through the internal Nexus mirror.
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.gradle\init.d" | Out-Null
Copy-Item -Force "$PSScriptRoot\..\shared\gradle\$gradleInitScript" "$env:USERPROFILE\.gradle\$gradleInitScript"
# Returns the hash of the Gradle binary distribution for a given Gradle version.
# Gradle calculates the hash as base36(md5(distributionUrl)).
function Get-GradleDistributionHash([string]$Version) {
# 1. Read the project's distributionUrl.
$distributionUrl = Get-Content "$gradleProjectSource\gradle\wrapper\gradle-wrapper.properties" |
Where-Object { $_ -like 'distributionUrl=*' }
$distributionUrl = $distributionUrl -replace '^distributionUrl=', ''
# 2. Unescape the Java-properties (e.g. '\:').
$distributionUrl = $distributionUrl -replace '\\:', ':'
# 3. Swap in the requested version while maintaining the distribution URL.
$distributionUrl = $distributionUrl -replace 'gradle-[0-9.]+-bin\.zip', "gradle-$Version-bin.zip"
# .NET BigInteger is little-endian two's complement, so reverse the md5 and
# append a 0 byte to get the same positive value Gradle uses.
$md5 = [System.Security.Cryptography.MD5]::Create().ComputeHash([Text.Encoding]::UTF8.GetBytes($distributionUrl))
[array]::Reverse($md5)
$number = [System.Numerics.BigInteger]::new([byte[]]($md5 + 0))
# Convert the md5 to base36: repeatedly take the next digit (number % 36) and
# divide by 36, prepending each digit's character.
$alphabet = "0123456789abcdefghijklmnopqrstuvwxyz"
$hash = ""
while ($number -gt 0) {
$digit = [int]($number % 36)
$hash = $alphabet[$digit] + $hash
$number = $number / 36
}
return $hash
}
# Seed a Gradle distribution binary into ~/.gradle from the internal mirror.
function Seed-GradleDistribution([string]$Version, [string]$Sha256) {
$distributionDir = "$env:USERPROFILE\.gradle\wrapper\dists\gradle-$Version-bin\$(Get-GradleDistributionHash $Version)"
if (Test-Path "$distributionDir\gradle-$Version-bin.zip.ok") {
return
}
New-Item -ItemType Directory -Force -Path $distributionDir | Out-Null
$zip = "$distributionDir\gradle-$Version-bin.zip"
$url = "$gradleDistributionMirror\gradle-$Version-bin.zip"
Download $url $url $zip
Verify-Checksum $zip $Sha256
Extract-7Zip $zip $distributionDir
Remove $zip
New-Item -ItemType File -Force -Path "$distributionDir\gradle-$Version-bin.zip.ok" | Out-Null
}
# Populate ~/.gradle/caches by priming the shared project for each Gradle and AGP profile.
function Cache-GradleProfile([string[]]$VersionProfile) {
Write-Host "Caching Gradle profile $($VersionProfile -join ' ')"
$project = Join-Path $env:TEMP ([System.Guid]::NewGuid().ToString())
Copy-Item -Recurse -Force $gradleProjectSource $project
$props = "$project\gradle\wrapper\gradle-wrapper.properties"
foreach ($kv in $VersionProfile) {
if ($kv -like "gradle=*") {
$val = ($kv -split '=', 2)[1]
(Get-Content $props) -replace "gradle-[0-9.]+-bin\.zip", "gradle-$val-bin.zip" | Set-Content $props
}
}
$toml = "$project\gradle\libs.versions.toml"
foreach ($kv in $VersionProfile) {
if ($kv -like "gradle=*") {
continue
}
$key, $val = $kv -split '=', 2
$inVersions = $false
(Get-Content $toml) | ForEach-Object {
if ($_ -match '^\[') {
$inVersions = $_ -eq '[versions]'
}
if ($inVersions -and $_ -match "^$key = ") {
"$key = `"$val`""
} else {
$_
}
} | Set-Content $toml
}
$env:ANDROID_SDK_ROOT = [Environment]::GetEnvironmentVariable("ANDROID_SDK_ROOT", "Machine")
Push-Location $project
cmd /c "gradlew.bat --no-daemon build"
Pop-Location
if ($LASTEXITCODE -ne 0) {
throw "Gradle caching failed"
}
Remove-Item -Recurse -Force $project
}
# Cache both the current and the previous versions to avoid issues during bumps.
Seed-GradleDistribution "9.3.1" "b266d5ff6b90eada6dc3b20cb090e3731302e553a27c5d3e4df1f0d76beaff06"
Cache-GradleProfile "gradle=9.3.1", "agp=9.0.0"
Seed-GradleDistribution "9.5.1" "bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f"
Cache-GradleProfile "gradle=9.5.1", "agp=9.2.1"
Write-Host "Cached Gradle distributions and dependencies under $env:USERPROFILE\.gradle."
@@ -7,10 +7,10 @@
# This script will install FFmpeg
$msys = "C:\Utils\msys64\usr\bin\bash"
$version="n7.1.3"
$version="n8.1.2"
$url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
$sha1="27051817deec88bed3b9652d49f9127d22268d83"
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
$sha1="a7f4ce77209afdadca9f371db261e8d69903dc85"
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/FFmpeg-$version.tar.gz"
$ffmpeg_name="FFmpeg-$version"
$download_location = "C:\Windows\Temp\$ffmpeg_name.tar.gz"
@@ -173,6 +173,18 @@ function InstallMsvcFfmpeg {
return $false
}
# MSVC 2019 workaround: The SSA optimizer (code generation
# "pass 2") gets stuck in an infinite loop on some translations
# units, such as libavcodec/sanm.c, when compiling FFmpeg n8.1.2 and up.
# This only affects the VS2019-based Windows 10 x86_64 image.
# VS2022+ hosts build fine. Disabling that optimizer pass lets the
# older toolchain finish. This workaround can be dropped once we no
# longer build using MSVC 2019.
if ($env:VisualStudioVersion -and [version]$env:VisualStudioVersion -lt [version]"17.0") {
Write-Host "MSVC $env:VisualStudioVersion (< 2022) detected; adding -d2SSAOptimizer- to avoid build freeze on FFmpeg 8.x"
$config += " --extra-cflags=-d2SSAOptimizer-"
}
$result = InstallFfmpeg -config $config -buildSystem $buildSystem -msystem "MSYS" -toolchain "msvc" -ffmpegDirEnvVar $ffmpegDirEnvVar -shared $true
if ($result) {
@@ -3,16 +3,16 @@
. "$PSScriptRoot\helpers.ps1"
# This script will installs msys2
# This script will install msys2
$version = "20240113"
$prog = "msys2"
$arch = "x86_64"
$sha1 = "b46c08fd901da0fdba1dc30422a322766d7d03c6"
$sha1_prebuilt = "29d16a81de4a570c41f92491e20b5554a1baab8f"
$sha1_prebuilt = "9AC41CD8B71100BF30058F04790C1AF055BE4957"
$folder = "msys64"
$package_prebuilt = $folder + "_" + $version + "_prebuilt_v2.7z"
$package_prebuilt = $folder + "_" + $version + "_prebuilt_v3.7z"
$package = $prog + "-base-" + $arch + "-" + $version + ".tar.xz"
$url_cache_prebuilt = "\\ci-files01-hki.ci.qt.io\provisioning\windows\$package_prebuilt"
@@ -25,8 +25,8 @@ function install() {
$zip = "c:\users\qt\downloads\libclang.7z"
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z"
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain`_$archVer.7z"
$script:OfficialUrl = "https://download.qt.io/development_releases/prebuilt/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain$toolchainVersion`_$archVer.7z"
$script:CachedUrl = "http://ci-files01-hki.ci.qt.io/input/libclang/qt/libclang-llvmorg-$libclang_version-windows-$toolchain$toolchainVersion`_$archVer.7z"
Download $OfficialUrl $CachedUrl $zip
Verify-Checksum $zip $sha1
@@ -36,6 +36,7 @@ function install() {
}
$toolchainSuffix = ""
$toolchainVersion = ""
if ( $toolchain -eq "vs2022" ) {
if ( $archVer -eq "64" ) {
@@ -63,13 +64,15 @@ if ( $toolchain -eq "mingw" ) {
if ( $toolchain -eq "llvm-mingw" ) {
if ( $archVer -eq "64" ) {
$sha1 = "3e917d002f363c225e5ee2b7d8999a3cabd8b467"
$sha1 = "ced503f1bf9c389a6e93d3abb40bb694fb0ae42c"
}
else {
$sha1 = ""
}
# Due to COIN-1137 forced to use a '_' instead of '-'
$toolchainSuffix = "llvm_mingw"
$toolchainVersion = "-22.1.7"
}
if ( $useArchInToolchainSuffix ) {
+3 -3
View File
@@ -28,10 +28,10 @@ $folderName = "qnx710"
$targetPath = "$targetFolder$folderName"
# QNX SDP
$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"
$cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\qnx\qnx710-windows-linux-20260422.tar.xz"
$sourceFile = "http://ci-files01-hki.ci.qt.io/input/qnx/qnx710-windows-linux-20260422.tar.xz"
$targetFile = "qnx710.tar.xz"
$sha1 = "cd2d35004fb2798089e29d9e1226691426632da0"
$sha1 = "98b24df7e8c53a104aee76e769011396fa4bdafd"
DownloadAndExtract $sourceFile $sha1 $targetFile $targetFolder $cachedUrl
Copy-Item $aarch64le_toolchain $targetPath
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Copyright (C) 2022 The Qt Company Ltd.
# Copyright (C) 2026 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
@@ -13,7 +13,7 @@ while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
done
sudo yum -y remove PackageKit gnome-software
sudo subscription-manager config --rhsm.manage_repos=1
sudo subscription-manager config --rhsm.manage_repos=0
sudo subscription-manager refresh
# List available RHEL versions and bind with correct one
@@ -21,10 +21,35 @@ sudo subscription-manager release --list
sudo subscription-manager release --set=9.0
sudo yum clean all
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
sudo yum config-manager --enable 'codeready-builder-for-rhel-9-x86_64-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-baseos-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-appstream-rpms'
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
[rhel-9-for-x86_64-baseos-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-baseos-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Base OS (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[rhel-9-for-x86_64-appstream-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-appstream-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Appstream (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[codeready-builder-for-rhel-9-x86_64-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/codeready-builder-for-rhel-9-x86_64-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
EOC
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Copyright (C) 2023 The Qt Company Ltd.
# Copyright (C) 2026 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
@@ -14,7 +14,7 @@ while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
done
sudo yum -y remove PackageKit gnome-software
sudo subscription-manager config --rhsm.manage_repos=1
sudo subscription-manager config --rhsm.manage_repos=0
sudo subscription-manager refresh
# List available RHEL versions and bind with correct one
@@ -22,10 +22,35 @@ sudo subscription-manager release --list
sudo subscription-manager release --set=9.2
sudo yum clean all
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
sudo yum config-manager --enable 'codeready-builder-for-rhel-9-x86_64-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-baseos-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-appstream-rpms'
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
[rhel-9-for-x86_64-baseos-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-baseos-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Base OS (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[rhel-9-for-x86_64-appstream-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/rhel-9-for-x86_64-appstream-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Appstream (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[codeready-builder-for-rhel-9-x86_64-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/codeready-builder-for-rhel-9-x86_64-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
EOC
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Copyright (C) 2023 The Qt Company Ltd.
# Copyright (C) 2026 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
@@ -14,7 +14,7 @@ while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
done
sudo yum -y remove PackageKit gnome-software
sudo subscription-manager config --rhsm.manage_repos=1
sudo subscription-manager config --rhsm.manage_repos=0
sudo subscription-manager refresh
# List available RHEL versions and bind with correct one
@@ -22,10 +22,35 @@ sudo subscription-manager release --list
sudo subscription-manager release --set=9.4
sudo yum clean all
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
sudo yum config-manager --enable 'codeready-builder-for-rhel-9-x86_64-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-baseos-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-appstream-rpms'
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
[rhel-9-for-x86_64-baseos-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/9.4/rhel-9-for-x86_64-baseos-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Base OS (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[rhel-9-for-x86_64-appstream-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/9.4/rhel-9-for-x86_64-appstream-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Appstream (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[codeready-builder-for-rhel-9-x86_64-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/9.4/codeready-builder-for-rhel-9-x86_64-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
EOC
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
# Copyright (C) 2023 The Qt Company Ltd.
# Copyright (C) 2026 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
@@ -14,7 +14,7 @@ while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
done
sudo yum -y remove PackageKit gnome-software
sudo subscription-manager config --rhsm.manage_repos=1
sudo subscription-manager config --rhsm.manage_repos=0
sudo subscription-manager refresh
# List available RHEL versions and bind with correct one
@@ -22,10 +22,35 @@ sudo subscription-manager release --list
sudo subscription-manager release --set=9.6
sudo yum clean all
# sudo yum config-manager --enable 'rhceph-4-tools-for-rhel-8-x86_64-rpms'
sudo yum config-manager --enable 'codeready-builder-for-rhel-9-x86_64-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-baseos-rpms'
sudo yum config-manager --enable 'rhel-9-for-x86_64-appstream-rpms'
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
[rhel-9-for-x86_64-baseos-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/9.6/rhel-9-for-x86_64-baseos-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Base OS (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[rhel-9-for-x86_64-appstream-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/9.6/rhel-9-for-x86_64-appstream-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 9 Appstream (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[codeready-builder-for-rhel-9-x86_64-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel9.ci.qt.io/9.6/codeready-builder-for-rhel-9-x86_64-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux Codeready Builder (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
EOC
# Epel is required for 'double-conversion-devel', 'libsqlite3x' and 'p7zip'
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
@@ -1,8 +1,8 @@
#!/usr/bin/env bash
#Copyright (C) 2023 The Qt Company Ltd
#Copyright (C) 2026 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
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang-dyn.sh
"$BASEDIR/../common/unix/libclang-dyn.sh"
"$BASEDIR/../common/unix/libclang-dyn.sh" "-snld20"
@@ -5,4 +5,4 @@ set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang.sh
"$BASEDIR/../common/unix/libclang.sh"
"$BASEDIR/../common/unix/libclang.sh" "-snld20"
@@ -23,7 +23,7 @@ echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation"
targetFile=$(mktemp)
DownloadURL "$baseBinaryPackageURL" "$baseBinaryPackageExternalURL" "$sha1" "$targetFile"
sudo 7z x -y -o/usr/lib64 "$targetFile"
sudo 7z x -snld20 -y -o/usr/lib64 "$targetFile"
sudo rm "$targetFile"
echo "Installing custom ICU devel packages on RHEL"
@@ -32,7 +32,7 @@ tempDir=$(mktemp -d)
targetFile=$(mktemp)
DownloadURL "$develPackageURL" "$develPackageExternalURL" "$sha1Dev" "$targetFile"
7z x -y -o"$tempDir" "$targetFile"
7z x -snld20 -y -o"$tempDir" "$targetFile"
sudo cp -a "$tempDir"/lib/* /usr/lib64
sudo cp -a "$tempDir"/* /usr/
@@ -0,0 +1,7 @@
#!/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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/cmake_linux.sh"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\disable-clean-manager.ps1"
@@ -1,4 +0,0 @@
# Copyright (C) 2025 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\drivers_versions.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-sevenzip.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\allow-remote-desktop-access.ps1"
@@ -1,9 +0,0 @@
# Windows 'Notifications & actions'
# Disable 'Get notifications from apps and other senders'
reg.exe ADD "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\PushNotifications" /V ToastEnabled /T REG_dWORD /D 0 /F
# Disable 'Show me the Windows welcome experience after udpates and occasionally when I sign in to highlight what's new and suggested'
reg.exe ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /V SubscribedContent-310093Enabled /T REG_dWORD /D 0 /F
# Disable 'Get tips, tricks and suggestions as you use Windows'
reg.exe ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" /V SubscribedContent-338389Enabled /T REG_dWORD /D 0 /F
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\disable-windows-delivery-optimization.ps1"
@@ -1,5 +0,0 @@
# Copyright (C) 2025 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
# QTQAINFRA-6761
. "$PSScriptRoot\..\common\windows\disable-windows-mdns.ps1"
@@ -1,7 +0,0 @@
# Disable Connected User Experiences and Telemetry service
# The Connected User Experiences and Telemetry service enables features that support in-application and connected user experiences.
# Additionally, this service manages the event driven collection and transmission of diagnostic and usage information
# (used to improve the experience and quality of the Windows Platform) when the diagnostics and usage privacy option settings are enabled under Feedback and Diagnostics.
reg.exe ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Data Collection" /V AllowTelemetry /T REG_dWORD /D 0 /F
stop-service diagtrack
set-service diagtrack -startuptype disabled
@@ -1,2 +0,0 @@
# Allow SMB client guest logons to SMB server.
reg.exe ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" /V AllowInsecureGuestAuth /T REG_dWORD /D 1 /F
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install_telegraf.ps1"
@@ -1,2 +0,0 @@
. "$PSScriptRoot\..\common\windows\change-language-settings.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\disable-autoreboot.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\win10-enable-devmode.ps1"
@@ -1,13 +0,0 @@
# 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
# Visual Studios are pre-provisioned to tier1 images
# MSVC 2015 Update 3
Write-Output "Visual Studio 2015 = Version 14.0.25421.3 Update 3" >> ~\versions.txt
# MSVC 2017
Write-Output "Visual Studio 2017 = Version 15.1 (26403.7)" >> ~\versions.txt
# MSVC 2017 Build Tools
Write-Output "Visual Studio 2017 Build Tools = Version 15.1 (26403.7)" >> ~\versions.txt
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\wsearch-off.ps1"
@@ -1,2 +0,0 @@
. "$PSScriptRoot\..\common\windows\longpath.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\mesa_llvmpipe.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\ninja.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-git.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-jdk.ps1"
@@ -1,8 +0,0 @@
# Parameters:
# - Arch 32/64
# - installer sha1
# - install target dir
# - version
# - Optional true/false if set as default with PYTHON3/PIP3_PATH variables, default false
. "$PSScriptRoot\..\common\windows\python3.ps1" 32 "cd9744b142eca832f9534390676e6cfb84bf655d" "C:\Python36" "3.6.2" $true
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-dependencywalker.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-openssh.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-ruby.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-strawberry-perl.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\openssl.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\postgresql.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\vulkansdk.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\conan.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-sccache.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\mqtt_broker.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\winrtrunner.ps1"
@@ -1,2 +0,0 @@
. "$PSScriptRoot\..\common\windows\install-gnuwin32.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\jom.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\cmake.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\win10sdk.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\disable-quickedit.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\exceutequeueditems.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\libusb.ps1"
@@ -1 +0,0 @@
. "$PSScriptRoot\..\common\windows\mysql.ps1"
@@ -1,14 +0,0 @@
# 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\..\common\windows\helpers.ps1"
# Signing tools are needed to sign offline installers when releasing
$url = "http://ci-files01-hki.ci.qt.io/input/semisecure/sign/sign.zip"
$destination = "C:\Windows\temp\sign.zip"
Download $url $url $destination
Extract-7Zip "$destination" "C:\Utils"
Remove "$destination"
@@ -1,3 +0,0 @@
. "$PSScriptRoot\..\common\windows\vclibs_debug.ps1"
Install-VCLibsDebug X86

Some files were not shown because too many files have changed in this diff Show More