diff options
Diffstat (limited to 'dev-qt/qtwebengine')
-rw-r--r-- | dev-qt/qtwebengine/Manifest | 3 | ||||
-rw-r--r-- | dev-qt/qtwebengine/files/qtwebengine-6.4.0-no-websocket-intercept.patch | 38 | ||||
-rw-r--r-- | dev-qt/qtwebengine/qtwebengine-6.4.0.ebuild | 245 |
3 files changed, 286 insertions, 0 deletions
diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index 924ea3b9188e..2d54362b6d8e 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -9,11 +9,14 @@ AUX qtwebengine-5.15.3_p20220406-ffmpeg5.patch 8393 BLAKE2B 07dee5bd305699378353 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 +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.5_p20220618.tar.xz 320131236 BLAKE2B 842322c94737cdf647277ccf226c0d015ac0b362af54c4298cbad6b4494aa4ef0e73830577fb391be31c91b4331b85f407ec58641897a7cc7237e7623043577d SHA512 b1bab7aa5edc7f7b9d4f8338a05dbbd55ae6e0312e1a7e6061895bd7a98c67780127c20db1dbbc81664bf483a5b8f7ed887cedd1baaa1a0259e28fd4b13d6944 DIST qtwebengine-everywhere-src-6.3.2.tar.xz 398294888 BLAKE2B 7fb59e9c0a09e4ffc2c59398e9249cb91c864168b81befa9ea7e2044ed328bc010f0e6d03ecfc74e006044b56c826b35dba05375aba6fee29e5d5aa08b33fa4c SHA512 deff0a7ad71c4c81b3f5cfff77919d9971eec0ba3713a94a28d902404189b4f92b237a89cc6ef3dec2ea7a766f8a7241638a1310e4ac68fe46ecdc61f69a958a +DIST qtwebengine-everywhere-src-6.4.0.tar.xz 440346968 BLAKE2B ffe9ad9f71034d14f016a71bf3e6034853d5c2b17a3ab3e8aefc1c3a79896363eb2ce41446f16e126ec313608619900ee7ac41750978c28f135df5bbc2e0be5c SHA512 a024781c675c60ca746abb6cd977872b51e3f4a7ff9f934450b82e9b19883c68c0c6c630c28997624f0caceed3c43e8b0658419ecb18cf08fa9081275bedd2a7 EBUILD qtwebengine-5.15.5_p20220618.ebuild 9360 BLAKE2B 17d4db05563b15b74601f217247654304bf9833ef9487d614d4e73af4c63e9b2e97df0802551b50fa35f8929e2d8edd75abaf6831b001f13c71dcaa676c43d6f SHA512 d60048e0fb05316a272aaa1db671639b833239ab5de6346ffa19685d8013115b48e02b57565361f706b5ade51b8c896484404e741c6348c3712fead5808e7149 EBUILD qtwebengine-6.3.2.ebuild 7387 BLAKE2B 558bb2a0fdeca7dddfaef5507084eecc3ffb7abe26651d34fc7d21d17a1c4718ac77f1e877524a255a507709938fb275b1d1db2fcd69d8b5fe93f67241f347ec SHA512 89ddfa651a616fa175f2cbcfac51fe5e146d86b8a6f7fd4bebcb2351c624f628eb453192217babc69a8f8d32b204d062cf760902ceb0c8cdac10f4afb5189d1a +EBUILD qtwebengine-6.4.0.ebuild 7497 BLAKE2B c0d10eaf3623173ffd44dc8c4b9d87b207e5085cc45e0c3d6068fd306eefa739d635b1ab406d625c87efc7be6c020941a693f45e719e5a871e4b99083ad08102 SHA512 e05d72be1d82b232e5dd98f8dd35cfa6e662c5b63103a1db6112788e440e577a0dc625007ad983f403e2001b2cf7ebaa5423fde09d3f085562159f9e768470a3 MISC metadata.xml 1258 BLAKE2B 450cb9e683a52475729881c910e7b0b79587d3d672d4eb90613b91194ec19ab7c0fb86bf4ff4bf631686ed3cad49859eed07405b1f7d6129f40b5f4edba68e43 SHA512 971dbe74479e6bf3ed3cda00724bb4a60d6382c4020ee6ce3a730646a69af0a66785fb135706a2a0cc00ff3190674e724aa3def03f43c8e9ed5e5d317ae271f0 diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.4.0-no-websocket-intercept.patch b/dev-qt/qtwebengine/files/qtwebengine-6.4.0-no-websocket-intercept.patch new file mode 100644 index 000000000000..941c39c0a5a9 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-6.4.0-no-websocket-intercept.patch @@ -0,0 +1,38 @@ +Qt Bug: https://bugreports.qt.io/browse/QTBUG-107144 +Gerrit: https://codereview.qt-project.org/c/qt/qtwebengine/+/436316 +Patch: https://codereview.qt-project.org/gitweb?p=qt%2Fqtwebengine.git;a=commit;h=81bf140583f7b7bf13cc8dd522e1ca2aba873fc4 + +From 81bf140583f7b7bf13cc8dd522e1ca2aba873fc4 Mon Sep 17 00:00:00 2001 +From: Martin Negyokru <negyokru@inf.u-szeged.hu> +Date: Mon, 3 Oct 2022 12:20:00 +0200 +Subject: [PATCH] Do not intercept websocket connection when there is no + associated frame + +This fix is based on chrome's implementation. + +Fixes: QTBUG-107144 +Change-Id: If042e4156b8a4bdb27a210c4db94e3a6198aed7d +Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> +(cherry picked from commit 64b7da9dab82713fdcb2e03d8a2715421eae5685) +Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> +--- + src/core/content_browser_client_qt.cpp | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +diff --git a/src/core/content_browser_client_qt.cpp b/src/core/content_browser_client_qt.cpp +index 020ae916af..99a3aa3f4f 100644 +--- a/src/core/content_browser_client_qt.cpp ++++ b/src/core/content_browser_client_qt.cpp +@@ -1237,8 +1237,7 @@ ContentBrowserClientQt::WillCreateURLLoaderRequestInterceptors(content::Navigati + + bool ContentBrowserClientQt::WillInterceptWebSocket(content::RenderFrameHost *frame) + { +- Q_UNUSED(frame); +- return true; // It is probably not worth it to only intercept when interceptors are installed ++ return frame != nullptr; + } + + QWebEngineUrlRequestInterceptor *getProfileInterceptorFromFrame(content::RenderFrameHost *frame) +-- +2.16.3 + diff --git a/dev-qt/qtwebengine/qtwebengine-6.4.0.ebuild b/dev-qt/qtwebengine/qtwebengine-6.4.0.ebuild new file mode 100644 index 000000000000..6b9a8677483e --- /dev/null +++ b/dev-qt/qtwebengine/qtwebengine-6.4.0.ebuild @@ -0,0 +1,245 @@ +# Copyright 2021-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(+)" +CHROMIUM_VER="102.0.5005.177" +CHROMIUM_PATCHES_VER="104.0.5112.102" + +inherit check-reqs estack flag-o-matic multiprocessing python-any-r1 qt6-build + +DESCRIPTION="Library for rendering dynamic web content in Qt6 C++ and QML applications" + +if [[ ${QT6_BUILD_TYPE} == release ]]; then + KEYWORDS="~amd64" +fi + +IUSE=" + alsa bindist designer geolocation +jumbo-build kerberos pulseaudio screencast + +system-ffmpeg +system-icu widgets +" +REQUIRED_USE="designer? ( widgets )" + +BDEPEND=" + $(python_gen_any_dep 'dev-python/html5lib[${PYTHON_USEDEP}]') + dev-util/gperf + dev-util/ninja + dev-util/re2c + net-libs/nodejs[ssl] + sys-devel/bison + sys-devel/flex +" +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/qtdeclarative-${PV}* + =dev-qt/qtwebchannel-${PV}* + media-libs/fontconfig + media-libs/freetype + media-libs/harfbuzz:= + media-libs/lcms:2 + media-libs/libjpeg-turbo:= + media-libs/libpng:= + >=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/libxcb:= + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXi + x11-libs/libxkbcommon + x11-libs/libxkbfile + x11-libs/libXrandr + x11-libs/libXrender + x11-libs/libXScrnSaver + x11-libs/libxshmfence:= + x11-libs/libXtst + alsa? ( media-libs/alsa-lib ) + geolocation? ( =dev-qt/qtpositioning-${PV}* ) + kerberos? ( virtual/krb5 ) + pulseaudio? ( media-libs/libpulse:= ) + screencast? ( media-video/pipewire:= ) + system-ffmpeg? ( media-video/ffmpeg:= ) + system-icu? ( >=dev-libs/icu-69.1:= ) + widgets? ( + =dev-qt/qtbase-${PV}*[widgets] + ) +" +DEPEND="${RDEPEND} + media-libs/libglvnd +" + +PATCHES=( "${FILESDIR}/${PN}-6.4.0-no-websocket-intercept.patch" ) # QTBUG-107144 + +python_check_deps() { + python_has_version "dev-python/html5lib[${PYTHON_USEDEP}]" +} + +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 +} + +pkg_preinst() { + elog "This version of Qt WebEngine is based on Chromium version ${CHROMIUM_VER}, with" + elog "additional security fixes up to ${CHROMIUM_PATCHES_VER}. 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." +} + +src_unpack() { + # bug 307861 + eshopts_push -s extglob + if is-flagq '-g?(gdb)?([1-9])'; then + ewarn + 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." + ewarn + fi + eshopts_pop + + case ${QT6_BUILD_TYPE} in + live) git-r3_src_unpack ;& + release) default ;; + esac +} + +src_prepare() { + # bug 620444 - ensure local headers are used + find . -type f -name "*.pr[fio]" -exec \ + 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 + + qt6-build_src_prepare +} + +src_configure() { + export NINJA_PATH="${BROOT}"/usr/bin/ninja + export NINJAFLAGS="${NINJAFLAGS:--j$(makeopts_jobs) -l$(makeopts_loadavg "${MAKEOPTS}" 0) -v}" + + local mycmakeargs=( + #-DQT_FEATURE_accessibility=off + #-DQT_FEATURE_force_asserts=off + #-DQT_FEATURE_opengl=off + #-DQT_FEATURE_printer=off + -DQT_FEATURE_qtpdf_build=off + -DQT_FEATURE_qtpdf_quick_build=off + -DQT_FEATURE_qtpdf_widgets_build=off + -DQT_FEATURE_qtwebengine_build=on + -DQT_FEATURE_qtwebengine_quick_build=on + -DQT_FEATURE_qtwebengine_widgets_build=on + #-DQT_FEATURE_ssl=off + #-DQT_FEATURE_static=off + #-DQT_FEATURE_system_zlib=off + #-DQT_FEATURE_system_png=off + #-DQT_FEATURE_system_jpeg=off + #-DQT_FEATURE_system_freetype=off + #-DQT_FEATURE_system_harfbuzz=off + #-DQT_FEATURE_use_gold_linker=off + #-DQT_FEATURE_use_lld_linker=off + -DQT_FEATURE_webengine_embedded_build=off + -DQT_FEATURE_webengine_extensions=on + #-DQT_FEATURE_webengine_full_debug_info=$(usex debug) + -DQT_FEATURE_webengine_geolocation=$(usex geolocation on off) + -DQT_FEATURE_webengine_jumbo_build=$(usex jumbo-build) + #-DQT_FEATURE_webengine_jumbo_file_merge_limit + -DQT_FEATURE_webengine_kerberos=$(usex kerberos on off) + -DQT_FEATURE_webengine_native_spellchecker=off + -DQT_FEATURE_webengine_ozone_x11=on + -DQT_FEATURE_webengine_pepper_plugins=on + -DQT_FEATURE_webengine_proprietary_codecs=$(usex bindist off on) + -DQT_FEATURE_webengine_printing_and_pdf=on + -DQT_FEATURE_webengine_sanitizer=on + -DQT_FEATURE_webengine_spellchecker=on + -DQT_FEATURE_webengine_system_opus=on + -DQT_FEATURE_webengine_system_libwebp=on + -DQT_FEATURE_webengine_system_alsa=$(usex alsa on off) + -DQT_FEATURE_webengine_system_ffmpeg=$(usex system-ffmpeg) + -DQT_FEATURE_webengine_system_icu=$(usex system-icu) + -DQT_FEATURE_webengine_system_libevent=on + -DQT_FEATURE_webengine_system_libpci=on + -DQT_FEATURE_webengine_system_libpng=on + -DQT_FEATURE_webengine_system_pulseaudio=$(usex pulseaudio on off) + -DQT_FEATURE_webengine_system_zlib=on + -DQT_FEATURE_webengine_webchannel=on + -DQT_FEATURE_webengine_webrtc=on + -DQT_FEATURE_webengine_webrtc_pipewire=$(usex screencast on off) + #-DQT_FEATURE_xcb=off + ) + + qt6-build_src_configure +} |