From 0f558761aa2dee1017b4751e4017205e015a9560 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Wed, 29 Jun 2022 12:04:12 +0100 Subject: gentoo resync : 29.12.2022 --- dev-qt/qtwebengine/Manifest | 10 +- .../files/qtwebengine-5.15.2-extra_gn.patch | 12 - ...webengine-5.15.3_p20220406-gcc12-includes.patch | 32 +++ .../qtwebengine-5.15.3_p20220505-extra-gn.patch | 10 + ...gine-5.15.5_p20220618-fixup-CVE-2022-0796.patch | 48 ++++ .../qtwebengine-5.15.3_p20220406.ebuild | 274 -------------------- .../qtwebengine-5.15.4_p20220526.ebuild | 280 ++++++++++++++++++++ .../qtwebengine-5.15.5_p20220618.ebuild | 281 +++++++++++++++++++++ 8 files changed, 658 insertions(+), 289 deletions(-) delete mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.2-extra_gn.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220406-gcc12-includes.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.3_p20220505-extra-gn.patch create mode 100644 dev-qt/qtwebengine/files/qtwebengine-5.15.5_p20220618-fixup-CVE-2022-0796.patch delete mode 100644 dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild create mode 100644 dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild create mode 100644 dev-qt/qtwebengine/qtwebengine-5.15.5_p20220618.ebuild (limited to 'dev-qt/qtwebengine') 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 +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 ++ + /** \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 // 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?= +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 +--- + 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 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 queued_media_events_ GUARDED_BY(lock_); + + // impl for sending queued events. +- std::vector> event_handlers_ GUARDED_BY(LOCK); ++ std::vector> 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 last_duration_changed_event_ GUARDED_BY(LOCK); ++ std::unique_ptr 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.3_p20220406.ebuild deleted file mode 100644 index 6a665711c4c2..000000000000 --- a/dev-qt/qtwebengine/qtwebengine-5.15.3_p20220406.ebuild +++ /dev/null @@ -1,274 +0,0 @@ -# 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.2-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 - "${WORKDIR}/${PN}-5.15.2_p20211019-jumbo-build.patch" # bug 813957 - "${WORKDIR}/${PN}-5.15.3_p20220406-patchset" # bug 698988 (py2--), pipewire-3 -) - -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 - ./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, with" - elog "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." -} diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild new file mode 100644 index 000000000000..9ba4c484f9b3 --- /dev/null +++ b/dev-qt/qtwebengine/qtwebengine-5.15.4_p20220526.ebuild @@ -0,0 +1,280 @@ +# 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 +) + +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." +} 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." +} -- cgit v1.2.3