Compare commits

...
Author SHA1 Message Date
Alexei Cazacov b679fc833f Update essential top-level files in the Qt's super-repo
This commit introduces the following changes:

- README.md - Updated, completely rewritten. Now includes up-to-date
  information.
- README.git - Deleted.
- SECURITY.md - A new document that points to QUIP 15.
- CODE_OF_CONDUCT.md - A new document that points to QUIP 12.
- GOVERNANCE.md - A new document that points to QUIP 2.
- CHANGELOG.md - A new document that points to what's new pages,
  release wiki pages, porting guide, dist/ deprecation note.
- LICENSE.md - A new document that explains where per-module terms live.
- README.md.template - Updated, to specify its purpose.

Fixes: QTBUG-149126
Change-Id: I2d2385e22769d4df360a626abc7484baf1cb0285
Reviewed-by: Kai Köhne <[email protected]>
(cherry picked from commit 7e2b6df4a8)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
(cherry picked from commit 93b324a453)
2026-09-14 06:34:11 +00:00
Qt Submodule Update Bot 3c74fcadea Update submodules on '6.12.0 in qt/qt5'
Change-Id: Ife093b6b517721e328608cc835e31c14477f1767
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-09-14 06:34:10 +00:00
Assam Boudjelthia badc52004e Android: bump Android target API level to 37
Provision the Android 17 SDK platform and build tools,
and compile the Gradle cache project against them.

Task-number: QTBUG-136620
Change-Id: I6470f60c08f028a2bfbc6ed09a99492d4a174402
Reviewed-by: Antti Kokko <[email protected]>
2026-09-12 12:02:25 +00:00
Joerg Bornemann 574021bdfa coin: Switch vcpkg-provided libs to static linkage for HarmonyOS
Pick-to: dev 6.12
Task-number: QTBUG-147895
Change-Id: I9534cd6218e4115c8ace1fb1bff7d60e2779274b
Reviewed-by: Liang Qi <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
2026-09-12 12:02:21 +00:00
Qt Submodule Update Bot ec6b23ce8a Update submodules on '6.12.0 in qt/qt5'
Change-Id: Iadb963a0f83ef89b556eb9d45246140ad1c6d927
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-09-11 20:11:06 +00:00
Jani Heikkinen 392114430e Adjust submodule branches
Change-Id: I0878d33c66c7bad6187adddfce63ef33b4b4f9f4
2026-09-09 07:57:46 +03:00
Simo Fält acbb42c920 Provisioning: Fix for missing Debian security packages
Pick-to: 6.11 6.8
Change-Id: I65b47bfc1580996989ab1d948a141d46fd53b6f8
Reviewed-by: Jukka Jokiniva <[email protected]>
(cherry picked from commit 31071aed4a)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-08 15:02:08 +00:00
Eike Ziller f79439844d COIN: Install chrpath on OpenSUSE 16
Required for building Qt Creator/Profiler (installing Qt and
patching ICU)

Pick-to: 6.11
Change-Id: I733bd8c9a16ebae31c72c01e94d9413c7ff678ab
Reviewed-by: Patrik Teivonen <[email protected]>
(cherry picked from commit 779613db43)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-08 12:39:29 +00:00
Patrik Teivonen 3e9b56e0ad Coin: Add platform config for qt-labs/qtxcbnativepainting
Linux only, as the plugin requires the xcb QPA plugin. Includes the
Linux packaging configurations so release binaries can be exported.

Task-number: QTQAINFRA-8015
Change-Id: I481c39db55ad4ef6f36a7ceaef00e1a30c43adc8
Reviewed-by: Jani Heikkinen <[email protected]>
(cherry picked from commit 6bda9bdef9)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-08 10:56:04 +00:00
Karim Pinter da7ca1ee75 [VxWorks] Tune the NFS server and move TMP,HOME,CACHE dirs to ramfs
The switch of the VxWorks guests' NFS mounts from TCP to UDP removed
transport-level backpressure and retransmission: when the server drops
a request or a reply, the client re-sends the RPC itself. With
VXWORKS_QEMU_INSTANCES=4 KVM-speed x86 guests hammering the server
concurrently, drops are frequent enough that non-idempotent metadata
ops (MKDIR, RENAME, REMOVE) get replayed, which surfaces as spurious
errors and crashed autotests in exactly the metadata-heavy paths
(QSettings, QFileDialog, tst_QFile::openDirectory).

Address the three drop points on the server:

- nfsd threads: the distro default of 8 is too few; when all of them
  block in a commit, incoming UDP requests are silently discarded.
  Raise to 32.
- sync exports: commit latency under parallel load exceeds the
  client's RPC timeout and triggers the retransmit storms above.
  Export async instead; the exports carry disposable CI scratch data,
  so relaxed durability is acceptable.
- socket buffers and fragment reassembly: NFS3 rsize/wsize over a
  1500-byte MTU turns every large reply (READ, READDIRPLUS) into an
  IP fragment train, and one lost fragment costs the whole RPC. Raise
  rmem/wmem to 8 MiB and the ipfrag thresholds to 16/12 MiB, applied
  on every boot since sysctls do not persist.

Also use exportfs -ra so changed export options are resynced on VMs
that already carry the exports from a previous run.
TMP,HOME,CACHE directories were in NFS, now they are moved to ramfs
on the device side. imx6 ram increased to 4G because of this.
This also includes the NFS patch from WindRiver.

Fixes: QTBUG-149201
Change-Id: I710d81789d6cdd7b4de40bba0c55086ea61724fd
Reviewed-by: Toni Saario <[email protected]>
(cherry picked from commit 58b1334bac)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-05 10:52:40 +00:00
Axel Spoerl d110ff4c98 Coin: Build offscreen QPA plugin for Android CI configs
Qt 6.11 removed the NOT ANDROID guard around the offscreen platform
plugin, so it can now be built for Android. Add offscreen to -qpa
alongside android in the Android build configs so libqoffscreen is
built and shipped for every ABI.

Pick-to: 6.11
Change-Id: I01fea9372c5297ef633fa3ddead84e9e975a2051
Reviewed-by: Shawn Rutledge <[email protected]>
(cherry picked from commit e0f1c974c3)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-05 10:52:38 +00:00
Matti Paaso f77f152366 Add tqtc-qtedgeai platform configuration
Task-number: QTQAINFRA-7955
Change-Id: Iac232265ba56caca54518a7721ea58e1a4ea77a0
Reviewed-by: Toni Saario <[email protected]>
2026-09-05 10:52:36 +00:00
Elias Toivola 178aaee44f Linux: add a distro version check to prevent unintentional updates
Add a helper script to check the reported distro version at
/etc/os-release at the start of a provisioning and at the end of it,
compare them, and throw an error if there is any difference even at the
most minor patch level e.g. Ubuntu 24.04.0 -> 24.04.1.

Task-number: QTQAINFRA-7810
Pick-to: 6.11 6.8
Change-Id: If4f1e997aef40037ee876bc3843ed09a5412615f
Reviewed-by: Simo Fält <[email protected]>
(cherry picked from commit d4992d4da4)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-03 05:22:34 +00:00
Qt Submodule Update Bot edde2ec93f Update submodules on '6.12 in qt/qt5'
Change-Id: I5c76c9b3a7fdb7b9ba60f7156b6442cc752bdcbb
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-09-02 20:17:17 +00:00
Nils Petter Skålerud a870cffea0 Upgrade to FFmpeg n9.0.1
As a drive-by, we fix the ffmpeg-installation-utils.sh script to install
FFmpeg source code into the expected target directory, instead of it
relying haphazardly on the name of the downloaded archive.

Same fix for install-ffmpeg.ps1.

Task-number: QTBUG-148761
Change-Id: Id765e01fbd402ee494a6a3ffec773d1dccc07c87
Reviewed-by: Tim Blechmann <[email protected]>
(cherry picked from commit 7fdc3c2e63)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-09-01 04:22:07 +00:00
Qt Submodule Update Bot 37a97fa211 Update submodules on '6.12 in qt/qt5'
Change-Id: I70bb76614052ea9fac60559f9d5e507a96bc60cd
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-08-31 21:16:32 +00:00
Simo Fält c31f19bf62 Provisioning: Run Python certificate installer synchronously
Pick-to: 6.11
Change-Id: I18e8b8256ad66313166dd6e01ea0a030fa81aee7
Reviewed-by: Jukka Jokiniva <[email protected]>
(cherry picked from commit 33df950977)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-30 17:33:30 +00:00
Assam Boudjelthia e1f514bd3a Android: use QT_ANDROID_GRADLE_MULTI_MODULE in target test args
QT_USE_ANDROID_MODERN_BUNDLE is renamed in qtbase, so reflect
that in qt5 as well.

Task-number: QTBUG-145101
Change-Id: Ieae7c662b80b18f6b287bdd8c19e971932b0d171
Reviewed-by: Alexandru Croitor <[email protected]>
(cherry picked from commit 6b51154f65)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-29 05:43:12 +00:00
Saman Hashemi 478db5551d Add and update platforms for Qtmcp + QmlpreviewMcp
- Create platform config file for the 6.12 branch in tqtc-qml-preview-mcp repo
 - Both QtMcp and QmlPreviewMcp have the same platforms supported

Change-Id: I9dd65966e6319ca51e8dfd3a9ef43a4f6a3db7ac
Reviewed-by: Antti Kokko <[email protected]>
2026-08-28 10:01:13 +00:00
Tim Blechmann 7b72c15f61 FFmpeg: iOS - build with AudioToolbox
It is typically hard to beat AudioToolbox. We may be better off not
disabling them when building FFmpeg.

Change-Id: Iba10fa3fe2f972e408017743a0db67d0e1a04a47
Reviewed-by: Nils Petter Skålerud <[email protected]>
Reviewed-by: Artem Dyomin <[email protected]>
(cherry picked from commit 51aab48f53)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-28 01:38:15 +00:00
Tuomas Vaarala f582feb449 Coin: QNX: share one IANA tzdata 2026a archive between 7.1 and 8.0
Both the 7.1 and 8.0 SDP ships pre-2022g zone info so they need to be
updated with a newer one. Point both at zoneinfo-2026a-usr.tar.xz, which
is rooted at usr/ and so suits either SDP layout, extracted into each
SDP's own target directory.

tst_QDateTime's expectation for the affected rows keys off the zone data
rather than the OS as of I3103b98c, so no test-side coordination is
needed when the new template rolls out.

Change-Id: I75a2df6e0002886e3de91f0573f8083645307c39
Reviewed-by: Marianne Yrjänä <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
(cherry picked from commit 2b92278152)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-26 15:55:03 +00:00
Jani Heikkinen 9da885a19b Qt 6.12: Add offline documentation build config for qtwebengine
Pick-to: dev
Change-Id: Ib5ac73f0de663d8a40349e5f79ffb74bc1ab3541
Reviewed-by: Antti Kokko <[email protected]>
2026-08-26 15:54:53 +00:00
Jukka Jokiniva 1e60576633 Update CINetworkTest application version
Task-number: QTQAINFRA-8035
Change-Id: I5b7df957dd9688b4357426dd4996f6bd56d755b4
Reviewed-by: Axel Spoerl <[email protected]>
(cherry picked from commit 092792a1f4)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-26 04:29:32 +00:00
Karim Pinter 58114728c5 [VxWorks] increase the memory for qemu for x86
tst_qbytearray_large autotest fails in CI on x86, because qemu is
started with 4Gb of memory and this test needs 4,7 Gb.

Fixes: QTBUG-149168
Change-Id: I0b6d753085c3e1f830cd705e6513003437909c64
Reviewed-by: Toni Saario <[email protected]>
(cherry picked from commit e9ce684743)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-26 04:29:29 +00:00
Tero Heikkinen 9840747bd7 Update MinGW to v15.1.0 (x86_64)
GCC = 15.1.0 MinGW = 12.0.0

Note: Win10 doesn't have MinGW targets anymore as those were moved
recently into Win11 (ddebcf8fd9)

But we still keep MinGW 15.1.0 installation as part of the Win10
provisioning as we did with Win11 before it had MinGW targets.

Reason is to keep installation working for just in case it's needed.

Task-number: QTQAINFRA-7483
Change-Id: I2cb2e2ef180b11cad61a5131ec47ea2ad207f338
Reviewed-by: Artem Dyomin <[email protected]>
Reviewed-by: Tim Blechmann <[email protected]>
(cherry picked from commit 295083dd9b)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-26 04:29:26 +00:00
Liang Qi 8fb6ce2ecf coin: also build HarmonyOS on macOS arm64
Change-Id: I35b04541f930745e4e10125582a8a810f3aaaaf5
Reviewed-by: Simo Fält <[email protected]>
(cherry picked from commit 3ed07a35b3)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-24 21:29:55 +00:00
Joerg Bornemann d4abe79578 coin: Update vcpkg to 2026.06.01-qt
This switches vcpkg back to a specific tag of the master branch of our
fork. That's why we can remove the "reference" key from the
configuration too, since master is the default branch.

The updated protobuf port only builds the libprotoc compiler library
when the target triplet equals the host triplet, or when the libprotoc
or target-protoc feature is requested. Since we always build against
our custom *-qt triplets, which never match the host triplet, request
the libprotoc feature so that protobuf::libprotoc is available and
qtgrpc can build qtprotobufgen.

Change-Id: Ief4b12c57c082f94b2bcfae6fd02ebac7018a5c9
Reviewed-by: Alexandru Croitor <[email protected]>
(cherry picked from commit dd170ab8a4)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-24 21:29:52 +00:00
Qt Submodule Update Bot 24f5a030f4 Update submodules on '6.12 in qt/qt5'
Change-Id: Idc61374180f332f99740892dca925d1802a35688
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-08-23 08:13:07 +00:00
Tuomas Vaarala 29a3079d3d Coin: QNX 8.0 QEMU: add libasound.so.5 to the system image
Qt6Multimedia on QNX links libasound (QSA), but 8.0 mkqnximage ships no
audio at all, so qtspeech's tst_qtexttospeech dies at load with
"ldd:FATAL: Could not load library libasound.so.5". Add the library;
without io-audio the device list just stays empty.

Pick-to: 6.11
Change-Id: I467cb977313ce2496e2ab063c820929f2bfa591e
Reviewed-by: Marianne Yrjänä <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
(cherry picked from commit c899623a25)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-20 12:58:25 +00:00
Michal Klocek 3925e7d921 Drop qtwebengine from qt5 integrations
The qtwebengine module is going to be released as separate component
this implies also that qtwebview module should be split into two parts:

* qtwebview-native one which implements qtwebview using platforms
  native apis, released together with qt installer
* qtwebview-webengine one which compiles webengine backends (plugins) for different platforms, released together with webengine component

Instead of really splinting the sources of webview the idea is to keep
everything how it was.

For Qt5 integration .gitmodule overrides dependency files for modules,
webview builds now and tests without qtwebengine dependency meaning only
native part is builds and tested. The outcome is used for installer
packaging. However, module builds stay the same and qtwebview is still
built and tested after qtwebengine, therefore there are no changes in
development process.

Change-Id: I7fe87f8464b07683ec41a76511e8eec45941376d
Reviewed-by: Jani Heikkinen <[email protected]>
(cherry picked from commit 8732522eea)
Reviewed-by: Jukka Jokiniva <[email protected]>
2026-08-20 06:15:33 +00:00
Qt Submodule Update Bot bce71cf4ca Update submodules on '6.12 in qt/qt5'
Change-Id: I60f6ddfec5cf90caf152e165def378126ea559c7
Reviewed-by: Qt Submodule Update Bot <[email protected]>
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 <[email protected]>
2026-08-13 21:00:01 +00:00
Jani Heikkinen 44b15983bf manual update for qtqa
Change-Id: I34fb9a603e1b7d44582507cda1f3b8f628611d1a
Reviewed-by: Antti Kokko <[email protected]>
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 <[email protected]>
(cherry picked from commit a60717f3fa)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 065d6d06d9)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit f408aa690a)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 3ea33c05bf)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit fec1887c6e)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
Reviewed-by: Dimitrios Apostolou <[email protected]>
(cherry picked from commit f0a6bdb87e)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 0979c63ba8)
Reviewed-by: Tor Arne Vestbø <[email protected]>
Reviewed-by: Jukka Jokiniva <[email protected]>
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 <[email protected]>
Reviewed-by: Nils Petter Skålerud <[email protected]>
(cherry picked from commit a20ee395b0)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit cdadd80b87)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
(cherry picked from commit 8804b39aa5)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
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 <[email protected]>
(cherry picked from commit 4d6a473bed)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-08-03 09:26:33 +00:00
Toni Saario 3cfcbbb4ed Update VxWorks libs to 26_03
Change-Id: I6157d0645dcfdebda2f2bb34e4736c832b4f5956
Reviewed-by: Jukka Jokiniva <[email protected]>
(cherry picked from commit 4bb35ed3bb)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 65104d023e)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 20c9b61cf6)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 81f3a57d3b)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 14aeaae7de)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 9969af72b5)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 4549003489)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
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 <[email protected]>
(cherry picked from commit b49f3297b8)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
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 <[email protected]>
(cherry picked from commit b679f634ea)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(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 <[email protected]>
(cherry picked from commit 9136724f2e)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
Reviewed-by: Aku Pietikäinen <[email protected]>
(cherry picked from commit 44aa931e29)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit c425276693)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit d4fc6f01a9)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 654c9c2b03)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 8e218fec47)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
Reviewed-by: Aku Pietikäinen <[email protected]>
(cherry picked from commit 444670374a)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
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 <[email protected]>
(cherry picked from commit 42370c3e0b)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
2026-07-16 04:17:18 +00:00
788 changed files with 1924 additions and 2348 deletions
-1
View File
@@ -3,6 +3,5 @@
.gitattributes export-ignore
.commit-template export-ignore eol=lf
init-repository export-ignore
README.git export-ignore
*.bat text eol=crlf
*.bat.in text eol=crlf
+46 -55
View File
@@ -1,54 +1,54 @@
[submodule "qtbase"]
path = qtbase
url = ../qtbase.git
branch = 6.12
branch = 6.12.0
status = essential
[submodule "qtsvg"]
depends = qtbase
path = qtsvg
url = ../qtsvg.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtdeclarative"]
depends = qtbase
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
path = qtdeclarative
url = ../qtdeclarative.git
branch = 6.12
branch = 6.12.0
status = essential
[submodule "qtactiveqt"]
depends = qtbase
path = qtactiveqt
url = ../qtactiveqt.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtmultimedia"]
depends = qtbase qtshadertools
recommends = qtdeclarative qtquick3d
path = qtmultimedia
url = ../qtmultimedia.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qttools"]
depends = qtbase
recommends = qtdeclarative qtactiveqt
path = qttools
url = ../qttools.git
branch = 6.12
branch = 6.12.0
status = essential
[submodule "qttranslations"]
depends = qttools
path = qttranslations
url = ../qttranslations.git
branch = 6.12
branch = 6.12.0
status = essential
priority = 30
[submodule "qtdoc"]
depends = qtdeclarative qttools
recommends = qtmultimedia qtshadertools qttasktree qtwebengine
recommends = qtmultimedia qtshadertools qttasktree
path = qtdoc
url = ../qtdoc.git
branch = 6.12
branch = 6.12.0
status = essential
priority = 40
[submodule "qtrepotools"]
@@ -61,7 +61,7 @@
depends = qtbase
path = qtqa
url = ../qtqa.git
branch = 6.12
branch = 6.12.0
status = essential
priority = 50
[submodule "qtlocation"]
@@ -69,243 +69,234 @@
recommends = qtdeclarative
path = qtlocation
url = ../qtlocation.git
branch = 6.12
branch = 6.12.0
status = preview
[submodule "qtpositioning"]
depends = qtbase
recommends = qtdeclarative qtserialport
path = qtpositioning
url = ../qtpositioning.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtsensors"]
depends = qtbase
recommends = qtdeclarative
path = qtsensors
url = ../qtsensors.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtconnectivity"]
depends = qtbase
recommends = qtdeclarative
path = qtconnectivity
url = ../qtconnectivity.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtwayland"]
depends = qtbase
recommends = qtdeclarative
path = qtwayland
url = ../qtwayland.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qt3d"]
depends = qtbase
recommends = qtdeclarative qtshadertools qtmultimedia
path = qt3d
url = ../qt3d.git
branch = 6.12
branch = 6.12.0
status = deprecated
[submodule "qtimageformats"]
depends = qtbase
path = qtimageformats
url = ../qtimageformats.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtserialbus"]
depends = qtbase
recommends = qtserialport
path = qtserialbus
url = ../qtserialbus.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtserialport"]
depends = qtbase
path = qtserialport
url = ../qtserialport.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtwebsockets"]
depends = qtbase
recommends = qtdeclarative
path = qtwebsockets
url = ../qtwebsockets.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtwebchannel"]
depends = qtbase
recommends = qtdeclarative qtwebsockets
path = qtwebchannel
url = ../qtwebchannel.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtwebengine"]
depends = qtdeclarative
recommends = qtwebchannel qttools qtpositioning
path = qtwebengine
url = ../qtwebengine.git
branch = 6.12
status = addon
priority = 10
[submodule "qtwebview"]
depends = qtdeclarative
recommends = qtwebengine
path = qtwebview
url = ../qtwebview.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtcharts"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtcharts
url = ../qtcharts.git
branch = 6.12
branch = 6.12.0
status = deprecated
[submodule "qtdatavis3d"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtdatavis3d
url = ../qtdatavis3d.git
branch = 6.12
branch = 6.12.0
status = deprecated
[submodule "qtvirtualkeyboard"]
depends = qtbase qtdeclarative qtsvg
recommends = qtmultimedia
path = qtvirtualkeyboard
url = ../qtvirtualkeyboard.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtscxml"]
depends = qtbase qtdeclarative
path = qtscxml
url = ../qtscxml.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtspeech"]
depends = qtbase qtmultimedia
recommends = qtdeclarative
path = qtspeech
url = ../qtspeech.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtnetworkauth"]
depends = qtbase
path = qtnetworkauth
url = ../qtnetworkauth.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtremoteobjects"]
depends = qtbase
recommends = qtdeclarative
path = qtremoteobjects
url = ../qtremoteobjects.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtlottie"]
depends = qtbase qtdeclarative qtquicktimeline
path = qtlottie
url = ../qtlottie.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtquicktimeline"]
depends = qtbase qtdeclarative
path = qtquicktimeline
url = ../qtquicktimeline
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtquick3d"]
depends = qtbase qtdeclarative qtshadertools
recommends = qtquicktimeline
path = qtquick3d
url = ../qtquick3d.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtshadertools"]
depends = qtbase
path = qtshadertools
url = ../qtshadertools.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qt5compat"]
depends = qtbase qtdeclarative
path = qt5compat
url = ../qt5compat.git
branch = 6.12
branch = 6.12.0
status = deprecated
[submodule "qtcoap"]
depends = qtbase
path = qtcoap
url = ../qtcoap.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtmqtt"]
depends = qtbase qtdeclarative
recommends = qtwebsockets
path = qtmqtt
url = ../qtmqtt.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtopcua"]
depends = qtbase qtdeclarative
path = qtopcua
url = ../qtopcua.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtlanguageserver"]
depends = qtbase
path = qtlanguageserver
url = ../qtlanguageserver.git
branch = 6.12
branch = 6.12.0
status = preview
[submodule "qthttpserver"]
depends = qtbase
recommends = qtwebsockets
path = qthttpserver
url = ../qthttpserver.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtquick3dphysics"]
depends = qtbase qtdeclarative qtquick3d qtshadertools
path = qtquick3dphysics
url = ../qtquick3dphysics.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtgrpc"]
depends = qtbase
recommends = qtdeclarative
path = qtgrpc
url = ../qtgrpc.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtquickeffectmaker"]
depends = qtbase qtdeclarative qtshadertools
recommends = qtquick3d
path = qtquickeffectmaker
url = ../qtquickeffectmaker.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qtgraphs"]
depends = qtbase qtdeclarative qtquick3d
path = qtgraphs
url = ../qtgraphs.git
branch = 6.12
branch = 6.12.0
status = addon
[submodule "qttasktree"]
depends = qtbase
path = qttasktree
url = ../qttasktree.git
branch = 6.12
branch = 6.12.0
status = preview
[submodule "qtopenapi"]
depends = qtbase
recommends = qtdeclarative
path = qtopenapi
url = ../qtopenapi.git
branch = 6.12
branch = 6.12.0
status = preview
[submodule "qtcanvaspainter"]
depends = qtbase qtdeclarative qtshadertools
path = qtcanvaspainter
url = ../qtcanvaspainter.git
branch = 6.12
branch = 6.12.0
status = addon
+30
View File
@@ -0,0 +1,30 @@
# Changelog
This repository does not keep a changelog of its own. Qt is released as a set
of modules, and the change information for a release is published with that
release rather than tracked here.
## Where to look
**Cumulative release notes** are published in
[qt/qtreleasenotes](https://code.qt.io/cgit/qt/qtreleasenotes.git/tree/qt).
**What changed in a Qt version.** Each minor release has a "What's New" page in
the Qt documentation. It lists new modules, new and deprecated APIs, and the
notable changes per module.
See [What's New in Qt 6](https://doc.qt.io/qt-6/whatsnewqt6.html).
**Release phases and schedule.** Each release has a wiki page with the
release plan. See [Qt Releasing Wiki](https://wiki.qt.io/QtReleasing).
**Moving between major versions.** The
[Porting to Qt 6](https://doc.qt.io/qt-6/portingguide.html) guide covers the
changes that affect existing code.
## Qt 4 and Qt 5 changelogs
Most module repositories feature a `dist` directory holding `changes-*` files.
These are no longer maintained. They stop at `changes-6.0.0` and are kept only
as a historical record of Qt 4 and Qt 5 releases. Do not add to them, and do
not treat them as a current source of change information for Qt 6. Use the
sources above instead.
+23
View File
@@ -0,0 +1,23 @@
# Code of conduct
The Qt Community Code of Conduct applies to everyone who takes part in the Qt
Project. It covers any forum, mailing list, wiki, website, IRC channel, public
meeting, or private correspondence in the context of the project and its
services.
[QUIP 12](https://contribute.qt-project.org/quips/12) is the Code of Conduct
itself and is the authoritative text. It asks participants to be considerate,
respectful, collaborative, pragmatic, and supportive of one another, and it
explains what each of those means in practice.
## If something goes wrong
QUIP 12 describes how the community handles problems. In short: offer personal
support to anyone who is being attacked, and remind those involved of the Code
of Conduct. Moderators of a mailing list, channel, or forum can suspend access
for anyone who persistently breaks it, so raise the matter with them when it
needs to go further. Where a disagreement is technical, ask the community for
advice or request mediation rather than escalating it into a public dispute.
Read [QUIP 12](https://contribute.qt-project.org/quips/12) in full for the
complete guidance.
+29
View File
@@ -0,0 +1,29 @@
# Governance
The Qt Project is a meritocratic, consensus-based community. Anyone with an
interest in Qt can join it, take part in its decision-making, and contribute to
Qt's development.
[QUIP 2](https://contribute.qt-project.org/quips/2) is the Qt Governance Model
and is the authoritative text. It describes five levels of involvement and how
people move between them:
* **Users** — community members who use Qt. They report bugs, help other
users, and advocate for the project.
* **Contributors** — community members who provide input to the project, by
proposing changes in Gerrit, reviewing, writing documentation, or testing.
There is no selection process.
* **Approvers** — contributors who have shown a sustained commitment to the
project and who can approve changes for inclusion.
* **Maintainers** — approvers responsible for a specific area of Qt, who
decide what happens in the code they maintain.
* **Chief Maintainer** — leads the maintainer group, sets the overall
direction of the project, and has the final say when the project fails to
reach consensus.
The current maintainers are listed at
[wiki.qt.io/Maintainers](https://wiki.qt.io/Maintainers).
For the processes that sit alongside this model — the branch policy, the
security policy, the code of conduct, and the rest — see
[contribute.qt-project.org](https://contribute.qt-project.org/).
+69
View File
@@ -0,0 +1,69 @@
Qt licensing
============
Qt is not distributed under a single license, and this file is not a license
text. Qt is available under commercial terms and under several open source
licenses, and which terms apply depends on the module and the file.
The open source licenses in use across the Qt repositories include LGPL-3.0,
GPL-2.0, and GPL-3.0 for module implementations, GFDL-1.3 for documentation,
and BSD-3-Clause for build system files, examples, and tooling. Third-party
code bundled inside a module carries its own terms.
How licensing is declared
-------------------------
Licensing is declared per file, following the
[REUSE version 3.3 specification](https://reuse.software/spec-3.3/). Every file
carries an SPDX-License-Identifier header, or is covered by an adjacent
REUSE.toml file where an inline header is not possible. The full text of every
license referenced this way is in the LICENSES directory of the repository it
applies to.
Those SPDX headers and the LICENSES directory are the authoritative,
machine-readable record for the Qt sources. They are what the REUSE tool and
Qt's software bill of materials pipeline read when generating the SBOM for the
sources; they do not describe the licensing of Qt binaries.
Finding the terms for a module
------------------------------
Each Qt module carries its own licensing, and the terms are stated in the
"Licenses and Attributions" section of that module's documentation overview
page. For example, see:
https://doc.qt.io/qt-6/qtcore-index.html
That section also lists the third-party code the module includes and the
license of each such component.
License of built modules and tools
----------------------------------
When building Qt, you can build SBOM documents alongside (`-sbom` argument for
`configure`). You can use the generated SBOM artifacts to query copyrights and
licenses for built modules, and tools. For more details, see
[Software Bill of Materials](https://doc.qt.io/qt-6/sbom.html}.
Further information
-------------------
Qt licensing overview
https://doc.qt.io/qt-6/licensing.html
Licenses used in Qt
https://doc.qt.io/qt-6/licenses-used-in-qt.html
All Qt modules
https://doc.qt.io/qt-6/qtmodules.html
Commercial licensing
https://www.qt.io/licensing/
Open source licensing and its obligations
https://www.qt.io/download-open-source
Qt educational license
https://www.qt.io/qt-educational-license
-57
View File
@@ -1,57 +0,0 @@
OBTAINING QT 6 FROM GIT
=======================
Synopsis
========
For a more in-depth description on how to build Qt 6 from git,
please see: http://wiki.qt.io/Building_Qt_6_from_Git
Note that, although the git module is called qt5.git, the dev and 6.x branches
do contain Qt 6!
Get The Submodules
==================
Cloning qt5.git does not automatically clone all submodules.
To get the submodules, it is recommended to use the `init-repository' script.
./init-repository
See `./init-repository -help' for full documentation on the many supported
options.
Update The Submodules (optional)
================================
After a plain `git clone' and `init-repository', you will have each submodule
checked out to a particular SHA1. This combination of SHA1s is guaranteed to
have passed some basic acceptance testing.
If (and only if!) you need newer versions of some submodules, you can manually
fetch and/or pull and/or reset any modules you like, or use the qt5_tool to
pull all modules:
./qtrepotools/bin/qt5_tool -p
NOTE! As soon as you change the SHA1 of any submodule, you are using a
combination of modules which is potentially untested and broken! If you want
something which is more likely to compile, stick to the module SHA1s provided
in this repository.
Install The Git Grafts (optional)
=================================
If you want to be able to connect the Qt5 and Qt4 development history, you
may set up git grafts with the following command:
git submodule foreach '../qtrepotools/bin/git-qt-grafts <path_to_history>'
Developing and Contributing to Qt
=================================
For more information on how to develop and contribute to Qt, please see:
http://wiki.qt.io/Category:Developing_Qt
+57 -104
View File
@@ -1,127 +1,80 @@
HOW TO BUILD Qt 6
=================
# Qt 6
This repository, `qt5.git`, is the Qt super-repository. It records a git
submodule pointer to each Qt module repository, such as `qtbase` and
`qtdeclarative`, along with the build system, the `configure` scripts, and the
continuous integration configuration that build those modules as a single tree.
Synopsis
========
Each submodule points at a specific revision. The combination of revisions that
a branch records is a snapshot that has passed Qt's continuous integration.
Clone this repository first and let it select the module revisions for you. If
you move a submodule to a different revision, you are building a combination
that nobody has tested.
System requirements
-------------------
> Despite the name `qt5.git`, the `dev` and `6.x` branches contain Qt 6.
* C++ compiler supporting the C++17 standard
* CMake
* Ninja
* Python 3
To use Qt rather than build it from sources, see
[Get and Install Qt](https://doc.qt.io/qt-6/get-and-install-qt.html).
For more details, see also https://doc.qt.io/qt-6/build-sources.html
## Repository layout
Linux, Mac:
-----------
Each Qt module lives in its own directory, such as `qtbase` or
`qtdeclarative`. Those directories are git submodules.
```
cd <path>/<source_package>
./configure -prefix $PWD/qtbase
cmake --build .
```
The other top-level entries are:
Windows:
--------
| Entry | Purpose |
| ----- | ------- |
|`.gitmodules`| Lists modules for the current branch.|
| `CMakeLists.txt` | Entry point for the top-level build of all modules. |
| `configure`, `configure.bat` | Wrappers that configure that build. |
| `init-repository` | Checks out the submodules. Git clones only. |
| `cmake/` | CMake modules shared by the top-level build. |
| `coin/` | Continuous integration configuration and provisioning. |
| `LICENSES/`, `REUSE.toml` | License texts and per-file licensing metadata. |
1. Open a command prompt.
2. Ensure that the following tools can be found in the path:
* Supported compiler (Visual Studio 2022 or later, or MinGW-builds gcc 13.1 or later)
* Python 3 ([https://www.python.org/downloads/windows/] or from Microsoft Store)
## Get the sources
```
cd <path>\<source_package>
configure -prefix %CD%\qtbase
cmake --build .
```
For instructions, see [Getting Qt Sources from the Git repository](https://doc.qt.io/qt-6/getting-sources-from-git.html).
More details follow.
## Build Qt
For instructions, see [Build from sources](https://doc.qt.io/qt-6/build-sources.html).
Build!
======
## Documentation
Qt is built with CMake, and a typical
`configure && cmake --build .` build process is used.
The [Qt 6 documentation](https://doc.qt.io/qt-6/index.html) covers the
framework itself.
If Ninja is installed, it is automatically chosen as CMake generator.
## Report an issue
Some relevant configure options (see configure -help):
Report bugs at [bugreports.qt.io](https://bugreports.qt.io/), following
[these steps](https://doc.qt.io/qt-6/bughowto.html).
* `-release` Compile and link Qt with debugging turned off.
* `-debug` Compile and link Qt with debugging turned on.
## Security
Example for a release build:
To report a security vulnerability in Qt, and to read what the Qt Project
commits to in response, see [SECURITY.md](SECURITY.md).
```
./configure -prefix $PWD/qtbase
cmake --build .
```
## Contribute to Qt
Example for a developer build:
(enables more autotests, builds debug version of libraries, ...)
The Qt Project does not accept pull requests on GitHub. Every contribution goes
through [Gerrit](https://codereview.qt-project.org), so read
[how to contribute](CONTRIBUTING.md) before you push a change. All
participation in the project is subject to our
[code of conduct](CODE_OF_CONDUCT.md). To learn who decides what, and how
someone becomes an approver or a maintainer, see
[how the project is governed](GOVERNANCE.md).
Development discussions happens in the open on the
[Qt Project mailing lists](https://lists.qt-project.org/).
```
./configure -developer-build
cmake --build .
```
## License
See output of `./configure -help` for documentation on various options to
configure.
Qt is available under both commercial and open source licenses, and the terms
depend on the module you use. [LICENSE](LICENSE) explains how licensing is
declared across the Qt repositories and where to find the terms that apply to
a given module.
The above examples will build whatever Qt modules have been enabled
by default in the build system.
It is possible to build selected repositories with their dependencies by doing
a `ninja <repo-name>/all`. For example, to build only qtdeclarative,
and the modules it depends on:
```
./configure
ninja qtdeclarative/all
```
This can save a lot of time if you are only interested in a subset of Qt.
Hints
=====
The submodule repository `qtrepotools` contains useful scripts for
developers and release engineers. Consider adding qtrepotools/bin
to your `PATH` environment variable to access them.
Building Qt from git
====================
See http://wiki.qt.io/Building_Qt_6_from_Git and [README.git](README.git)
for more information.
See http://wiki.qt.io/Qt_6 for the reference platforms.
Documentation
=============
After configuring and compiling Qt, building the documentation is possible by running
```
cmake --build . --target docs
```
After having built the documentation, you need to install it with the following
command:
```
cmake --build . --target install_docs
```
The documentation is installed in the path specified with the
configure argument `-docdir`.
Information about Qt's documentation is located in qtbase/doc/README
Note: Building the documentation is only tested on desktop platforms.
For the full picture, see the
[Qt licensing overview](https://doc.qt.io/qt-6/licensing.html) and
[qt.io/licensing](https://www.qt.io/licensing/).
+3 -3
View File
@@ -34,6 +34,6 @@ We welcome contributions to Qt! If you'd like to contribute, read the
Qt is available under various licenses. For details, check out the
[license documentation](https://doc.qt.io/qt-6/licensing.html).
*Note that this README.md.template serves as a guideline for README.md files,
and that further sections can be added to individual README.md files if
necessary.*
*Note that this README.md.template serves as a guideline for the README.md
files of Qt module repositories, and that further sections can be added to
individual README.md files if necessary.*
+3 -1
View File
@@ -26,7 +26,9 @@ SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
SPDX-License-Identifier = "BSD-3-Clause"
[[annotations]]
path = ["**README*", "CONTRIBUTING.md", ".commit-template", ".github/pull_request_template.md"]
path = ["**README*", "CONTRIBUTING.md", "CODE_OF_CONDUCT.md", "GOVERNANCE.md",
"SECURITY.md", "CHANGELOG.md", "LICENSE",
".commit-template", ".github/pull_request_template.md"]
comment = "documentation"
precedence = "closest"
SPDX-FileCopyrightText = "Copyright (C) 2024 The Qt Company Ltd."
+42
View File
@@ -0,0 +1,42 @@
# Security policy
## Reporting a vulnerability
Report suspected security vulnerabilities in Qt by email to
<security@qt-project.org>. Do not report them in the public bug tracker at
bugreports.qt.io.
If you hold a commercial license, you can instead report the issue to the Qt
Company support team through the support portal, using the "Security Issues"
category.
## The policy
[QUIP 15](https://contribute.qt-project.org/quips/15) is the Qt Project
Security Policy. It is the authoritative source for how the project handles
security issues, and it covers:
* How reports are received, acknowledged, and triaged, and in what time frame.
* Who is responsible for addressing an issue, and how it is escalated.
* How issues are disclosed, including CVE handling and notification of
packagers.
* Which versions of Qt fixes are guaranteed for.
Security announcements are published to the
[announce mailing list](https://lists.qt-project.org/listinfo/announce).
Qt customers with a commercial license now have the opportunity to subscribe to
the Qt Early Warning List in the [Customer Portal](https://account.qt.io/). The
EWL subscription requires an active
[Commercial Qt license](https://www.qt.io/development/qt-framework/commercial-qt).
## Related material
* [Security in Qt](https://doc.qt.io/qt-6/security.html) — what Qt does and
does not protect against, and how to use Qt securely.
* [QUIP 23](https://contribute.qt-project.org/quips/23) — the `Qt-Security`
header that marks how security-relevant a source file is.
* [QUIP 16](https://contribute.qt-project.org/quips/16) — the branch policy,
which governs which branches accept which changes.
* [Responsible Vulnerability Disclosure Agreement](https://www.qt.io/terms-conditions/responsible-vulnerability-disclosure-process) -
Terms and Conditions of Responsible Vulnerability Disclosure Process at Qt Group.
+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
+34 -6
View File
@@ -269,7 +269,7 @@ Configurations:
Compiler: 'MSVC2022'
Target arch: 'arm64'
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Platform dependency: 'windows-11_24h2-mingw13'
Platform dependency: 'windows-11_24h2-mingw15'
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
@@ -290,7 +290,7 @@ Configurations:
Compiler: 'MSVC2026'
Target arch: 'arm64'
Features: ['Sccache', 'DoNotRunTests', 'TargetBuildOnly', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Platform dependency: 'windows-11_24h2-mingw13'
Platform dependency: 'windows-11_24h2-mingw15'
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
@@ -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',
]
-
@@ -392,7 +420,7 @@ Configurations:
'TARGET_CONFIGURE_ARGS=-developer-build -no-warnings-are-errors -nomake examples -nomake tests -platform macx-visionos-clang',
]
-
Id: 'windows-11_24h2-mingw13'
Id: 'windows-11_24h2-mingw15'
Template: 'qtci-windows-11_24H2-x86_64-73'
Compiler: 'Mingw'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
@@ -418,7 +446,7 @@ Configurations:
'Protobuf_ROOT={{.Env.Protobuf_ROOT_llvm_mingw}}',
]
-
Id: 'windows-11_24H2-mingw13-developer-build'
Id: 'windows-11_24H2-mingw15-developer-build'
Template: 'qtci-windows-11_24H2-x86_64-73'
Compiler: 'Mingw'
Features: ['Sccache', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
@@ -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',
@@ -10,7 +10,7 @@ Configurations:
Platform dependency: 'macos-universal-on-arm64'
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis arm64-v8a',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH=/usr/local -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}'
@@ -22,11 +22,11 @@ Configurations:
Target arch: 'armv7'
Compiler: 'Mingw'
Target compiler: 'Clang'
Platform dependency: 'windows-11_24h2-mingw13'
Platform dependency: 'windows-11_24h2-mingw15'
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis armeabi-v7a -no-feature-pkg-config',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DQT_ADDITIONAL_HOST_PACKAGES_PREFIX_PATH={{.Env.Protobuf_ROOT_mingw}} -DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_ARMV7_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR={{.Env.Protobuf_ROOT_msvc}}/include',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}'
@@ -41,7 +41,7 @@ Configurations:
Platform dependency: 'rhel-9.6'
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
# We check QT_USE_TARGET_ANDROID_BUILD_DIR only in one configuration, to ensure builds
@@ -60,12 +60,12 @@ Configurations:
Platform dependency: 'rhel-9.6'
Features: ['Packaging', 'Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_ANDROID_GRADLE_MULTI_MODULE only in one
# configuration, to ensure builds without this option work too.
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_ANDROID_GRADLE_MULTI_MODULE=ON',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
'ANDROID_EMULATOR=emulator_x86_64_api_36'
]
@@ -79,12 +79,12 @@ Configurations:
Platform dependency: 'rhel-9.6'
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'JavaDocs', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -qpa android;offscreen -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_ANDROID_GRADLE_MULTI_MODULE only in one
# configuration, to ensure builds without this option work too.
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_USE_ANDROID_MODERN_BUNDLE=ON',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_USE_TARGET_ANDROID_BUILD_DIR=ON -DQT_ANDROID_GRADLE_MULTI_MODULE=ON',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
'ANDROID_EMULATOR=emulator_x86_64_api_37'
]
@@ -32,3 +32,19 @@ Configurations:
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
]
-
Id: 'harmonyos-23-arm64-on-macos'
Template: 'qtci-macos-26-arm-105'
Target os: 'HarmonyOS_ANY'
Target arch: 'arm64'
Compiler: 'Clang'
Target compiler: 'Clang'
Platform dependency: 'macos-universal-on-arm64'
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'StandaloneExamples']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-developer-build -debug -make examples -no-dbus -no-use-gold-linker -no-pch -openssl-runtime',
'TARGET_CMAKE_ARGS=-DOHOS_SDK_ROOT={{.Env.HARMONYOS_SDK_ROOT}} -DOHOS_ARCH=arm64-v8a -DWARNINGS_ARE_ERRORS=OFF -DQT_QMAKE_TARGET_MKSPEC=ohos-clang -DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DCMAKE_FIND_ROOT_PATH={{.Env.VCPKG_OHOS_INSTALLED}}',
'QT_HARMONYOS_HVIGOR=/opt/harmonyos/command-line-tools/bin/hvigorw'
]
@@ -19,7 +19,7 @@ Configurations:
Target os: 'WebAssembly'
Compiler: 'Mingw'
Target compiler: 'Clang'
Platform dependency: 'windows-11_24h2-mingw13'
Platform dependency: 'windows-11_24h2-mingw15'
Features: ['Packaging','DisableTests', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Environment variables: [
'Path={{.Env.EMSDK_PATH}};{{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
@@ -2,7 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml: [
'rhel-9.6',
'windows-11_24h2-mingw13'
'windows-11_24h2-mingw15'
],
cmake_platforms_target_android.yaml: [
'android-15-x86_64-on-linux',
@@ -2,7 +2,7 @@ Version: 2
Include: [
cmake_platforms.yaml: [
'rhel-9.6',
'windows-11_24h2-mingw13'
'windows-11_24h2-mingw15'
],
cmake_platforms_target_android.yaml: [
'android-15-x86_64-on-linux',
@@ -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,7 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml: [
'windows-11_24h2-mingw13'
'windows-11_24h2-mingw15'
]
]
Configurations:
@@ -12,7 +12,7 @@ Configurations:
Target arch: 'arm64'
Compiler: 'Mingw'
Target compiler: 'QCC'
Platform dependency: 'windows-11_24h2-mingw13'
Platform dependency: 'windows-11_24h2-mingw15'
Features: ['DisableTests', 'UseConfigure']
Environment variables: [
'Path={{.Env.MINGW_PATH}}\bin;{{.Env.Path}}',
+2 -2
View File
@@ -3,7 +3,7 @@ Configurations: []
Include: [
cmake_platforms.yaml: [
'windows-11_24H2-msvc2022-developer-build',
'windows-11_24H2-mingw13-developer-build',
'windows-11_24H2-mingw15-developer-build',
'windows-11_24H2-llvm'
]
]
@@ -13,7 +13,7 @@ Overrides:
Id: 'windows-11_24H2-msvc2022-developer-build'
Configure arguments: '-qtnamespace TestNamespace -debug-and-release -force-asserts -make examples -developer-build -force-debug-info -qt-zlib -c++std c++20'
-
Id: 'windows-11_24H2-mingw13-developer-build'
Id: 'windows-11_24H2-mingw15-developer-build'
Configure arguments: '-qtnamespace TestNamespace -developer-build -release -force-asserts -force-debug-info -separate-debug-info -make examples'
-
Id: 'windows-11_24H2-llvm'
+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: [
@@ -11,8 +11,8 @@ Include: [
"sles-15_sp6-static",
"windows-10_22h2-msvc2022",
"rhel-9.6",
"windows-11_24h2-mingw13",
"windows-11_24H2-mingw13-developer-build",
"windows-11_24h2-mingw15",
"windows-11_24H2-mingw15-developer-build",
"windows-11_24H2-llvm",
"windows-11_24H2-msvc2022",
"windows-11_23h2-arm64-msvc2022"
@@ -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',
+2 -2
View File
@@ -13,8 +13,8 @@ Include: [
"sles-15_sp6-static",
"windows-10_22h2-msvc2022",
"rhel-9.6",
"windows-11_24h2-mingw13",
"windows-11_24H2-mingw13-developer-build",
"windows-11_24h2-mingw15",
"windows-11_24H2-mingw15-developer-build",
"windows-11_24H2-llvm",
"windows-11_24H2-msvc2022",
"windows-11_23h2-arm64-msvc2022"
+2 -1
View File
@@ -1,6 +1,7 @@
Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml
address_sanitizer_platforms.yaml,
offline_documentation.yaml
]
Configurations: []
@@ -0,0 +1,9 @@
Version: 2
Include: [
cmake_platforms.yaml: [
'rhel-9.6',
'ubuntu-24.04-arm64',
'ubuntu-24.04-x64-developer-build'
]
]
Configurations: []
@@ -3,7 +3,7 @@ Include: [
cmake_platforms.yaml: [
"documentation-warnings",
"rhel-9.6",
'windows-11_24h2-mingw13',
'windows-11_24h2-mingw15',
],
macos.yaml: [
'macos-universal-on-arm64'
@@ -0,0 +1,25 @@
Version: 2
Include: [
cmake_platforms.yaml: [
'ubuntu-22.04',
'ubuntu-22.04-x11-tests',
'ubuntu-24.04-x64',
'ubuntu-24.04-x64-x11-tests',
'rhel-9.6',
'rhel-10.0',
'windows-11_24H2-msvc2022',
'windows-11_24H2-msvc2026',
'windows-11_24h2-mingw15',
'windows-11_24H2-llvm'
],
macos.yaml: [
'macos-universal-on-arm64',
'macos-14-x86_64-tests',
'macos-15-x86_64-tests',
'macos-26-x86_64-tests',
'macos-14-arm64-tests',
'macos-15-arm64-tests',
'macos-26-arm64-tests'
]
]
Configurations: []
+37
View File
@@ -0,0 +1,37 @@
Version: 2
Include: [
cmake_platforms.yaml: [
'ubuntu-22.04',
'ubuntu-24.04-x64',
'ubuntu-24.04-arm64',
'jammy-arm64-debian-pkg-packaging',
'jammy-amd64-debian-pkg-packaging'
],
cmake_platforms_qemu.yaml: [
'qemu-arm64-developer-build'
]
]
Configurations: []
Overrides:
# Set pch off due to stale pch file causing false positive sccache hit
-
Id: 'ubuntu-22.04'
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE']
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DINPUT_headersclean=ON -DQT_DEPLOY_FFMPEG=TRUE -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
-
Id: 'ubuntu-24.04-x64'
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON']
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
-
Id: 'ubuntu-24.04-arm64'
-Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt']
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DINPUT_tiff=qt -DINPUT_webp=qt -DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
-
Id: 'jammy-arm64-debian-pkg-packaging'
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
-
Id: 'jammy-amd64-debian-pkg-packaging'
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
-
Id: 'qemu-arm64-developer-build'
+Environment variables: ['NON_QTBASE_CMAKE_ARGS=-DQT_FEATURE_gstreamer_qt_api=ON -DBUILD_WITH_PCH=OFF']
+13 -3
View File
@@ -5,11 +5,21 @@ Include: [
'ubuntu-22.04-x11-tests',
'ubuntu-24.04-x64',
'ubuntu-24.04-x64-x11-tests',
'windows-11_24H2-msvc2022'
'rhel-9.6',
'rhel-10.0',
'windows-11_24H2-msvc2022',
'windows-11_24H2-msvc2026',
'windows-11_24h2-mingw15',
'windows-11_24H2-llvm'
],
macos.yaml: [
'macos-arm64-developer-build',
'macos-14-arm64-developer-build-tests'
'macos-universal-on-arm64',
'macos-14-x86_64-tests',
'macos-15-x86_64-tests',
'macos-26-x86_64-tests',
'macos-14-arm64-tests',
'macos-15-arm64-tests',
'macos-26-arm64-tests'
]
]
Configurations: []
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
toolsVersion="19.0"
toolsFile="commandlinetools-linux-13114758_latest.zip"
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
sdkBuildToolsVersion="36.0.0"
sdkApiLevel="android-36"
sdkBuildToolsVersion="37.0.0"
sdkApiLevel="android-37.0"
toolsSha1="5fdcc763663eefb86a5b8879697aa6088b041e70"
ndkVersionLatest="r27c"
+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"
@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# 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 -e
OS_STATE_DIR="/var/lib/qtciid"
OS_STATE_FILE="$OS_STATE_DIR/os-version"
get_os_id() {
if [[ -r /etc/os-release ]]; then
# shellcheck disable=SC1091
. /etc/os-release
# os-release contains ID of the distro (e.g. 'ubuntu')
# VERSION e.g. '24.04.1 LTS (Noble Numbat)'
if [[ -n "${ID:-}" && -n "${VERSION:-}" ]]; then
echo "${ID}:${VERSION}"
return 0
fi
fi
echo "unknown:unknown"
return 1
}
record_os_version() {
local os_id
os_id="$(get_os_id)"
if [[ "$os_id" == "unknown:unknown" ]]; then
echo "ERROR: Unable to determine OS version"
exit 1
fi
sudo mkdir -p "$OS_STATE_DIR"
echo "$os_id" | sudo tee "$OS_STATE_FILE" > /dev/null
echo "OS version: $os_id"
}
verify_os_version_unchanged() {
if [[ ! -f "$OS_STATE_FILE" ]]; then
echo "ERROR: OS version state file missing: $OS_STATE_FILE"
exit 1
fi
local start_version current_version
start_version="$(cat "$OS_STATE_FILE")"
current_version="$(get_os_id)"
if [[ "$current_version" == "unknown:unknown" ]]; then
echo "ERROR: Unable to determine current OS version"
exit 1
fi
if [[ "$start_version" != "$current_version" ]]; then
echo "ERROR: OS version changed during provisioning!"
echo " Start version : $start_version"
echo " End version : $current_version"
exit 1
fi
echo "OS version unchanged ($current_version)"
}
@@ -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"
@@ -17,8 +17,8 @@ APPNAME="CiNetworkTest"
EXECPATH="${ROOT}/${APPNAME}/bin"
EXEC="${EXECPATH}/${APPNAME}"
URL="https://ci-files01-hki.ci.qt.io/input/networktestapp"
TARBALL="CiNetworkTest-rhel-linux-x86_64-v1.1.tgz"
sha256="3a23593f163ca2452546d20d56cabc81fed03c930d6d96334a22827da5a6840a"
TARBALL="CiNetworkTest-rhel-linux-x86_64-v1.2.tgz"
sha256="2be05baebf48ff29ebcd06a0761b2a3d92ae5a66f78d0cd953513d8271eb7f83"
SOURCE="$URL/$TARBALL"
InstallFromCompressedFileFromURL "$SOURCE" "" "$sha256" "$ROOT" "$PREFIX"
+10 -2
View File
@@ -43,11 +43,19 @@ 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"
# IANA timezone database overlay. Packaged separately from the SDP so it can be
# bumped without rebuilding the SDP tarball. Archive root is usr/ so the same
# archive suits both the 7.1 and 8.0 SDP layouts.
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a-usr.tar.xz"
targetFile="zoneinfo.tar.xz"
sha1="02deef2df3513d191ee3bb3a13fd61a814d7161a"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetPath/target/qnx7"
sudo cp "$aarch64le_toolchain" "$targetPath"
sudo cp "$armv7le_toolchain" "$targetPath"
sudo cp "$x8664_toolchain" "$targetPath"
+5 -5
View File
@@ -49,12 +49,12 @@ sha1="a3fdcd98e12bc5054d00f18e4088af26288fd020"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
# IANA timezone database overlay. Packaged separately from the SDP so it can be
# bumped without rebuilding the SDP tarball. Archive root is qnx800/target/qnx/
# so it overlays onto $targetFolder (/opt/) directly.
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a.tar.xz"
# bumped without rebuilding the SDP tarball. Archive root is usr/ so the same
# archive suits both the 7.1 and 8.0 SDP layouts.
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/zoneinfo-2026a-usr.tar.xz"
targetFile="zoneinfo.tar.xz"
sha1="8c1678ff673bb588f63fc9277497cd38e0ea2253"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
sha1="02deef2df3513d191ee3bb3a13fd61a814d7161a"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetPath/target/qnx"
sudo cp "$aarch64le_toolchain" "$targetPath"
sudo cp "$armv7le_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
@@ -53,6 +53,11 @@ xbin/fsevmgr=sbin/fsevmgr
##############################################
lib/libscreen.so.1=usr/lib/libscreen.so.1
##############################################
### Audio support
##############################################
lib/libasound.so.5=lib/libasound.so.5
# for fontconfig
lib/libfontconfig.so.17=usr/lib/libfontconfig.so.17
xbin/fc-cache=bin/fc-cache
+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" "[email protected]"
# IMX 6
VXWORKS_BUILD_VER="16-04-2025"
VXWORKS_BUILD_VER="20-08-2026"
######### 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="cb40acde7227aaefe8397e3472318fe09af2d9d0"
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="4209a8c2724fccfec9d30a22e53ca6598ef83b57"
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="20c1c31fc8ddc5356566a717a913e51bef42d41f"
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="dae9280a45f0ece5a2adc3bc6182ff0b675f4389"
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="264b3280e6fa89c8c8a2b1cdc8cb29bd3f1bb621"
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,160 @@
# 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)"
# Persist the sysctl settings so they survive the reboot between the build
# and test phases, then apply them to the running kernel as well.
SYSCTL_CONF="/etc/sysctl.d/90-vxworks-qemu.conf"
if [ ! -f "$SYSCTL_CONF" ]; then
sudo tee "$SYSCTL_CONF" >/dev/null <<'EOF'
# VxWorks QEMU network settings (added by vxworks_qemu_launcher.sh)
net.core.rmem_max=8388608
net.core.rmem_default=8388608
net.core.wmem_max=8388608
net.core.wmem_default=8388608
net.ipv4.ipfrag_high_thresh=16777216
net.ipv4.ipfrag_low_thresh=12582912
EOF
fi
sudo sysctl -q -p "$SYSCTL_CONF"
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 'threads=32\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,async,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,async,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,async,root_squash,no_subtree_check,anonuid=2001,anongid=100)' >> /etc/exports"
# Restart NFS server
sudo exportfs -ra
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 3G \
-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 15G \
-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
QEMU_PID=$!
for _ in $(seq 30)
# The launcher is also re-invoked from inside the ctest environment when
# coin_vxworks_qemu_runner.sh restarts a wedged emulator. That environment
# carries a library path with the provisioned OpenSSL, which the system ssh
# (linked against the distro OpenSSL) refuses to load ("OpenSSL version
# mismatch"), so run ssh with a clean library path. Bound each probe with a
# hard timeout as well: ConnectTimeout only limits TCP connect, and a
# half-booted guest that accepts the connection but never answers would
# otherwise stall the loop.
#
# Boot-to-ssh takes seconds on KVM x86 but 15-60s+ on TCG ARM, with a long
# tail when several instances boot in parallel (a fixed 30-try budget killed
# healthy relaunches mid-boot on qemu_armv7), so wait on a wall-clock
# deadline rather than a retry count, and give up early only when the QEMU
# process itself has died.
SSH_WAIT_SECS=${VXWORKS_SSH_WAIT_SECS:-300}
SSH_UP=0
deadline=$((SECONDS + SSH_WAIT_SECS))
while (( SECONDS < deadline ))
do
status=$(ssh -o BatchMode=yes -o HostKeyAlgorithms=+ssh-rsa -o ConnectTimeout=1 "${VXWORKS_SSH}" echo emulator up) || true
if [[ -n "$QEMU_PID" ]] && ! kill -0 "$QEMU_PID" 2>/dev/null; then
echo "QEMU process for instance ${INSTANCE} exited during boot"
break
fi
status=$(env -u LD_LIBRARY_PATH timeout -k 5 15 \
ssh -n -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})"
SSH_UP=1
break
else
echo "Waiting VXWORKS QEMU SSH server"
echo "Waiting VXWORKS QEMU SSH server (instance ${INSTANCE} @ ${GUEST_IP})"
sleep 1
fi
done
# Do not report success for an instance whose SSH server never came up: the
# caller would go on to source the test script on a guest in an unknown
# state. Exit non-zero so the testrunner's restart path can fail the attempt
# and let qt-testrunner retry with a clean slot.
if [[ $SSH_UP -ne 1 ]]; then
echo "VXWORKS QEMU SSH server did not come up (instance ${INSTANCE} @ ${GUEST_IP})"
exit 1
fi
+2 -5
View File
@@ -25,8 +25,8 @@ basePath="http://ci-files01-hki.ci.qt.io/input/android"
toolsVersion="19.0"
toolsFile="commandlinetools-mac-13114758_latest.zip"
toolsBackupUrl="https://dl.google.com/android/repository/$toolsFile"
sdkBuildToolsVersion="35.0.1"
sdkApiLevel="android-35"
sdkBuildToolsVersion="37.0.0"
sdkApiLevel="android-37.0"
toolsSha1="c3e06a1959762e89167d1cbaa988605f6f7c1d24"
ndkVersionLatest="r27c"
@@ -43,9 +43,6 @@ ndkVersionNightly1=$ndkVersionLatest # Set as same version as latest = skip NDK
ndkSha1Nightly1=$ndkSha1Latest
ndkVersionNightly2=$ndkVersionLatest
ndkSha1Nightly2=$ndkSha1Latest
sdkBuildToolsVersion="36.0.0"
# this is compile sdk version
sdkApiLevel="android-36"
toolsTargetFile="/tmp/$toolsFile"
toolsSourceFile="$basePath/$toolsFile"
+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."
+64
View File
@@ -0,0 +1,64 @@
#!/usr/bin/env bash
# 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
# This script install HarmonyOS sdk and patches.
set -e
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/check_and_set_proxy.sh
source "${BASH_SOURCE%/*}/../unix/check_and_set_proxy.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
targetFolder="/opt/harmonyos"
sdkTargetFolder="$targetFolder/command-line-tools"
sudo mkdir -p "$sdkTargetFolder"
basePath="http://ci-files01-hki.ci.qt.io/input/harmonyos"
toolsVersion="6.1.0.860"
toolsFile="commandline-tools-mac-arm64-6.1.0.860.zip"
toolsSha1="4ba9df069fc5c651753c74297d723a2461be12e9"
toolsTargetFile="/tmp/$toolsFile"
toolsSourceFile="$basePath/$toolsFile"
echo "Download and unzip HarmonyOS SDK"
DownloadURL "$toolsSourceFile" "$toolsSourceFile" "$toolsSha1" "$toolsTargetFile"
echo "Unzipping HarmonyOS Tools to '$targetFolder'"
sudo unzip -q "$toolsTargetFile" -d "$targetFolder"
rm "$toolsTargetFile"
patchFile="harmonyos_sdk_patches.zip"
patchSha1="7f912104a5600bc176891bc6e9d97732f4266ad6"
patchTargetFile="/tmp/$patchFile"
patchSourceFile="$basePath/$patchFile"
patchTargetFolder="$targetFolder/harmonyos_sdk_patches"
echo "Download and unzip HarmonyOS SDK patches"
DownloadURL "$patchSourceFile" "$patchSourceFile" "$patchSha1" "$patchTargetFile"
echo "Unzipping HarmonyOS SDK patches to '$targetFolder'"
sudo unzip -q "$patchTargetFile" -d "$targetFolder"
rm "$patchTargetFile"
echo "Changing ownership of HarmonyOS files."
sudo chown -R qt:wheel "$sdkTargetFolder"
sudo chmod -R 755 $sdkTargetFolder
sudo chown -R qt:wheel "$patchTargetFolder"
sudo chmod -R 755 $patchTargetFolder
echo "Patching HarmonyOS SDK"
sdkRootFolder="$sdkTargetFolder/sdk/default/openharmony"
echo "Checking the contents of HarmonyOS SDK..."
ls -l "$sdkRootFolder"
SetEnvVar "HARMONYOS_SDK_ROOT" "$sdkRootFolder"
export HARMONYOS_SDK_ROOT="$sdkRootFolder"
echo "HarmonyOS SDK setup finished"
@@ -102,7 +102,6 @@ build_ffmpeg_ios() {
--extra-ldflags="${common_arch_flags}"
--target-os=darwin
--install-name-dir="@rpath"
--disable-audiotoolbox
# We perform manual stripping after generating dSYMs.
# Make sure to skip it during FFmpeg compilation.
@@ -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"
+1 -1
View File
@@ -34,6 +34,6 @@ SetEnvVar "SBOM_PYTHON_APPS_PATH" "/Library/Frameworks/Python.framework/Versions
SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/Library/Frameworks/Python.framework/Versions/3.11/bin/python3"
# Install Python certificates. Required at least for emsdk installation
open /Applications/Python\ 3.11/Install\ Certificates.command
/Applications/Python\ 3.11/Install\ Certificates.command
echo "python3 = 3.11.9" >> ~/versions.txt
@@ -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
@@ -4,17 +4,21 @@ plugins {
android {
namespace = 'org.qtproject.qt.gradlecache.app'
compileSdk = 36
compileSdk = 37
compileSdkMinor = 0
defaultConfig {
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,18 @@
plugins {
alias(libs.plugins.android.dynamic.feature)
}
android {
namespace = 'org.qtproject.qt.gradlecache.feature'
compileSdk = 37
compileSdkMinor = 0
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
@@ -4,7 +4,8 @@ plugins {
android {
namespace = 'org.qtproject.qt.gradlecache.lib'
compileSdk = 36
compileSdk = 37
compileSdkMinor = 0
defaultConfig {
minSdk = 28
@@ -14,4 +14,4 @@ dependencyResolutionManagement {
}
rootProject.name = 'gradlecache'
include ':app', ':lib'
include ':app', ':lib', ':feature'
@@ -1,7 +1,7 @@
set(VCPKG_ENV_PASSTHROUGH_UNTRACKED OHOS_SDK_ROOT)
set(VCPKG_TARGET_ARCHITECTURE arm64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME OHOS)
set(VCPKG_MAKE_BUILD_TRIPLET "--host=aarch64-unknown-linux-ohos")
set(VCPKG_CMAKE_CONFIGURE_OPTIONS -DOHOS_ARCH=arm64-v8a -DCMAKE_PLATFORM_NO_VERSIONED_SONAME=ON)
@@ -3,8 +3,7 @@
"default-registry": {
"kind": "git",
"repository": "https://git.qt.io/qtbuildsystem/vcpkg",
"reference": "refs/tags/2026.05.05-ohos",
"baseline": "e59d4f2aeeb7f21a7d22b078111223ef71a509f2"
"baseline": "93580fc29654eec8d22804a01d7191284d65f28e"
},
"overlay-triplets": [ "./../triplets" ]
}
@@ -13,7 +13,8 @@
},
{
"name": "protobuf",
"platform": "!osx & !ohos"
"platform": "!osx & !ohos",
"features": [ "libprotoc" ]
},
{
"name": "protobuf",
@@ -1 +1 @@
vcpkg_version=2026.05.05-ohos
vcpkg_version=2026.06.01-qt
@@ -2,25 +2,38 @@
# 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
download_ffmpeg() {
local version="${1:-"n7.1.3"}"
local sha1="${2:-27051817deec88bed3b9652d49f9127d22268d83}"
download_ffmpeg() (
local version="${1:-"9.0.1"}"
local sha1="${2:-89c318905212e6b67e10e42ab10ab8007e0aefda}"
local ffmpeg_name="FFmpeg-$version"
local ffmpeg_name="FFmpeg-n$version"
local target_dir="$HOME"
local ffmpeg_source_dir="$target_dir/$ffmpeg_name"
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_public="https://ffmpeg.org/releases/ffmpeg-$version.tar.gz"
local url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/ffmpeg-$version.tar.gz"
local app_prefix=""
local temp_dir
temp_dir=$(mktemp -d)
trap 'rm -rf "$temp_dir"' EXIT
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$target_dir" "$app_prefix" > /dev/null
InstallFromCompressedFileFromURL "$url_cached" "$url_public" "$sha1" "$temp_dir" "$app_prefix" > /dev/null
local extracted_dirs=("$temp_dir"/*/)
if [ "${#extracted_dirs[@]}" -ne 1 ] || [ ! -d "${extracted_dirs[0]}" ]; then
>&2 echo "Expected exactly one directory in the FFmpeg archive, got: ${extracted_dirs[*]}"
exit 1
fi
mkdir -p "$target_dir"
mv "${extracted_dirs[0]%/}" "$ffmpeg_source_dir"
fi
echo "$ffmpeg_source_dir"
}
)
get_ffmpeg_config_options() {
local build_type="$1"
@@ -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"
+2 -2
View File
@@ -41,8 +41,8 @@ $ndkOfficialUrlNightly2 = "https://dl.google.com/android/repository/android-ndk-
$toolsVersion = "19.0"
$toolsFile = "commandlinetools-win-13114758_latest.zip"
$sdkApi = "ANDROID_API_VERSION"
$sdkApiLevel = "android-36"
$sdkBuildToolsVersion = "36.0.0"
$sdkApiLevel = "android-37.0"
$sdkBuildToolsVersion = "37.0.0"
$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile"
$toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile"
$toolsChecksum = "54a582f3bf73e04253602f2d1c80bd5868aac115"
+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,21 +7,38 @@
# This script will install FFmpeg
$msys = "C:\Utils\msys64\usr\bin\bash"
$version="n7.1.3"
$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"
$ffmpeg_name="FFmpeg-$version"
$version="9.0.1"
$url_public="https://ffmpeg.org/releases/ffmpeg-$version.tar.gz"
$sha1="89c318905212e6b67e10e42ab10ab8007e0aefda"
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/ffmpeg-$version.tar.gz"
$ffmpeg_name="FFmpeg-n$version"
$download_location = "C:\Windows\Temp\$ffmpeg_name.tar.gz"
$unzip_location = "C:\"
$ffmpeg_source_dir = "C:\$ffmpeg_name"
Write-Host "Fetching FFmpeg $version..."
Download $url_public $url_cached $download_location
Verify-Checksum $download_location $sha1
Extract-tar_gz $download_location $unzip_location
Remove $download_location
$extract_temp_dir = "C:\Windows\Temp\FFmpeg-extract-$([System.Guid]::NewGuid().ToString('N'))"
try {
New-Item -ItemType Directory -Path $extract_temp_dir -Force | Out-Null
Download $url_public $url_cached $download_location
Verify-Checksum $download_location $sha1
Extract-tar_gz $download_location $extract_temp_dir
$extracted_dirs = @(Get-ChildItem -Path $extract_temp_dir -Directory)
if ($extracted_dirs.Count -ne 1) {
throw "Expected exactly one directory in the FFmpeg archive, got: $($extracted_dirs.Name -join ', ')"
}
Remove $ffmpeg_source_dir
Move-Item -Path $extracted_dirs[0].FullName -Destination $ffmpeg_source_dir
} finally {
Remove $download_location
Remove $extract_temp_dir
}
function GetFfmpegDefaultConfiguration {
$defaultConfiguration = Get-Content "$PSScriptRoot\..\shared\ffmpeg_config_options.txt"
@@ -173,6 +190,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"
@@ -6,8 +6,8 @@
. "$PSScriptRoot\helpers.ps1"
$networkTestLocation = "C:\Program Files"
$url_public="https://ci-files01-hki.ci.qt.io/input/networktestapp/CiNetworkTest-MSVC-2022-Windows.tgz"
$sha1="543D4562159140D4E7223721AF15ED6E1998E5B5"
$url_public="https://ci-files01-hki.ci.qt.io/input/networktestapp/CiNetworkTest-MSVC-2022-Windows-v1.2.tgz"
$sha1="C1D8871E610CF281E74E009DBE1BE5DA84B49807"
$download_location = "C:\Windows\Temp\network-test.tgz"
Write-Host "Fetching CiNetworkTest.exe..."
@@ -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
@@ -24,6 +24,15 @@ echo "Using public repositories for now. Repo-clones isn't set yet for Debian us
echo "deb https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
echo "deb-src https://archive.debian.org/debian bullseye-backports main" | sudo tee -a /etc/apt/sources.list
# the securitey.debian.org key has expired
sudo sed -i 's|http://deb.debian.org/debian-security|http://snapshot.debian.org/archive/debian-security/20260831T211304Z|g' /etc/apt/sources.list
sudo sed -i 's|http://security.debian.org/debian-security|http://snapshot.debian.org/archive/debian-security/20260831T211304Z|g' /etc/apt/sources.list
# Disable expiration checks
cat <<'EOF' | sudo tee /etc/apt/apt.conf.d/99bullseye-eol
Acquire::Check-Valid-Until "false";
Acquire::AllowInsecureRepositories "false";
EOF
# Make sure needed ca-certificates are available
installPackages+=(ca-certificates)
# Git is not needed by builds themselves, but is nice to have
@@ -260,7 +269,8 @@ installPackages+=(tzdata)
echo "Running update for apt"
waitLoop
sudo apt-get update
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get -o Acquire::http::No-Cache=true -o Acquire::Check-Valid-Until=false update
echo "Installing packages"
waitLoop
sudo DEBIAN_FRONTEND=noninteractive apt-get -q -y install "${installPackages[@]}"
@@ -7,6 +7,11 @@ set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/shared/network_test_server_ip.txt
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
# shellcheck source=../common/linux/distro_version_check.sh
source "$BASEDIR/../common/linux/distro_version_check.sh"
# Get distro version to later check if version has changed at the end of the provisioning
record_os_version
echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts"
echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts
@@ -8,6 +8,13 @@
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/linux/distro_version_check.sh
source "$BASEDIR/../common/linux/distro_version_check.sh"
# Check distro version if it has changed
verify_os_version_unchanged
# shellcheck disable=SC2129
source "${BASH_SOURCE%/*}/../common/linux/verify-release-packages.sh"
@@ -8,6 +8,11 @@ set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/shared/network_test_server_ip.txt
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
# shellcheck source=../common/linux/distro_version_check.sh
source "$BASEDIR/../common/linux/distro_version_check.sh"
# Get distro version to later check if version has changed at the end of the provisioning
record_os_version
echo "Set Network Test Server address to $network_test_server_ip in /etc/hosts"
echo "$network_test_server_ip qt-test-server qt-test-server.qt-test-net" | sudo tee -a /etc/hosts
@@ -9,6 +9,13 @@
set -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/linux/distro_version_check.sh
source "$BASEDIR/../common/linux/distro_version_check.sh"
# Check distro version if it has changed
verify_os_version_unchanged
# shellcheck disable=SC2129
echo "*********************************************" >> ~/versions.txt
echo "***** All installed RPM packages *****" >> ~/versions.txt
@@ -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

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