Compare commits

...

53 Commits

Author SHA1 Message Date
Jani Heikkinen
d4821293c3 Adjust submodule branches
Change-Id: I4976925305224323c04f53e764e614af40fba939
2026-02-23 05:52:11 +00:00
Qt Submodule Update Bot
3b03dc00c1 Update submodules on '6.11 in qt/qt5'
Change-Id: I233209f30bf1e12220b9bc80bdd152fe40d2724a
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-22 18:58:50 +00:00
Qt Submodule Update Bot
1b6a8c073a Update submodules on '6.11 in qt/qt5'
Change-Id: I25daf0bddb3fdec26ae0d6a60e9d01d8feed4529
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-21 01:19:39 +00:00
Qt Submodule Update Bot
73cad7fe96 Update submodules on '6.11 in qt/qt5'
Change-Id: Ifac65e8a54140ecfeced2047ffda36bdff4cd8eb
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-20 01:03:08 +00:00
Joerg Bornemann
b2fb8279dc Fix configure -init-submodules ignoring -skip option
When running configure -init-submodules -skip <module>, the -skip
option was ignored because init-repository ran before -skip values
were processed. The skipped modules were still initialized.

Fix by preprocessing -skip values in qt_tl_run_main_script() before
calling qt_ir_run_main_script(). The -skip values are converted to
module-subset exclusions (e.g. -qtwebengine) and merged with the
existing module-subset option.

Also register -skip as a known option in init-repository so it can
be parsed from the optfile.

Fixes: QTBUG-140359
Pick-to: 6.10 6.8
Change-Id: I37ed916dd1c22b6d10d23821044fee807919d4a9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 378c8719a9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-18 10:02:11 +00:00
Nils Petter Skålerud
546bcebdaa iOS, FFmpeg: Add documentation/commenting
This patch adds more commenting + documentation to the script
'install-ffmpeg-ios.sh'.

Pick-to: 6.10 6.8
Change-Id: I7e0023651b868d46b3fb4604bcc6d3eb1d24b7b2
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
(cherry picked from commit c3fe5fe6fe)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-17 21:04:49 +00:00
Nils Petter Skålerud
75b333607c iOS, FFmpeg: Include dSYM files
App Store requires that our FFmpeg distribution includes dSYM files for
debugging symbols.

This patch removes stripping from the FFmpeg build, generates the
dSYM files and then manually strips the dylibs afterwards.

Pick-to: 6.10 6.8
Fixes: QTBUG-143963
Change-Id: I2740f46bb0fd7e7ee9da8dede01944b89bc3db7a
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 919a4ae240)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-17 21:04:46 +00:00
Nils Petter Skålerud
6c0f85bdbd iOS, FFmpeg: Clean up .framework creation logic
This patch rewrites the create_framework() function to
be more readable and adds commenting.

No functional changes.

Pick-to: 6.10 6.8
Task-number: QTBUG-143963
Change-Id: Id52fb43d733fe0c815a13b15135539452999cb40
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 4df773656c)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-17 21:04:35 +00:00
Nils Petter Skålerud
1d998afee6 Move install-ffmpeg-ios.sh into macos folder
Currently this script is stored under unix, but it's only ever going to
be used on macos. This patch moves the script.

No functional changes.

There was a minor conflict resolution in this patch due to macOS 26 not
being present in this branch.

Pick-to: 6.10 6.8
Change-Id: Iba3d101d360e90ffaa3478689bb002b4e5f65bc1
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit ebe3124831)
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2026-02-17 21:04:29 +00:00
Assam Boudjelthia
5d247c1e58 Android: bump to Gradle 9.3.1 and AGP 9.0.0
Following Qt 6.11 release 3rd party components update.

Task-number: QTBUG-143129
Change-Id: Idfd310197d5345871637a3e4e1858dbd731eeae8
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
2026-02-17 21:04:26 +00:00
Nils Petter Skålerud
18956e23c4 FFmpeg, Android: Simplify OS parameter logic
The script accepts an OS parameter, which is then forwarded into the
`build_ffmpeg_android` function. This function expects a different set
of values, that are different in name only, not in meaning.

This patch makes us forward the OS parameter directly into the function
and changes the internal logic accordingly.

No functional changes.

Pick-to: 6.10 6.8
Change-Id: I5614f1cf489594cfab2966a680e87a95c7be267b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit ade4488de9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-17 21:04:13 +00:00
Tero Heikkinen
6722895711 Add missing comment line to describe patchelf usage
Patchelf is added to fix dependencies in shared ffmpeg libs
(amends 83adc86c53)

Pick-to: 6.10 6.8
Task-number: QTBUG-120990
Change-Id: Ia9359c1a77e82203d53e3d2940885a0c254024c9
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 7a5b6bdeaa)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-17 21:04:09 +00:00
Tero Heikkinen
87b82c5a62 Fix incorrect external link for ninja package for x64 and arm
x64: ninja-linux.zip
arm: ninja-linux-aarch64.zip

Pick-to: 6.10 6.8 6.5
Fixes: QTQAINFRA-7701
Change-Id: I36465f6413ae80754f4fa39abb04ce492ed445b7
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 3480c00adb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-17 21:04:07 +00:00
Elias Toivola
e3ee9617ac Android: Make the OpenSSL install script less rigid
OpenSSL packages have differing features indicated in their file name,
separate those in their own $suffix variable for the install function to
reduce hard-coding.

The function will now rename the extracted root directory to mirror the
package name from Ci-files. This is to prevent later "OpenSSL not found"
errors in provisioning when prebuild package and its root are not named
exactly the same.

Pick-to: 6.10 6.8 6.5
Change-Id: I71019a0d2731aace00ff2eb82d63537673f6e41a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
(cherry picked from commit aa2272379a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 18:19:45 +00:00
Tero Heikkinen
03c30a97d5 Fix macOS gRPC install with CMake minimum version 3.5
Pick-to: dev
Fixes: QTQAINFRA-7683
Change-Id: I1cf8984420550f078a8125e16ef5f7d995890bbb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-12 20:19:40 +02:00
Tero Heikkinen
3700add7fc RHEL 10: Point SBOM_PYTHON_APPS_PATH to virtual env for sbom2doc
Currently sbom2doc is not found with RHEL 10 until this other fix
in qtbase is available: 2dc0c29502bec1ffffbbf098d749a49b494122ac

After that this temporary fix could be removed and proceed to
unify virtual env usage for all linux machines (QTQAINFRA-7642)

Task-number: QTQAINFRA-7203
Change-Id: I97adf937afa78371b290baa833c767a106c4c15e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 1e25956312)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 20:19:36 +02:00
Tero Heikkinen
08cef8ffb2 Provisioning: Take repo-clones into use in RHEL 10
Task-number: QTQAINFRA-7614
Change-Id: If766b511e367a64691a8eb0683c1fdc698d3fa05
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit 28f9120718)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 20:19:32 +02:00
Tero Heikkinen
7326e7a3b8 RHEL 10: Take rhc into use with subscription activation
Both of the subscription activation options needs to run
with sudo as non-root user cannot connect system.

Task-number: QTQAINFRA-7637
Change-Id: I933536d7321b9a7e54732395b6e536c5275129d3
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 4d4e6bb490)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 20:19:28 +02:00
Tero Heikkinen
59fd96b18f sbom: Create virtual env for RHEL 10.0 Python 3.12 requirements
With Python 3.12 SBOM needs jsonschema package newer than 4.19
but cannot uninstall current one installed by RPM:

Error:
  Attempting uninstall: jsonschema
    Found existing installation: jsonschema 4.19.1
error: uninstall-no-record-file
× Cannot uninstall jsonschema 4.19.1

Therefore virtual env is used to fix this.

Task-number: QTQAINFRA-7554
Change-Id: I1260ef7fdf0c1ba96acaee1738ed9612e47bedad
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 88177e9ab8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 20:19:23 +02:00
Alexandru Croitor
30a9d5669c sbom: Explicitly install jsonschema package newer than 4.19
Because RHEL 10 comes with an older version of jsonschema (4.19),
which breaks cyclonedx verification at qtbase runtime.

Change-Id: Ib7044b6d4107e5382015adfdd8eb747be8605934
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 6348aa919b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 20:19:19 +02:00
Alexandru Croitor
49b09bab88 sbom: Bump cyclonedx package to latest 11.5.0
This brings cyclonedx 1.7 support.

Change-Id: Id525d07ea1f7d342bf3e683e3a7c64c064c6e4c4
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 30d874ad79)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 20:19:14 +02:00
Tero Heikkinen
8c54a23ab6 Add RHEL 10.0 with non-blocking tests in CI
Notes
  - GCC 14
  - Wayland is mandatory to use as X11 has been removed
  - DISPLAY=:0 should not be used anymore as it's for X11
  - Java JDK 21
  - mysql replaced by mariadb
  - gstreamer1-plugin-openh264 not available
  - nodejs-16 upgraded to nodejs-22
  - Squish is no longer installed in provisioning
  - SBOM needs jsonschema > 4.19 to work with Python 3.12
  - Has these to bypass 'Activities Overview'
    - 'GNOME Classic' Desktop Session
    - 'No Overview' GNOME extension
  - 7z >= 25.01 multi-hop symlinks restricted with -snl switch levels
    --> 7z x -snld10 allows minimal usage to use multi symlinks
  - With install-vcpkg.sh and install-vcpkg-ports.sh correct path is
    - ../common/linux/ and not ../common/unix/ like in 6.12 (dev)

EGL support
  - No longer need to install mesa-libEGL with pinned version
  - As there is no longer Xorg to crash when Wayland is used instead

Task-number: QTQAINFRA-7203
Task-number: QTQAINFRA-7202
Change-Id: If8b7bfdbc2b84259fd09276e0566b3967c364668
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit c399d002de)
2026-02-12 20:19:11 +02:00
Nils Petter Skålerud
13db7987b8 Stop compiling FFmpeg Android arm64 on old macOS x86 hosts
Android FFmpeg provisioning requires 'readelf', which is provided by
binutils package. This package is shown to be flaky on older macOS x86
hosts. It is not critical that we compile that we compile Android
FFmpeg on these hosts, so this patch removes them.

Pick-to: 6.10 6.8
Change-Id: I6722f2c543b022a998573cc76ffc671378a4fcb5
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 033329cb00)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 18:19:07 +00:00
Ville-Pekka Karhu
75d3d6297c Provisioning: Take repo-clones into use in RHEL 9
Pick-to: 6.10 6.8 6.5
Task-number: QTQAINFRA-5587
Change-Id: I2459a32b96524a4c29769835d5c37b2cb021720e
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 7f2d96a43e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-12 18:19:03 +00:00
Qt Submodule Update Bot
7b2be59623 Update submodules on '6.11 in qt/qt5'
Change-Id: I6c3a092c5aa2d292e766adf856e8997b3da2a405
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-12 05:30:41 +00:00
Qt Submodule Update Bot
04f579997c Update submodules on '6.11 in qt/qt5'
Change-Id: I7525e227bc3f948640b84a80453b70df16815c84
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-11 02:44:11 +00:00
Elias Toivola
474c3e5a67 RHEL 8 & 9: Take rhc into use with subscription activation
Both of the subscription activation options needs to run
with sudo as non-root user cannot connect system.

Task-number: QTQAINFRA-7637
Pick-to: 6.10 6.8 6.5
Change-Id: I05ea39e4c4a40b5294cc659e4d2e506ee0118848
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit 3a7915481f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-10 05:36:33 +00:00
Qt Submodule Update Bot
a606693372 Update submodules on '6.11 in qt/qt5'
Change-Id: Idb1cfeff39bf8595a654a1ef5b6cef36c0407ebf
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-09 03:53:15 +00:00
Qt Submodule Update Bot
bd9eace754 Update submodules on '6.11 in qt/qt5'
Change-Id: I584abb0e3e55f4c2a604ead79fd91196a88f7088
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-06 02:21:54 +00:00
Elias Toivola
0796b73482 Ubuntu 24.04 x86_64 x11: Set tests as blocking
With disabling the desktop overview and skipping/fixing 100% blocking
tests. The failed test runs for x11 have reduced significantly.

Pick-to: 6.10
Task-number: QTBUG-132070
Task-number: QTQAINFRA-6098
Change-Id: I4b431235e959a352c0de851961e80336ee241ba3
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit f189bb9151)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-05 20:08:33 +00:00
Tero Heikkinen
d5459a1d46 Fix openSUSE 15.6 dependency issue with cargo 1.93 installation
Task-number: QTQAINFRA-7669
Change-Id: Id1a8d72c3db3b622b46fa9bbd5fd770001ff3c65
Reviewed-by: Moss Heim <moss.heim@qt.io>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2026-02-05 22:08:24 +02:00
Allan Sandfeld Jensen
b170c102dd Install rust tools on Linux rpm platforms
Change-Id: I3df96d6b6575f7735c26d153241d844d085fad87
Reviewed-by: Moss Heim <moss.heim@qt.io>
(cherry picked from commit 2fb83dd605)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-05 22:08:22 +02:00
Allan Sandfeld Jensen
68bc5e611b Install rust toolchain on Debian based platforms
Needed for future QtWebEngine updates

Pick-to: 6.10
Change-Id: Ic2f42f9030a9bdf6f09c0004e035f4f36792cb56
Reviewed-by: Moss Heim <moss.heim@qt.io>
(cherry picked from commit 94c844fd4d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-04 17:23:26 +00:00
Matti Paaso
656d26f1c5 Provisioning: Update Axivion bauhaus-suite
Update tool from 7.10.5 into 7.11.1

Task-number: QTQAINFRA-7596
Pick-to: 6.10 6.8
Change-Id: Iafb54207d654c484b27f5e8de701f3946b6e1aa6
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 31ea7c6c4a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-04 17:23:20 +00:00
Tero Heikkinen
17b78a06d4 Ubuntu 24.04: Upgrade to Ubuntu 24.04.2 LTS in Tier1 X11
This upgrade is needed to fix:
tst_QScreenCaptureBackend failed on Ubuntu 24.04 GNOME X11

Old Tier1: qtci-linux-Ubuntu-24.04-x86_64-51 - X11
New Tier1: qtci-linux-Ubuntu-24.04-x86_64-54 - X11

Other fixes included:
  - 24.04.2 has also a fix to mutterlib issue
  - https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/2095396
  - Which caused a crash seen in journal system logs
  - Installed no-overview gnome extension to fix issue: QTBUG-132070

Pick-to: 6.10
Task-number: QTQAINFRA-7007
Task-number: QTBUG-128515
Task-number: QTBUG-132070
Change-Id: I4ed86470d7b4ce82802f0a98726eb1ed51931623
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit c6ae09efea)
2026-02-04 19:23:14 +02:00
Tatiana Borisova
064d6696df Update the openapi-generator-cli version to the latest 7.18.0
- the newest 7.18.0 has some generation updates,
that affect named inline objects generation. It may be
useful from testing perspective to have the latest version
on CI.

Change-Id: Iaaaae823b7ccc1496f83e5af845bfcfa7999767f
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit e5871fa6e6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-04 18:23:07 +01:00
Tim Blechmann
250c07e631 FFmpeg: pass minimum deployment target as extra compiler flags
When building on iOS, the minimum deployment target was only declared as
linker flags for the libary. However the flags can affect the run-time
features by potentially enabling APIs or affecting codegen if the
compiler can assume that certain CPU features are present.
We should therefore pass the minimum deployment target as compiler flags
as well as linker flag.

Pick-to: 6.10 6.8 6.5
Change-Id: If9b96fb31bf4173da2e4c574c1c080be075851b8
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 1a9daf1574)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-04 17:23:02 +00:00
Rami Potinkara
7733013b4d Coin: Update JDK to 21 LTS
Update Coin to use JDK 21.0.9 LTS:
-macOS 21.0.9
-macOS ARM 21.0.9
-OpenSUSE 16 21.0.9.0-160000.1.1
-OpenSUSE 15.x 21.0.9.0-156000.3.18.2
-RHEL 8.x and 9.x 21.0.9.0.10-1.el9
-SLES 15 21.0.9.0-150600.3.18.2
-Ubuntu 22.04, 22.04 and 24.04 21
-Windows 21.0.9

Task-number: QTBUG-130516
Task-number: QTBUG-130497
Change-Id: Ie4d2706b15000b5cbd71991abb4c840027ef2c82
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit d0c5982795)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-02-04 17:22:53 +00:00
Assam Boudjelthia
5fc5b79f16 Provisioning: add Android tools to PATH
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.10 6.8 6.5
Change-Id: Ib6c255edae5e5773551fab1008ebdb9a5e1ff8f2
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 33695df07e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-29 08:19:23 +00:00
Rami Potinkara
d4dfc9718b Provisioning: update Gradle cache to Android SDK 36
This patch updates build.gradle to set compile- and
targetSdkVersion to 36.

Task-number: QTBUG-138552
Task-number: QTBUG-138549
Pick-to: 6.10 6.8
Change-Id: I44be99956f39e7bc23e8c5a3d15289dfdd574921
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
(cherry picked from commit 45aeb45a6e)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-29 08:19:16 +00:00
Matti Paaso
7383c38f43 Provisioning: Remove system openssl3 on rhel 8
openssl3 package installation started to fail in provisioning due
to missing dependencies. Removing installation, and rely on self
compiled version of openssl3 (09-openssl.sh). Set PKG_CONFIG_PATH
to the built openssl.

Task-number: QTQAINFRA-7620
Pick-to: 6.10 6.8 6.5
Change-Id: I4626fffe2de669686fd76b054018fb4f98983e36
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 606a8b29c8)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-29 08:19:11 +00:00
Tero Heikkinen
398d58c520 Fix failing repo-clones in provisioning with correct URL
Switching repo-clones.ci.qt.io --> repo-clones-apt.ci.qt.io
with testserver where it was missing. Removes temp quick fix.

Replace also ping check towards new repo-clones-apt server.

(amends 13487118df)

Pick-to: 6.10 6.8 6.5
Task-number: QTQAINFRA-7632
Change-Id: Iff32904aeb9c66f4c76cd1dd0e3d468ca0e9dabd
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
(cherry picked from commit 51bcd64151)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-29 08:19:06 +00:00
Rami Potinkara
399f581855 Provisioning: bump Android sdkBuildToolsVersion and sdkApiLevel to 36
This patch bumps:
-The sdkBuildToolsVersion used in Coin to 36.0.0
-The sdkApiLevel used in Coin to 36

Task-number: QTBUG-138550
Task-number: QTBUG-138549
Pick-to: 6.10 6.8
Change-Id: Ic63cd28ba39743e517ea3a3e2f9ec08bd5dc3267
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 2795f20a4e)
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2026-01-29 10:18:58 +02:00
Nils Petter Skålerud
5217ba2d0a FFmpeg, Android: Use 'llvm-strip' from Android NDK explicitly
When running 'install-ffmpeg-android.sh' on Ubuntu hosts, it may fail
due to the FFmpeg build process using the host's 'strip' executable.
This causes the build to fail due to the 'strip' throwing an error
due to it not being able to recognize the format of the .so files for
the FFmpeg Android build.

This patch solves this by explicitly using the executable 'llvm-strip'
command from the Android NDK.

Pick-to: 6.10 6.8
Change-Id: Ia32c31e3e9d1f550a026f2684362e19d663a8863
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit c5a42f267f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-29 08:18:51 +00:00
Rami Potinkara
b5b86a4508 Android: Android 16 as maximum supported version
This patch
- Replaces Android 15 with Android 16 as a maximum version
- Sets Android 16 as significant and switches to r07 version

Task-number: QTQAINFRA-7299
Task-number: QTQAINFRA-7298
Pick-to: 6.10 6.8
Change-Id: Ic2ac071da7ab1763225c82e441c27f60cc25fe06
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit da6cc0ce0e)
2026-01-29 10:18:44 +02:00
Nils Petter Skålerud
b4bb8734fb Android, FFmpeg: Explicitly set page-size for patchelf
Android arm64 and x86_64 builds now require 16KB page size alignment in
native binaries, this includes FFmpeg. When running patchelf on the
binaries, it will implicitly re-align the affected sections to 4KB page
size.

This patch solves this by using the --page-size flag for patchelf, only
for the builds that require it.

Pick-to: 6.10 6.8
Fixes: QTBUG-142332
Change-Id: Iba88bf702fd075d2b4432d9cde94f779b14de52f
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit b9c677baad)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-28 12:54:21 +00:00
Tero Heikkinen
a757f93331 Fix openSUSE 16.0 python dependency failing with libexpat1
To fix ImportError:
  /usr/lib64/python3.13/lib-dynload/
  pyexpat.cpython-313-x86_64-linux-gnu.so:
  undefined symbol: XML_SetAllocTrackerActivationThreshold

Current libexpat1-2.7.1-160000.2.2 did not export the Alloc Tracker
symbol but Python 3.13.11’s pyexpat module was built expecting symbol.

Therefore needs to install newer available libexpat1-2.7.1-160000.3.1

Fixes: QTQAINFRA-7650
Change-Id: Iea9b838e97830c9c6f2b1fa3be8db02447b49de4
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 6bf59c7c90)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-28 12:54:19 +00:00
Qt Submodule Update Bot
89d35e1a10 Update submodules on '6.11 in qt/qt5'
Change-Id: I178ba5f294f080f40a5aee4e8413f2f679946e05
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-27 12:05:43 +00:00
Pavel Dubsky
de278446ba Update FFmpeg version to n7.1.3
Task-number: QTBUG-142159
Pick-to: 6.10 6.10.2 6.8 6.5
Change-Id: I139e4961185d5a88900ba9582a4f8ce10e7ea4c1
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Tim Blechmann <tim.blechmann@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
(cherry picked from commit 90d17e93a9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-23 10:11:15 +00:00
Qt Submodule Update Bot
77861386ac Update submodules on '6.11 in qt/qt5'
Change-Id: I309cfa35044dce4972a29cf2b09df52f22dc98ab
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-22 19:46:24 +00:00
Tero Heikkinen
f5f14e7b58 Temp quick fix for failing repo-clones in provisioning
Skip repo-clones.ci.qt.io with testserver where it should
use repo-clones-apt.ci.qt.io. Permament fix ongoing.

(related 13487118df)

Pick-to: 6.10 6.8 6.5
Task-number: QTQAINFRA-7632
Change-Id: I22bae5dfc96df82bb308233ec895f7164f4cc629
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2026-01-16 16:29:13 +00:00
Dimitrios Apostolou
5ee15a39c9 Enable sccache on macos-universal-on-arm64
Task-number: QTBUG-141785
Pick-to: 6.10 6.8
Change-Id: I63283fa327186226f6027c38a08bad1dfebdf2f2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit c16277f9d3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-16 01:20:16 +00:00
Qt Submodule Update Bot
bed250f1eb Update submodules on '6.11 in qt/qt5'
Change-Id: I3429df221c6c601bc047a8772422facc13191c34
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-15 13:11:38 +00:00
183 changed files with 1602 additions and 571 deletions

92
.gitmodules vendored
View File

@@ -1,40 +1,40 @@
[submodule "qtbase"]
path = qtbase
url = ../qtbase.git
branch = 6.11
branch = 6.11.0
status = essential
[submodule "qtsvg"]
depends = qtbase
path = qtsvg
url = ../qtsvg.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtdeclarative"]
depends = qtbase
recommends = qtimageformats qtshadertools qtsvg qtlanguageserver
path = qtdeclarative
url = ../qtdeclarative.git
branch = 6.11
branch = 6.11.0
status = essential
[submodule "qtactiveqt"]
depends = qtbase
path = qtactiveqt
url = ../qtactiveqt.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtmultimedia"]
depends = qtbase qtshadertools
recommends = qtdeclarative qtquick3d
path = qtmultimedia
url = ../qtmultimedia.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qttools"]
depends = qtbase
recommends = qtdeclarative qtactiveqt
path = qttools
url = ../qttools.git
branch = 6.11
branch = 6.11.0
status = essential
[submodule "qtxmlpatterns"]
depends = qtbase
@@ -47,7 +47,7 @@
depends = qttools
path = qttranslations
url = ../qttranslations.git
branch = 6.11
branch = 6.11.0
status = essential
priority = 30
[submodule "qtdoc"]
@@ -55,7 +55,7 @@
recommends = qtmultimedia qtshadertools qttasktree qtwebengine
path = qtdoc
url = ../qtdoc.git
branch = 6.11
branch = 6.11.0
status = essential
priority = 40
[submodule "qtrepotools"]
@@ -68,7 +68,7 @@
depends = qtbase
path = qtqa
url = ../qtqa.git
branch = 6.11
branch = 6.11.0
status = essential
priority = 50
[submodule "qtlocation"]
@@ -76,21 +76,21 @@
recommends = qtdeclarative
path = qtlocation
url = ../qtlocation.git
branch = 6.11
branch = 6.11.0
status = preview
[submodule "qtpositioning"]
depends = qtbase
recommends = qtdeclarative qtserialport
path = qtpositioning
url = ../qtpositioning.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtsensors"]
depends = qtbase
recommends = qtdeclarative
path = qtsensors
url = ../qtsensors.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtsystems"]
depends = qtbase
@@ -117,61 +117,61 @@
recommends = qtdeclarative
path = qtconnectivity
url = ../qtconnectivity.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtwayland"]
depends = qtbase
recommends = qtdeclarative
path = qtwayland
url = ../qtwayland.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qt3d"]
depends = qtbase
recommends = qtdeclarative qtshadertools qtmultimedia
path = qt3d
url = ../qt3d.git
branch = 6.11
branch = 6.11.0
status = deprecated
[submodule "qtimageformats"]
depends = qtbase
path = qtimageformats
url = ../qtimageformats.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtserialbus"]
depends = qtbase
recommends = qtserialport
path = qtserialbus
url = ../qtserialbus.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtserialport"]
depends = qtbase
path = qtserialport
url = ../qtserialport.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtwebsockets"]
depends = qtbase
recommends = qtdeclarative
path = qtwebsockets
url = ../qtwebsockets.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtwebchannel"]
depends = qtbase
recommends = qtdeclarative qtwebsockets
path = qtwebchannel
url = ../qtwebchannel.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtwebengine"]
depends = qtdeclarative
recommends = qtwebchannel qttools qtpositioning
path = qtwebengine
url = ../qtwebengine.git
branch = 6.11
branch = 6.11.0
status = addon
priority = 10
[submodule "qtcanvas3d"]
@@ -185,28 +185,28 @@
recommends = qtwebengine
path = qtwebview
url = ../qtwebview.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtcharts"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtcharts
url = ../qtcharts.git
branch = 6.11
branch = 6.11.0
status = deprecated
[submodule "qtdatavis3d"]
depends = qtbase
recommends = qtdeclarative qtmultimedia
path = qtdatavis3d
url = ../qtdatavis3d.git
branch = 6.11
branch = 6.11.0
status = deprecated
[submodule "qtvirtualkeyboard"]
depends = qtbase qtdeclarative qtsvg
recommends = qtmultimedia
path = qtvirtualkeyboard
url = ../qtvirtualkeyboard.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtgamepad"]
depends = qtbase
@@ -219,27 +219,27 @@
depends = qtbase qtdeclarative
path = qtscxml
url = ../qtscxml.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtspeech"]
depends = qtbase qtmultimedia
recommends = qtdeclarative
path = qtspeech
url = ../qtspeech.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtnetworkauth"]
depends = qtbase
path = qtnetworkauth
url = ../qtnetworkauth.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtremoteobjects"]
depends = qtbase
recommends = qtdeclarative
path = qtremoteobjects
url = ../qtremoteobjects.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtwebglplugin"]
depends = qtbase qtwebsockets
@@ -252,107 +252,107 @@
depends = qtbase qtdeclarative
path = qtlottie
url = ../qtlottie.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtquicktimeline"]
depends = qtbase qtdeclarative
path = qtquicktimeline
url = ../qtquicktimeline
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtquick3d"]
depends = qtbase qtdeclarative qtshadertools
recommends = qtquicktimeline
path = qtquick3d
url = ../qtquick3d.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtshadertools"]
depends = qtbase
path = qtshadertools
url = ../qtshadertools.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qt5compat"]
depends = qtbase qtdeclarative
path = qt5compat
url = ../qt5compat.git
branch = 6.11
branch = 6.11.0
status = deprecated
[submodule "qtcoap"]
depends = qtbase
path = qtcoap
url = ../qtcoap.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtmqtt"]
depends = qtbase qtdeclarative
recommends = qtwebsockets
path = qtmqtt
url = ../qtmqtt.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtopcua"]
depends = qtbase qtdeclarative
path = qtopcua
url = ../qtopcua.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtlanguageserver"]
depends = qtbase
path = qtlanguageserver
url = ../qtlanguageserver.git
branch = 6.11
branch = 6.11.0
status = preview
[submodule "qthttpserver"]
depends = qtbase
recommends = qtwebsockets
path = qthttpserver
url = ../qthttpserver.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtquick3dphysics"]
depends = qtbase qtdeclarative qtquick3d qtshadertools
path = qtquick3dphysics
url = ../qtquick3dphysics.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtgrpc"]
depends = qtbase
recommends = qtdeclarative
path = qtgrpc
url = ../qtgrpc.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtquickeffectmaker"]
depends = qtbase qtdeclarative qtshadertools
recommends = qtquick3d
path = qtquickeffectmaker
url = ../qtquickeffectmaker.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qtgraphs"]
depends = qtbase qtdeclarative qtquick3d
path = qtgraphs
url = ../qtgraphs.git
branch = 6.11
branch = 6.11.0
status = addon
[submodule "qttasktree"]
depends = qtbase
path = qttasktree
url = ../qttasktree.git
branch = 6.11
branch = 6.11.0
status = preview
[submodule "qtopenapi"]
depends = qtbase
recommends = qtdeclarative
path = qtopenapi
url = ../qtopenapi.git
branch = 6.11
branch = 6.11.0
status = preview
[submodule "qtcanvaspainter"]
depends = qtbase qtdeclarative qtshadertools
path = qtcanvaspainter
url = ../qtcanvaspainter.git
branch = 6.11
branch = 6.11.0
status = preview

View File

@@ -178,7 +178,6 @@ function(qt_ir_command_line_set_input name val)
endfunction()
# Appends a value of a command line option into a global property.
# Currently unused
function(qt_ir_command_line_append_input name val)
if(NOT "${commandline_option_${name}_alias}" STREQUAL "")
set(name "${commandline_option_${name}_alias}")
@@ -240,6 +239,22 @@ function(qt_ir_commandline_string arg val nextok)
endif()
endfunction()
# Like string, but appends to the existing value instead of overwriting.
# Allows repeated flags like: -skip qtwebengine -skip qtwebview
function(qt_ir_commandline_addString arg val nextok)
if(nextok)
qt_ir_args_get_next_command_line_arg(val)
if("${val}" MATCHES "^-")
qt_ir_add_error("No value supplied to command line options '${arg}'.")
endif()
endif()
qt_ir_validate_value("${arg}" "${val}" success)
if(success)
qt_ir_command_line_append_input("${arg}" "${val}")
endif()
endfunction()
# Sets / handles the value of a command line void option.
# This is an option like --force, which doesn't take any arguments.
# Currently unused
@@ -279,6 +294,7 @@ endfunction()
#
# Currently handles the following types of CLI arguments:
# string
# addString (like string, but accumulates values from repeated flags)
# boolean
# void
#

View File

@@ -89,6 +89,26 @@ function(qt_ir_handle_called_from_configure top_level_src_path out_var_exit_reas
qt_ir_validate_options_for_configure()
# Convert -skip values to module-subset exclusions so init-repository respects them.
qt_ir_get_option_value(skip skip_modules)
if(skip_modules)
string(REPLACE "," ";" skip_modules "${skip_modules}")
list(TRANSFORM skip_modules STRIP)
list(TRANSFORM skip_modules PREPEND "-")
qt_ir_get_option_value(module-subset existing_subset)
if(NOT existing_subset)
set(existing_subset "default")
endif()
list(APPEND skip_modules "${existing_subset}")
list(REMOVE_DUPLICATES skip_modules)
list(JOIN skip_modules "," merged_subset)
qt_ir_set_option_value(module-subset "${merged_subset}")
message(DEBUG "Preprocessed -skip option: module-subset is now: ${merged_subset}")
endif()
# -init_submodules implies --force
qt_ir_set_option_value(force TRUE)

View File

@@ -37,6 +37,7 @@ macro(qt_ir_set_known_command_line_options)
qt_ir_commandline_option(init-submodules TYPE boolean)
# We alias qtbase's submodules option to init-repository module-subset.
qt_ir_commandline_option(submodules ALIAS module-subset TYPE string)
qt_ir_commandline_option(skip TYPE addString)
set_property(GLOBAL PROPERTY _qt_ir_known_command_line_options "${commandline_known_options}")
endmacro()

View File

@@ -120,15 +120,15 @@ Configurations:
# Test on Ubuntu 24.04 x64 X11
-
Id: 'ubuntu-24.04-x64-developer-build-x11-tests'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'ubuntu-24.04-x64-developer-build'
-
Id: 'ubuntu-24.04-x64-x11-tests'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly', 'InsignificantTests']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'ubuntu-24.04-x64'
-
Id: 'opensuse-15.6-developer-build'
@@ -266,6 +266,18 @@ Configurations:
'VCPKG_HOST_TRIPLET=x64-linux-qt',
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
]
-
Id: 'rhel-10.0'
Template: 'qtci-linux-RHEL-10.0-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
Configure arguments: '-nomake examples -release -force-debug-info -headersclean -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON',
'VCPKG_HOST_TRIPLET=x64-linux-qt',
'VCPKG_TARGET_TRIPLET=x64-linux-qt',
]
-
Id: 'ios-universal'
Template: 'qtci-macos-14-arm-106'

View File

@@ -51,7 +51,7 @@ Configurations:
'ANDROID_EMULATOR=emulator_x86_api_28'
]
-
Id: 'android-15-x86_64-on-linux'
Id: 'android-16-x86_64-on-linux'
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
Target os: 'Android_ANY'
Target arch: 'x86_64'
@@ -67,21 +67,5 @@ Configurations:
# 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',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
'ANDROID_EMULATOR=emulator_x86_64_api_35'
]
-
Id: 'android-16-x86_64-on-linux'
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
Target os: 'Android_ANY'
Target arch: 'x86_64'
Compiler: 'GCC'
Target compiler: 'Clang'
Platform dependency: 'rhel-9.6'
Features: ['Sccache', 'WarningsAreErrors', 'AndroidTestRun', 'VMSize8', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM', 'InsignificantTests']
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_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',
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
'ANDROID_EMULATOR=emulator_x86_64_api_36'
]

View File

@@ -10,7 +10,7 @@ Configurations:
Platform dependency: [
'rhel-9.6',
'android-9-x86-on-linux',
'android-15-x86_64-on-linux'
'android-16-x86_64-on-linux'
]
Features: [
'Sccache',
@@ -24,7 +24,7 @@ Configurations:
Environment variables: [
'QT_CI_ARTIFACT_ID_PATH_Android-host=QT_CI_ARTIFACT_ID_PATH_rhel-9.6',
'QT_CI_ARTIFACT_ID_PATH_Android-x86=QT_CI_ARTIFACT_ID_PATH_android-9-x86-on-linux',
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-15-x86_64-on-linux',
'QT_CI_ARTIFACT_ID_PATH_Android-x86_64=QT_CI_ARTIFACT_ID_PATH_android-16-x86_64-on-linux',
'COMMON_TARGET_TEST_CMAKE_ARGS=-DQT_ANDROID_ABIS="x86;x86_64"',
'ANDROID_EMULATOR=emulator_x86_api_28'
]

View File

@@ -12,7 +12,7 @@ Configurations:
Template: 'qtci-macos-15-arm-104'
Compiler: 'Clang'
Target arch: 'x86_64-arm64'
Features: ['Packaging', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Features: ['Sccache', 'Packaging', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-nomake examples -release -force-debug-info -separate-debug-info -headersclean -framework'
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',

View File

@@ -2,7 +2,7 @@ Version: 2
Configurations:
-
Id: 'ubuntu-24.04-x64-examples-and-tests-build'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'NoSubmoduleDependencies']
Configure arguments: '-make examples -make tests'

View File

@@ -2,7 +2,7 @@ Version: 2
Configurations:
-
Id: 'ubuntu-24.04-x64-run-cmake-tests'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'NoSubmoduleDependencies', 'TopLevelRunCMakeTests', 'DisableTests', 'VMSize16']
Configure arguments: ''

View File

@@ -2,7 +2,7 @@ Version: 2
Configurations:
-
Id: 'ubuntu-24.04-x86-static-qtlite'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests', 'MinimalStaticTests']
Configure arguments: >
@@ -224,7 +224,7 @@ Configurations:
]
-
Id: 'ubuntu-24.04-x86-static-qtlite-tests'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly','InsignificantTests']
Platform dependency: 'ubuntu-24.04-x86-static-qtlite'

View File

@@ -24,7 +24,7 @@ Configurations:
Environment variables: []
-
Id: 'linux-quick-bridges'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
Configure arguments: >

View File

@@ -151,7 +151,7 @@ Configurations:
Platform dependency: 'macos-quick-minimal'
-
Id: 'linux-quick-minimal'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DisableTests', 'Insignificant']
Configure arguments: >

View File

@@ -12,7 +12,7 @@ Include: [
'android-arm64-on-macos',
'android-armv7-on-windows',
'android-9-x86-on-linux',
'android-15-x86_64-on-linux'
'android-16-x86_64-on-linux'
],
offline_documentation.yaml
]

View File

@@ -2,67 +2,67 @@ Version: 2
Module only: True
Configurations:
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET1'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET2'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET3'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET4'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET5'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET6'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET7'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET8'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET9'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Packaging']
Target arch: 'TARGET10'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Insignificant']
Target arch: 'INSIGNIFICANT_TARGET1'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Insignificant']
Target arch: 'INSIGNIFICANT_TARGET2'
-
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'Yocto'
Features: ['Insignificant']
Target arch: 'INSIGNIFICANT_TARGET3'

View File

@@ -0,0 +1,13 @@
#!/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 -ex
sudo tee -a /etc/dconf/db/local.d/00-media-automount <<"EOF"
[org/gnome/desktop/media-handling]
automount=false
automount-open=false
EOF
sudo dconf update

View File

@@ -0,0 +1,88 @@
### RHEL 10.0 ###
Hard Disk: 500G
Network: CI
Video Card: Total Video Memory: 64MB
Boot options/Firmware: BIOS
Language: English (United States)
Keyboard: English (US), Norwegian (Windows), Finnish (Windows)
Time & Date: Etc/Coordinated Universal Time
Software Selection: Server with GUI
Installation Destination: Automatic partitioning selected
Root Passowrd: Set
Network & Host..: Connected
KDUMP enabled: Memory Reservation: automatic
Begin Installation
Reboot
# Configure Settings
Notifications:
* Lock Screen Notifications: OFF
* Applications: Set notification off
* Do Not Disturb: on
Applications:
* Disable notifications from all applications
Privacy:
* Blank Screen Delay: Never
* Screen Lock: OFF
Power:
* Blank screen: Never
Displays:
* Resolution: 1280 x 800
Users:
* Automatic login on
# Add user to sudoers
Add 'qt ALL=NOPASSWD: ALL' to /etc/sudoers.d/qt
Add 'GRUB_GFXMODE=1280x800' to /etc/default/grub
sudo grub2-mkconfig -o /etc/grub2.cfg
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
# Add support for virtio driver
su
echo "add_drivers+=\" virtio-blk \"" >> /etc/dracut.conf.d/virtio.conf
dracut -f
# NOTE!
# - RHEL uses 'sudo subscription-manager release --set=10.0' in provisioning
# - Do not update Tier 1 via GUI without using this same --set before provisioning
# - To avoid System to have newer packages than RPMS which will cause update issues
# Register RHEL before it's possible to install qemu-guest-agent
subscription-manager register
yum -y install qemu-guest-agent
# Do these from Opennebula UI!
# Enable network connection from right upper corner
This is done when the VM is launched as persistent in OpenNebula.
# Fetch and run coin-setup
Download http://coin/coin/binary/linux_amd64/coin-setup
# run as qt user
run './coin-setup'
# Switch to use GNOME Classic user interface
# GNOME Classic was selected because there's an issue with Standard (wayland display server).
# Autotest start failing because terminal session remains in Activities Overview.
# https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3854
First execute script ./01-disable-automounting.sh (dconf update crash in GNOME Classic)
logout -> Select user (without it the drop down menu won't appear) -> switch to 'GNOME Classic' -desktop session from drop down menu in login screen
# If gear icon is not seen, check is 'GNOME Classic' -desktop session installed, and install if it's missing
ls /usr/share/xsessions/
# This should list something like these if it's installed
gnome-classic.desktop
gnome.desktop
# To install GNOME Classic if it's missing
sudo dnf reinstall gnome-classic-session
# In RHEL 10.0 even with 'GNOME Classic' -desktop the Activities Overview is still in use
# It can be bypassed via 'No Overview' -GNOME extension:
# - https://extensions.gnome.org/extension/4099/no-overview/
# - Select GNOME Shell version 47 to download
# - Unpack extension from tar.gz
sudo mv <extension_folder> /usr/share/gnome-shell/extensions/no-overview@fthx
sudo chown -R root: /usr/share/gnome-shell/extensions/no-overview@fthx
sudo chmod 755 -R /usr/share/gnome-shell/extensions/no-overview@fthx
sudo reboot
gnome-extensions list
gnome-extensions enable no-overview@fthx
Reboot

View File

@@ -53,6 +53,17 @@ run 'sudo ufw disable'
run 'sudo apt install qemu-guest-agent'
# Install no-overview gnome extension to prevent desktop overview at boot (QTBUG-132070)
# - https://extensions.gnome.org/extension/4099/no-overview/
# - Select GNOME Shell version 46 to download
# - Unpack extension to (mkdir): /usr/share/gnome-shell/extensions/no-overview@fthx
sudo chown -R root /usr/share/gnome-shell/extensions/no-overview@fthx
sudo chmod 755 -R /usr/share/gnome-shell/extensions/no-overview@fthx
sudo reboot
gnome-extensions list
gnome-extensions enable no-overview@fthx
gnome-extensions info no-overview@fthx # Check for "Active"
# Fetch and run coin-setup (in Opennebula)
Download http://coin/coin/binary/linux_amd64/coin-setup
run 'chmod +x ./coin-setup' to make it executable

View File

@@ -1,12 +1,7 @@
*.iml
.gradle
.idea
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures

View File

@@ -4,19 +4,19 @@ plugins {
android {
namespace 'com.example.gradle_project'
compileSdk 35
compileSdk 36
defaultConfig {
applicationId "com.example.gradle_project"
minSdk 28
targetSdk 35
targetSdk 36
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}

View File

@@ -6,7 +6,7 @@
android:allowBackup="true"
android:label="gradle_project"
android:supportsRtl="true"
tools:targetApi="35">
tools:targetApi="36">
<activity
android:name=".MainActivity"
android:exported="true">

View File

@@ -1,8 +1,8 @@
[versions]
agp = "8.10.1"
core = "1.16.0"
agp = "9.0.0"
core = "1.17.0"
appcompat = "1.7.1"
material = "1.12.0"
material = "1.13.0"
constraintlayout = "2.2.1"
[libraries]

View File

@@ -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="35.0.1"
sdkApiLevel="android-35"
sdkBuildToolsVersion="36.0.0"
sdkApiLevel="android-36"
toolsSha1="5fdcc763663eefb86a5b8879697aa6088b041e70"
ndkVersionLatest="r27c"
@@ -184,45 +184,27 @@ echo "Unzipping the Android 9 to $minVersionDestination"
sudo unzip -o -q "$minVersionFilePath" -d "$minVersionDestination"
rm "$minVersionFilePath"
echo "Download and unzip Android 15 System Image"
maxVersionFileName="x86_64-35_r08.zip"
maxVersionDestination="$sdkTargetFolder/system-images/android-35/google_apis/"
echo "Download and unzip Android 16 System Image"
maxVersionFileName="x86_64-36_r07.zip"
maxVersionDestination="$sdkTargetFolder/system-images/android-36/google_apis/"
maxVersionFilePath="$maxVersionDestination/$maxVersionFileName"
maxVersionCiUrl="$basePath/system_images/google_apis/$maxVersionFileName"
maxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$maxVersionFileName"
maxVersionSha1="d79169884cabc6680cb29d32c2112ad46c858c1b"
maxVersionSha1="c6bf44bdcd885bb902b4ba752d111a073ad7a817"
mkdir -p "$maxVersionDestination"
DownloadURL "$maxVersionCiUrl" "$maxVersionUrl" "$maxVersionSha1" "$maxVersionFilePath"
echo "Unzipping the Android 15 to $maxVersionDestination"
echo "Unzipping the Android 16 to $maxVersionDestination"
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
rm "$maxVersionFilePath"
echo "Download and unzip Android 16 System Image for insignificant"
insignificantMaxVersionFileName="x86_64-36_r06.zip"
insignificantMaxVersionDestination="$sdkTargetFolder/system-images/android-36/google_apis/"
insignificantMaxVersionFilePath="$insignificantMaxVersionDestination/$insignificantMaxVersionFileName"
insignificantMaxVersionCiUrl="$basePath/system_images/google_apis/$insignificantMaxVersionFileName"
insignificantMaxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$insignificantMaxVersionFileName"
insignificantMaxVersionSha1="a9b0b4a0488e0c6c380f5485507950f011388511"
mkdir -p "$insignificantMaxVersionDestination"
DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath"
echo "Unzipping the Android 16 insignicant to $insignificantMaxVersionDestination"
sudo unzip -o -q "$insignificantMaxVersionFilePath" -d "$insignificantMaxVersionDestination"
rm "$insignificantMaxVersionFilePath"
echo "Checking the contents of Android SDK again..."
ls -l "$sdkTargetFolder"
echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
-k "system-images;android-28;google_apis;x86"
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_35 -c 2048M -f \
-k "system-images;android-35;google_apis;x86_64"
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \
-k "system-images;android-36;google_apis;x86_64"
@@ -250,12 +232,16 @@ cp "${scripts_dir_name}/../unix/${emulator_script_filename}" "${HOME}"
ANDROID_EMULATOR_RUNNER="${HOME}/${emulator_script_filename}"
SetEnvVar "ANDROID_EMULATOR_RUNNER" "$ANDROID_EMULATOR_RUNNER"
SetEnvVar "PATH" "\$PATH:$sdkTargetFolder/emulator"
SetEnvVar "PATH" "\$PATH:$sdkTargetFolder/platform-tools"
SetEnvVar "PATH" "\$PATH:$sdkTargetFolder/cmdline-tools/latest/bin"
# Gradle Caching
cp -r "${scripts_dir_name}/android/gradle_project" /tmp/gradle_project
cd /tmp/gradle_project
# Get Gradle files from qtbase
qtbaseGradleUrl="https://code.qt.io/cgit/qt/qtbase.git/plain/src/3rdparty/gradle"
commit_sha="bb12c984b2c838bdb06169ef7d659384c02c8b82"
commit_sha="269a75dbd1262a714eb238c42e5159a0a8979818"
curl "$qtbaseGradleUrl/gradle.properties?h=$commit_sha" > gradle.properties
curl "$qtbaseGradleUrl/gradlew?h=$commit_sha" > gradlew
curl "$qtbaseGradleUrl/gradlew.bat?h=$commit_sha" > gradlew.bat

View File

@@ -15,18 +15,20 @@ case "$uname_m" in
x86_64|amd64)
sha256="6f98805688d19672bd699fbbfa2c2cf0fc054ac3df1f0e6a47664d963d530255"
pkgname="ninja-$version-linux-x64.zip"
pkgnameExt="ninja-linux.zip"
dirname="ninja-$version-linux-x64"
;;
arm64|aarch64)
sha256="5c25c6570b0155e95fce5918cb95f1ad9870df5768653afe128db822301a05a1"
pkgname="ninja-$version-linux-arm64.zip"
pkgnameExt="ninja-linux-aarch64.zip"
dirname="ninja-$version-linux-arm64"
;;
*) fatal "Unknown architecture in uname: $uname_m" 43 ;;
esac
internalUrl="http://ci-files01-hki.ci.qt.io/input/ninja/$pkgname"
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgname"
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgnameExt"
targetFile="$HOME/$pkgname"
DownloadURL "$internalUrl" "$externalUrl" "$sha256" "$targetFile"

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="36.0.0"
sdkApiLevel="android-36"
toolsSha1="c3e06a1959762e89167d1cbaa988605f6f7c1d24"
ndkVersionLatest="r27c"

View File

@@ -0,0 +1,299 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script will build and install FFmpeg shared libraries.
#
# The script will package iOS and iOS-simulator binaries into one
# single .xcframework. This .xcframework cannot contain .dylibs
# directly. It must contain .framework files. Unlike macOS, binaries
# should NOT be lipoed together.
#
# From https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle
# "Avoid using dynamic library files (.dylib files) for dynamic
# linking. An XCFramework can include dynamic library files, but only
# macOS supports these libraries for dynamic linking. Dynamic linking
# on iOS, iPadOS, tvOS, visionOS, and watchOS requires the XCFramework
# to contain .framework bundles."
#
# This script can take an optional final parameter to control
# installation directory.
set -eoux pipefail
# Must match or be lower than the minimum iOS version supported by the version of Qt that is
# is currently being built.
readonly MINIMUM_IOS_VERSION="16.0"
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
ffmpeg_version=$(ffmpeg_version_default)
ffmpeg_source_dir=$(download_ffmpeg)
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
default_prefix="/usr/local/ios/ffmpeg"
prefix="${1:-$default_prefix}"
# Qt doesn't utilize all FFmpeg components. This is a list of the ones
# we care about
ffmpeg_components="libavcodec libavformat libavutil libswresample libswscale"
target_platform_to_sdk() {
local target_platform="$1"
if [[ "$target_platform" == "arm64-simulator" ]] \
|| [[ "$target_platform" == "x86_64-simulator" ]]; then
echo "iphonesimulator"
elif [ "$target_platform" == "arm64-iphoneos" ]; then
echo "iphoneos"
else
echo "Error finding corresponding iOS SDK for target platform: ${target_platform}"
exit 1
fi
}
build_ffmpeg_ios() {
local target_platform="$1"
local target_cpu_arch=""
local target_sdk;
target_sdk="$(target_platform_to_sdk "${target_platform}")"
if [ "$target_platform" == "arm64-simulator" ]; then
target_cpu_arch="arm64"
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
elif [ "$target_platform" == "x86_64-simulator" ]; then
target_cpu_arch="x86_64"
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
elif [ "$target_platform" == "arm64-iphoneos" ]; then
target_cpu_arch="arm64"
minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION"
else
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
exit 1
fi
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
sudo mkdir -p "$build_dir"
pushd "$build_dir"
local sysroot;
sysroot="$(xcrun --sdk "${target_sdk}" --show-sdk-path)"
local cc;
cc="$(xcrun -f --sdk ${target_sdk} clang)"
local cxx;
cxx="$(xcrun -f --sdk ${target_sdk} clang++)"
# We add -g so we get debug symbols.
local common_arch_flags="${minos} -arch ${target_cpu_arch} -g"
local config_parameters=(
$ffmpeg_config_options
--sysroot="${sysroot}"
--enable-cross-compile
--enable-optimizations
--prefix="$prefix"
--arch="$target_cpu_arch"
--cc="$cc"
--cxx="$cxx"
--extra-cflags="${common_arch_flags}"
--extra-cxxflags="${common_arch_flags}"
--extra-ldflags="${common_arch_flags}"
--target-os=darwin
--enable-shared
--disable-static
--install-name-dir="@rpath"
--disable-audiotoolbox
# We perform manual stripping after generating dSYMs.
# Make sure to skip it during FFmpeg compilation.
--disable-stripping
)
sudo "$ffmpeg_source_dir/configure" "${config_parameters[@]}"
sudo make install DESTDIR="$build_dir/installed" -j4
popd
}
build_info_plist() {
local file_path="$1"
local framework_name="$2"
local framework_id="$3"
# Apple plist format has a strict requirement that the version string
# contains up to 3 numerics separated by a dot. Meanwhile, FFmpeg versioning
# tends to use an 'n' prefix in their versioning. We use a regex to convert
# and verify the version string.
#
# https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion
local formatted_ffmpeg_version
if [[ $ffmpeg_version =~ ([0-9]+(\.[0-9]+){0,2}) ]]; then
formatted_ffmpeg_version="${BASH_REMATCH[1]}"
else
echo "Unable to format FFmpeg version string '$ffmpeg_version' into corresponding Apple Info.plist format"
exit 1
fi
local minimum_version_key="MinimumOSVersion"
local supported_platforms="iPhoneOS"
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${framework_name}</string>
<key>CFBundleIdentifier</key>
<string>${framework_id}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${framework_name}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>${formatted_ffmpeg_version}</string>
<key>CFBundleVersion</key>
<string>${formatted_ffmpeg_version}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>${minimum_version_key}</key>
<string>${MINIMUM_IOS_VERSION}</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>${supported_platforms}</string>
</array>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>"
echo $info_plist | sudo tee ${file_path} 1>/dev/null
}
# Create a 'traditional' framework from the corresponding dylib.
# This includes creating a folder for it, and inserting Info.plist
# and dylib. We also patch runpaths in the dylib to match the
# frameworks directory structure.
#
# There is no command-line tool for generating .framework
# files. By inspecting .frameworks generated through Xcode, we
# have found they are primarily a directory with a very specific
# layout. The code below generates a matching layout.
#
# See https://developer.apple.com/library/archive/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html
create_framework() {
local ffmpeg_component_name="$1"
local platform="$2"
local ffmpeg_build_path="${ffmpeg_source_dir}/build_ios/${platform}/installed/${prefix}"
local ffmpeg_component_src_dylib="${ffmpeg_build_path}/lib/${ffmpeg_component_name}.dylib"
local ffmpeg_component_framework="${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework"
local ffmpeg_component_target_dylib="${ffmpeg_component_framework}/${ffmpeg_component_name}"
# Make directory for the .framework
sudo mkdir -p "${ffmpeg_component_framework}"
# Inser the Info.plist
build_info_plist \
"${ffmpeg_component_framework}/Info.plist" \
"${ffmpeg_component_name}" \
"io.qt.ffmpegkit.${ffmpeg_component_name}"
# Copy in the dylib
sudo cp \
"${ffmpeg_component_src_dylib}" \
"${ffmpeg_component_target_dylib}"
# By default, runpaths will look for FFmpeg dependencies in
# '@rpath/libavcodec.xx.yy.dylib'. We want this path to be in the form
# '@rpath/libavcodec.framework/libavcodec.dylib'.
# Set the dylibs self-identity
sudo install_name_tool \
-id "@rpath/${ffmpeg_component_name}.framework/${ffmpeg_component_name}" \
"${ffmpeg_component_target_dylib}"
# Update the runpaths for each FFmpeg dependency entry
otool -L "$ffmpeg_component_target_dylib" \
| tail -n +2 \
| awk '{print $1}' \
| while read -r dep; do
# Go through all dependency entries of this .dylib,
# see if they point to a FFmpeg component. If it does,
# modify the entry to match the final
# directory structure.
for ffdep in $ffmpeg_components; do
if [[ "$dep" == */${ffdep}.* ]]; then
echo "Rewriting dependency: $dep -> @rpath/${ffdep}.framework/${ffdep}"
sudo install_name_tool -change \
"$dep" \
"@rpath/${ffdep}.framework/${ffdep}" \
"$ffmpeg_component_target_dylib"
fi
done
done
}
# dSYM symbols must be generated manually, these are required for
# App Store deployment. We generate them from the .dylibs inside
# our .frameworks. This has to be done after patching the runpaths.
# At the end, we strip the dylib.
create_dsym() {
local ffmpeg_component_name="$1"
local platform="$2"
local ffmpeg_build_path="${ffmpeg_source_dir}/build_ios/${platform}/installed/${prefix}"
local target_dylib="${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework/${ffmpeg_component_name}"
sudo dsymutil "${target_dylib}" \
-o "${ffmpeg_build_path}/framework/${ffmpeg_component_name}.framework.dSYM"
local target_sdk;
target_sdk=$(target_platform_to_sdk "${platform}")
local strip;
strip="$(xcrun -f --sdk ${target_sdk} strip)"
sudo ${strip} -x "${target_dylib}"
}
create_xcframework() {
# Create 'traditional' framework from the corresponding dylib,
# also creating
local framework_name="$1"
local target_platform_a="$2"
local target_platform_b="$3"
local platform_a_build="${ffmpeg_source_dir}/build_ios/${target_platform_a}/installed/${prefix}"
local fw_a="${platform_a_build}/framework/${framework_name}.framework"
local dsym_a="${fw_a}.dSYM"
local platform_b_build="${ffmpeg_source_dir}/build_ios/${target_platform_b}/installed/${prefix}"
local fw_b="${platform_b_build}/framework/${framework_name}.framework"
local dsym_b="${fw_b}.dSYM"
sudo mkdir -p "$prefix/lib/"
sudo xcodebuild -create-xcframework \
-framework "$fw_a" -debug-symbols "$dsym_a" \
-framework $fw_b -debug-symbols "$dsym_b" \
-output "${prefix}/lib/${framework_name}.xcframework"
}
build_ffmpeg_ios "arm64-iphoneos"
build_ffmpeg_ios "x86_64-simulator"
for name in $ffmpeg_components; do
create_framework "$name" "arm64-iphoneos"
create_framework "$name" "x86_64-simulator"
create_dsym "$name" "arm64-iphoneos"
create_dsym "$name" "x86_64-simulator"
done
# Create corresponding xcframeworks containing both arm64 and x86_64-simulator frameworks:
for name in $ffmpeg_components; do
create_xcframework "$name" "arm64-iphoneos" "x86_64-simulator"
done
# xcframeworks are already installed directly into the target output directory.
# We need to install headers
sudo cp -r "${ffmpeg_source_dir}/build_ios/arm64-iphoneos/installed/${prefix}/include" "$prefix"
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" "$prefix"

View File

@@ -9,12 +9,12 @@ set -ex
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
echo "Installing Java Development Kit"
version=17.0.12
version=21.0.9
targetFile=jdk-${version}_macos-x64_bin.dmg
expectedHash="6fba2fbe5d181bd2ef7fd79e0335278c13f611cb"
expectedHash="3df8761bfba8d6a4633ecc92f1eff0a58d79c304"
url=ci-files01-hki.ci.qt.io:/hdd/www/input/mac
# url_alt=https://www.oracle.com/java/technologies/downloads/#jdk17-mac
# url_alt=https://download.oracle.com/java/21/archive/jdk-21.0.8_macos-x64_bin.dmg
echo "Mounting $targetFile"
sudo mkdir -p /Volumes/files

View File

@@ -8,10 +8,10 @@ set -ex
echo "Installing Java Development Kit"
targetFile=zulu17.54.21-ca-jdk17.0.13-macosx_aarch64.dmg
targetFile=zulu21.46.19-ca-jdk21.0.9-macosx_aarch64.dmg
url=ci-files01-hki.ci.qt.io:/hdd/www/input/mac
# url_alt=https://cdn.azul.com/zulu/bin/zulu17.54.21-ca-jdk17.0.13-macosx_aarch64.dmg
# url_alt=https://cdn.azul.com/zulu/bin/zulu21.46.19-ca-jdk21.0.9-macosx_aarch64.dmg
echo "Mounting $targetFile"
sudo mkdir -p /Volumes/files
@@ -22,12 +22,12 @@ sudo umount /Volumes/files
sudo hdiutil attach "/tmp/$targetFile"
echo Installing JDK
cd /Volumes/Azul\ Zulu\ JDK\ 17.54+21 && sudo installer -pkg Double-Click\ to\ Install\ Azul\ Zulu\ JDK\ 17.pkg -target /
cd /Volumes/Azul\ Zulu\ JDK\ 21.46+19 && sudo installer -pkg Double-Click\ to\ Install\ Azul\ Zulu\ JDK\ 21.pkg -target /
echo "Unmounting $targetFile"
sudo hdiutil unmount /Volumes/Azul\ Zulu\ JDK\ 17.54+21 -force
sudo hdiutil unmount /Volumes/Azul\ Zulu\ JDK\ 21.46+19 -force
echo "Disable auto update"
sudo defaults write /Library/Preferences/com.oracle.java.Java-Updater JavaAutoUpdateEnabled -bool false
echo "JDK Version = 17.0.13" >> ~/versions.txt
echo "JDK Version = 21.0.9" >> ~/versions.txt

View File

@@ -7,6 +7,7 @@ set -euox pipefail
lib_dir="$1/lib"
additional_suffix="${2:-}"
set_rpath="${3:-yes}"
page_size="${4:-}"
# readelf and patchelf are prerequisite tools for this script. Check
# that they are available.
@@ -81,7 +82,12 @@ for lib_name in "${ffmpeg_libs[@]}"; do
stub_name="${stub_name%%.*}${additional_suffix}.${stub_name#*.}" # Add additional_suffix
fi
patchelf --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path"
additional_command_args=""
if [ -n "$page_size" ]; then
additional_command_args+="--page-size ${page_size}"
fi
patchelf ${additional_command_args} --replace-needed "${BASH_REMATCH[1]}" "${stub_name}" "$lib_path"
fi
done <<< "$(read_needed_deps)"

View File

@@ -4,4 +4,5 @@ ntia-conformance-checker ; python_version >= '3.9'
sbomaudit ; python_version >= '3.9'
sbom2doc ; python_version >= '3.9'
reuse<=5.1.1 ; python_version >= '3.9'
cyclonedx-python-lib==11.0.0 ; python_version >= '3.9'
cyclonedx-python-lib==11.5.0 ; python_version >= '3.9'
jsonschema>=4.20 ; python_version >= '3.12'

View File

@@ -1,5 +1,10 @@
FROM ubuntu:16.04
ARG COIN_RUNS_IN_QT_COMPANY
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
&& sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \
|| echo "Internal package repository not found. Using public repositories."
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
&& { printf '%s\n' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-amd64 main restricted universe multiverse' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-updates-amd64 main restricted universe multiverse' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-backports-amd64 main restricted universe' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 xenial-security-amd64 main restricted universe multiverse' \
> /etc/apt/sources.list; \
} \

View File

@@ -1,5 +1,10 @@
FROM ubuntu:18.04
ARG COIN_RUNS_IN_QT_COMPANY
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
&& sed -i 's;\(archive\|security\)\.ubuntu\.com;repo-clones.ci.qt.io/apt-mirror/mirror;' /etc/apt/sources.list \
|| echo "Internal package repository not found. Using public repositories."
RUN test x"$COIN_RUNS_IN_QT_COMPANY" = xtrue \
&& { printf '%s\n' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-amd64 main restricted universe multiverse' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-updates-amd64 main restricted universe multiverse' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-backports-amd64 main restricted universe' \
'deb [arch=amd64 trusted=yes] http://repo-clones-apt.ci.qt.io:8080 bionic-security-amd64 main restricted universe multiverse' \
> /etc/apt/sources.list; \
} \

View File

@@ -116,7 +116,7 @@ set_common_environment () {
CMD_INSTALL="sudo install"
COIN_RUNS_IN_QT_COMPANY=false
if ping -c1 repo-clones.ci.qt.io >/dev/null 2>&1
if ping -c1 repo-clones-apt.ci.qt.io >/dev/null 2>&1
then
COIN_RUNS_IN_QT_COMPANY=true
fi

View File

@@ -3,12 +3,12 @@
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
ffmpeg_version_default() {
echo "n7.1.2"
echo "n7.1.3"
}
download_ffmpeg() {
local version="${1:-$(ffmpeg_version_default)}"
local sha1="${2:-1e4e937facdbde15943dd093121836bf69f27c7c}"
local sha1="${2:-27051817deec88bed3b9652d49f9127d22268d83}"
local ffmpeg_name="FFmpeg-$version"
local target_dir="$HOME"

View File

@@ -24,43 +24,46 @@ assert_envvar_is_populated_dir() {
}
build_ffmpeg_android() {
local target_arch=$1
local target_dir=$2
local ndk_root=$3
local openssl_android_path=$4
local target_dir=$1
local ndk_root=$2
local openssl_android_path=$3
sudo mkdir -p "$target_dir"
local openssl_include="$openssl_android_path/include"
local target_arch
local openssl_libs
local libs_prefix
local target_cpu
local target_toolchain_arch
if [ "$target_arch" == "x86_64" ]; then
target_toolchain_arch="x86_64-linux-android"
target_arch=x86_64
target_cpu=x86-64
openssl_libs="$openssl_android_path/x86_64"
libs_prefix="_x86_64"
elif [ "$target_arch" == "x86" ]; then
if [ "$os" == "android-x86" ]; then
target_toolchain_arch="i686-linux-android"
target_arch=x86
target_cpu=i686
openssl_libs="$openssl_android_path/x86"
libs_prefix="_x86"
elif [ "$target_arch" == "arm32" ]; then
elif [ "$os" == "android-x86_64" ]; then
target_toolchain_arch="x86_64-linux-android"
target_arch=x86_64
target_cpu=x86-64
openssl_libs="$openssl_android_path/x86_64"
libs_prefix="_x86_64"
elif [ "$os" == "android-arm32" ]; then
target_toolchain_arch="armv7a-linux-androideabi"
target_arch=arm
target_cpu=armv7-a
openssl_libs="$openssl_android_path/armeabi-v7a"
libs_prefix="_arm32-v7a"
elif [ "$target_arch" == "arm64" ]; then
elif [ "$os" == "android-arm64" ]; then
target_toolchain_arch="aarch64-linux-android"
target_arch=aarch64
target_cpu=armv8-a
openssl_libs="$openssl_android_path/arm64-v8a"
libs_prefix="_arm64-v8a"
else
>&2 echo "Unhandled android os param: $os"
exit 1
fi
ln -Ffs "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
@@ -82,12 +85,13 @@ build_ffmpeg_android() {
local cc=${toolchain_bin}/${target_toolchain_arch}${api_version}-clang
local ar=${toolchain_bin}/llvm-ar
local ranlib=${toolchain_bin}/llvm-ranlib
local strip=${toolchain_bin}/llvm-strip
local ffmpeg_config_options
ffmpeg_config_options=$(get_ffmpeg_config_options $build_type)
ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera"
ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/"
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}"
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib} --strip=${strip}"
ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
if [ $page_size == "use_16kb_page_size" ]; then
ffmpeg_config_options+=" --extra-ldflags=-Wl,-z,max-page-size=16384"
@@ -115,33 +119,35 @@ build_ffmpeg_android() {
if [[ "$build_type" == "shared" ]]; then
local fix_dependencies="${BASH_SOURCE%/*}/../shared/fix_ffmpeg_dependencies.sh"
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
local page_size_arg=""
if [ $page_size == "use_16kb_page_size" ]; then
page_size_arg="16384"
fi
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no" "$page_size_arg"
fi
}
if [ "$os" == "android-x86" ]; then
target_arch=x86
target_dir="/usr/local/android/ffmpeg-x86"
envvar_latest="FFMPEG_DIR_ANDROID_X86_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_X86_NDK_PREVIEW"
elif [ "$os" == "android-x86_64" ]; then
target_arch=x86_64
target_dir="/usr/local/android/ffmpeg-x86_64"
envvar_latest="FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_X86_64_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_X86_64_NDK_PREVIEW"
elif [ "$os" == "android-arm32" ]; then
target_arch=arm32
target_dir="/usr/local/android/ffmpeg-arm32"
envvar_latest="FFMPEG_DIR_ANDROID_ARM32_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY1"
envvar_nightly2="FFMPEG_DIR_ANDROID_ARM32_NDK_NIGHTLY2"
envvar_preview="FFMPEG_DIR_ANDROID_ARM32_NDK_PREVIEW"
elif [ "$os" == "android-arm64" ]; then
target_arch=arm64
target_dir="/usr/local/android/ffmpeg-arm64"
envvar_latest="FFMPEG_DIR_ANDROID_ARM64_NDK_LATEST"
envvar_nightly1="FFMPEG_DIR_ANDROID_ARM64_NDK_NIGHTLY1"
@@ -159,26 +165,26 @@ fi
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
build_ffmpeg_android "$target_arch" "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
build_ffmpeg_android "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
set_ffmpeg_dir_env_var "$envvar_latest" "$target_dir/latest"
if [ "${ANDROID_NDK_ROOT_PREVIEW}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_PREVIEW"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_PREVIEW"
build_ffmpeg_android "$target_arch" "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
build_ffmpeg_android "$target_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
set_ffmpeg_dir_env_var "$envvar_preview" "$target_dir/preview"
fi
if [ "${ANDROID_NDK_ROOT_NIGHTLY1}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY1"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY1"
build_ffmpeg_android "$target_arch" "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
build_ffmpeg_android "$target_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
set_ffmpeg_dir_env_var "$envvar_nightly1" "$target_dir/nightly1"
fi
if [ "${ANDROID_NDK_ROOT_NIGHTLY2}" ]; then
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_NIGHTLY2"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_NIGHTLY2"
build_ffmpeg_android "$target_arch" "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
build_ffmpeg_android "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2"
fi

View File

@@ -1,184 +0,0 @@
#!/usr/bin/env bash
# Copyright (C) 2024 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script will build and install FFmpeg static libs
# Can take an optional final parameter to control installation directory
set -ex
# Must match or be lower than the minimum iOS version supported by the version of Qt that is
# is currently being built.
readonly MINIMUM_IOS_VERSION="16.0"
source "${BASH_SOURCE%/*}/../unix/ffmpeg-installation-utils.sh"
ffmpeg_version=$(ffmpeg_version_default)
ffmpeg_source_dir=$(download_ffmpeg)
ffmpeg_config_options=$(get_ffmpeg_config_options "shared")
default_prefix="/usr/local/ios/ffmpeg"
prefix="${1:-$default_prefix}"
dylib_regex="^@rpath/.*\.dylib$"
build_ffmpeg_ios() {
local target_platform=$1
local target_cpu_arch=""
if [ "$target_platform" == "arm64-simulator" ]; then
target_sdk="iphonesimulator"
target_cpu_arch="arm64"
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
elif [ "$target_platform" == "x86_64-simulator" ]; then
target_sdk="iphonesimulator"
target_cpu_arch="x86_64"
minos="-mios-simulator-version-min=$MINIMUM_IOS_VERSION"
elif [ "$target_platform" == "arm64-iphoneos" ]; then
target_sdk="iphoneos"
target_cpu_arch="arm64"
minos="-miphoneos-version-min=$MINIMUM_IOS_VERSION"
else
echo "Error when building FFmpeg for iOS. Unknown parameter given for target_platform: '${target_platform}'"
exit 1
fi
local build_dir="$ffmpeg_source_dir/build_ios/$target_platform"
sudo mkdir -p "$build_dir"
pushd "$build_dir"
# shellcheck disable=SC2086
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options \
--sysroot="$(xcrun --sdk "$target_sdk" --show-sdk-path)" \
--enable-cross-compile \
--enable-optimizations \
--prefix=$prefix \
--arch=$target_cpu_arch \
--cc="xcrun --sdk ${target_sdk} clang -arch $target_cpu_arch" \
--cxx="xcrun --sdk ${target_sdk} clang++ -arch $target_cpu_arch" \
--target-os=darwin \
--extra-ldflags="$minos" \
--enable-shared \
--disable-static \
--install-name-dir='@rpath' \
--disable-audiotoolbox
sudo make install DESTDIR="$build_dir/installed" -j4
popd
}
build_info_plist() {
local file_path="$1"
local framework_name="$2"
local framework_id="$3"
# Apple plist format has a strict requirement that the version string
# contains up to 3 numerics separated by a dot. Meanwhile, FFmpeg versioning
# tends to use an 'n' prefix in their versioning. We use a regex to convert
# and verify the version string.
#
# https://developer.apple.com/documentation/bundleresources/information-property-list/cfbundleversion
local formatted_ffmpeg_version
if [[ $ffmpeg_version =~ ([0-9]+(\.[0-9]+){0,2}) ]]; then
formatted_ffmpeg_version="${BASH_REMATCH[1]}"
else
echo "Unable to format FFmpeg version string '$ffmpeg_version' into corresponding Apple Info.plist format"
exit 1
fi
local minimum_version_key="MinimumOSVersion"
local supported_platforms="iPhoneOS"
info_plist="<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">
<plist version=\"1.0\">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>${framework_name}</string>
<key>CFBundleIdentifier</key>
<string>${framework_id}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${framework_name}</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>${formatted_ffmpeg_version}</string>
<key>CFBundleVersion</key>
<string>${formatted_ffmpeg_version}</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>${minimum_version_key}</key>
<string>${MINIMUM_IOS_VERSION}</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>${supported_platforms}</string>
</array>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>"
echo $info_plist | sudo tee ${file_path} 1>/dev/null
}
create_framework() {
# Create a 'traditional' framework from the corresponding dylib.
local framework_name="$1"
local platform="$2" # For now it's either arm64, x86_64-simulator, see below.
local ffmpeg_library_path="$ffmpeg_source_dir/build_ios/${platform}/installed$prefix"
local framework_complete_path="${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
sudo mkdir -p "${ffmpeg_library_path}/framework/${framework_name}.framework"
sudo cp "${ffmpeg_library_path}/lib/${framework_name}.dylib" "${ffmpeg_library_path}/framework/${framework_name}.framework/${framework_name}"
# Fix LC_ID_DYLIB (to be libavcodec.framework/libavcodec instead of @rpath/libavcodec.xx.yy.dylib
sudo install_name_tool -id @rpath/${framework_name}.framework/${framework_name} "${framework_complete_path}"
build_info_plist "${ffmpeg_library_path}/framework/${framework_name}.framework/Info.plist" "${framework_name}" "io.qt.ffmpegkit."${framework_name}
# Fix all FFmpeg-related LC_LOAD_DYLIB, similar to how we fixed LC_ID_DYLIB above:
otool -L "$framework_complete_path" | awk '/\t/ {print $1}' | egrep "$dylib_regex" | while read -r dependency_path; do
found_name=$(tmp=${dependency_path/*\/}; echo ${tmp/\.*})
if [ "$found_name" != "$framework_name" ]
then
sudo install_name_tool -change "$dependency_path" @rpath/${found_name}.framework/${found_name} "${framework_complete_path}"
fi
done
#sudo mkdir -p "$prefix/framework/"
#sudo cp -r "${ffmpeg_library_path}/framework/${framework_name}.framework" "$prefix/framework/"
}
create_xcframework() {
# Create 'traditional' framework from the corresponding dylib,
# also creating
local framework_name="$1"
local target_platform_a="$2"
local target_platform_b="$3"
local fw_a="$ffmpeg_source_dir/build_ios/${target_platform_a}/installed$prefix/framework/${framework_name}.framework"
local fw_b="$ffmpeg_source_dir/build_ios/${target_platform_b}/installed$prefix/framework/${framework_name}.framework"
sudo mkdir -p "$prefix/lib/"
sudo xcodebuild -create-xcframework -framework $fw_a -framework $fw_b -output "${prefix}/lib/${framework_name}.xcframework"
}
build_ffmpeg_ios "x86_64-simulator"
build_ffmpeg_ios "arm64-iphoneos"
ffmpeg_libs="libavcodec libavformat libavutil libswresample libswscale"
for name in $ffmpeg_libs; do
create_framework $name "arm64-iphoneos"
create_framework $name "x86_64-simulator"
done
# Create corresponding (xc)frameworks containing both arm64 and arm64-simulator frameworks:
for name in $ffmpeg_libs; do
create_xcframework $name "arm64-iphoneos" "x86_64-simulator"
done
# xcframeworks are already installed directly into the target output directory.
# We need to install headers
sudo cp -r "$ffmpeg_source_dir/build_ios/arm64-iphoneos/installed$prefix/include" $prefix
set_ffmpeg_dir_env_var "FFMPEG_DIR_IOS" $prefix

View File

@@ -37,6 +37,7 @@ if [[ "$os" == "linux" ]]; then
make && make install_sw install_ssldirs
SetEnvVar "OPENSSL_HOME" "$opensslHome"
SetEnvVar "PATH" "\"$opensslHome/bin:\$PATH\""
SetEnvVar "PKG_CONFIG_PATH" "\"$opensslHome/lib64/pkgconfig:\$PKG_CONFIG_PATH\""
if uname -a |grep -q "Debian"; then
SetEnvVar "LD_LIBRARY_PATH" "\"$opensslHome/lib:$LD_LIBRARY_PATH\""
else

View File

@@ -63,6 +63,7 @@ cmake "$targetDir" -G"Ninja Multi-Config" \
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
-DCMAKE_CONFIGURATION_TYPES="Release;Debug;RelWithDebugInfo" \
-DCMAKE_INSTALL_PREFIX="$installPrefix" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
"${extraCMakeArgs[@]}" \
"$extraOpenSslArg" \
-DgRPC_BUILD_TESTS=OFF \

View File

@@ -8,10 +8,10 @@
source "${BASH_SOURCE%/*}/DownloadURL.sh"
source "${BASH_SOURCE%/*}/SetEnvVar.sh"
version="7.15.0"
version="7.18.0"
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qtopenapi/openapi_client_generators/openapi-generator-cli-$version.jar"
AltUrl="https://repo1.maven.org/maven2/org/openapitools/openapi-generator-cli/$version/openapi-generator-cli-$version.jar"
SHA1="bb58e257f724fb46b7f2b309a9fa98e63fd7199f"
SHA1="8bd615a50b15ebf5be30e612af112526a6e81ac4"
targetFolder="/opt/qt-openapi/"
targetFile="openapi-generator-cli.jar"

View File

@@ -16,6 +16,7 @@ source "${BASH_SOURCE%/*}/SetEnvVar.sh"
# shellcheck source=./DownloadURL.sh
source "${BASH_SOURCE%/*}/DownloadURL.sh"
zswitch=$1 # Since 7z 25.01 multi-hop symbolic links are restricted with -snl switch levels
version="20.1.3"
baseUrl="https://download.qt.io/development_releases/prebuilt/libclang"
cachedUrl="http://ci-files01-hki.ci.qt.io/input/libclang/dynamic"
@@ -40,7 +41,7 @@ DownloadURL "$url_cached" "$url" "$sha1" "$zip"
if command -v 7zr &> /dev/null; then
sudo 7zr x $zip -o/usr/local/
else
sudo 7z x $zip -o/usr/local/
sudo 7z x $zswitch $zip -o/usr/local/
fi
sudo mv /usr/local/libclang "$destination"
rm -rf $zip

View File

@@ -20,6 +20,7 @@ PROVISIONING_DIR="$(dirname "$0")/../../"
# shellcheck source=./common.sourced.sh
source "$PROVISIONING_DIR"/common/unix/common.sourced.sh
zswitch=$1 # Since 7z 25.01 multi-hop symbolic links are restricted with -snl switch levels
libclang_version="20.1.0"
if uname -a |grep -q Darwin; then
@@ -61,7 +62,7 @@ DownloadURL $url_cached $url $sha1 $zip
if command -v 7zr &> /dev/null; then
sudo 7zr x $zip -o/usr/local/
else
sudo 7z x $zip -o/usr/local/
sudo 7z x $zswitch $zip -o/usr/local/
fi
sudo mv /usr/local/libclang "$destination"
rm -rf $zip

View File

@@ -13,18 +13,22 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
sslVersionForLatest="3.0.7"
ndkVersionLatest="r27c"
featureSuffixLatest="_16kb"
prebuiltOpensslShaLatest="2cc15dd990460c2c7157ab257a47071fbd9e0ac8"
sslVersionForPreview="3.0.7"
ndkVersionPreview="r29-beta2"
featureSuffixPreview="_16kb"
prebuiltOpensslShaPreview="76c9788216440111be97ea1a63c4d8cd807baacd"
ndkVersionNightly1=$ndkVersionLatest
sslVersionForNightly1=$sslVersionForLatest
featureSuffixNightly1=""
prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest
ndkVersionNightly2=$ndkVersionLatest
sslVersionForNightly2=$sslVersionForLatest
featureSuffixNightly2=""
prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r29-beta2
@@ -62,38 +66,52 @@ EOB
function InstallPrebuiltOpenssl() {
ndkVersion=$1
sha=$2
sslVersion=$3
suffix=$2
sha=$3
sslVersion=$4
opensslHome="${HOME}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb"
if [[ ! -d ${opensslHome} ]]; then
prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb.zip"
targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}_16kb.zip"
renamed_root="${HOME}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}"
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
unzip -o "$targetFile" -d "${HOME}"
sudo rm -f "$targetFile"
prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
tmp_extract="$(mktemp -d "${TMPDIR:-/tmp}/openssl-extract.XXXXXX")"
unzip -q -o "$targetFile" -d "$tmp_extract"
sudo rm -f "$targetFile"
# We assume there is only one top-level directory in the openssl zip
temp_openssl_root="$(find "$tmp_extract" -mindepth 1 -maxdepth 1 -type d | head -n 1)"
if [[ -z "$temp_openssl_root" ]]; then
echo "ERROR: Expected a single top-level directory in the archive, but none was found." >&2
return 1
fi
mv "$temp_openssl_root" "$renamed_root"
rm -rf "$tmp_extract"
opensslHome="${renamed_root}"
}
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
InstallPrebuiltOpenssl $ndkVersionNightly1 $prebuiltOpensslShaNightly1 $sslVersionForNightly1
InstallPrebuiltOpenssl "$ndkVersionNightly1" "$featureSuffixNightly1" "$prebuiltOpensslShaNightly1" "$sslVersionForNightly1"
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$opensslHome"
echo "OpenSSL for Android $ndkVersionNightly1 = $sslVersionForNightly1" >> ~/versions.txt
fi
if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
InstallPrebuiltOpenssl $ndkVersionNightly2 $prebuiltOpensslShaNightly2 $sslVersionForNightly2
InstallPrebuiltOpenssl "$ndkVersionNightly2" "$featureSuffixNightly2" "$prebuiltOpensslShaNightly2" "$sslVersionForNightly2"
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY2" "$opensslHome"
echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/versions.txt
fi
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
InstallPrebuiltOpenssl $ndkVersionPreview $prebuiltOpensslShaPreview $sslVersionForPreview
InstallPrebuiltOpenssl "$ndkVersionPreview" "$featureSuffixPreview" "$prebuiltOpensslShaPreview" "$sslVersionForPreview"
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$opensslHome"
echo "OpenSSL for Android $ndkVersionPreview = $sslVersionForPreview" >> ~/versions.txt
fi
InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslShaLatest $sslVersionForLatest
InstallPrebuiltOpenssl "$ndkVersionLatest" "$featureSuffixLatest" "$prebuiltOpensslShaLatest" "$sslVersionForLatest"
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
echo "OpenSSL for Android $ndkVersionLatest = $sslVersionForLatest" >> ~/versions.txt

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-35"
$sdkBuildToolsVersion = "35.0.1"
$sdkApiLevel = "android-36"
$sdkBuildToolsVersion = "36.0.0"
$toolsCachedUrl= "\\ci-files01-hki.ci.qt.io\provisioning\android\$toolsFile"
$toolsOfficialUrl = "https://dl.google.com/android/repository/$toolsFile"
$toolsChecksum = "54a582f3bf73e04253602f2d1c80bd5868aac115"

View File

@@ -7,9 +7,9 @@
# This script will install FFmpeg
$msys = "C:\Utils\msys64\usr\bin\bash"
$version="n7.1.2"
$version="n7.1.3"
$url_public="https://github.com/FFmpeg/FFmpeg/archive/refs/tags/$version.tar.gz"
$sha1="1e4e937facdbde15943dd093121836bf69f27c7c"
$sha1="27051817deec88bed3b9652d49f9127d22268d83"
$url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/$version.tar.gz"
$ffmpeg_name="FFmpeg-$version"

View File

@@ -4,31 +4,31 @@
. "$PSScriptRoot\helpers.ps1"
# This script will install Java SE
# https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html
$version_major = "17"
# https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html
$version_major = "21"
$cpu_arch = Get-CpuArchitecture
switch ($cpu_arch) {
arm64 {
$version = "17.0.11"
$version = "21.0.9"
$arch = "aarch64"
$sha1 = "1c5984a185778ad91498b746e677d84e153d5918"
# Using Microsoft build version of OpenJDK from: https://learn.microsoft.com/en-us/java/openjdk/download
# as there are no available Windows ARM64 versions of JDK from Oracle
$url_official = "https://aka.ms/download-jdk/microsoft-jdk-${version}-windows-${arch}.msi"
$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\microsoft-jdk-${version}-windows-${arch}.msi"
$javaPackage = "C:\Windows\Temp\jdk-$version.msi"
$sha1 = "293cca7b76e3280573061f53dbe41ced527e3b4d"
# Using Microsoft build https://aka.ms/download-jdk/ - no .msi available
$url_official = "https://aka.ms/download-jdk/microsoft-jdk-${version}-windows-${arch}.exe"
$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\microsoft-jdk-${version}-windows-${arch}.exe"
$javaPackage = "C:\Windows\Temp\jdk-$version.exe"
# Microsoft installer does not allow to override the installation path using the regular
# TARGETDIR or INSTALLDIR properties, so just hardcode the path that it uses
$installdir = "C:\Program Files\Microsoft\jdk-17.0.11.9-hotspot"
$installdir = "C:\Program Files\Microsoft\jdk-$version-hotspot"
Break
}
x64 {
$version = "17.0.10"
$version = "21.0.9"
$arch = "x64"
$sha1 = "d573091930076c3ffa9f74273cb41cb5c75c5400"
$url_official = "https://download.oracle.com/java/17/archive/jdk-${version}_windows-${arch}_bin.exe"
$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\jdk-$version-windows-$arch.exe"
$sha1 = "b4b10fd43993650053c41f377af37b37a2267b74"
# Downloading from https://aka.ms/download-jdk/microsoft-jdk-21.0.9-windows-x64.exe
$url_official = "https://aka.ms/download-jdk/microsoft-jdk-${version}_windows-${arch}.exe"
$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\microsoft-jdk-$version-windows-$arch.exe"
$javaPackage = "C:\Windows\Temp\jdk-$version.exe"
$installdir = "C:\Program Files\Java\jdk-$version_major"
Break
@@ -44,7 +44,7 @@ Download $url_official $url_cache $javaPackage
Verify-Checksum $javaPackage $sha1
if ($javaPackage.EndsWith(".exe")) {
Run-Executable "$javaPackage" "/s SPONSORS=0"
Run-Executable "$javaPackage" "/SILENT /SUPPRESSMSGBOXES /ALLUSERS /DIR=`"$installdir`""
} else {
Run-Executable "msiexec" "/quiet /i $javaPackage"
}

View File

@@ -54,7 +54,9 @@ installPackages+=(libgbm-dev)
installPackages+=(libxkbfile-dev)
installPackages+=(libxshmfence-dev)
installPackages+=(libxss-dev)
# installPackages+=(nodejs) too old
installPackages+=(rustc)
installPackages+=(bindgen)
installPackages+=(clang)
installPackages+=(python3-html5lib)
#
## Common event loop handling

View File

@@ -0,0 +1,4 @@
#!/bin/sh
sudo ethtool -K ens3 tso off
ethtool -k ens3 | grep tcp-segmentation-offload # Output: tcp-segmentation-offload: off

View File

@@ -0,0 +1,3 @@
#!/bin/sh
"$(dirname "$0")"/../common/unix/telegraf_install.sh

View File

@@ -0,0 +1,15 @@
#!/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
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions_rhc.sh -o "/tmp/redhat_ak.sh" &>/dev/null
sudo chmod 755 /tmp/redhat_ak.sh
sudo /tmp/redhat_ak.sh
# refresh local certificates
sudo subscription-manager refresh
sudo rm -f /tmp/redhat_ak.sh

View File

@@ -0,0 +1,11 @@
#!/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
# Ipv6 link local becomes tentative and dadfailed if two systems has the same secret_key
# New unique secret key will be created automatically during start up.
# https://access.redhat.com/solutions/3553581
echo "Removing secret_key"
sudo rm -f "/var/lib/NetworkManager/secret_key"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/set_ulimit.sh"

View File

@@ -0,0 +1,20 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/shared/network_test_server_ip.txt
source "$BASEDIR/../common/shared/network_test_server_ip.txt"
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
# Set timezone to UTC.
sudo timedatectl set-timezone Etc/UTC
"$BASEDIR/../common/linux/configure-gnome-shell.sh"
echo "Disable windows key from showing the GNOME Shell Activities overlay"
gsettings set org.gnome.mutter overlay-key ""

View File

@@ -0,0 +1,10 @@
#!/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 -ex
# Install xcb-util-cursor* libraries before updating repos. In updated repos these libraries are no longer available.
# QTQAINFRA-6325
sudo yum -y install xcb-util-cursor
sudo yum -y install xcb-util-cursor-devel

View File

@@ -0,0 +1,62 @@
#!/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 -ex
echo "set WritePreparedUpdates=false" | sudo tee -a /etc/PackageKit/PackageKit.conf
sudo systemctl stop packagekit
sudo systemctl mask --now packagekit
while sudo fuser /usr/libexec/packagekitd >/dev/null 2>&1; do
echo "Waiting for PackageKit to finish..."
sleep 1
sudo systemctl stop packagekit
done
sudo yum -y remove PackageKit gnome-software
sudo subscription-manager config --rhsm.manage_repos=0
sudo subscription-manager refresh
# List available RHEL versions and bind with correct one
sudo subscription-manager release --list
# Do not update Tier 1 via GUI without using this same --set
# - To avoid System to have newer packages than RPMS which will cause update issues
sudo subscription-manager release --set=10.0
sudo yum clean all
sudo tee "/etc/yum.repos.d/local.repo" > /dev/null <<EOC
[rhel-10-for-x86_64-baseos-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel10.ci.qt.io/rhel-10-for-x86_64-baseos-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 10 Base OS (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[rhel-10-for-x86_64-appstream-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel10.ci.qt.io/rhel-10-for-x86_64-appstream-rpms
ui_repoid_vars = releasever basearch
name = Qt Red Hat Enterprise Linux 10 Appstream (RPMs)
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
enabled = 1
gpgcheck = 1
[codeready-builder-for-rhel-10-x86_64-rpms]
metadata_expire = 86400
baseurl = http://repo-clones-rhel10.ci.qt.io/codeready-builder-for-rhel-10-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-10.noarch.rpm
sudo yum clean all
# As well as this fetching the repository data, we also get a printout of the used repos
sudo yum repolist

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/limit-avahi-interfaces.sh"

View File

@@ -0,0 +1,206 @@
#!/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 -ex
# Remove update notifications and packagekit running in the background
sudo yum -y remove PackageKit gnome-software
# CI: All platforms should have up-to-date packages when new provision is made
sudo yum -y update
installPackages=()
# Make sure needed ca-certificates are available
installPackages+=(ca-certificates)
installPackages+=(git)
installPackages+=(zlib-devel)
installPackages+=(glib2-devel)
installPackages+=(openssl-devel)
installPackages+=(freetype-devel)
installPackages+=(fontconfig-devel)
installPackages+=(curl-devel)
installPackages+=(expat-devel)
installPackages+=(gettext-devel)
installPackages+=(perl-devel)
# Required by some old pkg perl script, FindBin.pm was moved to new package in perl 5.32
installPackages+=(perl-FindBin)
installPackages+=(dh-autoreconf)
# cmake build
installPackages+=(ninja-build)
installPackages+=(pcre2-devel)
installPackages+=(double-conversion-devel)
installPackages+=(zstd)
installPackages+=(libzstd-devel)
# EGL support
installPackages+=(mesa-libEGL)
installPackages+=(libxkbfile-devel)
# Xinput2
installPackages+=(libXi-devel)
installPackages+=(mariadb-server)
installPackages+=(mariadb)
installPackages+=(mariadb-devel)
installPackages+=(postgresql-devel)
installPackages+=(cups-devel)
installPackages+=(dbus-devel)
# gstreamer 1 for QtMultimedia
# Note! gstreamer1-plugins-bad-free needs to be upgraded or it will conflicts with gstreamer1-plugins-base-devel
installPackages+=(gstreamer1-plugins-bad-free)
installPackages+=(gstreamer1-devel)
installPackages+=(gstreamer1-plugins-base-devel)
# Not available for RHEL 10.0
#installPackages+=(gstreamer1-plugin-openh264)
# pipewire for QtMultimedia
installPackages+=(pipewire-devel)
# yasm for QtMultimedia
installPackages+=(yasm)
# gtk3 style for QtGui/QStyle
installPackages+=(gtk3-devel)
# libusb1 for tqtc-boot2qt/qdb
installPackages+=(libusbx-devel)
# speech-dispatcher-devel / flite-devel for QtSpeech
installPackages+=(speech-dispatcher-devel)
installPackages+=(flite-devel)
# Python 2 devel and pip. python-pip requires the EPEL repository to be added
# Python 2 no longer supported
# installPackages+=(python2-devel python2-pip)
# Python 3 with python-devel, pip and virtualenv
installPackages+=(python3)
installPackages+=(python3-devel)
# WebEngine
installPackages+=(bison)
installPackages+=(flex)
installPackages+=(gperftools-libs)
installPackages+=(gperf)
installPackages+=(alsa-lib-devel)
installPackages+=(pulseaudio-libs-devel)
installPackages+=(libdrm-devel)
installPackages+=(libva-devel)
installPackages+=(libXtst-devel)
installPackages+=(libxshmfence-devel)
installPackages+=(nspr-devel)
installPackages+=(nss-devel)
installPackages+=(python3-html5lib)
installPackages+=(libstdc++-static)
# For Android builds
#installPackages+=(java-21-openjdk-devel.21.0.9.0.10-1.el10)
installPackages+=(java-21-openjdk-devel)
# For receiving shasum
installPackages+=(perl-Digest-SHA)
# INTEGRITY requirements
# Not available for RHEL 10.0
#installPackages+=(glibc.i686)
# Enable Qt Bluetooth
installPackages+=(bluez-libs-devel)
# QtNfc
installPackages+=(pcsc-lite-devel)
# QtWebKit
installPackages+=(libxml2-devel)
installPackages+=(libxslt-devel)
# For building Wayland from source
installPackages+=(libffi-devel)
# QtWayland
# installPackages+=(mesa-libwayland-egl)
# installPackages+=(mesa-libwayland-egl-devel)
installPackages+=(libwayland-egl)
installPackages+=(libwayland-client)
installPackages+=(libwayland-cursor)
installPackages+=(libwayland-server)
# Jenkins
installPackages+=(chrpath)
# libxkbcommon
installPackages+=(libxkbcommon-devel)
installPackages+=(libxkbcommon-x11-devel)
# xcb-util-* libraries
installPackages+=(xcb-util)
installPackages+=(xcb-util-devel)
installPackages+=(xcb-util-image-devel)
installPackages+=(xcb-util-keysyms-devel)
installPackages+=(xcb-util-wm-devel)
installPackages+=(xcb-util-renderutil-devel)
installPackages+=(xcb-util-cursor)
installPackages+=(xcb-util-cursor-devel)
# ODBC support
installPackages+=(unixODBC-devel)
installPackages+=(unixODBC)
# Vulkan support
installPackages+=(vulkan-devel)
installPackages+=(vulkan-tools)
# Conan: For Python build
installPackages+=(xz-devel)
installPackages+=(zlib-devel)
installPackages+=(libffi-devel)
installPackages+=(libsqlite3x-devel)
# Build.pl
installPackages+=(perl-Data-Dumper)
# In RedHat these come with Devtoolset
installPackages+=(gcc)
installPackages+=(gcc-c++)
installPackages+=(make)
# RHEL 10.0 has newer toolset
#installPackages+=(gcc-toolset-12)
# Open source VMware Tools
installPackages+=(open-vm-tools)
# nfs-utils is needed to make mount work with ci-files01
installPackages+=(nfs-utils)
# cifs-utils, for mounting smb drive
installPackages+=(keyutils)
installPackages+=(cifs-utils)
# zip, needed for vcpkg caching
installPackages+=(zip)
# OpenSSL requirement, built by vcpkg
installPackages+=(perl-IPC-Cmd)
# password management support for Qt Creator
installPackages+=(libsecret-devel)
# For Firebird in RTA
installPackages+=(libtommath-devel)
# For tst_license.pl with all the machines generating SBOM
installPackages+=(perl-JSON)
installPackages+=(perl-Test-Simple) # To install Test::More module for SBOM
# For qtgrpc build
installPackages+=(zlib-static)
sudo yum -y install "${installPackages[@]}"
sudo dnf install nodejs-22.19.0-2.el10_0 -y
# Required by QtCore
sudo dnf install 'perl(English)' -y
# We shouldn't use yum to install virtualenv. The one found from package repo is not
# working, but we can use installed pip
sudo pip3 install --upgrade pip
# Configure pip
sudo pip config --user set global.index https://ci-files01-hki.ci.qt.io/input/python_module_cache
sudo pip config --user set global.extra-index-url https://pypi.org/simple/
# Create SBOM virtual env compatible with RHEL 10.0 Python 3.12
mkdir "/home/qt/sbom/"
python3 -m venv /home/qt/sbom/venv
/home/qt/sbom/venv/bin/pip install wheel
/home/qt/sbom/venv/bin/pip install -r "${BASH_SOURCE%/*}/../common/shared/requirements.txt"
# Provisioning during installation says:
# 'The script sbom2doc is installed in '/usr/local/bin' which is not on PATH.'
# hence the explicit assignment to SBOM_PYTHON_APPS_PATH.
source "${BASH_SOURCE%/*}/../common/unix/SetEnvVar.sh"
SetEnvVar "SBOM_PYTHON_APPS_PATH" "/home/qt/sbom/venv/bin"
# Set SBOM_PYTHON_INTERP_PATH to Python3 instance which was used to install SBOM packages from requirements
SetEnvVar "SBOM_PYTHON_INTERP_PATH" "/home/qt/sbom/venv/bin"
# Make FindPython3.cmake to find python3
sudo ln -s /usr/bin/python3 /usr/local/bin/python3
gccVersion="$(gcc --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
echo "GCC = $gccVersion" >> versions.txt
glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
echo "glibc = $glibcVersion" >> versions.txt
OpenSSLVersion="$(openssl version |cut -b 9-14)"
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
# List all available updates
sudo yum -y list updates

View File

@@ -0,0 +1,15 @@
#!/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
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
set -ex
name="p7zip"
version="7-11"
sudo yum -y install "$name"
# Link 7za to 7z so we can use existing installation scripts
sudo ln -s /usr/bin/7za /usr/bin/7z
echo "$name = $version" >> ~/versions.txt

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-ninja.sh"

View File

@@ -0,0 +1,5 @@
#!/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
source "${BASH_SOURCE%/*}/../common/unix/install-patchelf.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang-dyn.sh
"$BASEDIR/../common/unix/libclang-dyn.sh" "-snld10"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
# shellcheck source=../common/unix/libclang.sh
"$BASEDIR/../common/unix/libclang.sh" "-snld10"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
# shellcheck source=../common/linux/mount-vcpkg-cache-drive.sh
source "${BASH_SOURCE%/*}/../common/linux/mount-vcpkg-cache-drive.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
# shellcheck source=../common/linux/disable_selinux.sh
source "${BASH_SOURCE%/*}/../common/linux/disable_selinux.sh"

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
source "${BASH_SOURCE%/*}/../common/linux/sccache.sh"

View File

@@ -0,0 +1,6 @@
#!/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
# shellcheck source=../common/unix/mqtt_broker.sh
source "${BASH_SOURCE%/*}/../common/unix/mqtt_broker.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/fbx_linux.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install-conan.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-git.sh"

View File

@@ -0,0 +1,45 @@
#!/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
# shellcheck source=../common/unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../common/unix/DownloadURL.sh"
set -ex
# This script will install ICU
icuVersion="73.2"
icuLocation="/usr/lib64"
sha1="d2bbb7b2a9a9ee00dba5cc6a68137f6c8a98c27e"
baseBinaryPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel8.6-x64.7z"
baseBinaryPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel8.6-x64.7z"
sha1Dev="edc9cba31ffeac28bf7360c52b85b5e4d2f39043"
develPackageURL="http://ci-files01-hki.ci.qt.io/input/icu/$icuVersion/icu-linux-g++-Rhel8.6-x64-devel.7z"
develPackageExternalURL="http://master.qt.io/development_releases/prebuilt/icu/prebuilt/$icuVersion/icu-linux-g++-Rhel8.6-x64-devel.7z"
echo "Installing custom ICU $icuVersion $sha1 packages on RHEL to $icuLocation"
targetFile=$(mktemp)
DownloadURL "$baseBinaryPackageURL" "$baseBinaryPackageExternalURL" "$sha1" "$targetFile"
sudo 7z x -snld10 -y -o/usr/lib64 "$targetFile"
sudo rm "$targetFile"
echo "Installing custom ICU devel packages on RHEL"
tempDir=$(mktemp -d)
targetFile=$(mktemp)
DownloadURL "$develPackageURL" "$develPackageExternalURL" "$sha1Dev" "$targetFile"
7z x -snld10 -y -o"$tempDir" "$targetFile"
sudo cp -a "$tempDir"/lib/* /usr/lib64
sudo cp -a "$tempDir"/* /usr/
sudo rm "$targetFile"
sudo rm -fr "$tempDir"
sudo /sbin/ldconfig
echo "ICU = $icuVersion" >> ~/versions.txt

View File

@@ -0,0 +1,8 @@
#!/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 -ex
# shellcheck source=../common/unix/install-breakpad.sh
source "${BASH_SOURCE%/*}/../common/unix/install-breakpad.sh"

View File

@@ -0,0 +1,7 @@
#!/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 -ex
source "${BASH_SOURCE%/*}/../common/unix/install-maven.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
# shellcheck source=../common/linux/android_linux.sh
source "${BASH_SOURCE%/*}/../common/linux/android_linux.sh"

View File

@@ -0,0 +1,12 @@
#!/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
# This script installs CMake 3.6.2
set -ex
# CMake is needed for autotests that verify that Qt can be built with CMake
# shellcheck source=../common/linux/cmake_linux.sh
source "${BASH_SOURCE%/*}/../common/linux/cmake_linux.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
# shellcheck source=../common/linux/install-android-bundletool.sh
source "${BASH_SOURCE%/*}/../common/linux/install-android-bundletool.sh"

View File

@@ -0,0 +1,7 @@
#!/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 -ex
source "${BASH_SOURCE%/*}/../common/unix/install-golang.sh" "linux"

View File

@@ -0,0 +1,7 @@
#!/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 -ex
source "${BASH_SOURCE%/*}/../common/linux/install-upx.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-vcpkg.sh"

View File

@@ -0,0 +1,6 @@
#!/usr/bin/env bash
set -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-vcpkg-ports.sh" x64-linux-qt

View File

@@ -0,0 +1,7 @@
#!/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 -ex
# shellcheck source=../common/unix/openssl_for_android.sh
source "${BASH_SOURCE%/*}/../common/unix/openssl_for_android.sh"

View File

@@ -0,0 +1,7 @@
#!/bin/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
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/unix/install_openapi.sh"

View File

@@ -0,0 +1,9 @@
#!/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 -ex
# shellcheck source=../common/unix/install_protobuf.sh
source "${BASH_SOURCE%/*}/../common/unix/install_protobuf.sh"

View File

@@ -0,0 +1,9 @@
#!/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 -ex
# shellcheck source=../common/unix/install_grpc.sh
source "${BASH_SOURCE%/*}/../common/unix/install_grpc.sh"

View File

@@ -0,0 +1,10 @@
#!/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
# This script installs QEMU Guest Agent
set -ex
sudo yum -y install qemu-guest-agent
sudo systemctl start qemu-guest-agent

View File

@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Copyright (C) 2026 Konstantin Tokarev <annulen@yandex.ru>
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
set -ex
sudo yum -y install elfutils-libelf-devel
# shellcheck source=../common/linux/install_dwz.sh
source "${BASH_SOURCE%/*}/../common/linux/install_dwz.sh"

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
source "${BASH_SOURCE%/*}/../common/linux/bootstrap-autostart.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-firebird.sh"

View File

@@ -0,0 +1,5 @@
#!/usr/bin/env bash
source "${BASH_SOURCE%/*}/../common/linux/install-ffmpeg-linux.sh"
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86_64" "use_16kb_page_size"
source "${BASH_SOURCE%/*}/../common/unix/install-ffmpeg-android.sh" "android-x86" "use_4kb_page_size"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-oracle.sh"

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/mimersql.sh" "openssl-3" "rpm"

View File

@@ -0,0 +1,7 @@
#!/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 -ex
"$(dirname "$0")"/../common/linux/cleanup_cache.sh

View File

@@ -0,0 +1,8 @@
#!/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 -ex
BASEDIR=$(dirname "$0")
"$BASEDIR"/../common/linux/enable_test_stacktraces.sh

View File

@@ -0,0 +1,3 @@
#!/usr/bin/env bash
BASEDIR=$(dirname "$0")
"$BASEDIR/../common/linux/install-network-test.sh" "--warn-only"

View File

@@ -0,0 +1,17 @@
#!/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
# This script needs to be called last during provisioning so that the software information will show up last in provision log.
# Storage installed RPM packages information
set -ex
# shellcheck disable=SC2129
echo "*********************************************" >> ~/versions.txt
echo "***** All installed RPM packages *****" >> ~/versions.txt
rpm -q -a | sort >> ~/versions.txt
echo "*********************************************" >> ~/versions.txt
"$(dirname "$0")/../common/linux/version.sh"

View File

@@ -5,14 +5,11 @@
set -e
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions.sh -o "/tmp/redhat_ak.sh" &>/dev/null
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions_rhc.sh -o "/tmp/redhat_ak.sh" &>/dev/null
sudo chmod 755 /tmp/redhat_ak.sh
/tmp/redhat_ak.sh
sudo /tmp/redhat_ak.sh
# refresh local certificates
sudo subscription-manager refresh
# Attach available subscriptions to system. This is needed when subscriptions are renewed.
sudo subscription-manager attach --auto
sudo rm -f /tmp/redhat_ak.sh

View File

@@ -17,8 +17,6 @@ installPackages+=(ca-certificates)
installPackages+=(git)
installPackages+=(zlib-devel)
installPackages+=(glib2-devel)
installPackages+=(openssl3)
installPackages+=(openssl3-devel)
installPackages+=(freetype-devel)
installPackages+=(fontconfig-devel)
installPackages+=(curl-devel)
@@ -92,7 +90,7 @@ installPackages+=(nss-devel)
installPackages+=(libatomic)
installPackages+=(mesa-libgbm-devel-21.3.4-1.el8.x86_64)
# For Android builds
installPackages+=(java-17-openjdk-devel-17.0.9.0.9)
installPackages+=(java-21-openjdk-devel-21.0.9.0.10-1.el9)
# For receiving shasum
installPackages+=(perl-Digest-SHA)
# INTEGRITY requirements
@@ -191,8 +189,5 @@ echo "GCC = $gccVersion" >> versions.txt
glibcVersion="$(ldd --version |grep -Eo '[0-9]+\.[0-9]+(\.[0-9]+)?' |head -n 1)"
echo "glibc = $glibcVersion" >> versions.txt
OpenSSLVersion="$(openssl3 version |cut -b 9-14)"
echo "System's OpenSSL = $OpenSSLVersion" >> ~/versions.txt
# List all available updates
sudo yum -y list updates

View File

@@ -71,7 +71,7 @@ installPackages+=(nspr-devel)
installPackages+=(nss-devel)
installPackages+=(python3-html5lib)
# For Android builds
installPackages+=(java-11-openjdk-devel)
installPackages+=(java-21-openjdk-devel)
# For receiving shasum
installPackages+=(perl-Digest-SHA)
# INTEGRITY requirements

View File

@@ -5,14 +5,11 @@
set -e
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions.sh -o "/tmp/redhat_ak.sh" &>/dev/null
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions_rhc.sh -o "/tmp/redhat_ak.sh" &>/dev/null
sudo chmod 755 /tmp/redhat_ak.sh
/tmp/redhat_ak.sh
sudo /tmp/redhat_ak.sh
# refresh local certificates
sudo subscription-manager refresh
# Attach available subscriptions to system. This is needed when subscriptions are renewed.
sudo subscription-manager attach --auto
sudo rm -f /tmp/redhat_ak.sh

View File

@@ -81,7 +81,7 @@ installPackages+=(nss-devel)
installPackages+=(python3-html5lib)
installPackages+=(mesa-libgbm-devel)
# For Android builds
installPackages+=(java-11-openjdk-devel)
installPackages+=(java-21-openjdk-devel)
# For receiving shasum
installPackages+=(perl-Digest-SHA)
# INTEGRITY requirements

View File

@@ -5,14 +5,11 @@
set -e
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions.sh -o "/tmp/redhat_ak.sh" &>/dev/null
curl --retry 5 --retry-delay 10 --retry-max-time 60 http://ci-files01-hki.ci.qt.io/input/semisecure/redhat_ak_all_versions_rhc.sh -o "/tmp/redhat_ak.sh" &>/dev/null
sudo chmod 755 /tmp/redhat_ak.sh
/tmp/redhat_ak.sh
sudo /tmp/redhat_ak.sh
# refresh local certificates
sudo subscription-manager refresh
# Attach available subscriptions to system. This is needed when subscriptions are renewed.
sudo subscription-manager attach --auto
sudo rm -f /tmp/redhat_ak.sh

View File

@@ -90,7 +90,7 @@ installPackages+=(nspr-devel)
installPackages+=(nss-devel)
installPackages+=(python3-html5lib)
# For Android builds
installPackages+=(java-11-openjdk-devel-11.0.19.0.7)
installPackages+=(java-21-openjdk-devel)
# For receiving shasum
installPackages+=(perl-Digest-SHA)
# INTEGRITY requirements

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