diff options
author | V3n3RiX <venerix@koprulu.sector> | 2023-01-09 00:17:07 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2023-01-09 00:17:07 +0000 |
commit | 4fc232f0223106ced390fbe949c095cb39143f23 (patch) | |
tree | cbe7ad1f19d2a427ec23a82842e743a1aa49cd49 /dev-qt/qtwebengine | |
parent | 2237cda0c6b012952e02ec1314e1f48eddf4dab7 (diff) |
gentoo auto-resync : 09:01:2023 - 00:17:07
Diffstat (limited to 'dev-qt/qtwebengine')
4 files changed, 413 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index f409ed7891c9..251de418f36f 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -8,14 +8,18 @@ AUX qtwebengine-5.15.3_p20220329-clang14.patch 1883 BLAKE2B 9f4afae3ea240841f8b0 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.8_p20230106-v8-opcode-constexpr.patch 1911 BLAKE2B fb59f9ae06031bd52460856951653e193ee9a2d6f965fe0aab940822d8a7a90aea830ba9548a5879ac8644b5b80fb1ffbaf14dfb91de44e07c2ef4f5c470db6d SHA512 c490c2650f061e584523b06d28b3986a2ba940a478fa0aff1f1f4891495423c5dd432cc96a690ad02871e8e626d77978aaa9b97b4a8d0122e0638849e4225b3c +AUX qtwebengine-5.15.8_p20230106-widevine.patch 4482 BLAKE2B 25cb06e27d51011df57b63053bc97f20bf0062167d0915b2d4da5b5b7164b5f35ef66b19da69acd3fac16bf9264e85e5d69987a6c38284033c77058b9146ea20 SHA512 f05969ce3355ca23cdaad822e052f4a12350598cd9a5bf5af72f9f10e1cf43bbbc86f2af3b5e27cd6a9198bd025a7afddb4db35444542d57c9963f3f47a6de97 AUX qtwebengine-6.4.0-no-websocket-intercept.patch 1582 BLAKE2B ca612dfe68ea051bec1a0af75806326a152fde8ece5449ceefd706eaa83911396ad4d2fc7633d53d6b54b17501a25a59928a34c82fdd88c6de4a3c7d110b1ec5 SHA512 bfaaa8f294a21390b45eafb5fabd933021208056d032169c6388a5d9f96991971c01adbb61d9293afd830114f671440f645ce2d53fe9596f390bce806cadc003 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.7_p20221122.tar.xz 319323408 BLAKE2B f0f7d566e84a78bae964bf34ccb305d51ae3c0b73bea2b382edca373a5240ab63ce6d90a1f81c8e70fd1f1eb05f9985fccbdae36958afe9dd8fa9c95a72775e0 SHA512 42665d2d7d227aeb04b9f7af0728ea5b07978e221b858fd2855595ad588d709bacbea18ab9e0c3a023579e5e3b80cdf6d3ff721573631ee43626bd37fb424225 +DIST qtwebengine-5.15.8_p20230106.tar.xz 319368288 BLAKE2B cbf6abc941cc20d7568c458726ccd371d5c6838b93e034e79767a2f98a00576a89a81eeb2964fb549df5f347cb8927863c15bf082c6abb749ed90cbe69c9677c SHA512 9b65cb69945516ee57945ccf59b2f60182673e7a77e29418269a285c708a5dcd4ddfdd6c23e187280e68d7abee4e1dc2d00da6678393a44e88b88702db337615 DIST qtwebengine-everywhere-src-6.4.0.tar.xz 440346968 BLAKE2B ffe9ad9f71034d14f016a71bf3e6034853d5c2b17a3ab3e8aefc1c3a79896363eb2ce41446f16e126ec313608619900ee7ac41750978c28f135df5bbc2e0be5c SHA512 a024781c675c60ca746abb6cd977872b51e3f4a7ff9f934450b82e9b19883c68c0c6c630c28997624f0caceed3c43e8b0658419ecb18cf08fa9081275bedd2a7 DIST qtwebengine-everywhere-src-6.4.2.tar.xz 440538956 BLAKE2B df94e0e8e22d11614d0d35002c0e404e6735d75e7b43bef1bfd3d5e1230a997625fe8471d8a9154798cc1f9b9c296c2b697ec70fba0428d509d1352d6d3fafee SHA512 47b184a690d4fa5ccccaa3533903068df7b28825aeb16b7c75e3c7cc29fe0cfdf07501c5f0311926c22852f626b0cd59c836d44527261dc7d5c1efbf7e15439b EBUILD qtwebengine-5.15.7_p20221122.ebuild 9297 BLAKE2B 4c3e83550efe4ebfcefa74134f02731fc0f6bf8dd1d8a02f139f525ea0f7314dab03e4c6b65a13bfcb43d8f10776693df65f30618d6073d96f0bd607065b83b3 SHA512 2d1fbb46015ce1d72a027e1f3b3d98a62b04488b04a3278df33f04971bf75eff35cc1c1f274fe9f850436ea0d8ce09384c846ea703fb38364c7d79eae70772ca +EBUILD qtwebengine-5.15.8_p20230106.ebuild 9406 BLAKE2B c0e8c3d25a2cf8e8da15eda2c9a297d3299f3fa56db9289066974f034672a786a2abd2b5028e995547164b2bd0fcee6514915bbfd007d9eb1e6276a0facf1f3a SHA512 24fae80e6d3fb8910d585d991ac1ad57286f0499a55c48854a75cd4f262606866f46983dcb6e5d5172195c7821020502394aece30991cf464fda024ad698f768 EBUILD qtwebengine-6.4.0.ebuild 7497 BLAKE2B c0d10eaf3623173ffd44dc8c4b9d87b207e5085cc45e0c3d6068fd306eefa739d635b1ab406d625c87efc7be6c020941a693f45e719e5a871e4b99083ad08102 SHA512 e05d72be1d82b232e5dd98f8dd35cfa6e662c5b63103a1db6112788e440e577a0dc625007ad983f403e2001b2cf7ebaa5423fde09d3f085562159f9e768470a3 EBUILD qtwebengine-6.4.2.ebuild 7414 BLAKE2B 6d25d60291c227c6bf52adaef94d8b13aafc98a3946472d191c8311e42fe8afd9b3799510afa58ea01a83a393adcaffef4842ef7df5f5ffdaa73b5344ede59a4 SHA512 f5947f1440041ec126b571d570c6cb13ed8f27d0deb703945a47491735ae2ac04e0d5cbda6bec23d6233de7583a757220910d113058535835367615c1284eeed MISC metadata.xml 1258 BLAKE2B 450cb9e683a52475729881c910e7b0b79587d3d672d4eb90613b91194ec19ab7c0fb86bf4ff4bf631686ed3cad49859eed07405b1f7d6129f40b5f4edba68e43 SHA512 971dbe74479e6bf3ed3cda00724bb4a60d6382c4020ee6ce3a730646a69af0a66785fb135706a2a0cc00ff3190674e724aa3def03f43c8e9ed5e5d317ae271f0 diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.8_p20230106-v8-opcode-constexpr.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.8_p20230106-v8-opcode-constexpr.patch new file mode 100644 index 000000000000..b1fe0f69801c --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.8_p20230106-v8-opcode-constexpr.patch @@ -0,0 +1,43 @@ +From a5cea1bfc38ceafc74f4baddd6ab94ea13757ef8 Mon Sep 17 00:00:00 2001 +From: Lei Zhang <thestig@chromium.org> +Date: Fri, 21 May 2021 10:55:53 -0700 +Subject: [PATCH] Mark Node::opcode() and Operator::opcode() as constexpr. + +Without the explicit constexpr keyword, Clang seems to be able to treat +these methods as constexpr, whereas MSVC will not. + +Bug: v8:11760 +Change-Id: I9f6492f38fb50dcaf7a4f09da0bd79c0da6a50eb +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2912916 +Reviewed-by: Clemens Backes <clemensb@chromium.org> +Reviewed-by: Maya Lekova <mslekova@chromium.org> +Commit-Queue: Lei Zhang <thestig@chromium.org> +Cr-Commit-Position: refs/heads/master@{#74791} +--- + +diff --git a/src/3rdparty/chromium/v8/src/compiler/node.h b/src/3rdparty/chromium/v8/src/compiler/node.h +index 37b45c4..57d49fe 100644 +--- a/src/3rdparty/chromium/v8/src/compiler/node.h ++++ b/src/3rdparty/chromium/v8/src/compiler/node.h +@@ -50,7 +50,7 @@ + + const Operator* op() const { return op_; } + +- IrOpcode::Value opcode() const { ++ constexpr IrOpcode::Value opcode() const { + DCHECK_GE(IrOpcode::kLast, op_->opcode()); + return static_cast<IrOpcode::Value>(op_->opcode()); + } +diff --git a/src/3rdparty/chromium/v8/src/compiler/operator.h b/src/3rdparty/chromium/v8/src/compiler/operator.h +index 4206e75..f641394 100644 +--- a/src/3rdparty/chromium/v8/src/compiler/operator.h ++++ b/src/3rdparty/chromium/v8/src/compiler/operator.h +@@ -73,7 +73,7 @@ + // A small integer unique to all instances of a particular kind of operator, + // useful for quick matching for specific kinds of operators. For fast access + // the opcode is stored directly in the operator object. +- Opcode opcode() const { return opcode_; } ++ constexpr Opcode opcode() const { return opcode_; } + + // Returns a constant string representing the mnemonic of the operator, + // without the static parameters. Useful for debugging. diff --git a/dev-qt/qtwebengine/files/qtwebengine-5.15.8_p20230106-widevine.patch b/dev-qt/qtwebengine/files/qtwebengine-5.15.8_p20230106-widevine.patch new file mode 100644 index 000000000000..dcfdeae3c6f3 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-5.15.8_p20230106-widevine.patch @@ -0,0 +1,82 @@ +From b99042fb839021a0a3d2fe0cac7ac3899c4acbba Mon Sep 17 00:00:00 2001 +From: Allan Sandfeld Jensen <allan.jensen@qt.io> +Date: Tue, 14 Jun 2022 14:19:24 +0200 +Subject: [PATCH] Find modern Chrome, Chromium and Firefox CDM modules + +The default download location has moved again, but we can now +also use firefox CDMs. + +Pick-to: 6.4 6.3 +Task-number: QTBUG-104238 +Change-Id: I7ee581fa63e50df970acb31ea6d3f67d332aef59 +Reviewed-by: Peter Varga <pvarga@inf.u-szeged.hu> +--- + src/core/content_client_qt.cpp | 54 ++++++++++++++++++++++++++++++---- + 1 file changed, 49 insertions(+), 5 deletions(-) + +diff --git a/src/core/content_client_qt.cpp b/src/core/content_client_qt.cpp +index 6c914b7729..7167332d9b 100644 +--- a/src/core/content_client_qt.cpp ++++ b/src/core/content_client_qt.cpp +@@ -250,15 +251,56 @@ static bool IsWidevineAvailable(base::FilePath *cdm_path, + } + } + #elif defined(Q_OS_LINUX) +- pluginPaths << QStringLiteral("/opt/google/chrome/libwidevinecdm.so") // Old Google Chrome ++ QList<QDir> potentialWidevineVersionDirs; ++ ++ // Google Chrome widevine modules ++ QDir chromeWidevineDir(QDir::homePath() + "/.config/google-chrome/WidevineCdm"); ++ if (chromeWidevineDir.exists()) ++ potentialWidevineVersionDirs << chromeWidevineDir; ++ ++ // Firefox widevine modules ++ QDir firefoxPotentialProfilesDir(QDir::homePath() + "/.mozilla/firefox"); ++ if (firefoxPotentialProfilesDir.exists()) { ++ QFileInfoList firefoxProfileDirs = firefoxPotentialProfilesDir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); ++ for (const QFileInfo &info : firefoxProfileDirs) { ++ QDir widevinePluginsDir(info.absoluteFilePath() + "/gmp-widevinecdm"); ++ if (widevinePluginsDir.exists()) ++ potentialWidevineVersionDirs << widevinePluginsDir; ++ } ++ } ++ ++ // Chromium widevine modules (might not work with proprietary codecs) ++ QDir chromiumWidevineDir(QDir::homePath() + "/.config/chromium/WidevineCdm"); ++ if (chromiumWidevineDir.exists()) ++ potentialWidevineVersionDirs << chromiumWidevineDir; ++ ++ // Search for widewine versions ++ for (const QDir &dir : potentialWidevineVersionDirs) { ++ QFileInfoList widevineVersionDirs = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name | QDir::Reversed); ++ // ### alternatively look up in the manifest.json and take the path from there. + #if Q_PROCESSOR_WORDSIZE == 8 +- << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") ++ const QString library = QLatin1String("/_platform_specific/linux_x64/libwidevinecdm.so"); + #else +- << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") ++ const QString library = QLatin1String("/_platform_specific/linux_x86/libwidevinecdm.so"); + #endif +- << QStringLiteral("/usr/lib/chromium/libwidevinecdm.so") // Arch ++ for (const QFileInfo &info : widevineVersionDirs) { ++ pluginPaths << info.absoluteFilePath() + "/libwidevinecdm.so"; ++ pluginPaths << info.absoluteFilePath() + library; ++ } ++ } ++ ++ // Fixed paths: ++ pluginPaths << QStringLiteral("/usr/lib/chromium/libwidevinecdm.so") // Arch + << QStringLiteral("/usr/lib/chromium-browser/libwidevinecdm.so") // Ubuntu/neon +- << QStringLiteral("/usr/lib64/chromium/libwidevinecdm.so"); // OpenSUSE style ++ << QStringLiteral("/usr/lib64/chromium/libwidevinecdm.so") // OpenSUSE style ++#if Q_PROCESSOR_WORDSIZE == 8 ++ << QStringLiteral("/usr/lib64/chromium-browser/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") // Gentoo ++ << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so") // Old Google Chrome ++#else ++ << QStringLiteral("/usr/lib/chromium-browser/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") // Gentoo ++ << QStringLiteral("/opt/google/chrome/WidevineCdm/_platform_specific/linux_x86/libwidevinecdm.so") // Old Google Chrome ++#endif ++ << QStringLiteral("/opt/google/chrome/libwidevinecdm.so"); // Older Google Chrome + #endif + } + diff --git a/dev-qt/qtwebengine/qtwebengine-5.15.8_p20230106.ebuild b/dev-qt/qtwebengine/qtwebengine-5.15.8_p20230106.ebuild new file mode 100644 index 000000000000..90cfa552b3be --- /dev/null +++ b/dev-qt/qtwebengine/qtwebengine-5.15.8_p20230106.ebuild @@ -0,0 +1,284 @@ +# Copyright 1999-2023 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-libs/libpulse ) + 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}-v8-opcode-constexpr.patch" # bug 889042 + "${FILESDIR}/${P}-widevine.patch" # bug 888783 +) + +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 ; then + if has_version 'sys-devel/clang[default-libcxx(-)]' || has_version 'sys-devel/clang-common[default-libcxx(-)]' ; then + eapply "${FILESDIR}/${PN}-5.15.2_p20210521-clang-libc++.patch" + fi + 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." +} |