qtbase/45fd36f1480a6229879a4e59236ffa1d1d22dfbf triggers internal
compiler errors in MSVC2019 when configuring Qt with -c++std c++20.
Move the build-testing of the C++20 standard to
windows-11_22h2-msvc2022.
Change-Id: I7591223ae391471c61a80883f305c73e43945714
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Toni Saario <toni.saario@qt.io>
Debian arm only has Wayland, and there is no QtWayland QPA plugin
available yet during the integration of each module. We can run
offscreen mode for now. And enable tests on Wayland in qtwayland
and qt5 integration.
Pick-to: 6.7 6.6 6.5
Task-number: QTQAINFRA-5594
Change-Id: Ie06d0b88509f9e55c96ce3b05b18ff8cec672f6b
Reviewed-by: Liang Qi <liang.qi@qt.io>
WebDriverManager will be used to install correct version of
chromedriver for WebAssembly Selenium testing.
Task-number: QTBUG-122729
Change-Id: I49b61da3d8dd20b36ec6965c258a6a608ac33a63
Reviewed-by: Simo Fält <simo.falt@qt.io>
The bootstrap-agent is the 'responsible process' in TCC terms when
it comes to whether a test should be allowed to access the microphone.
https://www.qt.io/blog/the-curious-case-of-the-responsible-process
By giving this process the permission explicitly, by modifying the
TCC database, we ensure that all tests run as child processes also
get this permission.
Change-Id: Ia03084ac89f0717ac6457b0035769f4a9863495b
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
The -help option was parsed by init-repository and not passed along
to configure. Make sure to pass it.
Currently this means a developer won't be able to see the
init-repository help when using the configure script.
Task-number: QTBUG-120030
Change-Id: I5d8c0f9147e1fcd5522ab98ad9ab0947a8411d1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Make sure that -submodules argument is processed when we assume that
the top-level Qt meta repository is already initialized.
Amends 2c9664ca33
Fixes: QTBUG-122954
Change-Id: Id7a325c2dd670667e8b0fdcd607b52080b118f4f
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Calling configure will now implicitly run init-repository when
appropriate. See further down below for what "appropriate" means.
All supported init-repository options can be passed to configure as
except for -mirror, -oslo, -berlin.
This includes useful options like -submodules, -no-resolve-deps and
-no-optional-deps.
When running configure on a qt5.git clone without any submodules
cloned, configure will exit with a helpful error message suggesting to
pass -init-submodules, so it automatically clones missing repositories.
This means cloning is opt-in, so that internet access is not done
implicitly.
The error message also suggests passing the -submodules option.
This will affect which submodules will be cloned by init-repository
and which submodules will be configured by configure.
In this case -submodules is effectively an alias of
init-repository's -module-subset for cloning purposes.
When calling configure a second time, without -init-submodules, on an
already configured repo, init-repository behavior is entirely skipped.
-submodules now accepts init-repository-style special values like
"essential", "addon", "all", "existing", "-deprecated" for the purpose
of cloning submodules. The values are then translated into actual repos
that should also be configured or skipped by configure.
The default subset of cloned submodules is currently the same one as
init-repository, "default", which clones 44 actively maintained
repositories as well as deprecated submodules.
If configure is called a second time WITH -init-submodules, it's the
same as calling init-repository --force to re-initialize submodules.
In this case passing something like
--submodules existing,<additional-submodules>
might make sense to add or remove submodules.
As a drive-by this also fixes the bug where you couldn't pass a
configure -- -DFOO=0
parameter to configure, because it got treated as '0>', redirecting
from a different stream than stdout, leading to empty content in the
file.
[ChangeLog][General][Build System] The configure script now implicitly
calls init-repository when appropriate and accepts init-repository
command line options.
Fixes: QTBUG-120030
Task-number: QTBUG-122622
Change-Id: Iedbfcbf0a87c8ee89e40d00b6377b68296a65a62
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
The new test uses the recently introduced upstream cmake test
infrastructure module, to ensure the execution log output is identical
between the old perl script and new the cmake script for a few basic
use cases. It is not an exhaustive test of all features. It should
work on Windows, macOS, Linux (assuming perl is installed).
There are also a few tests that only apply to the cmake-script
version for features that exist only in the latter (like the 'existing'
module-subset key).
The test is a 'manual' test instead of an 'auto' test because we don't
really want to clone so many submodules as part of every qt5.git
integration in Coin.
In the future, we could potentially add a nightly Jenkins job to run
the tests.
Task-number: QTBUG-120030
Change-Id: I4201d734c2877109102518b073dec24bb63edc24
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
It will be used to write some manual tests for init-repository to
ensure there are no big regressions between the perl and cmake
scripts.
It is only used for the manual tests and is not shipped or installed
as part of the Qt installation.
The code is licensed under BSD-3.
The files were renamed to be more inline with Qt's naming.
The contents of QtIRTestHelpers.cmake is one function from
<cmake-upstream>/Tests/RunCMake/CMakeLists.txt
The contents of QtIRRunCMake.cmake is the whole file
<cmake-upstream>/Tests/RunCMake/RunCMake.cmake
Task-number: QTBUG-120030
Change-Id: Ia3f459fe25b9b8c683a69b5dded2019e03eebdb9
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
init-repository is now implemented using CMake + .sh / .bat scripts.
The intent behind the change is not to require Perl to checkout and
build Qt, because it can be troublesome to acquire on Windows and it
can also lead to issues during builds due to CMake picking up a Perl
distribution-shipped compiler.
All previous options were ported over like
- module-subset
- alternates
- etc.
A few new options were added:
- --resolve-deps / --no-resolve-deps
- --optional-deps / --no-optional-deps
- --verbose
and some other internal ones for testing reasons.
The new script does automatic resolving of dependencies
based on the depends / recommends keys in .gitmodules unless
--no-resolve-deps is passed.
So if you configure with --module-subset=qtsvg, the script will also
initialize qtbase.
If --no-optional-deps is passed, only required dependencies ('depends'
ky) will be included and optional dependencies ('recommends' key) will
be excluded.
The new script now has a new default behavior when calling
init-repository a second time with --force, without specifying a
--module-subset option. Instead of initializing all submodules, it
will just update the existing / previously initialized submodules.
It also understands a new module-subset keyword "existing", which
expands to the previously initialized submodules, so someone can
initialize an additional submodule by calling
init-repository -f --module-subset=existing,qtsvg
Implementation notes:
The overall code flow is init-repository -> cmake/QtIRScript.cmake
-> qt_ir_run_main_script -> qt_ir_run_after_args_parsed ->
qt_ir_handle_init_submodules (recursive) -> qt_ir_clone_one_submodule
with some bells and whistles on the side.
The command line parsing is an adapted copy of the functions
in qtbase/cmake/QtProcessConfigureArgs.cmake. We can't use those exact
functions because qtbase is not available when init-repository is
initially called, and force cloning qtbase was deemed undesirable.
We also have a new mechanism to detect whether init-repository was
previously called. The perl script used the existence of the qtbase
submodule as the check. In the cmake script, we instead set a custom
marker into the local repo config file.
Otherwise the code logic should be a faithful reimplementation of
init-repository.pl aside from some small things like logging and
progress reporting.
The pre-existing git cloning logic in QtTopLevelHelpers was not used
because it would not be compatible with the alternates option and I
didn't want to accidentally break the pre-existing code. Plus
init-repository is a bit opinionated about how it clones and checks
out repos.
The dependency collection and sorting logic uses the pre-existing code
though.
See follow up commit about implicitly calling init-repository when
qt5/configure is called and the repo was not initialized before.
[ChangeLog][General] init-repository was rewritten using CMake. Perl
is no longer required to initialize the qt5.git super repo.
Task-number: QTBUG-120030
Task-number: QTBUG-122622
Change-Id: Ibc38ab79d3fdedd62111ebbec496eabd64c20d2b
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
If the installed ca-certificates on tier1 is something that doesn't
exist in the repo anymore, re-install will fail. So just try to install
and expect update if a more recent version is available.
Pick-to: 6.7
Change-Id: Ib6e610f4908fcae6af7e79ecc37ffe600c6ee7af
Reviewed-by: Toni Saario <toni.saario@qt.io>
This upgrade is needed because msys2 20220319 fails to install
diffutils. Its url is broken. Diffutils was first added on 6.5
Fixes: QTBUG-122465
Pick-to: 6.7 6.6 6.5
Change-Id: If94cafed68f3400557e01365e743155e9b732dac
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
QtLite allows user to select subset of Qt features.
This combined with static linking and link time optimization
produces up to 80% smaller QML application
Change-Id: Ied98a564cca39901091e751303341f83b672a631
Task-number: QTBUG-117638
Reviewed-by: Toni Saario <toni.saario@qt.io>
Reviewed-by: Samuli Piippo <samuli.piippo@qt.io>
With new CI policy to always update packages when provisioning changes,
but system & packages are tied to a specific RHEL release i.e. --set=9.2
This could reduce unwanted upgrades and make provisioning more stable.
Task-number: QTQAINFRA-5658
Pick-to: 6.7
Change-Id: I898a793acf152ebb6e1f31c9b26a98f47145bd5a
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Update qdoc and qtattributionsscanner to the latest versions from
qttools/dev.
The qdoc binary is now built against libClang v17.0.1. It also supports
the new \compares and \compareswith commands introduced in Qt 6.7.
Pick-to: 6.7
Task-number: QTBUG-111580
Change-Id: I7d91226a89870968ecf3c9938ffcb451b1ea5c68
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
This is required for macOS ARM target in license service
Task-number: QLS-455
Change-Id: I7029e58e84e54818e11f90540f6c830bf79b4d63
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
In n6.1, the target cpu is supposed to be x86-64 instead of x86_64.
Task-number: QTBUG-121343
Pick-to: 6.7 6.6 6.5
Change-Id: Id87a6eaaf73f093bbac66f245998cda6a3e992fc
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
This reverts commit cd515c6b07.
Reason for revert: Axivion licensing issue in dev provisioning has been fixed. Remove the insignificant flags from these Axivion builds for Qt Safe Renderer.
Change-Id: I0fb42fa1ed61a9044e5d53160481eeddbad87555
Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
Allows us to first see tart on production load before starting to
move the blocking arm targets to tart. Later configs will be
directly replaced and original ids will be used.
Change-Id: I865e6fe46b61828b6123b69973a2a4d209697c5f
Reviewed-by: Toni Saario <toni.saario@qt.io>
Saving symlinks is important when we build dynamic libs,
it will be needed for building QtMM + dynamic ffmpeg.
Task-number: QTBUG-120989
Pick-to: 6.7 6.6 6.5
Change-Id: I58c040a81f1fa6a3b316ace864fda0687415fd0a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
Add -DBUILD_<repo>=OFF suggestion for the cases when configuring Qt
using CMake and the repo dependecies are missing.
Change-Id: Iaa370b49e8fd634bebb7c8300d076165c51dec5e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This amends commit c66f8407a8 by running
the script on the remaining Linux configurations where gdb stacktraces
were already working, in order to avoid breakage in the future.
Change-Id: Ic069ed5369f761dcc3557b2ea7e09de703ebc142
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
packagekit service can't be disabled (it's missing an [install]
section), and sometimes it gets activated by other means before
PackageKit uninstalled.
So mask the unit, and try to stop the service repeatedly in case it
resists.
Fixes: QTQAINFRA-6078
Change-Id: I2c93b548007f24f7d7f632410d146eb472e2b4fb
Reviewed-by: Simo Fält <simo.falt@qt.io>
This reverts commit c15fb88b1a.
The problems have been fixed in both modules.
Change-Id: I4ac395f1f6604eade7f42f64bdd5938ace6fc1e4
Reviewed-by: Robert Griebl <robert.griebl@qt.io>
For WebAssembly selenium tests we need a newer
version of Python (>3.7), so install 3.11 instead
of default 3.6.
Selenium and Netifaces pip packages are also required.
Change-Id: I9e3b317b359e8775d90bd143ff9692fc2a90cf42
Reviewed-by: Dominik Holland <dominik.holland@qt.io>