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.8
Change-Id: Id0b1bb23513b7bccf02f0c4073e4177f651792dd
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 03d15483a1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
We don't want Windows VMs to spam mDNS messages about optimizing
Windows updates, when the updates themselves are disabled.
Pick-to: 6.8
Task-number: QTQAINFRA-6761
Change-Id: I1452ebbb612f784c96f07de0a29cb2cfb54f1e75
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit f77919a48b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
On iOS we no longer deploy FFmpeg .dylibs directly. As such, there is
no need to install the .dylibs during provisoning.
This patch removes this installation step during provisioning.
Pick-to: 6.8
Change-Id: I6f901113caca4b8d602490ba05db0c9dacb8f80d
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
(cherry picked from commit 9c7e564d7e)
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
The provisioning script install-ffmpeg-android.sh can be useful to run
locally to make sure we build FFmpeg with the same configuration as we
do in CI.
This patch introduce an optional parameter to this provisioning script
that allows us to specify where to install the compiled binaries.
Change-Id: I7ea30bffa4753ac1fab707ed2876ddcbbca06175
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 07775b2ad2)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* add FFmpeg stubs to the 'Required.private' section.
This will make the logic more robust after integration this
in qt multimedia.
* add some script comments.
* fix shellcheck.
* add validity checks.
Pick-to: 6.8
Change-Id: I28639d21c7210109e52ff98ce682da51f8744287
Reviewed-by: Jøger Hansegård <jogerh@gmail.com>
Reviewed-by: Pavel Dubsky <pavel.dubsky@qt.io>
(cherry picked from commit a442e4893f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
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
Change-Id: I28639d28c7210809e52ff18ce612da52f8754285
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
(cherry picked from commit 39ad0317d1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
There're code duplications in install-ffmpeg scripts.
Let's have a file with FFmpeg installation utils and reuse
the functionality on unix platforms.
The utility functions make the code more robust and get
around code duplications.
This cherry-pick had a minor merge conflict because a patch
for switching arm64-simulator to x86_64-simulator was
merged before this patch. This cherry-oick was updated to
work with this change correctly.
Pick-to: 6.8 6.5
Change-Id: I28639d18c7110109e52ff09ce602da52f8857281
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
(cherry picked from commit 51dad84914)
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Update the version variable used to identify the correct package for
download and cache sites.
* Update SHA1 for provisioning packages on all platforms.
Fixes: QTBUG-134304
Pick-to: 6.8
Change-Id: I2577600296e75080d503dc1a537ddbc00d0f207f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
(cherry picked from commit 8c9fe2074b)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Currently this script overwrites a local variables and reuses it for
a (slightly) different purpose. This makes the code a bit hard to
follow.
This patch introduces a separate local variable to improve readability.
No functional changes.
Pick-to: 6.8
Change-Id: Ifa1904482f498d9b380d1ed19ab6b0104afda19b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit c4315452cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Currently this provisioning script builds for arm64 architecture
when on iOS simulator. Qt ships x86_64 binaries for iOS simulator, and
we should build FFmpeg similarly.
This patch introduces support for x86_64-simulator in the iOS FFmpeg
provisioning script and uses it in place of arm64-simulator.
Pick-to: 6.8
Task-number: QTQAINFRA-7034
Change-Id: Ie93cffba51924cd1d78651d20dec211817cb0cef
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit aa613ed85d)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
While writing a documentation for FFmpeg build on iOS it was found that
many options are redundant. Remove them to simplify the provisioning
script and to reduce the amount of cargo cult code.
Pick-to: 6.8
Fixes: QTBUG-133502
Change-Id: I26aab49365eaca83bcdbfeb86de0638ac701bb80
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit d7d7c522b6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Windows usually updates certificates once a week, but due
to disabling Windows background updates there is need to
install and update certificates manually.
Updating certificates during provisioning is selected method
as it's aligned with the same procedure how linux machines have
handled the same.
Task-number: QTQAINFRA-7001
Pick-to: 6.8 5.15
Change-Id: I7c077b5e08328b12c481a3501736f06baf85e71e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
(cherry picked from commit ebcc9a1d10)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Use the sha from last update of Gradle and update AGP version
to match qtbase's 0e4f9ffa55c2b77fbe79e96362bc68a968982b48 commit.
Task-number: QTBUG-132852
Change-Id: Iab851b08bc11290ee51a22f3bdd64369928dff22
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
(cherry picked from commit 1c20066c69)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
to the same libraries we build e.g. on macOS. Also, clean up the
script a bit removing a duplicate configure option.
Pick-to: 6.8
Task-number: QTBUG-133502
Change-Id: If06aad102783bc3025155d3427aa68d87ad4d179
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit a4110ed94f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Use prebuilt package stored in intranet when possible and use
intranet mirror when git is required.
Task-number: QTQAINFRA-6903
Pick-to: 6.8 6.5 5.15
Change-Id: I1630098756c2e9b4f551686679e98a40af5eef2d
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit f23cd54e7f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
* Update the version variable used to identify the correct package for
download and cache sites.
* Update the file names for all platforms, as these libraries are built
directly from upstream without other patches applied on top.
* Add provisioning package locations for Windows VS2022 x64.
* Set 'vs2022' as default toolchain on Windows.
* Update call sites for `libclang.ps1` to pass `vs2022` as argument to
the script.
* Drop Windows configurations with VS2019.
* Update cached and official URLs with the major version for Windows
platforms.
* Update SHA1 for provisioning packages on all platforms.
* Move from RHEL 8.8 to 8.10.
* Move from RHEL 9.2 to 9.4.
Fixes: QTBUG-129506
Fixes: QTQAINFRA-6605
Task-number: QTBUG-129373
Pick-to: 6.8
Change-Id: I5146e6551a1b3c83133803f61ca6f8428cb6a14f
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
(cherry picked from commit 9ff9d34626)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
find_package looks for PackageName_ROOT and the package is now
named 'protobuf'.
Fixes: QTBUG-132901
Change-Id: Ifb956e4ab52c3df059d2624eb989c97473a662a2
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
(cherry picked from commit b2e1673d99)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
To fix only names of FFmpeg frameworks, not system libraries/dylibs.
Pick-to: 6.9.0 6.8
Fixes: QTBUG-134289
Change-Id: I74ef7700549abdccbe569ecd5d8e780fefca6e11
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
QNX qemu configs separated. QNX710 and QNX800 require different set of
dependency libraries and there's an extra image creation bug on QNX800
that needs workaround too.
QNX800 toolchain updated.
Task-number: QTBUG-131708
Pick-to: 6.8
Change-Id: I3bc5c8bb63abbb729d03fcf3afb2f7881bcdd270
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 4791054b10)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This patch bumps the sdkBuildToolsVersion used in Coin to 35.
Task-number: QTBUG-129461
Task-number: QTBUG-130283
Change-Id: I2e1fbdfd23cb854ec50625ff29331adc61abc32c
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This patch bumps the sdkApiLevel used in Coin to 35.
Task-number: QTBUG-129461
Task-number: QTBUG-130283
Change-Id: Ia26248982a2807b2d3554d1a7a7394efcf13f834
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
as xcframeworks so that we can provide both arm64 and arm64-simulator
versions (the former can be used in App Store, the latter when
working with a simulator).
Pick-to: 6.8
Task-number: QTBUG-132313
Change-Id: Ic683f58dffcef8a06adb4a915c4e3abc4ab219e5
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 1968adc126)
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
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.8
Change-Id: I40aa3c1852fb0baf3366fa1a9dab85a66eef95e2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 124957a8cb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This patch
- Replaces Android 14 with Android 15 as a maximum version
- Introduces Android 15 system image to CI cache
- Sets Android 15 as significant
Task-number: QTQAINFRA-6478
Fixes: QTQAINFRA-6652
Pick-to: 6.8 6.5
Change-Id: Icb6de43f3e2c2f7f98f3172c83d66bebf9603d24
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 2c85a91e07)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Add -j4 to limit how many cores is used to build ffmpeg-ios binaries.
Error in logs: "posix_spawn failed: Resource temporarily unavailable"
Task-number: QTQAINFRA-6803
Pick-to: 6.8
Change-Id: I3fb56cdbe4cbda8f779852b0a16121916aa5a1d4
Reviewed-by: Jøger Hansegård <joger.hansegard@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
(cherry picked from commit 6569f201c1)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Also change the upper case L to lower case l, because it's changed
upstream.
Amends 0cfa1fa561
Task-number: QTBUG-131169
Change-Id: I5e501e37bb5516e15a2cbb68cb523ebc5e88d47c
Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io>
(cherry picked from commit ffef920337)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
There's possibility that some installations might add more into
Path that doesn't get visible during the installation process.
Change makes it easier to detect if there's i.e. JRE installed during
Mimer, which caused Java SE update to 17 fail in qtbase build for
Android, because JRE was the first Java found from Path and it
wasn't the required new JDK 17 version.
This can lead even to test with incorrect version of Java, which can
happen with any other different version installations as well.
Task-number: QTQAINFRA-6392
Task-number: QTQAINFRA-6385
Pick-to: 6.8
Change-Id: Idce79eb06d73894ae648e0be53ff1f07bb21392d
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
(cherry picked from commit 444167f5fb)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
If there is an error in emsdk scripts when running ".\emsdk install",
the provisioning would still continue. This change will make the script
exit and stop provisioning when the install command fails.
Also remove the attempt to use Python 2 and make sure the installation
finds Python 3 instead.
Pick-to: 6.8 6.5
Task-number: QTQAINFRA-5453
Change-Id: If052adcd446537b0eeb6261e4a297e9aeb292c6e
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
(cherry picked from commit 879c8b91f3)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
Avahi-daemon often hogs 100% of CPU on the VMs. This particularly
causes issue on 2 core(thread) VMs where tests compete for CPU
with avahi.
Limiting avahi to test service related interfaces eliminates the
abnormal CPU usage.
Avahi should be only needed for tests to see the docker test services.
Pick-to: 6.8 6.5 5.15
Task-number: QTQAINFRA-6697
Change-Id: I30d75f2118501cd69d98aeea8c62722a0fb238c5
Reviewed-by: Dimitrios Apostolou <jimis@qt.io>