summaryrefslogtreecommitdiff
path: root/dev-qt/qtwebengine
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
commit0f558761aa2dee1017b4751e4017205e015a9560 (patch)
tree037df795519468a25d9362b4e95cdaeb84eb1cf9 /dev-qt/qtwebengine
parent752d6256e5204b958b0ef7905675a940b5e9172f (diff)
gentoo resync : 29.12.2022
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r--dev-qt/qtwebengine/Manifest10
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch12
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch32
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch10
-rw-r--r--dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch48
-rw-r--r--dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild (renamed from dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild)12
-rw-r--r--dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild281
7 files changed, 387 insertions, 18 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest
index 3941f5e365db..bb0a784f83dc 100644
--- a/dev-qt/qtwebengine/Manifest
+++ b/dev-qt/qtwebengine/Manifest
@@ -1,15 +1,19 @@
AUX qtwebengine-5.15.2-disable-fatal-warnings.patch 442 BLAKE2B d2f303f03f817c1e10d0c3c64deaefce773cb63852e8a37ba1c4611e26e850c5722e708425525a6fbfe170ce757a7fcb89e0324e3ea41f4ddeafd4bc15cc5c3b SHA512 79503e9278b50b5ac799852958850c54027c329f32242747514bbc7253192893c9ce5b9c6feeae7918f9e0f4047526adfb1c9ac9c0c5dcc625fe7b1507a93d23
AUX qtwebengine-5.15.2-enable-ppc64.patch 1249 BLAKE2B b8b9957bbf848ee8b19e4a7d43f1bfb8c2e63e691f2f0c4b10ef5367bc71b12fb6d161767f7669825e423c08af83e70ff744dd08facf92281c431de90a36847e SHA512 8e29e4e3c2085e5bba9c5a6ce7b366814767bb421132474cae413bba81217a70aec941b09a63d1f914c1e6b9e417b108df236d0b9d39e0df4b4d74111ddcda47
-AUX qtwebengine-5.15.2-extra_gn.patch 503 BLAKE2B 7949b35e725d920605ee7337de7aa29c22dee43ffaa383b4351e1e4170b06755e8b16eed28faf004486831fb020cd4fca1d5e54f61e99b7c8f084cad0d5d847c SHA512 2d916d918a1b12d91387da8b1161b15d33a55a9445de9725927fb88bb91666506a91df0df9224ec4a273b0c3f2fd3dbb2bb10857164a4204023f277707c099d0
AUX qtwebengine-5.15.2_p20210224-chromium-87-v8-icu68.patch 7361 BLAKE2B 0a5ab9077982df3afea7d156e0dbaf11384d7b9ab6ea70ef4dc0b82f1690e455144318734cb50b7bf2349a95b99325e67bbfcbdf5c88f55f3ecc65c7e593c468 SHA512 585dab11bf6cf811b657831292d5b6b90dd01d9e4c1fa4b6a446d0eb66f436c46a6fcd4851e9c6b6b0bda8a41cbea57fe74ca5ecca4e40cb35f85d7c2f5265e7
AUX qtwebengine-5.15.2_p20210224-disable-git.patch 501 BLAKE2B a295e5061830da6bfaf0c0ae6db832c86f797fa2426ec29e244133e862c0998a03373c11a2a31944bc09e0a20bf30c0a0a91eb06b1f8a9fdcdd9762f5ba7c542 SHA512 b795328058be945e7a323ea50f01cd5c11b130bc1204c8274fec920e04cce1643d8f9313e975f451dbb7dfecd6214f9ff9ea0aec87ad29237b6e9bb1b4114c5f
AUX qtwebengine-5.15.2_p20210521-clang-libc++.patch 358 BLAKE2B a03de632ac4e01cf56c52af3a3bd5ff5bcfd525c67bf2e5d960904a9f3b53e1fa18f0e0df380c0cf84f17914fb313a028e26efaefe6ab5057f0d9a9cf2f6f0fd SHA512 6dc3864064d6084e70d4696fda744701c293ee62e9c9088e3247988ffb8085f30c632e94ac19aef715cbd211b21dfcb98691d5809e21cffd9f04bbb8b04cf0da
AUX qtwebengine-5.15.2_p20211015-pdfium-system-lcms2.patch 2182 BLAKE2B cc19cc0c1242f7193f62a550ceb6358e43fcbdf6f95ddee373a3a775448908d6d0a661c6406e6c7578013a32ae280198263a94804e76c87e99db064dc972db7c SHA512 8890ab95300c148e21315a201ac56d04aca1ccc402e464b6ec1b90a69127a4fa02398893007f98eb40ea78d0abe56d459c34eba3c5cdd1521d4ab567225bced1
AUX qtwebengine-5.15.3_p20220329-clang14.patch 1883 BLAKE2B 9f4afae3ea240841f8b009df0cc71f9f23361f5205a3ced968b6ddaaf36b16fb880baffe4f4eb0def9d45fa267a7a4e43dcccacc47ea474e0914f4159877ee56 SHA512 8de250760738386799523b3ad29dfae37120a69d4d469274e96d80ade8b26afad39f54651ec80b8a17ac5b2083193283b167a0ed0438b1d926e45ff69f067a14
AUX qtwebengine-5.15.3_p20220406-ffmpeg5.patch 8393 BLAKE2B 07dee5bd305699378353796fc6c9f06daba31d9c152c565fa9391215334b064cc926915e7d47a7d1361f8a209ea812c7eea79bfcbcbbacb49cd79d77454b5962 SHA512 12b735976924c916654fda5582239354e9ef0f99ea1ba0e768b2225b29bee4bfd10ca6d3a861874bd310ed3afd885696e78d678e84be85458efdbc16cf1039d7
+AUX qtwebengine-5.15.3_p20220406-gcc12-includes.patch 1139 BLAKE2B ba451fcef0dd235f6044622913197581fe2d2f3de8b6342fd9dc0f6706c28a16d8d6b6ad5429f6f2ea3a211a3cd01b730a1b36fd1f34e61b4391d19e0db1ae91 SHA512 7104313aec55fc8eede53cc966833f8e2632d175e4206dd90da2fa42807795152a01010e2cce7bacd57f30cd3fdbbfef32624d5763210d08362beda77a5724cd
+AUX qtwebengine-5.15.3_p20220505-extra-gn.patch 458 BLAKE2B 0595f06d31fd83a04cc0ef9fb7567374c28c4d09c8774e6584d288aa18c2386efe699bd1d155fdee96f5960d3575baff6a6aa7a694d0c953401f80add9daf6c3 SHA512 81498f04c1ad4d73e888bba31fb1129e24990bcddb1d68111b004bba2e4fdab91698b3fe1d01bd94a0bf904e52f614cddc4ba6f70ffaf6a1d45e37a53e583629
+AUX qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch 2259 BLAKE2B 77426028cd350e3e70739cf5e5827b9a6302d2fada806ba46c5bdf9394b47d47aa2f52d8f1f38e53662bdfc3eb1e6c1616e77fbefb3e9b3c685d9271597b4153 SHA512 be2e52eba0168cfedad5e72a0f766fa2e0ef9beab9c28e44d2478fc0c4187cf669d03141b04c4a37ec5cfdd1d3987ce43e1cee61a59ae18fa2101a2a2eaf8d90
DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3282fda8932cc75a249d88b79319f0886d95777292776d94ac5f4fc114c3893b2801fbba6abb14f381172bb14b15b5ffef12413db3a16e4d1ca6 SHA512 3324e0076eb18e2ae2248428d2730cfb3413761514b2bb57e25b8db79248aaaa8098d9f7cebfa08f1a3b39b1d0a382aafed75c5ae8273918909335957921305e
DIST qtwebengine-5.15.2_p20211019-jumbo-build.patch.bz2 2930 BLAKE2B fca1d1406874d04eafb64bb4d8730512a6307ba44fb99d76f428ca1bd4a303758e0c3bd8f92a59f7bcf62e5b767c5a8ed239028bdb74ad7a8b62abf88d38c101 SHA512 61cbfbe4ff340b75ea8d356e031e932ac03fe65dd009999ff897ca4b0185d1d989490daf75ffeaaabb3e92c870c11c7ff8ad2cd6372f5363b3d774b8ecca6d89
DIST qtwebengine-5.15.3_p20220406-patchset.tar.xz 35480 BLAKE2B ce6aeebbb3255196611130d04ee7a3907ba45d6d2a283f2433e2176cf67e473e74137b180de0a9998762cc54439bb06825815e81e9f95f9413ce2956ac9308b7 SHA512 47e29a1429dce2db324929af91c8ef8421c75ae48f5a491db71b434f8017a5b1e7475e9938989e331e8e012220852848565242e09747892e1a8a8d3ab7386840
-DIST qtwebengine-5.15.3_p20220406.tar.xz 318979648 BLAKE2B 3aba9293c52f96379cfe37c418c7a29a28e2fc0a8526d35452bef28c03b101054131d0daf75f07f058f80fbd42678b6bd24733573318169908f1d5e18d147db8 SHA512 80bf51b547cc8e15473652327a0cb753211911e8c98b1cb8b2cd696af923e79eccdc74aa4b68b6184c74ceb3a9bd708c7313f48eab4381ebeaac8192daa163b6
-EBUILD qtwebengine-5.15.3_p20220406.ebuild 8916 BLAKE2B 18f4872bc991ce6485c8d1a9dda7c6f213a8901f3f7b15198098522067fb21415d23b3490ca22560504937def07ac6579c00c0f95394c5339acc900e5d1b49e6 SHA512 31fed35489dc2ec2fb9dcfdb33f761e53925e32ccd40e1f43796a907fe7dfc38c45e4e883fc015541395dadc51697c121f2cd3f09fc25c1bf05d029b15a0c773
+DIST qtwebengine-5.15.4_p20220526.tar.xz 318787804 BLAKE2B 946331d1460f2db43730c7a1f506690eb1f6f25438e52ff627fff0776cbca439cde2d2654679a238ce0384b0a92bf8eb84db97d1093b2a733dd97fa08bf4c864 SHA512 a27d31ef46b5841fec91c10b91c3c1735ace77fde17fa09018836f8d11d85b34b08318b150b791a68efde59c1317109633e938dfbb5542c22033e8ba0ce46cad
+DIST qtwebengine-5.15.5_p20220618.tar.xz 320131236 BLAKE2B 842322c94737cdf647277ccf226c0d015ac0b362af54c4298cbad6b4494aa4ef0e73830577fb391be31c91b4331b85f407ec58641897a7cc7237e7623043577d SHA512 b1bab7aa5edc7f7b9d4f8338a05dbbd55ae6e0312e1a7e6061895bd7a98c67780127c20db1dbbc81664bf483a5b8f7ed887cedd1baaa1a0259e28fd4b13d6944
+EBUILD qtwebengine-5.15.4_p20220526.ebuild 9223 BLAKE2B 734141be64f31fccaafc4dc71e5eeea816e5bb6dfe545448dbee1d1df93b1a2aaabd359ab783a751c3b8838d8b224ae79cc231e113e05bc377b6045c12af0b5b SHA512 e326b28a15abac627250ecf72c536127a6473a688a1462f197baf8a6b5741985046440641982c1672fe565fb0d8dd98e4dc8b03e218b477c34f8c600e23244d5
+EBUILD qtwebengine-5.15.5_p20220618.ebuild 9285 BLAKE2B 6410002eff09d354b921fda49b3873214bce3d7a5d33b057c32ab39a46ecf35bd14c5c99afcdffb9aedb02cef3f7c8b9aed49a76230c0073ef183e7c49c6af56 SHA512 b4fd25d55d7b268edc6f1a99a4e6bd2a70e7ac9aca7a9334d321a99350f651da25abc913199a977be83e381280693c90491b904ec9574acb089676a3c846a751
MISC metadata.xml 1379 BLAKE2B 67b694ac104e8f16a0bb4a33bd178b4507b5c411d62634d88dd8187dd27b32d6a11829883cde03c0a856134c498df7d6c946221a05fec356e62296b64add4121 SHA512 afa7bd418df63335a1b6ad7f1a53be74a710ffaaee294a1db7691ce98d45d2e98e3f40c2e47e2e9e89f766122392def7a3c2198680413c647c9202c1f4c2f0e7
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch
deleted file mode 100644
index 0488122ce92f..000000000000
--- a/dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/core/gn_run.pro b/src/core/gn_run.pro
-index 3d6fda80e..3d0bc86fe 100644
---- a/src/core/gn_run.pro
-+++ b/src/core/gn_run.pro
-@@ -38,5 +38,6 @@ build_pass|!debug_and_release {
- }
-
-+ gn_args += $$(EXTRA_GN)
- gn_args = $$system_quote($$gn_args)
- gn_src_root = $$system_quote($$system_path($$QTWEBENGINE_ROOT/$$getChromiumSrcDir()))
- gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
- gn_python = "--script-executable=$$pythonPathForSystem()"
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch
new file mode 100644
index 000000000000..cd476564037a
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch
@@ -0,0 +1,32 @@
+https://build.opensuse.org/package/view_file/KDE:Qt:5.15/libqt5-qtwebengine/0001-skia-Some-includes-to-fix-build-with-GCC-12.patch?expand=1
+https://bugs.gentoo.org/840326
+
+From 68799a1e0815b20ca59ce354a55280399257a201 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fvogt@suse.de>
+Date: Fri, 25 Mar 2022 15:29:28 +0100
+Subject: [PATCH] skia: Some includes to fix build with GCC 12
+
+Those includes got introduced upstream for other reasons and fixed building
+with GCC 12 as a side effect.
+--- a/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h
++++ b/src/3rdparty/chromium/third_party/skia/include/core/SkColor.h
+@@ -12,6 +12,8 @@
+ #include "include/core/SkScalar.h"
+ #include "include/core/SkTypes.h"
+
++#include <array>
++
+ /** \file SkColor.h
+
+ Types, consts, functions, and macros for colors.
+--- a/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
++++ b/src/3rdparty/chromium/third_party/skia/src/utils/SkParseColor.cpp
+@@ -8,6 +8,8 @@
+
+ #include "include/utils/SkParse.h"
+
++#include <algorithm> // std::lower_bound
++
+ static constexpr const char* gColorNames[] = {
+ "aliceblue",
+ "antiquewhite",
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch
new file mode 100644
index 000000000000..a319f521ca67
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch
@@ -0,0 +1,10 @@
+--- a/src/core/gn_run.pro
++++ b/src/core/gn_run.pro
+@@ -64,6 +64,7 @@
+ }
+ } else {
+ gn_args+= "qtwebengine_target=\"$$system_path($$OUT_PWD/$$getConfigDir()):QtWebEngineCore\""
++ gn_args += $$(EXTRA_GN)
+ gn_args = $$system_quote($$gn_args)
+ gn_build_root = $$system_quote($$system_path($$OUT_PWD/$$getConfigDir()))
+ gn_run = $$gn_binary gen $$gn_build_root $$gn_python --args=$$gn_args --root=$$gn_src_root
diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch
new file mode 100644
index 000000000000..c38bf1bdeeb3
--- /dev/null
+++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch
@@ -0,0 +1,48 @@
+From 7e11d69b957595a172a3eb60db17141daed29d63 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@qt.io>
+Date: Mon, 20 Jun 2022 17:19:58 +0200
+Subject: Fixup: CVE-2022-0796: Use after free in Media
+
+Commit ecc2bb74f1f accidentally introduced a build break due to an
+apparent typo.
+
+This fixes it.
+
+Change-Id: I746c6f10ecd2b212b847a291677e24e527d6b922
+Reviewed-by: Michal Klocek <michal.klocek@qt.io>
+---
+ chromium/content/renderer/media/batching_media_log.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/3rdparty/chromium/content/renderer/media/batching_media_log.h b/src/3rdparty/chromium/content/renderer/media/batching_media_log.h
+index b68535aea42..a28d426878f 100644
+--- a/src/3rdparty/chromium/content/renderer/media/batching_media_log.h
++++ b/src/3rdparty/chromium/content/renderer/media/batching_media_log.h
+@@ -72,18 +72,18 @@ class CONTENT_EXPORT BatchingMediaLog : public media::MediaLog {
+ // guarantees provided by MediaLog, since SendQueuedMediaEvents must also
+ // be synchronized with respect to AddEvent.
+ mutable base::Lock lock_;
+- const base::TickClock* tick_clock_ GUARDED_BY(LOCK);
+- base::TimeTicks last_ipc_send_time_ GUARDED_BY(LOCK);
+- std::vector<media::MediaLogRecord> queued_media_events_ GUARDED_BY(LOCK);
++ const base::TickClock* tick_clock_ GUARDED_BY(lock_);
++ base::TimeTicks last_ipc_send_time_ GUARDED_BY(lock_);
++ std::vector<media::MediaLogRecord> queued_media_events_ GUARDED_BY(lock_);
+
+ // impl for sending queued events.
+- std::vector<std::unique_ptr<EventHandler>> event_handlers_ GUARDED_BY(LOCK);
++ std::vector<std::unique_ptr<EventHandler>> event_handlers_ GUARDED_BY(lock_);
+
+ // For enforcing max 1 pending send.
+- bool ipc_send_pending_ GUARDED_BY(LOCK);
++ bool ipc_send_pending_ GUARDED_BY(lock_);
+
+ // Limits the number of events we send over IPC to one.
+- std::unique_ptr<media::MediaLogRecord> last_duration_changed_event_ GUARDED_BY(LOCK);
++ std::unique_ptr<media::MediaLogRecord> last_duration_changed_event_ GUARDED_BY(lock_);
+
+ // Holds the earliest MEDIA_ERROR_LOG_ENTRY event added to this log. This is
+ // most likely to contain the most specific information available describing
+--
+cgit v1.2.1
+
diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild
index 6a665711c4c2..9ba4c484f9b3 100644
--- a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild
@@ -104,11 +104,12 @@ BDEPEND="${PYTHON_DEPS}
PATCHES=(
"${FILESDIR}/${PN}-5.15.2-disable-fatal-warnings.patch" # downstream, bug 695446
- "${FILESDIR}/${PN}-5.15.2-extra_gn.patch" # downstream, bug 774186
+ "${FILESDIR}/${PN}-5.15.3_p20220505-extra-gn.patch" # downstream, bug 774186
"${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606
"${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix
"${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746
"${FILESDIR}/${PN}-5.15.3_p20220329-clang14.patch" # by FreeBSD, bug 836604
+ "${FILESDIR}/${PN}-5.15.3_p20220406-gcc12-includes.patch" # by openSUSE, bug 840326
"${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957
"${WORKDIR}/${PN}-5.15.3_p20220406-patchset" # bug 698988 (py2--), pipewire-3
)
@@ -226,6 +227,11 @@ src_prepare() {
mkdir -vp source/config/linux/ppc64 || die
mkdir -p source/libvpx/test || die
touch source/libvpx/test/test.mk || die
+ # clang-format is used to re-format sources
+ # but we'd rather make it a no-op than introduce a clang dependency
+ # https://bugs.gentoo.org/849458
+ clang-format() { : ; }
+ export -f clang-format || die
./generate_gni.sh || die
popd >/dev/null || die
fi
@@ -263,8 +269,8 @@ src_install() {
}
pkg_preinst() {
- elog "This version of Qt WebEngine is based on Chromium version 87.0.4280, with"
- elog "additional security fixes from newer versions. Extensive as it is, the"
+ elog "This version of Qt WebEngine is based on Chromium version 87.0.4280.144,"
+ elog "with additional security fixes from newer versions. Extensive as it is, the"
elog "list of backports is impossible to evaluate, but always bound to be behind"
elog "Chromium's release schedule."
elog "In addition, various online services may deny service based on an outdated"
diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild
new file mode 100644
index 000000000000..43b46b0fbaab
--- /dev/null
+++ b/dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild
@@ -0,0 +1,281 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10} )
+PYTHON_REQ_USE="xml(+)"
+inherit check-reqs estack flag-o-matic multiprocessing python-any-r1 qt5-build toolchain-funcs
+
+DESCRIPTION="Library for rendering dynamic web content in Qt5 C++ and QML applications"
+HOMEPAGE="https://www.qt.io/"
+
+if [[ ${QT5_BUILD_TYPE} == release ]]; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+ if [[ ${PV} == ${QT5_PV}_p* ]]; then
+ SRC_URI="https://dev.gentoo.org/~asturm/distfiles/${P}.tar.xz"
+ S="${WORKDIR}/${P}"
+ QT5_BUILD_DIR="${S}_build"
+ fi
+else
+ EGIT_BRANCH="5.15"
+ EGIT_REPO_URI=(
+ "https://code.qt.io/qt/${QT5_MODULE}.git"
+ "https://github.com/qt/${QT5_MODULE}.git"
+ )
+ inherit git-r3
+fi
+
+# ppc64 patchset based on https://github.com/chromium-ppc64le releases
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-5.15.2_p20211019-jumbo-build.patch.bz2
+ https://dev.gentoo.org/~asturm/distfiles/${PN}-5.15.3_p20220406-patchset.tar.xz
+ ppc64? ( https://dev.gentoo.org/~gyakovlev/distfiles/${PN}-5.15.2-r1-chromium87-ppc64le.tar.xz )"
+
+IUSE="alsa bindist designer geolocation +jumbo-build kerberos pulseaudio screencast +system-ffmpeg +system-icu widgets"
+REQUIRED_USE="designer? ( widgets )"
+
+RDEPEND="
+ app-arch/snappy:=
+ dev-libs/glib:2
+ dev-libs/nspr
+ dev-libs/nss
+ dev-libs/expat
+ dev-libs/libevent:=
+ dev-libs/libxml2[icu]
+ dev-libs/libxslt
+ dev-libs/re2:=
+ =dev-qt/qtcore-${QT5_PV}*
+ =dev-qt/qtdeclarative-${QT5_PV}*
+ =dev-qt/qtgui-${QT5_PV}*
+ =dev-qt/qtnetwork-${QT5_PV}*
+ =dev-qt/qtprintsupport-${QT5_PV}*
+ =dev-qt/qtwebchannel-${QT5_PV}*[qml]
+ media-libs/fontconfig
+ media-libs/freetype
+ media-libs/harfbuzz:=
+ media-libs/lcms:2
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:0=
+ >=media-libs/libvpx-1.5:=[svc(+)]
+ media-libs/libwebp:=
+ media-libs/opus
+ sys-apps/dbus
+ sys-apps/pciutils
+ sys-libs/zlib[minizip]
+ virtual/libudev
+ x11-libs/libdrm
+ x11-libs/libX11
+ x11-libs/libXcomposite
+ x11-libs/libXcursor
+ x11-libs/libXdamage
+ x11-libs/libXext
+ x11-libs/libXfixes
+ x11-libs/libXi
+ x11-libs/libxkbfile
+ x11-libs/libXrandr
+ x11-libs/libXrender
+ x11-libs/libXScrnSaver
+ x11-libs/libXtst
+ alsa? ( media-libs/alsa-lib )
+ designer? ( =dev-qt/designer-${QT5_PV}* )
+ geolocation? ( =dev-qt/qtpositioning-${QT5_PV}* )
+ kerberos? ( virtual/krb5 )
+ pulseaudio? ( media-sound/pulseaudio:= )
+ screencast? ( media-video/pipewire:= )
+ system-ffmpeg? ( media-video/ffmpeg:0= )
+ system-icu? ( >=dev-libs/icu-69.1:= )
+ widgets? (
+ =dev-qt/qtdeclarative-${QT5_PV}*[widgets]
+ =dev-qt/qtwidgets-${QT5_PV}*
+ )
+"
+DEPEND="${RDEPEND}
+ media-libs/libglvnd
+"
+BDEPEND="${PYTHON_DEPS}
+ dev-util/gperf
+ dev-util/ninja
+ dev-util/re2c
+ net-libs/nodejs[ssl]
+ sys-devel/bison
+ sys-devel/flex
+ ppc64? ( >=dev-util/gn-0.1807 )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.15.2-disable-fatal-warnings.patch" # downstream, bug 695446
+ "${FILESDIR}/${PN}-5.15.3_p20220505-extra-gn.patch" # downstream, bug 774186
+ "${FILESDIR}/${PN}-5.15.2_p20210224-chromium-87-v8-icu68.patch" # downstream, bug 757606
+ "${FILESDIR}/${PN}-5.15.2_p20210224-disable-git.patch" # downstream snapshot fix
+ "${FILESDIR}/${PN}-5.15.2_p20211015-pdfium-system-lcms2.patch" # by Debian, QTBUG-61746
+ "${FILESDIR}/${PN}-5.15.3_p20220329-clang14.patch" # by FreeBSD, bug 836604
+ "${FILESDIR}/${PN}-5.15.3_p20220406-gcc12-includes.patch" # by openSUSE, bug 840326
+ "${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957
+ "${WORKDIR}/${PN}-5.15.3_p20220406-patchset" # bug 698988 (py2--), pipewire-3
+ "${FILESDIR}/${P}-fixup-CVE-2022-0796.patch" # bug 853097
+)
+
+qtwebengine_check-reqs() {
+ # bug #307861
+ eshopts_push -s extglob
+ if is-flagq '-g?(gdb)?([1-9])'; then
+ ewarn "You have enabled debug info (probably have -g or -ggdb in your CFLAGS/CXXFLAGS)."
+ ewarn "You may experience really long compilation times and/or increased memory usage."
+ ewarn "If compilation fails, please try removing -g/-ggdb before reporting a bug."
+ fi
+ eshopts_pop
+
+ [[ ${MERGE_TYPE} == binary ]] && return
+
+ # (check-reqs added for bug #570534)
+ #
+ # Estimate the amount of RAM required
+ # Multiplier is *10 because Bash doesn't do floating point maths.
+ # Let's crudely assume ~2GB per compiler job for GCC.
+ local multiplier=20
+
+ # And call it ~1.5GB for Clang.
+ if tc-is-clang ; then
+ multiplier=15
+ fi
+
+ local CHECKREQS_DISK_BUILD="7G"
+ local CHECKREQS_DISK_USR="150M"
+ if ! has "distcc" ${FEATURES} ; then
+ # bug #830661
+ # Not super realistic to come up with good estimates for distcc right now
+ local CHECKREQS_MEMORY=$(($(makeopts_jobs)*multiplier/10))G
+ fi
+
+ check-reqs_${EBUILD_PHASE_FUNC}
+}
+
+pkg_pretend() {
+ qtwebengine_check-reqs
+}
+
+pkg_setup() {
+ qtwebengine_check-reqs
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ case ${QT5_BUILD_TYPE} in
+ live) git-r3_src_unpack ;&
+ release) default ;;
+ esac
+}
+
+src_prepare() {
+ if [[ ${PV} == ${QT5_PV}_p* ]]; then
+ # This is made from git, and for some reason will fail w/o .git directories.
+ mkdir -p .git src/3rdparty/chromium/.git || die
+ fi
+ # We need to make sure this integrates well into Qt 5.15.3 installation.
+ # Otherwise revdeps fail w/o heavy changes. This is the simplest way to do it.
+ # See also: https://www.qt.io/blog/building-qt-webengine-against-other-qt-versions
+ sed -E "/^MODULE_VERSION/s/5\.15\.[0-9]+/${QT5_PV}/" -i .qmake.conf || die
+
+ # QTBUG-88657 - jumbo-build could still make trouble
+ if ! use jumbo-build; then
+ sed -i -e 's|use_jumbo_build=true|use_jumbo_build=false|' \
+ src/buildtools/config/common.pri || die
+ fi
+
+ # bug 620444 - ensure local headers are used
+ find "${S}" -type f -name "*.pr[fio]" | \
+ xargs sed -i -e 's|INCLUDEPATH += |&$${QTWEBENGINE_ROOT}_build/include $${QTWEBENGINE_ROOT}/include |' || die
+
+ if use system-icu; then
+ # Sanity check to ensure that bundled copy of ICU is not used.
+ # Whole src/3rdparty/chromium/third_party/icu directory cannot be deleted because
+ # src/3rdparty/chromium/third_party/icu/BUILD.gn is used by build system.
+ # If usage of headers of bundled copy of ICU occurs, then lists of shim headers in
+ # shim_headers("icui18n_shim") and shim_headers("icuuc_shim") in
+ # src/3rdparty/chromium/third_party/icu/BUILD.gn should be updated.
+ local file
+ while read file; do
+ echo "#error This file should not be used!" > "${file}" || die
+ done < <(find src/3rdparty/chromium/third_party/icu -type f "(" -name "*.c" -o -name "*.cpp" -o -name "*.h" ")" 2>/dev/null)
+ fi
+
+ # src/3rdparty/gn fails with libc++ due to passing of `-static-libstdc++`
+ if tc-is-clang && has_version 'sys-devel/clang[default-libcxx]'; then
+ eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch"
+ fi
+
+ if use system-ffmpeg && has_version '>=media-video/ffmpeg-5'; then
+ eapply "${FILESDIR}/${PN}-5.15.3_p20220406-ffmpeg5.patch" # by Archlinux, bug 831437
+ fi
+
+ qt_use_disable_config alsa webengine-alsa src/buildtools/config/linux.pri
+ qt_use_disable_config pulseaudio webengine-pulseaudio src/buildtools/config/linux.pri
+
+ qt_use_disable_mod designer webenginewidgets src/plugins/plugins.pro
+
+ qt_use_disable_mod widgets widgets src/src.pro
+
+ qt5-build_src_prepare
+
+ # we need to generate ppc64 stuff because upstream does not ship it yet
+ if use ppc64; then
+ einfo "Patching for ppc64le and generating build files"
+ eapply "${FILESDIR}/qtwebengine-5.15.2-enable-ppc64.patch"
+ pushd src/3rdparty/chromium > /dev/null || die
+ eapply -p0 "${WORKDIR}/${PN}-ppc64le"
+ popd > /dev/null || die
+ pushd src/3rdparty/chromium/third_party/libvpx > /dev/null || die
+ mkdir -vp source/config/linux/ppc64 || die
+ mkdir -p source/libvpx/test || die
+ touch source/libvpx/test/test.mk || die
+ # clang-format is used to re-format sources
+ # but we'd rather make it a no-op than introduce a clang dependency
+ # https://bugs.gentoo.org/849458
+ clang-format() { : ; }
+ export -f clang-format || die
+ ./generate_gni.sh || die
+ popd >/dev/null || die
+ fi
+}
+
+src_configure() {
+ export NINJA_PATH=/usr/bin/ninja
+ export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs "${MAKEOPTS}" 999) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}"
+
+ local myqmakeargs=(
+ --
+ -no-build-qtpdf
+ -printing-and-pdf
+ -system-opus
+ -system-webp
+ $(qt_use alsa)
+ $(qt_use !bindist proprietary-codecs)
+ $(qt_use geolocation webengine-geolocation)
+ $(qt_use kerberos webengine-kerberos)
+ $(qt_use pulseaudio)
+ $(usex screencast -webengine-webrtc-pipewire '')
+ $(usex system-ffmpeg -system-ffmpeg -qt-ffmpeg)
+ $(qt_use system-icu webengine-icu)
+ )
+ qt5-build_src_configure
+}
+
+src_install() {
+ qt5-build_src_install
+
+ # bug 601472
+ if [[ ! -f ${D}${QT5_LIBDIR}/libQt5WebEngine.so ]]; then
+ die "${CATEGORY}/${PF} failed to build anything. Please report to https://bugs.gentoo.org/"
+ fi
+}
+
+pkg_preinst() {
+ elog "This version of Qt WebEngine is based on Chromium version 87.0.4280.144,"
+ elog "with additional security fixes from newer versions. Extensive as it is, the"
+ elog "list of backports is impossible to evaluate, but always bound to be behind"
+ elog "Chromium's release schedule."
+ elog "In addition, various online services may deny service based on an outdated"
+ elog "user agent version (and/or other checks). Google is already known to do so."
+ elog
+ elog "tldr: Your web browsing experience will be compromised."
+}