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 30D8815A7D9 for ; Wed, 22 Mar 2023 18:46:03 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3D30CE0843; Wed, 22 Mar 2023 18:46:02 +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 07D92E0843 for ; Wed, 22 Mar 2023 18:46:02 +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 A01EE335D35 for ; Wed, 22 Mar 2023 18:46:00 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id BFE1E8D8 for ; Wed, 22 Mar 2023 18:45:58 +0000 (UTC) From: "Andreas Sturmlechner" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Andreas Sturmlechner" Message-ID: <1679510745.2c6246332f42f2c7ea5b95d48ad859b5d6a50eab.asturm@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtwidgets/files/, dev-qt/qtwidgets/ X-VCS-Repository: repo/gentoo X-VCS-Files: dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch dev-qt/qtwidgets/qtwidgets-5.15.8-r4.ebuild X-VCS-Directories: dev-qt/qtwidgets/files/ dev-qt/qtwidgets/ X-VCS-Committer: asturm X-VCS-Committer-Name: Andreas Sturmlechner X-VCS-Revision: 2c6246332f42f2c7ea5b95d48ad859b5d6a50eab X-VCS-Branch: master Date: Wed, 22 Mar 2023 18:45:58 +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: 8985c815-e1d0-49fc-bd88-ec7f796e36f2 X-Archives-Hash: a125c5f672a28961adf7990d50b3c70c commit: 2c6246332f42f2c7ea5b95d48ad859b5d6a50eab Author: Andreas Sturmlechner gentoo org> AuthorDate: Wed Mar 22 10:12:21 2023 +0000 Commit: Andreas Sturmlechner gentoo org> CommitDate: Wed Mar 22 18:45:45 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2c624633 dev-qt/qtwidgets: Fix nullptr crash KDE-bug: https://bugs.kde.org/show_bug.cgi?id=467373 QTBUG: https://bugreports.qt.io/browse/QTBUG-104917 Signed-off-by: Andreas Sturmlechner gentoo.org> .../files/qtwidgets-5.15.8-QTBUG-104917.patch | 54 +++++++++++++++++ dev-qt/qtwidgets/qtwidgets-5.15.8-r4.ebuild | 68 ++++++++++++++++++++++ 2 files changed, 122 insertions(+) diff --git a/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch b/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch new file mode 100644 index 000000000000..fae665b14d2e --- /dev/null +++ b/dev-qt/qtwidgets/files/qtwidgets-5.15.8-QTBUG-104917.patch @@ -0,0 +1,54 @@ +From 38c54b3ff58972fa16810740fc43933620b6dc0d Mon Sep 17 00:00:00 2001 +From: Axel Spoerl +Date: Wed, 27 Jul 2022 15:17:03 +0200 +Subject: [PATCH] Add nullptr guard in + QStyleSheetStyle::drawPrimitive(PE_PanelLineEdit) + +Drawing PE_PanelLineEdit in QStyleSheetStyle with the default argument +widget = nullptr causes a segfault. + +drawPrimitive tries to fall back to a container widget's render rule +and therefore calls containerWidget() - which crashes when called with +nullptr. + +Container widget fallback is pointless when drawPrimitive() is called +with widget == nullptr. This patch skips it in that case. + +Fixes: QTBUG-104917 +Pick-to: 6.4 6.3 6.2 +Change-Id: I09e57dccfebb81a308944c233846d5b9ef58819e +Reviewed-by: Volker Hilsheimer +(cherry picked from commit effc8be3ce848770a093d51d5651908c375e83f8) +--- + src/widgets/styles/qstylesheetstyle.cpp | 15 +++++++++------ + 1 file changed, 9 insertions(+), 6 deletions(-) + +diff --git a/src/widgets/styles/qstylesheetstyle.cpp b/src/widgets/styles/qstylesheetstyle.cpp +index 9fcb8ba522..50fdee0f69 100644 +--- a/src/widgets/styles/qstylesheetstyle.cpp ++++ b/src/widgets/styles/qstylesheetstyle.cpp +@@ -4449,12 +4449,15 @@ void QStyleSheetStyle::drawPrimitive(PrimitiveElement pe, const QStyleOption *op + + case PE_PanelLineEdit: + if (const QStyleOptionFrame *frm = qstyleoption_cast(opt)) { +- QWidget *container = containerWidget(w); +- if (container != w) { +- QRenderRule containerRule = renderRule(container, opt); +- if (!containerRule.hasNativeBorder() || !containerRule.baseStyleCanDraw()) +- return; +- rule = containerRule; ++ // Fall back to container widget's render rule ++ if (w) { ++ QWidget *container = containerWidget(w); ++ if (container != w) { ++ QRenderRule containerRule = renderRule(container, opt); ++ if (!containerRule.hasNativeBorder() || !containerRule.baseStyleCanDraw()) ++ return; ++ rule = containerRule; ++ } + } + + if (rule.hasNativeBorder()) { +-- +2.40.0 + diff --git a/dev-qt/qtwidgets/qtwidgets-5.15.8-r4.ebuild b/dev-qt/qtwidgets/qtwidgets-5.15.8-r4.ebuild new file mode 100644 index 000000000000..45c06643f187 --- /dev/null +++ b/dev-qt/qtwidgets/qtwidgets-5.15.8-r4.ebuild @@ -0,0 +1,68 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +if [[ ${PV} != *9999* ]]; then + QT5_KDEPATCHSET_REV=5 + KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86" +fi + +QT5_MODULE="qtbase" +inherit qt5-build + +DESCRIPTION="Set of components for creating classic desktop-style UIs for the Qt5 framework" + +# keep IUSE defaults in sync with qtgui +IUSE="dbus gles2-only gtk +png +X" +REQUIRED_USE="gtk? ( dbus )" + +DEPEND=" + =dev-qt/qtcore-${QT5_PV}*:5= + =dev-qt/qtgui-${QT5_PV}*:5=[gles2-only=,png=,X?] + dbus? ( =dev-qt/qtdbus-${QT5_PV}* ) + gtk? ( + dev-libs/glib:2 + =dev-qt/qtgui-${QT5_PV}*:5=[dbus] + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/pango + ) +" +RDEPEND="${DEPEND}" + +QT5_TARGET_SUBDIRS=( + src/tools/uic + src/widgets + src/plugins/platformthemes +) + +QT5_GENTOO_CONFIG=( + dbus:xdgdesktopportal: + gtk:gtk3: + ::widgets + !:no-widgets: +) + +QT5_GENTOO_PRIVATE_CONFIG=( + :widgets +) + +PATCHES=( + "${FILESDIR}/${P}-QTBUG-106569.patch" + "${FILESDIR}/${P}-QTBUG-104917.patch" # KDE-bug 467373 +) + +src_configure() { + local myconf=( + -opengl $(usex gles2-only es2 desktop) + $(usev dbus -dbus-linked) + $(qt_use gtk) + -gui + $(qt_use png libpng system) + -widgets + $(qt_use X xcb) + $(usev X '-xcb-xlib -xkbcommon') + ) + qt5-build_src_configure +}