6897 Commits
Author SHA1 Message Date
Nils Petter Skålerud 1f4bb9e796 Multimedia: Add platform configs for additional media backends
This patch adds extra platform configs when running tests, that only
apply to Qt Multimedia. They allow qtmultimedia to run extra tests using
other runtime configurations, such as separate mediabackends.

Pick-to: 6.12
Change-Id: Ib14476f2f7d7e010717b6c8888d900155e10faa5
Reviewed-by: Tim Blechmann <[email protected]>
2026-10-14 14:54:29 +00:00
Paul Wicking 362d88772c coin: Skip QtPdf on the HarmonyOS x86_64 target
The harmonyos-26-x86_64-on-linux configuration builds QtPdf for OHOS
on x86_64, which Chromium's GN setup doesn't handle yet: GN generation
stops at an "Unhandled cpu type" assertion in
build/config/clang/BUILD.gn. Because the configuration applies to every
module that pulls in qtwebengine, integrations in qtwebengine and its
dependents, such as qtdoc, fail regardless of the change under test.

Disable the QtWebEngine and QtPdf builds for this configuration's
non-qtbase target builds, as the Windows ARM64EC configuration already
does, until QtWebEngine supports OHOS on x86_64.

Task-number: QTBUG-150347
Fixes: QTBUG-151373
Change-Id: I42d37086122eead72642db84721b9488a84db1c8
Reviewed-by: Joerg Bornemann <[email protected]>
2026-10-14 05:12:07 +00:00
Marcus Tillmanns 84d7cf4e71 Qt Creator: Build and test on Windows ARM64
Qt Creator ships for Windows on ARM64, but nothing built it there
before integration, so code that does not compile with MSVC for
ARM64 was only found after it was merged.

This needs qt-creator's instructions to provision Windows ARM64
machines (qt-creator/qt-creator change 779407) on every branch that
COIN builds.

Assisted-by: Claude Code
Change-Id: Iec61be8417f1fab5fa401897e7c8c2a31fe4b6da
Reviewed-by: Eike Ziller <[email protected]>
2026-10-14 05:11:28 +00:00
Marcus Tillmanns 1d1d3d52c8 Add the platform configurations of qt-creator/elfutils
Build Qt Creator's elfutils on the machines Qt Creator is built on:
RHEL 9.6 x86_64, Ubuntu 24.04 arm64 and macOS, and on Windows x86_64
with llvm-mingw, for x86_64 and, cross-compiled, for arm64.

Assisted-by: Claude Code
Change-Id: I340e24006de9574a16f0cce2726914fa3456ee9c
Reviewed-by: Eike Ziller <[email protected]>
2026-10-14 05:11:24 +00:00
Tor Arne Vestbø bc353f7bb2 Remove accidentally committed research files
Amends 397258285c

Pick-to: 6.12
Change-Id: I5e9b8693bb7a43332cd9416cbb257b04651e414d
Reviewed-by: Aku Pietikäinen <[email protected]>
Reviewed-by: Alexandru Croitor <[email protected]>
2026-10-14 05:11:22 +00:00
Nils Petter Skålerud befcdbfabc install-ffmpeg-macos.sh: Use named parameters
This patch makes install-ffmpeg-macos.sh have named parameters, and adds
a readable helper message.

Minimal changes so CI behavior.

Pick-to: 6.12
Change-Id: Idd803deb02d0fb14e63326cb46ec3da363223f0b
Reviewed-by: Artem Dyomin <[email protected]>
2026-10-12 05:15:48 +00:00
Tuomas Vaarala 69819d6bfc Coin: make QNX 8.0 x86_64 autotests blocking
The QNX 8.0 QEMU configuration now passes all of its autotests: in
integration 1790509992, 33 modules ran 1692 tests on it with no
failures. Drop InsignificantTests so that QNX 8.0 regressions block
integration, as QNX 7.1 regressions already do.

Pick-to: 6.12
Change-Id: I482349921df052a353a2e8ff2df347b903a05d73
Reviewed-by: Marianne Yrjänä <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
2026-10-12 05:15:45 +00:00
Assam Boudjelthia bc917b833b Remove InsignificantTests from Android multi-abi target
This target was initially marked as insignificant when
RHEL 9.6 was added in 6384a76d09,
then set blocking in 6856189287,
but this target was kept insignificant.

Pick-to: 6.12 6.11
Task-number: QTQAINFRA-7326
Task-number: QTQAINFRA-7331
Change-Id: I3262bd74d095b10c31fd86d0f273546611ae6d91
Reviewed-by: Elias Toivola <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
2026-10-12 05:15:31 +00:00
Liang Qi 1045923241 Nightly: remove C++17 nightly run
C++17 is default.

This reverts dbac25e422 .

Pick-to: 6.12
Change-Id: I80cb2e50a39630b103bdea651843cf132c1d0666
Reviewed-by: Alex Blasche <[email protected]>
2026-10-09 13:12:42 +00:00
Liang Qi 8b0c30dccc coin: enable debug info for HarmonyOS release builds
Pick-to: 6.12
Task-number: QTBUG-151135
Change-Id: Id77a98a1732d65bc8c3e0d6424de083dfbeff2ce
Reviewed-by: Joerg Bornemann <[email protected]>
2026-10-09 08:59:52 +00:00
Joerg Bornemann e9e92c2332 coin: Stop building Android vcpkg ports on non-Android hosts
RHEL 8.8, RHEL 8.10 and Windows 10_22H2 install vcpkg ports for the
Android ABIs, but none of them hosts a configuration that passes
-android-abis. The three templates that do, RHEL 9.6, macOS 15 arm and
Windows 11 24H2, install no Android ports at all. RHEL 8.8 is not
referenced by any platform configuration in the first place.

Nothing consumes the ports either way. No Android configuration sets
VCPKG_HOST_TRIPLET or VCPKG_TARGET_TRIPLET, so the vcpkg block in
qtbase's prepare_building_env.yaml has nothing to expand, and the
Android OpenSSL fallback in Qt6AndroidMacros.cmake looks for triplets
named arm64-android-dynamic, arm-neon-android-dynamic,
x64-android-dynamic and x86-android-dynamic, none of which is what gets
provisioned.

So this only removes provisioning time and image size. Drop the
ANDROID_NDK_HOME echo along with it, which was there for the Android
port build.

install-vcpkg-ports-android.sh and install-vcpkg-ports-android.ps1 are
left in place, unreferenced: RHEL 9.6 needs exactly the x86 and x86_64
pair the shell script installs, and Windows 11 24H2 the armeabi-v7a the
PowerShell one does, once the Android configurations name their
triplets.

Task-number: QTBUG-115715
Pick-to: 6.12
Change-Id: Ia48235058368bd8ffcfafe334a98326d8b608132
Reviewed-by: Elias Toivola <[email protected]>
2026-10-09 08:59:47 +00:00
Joerg Bornemann eabd8275ab coin: Provision vcpkg on Ubuntu 24.04 aarch64
The three ubuntu-24.04-arm64 configurations in cmake_platforms.yaml and
cmake_platforms_static_release.yaml name arm64-linux-qt as their vcpkg
host and target triplet, but no such triplet existed and the template
did not provision vcpkg, so the variables had no effect.

arm64-linux-qt.cmake is the upstream arm64-linux triplet plus the
openssl customization x64-linux-qt.cmake carries, keeping openssl
dynamic with VCPKG_FIXUP_ELF_RPATH while everything else links
statically. The wrapper scripts mirror the Ubuntu 24.04 x86_64 ones and
differ only in the triplet passed to install-vcpkg-ports.sh.

The first provisioning round has to build openssl, protobuf and grpc
for the new triplet. Existing x86_64 cache entries are unaffected.

Task-number: QTBUG-115715
Pick-to: 6.12
Change-Id: I6f464dd65cd4031ca7856cf0049678568ea33d93
Reviewed-by: Elias Toivola <[email protected]>
2026-10-09 08:59:43 +00:00
Nils Petter Skålerud fb2bfa8d9f install-ffmpeg-common.ps1: Wait only for Bash process to finish
When building FFmpeg for MSVC, the toolchain may boot up other
processes for telemetry. These processes are long-running and outlive
the actual compilation. When we run MSYS with -Wait, we end up stalling
until all sub-processes shut down. This was observed when running this
script locally for MSVC, and caused compilation to freeze.

This patch makes us only wait for the Bash process spawned by MSYS to
finish.

Pick-to: 6.12
Change-Id: Iff89db8e7d3785713e1124b6169cd8a1230eefbc
Reviewed-by: Artem Dyomin <[email protected]>
2026-10-09 08:59:40 +00:00
Nils Petter Skålerud ad43dcb724 Android, FFmpeg: Require patchelf 0.17.2 for shared builds
When building FFmpeg as shared libraries for Android, we rely on
patchelf to fix up the library dependencies. patchelf 0.18.0 is known
to produce broken Android binaries, which is why install-patchelf.sh
installs 0.17.2. However, nothing verified this, and
fix_ffmpeg_dependencies.sh only prints a warning for 0.18.0.

This patch makes install-ffmpeg-android.sh check that patchelf is
available and that its version is exactly 0.17.2.

Pick-to: 6.12
Change-Id: Ic9da3bcf5ac1a93b32def16b868e4d4d2ebc8f26
Reviewed-by: Artem Dyomin <[email protected]>
2026-10-09 08:59:35 +00:00
Nils Petter Skålerud ea8aab2c06 Android, FFmpeg: Move multi-NDK logic outside install-ffmpeg-android.sh
Currently, this script handles building FFmpeg, in multiple variants,
depending on what environment variables happen to be available. This
structure makes it harder to run the script locally, as well as
maintaining it over time. This patch moves the logic for doing multiple
NDK variants into a separate script.

As a drive-by, we give both install-ffmpeg-android.sh and
install-ffmpeg-android-multi-ndk.sh named parameters.

It is now possible to run the script locally.

Pick-to: 6.12
Change-Id: Iaa4a4c8f9123830eaf88be04a8a2c845c6a62982
Reviewed-by: Artem Dyomin <[email protected]>
2026-10-09 08:59:31 +00:00
Nils Petter Skålerud 6974ce7eb0 install-ffmpeg-ios.sh: Add named parameters
This patch gives optional named parameters to install-ffmpeg-ios.sh,
making it easier to run locally.

Minimal changes to CI behavior.

Pick-to: 6.12
Change-Id: I76a611317a336f0586c5b421629e01760da38ee6
Reviewed-by: Tor Arne Vestbø <[email protected]>
2026-10-09 08:59:23 +00:00
Joerg Bornemann 827183ba57 coin: Add x86_64 config for HarmonyOS
Add an x86_64 HarmonyOS target build to the CI configurations. The
x86_64 emulator target is useful for on-host testing without physical
devices.

For this to link, the target needs x86_64 counterparts of the vcpkg
OHOS ports. So far the provisioning installed the arm64-ohos-qt triplet
only, and the x86_64 build linked its objects against the arm64 ICU
archives, failing with "is incompatible with elf_x86_64".

Install the x64-ohos-qt triplet next to arm64-ohos-qt and expose its
installed directory as VCPKG_OHOS_INSTALLED_X64. Copy the OpenSSL
headers into both installed directories, and point the x86_64 config's
CMAKE_FIND_ROOT_PATH at the x64 directory.

Task-number: QTBUG-150347
Change-Id: I66d9aa51507e7c9157265722067a06a94e07896b
Reviewed-by: Simo Fält <[email protected]>
Reviewed-by: Liang Qi <[email protected]>
2026-10-09 08:59:18 +00:00
Qt Submodule Update Bot 20d43de824 Update submodules on 'dev in qt/qt5'
Change-Id: I28dca24248171ba91a46fc5e73436c56e9f11d8d
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-10-08 09:34:43 +00:00
Alex Bu 5a30e209bf Add platform configs for meta-qt6-ai
CI configs for new QtEdgeAI repo.

Task-number: QEA-43
Change-Id: Icefe0a1485ed8041d75adbeb745d7f3c106dacbc
Reviewed-by: Simo Fält <[email protected]>
2026-10-07 15:17:38 +00:00
Simo Fält 38543c7d08 Provisioning: Fix order, install dotnet before updating it
Pick-to: 6.12
Change-Id: Idbc32fed0db266254d72a318bcc6b75873d3aa8f
Reviewed-by: Elias Toivola <[email protected]>
2026-10-07 06:06:41 +00:00
Elias Toivola 5ad8a50502 Add Ubuntu 26.04 arm64 platform configurations
Tests are set as insignificant.

Pick-to: 6.12
Task-number: QTQAINFRA-8002
Change-Id: I71872abc8254650aaa59a0a61065667b61a98fa4
Reviewed-by: Liang Qi <[email protected]>
2026-10-07 06:06:35 +00:00
Elias Toivola 924e26cc1a Add Ubuntu 26.04 arm64 provisioning
This is a first tier-1 arm64 done with Packer. The initial Packer
scripts were taken from Ubuntu 26.04 x86_64 dir and modified for arm64.

Provisioning changes compared to arm64 24.04:
- Pulseaudio backport is removed:
    03-install-pulseaudio-16-bugfix-backports.sh
- apt: python3-pypdf2 -> python3-pypdf
- apt: libgstreamer-plugins-good1.0-dev -> -extra1.0-dev
- 04-clang.sh: llvm-toolchain-noble-20 -> -resolute-21
- 04-clang.sh: replace deprecated apt-key usage with a LLVM keyring and
  a signed APT source-list entry.
- 04-libclang.sh: pass -snld20 to 7-Zip for multi-hop symbolic links

Pick-to: 6.12
Task-number: QTQAINFRA-8002
Task-number: QTQAINFRA-5844
Change-Id: Ib4b00a837cba8a23a18ee70ece0ad4686f24fdba
Reviewed-by: Liang Qi <[email protected]>
2026-10-07 06:06:28 +00:00
Joerg Bornemann 569a071969 coin: Drop the vcpkg triplet vars from the Yocto cross configs
qemu-arm64-developer-build and imx8-arm64-developer-build-2404 build
against boot2qt sysroots that already provide the third-party libraries
vcpkg would supply, so vcpkg has no role there.

Both are hosted on Ubuntu 24.04 x86_64, which provisions vcpkg for
x64-linux-qt only. VCPKG_ROOT is therefore set, qt.toolchain.cmake
chainloads vcpkg, and CMAKE_PREFIX_PATH gets an
installed/arm64-linux-qt entry that is not provisioned on the host.
Nothing breaks today because the sysroot satisfies every find_package.

Drop the host triplet too; with no vcpkg role it has nothing to point
at.

Task-number: QTBUG-115715
Pick-to: 6.12
Change-Id: I3b0135c0a663d871c167f2b082cc00236d3c59c2
Reviewed-by: Elias Toivola <[email protected]>
2026-10-04 15:01:40 +00:00
Tor Arne Vestbø 5e77a0af5c Add macOS 27 insignificant test configurations
[CI Platforms]

Change-Id: I83441df6570f58f21f528ed9de361aa9628fc0b2
Reviewed-by: Aku Pietikäinen <[email protected]>
Reviewed-by: Morten Johan Sørvig <[email protected]>
2026-10-04 15:01:31 +00:00
Joerg Bornemann da1126957f coin: add CPEs to the generated vcpkg attribution files
vcpkg's SPDX documents carry PURLs but no CPEs, and a CPE is the only
identifier Qt's Dependency-Track instance can scan, so the generated
attribution files were of no use for vulnerability scanning.

Compose the CPE from the port version and a table mapping port names to
a CPE vendor and product, kept in vcpkg_port_cpes.json next to the
generator because CPE names track the NVD dictionary rather than
anything in the build. A port absent from the table gets no CPE at all:
the obvious guesses icu:icu and fontconfig:fontconfig match nothing in
NVD, and a CPE that matches nothing produces a clean scan that means
nothing.

The table covers the seven ports Qt links on OHOS. Four of the entries
are copied from the matching qt_attribution.json under
qtbase/src/3rdparty, the other three were looked up in the NVD CPE
dictionary.

The version is baked into the string instead of using Qt's $<VERSION>
placeholder, which is substituted with the version find_package
reported. For libjpeg-turbo that is libjpeg's API version 62, so a
templated CPE would come out as
cpe:2.3:a:libjpeg-turbo:libjpeg-turbo:62:*:*:*:*:*:*:* and match
nothing.

Task-number: QTBUG-150865
Change-Id: I4c975862392d4e355b90ea7b859791a6aecf1a3e
Reviewed-by: Alexandru Croitor <[email protected]>
2026-10-03 07:50:11 +00:00
Joerg Bornemann c63b5fb4e5 coin: generate vcpkg attribution files during provisioning
Run vcpkg_generate_attributions.py after installing the ports, so the
generated qt_attribution.json files and the port index are written in
place into $VCPKG_ROOT/installed, next to the libraries they describe.

The OHOS wrapper needs no change, it delegates to install-vcpkg-ports.sh.

Task-number: QTBUG-150865
Change-Id: Ib9b9cded132dac9b574bcadc05c939e6ed352946
Reviewed-by: Alexandru Croitor <[email protected]>
2026-10-03 07:50:08 +00:00
Joerg Bornemann 7776c20e0d coin: generate qt_attribution.json files from vcpkg SPDX documents
Walk an installed vcpkg tree, convert each port's SPDX document into a
qt_attribution.json next to it, and write an index mapping installed
library paths to port names. Qt's SBOM machinery reads
qt_attribution.json, so this gets license and provenance information for
vcpkg provided third party libraries into Qt's SBOM without duplicating
that data in Qt repositories.

Ports that install nothing outside share/ and tools/ are skipped. They
are metaports that exist only to depend on other ports, can never be
linked, and are also the only ports whose license metadata is unusable.
Filtering on that rather than on a missing license keeps a real library
with broken metadata visible, which is the case that must not be hidden.

The index exists because a MODULE mode find_package sets no <Package>_DIR
to resolve, and because the vcpkg install database is not shipped in the
developer archives. Its keys are relative to the prefix, so the same file
serves both the vcpkg installed tree and the flattened archive.

A port whose .list file is missing still gets an attribution file, since
emitting nothing would hide a real library. A missing install database
directory, by contrast, is fatal: it would silently disable the whole
feature for every port.

Task-number: QTBUG-150865
Change-Id: I6383169ee321cd88dfe90477e92aa071448c4d6d
Reviewed-by: Alexandru Croitor <[email protected]>
2026-10-03 07:50:06 +00:00
Alexandru Croitor 07ed4b4d3c sbom: Bump cyclonedx package to latest 11.12.0
Brings the isExternal property for Components, which is useful to add
for Qt product sboms for system library components.

Pick-to: 6.8 6.12
Change-Id: Iff8e7a50688eefc585322f512681a33202fab437
Reviewed-by: Joerg Bornemann <[email protected]>
2026-10-03 07:50:03 +00:00
Karim Pinter d44d627511 [VxWorks] raise kernel and RTP file descriptor limits to 1000
The CI VIP images were built with NUM_FILES, RTP_FD_NUM_MAX and
HRFS_DEFAULT_MAX_FILES at 300. That is too tight for the Qt autotests.

A single test binary runs several style suites in one RTP, and each Qt
thread's event dispatcher costs two descriptors for its wakeup pipe, on
top of windows, the QML disk cache on /ram0 and test data read over NFS.
tst_qquickpopup exhausted the per-RTP descriptor table roughly five
sixths of the way through its run and aborted with

  QFATAL : QEventDispatcherUNIXPrivate(): Cannot continue without a
           thread pipe

which is pipe() failing for want of a free descriptor.

NUM_FILES is the kernel-wide table, shared with the SSH daemon, the NFS
client and the serial console, so the same exhaustion starves those
services: the guest stops answering SSH, the test runner cannot reach it
any more and has to reboot the emulator. tst_qquickmenu wedges its guest
the same way.

Raise all three parameters to 1000. Descriptor table entries are a few
tens of bytes, so the memory cost is negligible on the emulated targets,
and the value stays well below FD_SETSIZE (2048) for any code that still
uses select(); Qt itself polls. This leaves an estimated two to three
times headroom over the peak demand of the heaviest test binary, which
is enough to stop the limit being the binding constraint while keeping a
genuine descriptor leak visible rather than merely delayed.

Fixes: QTBUG-150363
Pick-to: 6.12
Change-Id: I42e26afe0b21215d19b8ed5755a425d8bfed5278
Reviewed-by: Toni Saario <[email protected]>
2026-10-03 07:50:01 +00:00
Qt Submodule Update Bot eb4c6930cc Update submodules on 'dev in qt/qt5'
Change-Id: Ibc9591af1d4bd9322984200964700a8d1c7c73de
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-10-02 12:36:05 +00:00
Qt Submodule Update Bot bfd13f4e40 Update submodules on 'dev in qt/qt5'
Change-Id: I0b4e16de79043371973da6f0c0737a492cf38db2
Reviewed-by: Qt Submodule Update Bot <[email protected]>
2026-10-01 23:38:27 +00:00
Eike Ziller 7dfe909998 COIN: Update macOS platform for qt-creator precheck
Pick-to: 6.12
Change-Id: Ib358e4f7f1fd619941d622689b76c1869df0c40b
Reviewed-by: Jukka Jokiniva <[email protected]>
2026-10-01 09:36:49 +00:00
Simo Fält 869a284623 CI: Add nightly test configs for Harmony OS on macOS
Also amend the original macOS config name with 'developer-build'
which it actually is.

Pick-to: 6.12
Change-Id: Iec077d75f8a25b4249d46293b5ddee9bd869c9c0
Reviewed-by: Liang Qi <[email protected]>
2026-10-01 09:36:40 +00:00
Saman Hashemi 58f92aa5fc Modify tqtc-qtmcp and tqtc-qml-preview-mcp configs
- Duplicated the packaging configs for QtMCP, in order to have two
  builds: one without QHttpServer dependency (QT_FEATURE_httpmcp=OFF)
  for the packaged artifact, and the other one with the QHttpServer
  enabled for CI coverage only (not packaged).
- Modified the tqtc-qml-preview-mcp config to be built against the QtMcp
  variant without the QHttpServer dependency

Pick-to: 6.12
Change-Id: I16db34dd5c85d6b2d06c34ccd1e10ef99e16f027
Reviewed-by: Antti Kokko <[email protected]>
2026-10-01 09:36:35 +00:00
Alexandru Croitor 0f51285e8f Update reuse tool from 5.1.1 to 6.2.0 on supported platforms
All Qt repos should now be ready for the stricter 6.2.0 reuse license
parser.

Some of our platforms don't have Python 3.10 though (RHEL 9.6) which
is a requirement for reuse 6.2.0, so we keep provisioning the older
5.1.1 version on those platforms.

Pick-to: 6.12
Task-number: QTBUG-149427
Task-number: QTBUG-140916
Change-Id: I17a77b16345c974dc076edda3e7481b6ef005a6f
Reviewed-by: Joerg Bornemann <[email protected]>
2026-09-30 04:21:16 +00:00
Joerg Bornemann 9052403463 coin: Drop the vcpkg triplet vars from the remaining qemu configs
qemu-armv7-developer-build and qemu-mips64-developer-build are the same
case as qemu-arm64-developer-build: they build against boot2qt sysroots
that already provide the third-party libraries vcpkg would supply, so
vcpkg has no role there, and armv7-linux-qt and mips64-linux-qt are
triplets that do not exist.

All three are hosted on Ubuntu 24.04 x86_64, which provisions vcpkg for
x64-linux-qt only, so VCPKG_ROOT is set and qt.toolchain.cmake
chainloads vcpkg with CMAKE_PREFIX_PATH pointing at a prefix that is not
provisioned on the host. Nothing breaks today because the sysroot
satisfies every find_package.

This finishes the file; the arm64 configuration was cleaned separately
and leaving the other two behind was an inconsistency.

Task-number: QTBUG-115715
Pick-to: 6.12
Change-Id: Ib5add962424ca83615496ea3723f69162ef061a8
Reviewed-by: Simo Fält <[email protected]>
Reviewed-by: Aku Pietikäinen <[email protected]>
2026-09-30 04:21:13 +00:00
Joerg Bornemann 0f1efe98c7 coin: Add x64-ohos-qt vcpkg overlay triplet
Building the additional packages for the x86_64 target needs an x64
counterpart to the arm64-ohos-qt triplet.  Without it vcpkg rejects the
triplet name outright.

It differs from arm64-ohos-qt only in the target architecture and the
matching values from the OHOS CMake toolchain: OHOS_ARCH x86_64 and the
x86_64-unknown-linux-ohos make build triplet.

Change-Id: Ied8c9db9946b9d3dec27d05a0123473927f6d50c
Reviewed-by: Liang Qi <[email protected]>
2026-09-30 04:21:11 +00:00
Nils Petter Skålerud 53c0ff7b21 install-ffmpeg-ios.sh: Add arm64 simulator support
This script was hardcoded to two ABIs, arm64 iphoneOS and x86_64
simulator. We need to support both arm64 and x86 simulators.

This patch reworks the scripts logic, to instead iterate over a list
of target platforms. We add arm64 simulator to that list.

An .xcframework can only hold one framework per platform, so the
arm64 and x86_64 simulator binaries are now lipoed together into a
single universal framework. The device and simulator binaries are
still kept as separate frameworks inside the .xcframework.

Pick-to: 6.12 6.12.0
Change-Id: Id5dad1d8fd2fcc8dbedcc9bdf314eb521bcd897a
Reviewed-by: Tor Arne Vestbø <[email protected]>
2026-09-30 04:21:09 +00:00
Nils Petter Skålerud d1e924d592 install-ffmpeg-msvc.ps1: Make it run locally
This modifies install-ffmpeg-msvc.ps1 so that we can run it as a
standalone script. It adds several optional command line parameters:

-InstallDir to decide installation output directory
-MsysBash to control which MSYS bash.exe installation to use
-ZlibPath to provide zlib installation directory
-SkipEnvVar disables setting of environment variables (can now run
without elevated privileges)
-Help prints usage message

Pick-to: 6.12
Change-Id: I22f9598f289f4db4dfdaa10bb65471e6c1d35460
Reviewed-by: Dimitrios Apostolou <[email protected]>
2026-09-30 04:21:06 +00:00
Nils Petter Skålerud 06aca27abd install-ffmpeg.ps1: Split up into multiple files
install-ffmpeg.ps1 will build and install FFmpeg for many targets.
Future patches will make it possible to run each of these individually
to build only a single target on a local machine. See relation chain.

This patch splits the initial script into multiple files, one per
build target, and one for common functionality and definitions.

No functional change for CI.

Pick-to: 6.12
Change-Id: I717675ae73053be0426155b315d5a5f3fede6d29
Reviewed-by: Dimitrios Apostolou <[email protected]>
2026-09-30 04:21:02 +00:00
Nils Petter Skålerud 7b6457f76e install-ffmpeg.ps1: Remove duplicate path resolution code
At present, this script has two functions that resolve the exact same
path. One does it for a regular path, and one does it for a MSYS-style
path.

This patch adds a new helper function that converts regular paths to
MSYS-style paths to helpers.ps1 and uses it in install-ffmpeg.ps1.

As a drive-by, we fix some incorrect paths for Android OpenSSL.

Pick-to: 6.12
Change-Id: Ia0c7b4be21ed58d4b4fb633b8aeb16de1664694c
Reviewed-by: Dimitrios Apostolou <[email protected]>
2026-09-26 07:20:31 +00:00
Nils Petter Skålerud 75400695b5 Windows, zlib: Make it run locally
This script is useful to run locally if you also need to run the
FFmpeg provisioning scripts locally. This patch adds the following
features:

- Help message displaying how to use
- Parameter for setting build output directory
- Parameter for disabling assigning environment variable (can now run
without elevated privileges)

No changes to normal CI behavior.

Pick-to: 6.12
Change-Id: Ic5f20b84a5873281e1414fca82bd8e5a791fbc25
Reviewed-by: Dimitrios Apostolou <[email protected]>
2026-09-26 07:20:29 +00:00
Nils Petter Skålerud eb5b9a0dbc Windows, 7-Zip: Check multiple program folders before giving up
The current code for finding 7-Zip contains a list of multiple source
folders, but it only checks whether the first folder is non-null for
whether it might hold 7-Zip. This means we do not search all the
folders.

This patch changes this logic to search all the possible program
folders in order to find 7-Zip. It also moves the logic for finding
7-Zip into a dedicated function.

This patch makes it easier to run this function on a local machine.

As a drive-by, we fix some quotation issues in how 7-zip is invoked
to allow filepaths that contain whitespaces.

Pick-to: 6.12
Change-Id: I0e9487f3a27d775545a0671238f9bfbc4fe03598
Reviewed-by: Joerg Bornemann <[email protected]>
Reviewed-by: Oliver Wolff <[email protected]>
2026-09-26 07:20:27 +00:00
Tor Arne Vestbø 397258285c Add macOS 27 tier 2 provisioning structure
Pick-to: 6.12 6.11 6.8
Change-Id: I0e995217f2e1cb69cd98b083602bd88dcd9f2664
Reviewed-by: Jukka Jokiniva <[email protected]>
Reviewed-by: Aku Pietikäinen <[email protected]>
2026-09-25 07:01:43 +00:00
Tor Arne Vestbø e7fafe9211 macOS: Locate tccd's per-user database via its container on macOS 27+
Starting with macOS 27, tccd's per-user TCC.db moved out of
~/Library/Application Support/com.apple.TCC into a randomly named
container under /private/var/containers/Data/ProtectedSystem. The
container UUID is assigned by containermanagerd at container
creation time and isn't derived from anything we can compute or
rely on staying put, so we look it up by identifier instead,
matching on MCMMetadataIdentifier in each container's
containermanagerd metadata plist.

The system-wide database, owned by "tccd system" running as root,
is unaffected and stays where it always was, so we only take this
detour for the per-user services (microphone, Bluetooth).

While here, rename the service|path pairs to service|scope, using
"user"/"system" instead of embedding $HOME or / directly, since the
path is no longer a simple function of the scope on newer macOS.

Change-Id: I8db909c7df355d568e4e021e18e7a5c6ebc52a71
Reviewed-by: Aku Pietikäinen <[email protected]>
Reviewed-by: Jukka Jokiniva <[email protected]>
2026-09-25 07:01:40 +00:00
Tim Blechmann 4d792f7bb9 provisioning: update FFmpeg to v9.0.2
v9.0.2 is the the latest bugfix release of ffmpeg.

Pick-to: 6.12 6.12.0
Change-Id: I2a34b745d122972daedb74a1832c028e33ddb12e
Reviewed-by: Nils Petter Skålerud <[email protected]>
2026-09-25 07:01:37 +00:00
Karim Pinter cbbd7e2d22 [VxWorks] Recover from guest resets instead of running unprovisioned
A VxWorks guest that hits a kernel exception reboots itself. QEMU
then restarts the kernel from the same -kernel/-append, and the guest
comes back running only the romfs startup script, without the
per-instance configuration written over the serial console by
coin_vxworks_vars.sh. The test runner's health check (serial echo and
SSH rtp list probe) cannot tell such a guest from a healthy one, so it
keeps handing tests to it. In a qtdeclarative run one x86 emulator
slot rebooted about 90s after provisioning and then failed every test
it was given, because the startup script set an LD_LIBRARY_PATH with
the ARM VSB path baked in, so no RTP could load its shared objects.
Fix both halves:
Start QEMU with -no-reboot, so a guest reset ends the QEMU process
instead of rebooting the kernel. The runner already detects a dead
emulator (serial FIFO without a reader, SSH unresponsive) and
relaunches and re-provisions that slot only; the other parallel
instances are unaffected. A reset during boot is now reported by the
launcher's "exited during boot" check right away instead of after
the SSH wait deadline.
Update the VSB and VIP images to build 15-09-2026, whose startup
script sets the correct per-architecture LD_LIBRARY_PATH, so a guest
that does come up from the romfs defaults is still able to run RTPs.

Fixes: QTBUG-150258
Pick-to: 6.12
Change-Id: I199c507eae14a54c6765f3166a56236c44782f1b
Reviewed-by: Toni Saario <[email protected]>
2026-09-25 07:01:34 +00:00
Tuomas Vaarala 5671be2454 Coin: QNX 8.0 QEMU: put the fontconfig tools on PATH
764040 rebuilt fc-match for the 8.0 SDP, but tst_qfont::defaultFamily
still fails all five rows with "fc-match cannot be started: execve: No
such file or directory". The binary is in the image; it is just not on
PATH. Both fontconfig tools are installed to /system/xbin, while the
image PATH is /proc/boot:/system/bin. Coin does add /system/xbin, by
redefining home/root/.ssh/environment in data_files.custom, but
mkqnximage's own inputs/data.build defines that same file at line 72 and
the custom include only follows at line 96. data.build sets
[+dupignore], so the first entry wins and the override is dropped
without a warning. QNX 7.1 is unaffected: its built-in entry already
names /system/xbin.

The same gap has silently disabled the fc-cache call that
post_start.custom runs at the end of startup:

  post_startup.sh: fc-cache: cannot execute - No such file or directory

Install both tools into /system/bin, which is on PATH in the boot
environment and in an ssh session. fc-cache additionally needs HOME:
without it fontconfig fails with "Cannot load default config file" and
"No writable cache directories", because every cache directory in the
config is either absent or relative to HOME. The HOME and
FONTCONFIG_FILE that QNX_TEST_ENV sets do not reach guest startup, so
pass the same two values there.

Verified on a locally built and booted GA8.0.5 image: bare fc-match
resolves to /system/bin/fc-match and all five generic families return
DejaVu Sans, which is what QFont::defaultFamily() returns, so the five
rows pass; and the cache lands in /data/home/root/.cache/fontconfig,
which is the HOME the tests run with.

Pick-to: 6.12 6.11
Change-Id: I6bd29f997b9567218d85768fa47fab38b076cb28
Reviewed-by: Marianne Yrjänä <[email protected]>
Reviewed-by: Simo Fält <[email protected]>
2026-09-25 07:01:31 +00:00
Assam Boudjelthia bb6a722532 Android: update emulator to version 37.1.11
Emulator 36.6.11 maps host visible Vulkan memory into the guest
with a hard coded 4 KB page while the guest driver on the x86_64
16 KB page size image uses getpagesize(), so the mapped pointer
is off by up to 12 KB. Uploads and readbacks then hit the wrong
memory, which is what fails the RHI tests on Android 17. The
emulator 37.1.11 ships the gfxstream fix that aligns to the page
size the guest kernel reports.

Task-number: QTBUG-136620
Task-number: QTBUG-146930
Pick-to: 6.12 6.8
Change-Id: I73e3194d00eca422b6aa5d99a726bfcb14d7e084
Reviewed-by: Simo Fält <[email protected]>
2026-09-25 07:01:28 +00:00
Kai Köhne 3208f5c95a SECURITY.md: Update title and link to Qt Group's Vulnerability Disclosure Policy
Pick-to: 6.12
Change-Id: Ic3e8d43709d1254277810c9e1072240126a26583
Reviewed-by: Gabriel Byman <[email protected]>
Reviewed-by: Alexei Cazacov <[email protected]>
2026-09-24 05:10:37 +00:00