Commit Graph

189 Commits

Author SHA1 Message Date
Alexey Edelev
5579337dde Add lipomerge tool provisioning
The tool provides an easy and convenient way of merging
per-architecture macos libraries into the universal ones.

Change-Id: Idcec68ea13e4cf4e201373866f1ebabbbc586414
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-12-20 19:38:13 +01:00
Rami Potinkara
2795f20a4e 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.11 6.10 6.8
Change-Id: Ic63cd28ba39743e517ea3a3e2f9ec08bd5dc3267
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-12-16 09:27:54 +00:00
Allan Sandfeld Jensen
2bd7830030 Update NodeJS to at least version 20
Needed for WebEngine based on Chromium 140

Pick-to: 6.10 6.11
Change-Id: I0cf1df1107cc8f5aa2850239608f03a7c7831676
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-12-10 12:23:37 +01:00
Nils Petter Skålerud
ba6a77312d 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.11 6.10 6.8
Change-Id: Ic5048f54adb31d263e28f51312f44fe3b55e6fe5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2025-12-10 09:12:01 +00:00
Nils Petter Skålerud
c9a8b8f220 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.11 6.10 6.8
Change-Id: Id9227241283d4c529005c4961449f50ca7af13be
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-12-10 09:11:58 +00:00
Nils Petter Skålerud
8a70b9e482 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.11 6.10 6.8
Change-Id: Idba30d07607780d1ef8c60cc5e038a034c821632
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-12-10 09:11:56 +00:00
Nils Petter Skålerud
f0b54a51f7 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.11 6.10 6.8
Change-Id: I8c1f6f7d635fe47b9faa34dbe6988e89252dc2c9
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-12-10 09:11:51 +00:00
Toni Saario
73c4ed922a Update sccache to v0.11.0
Custom patched packages for windows.

Also Add Windows on arm support.

Pick-to: 6.11 6.10 6.8
Fixes: COIN-740
Change-Id: I27f7d36b3501be2a2011b9b8dfa0ec846cd57bf5
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-12-10 10:11:47 +01:00
Tero Heikkinen
cdf01ee62c sbom: New SBOM_PYTHON_INTERP_PATH env to use correct python3 for SBOM
To all linux, macOS and Windows platforms.

Task-number: QTQAINFRA-7554
Change-Id: I677440fb9faf3f3d36744b59f91f0036449b639b
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-11-22 21:41:06 +02:00
Simo Fält
293714d7bd COIN: Enable Accessibility service for Squish on macOS
Task-number: QTQAINFRA-7123
Pick-to: 6.9 6.10
Change-Id: I06aadb58583e073b13362ed20fae2550869a7c52
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-10-02 22:02:15 +03:00
Matti Paaso
986d4b8760 Provisioning: Fix pyenv installation
Task-number: QTQAINFRA-7439
Pick-to: 6.10 6.8 6.5
Change-Id: I02202d1b53ab5442e04b6e5c0d7ff3119686f117
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2025-10-02 22:02:10 +03:00
Rami Potinkara
1ce81f80e4 Android 16: Introduce NDK r29-beta2 as preview NDK
This patch introduces preview NDK. Environment variables related to
preview NDK's are marked with _PREVIEW. The patch introduces NDK
29.0.13599879-beta2 as first _PREVIEW NDK. This preview NDK will be
first used in insignificant platforms Android 16.

Task-number: QTQAINFRA-7290
Fixes: QTQAINFRA-7291
Change-Id: Id093b8f71970f77409bd805d6d1d153f47ade762
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
2025-09-15 20:59:39 +03:00
Toni Saario
b8995e0ebc Delete macOS GCA keys and dhcp lease after provisioning
This ensures that link-local IPv6 address is unique per
each VM.

Task-number: QTQAINFRA-7383
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: I53434ec3a158cec09f03c96087a401ef05f47b86
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2025-09-09 05:01:58 +00:00
Aku Pietikäinen
1126034d5b Use common p7zip install script and remove unnecessary brew update
Change-Id: Id704953bf2eb9a2cfb11dbdb47451aed7bbc736b
Task-number: QTQAINFRA-7381
Pick-to: 6.10 6.9 6.8 6.5
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-09-09 05:01:55 +00:00
Tero Heikkinen
0b23c3afcd macOS: Fix mdutil unknown indexing state in provisioning
Task-number: QTQAINFRA-7377
Pick-to: 6.9 6.8 6.5
Change-Id: Idf0dc607a4c6f7299412f6979f9ea6de5ea522cb
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-09-05 18:35:38 +03:00
Aku Pietikäinen
ae2ae67c61 Update homebrew to version 4.6.8 and git to latest installer
Change-Id: I2c13ce86b3aceae47afab7e1af1489c2d355aad2
Pick-to: 6.10 6.9 6.8 6.5
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2025-09-05 15:35:31 +00:00
Tor Arne Vestbø
e8f8c9e845 coin: Force detach Docker volume unmount
Change-Id: I6c19b374adf3d4cd75a3307474e973af96613378
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2025-08-21 14:48:16 +02:00
Aku Pietikäinen
a9b7487138 Change libiodbc brew to use local tap
Installing directly from rb file no longer supported by
homebrew without HOMEBREW_DEVELOPER set after https://github.com/Homebrew/brew/pull/20414
was merged.

Create local tap for install to avoid need for homebrew developer mode.

Task-number: QTQAINFRA-7344
Change-Id: Id59af01875b16d1757b1dba36c2ba04bf973c212
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-08-21 15:48:13 +03:00
Aku Pietikäinen
f73de1b6a8 Use correct PATH for homebrew based on architecture
Task-number: QTQAINFRA-6903
Change-Id: I1b5f529e8e94a7e609b5be1704ed83f6380f4cc5
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-08-21 15:48:10 +03:00
Aku Pietikäinen
1dffbe8157 Update homebrew after installation
Get rid of incompatibility errors between homebrew client and server.

Tark-number: QTQAINFRA-6903
Pick-to: 6.10 6.9 6.8 6.5
Change-Id: If42b721084f770763a378b93b3386733ab48828f
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-07-11 15:33:26 +03:00
Tor Arne Vestbø
dc6d452a9d Explicitly install Metal toolchain for Xcode
It's not included by default in Xcode 26.

Change-Id: Ie1e11bdeba18c4ee1e00132fc4bc075b8218e1fc
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-07-08 16:42:11 +02:00
Alexey Edelev
fefacee86c Export path to the Ninja executable
This path will be used as CMAKE_MAKE_PROGRAM explicitly.

Change-Id: Ic15253f837b798c468f782ad4116d1ba4cc7c934
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-06-24 13:03:22 +02:00
Elias Toivola
bf04a7a94d Android: set macOS nightly targets for older NDK versions
This change makes macOS provisioning also install older NDKs for
Android (if set), which will be used in nightly targets.

Pick-to: 6.10
Task-number: QTQAINFRA-7069
Change-Id: Ie176c5ea69a1398afa69691ad6f37b7af2f66dfc
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-19 14:46:35 +03:00
Rami Potinkara
16d8060467 Provisioning: Remove OpenSSL 1
This patch removes OpenSSL 1 related sections.

Pick-to: 6.10
Task-number: QTQAINFRA-7069
Change-Id: If565fb2223b17497553a77fda47fe9dfbdccb32a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-06-19 14:46:32 +03:00
Nils Petter Skålerud
708548742b Coin, FFmpeg, macOS: Add output parameter to 'install-ffmpeg-macos.sh'
This patch adds an optional parameter to the provisioning script
'install-ffmpeg-macos.sh', allowing us to override the output directory
for which the finalized library is installed.

This is particularly useful for local builds, where we often need
multiple different versions of FFmpeg installed, for different Qt
versions.

This patch has no impact for existing coin workflows.

Pick-to: 6.10 6.9 6.8
Change-Id: If31922e931db19ab189850b975ce0131a64321b4
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-06-05 18:20:22 +00:00
Nils Petter Skålerud
03d15483a1 Coin, FFmpeg, macOS: Apply 'prefix' consistently
In the provisioning script 'install-ffmpeg-macos.sh', we have a variable
'prefix' controlling where to install the finalized library. The value
of this prefix is sometimes hardcoded into some of the temporary build
directories, making the script break if we actually modify the 'prefix'
variable. This means we currently cannot easily change the output directory.

This patch modifies 'install-ffmpeg-macos.sh' so that the 'prefix' is
applied consistently throughout the script, allowing us to change
the output directory in the future.

Pick-to: 6.9 6.8
Change-Id: Id0b1bb23513b7bccf02f0c4073e4177f651792dd
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2025-05-18 11:12:05 +02:00
Cristian Le
5628f067e4 Add an overall requirements.txt file
This allows to more easily expand python packages

Change-Id: I86dd14cb2f38989ee1b4efdac1089f573f1d6307
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-05-07 17:41:30 +02:00
Aku Pietikäinen
cf026224dd Add missing escape when adding Homebrew to PATH
Task-number: QTQAINFRA-6903
Pick-to: 6.9 6.8 6.5 5.15
Change-Id: I2f97621d3413df17f9b969113e863974bd739cac
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-03-31 07:21:36 +02:00
Rami Potinkara
a242bb2e3e Provisioning: Update Android NDK to LTS version r27c
This patch updates Android NDK from LTS r26b to LTS r27c.
The version is 27.2.12479018

Task-number: QTQAINFRA-6479
Task-number: QTQAINFRA-6655
Pick-to: 6.9.0 6.9 6.8.3 6.8 6.5
Change-Id: Ic791cfd5d5dd2a439f96590b6f6f8ca0ac4fb5ae
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2025-03-13 10:09:08 +00:00
Aku Pietikäinen
f23cd54e7f Homebrew flakiness improvements
Use prebuilt package stored in intranet when possible and use
intranet mirror when git is required.

Task-number: QTQAINFRA-6903
Pick-to: 6.9 6.8 6.5 5.15
Change-Id: I1630098756c2e9b4f551686679e98a40af5eef2d
Reviewed-by: Simo Fält <simo.falt@qt.io>
2025-02-25 21:36:41 +02:00
Rami Potinkara
9e5bb886b0 Provisioning: bump Android sdkBuildToolsVersion to 35
This patch bumps the sdkBuildToolsVersion used in Coin to 35.

Task-number: QTBUG-129461
Task-number: QTBUG-130283
Pick-to: 6.9 6.8 6.5
Change-Id: I2e1fbdfd23cb854ec50625ff29331adc61abc32c
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-02-25 21:36:35 +02:00
Simo Fält
fda391a753 Provisioning: Allow retry when disabling spotlight indexing
Task-number: QTQAINFRA-5996
Change-Id: I05ef6d33d74448ee830d137b137c6ee73f6e0518
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2025-02-25 19:36:29 +00:00
Konsta Alajärvi
b0d999c087 Provisioning: bump Android sdkApiLevel to 35
This patch bumps the sdkApiLevel used in Coin to 35.

Task-number: QTBUG-129461
Task-number: QTBUG-130283
Pick-to: 6.9 6.8 6.5
Change-Id: Ia26248982a2807b2d3554d1a7a7394efcf13f834
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2025-02-25 21:36:17 +02:00
Tor Arne Vestbø
7f51bdbd8d macOS: Set PostgreSQL_ROOT during provisioning rather than in each config
Decouples provisioning from build configurations.

Pick-to: 6.9 6.8
Change-Id: I53b0983ab8b20c40568c1b5b9a24bfe3c62cf531
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2025-01-31 08:18:17 +01:00
Tor Arne Vestbø
124957a8cb Use correct path for libiodbc and forward via ODBC_ROOT env var
The hard-coded path paths added to LIBRARY_PATH and CPLUS_INCLUDE_PATH
was not correct on Apple Silicon Macs, where homebrew installs into
/opt/homebrew/.

There's also no point in passing on the library location via compiler
environment variables, when we can use ODBC_ROOT. And we don't need
to pass it on as a CMake define, as a environment variable works just
fine. This decouples the provisioning of libiodbc from the build
configurations.

Pick-to: 6.9 6.8
Change-Id: I40aa3c1852fb0baf3366fa1a9dab85a66eef95e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2025-01-31 08:18:12 +01:00
Artem Dyomin
39ad0317d1 Decouple install-ffmpeg on linux and macos specific files
The FFmpeg building flow has become too different on linux and macos.
Decoupling the logic makes it more simple to follow.

The CR also fixes nits and shellcheck warnings in install-ffmpeg.

Pick-to: 6.8 6.9
Change-Id: I28639d28c7210809e52ff18ce612da52f8754285
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
2025-01-17 07:15:13 +01:00
Ville-Pekka Karhu
1f6f97a141 Provisioning: Add Simulator Runtime installation to macOS
Task-number: QTQAINFRA-6774
Pick-to: 6.9 6.8
Change-Id: I2461911d20ba2fda7b2c53d38b0e688139501e22
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2024-12-10 14:30:40 +00:00
Matti Paaso
5128df0130 Update Java version into 17
Jenkins needs version 17 to get agent running in VM

Task-number: QTQAINFRA-6263
Pick-to: 6.2 6.5 6.8
Change-Id: I57daadad6baa2e7e538874769af3fbe0cdd42878
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2024-11-09 16:46:30 +02:00
Tor Arne Vestbø
b3758bde8d coin: Fix or silence shellcheck warnings in TCC permissions script
Change-Id: I4905e062532518b02ad4c4187057028484fc8e1d
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
2024-10-27 10:14:19 +02:00
Alexandru Croitor
400776459b CMake: Update provisioned CMake to version 3.30.5
Pick-to: 6.8
Fixes: QTQAINFRA-6484
Change-Id: Iacccb9f43059c78080e338da6680f5c50284c057
Reviewed-by: Simo Fält <simo.falt@qt.io>
2024-10-27 10:13:54 +02:00
Alexandru Croitor
6f991b55a3 coin: Explicitly specify SBOM_PYTHON_APPS_PATH for all platforms
Instead of relying on the qtbase coin instructions to compute the
SBOM_PYTHON_APPS_PATH path based on the platform, which does not work
reliably, especially when multiple python installations are present,
explicitly specify the path in the provisioning scripts.

Amends 1f2fb6312c

Pick-to: 6.8
Task-number: QTBUG-122899
Task-number: QTBUG-124453
Task-number: QTBUG-125211
Change-Id: I097fd1c4119a203d82f88c477dbf0fc0f67f19f2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2024-10-25 16:13:04 +02:00
Aku Pietikäinen
cfd06e54fd Enable vnc remote management on macOS
Task-number: QTQAINFRA-6668
Pick-to: 6.8 6.5
Change-Id: I5af8e460059cdcaad22f637e1c92d9a46950f775
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2024-10-19 11:33:33 +03:00
Matti Paaso
73cc61c389 Update java in macOS x64
Android requires java 17 in Qt 6.8 and RTA needs java 17 into VMs
to compile Qt examples.

Task-number: QTQAINFRA-6492
Pick-to: 6.8
Change-Id: I873c188154c2eae2a9eebddb94279c41ca822576
Reviewed-by: Johanna Äijälä <johanna.aijala@qt.io>
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-09-24 07:35:38 +03:00
Fredrik Ålund
90308d841e Update Mimer SQL macOS binaries
The Mimer SQL macOS binaries had a problem fixed in version
11.0.8E. Update provisioning script with new version. Since Mimer SQL
on macOS is now universal binary only, remove the arm64 and x86_64
versions.

Fixes: QTQAINFRA-6559
Pick-to: 6.8
Change-Id: I7e202ffc945167db79430846571cd7e1bb5158f6
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2024-09-09 18:31:33 +02:00
Tor Arne Vestbø
3a5f7bb8d8 coin: Add kTCCServiceScreenCapture permission to ssh/bootstrap-agent
The screen capture permission might be useful for Qt Multimedia, and
also allows us to do screen capturing of the state of the VM in case
of test failures.

For macOS 15 we need to work around the monthly nagging that an
app has permission to capture the screen, otherwise this popup
may interfere with test runs.

Pick-to: 6.8
Change-Id: I0398488c78b19a85ba527b780b264e0b915b6024
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-08-26 22:53:57 +02:00
Tor Arne Vestbø
5368f47fe0 coin: Extend TCC permissions to SSH server and bundled boostrap agent
We are experimenting with various ways of running and packaging the
bootstrap agent. To support this, let's add the required permissions
to both a standalone bootstrap-agent executable, as well as an app
bundled version of it, if found.

In addition, add the permissions to sshd-keygen-wrapper, which is
the responsible process for the SSH server, and any ssh login
sessions spawned by that. This serves two purposes. Firstly, this
matches the permissions between a coin run (by the bootstrap agent)
and what a developer will see when SSH'ing into the CI machine to
debug an issue. Secondly, we might use ssh as an entrypoint to
run the bootstrap-agent, in which case we need the permissions
on sshd-keygen-wrapper anyways, so that they are inherited by
the bootstrap-agent.

Pick-to: 6.8
Change-Id: I576349e93ca19d98384490c99102966e8ffe2833
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2024-08-26 21:26:13 +02:00
Tor Arne Vestbø
3ad98d0b27 coin: Give coin agent permission to access Bluetooth
The Qt Connectivity tests rely on this.

Pick-to: 6.8
Change-Id: I7218485e583ebe2c8d381a0104012a86350e6eac
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
2024-07-08 16:48:33 +02:00
Eike Ziller
c872c35cc6 COIN: Fix sccache installation on ARM Macs
Install the ARM sccache binary to fix

/usr/local/sccache/sccache: Bad CPU type in executable

Pick-to: 6.8 6.7
Change-Id: I033a7c8cf88d0d1ad35a4406a5d2a878da8d17a7
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-06-25 04:21:33 +00:00
Alexandru Croitor
1f2fb6312c coin: Add python packages to allow validating Qt generated SBOM files
Add a sbom_requirements.txt file and install it using the
various platform specific pip installations.

Partially restores b87b44168c but
without the wheel cache.

Pick-to: 6.8
Task-number: QTBUG-122899
Change-Id: I8002898866acbc226ffebb59dcf5b3a58237ea34
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-06-20 06:56:17 +02:00
Simo Fält
f9bb6b202a Provisioning: Add retry for disabling Spotlight indexing
Task-number: QTQAINFRA-5996
Pick-to: 6.8
Change-Id: I6c85816f7b490fbb2423cbf7d0efe862056bc001
Reviewed-by: Toni Saario <toni.saario@qt.io>
2024-06-18 19:24:44 +03:00