Commit Graph

6578 Commits

Author SHA1 Message Date
Alexandru Croitor
c3679fb285 CMake: Add nightly platform to build Qt with CMake master from source
Upstream CMake sometimes introduces behavior changes or breakage that
affects building Qt or user projects.

It is beneficial to catch these issues earlier, before a major / minor
CMake release is made, and before we update our provisioning scripts
to use a newer CMake.

Add a new nightly platform file, which includes all existing cmake
platform configurations, and adds the "BuildCMakeFromSources" feature
to all of them.

This feature:
- tells qtbase CI instructions to download the latest master branch
sources from the CMake repository mirror
- builds CMake from these sources
- uses this CMake to configure Qt

The nightly build will run once a week to catch potential issues
introduced in newer CMake changes.

Fixes: QTBUG-143633
Change-Id: If7223b462a437f97b9fecabb5726a5fcaab4be53
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2026-02-27 20:18:12 +01:00
Simo Fält
308b434080 Add Linux config for qtbridges-swift
Change-Id: I2cbc04a6b99ec3941c90a8e9623ee4889d00b555
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-25 17:15:24 +02:00
Axel Spoerl
3f6cd61644 Nightly baseline run: Move -DFEATURE_xxx args to CMAKE_ARGS
Wrong to add them as configure args.
Put them to the right place.

This amends ab346b98dc.

Change-Id: I5357c3d5ea0ee63f1b292974ceb9fd5792321b4b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
2026-02-24 17:34:10 +00:00
Joerg Bornemann
1d4da9a59b Fix configure -skip not forwarded to CMake
This amends commit 378c8719a9.

Since 378c8719a9, -skip is registered as a known option in
init-repository's option parser. This caused -skip values to be consumed
during option parsing and no longer appear in the unknown_args list that
gets forwarded to configure. As a result, -skip was silently ignored
when -init-submodules was not passed.

Fix by collecting skip modules into a dedicated list from two sources:
the -skip option values consumed by init-repository's parser, and
exclusion entries from -submodules/--module-subset. The merged list is
then forwarded to configure.

This also simplifies the previous merge logic that searched for -skip in
filtered_args, which became dead code after 378c8719a9.

Pick-to: 6.8 6.10 6.11
Task-number: QTBUG-140359
Change-Id: I816020959f86cf4b8e36ce1a62172acd442ed1d3
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-23 19:08:45 +01:00
Axel Spoerl
ab346b98dc Nightly baseline run: Add features and testarg
Disable autotests.
Add -auto feature for baseline tests to register discrepancies with
Lancelot.

Task-number: QTQAINFRA-7602
Change-Id: I1ca8130ddf5e5c88635cd1f18ecad194afe6e24c
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-23 15:52:25 +00:00
Nils Petter Skålerud
55c0e2f24a VxWorks, QEMU: Remove reference to undefined $appPrefix
install-vxworks-qemu.sh uses a variable that doesn't exist, causing
issues when we turn on more strict error-handling.

Pick-to: 6.11 6.10 6.8
Change-Id: I9d644a497e4689c7ab35c80f97548b1a1a6bdf12
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-02-23 10:01:37 +00:00
Simo Fält
8a052e235f Provisioning: Install Swiftly and its dependencies
Swiftly is need to install swift tools to linux.

Change-Id: Idfdaacf680f2dc30aa944811ce3daf2e52efe21d
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-21 19:54:01 +02:00
Assam Boudjelthia
ffe1978449 Android: bump to Gradle 9.3.1 and AGP 9.0.0
Following Qt 6.11 release 3rd party components update.

Task-number: QTBUG-143129
Pick-to: 6.11
Change-Id: Idfd310197d5345871637a3e4e1858dbd731eeae8
Reviewed-by: Simo Fält <simo.falt@qt.io>
Reviewed-by: Elias Toivola <elias.toivola@qt.io>
2026-02-21 17:53:55 +00:00
Nils Petter Skålerud
52b3c97ab7 OpenSSL, Android: Enforce correct symlinks in openssl_for_android.sh
There have been cases where necessary symlinks have been lost when
extracting prebuilt OpenSSL builds for Android. This patch ensures the
script will always create them.

As a drive-by, the patch cleans up some behavior related to
'opensslHome' being used to write to a variable outside function scope.

Pick-to: 6.11 6.10 6.8
Change-Id: Id6fb4143aaadcbf11e1b9bc6301ef53d2043ad10
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2026-02-20 14:33:30 +01:00
Tero Heikkinen
0ab91c0886 Unix: Bash scripts needs to be executable
Pick-to: 6.11 6.10 6.8 6.5
Task-number: QTQAINFRA-7709
Change-Id: Ia8802cc2c5e7fb8ed63e261f70fb343cd55a1dfa
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2026-02-20 15:33:22 +02:00
Tero Heikkinen
9deb066d4c Linux: Keep the IANA time zone database (tzdata/timezone) up to date
Need upgrade of the IANA db to 2022g or later with Ubuntu 22.04. Ensure
zoneinfo (tzdata/timezone) always stays up to date with all Linux OS.

Both packages (tzdata/timezone) provide the same thing:
  - the IANA TZ database under /usr/share/zoneinfo/

tzdata:
  - Debian
  - Ubuntu
  - RHEL

timezone:
  - openSUSE
  - SLES

Pick-to: 6.11 6.10 6.8 6.5
Fixes: COIN-1282
Change-Id: I6fe7d548470d8f0f63e5451a6b5203e658575f48
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2026-02-20 15:33:15 +02:00
Daniel Smith
fb581937ff Add platform configuration for tqtc-qtmcp
Change-Id: Ic2e136bb3043e752407ae4d44974cba9d43d757a
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-02-18 13:56:09 +00:00
Joerg Bornemann
378c8719a9 Fix configure -init-submodules ignoring -skip option
When running configure -init-submodules -skip <module>, the -skip
option was ignored because init-repository ran before -skip values
were processed. The skipped modules were still initialized.

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

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

Fixes: QTBUG-140359
Pick-to: 6.8 6.10 6.11
Change-Id: I37ed916dd1c22b6d10d23821044fee807919d4a9
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-18 08:10:35 +00:00
Jukka Jokiniva
d5d3f89ce1 Remove macOS 13 from CI
Change-Id: Ibfc4aabf124bcaf681787c724e822411c3adee37
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2026-02-16 10:53:12 +00:00
Tero Heikkinen
7a5b6bdeaa Add missing comment line to describe patchelf usage
Patchelf is added to fix dependencies in shared ffmpeg libs
(amends 83adc86c53)

Pick-to: 6.11 6.10 6.8
Task-number: QTBUG-120990
Change-Id: Ia9359c1a77e82203d53e3d2940885a0c254024c9
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-02-15 13:04:53 +02:00
Nils Petter Skålerud
c3fe5fe6fe iOS, FFmpeg: Add documentation/commenting
This patch adds more commenting + documentation to the script
'install-ffmpeg-ios.sh'.

Pick-to: 6.11 6.10 6.8
Change-Id: I7e0023651b868d46b3fb4604bcc6d3eb1d24b7b2
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
2026-02-14 22:00:41 +00:00
Nils Petter Skålerud
919a4ae240 iOS, FFmpeg: Include dSYM files
App Store requires that our FFmpeg distribution includes dSYM files for
debugging symbols.

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

Pick-to: 6.11 6.10 6.8
Fixes: QTBUG-143963
Change-Id: I2740f46bb0fd7e7ee9da8dede01944b89bc3db7a
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2026-02-14 20:07:15 +01:00
Nils Petter Skålerud
4df773656c iOS, FFmpeg: Clean up .framework creation logic
This patch rewrites the create_framework() function to
be more readable and adds commenting.

No functional changes.

Pick-to: 6.11 6.10 6.8
Task-number: QTBUG-143963
Change-Id: Id52fb43d733fe0c815a13b15135539452999cb40
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2026-02-13 09:01:29 +01:00
Tero Heikkinen
3480c00adb Fix incorrect external link for ninja package for x64 and arm
x64: ninja-linux.zip
arm: ninja-linux-aarch64.zip

Pick-to: 6.11 6.10 6.8 6.5
Fixes: QTQAINFRA-7701
Change-Id: I36465f6413ae80754f4fa39abb04ce492ed445b7
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-02-13 07:43:58 +02:00
Nils Petter Skålerud
ebe3124831 Move install-ffmpeg-ios.sh into macos folder
Currently this script is stored under unix, but it's only ever going
to be used on macos. This patch moves the script.

No functional changes.

Pick-to: 6.11 6.10 6.8
Change-Id: Iba3d101d360e90ffaa3478689bb002b4e5f65bc1
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2026-02-13 06:43:55 +01:00
Nils Petter Skålerud
ade4488de9 FFmpeg, Android: Simplify OS parameter logic
The script accepts an OS parameter, which is then forwarded into the
`build_ffmpeg_android` function. This function expects a different set
of values, that are different in name only, not in meaning.

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

No functional changes.

Pick-to: 6.11 6.10 6.8
Change-Id: I5614f1cf489594cfab2966a680e87a95c7be267b
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2026-02-13 06:43:53 +01:00
Ville-Pekka Karhu
7f2d96a43e Provisioning: Take repo-clones into use in RHEL 9
Pick-to: 6.11 6.10 6.8 6.5
Task-number: QTQAINFRA-5587
Change-Id: I2459a32b96524a4c29769835d5c37b2cb021720e
Reviewed-by: Aku Pietikäinen <aku.pietikainen@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2026-02-12 04:05:30 +02:00
Tero Heikkinen
7a8ffd980f Fix macOS gRPC install with CMake minimum version 3.5
Task-number: QTQAINFRA-7683
Change-Id: I1cf8984420550f078a8125e16ef5f7d995890bbb
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-12 04:05:25 +02:00
Tero Heikkinen
fd5f44a57b Fix macOS 13 install-vcpkg-ports.sh failing in provisioning
Fix vcpkg install to use correct architecture (arm64/x64)
as a host when using --host-triplet argument.

Pick-to: 6.11
Task-number: QTQAINFRA-7691
Change-Id: I899f6521b47e407e1c9bde1c0f2b83e560894794
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2026-02-12 04:05:22 +02:00
Elias Toivola
aa2272379a Android: Make the OpenSSL install script less rigid
OpenSSL packages have differing features indicated in their file name,
separate those in their own $suffix variable for the install function to
reduce hard-coding.

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

Pick-to: 6.11 6.10 6.8 6.5
Change-Id: I71019a0d2731aace00ff2eb82d63537673f6e41a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Nils Petter Skålerud <nils.petter.skalerud@qt.io>
2026-02-12 04:05:18 +02:00
Simo Fält
f1872a4b95 CI: Enable Windows on arm config for qtbridge-python
Change-Id: Idc325127865ecb7d7bd4d5636b15cc3214bcd4c5
Reviewed-by: Toni Saario <toni.saario@qt.io>
2026-02-12 04:05:16 +02:00
Nils Petter Skålerud
033329cb00 Stop compiling FFmpeg Android arm64 on old macOS x86 hosts
Android FFmpeg provisioning requires 'readelf', which is provided by
binutils package. This package is shown to be flaky on older macOS x86
hosts. It is not critical that we compile that we compile Android
FFmpeg on these hosts, so this patch removes them.

Pick-to: 6.11 6.10 6.8
Change-Id: I6722f2c543b022a998573cc76ffc671378a4fcb5
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2026-02-12 03:05:13 +01:00
Qt Submodule Update Bot
ac242f221d Update submodules on 'dev in qt/qt5'
Change-Id: Ibfe0764cc05d0bdb31948f104aee192d7aafad3c
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-02-06 04:05:58 +00:00
Oleksii Zbykovskyi
cf406805ab Download a newer version of WindowsVirtualCamera from Qt Multimedia repo
Since the version we use right now has some issues, download a newer
version from the Qt Multimedia repository to get the latest fixes and
improvements.

Change-Id: I6f42c01680ebd9fb3cb67ea802afa23536751ae8
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2026-02-05 18:38:30 +01:00
Ville-Pekka Karhu
3e4f286588 Provisioning: Add missing vcpkg files to Intel macOS 26
Change-Id: I76aa90e005460368741b305fcaf398ae917299e6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2026-02-04 12:30:13 +00:00
Simo Fält
fb596da6aa CI: Enable arm64 configs for qtbridge-java
Change-Id: Ibafc5105ab8a1494b2bb9f705b56e8f3d74a7e30
Reviewed-by: Toni Saario <toni.saario@qt.io>
2026-02-04 12:34:47 +02:00
Tero Heikkinen
31919c204a Fix openSUSE 15.6 dependency issue with cargo 1.93 installation
Task-number: QTQAINFRA-7669
Change-Id: Id1a8d72c3db3b622b46fa9bbd5fd770001ff3c65
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
2026-02-03 10:19:10 +02:00
Allan Sandfeld Jensen
2fb83dd605 Install rust tools on Linux rpm platforms
Pick-to: 6.11
Change-Id: I3df96d6b6575f7735c26d153241d844d085fad87
Reviewed-by: Moss Heim <moss.heim@qt.io>
2026-01-31 11:49:28 +00:00
Simo Fält
160bdc0e7a CI Add config for messagingframework
Change-Id: I959784fe8de19ace03abb589c6aa1317c85283f9
Reviewed-by: Toni Saario <toni.saario@qt.io>
2026-01-31 07:45:46 +00:00
Rami Potinkara
d0c5982795 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
Pick-to: 6.11
Change-Id: Ie4d2706b15000b5cbd71991abb4c840027ef2c82
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2026-01-30 22:45:46 +02:00
Qt Submodule Update Bot
80d65734af Update submodules on 'dev in qt/qt5'
Change-Id: I88fb839256dd8a50b4481a939f26d784383848b4
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-30 08:33:30 +00:00
Axel Spoerl
3587ad0ef9 Nightly baseline test: Add -auto to TESTARGS
Baseline tests need the -auto argument to actually check baselines.
Add it.

Task-number: QTQAINFRA-7602
Change-Id: Id65f0a46764ce74284a3b445bbd18955bd654ea2
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2026-01-29 08:25:26 +01:00
Tor Arne Vestbø
7c434c9885 Make macOS 26 developer build tests significant
Change-Id: Ic32427249a160b24e4b860dc383a2bb823815773
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2026-01-28 22:33:28 +01:00
Qt Submodule Update Bot
4983ed8c5d Update submodules on 'dev in qt/qt5'
Change-Id: I6886869d13090fd619c0f3ee092fcb41a000f68e
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-28 18:10:16 +00:00
Tim Blechmann
8e438b8a28 Nightly: don't build examples on msvc to avoid qmake error
It seems that qmake does not pass /FS to the compiler causing compile
errors in parallel builds. In theory we could still compile examples
with cmake, but there seems to fine-grained configuration for that.

Change-Id: Ia3954cee61e842f029ac0033ee895c39b8b91b04
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2026-01-28 09:53:47 +08:00
Assam Boudjelthia
33695df07e 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.5 6.8 6.10 6.11
Change-Id: Ib6c255edae5e5773551fab1008ebdb9a5e1ff8f2
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-01-28 01:53:43 +00:00
Tero Heikkinen
6bf59c7c90 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

Pick-to: 6.11
Fixes: QTQAINFRA-7650
Change-Id: Iea9b838e97830c9c6f2b1fa3be8db02447b49de4
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-01-27 15:48:27 +02:00
Allan Sandfeld Jensen
94c844fd4d Install rust toolchain on Debian based platforms
Needed for future QtWebEngine updates

Pick-to: 6.11 6.10
Change-Id: Ic2f42f9030a9bdf6f09c0004e035f4f36792cb56
Reviewed-by: Moss Heim <moss.heim@qt.io>
2026-01-26 16:12:18 +01:00
Axel Spoerl
6967caf3a2 Correct Lancelot IP for nightly Ubuntu baseline tests
10.150.153.60 is the right IP. 10.9.70.11 was a legacy address.
Correct it.

Found-by: Juhani.Kurola@qt.io
Task-number: QTQAINFRA-7602
Change-Id: I1b176d0a614960e0f2acfcdcc6ca603d2a1b0ade
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@qt.io>
2026-01-26 11:13:35 +01:00
Elias Toivola
f189bb9151 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.11 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>
2026-01-23 10:51:22 +02:00
Tero Heikkinen
c6ae09efea 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.11 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>
2026-01-23 10:51:22 +02:00
Qt Submodule Update Bot
af0729eca4 Update submodules on 'dev in qt/qt5'
Change-Id: If9589724e236754d5bac3f3fb7e4f88886397600
Reviewed-by: Qt Submodule Update Bot <qt_submodule_update_bot@qt-project.org>
2026-01-23 07:12:34 +00:00
Ivan Solovev
3407ced707 Provision golang and maven on macOS 26 Intel
They are required to build the Qt OpenAPI module.

Amends 3a7f17e0cd which introduced this
platform.

Task-number: QTBUG-138968
Change-Id: I2fd7b08d7acdd5dbaa89e712968e0b91dcc83839
Reviewed-by: Tatiana Borisova <tatiana.borisova@qt.io>
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-01-22 12:10:15 +00:00
Tim Blechmann
1a9daf1574 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.11 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>
2026-01-22 20:10:13 +08:00
Tatiana Borisova
e5871fa6e6 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.

Pick-to: 6.11
Change-Id: Iaaaae823b7ccc1496f83e5af845bfcfa7999767f
Reviewed-by: Simo Fält <simo.falt@qt.io>
2026-01-22 13:10:10 +01:00