Commit Graph

1410 Commits

Author SHA1 Message Date
Assam Boudjelthia
1c27f95d01 COIN/Android: improvements to Android Emulator launcher script
* Don't fail silently if the AVD name is not provided.

* Add the following flags to the emulator:
    * -no-window: since we don't really interact with emulator is CI
    * -no-boot-anim: no need to run the boot animation
    * -no-snapshot-load: removed because it serves nothing
    * -detect-image-hang -restart-when-stalled: helps recover the
      emulator from freezes during execution
    * Disable warning dialog about nested virtualization.

* Terminate the emulator instance if the script expects it to not be
  running, i.e. save time by attempting to terminate and move on with the
  script execution instead of simply failing and doing nothing.

* Add a timeout to the blocking call 'adb wait-for-device'
* Save logcat output to a file for quick access to the logs,
  and put both emulator and logcat files under testresults folder,
  which would them available in cases of failure without needing to
  create a VM for debugging to get the logs.

Task-number: QTQAINFRA-5596
Fixes: QTQAINFRA-4628
Change-Id: I751bbec14980a452e02066f4e79d76fe6f3c018f
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-08-01 10:43:42 +03:00
Assam Boudjelthia
f7f7c9f915 COIN/Android: Use -avd param to avoid appending '@' to AVD name
Using -avd emulator param saves us from using the '@' character
at the start of the name (which I didn't do few times, and was
faced with an unresponsive emulator and not immediately seeing
the problem in a debug vm).

Task-number: QTQAINFRA-5596
Change-Id: I3863dc312fd33dae78eeb3dd02f5fb16ca79d72b
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-08-01 10:43:38 +03:00
Ville-Pekka Karhu
6f24602eb4 Provisioning: Add macOS 14 ARM support
Task-number: QTQAINFRA-5643
Change-Id: Ie98a77063c59033ccffa397aca4dbc349e624450
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-07-28 11:14:26 +03:00
Assam Boudjelthia
8b6151e23d Coin: install specific version of openjdk 11
Android's sdkmanager seems to fail with openjdk 11 version 11.0.20.0.8.
The previous version 11.0.19.0.7 seems to work. the error is failure to
find /usr/lib/jvm/java-11-openjdk-11.0.20.0.8-2.el8.x86_64/lib/tzdb.dat.

This is more of a workaround for now to unblock provisioning.

Change-Id: Ib50b497c6e8b6bffd0739bf665ab1deb5bd51666
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-07-25 15:53:17 +03:00
Allan Sandfeld Jensen
d1552c26a8 Add libva-devel and gbm-devel packages for qtwebengine
Will be needed in Qt 6.6 for VA-API

Pick-to: 6.6
Change-Id: I4389ee03eb85a05f9bce37a0eb4629d30e1aefd1
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-07-25 14:53:14 +02:00
Assam Boudjelthia
8d199fd701 COIN/ANDROID: Move android_emulator_launcher.sh to qt5.git
The android emulator launcher script is mainly used in CI and thus
makes sense to be moved there. This also makes it easier to make changes
without having to wait for submodule updates.

The env var ANDROID_EMULATOR_RUNNER points to the path of the runner
script, and can be used by qtbase.

qt5.git part of the change.

Task-number: QTQAINFRA-5596
Change-Id: If253e0a5f14d67526995561b1859312e61efdfff
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2023-07-25 15:52:58 +03:00
Michal Klocek
9de403d32f Install 'dataclasses' python module for RHEL-8.8 as well
Install missing 'dataclasses' module for python.
It is required for licenses generation for webengine.

Make pip call after pip 'upgrade'.

Change-Id: Iedced50fe644c1711ee42d4940f70a24a070c4df
Reviewed-by: Michael Brüning <michael.bruning@qt.io>
2023-07-25 15:52:54 +03:00
Dominik Holland
b87b44168c Provisioning: Remove the special wheel cache for python3 packages
It should be replaced with a global pip cache in the long run.
Removing it should make the maintenance of the required packages easier
as it can be done within the modules instead of in the global
provisioing scripts.

Pick-to: 6.6
Change-Id: Ief9832a8a640ce98325cda015d0a9e89d6cb16af
Reviewed-by: Simo Fält <simo.falt@qt.io>
2023-07-25 15:52:51 +03:00
Konrad Kujawa
8db9f452d0 Add missing CMake arg to macOS developer build on ARM
Add missing OPENSSL_ROOT_DIR to macos-12-arm64-developer-build
CMAKE_ARGS.
OPENSSL_ROOT_DIR is required to run QtGRPC auto tests.
Add missing provisioning script to macOS 13 x86_64.

Fixes: QTBUG-115077
Change-Id: Ia51d6820037e93d5eddb06a2fdedfcfa87ee094e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-07-19 08:58:18 +02:00
Allan Sandfeld Jensen
e8f9c3d1cf Update node.js on RHEL 8.8 as well
Last update only touched RHEL 8.6 and 9.0

Pick-to: 6.6
Change-Id: I0c084edc08f3c833daa25c393674bd51eac4ea6e
Reviewed-by: Michal Klocek <michal.klocek@qt.io>
2023-07-19 07:08:38 +02:00
Fredrik Ålund
af7c74313d Add missing provisioning scripts for Mimer SQL for RHEL 8.6 and RHEL 8.8
The provisioning scripts for Mimer SQL is missing in RHEL 8.6 and
RHEL 8.8 and therefore the Mimer SQL QtSql plugin is not built

Fixes: QTBUG-111219
Pick-to: 6.6
Change-Id: I9c12b7d94ab7b047ed08b46043ad16586968ecfd
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-07-03 22:51:18 +02:00
Tero Heikkinen
5cca2b7ba4 Add Red Hat 8.8 to CI
RHEL 8.8 will be added as parallel with RHEL 8.6 until packaging
site gives green light to remove the older Red Hat version.

Removing also some obsolete package installations.

Task-number: QTQAINFRA-5600
Change-Id: Ie77500a805a89db9019b5347539e662bc016af59
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2023-06-26 15:50:30 +03:00
Jøger Hansegård
c4d26fe1d2 Enable rebuilding FFMPEG for MSVC without deleting lib files first
To simplify testing modifications to the FFMPEG library, it is nice to
be able to rebuild FFMPEG without having to manually delete lib files
first. This change makes this possible because it uses powershell
Move-Item instead of Rename-Item to rename .o files to .lib files.
Move-Item's -Force argument allows renaming files to destination that
already exists.

Pick-to: 6.5 6.6
Change-Id: I0a56776d38c37d38d1cd74b5186881fc955d51f0
Reviewed-by: Alexey Edelev <alexey.edelev@qt.io>
2023-06-24 15:29:41 +00:00
Piotr Wierciński
13c53ef79f wasm: update emscripten to 3.1.37
Qt 6.6 will require emscripten 3.1.37

Pick-to: 6.6
Change-Id: I24d172b9ba055c690274a99af109b50cd2f79b88
Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Mikołaj Boc <Mikolaj.Boc@qt.io>
2023-06-24 17:29:31 +02:00
Heikki Halmet
ac33d86e9a Add macOS 13 x86_64 to CI as build and test target
macOS 12 x86_64 will be replace with macOS 13. Tests will be still run
on macOS 12

Let's keep same Xcode version (14.2) than older macOS (12) has

Task-number: QTBUG-104210
Change-Id: If3e06834156196917001f83ca391a66a6c78e84a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-06-20 09:32:57 +00:00
Assam Boudjelthia
4e59702b14 Coin:Android: unify and update OpenSSL provisioning scripts
Use the same prebuilt pacakges for all platforms since the prebuilt libs
are going to be used for the target and they are not tied to the host.

Pick-to: 6.6 6.5
Task-number: QTBUG-110025
Change-Id: I2c79722989902b16883b31cbc6e140855239fcc8
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-06-20 12:32:48 +03:00
Allan Sandfeld Jensen
d764e8fe39 Update node.js on Linux/macOS
Qt WebEngine 6.6 need 14.19+

Pick-to: 6.6
Change-Id: Idf2d54fcdc55762cd9d8cfe5248858bd00afe89c
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-06-20 11:32:44 +02:00
Allan Sandfeld Jensen
de0104b3ed Update node.js on Windows to 18.16.0
Needs to be at least 14.19 for Qt WebEngine 6.6

Pick-to: 6.6 6.5
Change-Id: I1d4b8b241d18eeeffa1b2a9eed0e85cbf54e49ba
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-06-20 11:32:40 +02:00
Allan Sandfeld Jensen
14f7603e91 Fix SetEnvVar for Debian
Pick-to: 6.6 6.5
Change-Id: I4152575cc071ea7f51e102a3807b05ed9f89d2fd
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
2023-06-14 09:19:43 +02:00
Heikki Halmet
2ae9a6c099 Provisioning: Ignore unmount result with Squish script
Unmounting fails sometimes which cause provisoning failure.
Let's ignore the result

Task-number: QTQAINFRA-3709
Pick-to: 6.6 6.5 6.2 5.15
Change-Id: Ifc321c8ef9942f9f51ec622370aadbbbb862d262
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2023-06-14 07:19:40 +00:00
Kai Köhne
c230f55f20 Provisioning: Remove QDOC_USE_STATIC_LIBCLANG
Remove handling of QDOC_USE_STATIC_LIBCLANG environment
variable. The variable is not used by the Qt 6 build
system.

Change-Id: I8af68382caea2864543a3d6e6ed2922823a2e71d
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
2023-06-12 12:10:49 +00:00
Casimir Saastamoinen
ba72dbb10e Install openssh win32 and win64
Task-number: COIN-713
Change-Id: I78c88edf4d1560f4a85024832fb158480ab268d0
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2023-06-12 15:10:45 +03:00
Lucie Gérard
eecfb19548 Use SPDX license identifiers
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
License files are organized under LICENSES directory.

Pick-to: 6.5 6.6
Task-number: QTBUG-67283
Task-number: QTBUG-108364
Change-Id: If26e4d35c780db4a7982bb84872b251dad24716e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2023-06-12 12:10:41 +00:00
Petri Virkkunen
3115ca5d17 Update Android Automotive emulator image in CI to use AAOS 12
Android 12 is the desired platform for most users, need to run our tests
on it instead of A11.

Task-number: QAA-1739
Change-Id: Iadfdfcbc97b062baa1c4ef6eb46e9e1af6e3478a
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-06-12 15:10:37 +03:00
Tony Sarajärvi
58ddf7133c Correct the domain of ci-files01-hki
It's hasn't been .intra.qt.io for quite some time, it
has worked through an alias we have on the DNS server.

Change-Id: I0bc17668dacfea64c276bb553e75e4be16e97659
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2023-06-12 12:10:26 +00:00
Alexey Edelev
e1b7e865ec Disable openssl for ffmpeg library
Openssl library causes backward compatibility issues. We need to disable
it to make ffmpegmediaplugin work on all supported linux platforms.

Fixes: QTBUG-113324
Pick-to: 6.5 6.5.1
Change-Id: Ib266e2cf67e9336fb206735b8b2418fccd8f7b00
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-05-20 03:20:04 +02:00
Heikki Halmet
3d149e8ff1 Provisining: Disable auto upgrades for Ubuntu 22.04
Auto upgrade can lock apt which cause provisoning failure

Task-number: QTQAINFRA-3054
Pick-to: 6.5 6.2
Change-Id: I7d8b8b9baf8b48f00d62dba2f810bf12aaa3c8a0
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2023-05-19 11:40:43 +00:00
Heikki Halmet
090ce999db Provisioning: Wait apt lock with Ubuntu 22.04
Task-number: QTQAINFRA-3054
Pick-to: 6.5 6.2
Change-Id: Ief47a92c063ed31f930394ade54418e8f50c8358
Reviewed-by: Jukka Jokiniva <jukka.jokiniva@qt.io>
2023-05-19 11:40:41 +00:00
Matti Paaso
376d7cea83 Add Axivion toolchain and platform config nightly builds
Task-number: QTQAINFRA-5244
Change-Id: I08e9bf2f2066addb112888f791f7c9f0bd2659d6
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-05-19 07:42:58 +03:00
Rami Potinkara
ef12163e25 Android: Android OS 13 API 33 to CI as maximum version
Android 13 replaces Android 12 as max version in CI.
Android 6 kept as minimum version of Android in CI.

Task-number: QTQAINFRA-5392
Task-number: QTQAINFRA-5431
Change-Id: If85c6f63d52055e2ba95f92c154b20a6b809c7dc
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
2023-05-17 08:24:02 +03:00
Samuel Mira
2751db4d29 Fix FFmpeg provisioning for Android armv7a
Altered install-ffmpeg.ps1 script to build android armv7a archicture

Task-number: QTQAINFRA-5476
Pick-to: 6.5
Change-Id: I5179174c8676a3016df2922c00030e9d45a9009c
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
2023-05-16 18:35:23 +02:00
Alexey Edelev
84df93d37e Uninify MSVC version that is used in provisioning
We pick the oldest build tools we can find because there is lower
chance that the produced binaries will be incomaptible with the newer
version of MSVC.

With the current provisioning design we also cannot change the MSVC
version for the each package on demand. Once Enter-VsDevShell is called
it litters the powershell environment and blocks the use of
Enter-VsDevShell second time. It could be better to run each .ps1 file
in own instance of powershell to avoid mixing build environment.

Amends f58afd5476

Pick-to: 6.5
Change-Id: Ie752cfc8b69ed985e61ec16209007dd586611866
Reviewed-by: Samuel Mira <samuel.mira@qt.io>
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
2023-05-16 18:35:23 +02:00
Heikki Halmet
f8cffcafbd Replace RHEL 8.4 with RHEL 8.6
This also includes support for OpenSSL 3 for RHEL 8.6.

Task-number: QTQAINFRA-5368
Change-Id: Ifeb87f840eaa0df227ae2b8c20a58c126f654d2e
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2023-05-11 19:57:22 +00:00
Jukka Jokiniva
0263bed848 Fix cpdb-libs provisioning script
New commits have been added to the cpdb-libs git repository. The commit
cannot be checked out anymore. Fixed by taking a full clone.

Change-Id: I69d5e77233a21c1e1c36b386e0dc25a26fadfce1
Reviewed-by: Matti Paaso <matti.paaso@qt.io>
2023-05-11 17:08:19 +00:00
Tero Heikkinen
08ac268561 Provisioning: Upgrade Xcode version to 14.3 for macOS 13
Change also upgrades command line tools

Task-number: QTQAINFRA-5485
Pick-to: 6.5
Change-Id: I057e4c850c3c7ba938002a2ec444637ae9f51cf4
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
Reviewed-by: Tero Heikkinen <tero.heikkinen@qt.io>
2023-05-05 11:13:16 +03:00
Samuel Mira
99afe7199e Fix FFmpeg provisioning for Android in arm64, x86 and x86_64
Added install-ffmpeg-android script for the android cross-compile
Removed android stuff from install-ffmpeg
Changed the yaml variables to include the target arch
Added the arm64 target arch

Task-number: QTQAINFRA-5476
Pick-to: 6.5
Change-Id: Id9609ed0427f2fc42f7f27e7787a81ad145f59be
Reviewed-by: Ville Voutilainen <ville.voutilainen@qt.io>
Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-04-26 22:44:30 +00:00
Dominik Holland
4bd1b6fad3 Provisioning: Make the dependencywalker available to python nuitka
nuitka needs the dependency walker to create standalone binaries. For
that nuitka downloads the dependency walker into its cache location.
If we copy our installation to this cache folder first, we don't need
to download it again.

Change-Id: Ib55e5ddc7cb6b482e9db0723fd015b36da01e555
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-04-18 12:20:12 +00:00
Simo Fält
e14434a7ea Provisioning: Install nodejs to enable qtwebengine on arm linux
Change-Id: Id39dd3474e0d5f8d214ecf74255073650c82ab47
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-04-18 03:48:05 +00:00
Simo Fält
89edadf3be CI: Enable packaging config on arm linux
Task-number: COIN-1029
Change-Id: I369ce20e24b9adf6b64274dfe07bdfc25888e46f
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-04-18 06:48:03 +03:00
Artem Dyomin
aed030bb90 Update ffmpeg version to n6.0
Checked the basic functionality on macOS, linux, and windows.
To be tested in detail.

Pick-to: 6.5
Change-Id: I109f52ab33d58088332a3885c83d622815edd22e
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-04-15 18:10:47 +00:00
Gaurav Guleria
889f29abc5 Add provisiong script for CPDB frontend
The Common Print Dialog Backends (CPDB) concept has
GUI-toolkit-independent backends for each print technology (CUPS, Print
to File, cloud printing services, ...) and each print dialog (GTK, Qt,
Chromium, Firefox, ...) is supposed to use this backend, so that changes
in print technologies can be centrally and quickly covered by changing
the backends and everything new gets available in all print dialogs.

This commit provides provisioning script for CPDB frontend (cpdb-libs)
for Ubuntu 22.04 x86-64.

Change-Id: Ic97c41979040adb6e9ffab540c09edadb6b5de3e
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
2023-04-13 07:08:07 +02:00
Heikki Halmet
2345f01c58 Provisioning: Use cached emsdk version 3.1.25 for unix
Task-number: QTQAINFRA-5458
Pick-to: 6.5
Change-Id: Ie9a38a38175cfd03ff15a886a5cd1621ae5ced36
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2023-04-13 05:08:01 +00:00
Heikki Halmet
13215b3aad Provisioning: Use cached emsdk version 3.1.25 for Windows
Task-number: QTQAINFRA-5458
Pick-to: 6.5
Change-Id: I6567f36e545b5100325dfa8e1895a24a41a4783c
Reviewed-by: Ville-Pekka Karhu <ville-pekka.karhu@qt.io>
2023-04-13 05:07:58 +00:00
Kalle Viironen
982f0a4657 Provisioning: Install Valgrind on Ubuntu 22.04 and openSUSE 15.4
Valgrind is needed for testlib benchlibcallgrind selftest. Valgrind is
installed on Red Hat by default but needs to be separately installed on
Ubuntu and openSUSE.

Change-Id: I4cdfca512fe3efe9338a75cadc20454ff989fcae
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Reviewed-by: Heikki Halmet <heikki.halmet@qt.io>
2023-04-05 10:34:39 +02:00
Topi Reinio
195a438395 coin: Update provisioned qdoc, qtattributionsscanner binaries
Update qtattributionsscanner to the latest version from dev branch,
b3630c56. This includes support for SecurityCritical and Comments
fields. It also fails the build on incorrect input files, ensuring
no incorrect content can integrate.

Update qdoc to the same version from qttools, bringing multiple
improvements.

Pick-to: 6.5
Fixes: QTQAINFRA-5450
Change-Id: I7caa59ed982d9c41efcbe3d2381d47c7d037e9c6
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Kai Köhne <kai.koehne@qt.io>
2023-03-23 12:32:27 +00:00
Artem Dyomin
9b88e24d71 Enable network support for FFmpeg
This patch configures FFmpeg with network support. This enables QtMM
to handle network source such as HTTP, HTTPS, or RTSP.
Details:
- on macOS and windows ffmpeg uses native security backend so we don't
  include openssl to the build. Additional patch for linking
  with the security backend is in QtMM commit under the same task.
- on linux we add openssl; for all CI linux platforms libssl-dev is
  installed.

Task-number: QTBUG-110708
Pick-to: 6.5
Change-Id: I80a7dfda702c4d554df3a7380aac642890a28b94
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-03-12 15:59:17 +00:00
Pavel Dubsky
f58afd5476 Use vswhere to find the location of Visual Studio
vswhere tool is included since Visual Studio 2017 and is always located
at the same path thus making it a more convenient way to find Visual
Studio install directory.

Pick-to: 6.5
Change-Id: I680af8f88779841108b436223b4667f8a7c91aba
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
Reviewed-by: Lars Knoll <lars@knoll.priv.no>
2023-03-12 15:59:15 +00:00
Volker Hilsheimer
8b12598bf8 Provision flite on OpenSUSE 15.4
Unclear why that didn't get added when this set of provisioing scripts
was set up.

Pick-to: 6.5
Change-Id: I70cc347f2a6109fdde773c647cbe9a5b4819517e
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
2023-03-09 14:30:35 +01:00
Alexey Edelev
e68f9a28a8 Ensure that protobuf and gRPC libraries are build with -fPIC/PIE
Need to build protobuf and gRPC libraries with PIC/PIE to make them
compatible with Qt libraries and executables that are build with
PIC PIE.

Change-Id: Ie830f359e9e0fa15af65b96330edbf7f3f52df9b
Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io>
Reviewed-by: Konrad Kujawa <konrad.kujawa@qt.io>
2023-03-02 11:51:09 +01:00
Heikki Halmet
ec2dd3438c Enable MySQL for Windows
Pick-to: 6.2
Task-number: QTQAINFRA-4999
Change-Id: Id967473858673253f536cb91f9a95d9d6a3d7f27
Reviewed-by: Jani Heikkinen <jani.heikkinen@qt.io>
2023-02-26 14:59:07 +00:00