Compare commits

..

63 Commits

Author SHA1 Message Date
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
Qt Submodule Update Bot
ac952a3cc3 Update submodules on '6.11 in qt/qt5'
Change-Id: I7e870fcacbb3d96701006010cd48151c24a8d906
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-09 06:24:58 +00:00
Qt Submodule Update Bot
e431a58ebf Update submodules on '6.11 in qt/qt5'
Change-Id: If0ae2b22ae0dbd3bdc03b0c2817cc8212199a145
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-06 10:37:10 +00:00
Nils Petter Skålerud
aae69c26d8 Android, Unix: Move android_emulator_launcher.sh to unix folder
This script is currently located in the 'linux' directory. In future
patches, it will be reused by macOS and Linux hosts.

This patch moves it into the 'unix' folder.

Pick-to: 6.10 6.8
Change-Id: Ib03b999bef0373dc9600d505b1f4ce926fa97de6
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit fb6a8b0215)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-05 18:50:07 +00:00
Nils Petter Skålerud
2fc7f02d02 Upgrade Android Command-Line Tools to v19.0
This patch updates the Android Command-Line Tools in CI from v2.1 to
v19.0.

The zip file for the older version contained a single directory
'tools', this directory has been renamed to 'cmdline-tools' in the
newer version. This patch includes some changes to make sure we still
use the same folder structure as before.

Task-number: QTQAINFRA-7487
Pick-to: 6.10 6.8
Change-Id: Id9227241283d4c529005c4961449f50ca7af13be
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit c9a8b8f220)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-05 18:50:06 +00:00
Nils Petter Skålerud
39cfe5772c Android: Begin initial alignment of Linux and macOS provisioning
The Android provisioning scripts on macOS and Linux perform many of the
same tasks, but with slightly differing approaches. Future patches will
make us run Android emulators on ARM64, which will further make these
scripts similar.

This patch performs some modifications to the macOS provisioning script
to make it more similar to the Linux one. This will help us combine
parts of these scripts in the future.

Task-number: QTQAINFRA-7487
Pick-to: 6.10 6.8
Change-Id: Idba30d07607780d1ef8c60cc5e038a034c821632
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 8a70b9e482)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-05 18:50:05 +00:00
Elias Toivola
fee8bfc9a9 Remove Red Hat 9.4 from CI
RHEL-9.4 is replaced by RHEL-9.6.

Pick-to: 6.10
Task-number: QTQAINFRA-7327
Task-number: QTQAINFRA-7326
Change-Id: Ia270d20eda412da291d9e09c265afa9c977fab2e
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 8d9d8cf3e8)
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2026-01-05 20:50:04 +02:00
Elias Toivola
039675855e Set Red Hat 9.6 tests as blocking
Also set Packaging and JavaDoc targets for RHEL-9.6. JavaDocs feature is
removed from a non-Packaging Android Linux target.

Pick-to: 6.10
Task-number: QTQAINFRA-7326
Task-number: QTQAINFRA-7331
Change-Id: I18ec1e79e6fbe7b4ed001a3cdb648dae37b89561
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 6856189287)
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2026-01-05 20:50:04 +02:00
Johanna Äijälä
622385a2ba Provisioning: cleanup, remove Squish installations
RTA is using different means to install Squish for RTA tests, no need
to do it in general provisioning.

Change-Id: I4858a282ad7a0b1412f6dd0f4876109fe54a4c88
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 4bff151490)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
2026-01-02 11:56:35 +00:00
Matti Paaso
bd26fc0730 Fix Axivion analysis module database name
Task-number: QTQAINFRA-7599
Pick-to: 6.10 6.8
Change-Id: Ie89be9ede1bc36b0ca776d45fb8df8d82cc5d3d3
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit a1289ed5d5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:56:29 +00:00
Matti Paaso
cf5e24cbb4 Replace hard coded branch value with environment variable
Axvion analysis will be run also in release branches and this
prevents results to be mixed between brnaches.

Task-number: QTQAINFRA-7599
Pick-to: 6.10 6.8
Change-Id: I5766d234bce2054d0dc6999ae1cac3f05c197d0e
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Toni Saario <toni.saario@qt.io>
(cherry picked from commit c69a56646f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:56:23 +00:00
Allan Sandfeld Jensen
04aab39e54 Update NodeJS to at least version 20
Needed for WebEngine based on Chromium 140

Pick-to: 6.10
Change-Id: I0cf1df1107cc8f5aa2850239608f03a7c7831676
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 2bd7830030)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:56:18 +00:00
Nils Petter Skålerud
c1037d865f FFmpeg, iOS: Store final .xcframework files in 'lib' folder
Currently, the iOS FFmpeg provisioning script will install .xcframework
files into a subfolder 'frameworks'. The .xcframework files fulfill a
similar purpose to ordinary .dylib files and should be placed in a
'lib' subfolder, to make provisioning more similar to how we deploy
FFmpeg for other platforms.

This patch makes us install .xcframework files in a 'lib' subfolder
instead.

Task-number: QTBUG-136480
Pick-to: 6.10
Change-Id: I91f9938b595ecff5b04d49a71e9872f5d7278cda
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit df82dc7de2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:56:06 +00:00
Nils Petter Skålerud
ffc932b4e3 Unix: Add curl fallback to check_and_set_proxy.sh
This script is stored in the directory 'provisioning/common/unix'. This
implies it can be used from Linux and macOS hosts. The script
uses the wget command, but at the time of writing, wget is not
installed on our macOS hosts. If wget is not found, this command will
assume the HTTP proxy is not found rather than fail the script
execution.

This patch rewrites this script to use curl if wget is not found.
This makes it run correctly on macOS. Additionally, it adds a fail
case if neither wget or curl is found on the system.

Pick-to: 6.10 6.8
Change-Id: Id54b9fc69307ef28eb35cf1c0042df11e704a6e2
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit bc6ba67934)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:56:00 +00:00
Nils Petter Skålerud
99f5a9ba83 Linux, FFmpeg: Make install-ffmpeg-linux.sh take an output parameter
Currently, this script is hardcoded to output to the directory
'/usr/local/'. This output is stored in the variable 'prefix'. However,
this variable is used inconsistently in the script, meaning we cannot
actually modify the variable to change the output directory.

This patch does the following:
- Applies the 'prefix' variable where necessary.
- Allows an optional command-line parameter to be applied to 'prefix',
allowing one to specify where the output directory. This is
particularly useful for local builds.

No changes to current CI behavior.

Pick-to: 6.10 6.8
Change-Id: I51f83ce3844c2aa9db778b1c54091acb64a227e6
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit e3966f2ffc)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:55:55 +00:00
Toni Saario
d9cdae957b Update sccache to v0.11.0
Custom patched packages for windows.

Also Add Windows on arm support.

Pick-to: 6.10 6.8
Fixes: COIN-740
Change-Id: I27f7d36b3501be2a2011b9b8dfa0ec846cd57bf5
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 73c4ed922a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-02 11:55:49 +00:00
Elias Toivola
45dd047f29 Remove RHEL-8.10
Existing platform configs with RHEL 8 use RHEL 9 instead.

Task-number: QTQAINFRA-7529
Task-number: QTQAINFRA-7208
Change-Id: I202fdf464f59db52f7f1edbf99451054c6889e69
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 7c7bbfff4d)
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-01-02 08:31:25 +02:00
Simo Fält
82ba6e4754 Provisioning: Install debhelper-compat to Ubuntu 22.04
We need this to be able to create some dependency debian packages.

Change-Id: Ic4f3259f8bf29fa19c10394b63634f1512db47bc
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit bee5ded33b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-01 09:42:37 +00:00
Jukka Jokiniva
03f6468edc Remove license check on Ubuntu 22.04
The configuration is duplicate as it is also run on 24.04.

Pick-to: 6.10 6.8
Task-number: QTQAINFRA-7146
Change-Id: Icbd1f7379cb1f23ed8c818f25aa3e09c5fcb5a45
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 2bac4d3be9)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-01 09:42:02 +00:00
Toni Saario
3ce2cfd74c Make VxWorks x86_64 tests significant for qtbase
Change-Id: I4224cd484edc9fabe639b1566c624d862b0c829f
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit a98c97ed95)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-01 09:41:57 +00:00
Nils Petter Skålerud
be118a32fb macOS, Xcode: Harden error-handling when installing Xcode
The current script relies on some commands intentionally failing during
provisioning because they only apply to certain versions of Xcode.
These errors are silenced using pipes. This is error-prone because we
can no longer catch when these commands are failing in the case where
they should not.

This patch introduces some additional error-handling and conditionals
to make sure we only run commands when they are intended to succeed.

Pick-to: 6.10 6.8
Change-Id: Ic5048f54adb31d263e28f51312f44fe3b55e6fe5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit ba6a77312d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-01 09:41:53 +00:00
Elias Toivola
554dcc4746 RHEL-9.6: Add missing package for license-service library
This amends d534aedb32

Pick-to: 6.10
Change-Id: I2ccc49b1e924ae88315f776900046a57789d149e
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
(cherry picked from commit d5bdd4dea6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2026-01-01 09:41:49 +00:00
Ivan Solovev
b571b85cb8 Revert "Set ZLIB_ROOT on Windows with MSVC"
This reverts commit aecfc7e23b.

Reason for revert: QtOpenAPI can use the zlib that is bundled with
Qt now (which is the case for all MSVC configurations in CI), and
that commit broke qtinsighttracker.

Task-number: QTBUG-138968
Fixes: QTBUG-142771
Change-Id: I69344c52572a472baed96a136aecbe33b310da16
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
(cherry picked from commit 8fb136fc8a)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-23 08:16:01 +00:00
Nils Petter Skålerud
189740e5e1 macOS ARM, Python: Combine Python provisioning into common script
The Python provisioning on macOS ARM hosts is done multiple times
across separate targets.

This patch moves the code into a common script 'macos/python-arm.sh'.
As a drive-by, we bump the version of all targets to 3.12.11, whch is
the same as the one used in the macOS 15 ARM host.

Pick-to: 6.10 6.8
Change-Id: I8c1f6f7d635fe47b9faa34dbe6988e89252dc2c9
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit f0b54a51f7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-19 14:04:53 +00:00
Nils Petter Skålerud
7b36e50c64 Provisioning: Use local mirror for pyenv on macOS ARM hosts
On macOS hosts we are using external mirrors for installing with pyenv.
We should instead pull the necessary files from our local mirror.

Pick-to: 6.10 6.8
Change-Id: I6ba67dfd7cd37809164c7e2c4bcf89d07d45b1b2
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit bb77943c0f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-19 14:04:53 +00:00
Joerg Bornemann
f1d54f955c init-repository: Fix passing no --alternates option
Commit d6918d7ac5 broke init-repository if
you did not pass an --alternates option.

Pick-to: 6.10 6.8
Task-number: QTBUG-142712
Fixes: QTBUG-142744
Change-Id: Ia727b420a34a46e52f0f05e549aabe2c975c6d7e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 6bd3b23b6c)
2025-12-19 15:04:53 +01:00
Joerg Bornemann
ec20fd6cab init-repository: Fix passing relative path to --alternates
When using --alternates with a relative path, nested submodules
(e.g., qtdeclarative/tests/auto/qml/ecmascripttests/test262) failed
because the alternates path wasn't adjusted for the changed working
directory depth. The --alternates option worked correctly with absolute
paths.

Fix by converting the passed alternates path to an absolute path.

Pick-to: 6.10 6.8
Fixes: QTBUG-142712
Change-Id: Ief7a87768d9ff17bb2832ae363f573ecae58d5ee
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit d6918d7ac5)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-19 15:04:53 +01:00
Tim Blechmann
c3f0773ed2 provisioning: do not install libc++ on ubuntu
installing libc++-20-dev and libgstreamer1.0-dev on the same system
causes problems:
* using the llvm apt repo, it will uninstall libgstreamer1.0-dev
* using ubuntu's repo, it will break gstreamer's pkg-config integration

reason is that libgstreamer1.0-dev depends on libunwind-dev, but llvm's
libunwind-20-dev does not provide the pkg-config files.
as temporary workaround we basically revert
e5b56d1d37.

Change-Id: Ib4626d17339256d56c4764e3167f4e9fe4b9c909
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit e9a003f0c3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-19 14:04:53 +00:00
Tim Blechmann
b8b7c30b2a Revert "platform_configs: add c++23 nightly builds - part 2"
This reverts commit 9073f03937.

Reason for revert: installing libc++ on ubuntu breaks gstreamer

Task-number: QTQAINFRA-7340
Change-Id: I8229f80a7010244fccc462eb31d1feadbf389028
Reviewed-by: Liang Qi <liang.qi@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 88173877d6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-19 14:04:53 +00:00
Alexandru Croitor
e171387d4c CMake: Modify the RunCMake tests to clone from the Coin CI git mirror
This helps with the test stability when code.qt.io is down or slow.

Pick-to: 6.10
Change-Id: I0bdaaa06772a94e73cb33d3f827e4e327123b60a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from commit 160e6135bb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-18 23:00:32 +00:00
Oleksii Zbykovskyi
6e69c9f7a7 Rename 100... to 10... in Windows provisioning scripts
Renamed files since it leads to misunderstanding due to their index.
Our CI system sees only two first digits, so 100 is seen as 10
and executed with other 10s which is misleading.

Pick-to: 6.10 6.8
Change-Id: Iabb548c622d71df8a3593cc171b7e0c2e2ae0287
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit b276b549f7)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-18 10:42:48 +00:00
Qt Submodule Update Bot
182960fb5e Update submodules on '6.11 in qt/qt5'
Change-Id: Ib07a72af7dbffaabc8214fb425e579663be9018d
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-12-14 04:39:25 +00:00
Qt Submodule Update Bot
f00a460c60 Update submodules on '6.11 in qt/qt5'
Change-Id: I9207ec0945a946f08e952de36d68de4d2780df3b
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2025-12-12 04:19:43 +00:00
Eike Ziller
69a8b1abfe COIN/QtCreator: Move to RHEL 9 and macOS 15 for QtC 19+
Updating for raising the compiler requirements.
Also adds Ubuntu 22 to test with GCC 11

Since Qt Creator branches can use the same Qt branches
that define these platforms, keep one RHEL 8 job
for Qt Creator 18. Mark it in the features, so the
Qt Creator 19+ configuration can filter these out.

Pick-to: 6.10
Change-Id: Ib771f473b6ed3ce42c6191647da7d473b64c2316
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit dcd07cc2ab)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
2025-12-09 09:04:18 +00:00
Jani Heikkinen
c78156feca Adjust submodule branches
Change-Id: I5d87a40dc71574e17aa95accd460d8040cc64758
2025-12-08 06:00:14 +00:00
675 changed files with 781 additions and 3231 deletions

4
.gitignore vendored
View File

@@ -5,8 +5,8 @@ Makefile
CMakeLists.txt.user*
CMakeUserPresets.json
.vscode
build/
build-*/
build
build-*
.DS_Store
init-repository.opt
init-repository.opt.in

94
.gitmodules vendored
View File

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

View File

@@ -4,4 +4,5 @@ We welcome contributions to Qt!
Note that we cannot accept pull requests on GitHub. All contributions to the Qt project are exclusively handled through the [Gerrit code review system](https://codereview.qt-project.org).
See [contribute.qt-project.org](https://contribute.qt-project.org/) to learn more.
Read the
[Qt Contribution Guidelines](https://wiki.qt.io/Qt_Contribution_Guidelines) to learn more.

View File

@@ -5,37 +5,6 @@
# with renamed functions, because we need similar logic for init-repository, but
# we can't access qtbase before we clone it.
function(qt_ir_print_to_stdout text)
set(tmp_candidates
"${CMAKE_CURRENT_BINARY_DIR}"
"$ENV{TMPDIR}"
"$ENV{TEMP}"
"/tmp"
)
set(tmp "")
foreach(dir IN LISTS tmp_candidates)
if(dir STREQUAL "")
continue()
endif()
set(candidate "${dir}/.qt_configure_stdout_tmp")
execute_process(
COMMAND "${CMAKE_COMMAND}" -E touch "${candidate}"
RESULT_VARIABLE touch_result
)
if(touch_result EQUAL 0)
set(tmp "${candidate}")
break()
endif()
endforeach()
if(tmp STREQUAL "")
message("${text}") # last resort fallback (stderr)
return()
endif()
file(WRITE "${tmp}" "${text}")
execute_process(COMMAND "${CMAKE_COMMAND}" -E cat "${tmp}")
file(REMOVE "${tmp}")
endfunction()
# Call a function with the given arguments.
function(qt_ir_call_function func)
set(call_code "${func}(")
@@ -209,6 +178,7 @@ 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}")
@@ -270,22 +240,6 @@ 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
@@ -325,7 +279,6 @@ endfunction()
#
# Currently handles the following types of CLI arguments:
# string
# addString (like string, but accumulates values from repeated flags)
# boolean
# void
#
@@ -399,17 +352,16 @@ endfunction()
# Shows help for the command line options.
function(qt_ir_show_help)
set(help "")
set(help_file "${CMAKE_CURRENT_LIST_DIR}/QtIRHelp.txt")
if(EXISTS "${help_file}")
file(READ "${help_file}" content)
string(APPEND help "${content}")
message("${content}")
endif()
string(APPEND help [[
message([[
General Options:
-help, -h ............ Display this help screen
]])
qt_ir_print_to_stdout("${help}")
endfunction()
# Gets the unhandled command line args.

View File

@@ -102,27 +102,18 @@ endfunction()
# - ../qt/qttools-litehtml.git
function(qt_ir_add_git_remotes repo_relative_url working_directory)
set(gerrit_ssh_base "ssh://@USER@codereview.qt-project.org@PORT@/")
set(gerrit_https_base "https://@USER@codereview.qt-project.org@AUTH@/")
set(gerrit_repo_url "${gerrit_ssh_base}")
qt_ir_get_option_value(codereview-username username)
qt_ir_get_option_value(codereview-https https)
if(https)
set(gerrit_repo_url "${gerrit_https_base}")
else()
set(gerrit_repo_url "${gerrit_ssh_base}")
endif()
# If given a username, make a "verbose" remote.
# Otherwise, rely on proper SSH configuration.
if(username)
string(REPLACE "@USER@" "${username}@" gerrit_repo_url "${gerrit_repo_url}")
string(REPLACE "@PORT@" ":29418" gerrit_repo_url "${gerrit_repo_url}")
string(REPLACE "@AUTH@" "/a" gerrit_repo_url "${gerrit_repo_url}")
else()
string(REPLACE "@USER@" "" gerrit_repo_url "${gerrit_repo_url}")
string(REPLACE "@PORT@" "" gerrit_repo_url "${gerrit_repo_url}")
string(REPLACE "@AUTH@" "" gerrit_repo_url "${gerrit_repo_url}")
endif()
set(namespace "qt")

View File

@@ -98,9 +98,6 @@ Options:
username and port number, and thus relies on a correct SSH
configuration.
--codereview-https
Specify this option to use HTTPs instead of SSH.
--alternates <path to other Qt5 repo>
Adds alternates for each submodule to another full qt5 checkout.
This makes this qt5 checkout very small, as it will use the object

View File

@@ -89,26 +89,6 @@ 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)
@@ -130,11 +110,6 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
set(extra_configure_args "")
set(extra_cmake_args "")
# Collect modules to skip. These may come from:
# 1. The -skip option (consumed by init-repository's option parser)
# 2. Exclusion entries in -submodules/--module-subset (e.g. -qtfoo)
qt_ir_get_option_value(skip skip_modules)
# If the -submodules or --module-subset options were specified, transform
# the values into something configure understands and pass them to configure.
qt_ir_get_option_value(module-subset submodules)
@@ -158,10 +133,25 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
endif()
list(JOIN include_submodules "," include_submodules)
list(JOIN exclude_submodules "," exclude_submodules)
# Merge exclusions from module-subset into the skip list.
if(exclude_submodules)
list(APPEND skip_modules ${exclude_submodules})
# Handle case when the -skip argument is already passed.
# In that case read the passed values, merge with new ones,
# remove both the -skip and its values, and re-add it later.
list(FIND filtered_args "-skip" skip_index)
if(exclude_submodules AND skip_index GREATER -1)
list(LENGTH filtered_args filtered_args_length)
math(EXPR skip_args_index "${skip_index} + 1")
if(skip_args_index LESS filtered_args_length)
list(GET filtered_args "${skip_args_index}" skip_args)
string(REPLACE "," ";" skip_args "${skip_args}")
list(APPEND skip_args ${exclude_submodules})
list(REMOVE_DUPLICATES skip_args)
list(JOIN skip_args "," exclude_submodules)
list(REMOVE_AT filtered_args "${skip_args_index}")
list(REMOVE_AT filtered_args "${skip_index}")
endif()
endif()
# Handle case when only '-submodules existing' is passed and the
@@ -169,13 +159,9 @@ function(qt_ir_get_args_from_optfile_configure_filtered optfile_path out_var)
if(include_submodules)
list(APPEND extra_configure_args "-submodules" "${include_submodules}")
endif()
endif()
# Forward all collected skip modules to configure.
if(skip_modules)
list(REMOVE_DUPLICATES skip_modules)
list(JOIN skip_modules "," skip_csv)
list(APPEND extra_configure_args "-skip" "${skip_csv}")
if(exclude_submodules)
list(APPEND extra_configure_args "-skip" "${exclude_submodules}")
endif()
endif()
# Insert the extra arguments into the proper positions before and after '--'.

View File

@@ -14,7 +14,6 @@ macro(qt_ir_set_known_command_line_options)
qt_ir_commandline_option(berlin TYPE boolean)
qt_ir_commandline_option(branch TYPE boolean)
qt_ir_commandline_option(codereview-username TYPE string)
qt_ir_commandline_option(codereview-https TYPE boolean)
qt_ir_commandline_option(copy-objects TYPE boolean)
qt_ir_commandline_option(fetch TYPE boolean DEFAULT_VALUE yes)
qt_ir_commandline_option(force SHORT_NAME f TYPE boolean)
@@ -38,7 +37,6 @@ 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

@@ -190,7 +190,7 @@ Configurations:
Features: ['Sccache', 'Packaging', "DebugAndRelease", 'UseConfigure', 'GenerateSBOM', 'VerifySBOM']
Configure arguments: '-debug-and-release -force-debug-info -headersclean -nomake examples -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\..',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'VCPKG_HOST_TRIPLET=x64-windows-qt',
@@ -224,9 +224,9 @@ Configurations:
'TARGET_CONFIGURE_ARGS=-debug-and-release -force-debug-info -platform win32-arm64-msvc -qt-zlib -no-sql-db2 -no-sql-ibase -no-sql-mysql -no-sql-oci -no-sql-psql -no-sql-mimer',
'TARGET_CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}} -DQT_FORCE_BUILD_TOOLS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFEATURE_native_grpc=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC_ARM64}} -DQT_DEPLOY_FFMPEG=TRUE',
'OPENSSL_INCLUDE={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
'OPENSSL_LIB={{.Env.OPENSSL_LIB_x64_arm64}}',
'OPENSSL_ROOT_DIR={{.Env.OPENSSL_ROOT_DIR_x64_arm64}}',
'OPENSSL_CONF_x64={{.Env.OPENSSL_CONF_x64_arm64}}',
'OPENSSL_INCLUDE_x64={{.Env.OPENSSL_INCLUDE_x64_arm64}}',
'OPENSSL_LIB_x64={{.Env.OPENSSL_LIB_x64_arm64}}',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc_arm64}}',
'VCPKG_HOST_TRIPLET=x64-windows-qt',
'VCPKG_TARGET_TRIPLET=arm64-windows-qt',
@@ -266,18 +266,6 @@ 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

@@ -69,22 +69,3 @@ Configurations:
'ANDROID_NDK_ROOT={{.Env.ANDROID_NDK_ROOT_LATEST}}',
'ANDROID_EMULATOR=emulator_x86_64_api_36'
]
-
Id: 'android-17-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', 'JavaDocs', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
Environment variables: [
'TARGET_CONFIGURE_ARGS=-nomake examples -release -force-debug-info -android-ndk {{.Env.ANDROID_NDK_ROOT_LATEST}} -android-sdk {{.Env.ANDROID_SDK_ROOT}} -android-abis x86_64',
'TARGET_CMAKE_ARGS=-DCMAKE_C_COMPILER_FRONTEND_VARIANT=GNU -DCMAKE_CXX_COMPILER_FRONTEND_VARIANT=GNU -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_ANDROID_HOME_LATEST}} -DQT_GENERATE_WRAPPER_SCRIPTS_FOR_ALL_HOSTS=ON',
'NON_QTBASE_TARGET_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_ANDROID_X86_64_NDK_LATEST}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
# We check QT_USE_TARGET_ANDROID_BUILD_DIR and QT_USE_ANDROID_MODERN_BUNDLE only in one
# 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_37'
]

View File

@@ -17,14 +17,18 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFEATURE_gds=OFF -DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_FEATURE_open62541_security=OFF',
'VCPKG_HOST_TRIPLET=universal-osx-qt',
'VCPKG_TARGET_TRIPLET=universal-osx-qt',
]
# Test on all supported macOS versions (deployment targets)
# On x86_64
-
Id: 'macos-13-x86_64-tests'
Template: 'qtci-macos-13-x86_64-103'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-arm64'
-
Id: 'macos-14-x86_64-tests'
Template: 'qtci-macos-14-x86_64-105'
@@ -37,16 +41,15 @@ Configurations:
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-arm64'
-
Id: 'macos-26-x86_64-tests'
Template: 'qtci-macos-26-x86_64-101'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly', 'Packaging', 'DoNotAbortTestingOnFirstFailure']
Platform dependency: 'macos-universal-on-arm64'
Environment variables: [ 'COIN_CTEST_IGNORE_EXIT_CODE=1' ]
# And arm64
-
Id: 'macos-13-arm64-tests'
Template: 'qtci-macos-13-arm-107'
Compiler: 'Clang'
Features: ['Sccache', 'TestOnly', 'Packaging']
Platform dependency: 'macos-universal-on-arm64'
-
Id: 'macos-14-arm64-tests'
Template: 'qtci-macos-14-arm-106'
@@ -74,7 +77,7 @@ Configurations:
-
Id: 'macos-x86_64-developer-build'
Template: 'qtci-macos-26-x86_64-101'
Template: 'qtci-macos-15-x86_64-103'
Compiler: 'Clang'
Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure', 'StandaloneExamples']
Configure arguments: '-developer-build -release -force-asserts -force-debug-info -no-pch -no-framework -qtnamespace TestNamespace -make examples'
@@ -91,8 +94,6 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'VCPKG_HOST_TRIPLET=universal-osx-qt',
'VCPKG_TARGET_TRIPLET=universal-osx-qt',
]
-
Id: 'macos-26-arm64-developer-build'
@@ -103,11 +104,15 @@ Configurations:
Environment variables: [
'CMAKE_ARGS=-DOPENSSL_ROOT_DIR={{.Env.OPENSSL_DIR}}',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE',
'VCPKG_HOST_TRIPLET=arm64-osx-qt',
'VCPKG_TARGET_TRIPLET=arm64-osx-qt',
]
# Test on all supported macOS versions (deployment targets)
-
Id: 'macos-13-arm64-developer-build-tests'
Template: 'qtci-macos-13-arm-107'
Compiler: 'Clang'
Features: ['TestOnly']
Platform dependency: 'macos-arm64-developer-build'
-
Id: 'macos-14-arm64-developer-build-tests'
Template: 'qtci-macos-14-arm-106'
@@ -124,6 +129,6 @@ Configurations:
Id: 'macos-26-arm64-developer-build-tests'
Template: 'qtci-macos-26-arm-104'
Compiler: 'Clang'
Features: ['TestOnly']
Features: ['TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
Platform dependency: 'macos-26-arm64-developer-build'
Environment variables: [ 'COIN_CTEST_IGNORE_EXIT_CODE=1' ]

View File

@@ -1,8 +0,0 @@
Version: 2
Module only: true
Include: [
cmake_platforms.yaml: [
"ubuntu-22.04"
]
]
Configurations: []

View File

@@ -1,4 +0,0 @@
Version: 2
Module only: True
Include: [yocto.yaml]
Configurations: []

View File

@@ -1,11 +0,0 @@
Version: 2
Include: [
cmake_platforms.yaml,
address_sanitizer_platforms.yaml,
offline_documentation.yaml
]
Configurations: []
Overrides:
-
Id: '.*'
+Features: ['BuildCMakeFromSources']

View File

@@ -1,16 +0,0 @@
Version: 2
Module only: True
Configurations:
-
Id: 'ubuntu-22.04-baseline-tests'
Template: 'qtci-linux-Ubuntu-22.04-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure']
Configure arguments: '-developer-build -nomake examples'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_test_auto=OFF -DFEATURE_test_baseline=ON -DOpenGL_GL_PREFERENCE=LEGACY',
'CTEST_DIR=tests/baseline',
'TESTARGS=-auto',
'QT_LANCELOT_SERVER=10.150.153.60'
]

View File

@@ -4,11 +4,11 @@ Configurations:
Id: 'windows-11_24H2-msvc2022-unity-build'
Template: 'qtci-windows-11_24H2-x86_64-71'
Compiler: 'MSVC2022'
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests'] # note: we cannot build debug builds due to our llvm binaries
Configure arguments: 'force-debug-info -nomake examples -qt-zlib' # disabled example builds: qmake builds fail with C1041
Features: ['Sccache', 'Debug', 'UseConfigure', 'DoNotRunTests']
Configure arguments: '-debug -force-debug-info -headersclean -make examples -qt-zlib'
Environment variables: [
'CMAKE_ARGS=-DFEATURE_msvc_obj_debug_info=ON -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_INCLUDE_x64}}\.. -DPostgreSQL_ROOT={{.Env.POSTGRESQL_LIB_x64}}\.. -DQT_UNITY_BUILD=ON',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR_MSVC}} -DQT_DEPLOY_FFMPEG=TRUE -DFEATURE_clangcpp=OFF -DINPUT_headersclean=ON',
'LLVM_INSTALL_DIR={{.Env.LLVM_INSTALL_DIR_msvc}}',
'Protobuf_ROOT={{.Env.Protobuf_ROOT_msvc}}',
]
@@ -17,32 +17,32 @@ Configurations:
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'InstallQt5Dependencies', 'DoNotRunTests']
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Configure arguments: '-make examples -debug -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 -DOPENSSL_ROOT_DIR={{.Env.OPENSSL_HOME}} -DQT_UNITY_BUILD=ON',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON'
]
-
Id: 'ubuntu-24.04-arm64-unity-build'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-52'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests']
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput -qpa offscreen\;xcb'
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput -qpa offscreen\;xcb'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DQT_UNITY_BUILD=ON',
'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON'
]
-
Id: 'ubuntu-24.04-x64-unity-build'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-50'
Compiler: 'GCC'
Features: ['Sccache', 'UseConfigure', 'DoNotRunTests']
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -headersclean -qt-libjpeg -qt-libpng -qt-pcre -qt-harfbuzz -qt-doubleconversion -no-libudev -bundled-xcb-xinput'
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY -DQT_UNITY_BUILD=ON',
'COMMON_TEST_CMAKE_ARGS=-DQT_SKIP_DOCKER_COMPOSE=ON',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE'
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON'
]
-
Id: 'macos-universal-on-arm64-unity-build'
@@ -50,8 +50,8 @@ Configurations:
Compiler: 'Clang'
Target arch: 'x86_64-arm64'
Features: ['Sccache', 'DoNotRunTests', 'WarningsAreErrors', 'UseConfigure']
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -framework'
Configure arguments: '-make examples -debug -force-debug-info -separate-debug-info -headersclean -framework'
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DQT_UNITY_BUILD=ON',
'NON_QTBASE_CMAKE_ARGS=-DFFMPEG_DIR={{.Env.FFMPEG_DIR}} -DQT_DEPLOY_FFMPEG=TRUE -DINPUT_headersclean=ON -DQT_UNITY_BUILD=ON',
]

View File

@@ -1,13 +0,0 @@
Version: 2
Include: [
quick-bridges.yaml: [
"windows-quick-bridges"
]
]
Configurations:
-
Id: 'windows-quick-bridges-csharp'
Template: 'qtci-windows-11_24H2-x86_64-71'
Compiler: 'MSVC2022'
Platform dependency: 'windows-quick-bridges'
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesCsharp']

View File

@@ -1,46 +0,0 @@
Version: 2
Include: [
quick-bridges.yaml: [
"macos-quick-bridges",
"linux-quick-bridges",
"windows-quick-bridges"
]
]
Configurations:
-
Id: 'windows-quick-bridges-java'
Template: 'qtci-windows-11_24H2-x86_64-71'
Compiler: 'MSVC2022'
Platform dependency: 'windows-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesJava']
-
Id: 'windows-on-arm-quick-bridges-java'
Template: 'qtci-windows-11_23H2-aarch64-53'
Compiler: 'MSVC2022'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'QtBridgesJava']
-
Id: 'linux-quick-bridges-java'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Platform dependency: 'linux-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'RunAsPlatformDependency', 'QtBridgesJava']
-
Id: 'linux-on-arm-quick-bridges-java'
Template: 'qtci-linux-Ubuntu-24.04-aarch64-52'
Compiler: 'GCC'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'QtBridgesJava']
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
]
-
Id: 'macos-quick-bridges-universal-java'
Template: 'qtci-macos-15-arm-104'
Compiler: 'Clang'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'QtBridgesJava']
Environment variables: [
'CMAKE_ARGS=-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64"',
]

View File

@@ -1,37 +0,0 @@
Version: 2
Include: [
quick-bridges.yaml: [
"macos-quick-bridges",
"windows-quick-bridges"
],
cmake_platforms.yaml: [
"rhel-9.6"
]
]
Configurations:
-
Id: 'windows-quick-bridges-python'
Template: 'qtci-windows-11_24H2-x86_64-71'
Compiler: 'MSVC2022'
Platform dependency: 'windows-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
-
Id: 'linux-quick-bridges-python'
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
Compiler: 'GCC'
Platform dependency: 'rhel-9.6'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
-
Id: 'macos-quick-bridges-python'
Template: 'qtci-macos-15-arm-104'
Compiler: 'Clang'
Platform dependency: 'macos-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesPython']
-
Id: 'windows-on-arm-quick-bridges-python'
Template: 'qtci-windows-11_23H2-aarch64-53'
Compiler: 'MSVC2022'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'QtBridgesPython']

View File

@@ -1,21 +0,0 @@
Version: 2
Include: [
quick-bridges.yaml: [
"linux-quick-bridges",
"windows-quick-bridges"
]
]
Configurations:
-
Id: 'windows-quick-bridges-rust'
Template: 'qtci-windows-11_24H2-x86_64-71'
Compiler: 'MSVC2022'
Platform dependency: 'windows-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesRust']
-
Id: 'linux-quick-bridges-rust'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Platform dependency: 'linux-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'RunAsPlatformDependency', 'QtBridgesRust']

View File

@@ -1,21 +0,0 @@
Version: 2
Include: [
quick-bridges.yaml: [
"macos-quick-bridges",
"linux-quick-bridges"
]
]
Configurations:
-
Id: 'macos-quick-bridges-swift'
Template: 'qtci-macos-15-arm-104'
Compiler: 'Clang'
Platform dependency: 'macos-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesSwift']
-
Id: 'linux-quick-bridges-swift'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Compiler: 'GCC'
Platform dependency: 'linux-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesSwift']

View File

@@ -5,7 +5,7 @@ Configurations:
Id: 'qtgp-on-linux-rhel_9_6'
Template: 'qtci-linux-RHEL-9.6-x86_64-51'
Compiler: 'GCC'
Features: ['Packaging', 'UseConfigure']
Features: ['TestOnly']
-
Id: 'qtgp-on-macos'
Template: 'qtci-macos-14-arm-106'

View File

@@ -13,6 +13,7 @@ Configurations:
-separate-debug-info
-optimize-size
-shared
-disable-deprecated-up-to 0x070000
-no-feature-widgets
-no-feature-sql
-no-feature-printsupport
@@ -34,6 +35,7 @@ Configurations:
-separate-debug-info
-optimize-size
-shared
-disable-deprecated-up-to 0x070000
-no-feature-widgets
-no-feature-sql
-no-feature-printsupport
@@ -41,9 +43,7 @@ Configurations:
-no-feature-vnc
-no-feature-picture
-no-feature-pdf
Environment variables: [
'CMAKE_ARGS=-DOpenGL_GL_PREFERENCE=LEGACY',
]
Environment variables: []
-
Id: 'windows-quick-bridges'
Template: 'qtci-windows-11_24H2-x86_64-71'
@@ -56,6 +56,7 @@ Configurations:
-force-debug-info
-optimize-size
-shared
-disable-deprecated-up-to 0x070000
-no-feature-widgets
-no-feature-sql
-no-feature-printsupport

View File

@@ -10,6 +10,13 @@ Include: [
]
]
Configurations:
-
Id: 'windows-quick-bridges-dotnet'
Template: 'qtci-windows-11_24H2-x86_64-71'
Compiler: 'MSVC2022'
Platform dependency: 'windows-quick-bridges'
Features: ['Packaging', 'Sccache', "DebugAndRelease", 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'QtBridgesDotnet']
-
Id: 'windows-quick-bridges-rust'
Template: 'qtci-windows-11_24H2-x86_64-71'
@@ -40,14 +47,14 @@ Configurations:
-
Id: 'linux-quick-bridges-java'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Compiler: 'GCC'
Platform dependency: 'linux-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'RunAsPlatformDependency', 'QtBridgesJava']
-
Id: 'linux-quick-bridges-rust'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-54'
Template: 'qtci-linux-Ubuntu-24.04-x86_64-51'
Compiler: 'GCC'
Platform dependency: 'linux-quick-bridges'
Features: ['Packaging', 'Sccache', 'UseConfigure', 'DisableTests', 'RunAsPlatformDependency', 'RunAsPlatformDependency', 'QtBridgesRust']

View File

@@ -1,15 +0,0 @@
Version: 2
Include: [
cmake_platforms.yaml: [
'ubuntu-22.04',
'ubuntu-22.04-x11-tests',
'ubuntu-24.04-x64',
'ubuntu-24.04-x64-x11-tests',
'windows-11_24H2-msvc2022'
],
macos.yaml: [
'macos-arm64-developer-build',
'macos-14-arm64-developer-build-tests'
]
]
Configurations: []

View File

@@ -12,5 +12,5 @@ Configurations:
Template: 'qtci-linux-openSUSE-16.0-x86_64-51'
Target os: 'WebAssembly'
Compiler: 'GCC'
Features: ['Sccache', 'TestOnly', 'InsignificantTests', 'DoNotAbortTestingOnFirstFailure']
Features: ['Sccache', 'TestOnly']
Platform dependency: 'webassembly-linux-thread-asyncify-new'

View File

@@ -1,13 +0,0 @@
#!/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

@@ -1,88 +0,0 @@
### 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

@@ -1,7 +1,12 @@
*.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

@@ -15,8 +15,8 @@ android {
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

View File

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

View File

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

View File

@@ -199,23 +199,6 @@ echo "Unzipping the Android 16 to $maxVersionDestination"
sudo unzip -o -q "$maxVersionFilePath" -d "$maxVersionDestination"
rm "$maxVersionFilePath"
echo "Download and unzip Android 17 Beta 3 16KB System Image"
insignificantMaxVersionFileName="x86_64-ps16k-37.0_r03.zip"
insignificantMaxVersionDestination="$sdkTargetFolder/system-images/android-37/google_apis_ps16k/"
insignificantMaxVersionFilePath="$insignificantMaxVersionDestination/$insignificantMaxVersionFileName"
insignificantMaxVersionCiUrl="$basePath/system_images/google_apis/$insignificantMaxVersionFileName"
insignificantMaxVersionUrl="https://dl.google.com/android/repository/sys-img/google_apis/$insignificantMaxVersionFileName"
insignificantMaxVersionSha1="b89a6686f9a9e9942d596bed45d422cbccb70c98"
mkdir -p "$insignificantMaxVersionDestination"
DownloadURL "$insignificantMaxVersionCiUrl" "$insignificantMaxVersionUrl" "$insignificantMaxVersionSha1" "$insignificantMaxVersionFilePath"
echo "Unzipping the Android 17 Beta3 16KB to $insignificantMaxVersionDestination"
sudo unzip -o -q "$insignificantMaxVersionFilePath" -d "$insignificantMaxVersionDestination"
# Hack to avoid SDK version bug in source.properties file, the usage of ".0" messes things for avdmanager. TODO: undo when official comes
sudo sed -i 's/AndroidVersion.ApiLevel=37.0/AndroidVersion.ApiLevel=37/g' "$insignificantMaxVersionDestination/x86_64/source.properties"
rm "$insignificantMaxVersionFilePath"
echo "Checking the contents of Android SDK again..."
ls -l "$sdkTargetFolder"
@@ -225,9 +208,6 @@ echo "no" | ./avdmanager create avd -n emulator_x86_api_28 -c 2048M -f \
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_36 -c 2048M -f \
-k "system-images;android-36;google_apis;x86_64"
echo "no" | ./avdmanager create avd -n emulator_x86_64_api_37 -c 2048M -f \
-k "system-images;android-37;google_apis,page_size_16kb,ai_glasses_compatible;x86_64"
echo "Install maximum supported SDK level image for Android Automotive $sdkApiLevelAutomotiveMax"
DownloadURL "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxUrl" "$androidAutomotiveMaxSha" \
"/tmp/${sdkApiLevelAutomotiveMax}_automotive.tar.gz"
@@ -261,7 +241,7 @@ 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="b775c756f019d067c491bad7816f3a0cc8ea8b31"
commit_sha="bb12c984b2c838bdb06169ef7d659384c02c8b82"
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

@@ -51,13 +51,13 @@
"_active": true
},
"Qt-CtorMissingParentArgument": {
"_active": false
"_active": true
},
"Qt-DetachingTemporary": {
"_active": true
},
"Qt-FullyQualifiedMocTypes": {
"_active": false
"_active": true
},
"Qt-FunctionArgsByValueRef": {
"_active": false
@@ -69,13 +69,13 @@
"_active": true
},
"Qt-Generic-InitializeAllFieldsInConstructor": {
"_active": false
"_active": true
},
"Qt-Generic-MissingBaseCopy": {
"_active": false
"_active": true
},
"Qt-Generic-MissingIncludeGuard": {
"_active": false
"_active": true
},
"Qt-Generic-MissingTrCall": {
"_active": true
@@ -84,7 +84,7 @@
"_active": true
},
"Qt-Generic-NoFunctionDefinitionInHeader": {
"_active": false
"_active": true
},
"Qt-Generic-NoIrregularInclude": {
"_active": true
@@ -114,7 +114,7 @@
"_active": true
},
"Qt-IncorrectEmit": {
"_active": false
"_active": true
},
"Qt-InstallEventFilter": {
"_active": true
@@ -129,16 +129,16 @@
"_active": true
},
"Qt-MissingQObjectMacro": {
"_active": false
"_active": true
},
"Qt-MutableContainerKey": {
"_active": true
},
"Qt-NonPodGlobalStatic": {
"_active": false
"_active": true
},
"Qt-OldStyleConnect": {
"_active": false
"_active": true
},
"Qt-OverloadedSignal": {
"_active": true
@@ -162,7 +162,7 @@
"_active": true
},
"Qt-QPropertyWithoutNotify": {
"_active": false
"_active": true
},
"Qt-QStringArg": {
"_active": true
@@ -186,7 +186,7 @@
"_active": true
},
"Qt-RuleOfThree": {
"_active": false
"_active": true
},
"Qt-RuleOfTwoSoft": {
"_active": true

0
coin/provisioning/common/linux/fix-bitbake-apparmor.sh Executable file → Normal file
View File

0
coin/provisioning/common/linux/fix-bwrap-apparmor.sh Executable file → Normal file
View File

View File

View File

@@ -21,13 +21,13 @@ prefix="${2:-$default_prefix}"
pkgconfig_path="$PKG_CONFIG_PATH"
install_ff_nvcodec_headers() {
local nv_codec_version="11.1.5.3" # use 11.x.x.x to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/tags/n$nv_codec_version.zip"
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-$nv_codec_version.zip"
local nv_codec_sha1="78715d521de102362e553dc92577bbe81905a321"
local nv_codec_version="11.1" # use 11.1 to ensure compatibility with 470 nvidia drivers; might be upated to 12.0
local nv_codec_url_public="https://github.com/FFmpeg/nv-codec-headers/archive/refs/heads/sdk/$nv_codec_version.zip"
local nv_codec_url_cached="http://ci-files01-hki.ci.qt.io/input/ffmpeg/nv-codec-headers/nv-codec-headers-sdk-$nv_codec_version.zip"
local nv_codec_sha1="ceb4966ab01b2e41f02074675a8ac5b331bf603e"
#nv_codec_sha1="4f30539f8dd31945da4c3da32e66022f9ca59c08" // 12.0
local target_dir="$HOME"
local nv_codec_dir="$target_dir/nv-codec-headers-n$nv_codec_version"
local nv_codec_dir="$target_dir/nv-codec-headers-sdk-$nv_codec_version"
if [ ! -d "$nv_codec_dir" ]; then
source "${BASH_SOURCE%/*}/../unix/InstallFromCompressedFileFromURL.sh"

View File

@@ -15,20 +15,18 @@ 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/$pkgnameExt"
externalUrl="https://github.com/ninja-build/ninja/releases/download/v$version/$pkgname"
targetFile="$HOME/$pkgname"
DownloadURL "$internalUrl" "$externalUrl" "$sha256" "$targetFile"

View File

@@ -4,7 +4,9 @@
echo "Installing vcpkg android ports"
pushd "${BASH_SOURCE%/*}/../shared/vcpkg" || exit
pushd "${BASH_SOURCE%/*}/vcpkg" || exit
cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
"$VCPKG_ROOT/vcpkg" install --triplet x86-android-qt --x-install-root x86-android-qt-tmp --debug
"$VCPKG_ROOT/vcpkg" install --triplet x86_64-android-qt --x-install-root x86_64-android-qt-tmp --debug

View File

@@ -7,12 +7,12 @@ source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
echo "Installing vcpkg ports"
pushd "${BASH_SOURCE%/*}/../shared/vcpkg" || exit
pushd "${BASH_SOURCE%/*}/vcpkg" || exit
cp "${BASH_SOURCE%/*}/../shared/vcpkg-configuration.json" .
install_root=$1-tmp
vcpkg_extra_args=$2
install_root=x64-linux-qt-tmp
"$VCPKG_ROOT/vcpkg" install --triplet $1 --x-install-root $install_root --debug $vcpkg_extra_args
"$VCPKG_ROOT/vcpkg" install --triplet x64-linux-qt --x-install-root $install_root --debug
cmake "-DVCPKG_EXECUTABLE=$VCPKG_ROOT/vcpkg"\
"-DVCPKG_INSTALL_ROOT=$PWD/$install_root"\

View File

@@ -34,7 +34,7 @@ do
"vcpkg_tool_release_tag")
vcpkgToolReleaseTag=${keyValue[1]}
;;
"unix_checksum")
"linux_checksum")
vcpkgToolChecksum=${keyValue[1]}
;;
esac
@@ -86,7 +86,7 @@ SetEnvVar "VCPKG_ROOT" "$vcpkgRoot"
export VCPKG_ROOT="$vcpkgRoot"
# Set a source for vcpkg Binary and Asset Cache
# The `coin/provisioning/common/<platform>/mount-vcpkg-cache-drive.sh` script is
# The `coin/provisioning/common/linux/mount-vcpkg-cache-drive.sh` script is
# mounting the SMB share located in `vcpkg-server.ci.qt.io/vcpkg` to
# $HOME/vcpkg-cache/
export VCPKG_BINARY_SOURCES="files,$HOME/vcpkg-cache/binaries,readwrite"

View File

@@ -13,7 +13,7 @@ QEMU_VER="8.2.3"
PrimaryUrl="http://ci-files01-hki.ci.qt.io/input/qemu/qemu-$QEMU_VER.tar.xz"
AltUrl="https://download.qemu.org/qemu-$QEMU_VER.tar.xz"
SHA1="1b29c8105cf8d15b9e7fb6f8e85170b6c54a1788"
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" ""
InstallFromCompressedFileFromURL "$PrimaryUrl" "$AltUrl" "$SHA1" "/tmp" "$appPrefix"
targetFolder=/tmp/qemu-${QEMU_VER}
mkdir -p "$targetFolder/build"

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"
@@ -41,11 +41,9 @@ ndkSha1Preview="09be4f8fb626a9c93415198ea8e75d8d82f528fa"
ndkVersionNightly1=$ndkVersionLatest # Set as same version as latest = skip NDK install in provisioning
ndkSha1Nightly1=$ndkSha1Latest
ndkVersionNightly2=$ndkVersionLatest
ndkSha1Nightly2=$ndkSha1Latest
sdkBuildToolsVersion="36.0.0"
# this is compile sdk version
sdkApiLevel="android-36"
toolsTargetFile="/tmp/$toolsFile"
toolsSourceFile="$basePath/$toolsFile"

View File

@@ -1,8 +0,0 @@
#!/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
# Dock autohide interfers with window sizes and mouse cursor/focus
set -e
sudo defaults write com.apple.dock autohide -bool false; killall Dock

View File

@@ -1,303 +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 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_source_dir=$(download_ffmpeg)
ffmpeg_version="n$(<"${ffmpeg_source_dir}/RELEASE")"
if [ ! -n "$ffmpeg_version" ]; then
echo "Error. Unable to determine FFmpeg version."
exit 1
fi
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

@@ -1,3 +0,0 @@
#!/usr/bin/env bash
pip3 install --user lipomerge

View File

@@ -19,7 +19,7 @@ class Libiodbc < Formula
def install
if build.with? "universal"
ENV['CFLAGS'] = '-O -arch arm64 -arch x86_64 -mmacosx-version-min=10.9 -std=gnu89'
ENV['CFLAGS'] = '-O -arch arm64 -arch x86_64 -mmacosx-version-min=10.9'
end
system "./autogen.sh"
system "./configure", "--disable-dependency-tracking", "--prefix=#{prefix}"

View File

@@ -7,6 +7,7 @@
# Mimer SQL is needed for Qt to be able to support Mimer SQL
set -ex
os="$1"
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"

View File

@@ -8,27 +8,25 @@ lib_dir="$1/lib"
additional_suffix="${2:-}"
set_rpath="${3:-yes}"
page_size="${4:-}"
custom_readelf="${5:-""}"
# If custom_readelf is not provided, we fallback to host readelf.
if [ -n "$custom_readelf" ]; then
if ! command -v "$custom_readelf"; then
echo "Error. Provided readelf executable '${custom_readelf}' is not a valid executable"
# readelf and patchelf are prerequisite tools for this script. Check
# that they are available.
if [ "$(uname -s)" = "Darwin" ]; then
# Under Homebrew, binutils package is not symlinked into PATH.
# This lets us use readelf provided by Homebrew.
readelf_homebrew_path="$(brew --prefix binutils)/bin/readelf"
if [[ ! -x "$readelf_homebrew_path" ]]; then
echo "Found no valid readelf executable. It is possible it was not correctly installed through Homebrew."
exit 1
fi
elif ! command -v readelf; then
readelf() { "$readelf_homebrew_path" "$@"; }
fi
if ! command -v readelf; then
echo "Found no valid readelf command. It is possible it was not correctly installed."
exit 1
fi
readelf_wrapper() {
if [ -n "$custom_readelf" ]; then
"$custom_readelf" "$@"
else
readelf "$@"
fi
}
if ! command -v patchelf; then
echo "Found no valid patchelf command. It is possible it was not correctly installed."
exit 1
@@ -59,7 +57,7 @@ for lib_name in "${ffmpeg_libs[@]}"; do
fi
read_needed_deps() {
readelf_wrapper -d "$lib_path" | grep '(NEEDED)'
readelf -d "$lib_path" | grep '(NEEDED)'
}
while read -r line; do

View File

@@ -4,5 +4,4 @@ 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.5.0 ; python_version >= '3.9'
jsonschema>=4.20 ; python_version >= '3.12'
cyclonedx-python-lib==11.0.0 ; python_version >= '3.9'

View File

@@ -1,13 +0,0 @@
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES arm64)
set(VCPKG_TARGET_ARCHITECTURE arm64)
# Default settings of the triplet from the official vcpkg registry
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
# Qt custom per-port customizations
if(PORT MATCHES "openssl")
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_FIXUP_ELF_RPATH ON)
endif()

View File

@@ -1,13 +0,0 @@
set(VCPKG_CMAKE_SYSTEM_NAME Darwin)
set(VCPKG_OSX_ARCHITECTURES x86_64)
set(VCPKG_TARGET_ARCHITECTURE x64)
# Default settings of the triplet from the official vcpkg registry
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
# Qt custom per-port customizations
if(PORT MATCHES "openssl")
set(VCPKG_LIBRARY_LINKAGE dynamic)
set(VCPKG_FIXUP_ELF_RPATH ON)
endif()

View File

@@ -5,5 +5,5 @@
"repository": "https://git.qt.io/aledelev/vcpkg",
"baseline": "9c5c2a0ab75aff5bcd08142525f6ff7f6f7ddeee"
},
"overlay-triplets": [ "./../triplets" ]
"overlay-triplets": [ "./../../shared/triplets" ]
}

View File

@@ -1,4 +1,4 @@
vcpkg_tool_release_tag=2025-09-03
windows_x64_checksum=4523B5B2CE77BD0F6DCA55140D831EA6EB03046D5F4496C85DF94AC1A7EFAB01
windows_arm64_checksum=1E8653243C0E7D73FF1F0F3F25A55C8154888F331510F9545AD200EDD3CCB962
unix_checksum=f0c4b30afc2f7baa9cc4372ac325042418251343e0192dbfac94c4f602e9d3ed
linux_checksum=f0c4b30afc2f7baa9cc4372ac325042418251343e0192dbfac94c4f602e9d3ed

View File

@@ -2,8 +2,12 @@
# 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
ffmpeg_version_default() {
echo "n7.1.3"
}
download_ffmpeg() {
local version="${1:-"n7.1.3"}"
local version="${1:-$(ffmpeg_version_default)}"
local sha1="${2:-27051817deec88bed3b9652d49f9127d22268d83}"
local ffmpeg_name="FFmpeg-$version"

View File

@@ -24,46 +24,43 @@ assert_envvar_is_populated_dir() {
}
build_ffmpeg_android() {
local target_dir=$1
local ndk_root=$2
local openssl_android_path=$3
local target_arch=$1
local target_dir=$2
local ndk_root=$3
local openssl_android_path=$4
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 [ "$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 [ "$os" == "android-x86_64" ]; then
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 [ "$os" == "android-arm32" ]; then
elif [ "$target_arch" == "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
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 [ "$os" == "android-arm64" ]; then
elif [ "$target_arch" == "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"
@@ -124,36 +121,34 @@ build_ffmpeg_android() {
if [ $page_size == "use_16kb_page_size" ]; then
page_size_arg="16384"
fi
local set_rpath_arg="no"
local readelf_path_arg="${toolchain_bin}/llvm-readelf"
sudo "$fix_dependencies" \
"$target_dir" \
"$libs_prefix" \
"$set_rpath_arg" \
"$page_size_arg" \
"$readelf_path_arg"
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"
@@ -171,26 +166,26 @@ fi
assert_envvar_is_populated_dir "ANDROID_NDK_ROOT_LATEST"
assert_envvar_is_populated_dir "OPENSSL_ANDROID_HOME_LATEST"
build_ffmpeg_android "$target_dir/latest" "$ANDROID_NDK_ROOT_LATEST" "$OPENSSL_ANDROID_HOME_LATEST"
build_ffmpeg_android "$target_arch" "$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_dir/preview" "$ANDROID_NDK_ROOT_PREVIEW" "$OPENSSL_ANDROID_HOME_PREVIEW"
build_ffmpeg_android "$target_arch" "$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_dir/nightly1" "$ANDROID_NDK_ROOT_NIGHTLY1" "$OPENSSL_ANDROID_HOME_NIGHTLY1"
build_ffmpeg_android "$target_arch" "$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_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
build_ffmpeg_android "$target_arch" "$target_dir/nightly2" "$ANDROID_NDK_ROOT_NIGHTLY2" "$OPENSSL_ANDROID_HOME_NIGHTLY2"
set_ffmpeg_dir_env_var "$envvar_nightly2" "$target_dir/nightly2"
fi

View File

@@ -0,0 +1,187 @@
#!/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-cflags="$minos" \
--extra-cxxflags="$minos" \
--extra-objcflags="$minos" \
--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

@@ -1,13 +1,13 @@
#!/usr/bin/env bash
# Copyright (C) 2025 The Qt Company Ltd.
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
# This script install OpenSSL from sources.
# Requires GCC and Perl to be in PATH.
set -ex
os="$1"
version=${2:-"3.5.4"}
sha=${3:-"b75daac8e10f189abe28a076ba5905d363e4801f"}
version=${2:-"3.0.7"}
sha=${3:-"f20736d6aae36bcbfa9aba0d358c71601833bf27"}
SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
# shellcheck source=../unix/DownloadURL.sh
@@ -104,18 +104,6 @@ elif [ "$os" == "macos" ] || [ "$os" == "macos-universal" ]; then
SetEnvVar "OPENSSL_INCLUDE" "\"$openssl_install_dir/include\""
SetEnvVar "OPENSSL_LIB" "\"$openssl_install_dir/lib\""
# Set runtime loader (dyld) and OpenSSL providers for SSL tests (QTBUG-142392)
SetEnvVar "DYLD_LIBRARY_PATH" "\"$opensslTargetLocation/lib:\$DYLD_LIBRARY_PATH\""
SetEnvVar "OPENSSL_MODULES" "\"$opensslTargetLocation/lib/ossl-modules\""
# Check that the versioned dylibs exists and ML-DSA is available
test -f "$opensslTargetLocation/lib/libcrypto.3.dylib"
test -f "$opensslTargetLocation/lib/libssl.3.dylib"
test -d "$opensslTargetLocation/lib/ossl-modules"
OPENSSL_MODULES="$opensslTargetLocation/lib/ossl-modules" \
"$opensslTargetLocation/bin/openssl" list -signature-algorithms | \
grep -q -i 'ML-DSA' || { echo "ML-DSA not available"; exit 1; }
security find-certificate -a -p /Library/Keychains/System.keychain | sudo tee -a "$opensslTargetLocation/ssl/cert.pem" > /dev/null
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain | sudo tee -a "$opensslTargetLocation/ssl/cert.pem" > /dev/null
fi

View File

@@ -63,7 +63,6 @@ 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

@@ -16,7 +16,6 @@ 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"
@@ -41,7 +40,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 $zswitch $zip -o/usr/local/
sudo 7z x $zip -o/usr/local/
fi
sudo mv /usr/local/libclang "$destination"
rm -rf $zip

View File

@@ -20,7 +20,6 @@ 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
@@ -62,7 +61,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 $zswitch $zip -o/usr/local/
sudo 7z x $zip -o/usr/local/
fi
sudo mv /usr/local/libclang "$destination"
rm -rf $zip

View File

@@ -5,154 +5,95 @@
# This script install prebuilt OpenSSL which was built against Android NDK 25.
# OpenSSL build will fail with Android NDK 22, because it's missing platforms and sysroot directories
set -eux
set -ex
# shellcheck source=../unix/DownloadURL.sh
source "${BASH_SOURCE%/*}/../unix/DownloadURL.sh"
# shellcheck source=../unix/SetEnvVar.sh
source "${BASH_SOURCE%/*}/../unix/SetEnvVar.sh"
outputPathBase="${HOME}"
sslVersionForLatest="3.5.4"
sslVersionForLatest="3.0.7"
ndkVersionLatest="r27c"
featureSuffixLatest="_16kb_fixed_symversions"
prebuiltOpensslShaLatest="b9dc30ed77bfd26e526e81d558d6964585b27283"
prebuiltOpensslShaLatest="2cc15dd990460c2c7157ab257a47071fbd9e0ac8"
sslVersionForPreview="3.5.4"
sslVersionForPreview="3.0.7"
ndkVersionPreview="r29-beta2"
featureSuffixPreview="_16kb_fixed_symversions"
prebuiltOpensslShaPreview="89b6692e983c7e9678dcd9fc03da623fb75593d3"
prebuiltOpensslShaPreview="76c9788216440111be97ea1a63c4d8cd807baacd"
ndkVersionNightly1=$ndkVersionLatest
sslVersionForNightly1=$sslVersionForLatest
featureSuffixNightly1=""
prebuiltOpensslShaNightly1=$prebuiltOpensslShaLatest
ndkVersionNightly2=$ndkVersionLatest
sslVersionForNightly2=$sslVersionForLatest
featureSuffixNightly2=""
prebuiltOpensslShaNightly2=$prebuiltOpensslShaLatest
: <<'EOB' SOURCE BUILD INSTRUCTIONS
Openssl 3.5.4 prebuilt was made using Android NDK r27c Revision 27.2.12479018
and r29-beta2 Revision 29.0.13599879
: <<'EOB' SOURCE BUILD INSTRUCTIONS - Openssl prebuilt was made using Android NDK r29-beta2
# Source built requires GCC and Perl to be in PATH. Rhel "requires yum install perl-IPC-Cmd"
exports_file="/tmp/export.sh"
# source previously made environmental variables.
if uname -a |grep -q "Ubuntu"; then
# shellcheck disable=SC1090
grep -e "^export" "$HOME/.profile" > $exports_file && source $exports_file
rm -rf "$exports_file"
else
# shellcheck disable=SC1090
grep -e "^export" "$HOME/.bashrc" > $exports_file && source $exports_file
rm -rf "$exports_file"
fi
By using a helpful (build_ssl.sh) script from:
Android OpenSSL support for Qt
https://github.com/KDAB/android_openssl/commit/b71f1470962019bd89534a2919f5925f93bc5779
Download the same NDK version that the Qt branch supports
https://developer.android.com/ndk/downloads
Modify the script to your liking: set a path to NDK root, set OpenSSL version
(script will download needed OpenSSL packages)
Set ANDROID_API to the lowest version of Android which will be used.
officialUrl="https://www.openssl.org/source/openssl-$sslVersionForLatest.tar.gz"
cachedUrl="http://ci-files01-hki.ci.qt.io/input/openssl/openssl-$sslVersionForLatest.tar.gz"
targetFile="/tmp/openssl-$sslVersionForLatest.tar.gz"
sha="f20736d6aae36bcbfa9aba0d358c71601833bf27"
opensslHome="${HOME}/openssl/android/openssl-${sslVersionForLatest}"
DownloadURL "$cachedUrl" "$officialUrl" "$sha" "$targetFile"
mkdir -p "${HOME}/openssl/android/"
tar -xzf "$targetFile" -C "${HOME}/openssl/android/"
if uname -a |grep -q "Darwin"; then
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/darwin-x86_64/bin
else
TOOLCHAIN=${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin
fi
cd "$opensslHome"
PATH=$TOOLCHAIN:$PATH CC=clang ./Configure android-arm
PATH=$TOOLCHAIN:$PATH CC=clang make build_generated
EOB
function BuildOutputPath() {
local ndkVersion="$1"
local suffix="$2"
local sslVersion="$3"
echo "${outputPathBase}/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}"
}
function InstallPrebuiltOpenssl() {
local ndkVersion="$1"
local suffix="$2"
local sha="$3"
local sslVersion="$4"
local output_dir="$5"
local prebuiltUrl="http://ci-files01-hki.ci.qt.io/input/openssl/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
local targetFile="/tmp/prebuilt-openssl-${sslVersion}-for-android-ndk-${ndkVersion}${suffix}.zip"
ndkVersion=$1
sha=$2
sslVersion=$3
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
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"
local tmp_extract
tmp_extract="$(mktemp -d "${TMPDIR:-/tmp}/openssl-extract.XXXXXX")"
unzip -q -o "$targetFile" -d "$tmp_extract"
rm -f "$targetFile"
# We assume there is only one top-level directory in the openssl zip
local temp_openssl_root
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
exit 1
DownloadURL "$prebuiltUrl" "$prebuiltUrl" "$sha" "$targetFile"
unzip -o "$targetFile" -d "${HOME}"
sudo rm -f "$targetFile"
fi
mv "$temp_openssl_root" "$output_dir"
rm -rf "$tmp_extract"
# There have been cases where necessary symlinks are lost when unarchiving.
# Force-create them now.
local abi_list="arm64-v8a armeabi-v7a x86 x86_64"
for abi in $abi_list; do
ln -fs "${output_dir}/include" "${output_dir}/${abi}/include"
ln -fs "${output_dir}/${abi}/libcrypto_3.so" "${output_dir}/${abi}/libcrypto.so"
ln -fs "${output_dir}/${abi}/libssl_3.so" "${output_dir}/${abi}/libssl.so"
done
}
if [ "$ndkVersionNightly1" != "$ndkVersionLatest" ]; then
outputDirNightly1=$(BuildOutputPath \
"$ndkVersionNightly1" \
"$featureSuffixNightly1" \
"$sslVersionForNightly1")
InstallPrebuiltOpenssl \
"$ndkVersionNightly1" \
"$featureSuffixNightly1" \
"$prebuiltOpensslShaNightly1" \
"$sslVersionForNightly1" \
"$outputDirNightly1"
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$outputDirNightly1"
echo "OpenSSL for Android ${ndkVersionNightly1} = ${sslVersionForNightly1}" >> ~/versions.txt
InstallPrebuiltOpenssl $ndkVersionNightly1 $prebuiltOpensslShaNightly1 $sslVersionForNightly1
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$opensslHome"
echo "OpenSSL for Android $ndkVersionNightly1 = $sslVersionForNightly1" >> ~/versions.txt
fi
if [ "$ndkVersionNightly2" != "$ndkVersionLatest" ]; then
outputDirNightly2=$(BuildOutputPath \
"$ndkVersionNightly2" \
"$featureSuffixNightly2" \
"$sslVersionForNightly2")
InstallPrebuiltOpenssl \
"$ndkVersionNightly2" \
"$featureSuffixNightly2" \
"$prebuiltOpensslShaNightly2" \
"$sslVersionForNightly2" \
"$outputDirNightly2"
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY1" "$outputDirNightly2"
echo "OpenSSL for Android ${ndkVersionNightly2} = ${sslVersionForNightly2}" >> ~/versions.txt
InstallPrebuiltOpenssl $ndkVersionNightly2 $prebuiltOpensslShaNightly2 $sslVersionForNightly2
SetEnvVar "OPENSSL_ANDROID_HOME_NIGHTLY2" "$opensslHome"
echo "OpenSSL for Android $ndkVersionNightly2 = $sslVersionForNightly2" >> ~/versions.txt
fi
if [ "$ndkVersionPreview" != "$ndkVersionLatest" ]; then
outputDirPreview="$(BuildOutputPath \
"$ndkVersionPreview" \
"$featureSuffixPreview" \
"$sslVersionForPreview")"
InstallPrebuiltOpenssl \
"$ndkVersionPreview" \
"$featureSuffixPreview" \
"$prebuiltOpensslShaPreview" \
"$sslVersionForPreview" \
"$outputDirPreview"
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$outputDirPreview"
echo "OpenSSL for Android ${ndkVersionPreview} = ${sslVersionForPreview}" >> ~/versions.txt
InstallPrebuiltOpenssl $ndkVersionPreview $prebuiltOpensslShaPreview $sslVersionForPreview
SetEnvVar "OPENSSL_ANDROID_HOME_PREVIEW" "$opensslHome"
echo "OpenSSL for Android $ndkVersionPreview = $sslVersionForPreview" >> ~/versions.txt
fi
outputDirLatest="$(BuildOutputPath \
"$ndkVersionLatest" \
"$featureSuffixLatest" \
"$sslVersionForLatest")"
InstallPrebuiltOpenssl \
"$ndkVersionLatest" \
"$featureSuffixLatest" \
"$prebuiltOpensslShaLatest" \
"$sslVersionForLatest" \
"$outputDirLatest"
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$outputDirLatest"
echo "OpenSSL for Android ${ndkVersionLatest} = ${sslVersionForLatest}" >> ~/versions.txt
InstallPrebuiltOpenssl $ndkVersionLatest $prebuiltOpensslShaLatest $sslVersionForLatest
SetEnvVar "OPENSSL_ANDROID_HOME_LATEST" "$opensslHome"
echo "OpenSSL for Android $ndkVersionLatest = $sslVersionForLatest" >> ~/versions.txt

View File

@@ -15,15 +15,15 @@ if (Is64BitWinHost) {
# Msys need to be installed to target machine
# More info and building instructions can be found from http://doc.qt.io/qt-5/opensslsupport.html
$openssl_version_latest = "3.5.4"
$ndk_version_latest = "r27c_16kb"
$prebuilt_ssl_sha1_latest = "a76cd9ec719d4e71473dcf451d648a9766247081"
$openssl_sha1_latest = "b75daac8e10f189abe28a076ba5905d363e4801f"
$openssl_version_latest = "3.0.7"
$ndk_version_latest = "r27c"
$prebuilt_ssl_sha1_latest = "733cff853b6ee7738e78b90f46b5f028c8490e1e"
$openssl_sha1_latest = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
$openssl_version_preview = "3.5.4"
$ndk_version_preview = "r29-beta2_16kb"
$prebuilt_ssl_sha1_preview = "664bab8b4f5e01c8bb87ab0ea8333b2ef1af703d"
$openssl_sha1_preview = "b75daac8e10f189abe28a076ba5905d363e4801f"
$openssl_version_preview = "3.0.7"
$ndk_version_preview = "r29-beta2"
$prebuilt_ssl_sha1_preview = "c2cf8fabfb7e00b31abcc554e6e306dafd99ae1b"
$openssl_sha1_preview = "f20736d6aae36bcbfa9aba0d358c71601833bf27"
$openssl_version_nightly1 = $openssl_version_latest
$ndk_version_nightly1 = $ndk_version_latest

View File

@@ -10,7 +10,7 @@ $sdkChecksumSha1 = "8fe98c00fde0f524760bb9021f438bd7d9304a69"
$package_path = "C:\Windows\Temp\$package"
Download $officialUrl $cachedUrl $package_path
Verify-Checksum $package_path $sdkChecksumSha1
Verify-Checksum $package_path $sdkChecksumSha1 sha1
Write-Host "Installing DirectX SDK"
Run-Executable $package_path "/u"

View File

@@ -49,7 +49,6 @@ function build-install-grpc {
"-DgRPC_SSL_PROVIDER=package"
# protobuf
"-DProtobuf_USE_STATIC_LIBS=ON"
"-DCMAKE_POLICY_VERSION_MINIMUM=3.5"
"-DCMAKE_PREFIX_PATH=$protobufRoot"
)
cmake .. -G"Ninja Multi-Config" -DCMAKE_CONFIGURATION_TYPES="$BuildType" -DCMAKE_INSTALL_PREFIX="$installPath" $extraCMakeArgs $configureOptions

View File

@@ -2,20 +2,16 @@ function Verify-Checksum
{
Param (
[string]$File=$(throw("You must specify a filename to get the checksum of.")),
[string]$Expected=$(throw("Checksum required"))
[string]$Expected=$(throw("Checksum required")),
[ValidateSet("sha256","sha1","md5")][string]$Algorithm="sha1"
)
switch ($Expected.Length) {
40 { $Algorithm = "SHA1" }
64 { $Algorithm = "SHA256" }
default { throw "Unknown hash length for: $Expected" }
}
Write-Host "Verifying checksum of $File"
$fs = new-object System.IO.FileStream $File, "Open"
$algo = [type]"System.Security.Cryptography.$Algorithm"
$crypto = $algo::Create()
$hash = [BitConverter]::ToString($crypto.ComputeHash($fs)).Replace("-", "")
$fs.Close()
if ($hash -ine $Expected) {
if ($hash -ne $Expected) {
throw "Checksum verification failed, got: '$hash' expected: '$Expected'"
}
}

View File

@@ -33,7 +33,7 @@ $url_official = "https://go.dev/dl/go" + $version + ".windows-" + $arch + ".msi"
Write-Host "Fetching Go $version..."
Download $url_official $url_cache $goPackage
Verify-Checksum $goPackage $sha256
Verify-Checksum $goPackage $sha256 sha256
Write-Host "Installing Go $version..."
Run-Executable "msiexec" "/quiet /i $goPackage"
Write-Output "Go = $version" >> ~\versions.txt

View File

@@ -1,20 +0,0 @@
# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
. "$PSScriptRoot\helpers.ps1"
$script:nugetVersion = "v6.11.0"
$script:nugetPackage = "nuget_$nugetVersion.exe"
$script:packageRoot = "C:\Utils\NuGet\"
$script:cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\nuget\$nugetPackage"
$script:officialUrl = "https://dist.nuget.org/win-x86-commandline/$nugetVersion/nuget.exe"
$script:sdkChecksumSha1 = "5443887cfb5283da5021388d146ebb5febdc82e9"
$script:package_path = "$packageRoot\\$nugetPackage"
New-Item -ItemType Directory -Path "$packageRoot"
Download $officialUrl $cachedUrl $package_path
Verify-Checksum $package_path $sdkChecksumSha1
Write-Host "Installing Nuget"
Set-EnvironmentVariable "NUGET_EXE_PATH" "$package_path"

View File

@@ -10,17 +10,17 @@ $temp = "$env:tmp"
$cpu_arch = Get-CpuArchitecture
switch ($cpu_arch) {
arm64 {
$base_file_name = "OpenSSH-ARM64"
$zipPackage = "OpenSSH-ARM64"
$sha1 = "ca3e8f44a550b7ae71c8e122acd4ed905d66feb0"
Break
}
x64 {
$base_file_name = "OpenSSH-Win64"
$zipPackage = "OpenSSH-Win64"
$sha1 = "1397d40d789ae0911b3cc818b9dcd9321fed529b"
Break
}
x86 {
$base_file_name = "OpenSSH-Win32"
$zipPackage = "OpenSSH-Win32"
$sha1 = "4642C62F72C108C411E27CE282A863791B63329B"
Break
}
@@ -29,27 +29,20 @@ switch ($cpu_arch) {
}
}
Write-Host "Fetching $base_file_name $version..."
$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/$version/$base_file_name.zip"
$url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/$version/$base_file_name.zip"
$output_zip_file = "$temp\$base_file_name.zip"
Download $url_official $url_cache $output_zip_file
Verify-Checksum $output_zip_file $sha1
Write-Host "Fetching $zipPackage $version..."
$url_cache = "http://ci-files01-hki.ci.qt.io/input/windows/openssh/" + $version + "/" + $zipPackage + ".zip"
$url_official = "https://github.com/PowerShell/Win32-OpenSSH/releases/download/" + $version + "/" + $zipPackage + ".zip"
Download $url_official $url_cache "$temp\$zipPackage"
Verify-Checksum "$temp\$zipPackage" $sha1
Write-Host "Extracting the package"
Extract-7Zip $output_zip_file "C:\Program Files"
# We assume the incoming zip contains exactly one directory, named the same
# as the base file name of th zip.
$output_dir = "C:\Program Files\$base_file_name"
if (-not (Test-Path $output_dir -PathType Container)) {
throw "Error. Expected output directory '$output_dir' does not exist."
}
Extract-7Zip "$temp\$zipPackage" C:\"Program Files"
Write-Host "Installing $base_file_name $version..."
$install_script = "$output_dir\install-sshd.ps1"
Write-Host "Installing $zipPackage $version..."
$path = "C:\Program Files\" + $zipPackage + "\install-sshd.ps1"
# Installation done as shown at https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH
powershell.exe -ExecutionPolicy Bypass -File $install_script
powershell.exe -ExecutionPolicy Bypass -File $path
netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22
net start sshd
Set-Service sshd -StartupType Automatic

View File

@@ -1,46 +0,0 @@
# 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
. "$PSScriptRoot\helpers.ps1"
# This script will install Rust
$rust_version="1.92.0"
$cpu_arch = Get-CpuArchitecture
switch ($cpu_arch) {
arm64 {
$rust_arch = "aarch64"
$sha256="DBB09F213D5A9EBB3B2F4C7D65BA7C3C6CAD7D9A76927D079604020C3EA0AD5A"
Break
}
x64 {
$rust_arch = "x86_64"
$sha256="BD3FD270E92D12094151AAE3A67435B7FEF2164B10D96E99A94230929CDA09FD"
Break
}
default {
throw "Unknown architecture $cpu_arch"
}
}
$installer_name="rust-" + $rust_version + "-" + $rust_arch + "-pc-windows-msvc.msi"
$url_cache = "\\ci-files01-hki.ci.qt.io\provisioning\windows\" + $installer_name
$url_official = "https://static.rust-lang.org/dist/" + $installer_name
$tmp_package = "C:\Windows\Temp\" + $installer_name
Download $url_official $url_cache $tmp_package
Verify-Checksum $tmp_package $sha256 "sha256"
Run-Executable "msiexec" "/quiet /i $tmp_package"
Set-EnvironmentVariable "PATH" "C:\Program Files\Rust stable MSVC 1.92\bin;$([Environment]::GetEnvironmentVariable('PATH', 'Machine'))"
Run-Executable "cargo" "install bindgen-cli --root=C:\Utils\rust-tools"
Set-EnvironmentVariable "PATH" "C:\Utils\rust-tools\bin;$([Environment]::GetEnvironmentVariable('PATH', 'Machine'))"
Write-Host "Cleaning $tmp_package.."
Remove "$tmp_package"
Write-Output "Rust = $version" >> ~\versions.txt

View File

@@ -17,9 +17,9 @@ $install_location = "c:\Utils\$prog"
$tmp_location = "c:\users\qt\downloads"
Download $cached_url $cached_url "$tmp_location\$pkg"
Verify-Checksum "$tmp_location\$pkg" $sha1
Verify-Checksum "$tmp_location\$pkg" $sha1 sha1
Download $dep_cached_url $dep_cached_url "$tmp_location\$dep_pkg"
Verify-Checksum "$tmp_location\$dep_pkg" $dep_sha1
Verify-Checksum "$tmp_location\$dep_pkg" $dep_sha1 sha1
Extract-7Zip "$tmp_location\$pkg" $install_location
Extract-7Zip "$tmp_location\$dep_pkg" $install_location

View File

@@ -7,7 +7,9 @@ $vcpkgExe = "$env:VCPKG_ROOT\vcpkg.exe"
$vcpkgRoot = "$env:VCPKG_ROOT"
$vcpkgInstallRoot = "armeabi-v7a-android-qt-tmp"
Set-Location -Path "$PSScriptRoot\..\shared\vcpkg"
Set-Location -Path "$PSScriptRoot\vcpkg"
Copy-Item "$PSScriptRoot\..\shared\vcpkg-configuration.json" -Destination "$PSScriptRoot\vcpkg"
Run-Executable "$vcpkgExe" "install --triplet armeabi-v7a-android-qt --x-install-root $vcpkgInstallRoot --debug"
New-Item -Path "$vcpkgRoot" -Name "installed" -ItemType "directory" -Force

View File

@@ -10,7 +10,9 @@ $vcpkgExe = "$env:VCPKG_ROOT\vcpkg.exe"
$vcpkgRoot = "$env:VCPKG_ROOT"
$vcpkgInstallRoot = "$arch-windows-qt-tmp"
Set-Location -Path "$PSScriptRoot\..\shared\vcpkg"
Set-Location -Path "$PSScriptRoot\vcpkg"
Copy-Item "$PSScriptRoot\..\shared\vcpkg-configuration.json" -Destination "$PSScriptRoot\vcpkg"
Run-Executable "$vcpkgExe" "install --triplet $arch-windows-qt --x-install-root $vcpkginstallroot --debug"
New-Item -Path "$vcpkgRoot" -Name "installed" -ItemType "directory" -Force

View File

@@ -60,7 +60,7 @@ $vcpkgExeCacheUrl = "\\ci-files01-hki.ci.qt.io\provisioning\vcpkg\vcpkg-$nonDott
$vcpkgExe = "C:\Windows\Temp\vcpkg.exe"
Download "$vcpkgExeOfficialUrl" "$vcpkgExeCacheUrl" "$vcpkgExe"
Verify-Checksum $vcpkgExe $vcpkgExechecksum
Verify-Checksum $vcpkgExe $vcpkgExechecksum "sha256"
Move-Item "$vcpkgExe" -Destination "$vcpkgRoot" -Force
if(![System.IO.File]::Exists("$vcpkgRoot\vcpkg.exe")){

View File

@@ -1,89 +0,0 @@
# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
. "$PSScriptRoot\helpers.ps1"
$script:commitSha = "1ede7be543c1fb1e230a733d43f5ee042c72d030"
$script:repoUrl = "https://git.qt.io/qtmultimedia/WindowsVirtualCamera/-/archive/$commitSha/WindowsVirtualCamera-$commitSha.zip"
$script:unzip_location = "C:\Utils\WindowsVirtualCamera"
$script:download_location = "C:\Windows\Temp\WindowsVirtualCamera.zip"
$script:nuget = [System.Environment]::GetEnvironmentVariable('NUGET_EXE_PATH', [System.EnvironmentVariableTarget]::Machine)
$script:localPath = "$unzip_location\WindowsVirtualCamera-$commitSha"
$script:solutionFile = "VCamManager.sln"
$script:buildConfig = "Release"
$script:targetPlatform = "x64"
$script:dllPath = "$localPath\$targetPlatform\$buildConfig\VCamSampleSource.dll"
# Save the current location to return later
$previousLocation = Get-Location
Write-Host "Downloading from $repoUrl to $download_location"
Invoke-WebRequest -Uri $repoUrl -OutFile $download_location
Write-Host "Extracting $download_location to $unzip_location"
Expand-Archive -Path $download_location -DestinationPath $unzip_location
Remove-Item $download_location
# Ensure we're inside repo folder
Set-Location $localPath
$hostArch = Get-CpuArchitecture
$arch = $hostArch
$result = EnterVSDevShell -HostArch $hostArch -Arch $arch
if (-Not $result) {
return $false
}
Write-Host "Locating MSBuild"
$vswhere = "${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
if (-not (Test-Path $vswhere)) {
throw "vswhere.exe not found! Path: $vswhere"
}
$msbuildPath = & $vswhere `
-latest `
-products * `
-requires Microsoft.Component.MSBuild `
-requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 `
-find "MSBuild\**\Bin\MSBuild.exe" `
if ($LASTEXITCODE -ne 0 -or -not (Test-Path $msbuildPath)) {
throw "MSBuild NOT found. Make sure VS Build Tools are installed."
}
Write-Host "MSBuild found: $msbuildPath"
Write-Host "Restoring NuGet packages"
& $nuget restore $solutionFile
Write-Host "Building solution $solutionFile"
& "$msbuildPath" $solutionFile `
/t:Build `
/p:Configuration=$buildConfig `
/p:Platform=$targetPlatform `
/p:RestorePackagesConfig=true `
/m
if ($LASTEXITCODE -eq 0) {
Write-Host "Build succeeded"
} else {
Write-Host " Build failed with exit code $LASTEXITCODE"
exit $LASTEXITCODE
}
Write-Host "Registering the Virtual Camera dll"
regsvr32 /s "$dllPath"
if ($LASTEXITCODE -eq 0) {
Write-Host "Register succeeded"
} else {
Write-Host "Register failed with exit code $LASTEXITCODE"
exit $LASTEXITCODE
}
Set-EnvironmentVariable "VCAM_PATH" "$localPath\$targetPlatform\$buildConfig"
Write-Host "Environment variable VCAM_PATH set to $localPath\$targetPlatform\$buildConfig"
# Return to previous location
Set-Location $previousLocation

View File

@@ -43,7 +43,7 @@ $tempfile = "C:\Windows\Temp\" + $filename_zip
Write-Host "Fetching Telegraf $version..."
Download $url_official $url_cache $tempfile
Verify-Checksum $tempfile $sha256
Verify-Checksum $tempfile $sha256 sha256
Write-Host "Installing telegraf.exe under C:\Utils\telegraf"

View File

@@ -38,7 +38,7 @@ $internalUrl = "http://ci-files01-hki.ci.qt.io/input/windows/node-v$version-win-
Write-Host "Installing Node.js"
Download $externalUrl $internalUrl $package
Verify-Checksum $package $sha256
Verify-Checksum $package $sha256 "sha256"
Extract-7Zip $package $targetFolder
Add-Path $installFolder
Remove $package

View File

@@ -1,28 +1,31 @@
# Copyright (C) 2025 The Qt Company Ltd.
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
. "$PSScriptRoot\helpers.ps1"
# This script installs OpenSSL ARM64 (debug version)
# This script installs OpenSSL ARM64 $version.
##### OpenSSL ARM64 and x64-arm64 has been pre-built with following commands #####
# From Visual studio 'C++ Universal Windows Platform support for v143 build tools' and 'Windows Universal C Runtime' were installed
# cd C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build
# call vcvarsamd64_arm64 (or vcvarsarm64 in Windows 11 arm64 OS)
# curl -o C:\Utils\openssl-3.5.4.zip http://ci-files01-hki.ci.qt.io/input/openssl/openssl-3.5.4.zip
# (or https://github.com/openssl/openssl/releases/download/openssl-3.5.4/openssl-3.5.4.tar.gz)
##### OpenSSL ARM64 has been pre-built with following commands #####
# Two different builds were done to the same folder C:\openssl_arm64\. One with '--debug' and one with '--release' parameter
# From Visual studio 'C++ Universal Windows Platform support for v142 build tools (ARM64)' and 'Windows Universal C Runtime' were installed
# cd C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build
# call vcvarsamd64_arm64
# curl -o C:\Utils\openssl-3.0.7.zip http://ci-files01-hki.ci.qt.io/input/openssl/openssl-3.0.7.zip
# cd C:\Utils
# C:\Utils\sevenzip\7z.exe x C:\Utils\openssl-3.5.4.zip
# cd C:\Utils\openssl-3.5.4
# perl Configure no-asm VC-WIN64-ARM --debug --prefix=C:\openssl_arm64\
# C:\Utils\sevenzip\7z.exe x C:\Utils\openssl-3.0.7.zip
# cd C:\Utils\openssl-3.0.7
# perl Configure no-asm VC-WIN64-ARM --debug --prefix=C:\openssl_arm64\ --openssldir=C:\openssl_arm64\
# nmake
# nmake install
##################################################################################
#
# perl Configure no-asm VC-WIN64-ARM --release --prefix=C:\openssl_arm64\ --openssldir=C:\openssl_arm64\
# nmake
# nmake install
#################################################################################################################################################
$version = "3.5.4"
$url = "https://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version-prebuild-windows-msvc2022-arm64.zip"
$sha1 = "e5fdf5c565e7c275fdfe877f31b387eb48da5d96"
$version = "3_0_7"
$url = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\openssl-$version-arm64.zip"
$sha1 = "19be15069d981b4a96f5715f039df7aaa7456d52"
$installFolder = "C:\openssl_arm64"
$zip_package = "C:\Windows\Temp\$version.zip"
@@ -35,8 +38,9 @@ Remove $zip_package
$cpu_arch = Get-CpuArchitecture
switch ($cpu_arch) {
arm64 {
# Native arm64
# For native arm64
Set-EnvironmentVariable "OPENSSL_ROOT_DIR_arm64" "$installFolder"
Set-EnvironmentVariable "OPENSSL_CONF_arm64" "$installFolder\bin\openssl.cfg"
Set-EnvironmentVariable "OPENSSL_INCLUDE_arm64" "$installFolder\include"
Set-EnvironmentVariable "OPENSSL_LIB_arm64" "$installFolder\lib"
Break
@@ -44,6 +48,7 @@ switch ($cpu_arch) {
x64 {
# For cross-compiling x64_arm64
Set-EnvironmentVariable "OPENSSL_ROOT_DIR_x64_arm64" "$installFolder"
Set-EnvironmentVariable "OPENSSL_CONF_x64_arm64" "$installFolder\bin\openssl.cfg"
Set-EnvironmentVariable "OPENSSL_INCLUDE_x64_arm64" "$installFolder\include"
Set-EnvironmentVariable "OPENSSL_LIB_x64_arm64" "$installFolder\lib"
}

View File

@@ -1,44 +1,64 @@
# Copyright (C) 2025 The Qt Company Ltd.
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
. "$PSScriptRoot\helpers.ps1"
# This script installs OpenSSL x86_64 (debug version)
# This script installs OpenSSL $version.
# Both x86 and x64 versions needed when x86 integrations are done on x64 machine
##### OpenSSL has been pre-built with following commands #####
# cd C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build
# call vcvarsamd64
# curl -o C:\Utils\openssl-3.5.4.zip http://ci-files01-hki.ci.qt.io/input/openssl/openssl-3.5.4.zip
# cd C:\Utils
# C:\Utils\sevenzip\7z.exe x C:\Utils\openssl-3.5.4.zip
# cd C:\Utils\openssl-3.5.4
# perl Configure VC-WIN64A --debug --prefix=C:\openssl_x64\
# nmake
# nmake install
####################################################################################################
$version = "3_0_7"
$packagex64 = "C:\Windows\Temp\Win64OpenSSL-$version.exe"
$packagex86 = "C:\Windows\Temp\Win32OpenSSL-$version.exe"
$version = "3.5.4"
$url = "https://ci-files01-hki.ci.qt.io/input/openssl/openssl-$version-prebuild-windows-msvc2022-x64.zip"
$sha1 = "a028caa10ade0c1d39ad60d06201345908dfaaf2"
$installFolder = "C:\openssl_x64"
$zip_package = "C:\Windows\Temp\$version.zip"
if (Is64BitWinHost) {
# Install x64 bit version
$architecture = "x64"
$installFolder = "C:\openssl"
$externalUrl = "https://slproweb.com/download/Win64OpenSSL-$version.exe"
$internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\Win64OpenSSL-$version.exe"
$sha1 = "2fb73f233bc565939312782b8157bebc26a5e17b"
Write-Host "Fetching from URL ..."
Download $externalUrl $internalUrl $packagex64
Verify-Checksum $packagex64 $sha1
Write-Host "Installing $packagex64 ..."
Run-Executable "$packagex64" "/SP- /SILENT /LOG /SUPPRESSMSGBOXES /NORESTART /DIR=$installFolder"
Write-Host "Remove downloaded $packagex64 ..."
Remove "$packagex64"
Set-EnvironmentVariable "OPENSSL_CONF_x64" "$installFolder\bin\openssl.cfg"
Set-EnvironmentVariable "OPENSSL_INCLUDE_x64" "$installFolder\include"
Set-EnvironmentVariable "OPENSSL_LIB_x64" "$installFolder\lib"
Prepend-Path "$installFolder\bin"
}
# Install x86 bit version
$architecture = "x86"
if (Is64BitWinHost) {
$installFolder = "C:\openssl$architecture"
} else {
$installFolder = "C:\openssl"
}
$externalUrl = "https://slproweb.com/download/Win32OpenSSL-$version.exe"
$internalUrl = "\\ci-files01-hki.ci.qt.io\provisioning\openssl\Win32OpenSSL-$version.exe"
$sha1 = "ddead693fa279ad6b1baf123b3af51a9ef289dc1"
Write-Host "Fetching from URL ..."
Download $url $url $zip_package
Verify-Checksum $zip_package $sha1
Extract-7Zip $zip_package C:\
Remove $zip_package
Download $externalUrl $internalUrl $packagex86
Verify-Checksum $packagex86 $sha1
Write-Host "Installing $packagex86 ..."
Run-Executable "$packagex86" "/SP- /SILENT /LOG /SUPPRESSMSGBOXES /NORESTART /DIR=$installFolder"
Set-EnvironmentVariable "OPENSSL_ROOT_DIR_x64" "$installFolder"
Set-EnvironmentVariable "OPENSSL_INCLUDE_x64" "$installFolder\include"
Set-EnvironmentVariable "OPENSSL_LIB_x64" "$installFolder\lib"
Write-Host "Remove downloaded $packagex86 ..."
Remove "$packagex86"
# Set envvars for builds in provisoning e.g. grpc
Set-EnvironmentVariable "OPENSSL_ROOT_DIR" "$installFolder"
Set-EnvironmentVariable "OPENSSL_INCLUDE" "$installFolder\include"
Set-EnvironmentVariable "OPENSSL_LIB" "$installFolder\lib"
Prepend-Path "$installFolder\bin"
Set-EnvironmentVariable "OPENSSL_CONF_x86" "$installFolder\bin\openssl.cfg"
Set-EnvironmentVariable "OPENSSL_INCLUDE_x86" "$installFolder\include"
Set-EnvironmentVariable "OPENSSL_LIB_x86" "$installFolder\lib"
# Store version information to ~/versions.txt, which is used to print version information to provision log.
Write-Output "OpenSSL x64= $version" >> ~/versions.txt
Write-Output "OpenSSL = $version" >> ~/versions.txt

View File

@@ -0,0 +1,14 @@
{
"overrides": [
{
"name": "openssl",
"version": "3.0.7",
"port-version": 2
}
],
"dependencies": [
"openssl",
"protobuf",
"grpc"
]
}

View File

@@ -1,14 +1,20 @@
# Copyright (C) 2025 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
. "$PSScriptRoot\helpers.ps1"
# This script installs Windows App SDK
$script:nugetVersion = "v6.11.0"
$script:nugetPackage = "nuget_$nugetVersion.exe"
$script:packageRoot = "C:\Utils\WindowsAppSdk\"
$script:package_path = [System.Environment]::GetEnvironmentVariable('NUGET_EXE_PATH', [System.EnvironmentVariableTarget]::Machine)
$script:cachedUrl = "\\ci-files01-hki.ci.qt.io\provisioning\windows\nuget\$nugetPackage"
$script:officialUrl = "https://dist.nuget.org/win-x86-commandline/$nugetVersion/nuget.exe"
$script:sdkChecksumSha1 = "5443887cfb5283da5021388d146ebb5febdc82e9"
$script:package_path = "$packageRoot\\$nugetPackage"
New-Item -ItemType Directory -Path "$packageRoot"
Download $officialUrl $cachedUrl $package_path
Verify-Checksum $package_path $sdkChecksumSha1 sha1
Write-Host "Installing Nuget"
Run-Executable "$package_path" "install Microsoft.WindowsAppSDK -OutputDirectory $packageRoot"
$script:cpuarch = Get-CpuArchitecture

View File

@@ -252,8 +252,6 @@ installPackages+=(libusb-1.0-0-dev)
# password management support for Qt Creator
installPackages+=(libsecret-1-dev)
installPackages+=(debian-archive-keyring)
# Keep zoneinfo up-to-date (COIN-1282)
installPackages+=(tzdata)
echo "Running update for apt"

View File

View File

View File

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

View File

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

View File

@@ -1,15 +0,0 @@
#!/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

@@ -1,11 +0,0 @@
#!/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

@@ -1,8 +0,0 @@
#!/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

@@ -1,20 +0,0 @@
#!/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

@@ -1,10 +0,0 @@
#!/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

@@ -1,62 +0,0 @@
#!/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

@@ -1,8 +0,0 @@
#!/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

@@ -1,210 +0,0 @@
#!/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
echo "Quick fix: Temporarily skip RHEL 10.0 updates due to cockpit update fail (QTQAINFRA-7773)"
#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)
installPackages+=(libatomic)
# 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)
# Keep zoneinfo up-to-date (COIN-1282)
installPackages+=(tzdata)
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

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