From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 8B8BD15810F for ; Sat, 10 Jun 2023 13:33:14 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id A9800E0900; Sat, 10 Jun 2023 13:33:13 +0000 (UTC) Received: from smtp.gentoo.org (woodpecker.gentoo.org [140.211.166.183]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 84EE7E0900 for ; Sat, 10 Jun 2023 13:33:13 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 494C5341156 for ; Sat, 10 Jun 2023 13:33:12 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 637CAA8E for ; Sat, 10 Jun 2023 13:33:10 +0000 (UTC) From: "Jimi Huotari" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Jimi Huotari" Message-ID: <1686403981.7a57f531764a85be38fdc0577a8df620150fb358.chiitoo@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwebengine/files/, dev-qt/qtwebengine/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-qt/qtwebengine/Manifest dev-qt/qtwebengine/files/qtwebengine-6.5.1-normalise-clipboard-permissions.patch dev-qt/qtwebengine/qtwebengine-6.5.1.ebuild X-VCS-Directories: dev-qt/qtwebengine/files/ dev-qt/qtwebengine/ X-VCS-Committer: chiitoo X-VCS-Committer-Name: Jimi Huotari X-VCS-Revision: 7a57f531764a85be38fdc0577a8df620150fb358 X-VCS-Branch: master Date: Sat, 10 Jun 2023 13:33:10 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: b90f9f49-b48d-4aa0-a049-7b8135512455 X-Archives-Hash: 4d071f543ec427c03b4d97bc8353142e commit: 7a57f531764a85be38fdc0577a8df620150fb358 Author: Jimi Huotari gentoo org> AuthorDate: Tue Jun 6 19:16:25 2023 +0000 Commit: Jimi Huotari gentoo org> CommitDate: Sat Jun 10 13:33:01 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7a57f531 dev-qt/qtwebengine: add 6.5.1 Signed-off-by: Jimi Huotari gentoo.org> dev-qt/qtwebengine/Manifest | 1 + ...ine-6.5.1-normalise-clipboard-permissions.patch | 99 +++++++++ dev-qt/qtwebengine/qtwebengine-6.5.1.ebuild | 246 +++++++++++++++++++++ 3 files changed, 346 insertions(+) diff --git a/dev-qt/qtwebengine/Manifest b/dev-qt/qtwebengine/Manifest index 1641a6908ec3..78e692b2ce43 100644 --- a/dev-qt/qtwebengine/Manifest +++ b/dev-qt/qtwebengine/Manifest @@ -2,3 +2,4 @@ DIST qtwebengine-5.15.2-r1-chromium87-ppc64le.tar.xz 28784 BLAKE2B aa101d14446f3 DIST qtwebengine-5.15.8_p20230313-patchset.tar.xz 45904 BLAKE2B 9f58b9808fd445a06e6a2cd6d5f7bc9782bd6de13138fdebc9e81bd9f69e7ae673a71bd3ed6b011a47e84cc64b5b703a7cfc8d5f740eaaa663da1db8ef9ef05b SHA512 21b0b853358260fa1bdc96c97c5b2af7007c744d10abeebf9f0e708a0cd7dece583d86c0554a4e327a0d615bb403b0d328acaa6622b50d7a8059bc0802edbcec DIST qtwebengine-5.15.9_p20230505.tar.xz 298713240 BLAKE2B 835e93a0b33e7294d72571c9031524a0e3002100e36433501cc83bac91646b788c1030ee9ce90edce39c6ee2ee61a1d697e021b6346804d3be0f0b930e6084d0 SHA512 61d16399a7d8f5c135c5c097c2dcb7ebeccfe7e31769e950443ffa8178f55ad22d90307b7bd2b2ebdcb3ee0dd2064266159c27da4fc5b35ddac346ca9f336cc1 DIST qtwebengine-everywhere-src-6.5.0.tar.xz 411792556 BLAKE2B 42aa5023462ee2db6ef24da1858873897ac5d6bd170adc389617525745708529578dcbcf694d1cadf3b591770f4e925ad24f61500cd13ef90236bda412797cb7 SHA512 02413eaf5e4e4d5d8401bf28ea2362cc9f147cc002c014b1a50daf3dfa092b1c923652eefb0b727e94e36d3d53ddf93b5b4c5e8830986902b34b53a848d7a8e0 +DIST qtwebengine-everywhere-src-6.5.1.tar.xz 412377436 BLAKE2B 1ff179daf1433246b931558f52f1cf193eff4a1d646e6f6037a40fe85fa28cf944b7f361fd68cb01b1247680d376762c2c5317be125f5b24cc08e4bbfa6f0def SHA512 68aae60184af6189b70207a458458a3dab23d49891f12ac57ede01a0eb43c403378e7d85baa074d3b12120624eff78d674cbd9112f7d1be84c33ce9bf95ca428 diff --git a/dev-qt/qtwebengine/files/qtwebengine-6.5.1-normalise-clipboard-permissions.patch b/dev-qt/qtwebengine/files/qtwebengine-6.5.1-normalise-clipboard-permissions.patch new file mode 100644 index 000000000000..7caf202072c7 --- /dev/null +++ b/dev-qt/qtwebengine/files/qtwebengine-6.5.1-normalise-clipboard-permissions.patch @@ -0,0 +1,99 @@ +Qt Upstream: https://code.qt.io/cgit/qt/qtwebengine.git/commit/?h=6.5&id=281174f5e010d819a49562b48b2c2067255a41c6 + +From 281174f5e010d819a49562b48b2c2067255a41c6 Mon Sep 17 00:00:00 2001 +From: Szabolcs David +Date: Fri, 19 May 2023 01:00:41 +0200 +Subject: Normalize clipboard permissions + +Handle clipboard read and write permissions the same way everywhere. + +Fixes: QTBUG-113579 +Change-Id: If1f271e8591c54f4ee2f935486502df19d5f6b3e +Reviewed-by: Allan Sandfeld Jensen +(cherry picked from commit 79e4a37668a9176373e81fe4fc8dfe29f6c8c37b) +Reviewed-by: Qt Cherry-pick Bot +--- + src/core/permission_manager_qt.cpp | 46 +++++++++++++++++++------------------- + 1 file changed, 23 insertions(+), 23 deletions(-) + +diff --git a/src/core/permission_manager_qt.cpp b/src/core/permission_manager_qt.cpp +index 9d98c0592..28e1c981d 100644 +--- a/src/core/permission_manager_qt.cpp ++++ b/src/core/permission_manager_qt.cpp +@@ -84,6 +84,22 @@ static blink::mojom::PermissionStatus toBlink(ProfileAdapter::PermissionState re + } + } + ++static blink::mojom::PermissionStatus getStatusFromSettings(blink::PermissionType type, WebEngineSettings *settings) ++{ ++ switch (type) { ++ case blink::PermissionType::CLIPBOARD_READ_WRITE: ++ if (!settings->testAttribute(QWebEngineSettings::JavascriptCanPaste)) ++ return blink::mojom::PermissionStatus::DENIED; ++ Q_FALLTHROUGH(); ++ case blink::PermissionType::CLIPBOARD_SANITIZED_WRITE: ++ if (!settings->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard)) ++ return blink::mojom::PermissionStatus::DENIED; ++ return blink::mojom::PermissionStatus::GRANTED; ++ default: ++ return blink::mojom::PermissionStatus::ASK; ++ } ++} ++ + PermissionManagerQt::PermissionManagerQt() + : m_requestIdCount(0) + { +@@ -179,13 +195,8 @@ void PermissionManagerQt::RequestPermission(blink::PermissionType permission, + Q_ASSERT(contentsDelegate); + + ProfileAdapter::PermissionType permissionType = toQt(permission); +- if (permissionType == ProfileAdapter::ClipboardRead) { +- WebEngineSettings *settings = contentsDelegate->webEngineSettings(); +- if (settings->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard) +- && settings->testAttribute(QWebEngineSettings::JavascriptCanPaste)) +- std::move(callback).Run(blink::mojom::PermissionStatus::GRANTED); +- else +- std::move(callback).Run(blink::mojom::PermissionStatus::DENIED); ++ if (permissionType == ProfileAdapter::ClipboardRead || permissionType == ProfileAdapter::ClipboardWrite) { ++ std::move(callback).Run(getStatusFromSettings(permission, contentsDelegate->webEngineSettings())); + return; + } else if (!canRequestPermissionFor(permissionType)) { + std::move(callback).Run(blink::mojom::PermissionStatus::DENIED); +@@ -220,14 +231,9 @@ void PermissionManagerQt::RequestPermissions(const std::vectorwebEngineSettings(); +- if (settings->testAttribute(QWebEngineSettings::JavascriptCanAccessClipboard) +- && settings->testAttribute(QWebEngineSettings::JavascriptCanPaste)) +- result.push_back(blink::mojom::PermissionStatus::GRANTED); +- else +- result.push_back(blink::mojom::PermissionStatus::DENIED); +- } else { ++ else if (permissionType == ProfileAdapter::ClipboardRead || permissionType == ProfileAdapter::ClipboardWrite) ++ result.push_back(getStatusFromSettings(permission, contentsDelegate->webEngineSettings())); ++ else { + answerable = false; + break; + } +@@ -280,14 +286,8 @@ blink::mojom::PermissionStatus PermissionManagerQt::GetPermissionStatusForCurren + permission == blink::PermissionType::CLIPBOARD_SANITIZED_WRITE) { + WebContentsDelegateQt *delegate = static_cast( + content::WebContents::FromRenderFrameHost(render_frame_host)->GetDelegate()); +- if (!delegate->webEngineSettings()->testAttribute( +- QWebEngineSettings::JavascriptCanAccessClipboard)) +- return blink::mojom::PermissionStatus::DENIED; +- if (permission == blink::PermissionType::CLIPBOARD_READ_WRITE +- && !delegate->webEngineSettings()->testAttribute( +- QWebEngineSettings::JavascriptCanPaste)) +- return blink::mojom::PermissionStatus::DENIED; +- return blink::mojom::PermissionStatus::GRANTED; ++ Q_ASSERT(delegate); ++ return getStatusFromSettings(permission, delegate->webEngineSettings()); + } + + return GetPermissionStatus( +-- +cgit v1.2.3 + diff --git a/dev-qt/qtwebengine/qtwebengine-6.5.1.ebuild b/dev-qt/qtwebengine/qtwebengine-6.5.1.ebuild new file mode 100644 index 000000000000..93f241ac06e2 --- /dev/null +++ b/dev-qt/qtwebengine/qtwebengine-6.5.1.ebuild @@ -0,0 +1,246 @@ +# Copyright 2021-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) +PYTHON_REQ_USE="xml(+)" +CHROMIUM_VER="108.0.5359.181" +CHROMIUM_PATCHES_VER="112.0.5615.138" + +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-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/openjpeg:2= + 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-icu? ( >=dev-libs/icu-69.1:= ) + widgets? ( + =dev-qt/qtbase-${PV}*[widgets] + ) +" +DEPEND="${RDEPEND} + media-libs/libglvnd +" + +PATCHES=( "${FILESDIR}/${PN}-6.5.1-normalise-clipboard-permissions.patch" ) + +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=off # https://bugs.gentoo.org/831487 + -DQT_FEATURE_webengine_system_icu=$(usex system-icu) + -DQT_FEATURE_webengine_system_libevent=on + -DQT_FEATURE_webengine_system_libopenjpeg2=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 +}