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.
Pick-to: 6.12
Change-Id: I75a2df6e0002886e3de91f0573f8083645307c39
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
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.12 6.11 6.8
Change-Id: If4f1e997aef40037ee876bc3843ed09a5412615f
Reviewed-by: Simo Fält <simo.falt@qt.io>
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
Pick-to: 6.12
Change-Id: I0b6d753085c3e1f830cd705e6513003437909c64
Reviewed-by: Toni Saario <toni.saario@qt.io>
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.12 6.11
Change-Id: I467cb977313ce2496e2ab063c820929f2bfa591e
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
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.
Pick-to: 6.12
Fixes: QTQAINFRA-6166
Task-number: QTQAINFRA-7942
Change-Id: I1e8dacf8ea5f3c492f12270c5f407bd4e5a2e756
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
This patch upgrades the provisioned FFmpeg version to n8.1.2
As a prerequisite, it also installs the nasm package on relevant
platforms.
Pick-to: 6.12
Task-number: QTBUG-139714
Change-Id: Ibc9dc21a9caeba812ff94e8c0b5a2a1ab3959c64
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
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.8 6.11 6.12
Fixes: QTQAINFRA-7785
Change-Id: Ib2b6a55d7b994c95299ddf66546d9362b04823df
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
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
Pick-to: 6.12
Reviewed-by: Simo Fält <simo.falt@qt.io>
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
Pick-to: 6.12
Change-Id: Ic2d7912bdac22d71a3424d14b5000cbef89f61a6
Reviewed-by: Simo Fält <simo.falt@qt.io>
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.
Pick-to: 6.12
Change-Id: If345095f1a2aa635f3fb1e343e47d51ba07ee4ec
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
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.12 6.11 6.8
Change-Id: Iebf22f27c33709902485bd034c9442659c1b54cc
Reviewed-by: Simo Fält <simo.falt@qt.io>
On QNX8 backtrace requires unwinder. Adding unwinder libraries to QNX
x86 Qemu image.
Change-Id: If29f910720036501f0ee4ce47106507b2daf07aa
Reviewed-by: Simo Fält <simo.falt@qt.io>
Syft is a tool that scans package manager manifest or lock files and
generates an SBOM (Software Bill of Materials) file based on the
found packages. It can generated both CycloneDX and SPDX SBOM formats.
The tool will be used by the Qt for Python project to generate SBOMs
based on the python packages used during the build.
The tool is provisioned on all the platforms that have the
GenerateSBOM feature.
Pick-to: 6.8 6.11 6.12
Task-number: PYSIDE-3366
Change-Id: I1369f7b1b041b1fc0d8a56a20446df322d26d33a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This prevents sneaky NDK overwrites if there is no versioning in the
.zip root directory.
Pick-to: 6.12 6.11 6.8
Task-number: QTQAINFRA-7069
Change-Id: Ib0bd30c27da316735001bc5027d1dac1f8ead703
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
When HOME was unset, ~/.cache collapsed to /.cache on the read-only
QNX QEMU rootfs, so Fontconfig printed "No writable cache
directories" from QtGui-linking sub-tests and broke the
expected-output validation in tst_selftests.
Set HOME=/data/home/root (distinct from TMPDIR so filesystem
watcher tests keep separate watchable dirs) and point
FONTCONFIG_FILE at the deployed fonts.conf. QNX SDP 8.0 ships
fonts.conf at etc/fonts/fonts.conf, not etc/fontconfig/fonts.conf
as 7.1 did, so correct the data_files.custom source path too.
Squashes the former HOME-only and FONTCONFIG_FILE changes, which
conflicted on the same QNX_TEST_ENV lines and could not integrate
together.
Pick-to: 6.8 6.11 6.12
Change-Id: I1943d07eff0a2e99bb96db28e73b4c77e4aa2df8
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
For scripted auto-execution all shell scripts in provisioning need to
be executbale. Most are, but some have been forgotten.
Make the remaining ones executable.
Fixes: QTQAINFRA-7905
Pick-to: 6.12
Change-Id: I663aeb6c04f2b9d8049d21a75966369b15fe6d29
Reviewed-by: Simo Fält <simo.falt@qt.io>
The Coin hosts file fully overrides the SDP default, which
had 127.0.0.1 and ::1 entries. Combined with nsswitch
"hosts: files mdnsd dns" and resolv.conf -> 172.31.1.1, any
test resolving http(s)://localhost fell through to NXDOMAIN.
Fixes tst_QHttpServer (229 HostNotFoundError asserts) and
tst_abstractoauth2 (silent crash) on QNX 8.0 QEMU. Applied
to 710/ too so the same latent issue can't surface there.
Pick-to: 6.8 6.11 6.12
Change-Id: I2aaa782980cb44afe3499ba8bd35fd7d3c093043
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Marianne Yrjänä <marianne.yrjana@qt.io>
Also set SCCACHE_DIRECT in an effort to counter the error:
cc1plus: error: .../CMakeFiles/....dir/cmake_pch.hxx.gch: \
created by a different GCC executable [-Werror=invalid-pch]
Pick-to: 6.12 6.11 6.8
Change-Id: Ic7a3743642ff69495309794f6d17fc9b98d7f338
Reviewed-by: Toni Saario <toni.saario@qt.io>
The upstream vcpkg *-ohos triplets have been changed to build static
libraries in multi-config mode. Add (and use) an arm64-ohos-qt triplet
that builds shared libs in release mode.
The triplet differs from the upstream one only in the values
VCPKG_LIBRARY_LINKAGE and VCPKG_BUILD_TYPE.
This patch is a preparation for merging vcpkg upstream back to our
fork.
Pick-to: 6.12
Change-Id: Iac6a4798b0322e9c57cf09ca35a408c66504ba46
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The rule in this form is not as helpful as intented.
Paraphrasing comments from the linked issue:
This rule was created based on clazy's “Warn when iterator objects are
implicitly cast to const_iterator" which was likely an attempt to limit
hidden detaches of implicitly-shared Qt containers.
But mixing const_iterator and iterator is not the problem. The problem
is calling a non-const begin()/end()/find()/etc when you only need
const_iterators. So if you ban the implicit conversion from iterator to
const_iterator, you will catch these, theoretically. Practically, no-one
writes QList<Foo>::const_iterator it = l.begin() these days anymore,
everyone is using auto, so the check can never actually trigger for True
Positives.
As-is, it produces False Positives which has a potential to make the
code actually worse.
An alternative to reach a similar goal is to use QT_STRICT_ITERATORS, so
there’s no need for an Axivion check for it.
Task-number: BAUHAUS-29596
Pick-to: 6.12
Change-Id: I910e9ecc89c3db497c046f6d15ff07ab2ecc470a
Reviewed-by: Marc Mutz <marc.mutz@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
We dropped support for AAOS10 already in QtAA 6.9, but forgot to update
the minimum SDK version in CI.
Fixes: QAA-3464
Pick-to: 6.11
Change-Id: Iaba6fb08bb6b00f7c01132e7cd528c4727a31859
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
The packages required for FFmpeg provisioning may change between FFmpeg
versions, as is the case when upgrading to FFmpeg n8.1. It is a
time-waster to manually go through all hosts to make sure they all
have the correct packages. Additionally we have no way of knowing
whether a package is used by FFmpeg and/or something else.
This patch moves the list of required FFmpeg packages into some common
files, and refactors each host to read these files. This way we can
modify provisioning in one place.
Pick-to: 6.11
Change-Id: I31d409595b7da231b1f845c18095e77f7af51b0a
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
This test will check that release packages are from current release
version i.e. RHEL 10.0 "el10_0" and not from 10.1 "el10_1" or newer.
If newer release packages are found, script will output those packages
and exit with exit code 1 to ensure that release version stays locked.
Pick-to: 6.11
Task-number: QTQAINFRA-7817
Task-number: QTQAINFRA-7614
Change-Id: I905dd2e72bf5dadc6f3f4b21aa7c09f06204d297
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Add an :app and :lib modules so both com.android.application
and com.android.library paths are exercised, and add a Kotlin
source + JUnit test in each module. This makes gradlew build
pull the kotlin toolchain jars (compiler-embeddable, reflect,
coroutines) that Qt Android JAR and app builds could need
later. This way we ensure all possible artifacts are made
available in the cache during provisioning and avoid or at
least reduce the chances or later downloads.
Task-number: QTBUG-132915
Change-Id: Ic518f96370ffc40f921bcb3063257f8663e41615
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
The 20260410 SDP patchset ships new majors for freetype and
fontconfig: libfreetype.so.26 (was .so.24) and libfontconfig.so.17
(was .so.1). The old sonames remain only as compatibility stubs
(libfontconfig.so.1 shrinks to a 320 KB shim vs 1.65 MB for .so.17).
Pick up the current libraries in the QEMU system image so Qt runs
against the SDP's real fontconfig/freetype, not the stubs.
Pick-to: 6.8 6.11
Change-Id: I29ceae73d861d1a398f3efd2f4b2eaab3600fc24
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
The 2026-04-10 patchset refreshes binaries and bakes in tzdata 2026a
in the SDP tree. Added the missing targetFile= line.
Also pull the tzdata as a separately-downloadable overlay, so it can
be bumped without rebuilding the full SDP tarball. Archive root is
qnx800/target/qnx/... so it extracts onto /opt/ directly on top of
the already-extracted SDP.
Pick-to: 6.8 6.11
Change-Id: I29f675429937346825e4a0b6cfac07ce8dc391a6
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Add scripts to download and cache Gradle distribution
and its dependencies during provisioning for all hosts
so that Qt builds don't have to fetch them on every Qt
module and test build.
Add those scripts to various RHEL, Ubuntu, macos and
windows configurations after Android has been run
since the Gradle build for Android requires Android
SDK.
Prior to this, to avoid having a full Gradle project added
to the coin tree, some Gradle files were being fetched from
qtbase using a commit sha, that was aiming to reduce the
amount of changes each time, but that's a bit awkward since
the files here and this commit sha needs to be updated
anyways. So just have a full Gradle project here and update
its values whenever we bump Gradle or Android supported
versions.
Task-number: QTBUG-132915
Change-Id: Id4876ad90a09cdaada5b96c457820c691e2be426
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
With a Gradle-enabled Qt build, it's easy now to manage all
Qt modules' JAR builds in one place from an IDE, and that's
what's being done here with Gradle composite builds. This
adds each module's JAR in the qt super repo and each module
also defines its potential dependencies (e.g. Qt6Android.jar).
This also update .gitignore with Gradle, JDTLS and IntelliJ
ignores, and moves the existing .gitignore from the provision
android_gradle project to the root.
Task-number: QTBUG-132915
Change-Id: I4573768c394a4c25347eeb8ce6e2ddf7e57796ef
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Added correct format for author to enable email notifications.
Removed unnecessary dns query which does not work.
Pict-to: 6.11 6.8
Change-Id: I0513e80d07c42197570abbd3354b0be3b50db768
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
This patch adds Android 17 16KB Beta3 as insignificant platform
to CI which will not abort on first test failure. At the moment
there is only 16KB compliant system image available.
Before the platform can become significant we need to wait
first released version of Android 17. When the first released
version will be added remove the Hack to alter source.properties
mentioned in this patch.
Task-number: QTBUG-143600
Pick-to: 6.11 6.8
Change-Id: Iaf2f122e6b56e496ddb8549f281cca6acd3970ac
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
install-vxworks-qemu.sh uses a variable that doesn't exist, causing
issues when we turn on more strict error-handling.
Pick-to: 6.11 6.10 6.8
Change-Id: I9d644a497e4689c7ab35c80f97548b1a1a6bdf12
Reviewed-by: Simo Fält <simo.falt@qt.io>
This makes it easier to use a debug VM without having to use
full paths from the Android SDK and also without having to
know where they live.
Pick-to: 6.5 6.8 6.10 6.11
Change-Id: Ib6c255edae5e5773551fab1008ebdb9a5e1ff8f2
Reviewed-by: Simo Fält <simo.falt@qt.io>
These scripts are generic for both linux and macos, we may parameterize
them and reuse on both platforms.
Change-Id: Ia61cfbbf5c91e2135e38253c4a96605015d2d1b6
Reviewed-by: Alexey Edelev <semlanik@gmail.com>
There is not particular reason to hold multiple manifests for the vcpkg
for different platforms, since we expect that the direct dependency set
that is used from vcpkg will remain the same on each platform.
Keeping copies of the vcpkg manifest doesn't make much sense.
The vcpkg manifest and configuration file are now in the
coin/provisioning/common/shared/vcpkg directory.
Change-Id: Icc9c88592c68cb591216f3d0668f9984592d6c7b
Reviewed-by: Simo Fält <simo.falt@qt.io>
Currently, this script is hardcoded to output to the directory
'/usr/local/'. This output is stored in the variable 'prefix'. However,
this variable is used inconsistently in the script, meaning we cannot
actually modify the variable to change the output directory.
This patch does the following:
- Applies the 'prefix' variable where necessary.
- Allows an optional command-line parameter to be applied to 'prefix',
allowing one to specify where the output directory. This is
particularly useful for local builds.
No changes to current CI behavior.
Pick-to: 6.11 6.10 6.8
Change-Id: I51f83ce3844c2aa9db778b1c54091acb64a227e6
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
This patch updates build.gradle to set compile- and
targetSdkVersion to 36.
Task-number: QTBUG-138552
Task-number: QTBUG-138549
Pick-to: 6.11 6.10 6.8
Change-Id: I44be99956f39e7bc23e8c5a3d15289dfdd574921
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>