public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-04-15 18:39 Jimi Huotari
  0 siblings, 0 replies; 11+ messages in thread
From: Jimi Huotari @ 2023-04-15 18:39 UTC (permalink / raw
  To: gentoo-commits

commit:     72e1715fd97db6b3e24ceb54efc427a9d45e5808
Author:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 15 18:38:58 2023 +0000
Commit:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
CommitDate: Sat Apr 15 18:38:58 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=72e1715f

dev-qt/qtbase: add 6.5.0

Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>

 dev-qt/qtbase/Manifest                             |   1 +
 ...-6.5.0-setActiveWindow-deprecated-version.patch |  35 ++++
 dev-qt/qtbase/qtbase-6.5.0.ebuild                  | 188 +++++++++++++++++++++
 3 files changed, 224 insertions(+)

diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index 06d185fe31f1..6a809db4d6cb 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1 +1,2 @@
 DIST qtbase-everywhere-src-6.4.3.tar.xz 48078536 BLAKE2B 36d693535479677ca319485634c3eea9dc3c8e8870c8e3cab7693cab601f26c6f792ec056b66488db290defc771b65cdffdea16b420a24ea55e5c4f250119a70 SHA512 a2d0779ba7ee8b8b78f5dc8db06177d04d50463fea7cad0b7785721acfc33dbbbaa1a7bfc052edb90ba1d11b488c30004daa43b6924a97126b9b8f82ad1a7f43
+DIST qtbase-everywhere-src-6.5.0.tar.xz 48020636 BLAKE2B 234000eeb6e1b57a1c7561613bf437453fc2db0d23d5ddd61c38961311a7de5263c086864554aff7a0bc1e5a406af78ef8342eed3c8a5f48b9237912614f380b SHA512 29f70b9a9650afdd8e34703a7a8191feab4c3a25d0bc3a41010ea842389335b24e2685721fdb4a03653475ebd9bf8a8e4f4a77bf5d64b1289590b5ca0e4623f3

diff --git a/dev-qt/qtbase/files/qtbase-6.5.0-setActiveWindow-deprecated-version.patch b/dev-qt/qtbase/files/qtbase-6.5.0-setActiveWindow-deprecated-version.patch
new file mode 100644
index 000000000000..0ba60e01e02a
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.0-setActiveWindow-deprecated-version.patch
@@ -0,0 +1,35 @@
+Upstream commit: https://code.qt.io/cgit/qt/qtbase.git/commit/?h=6.5&id=bbb330c95fd
+
+From bbb330c95fdf6161b23227cb08cec58cca31e465 Mon Sep 17 00:00:00 2001
+From: Nicolas Fella <nicolas.fella@kdab.com>
+Date: Tue, 14 Mar 2023 19:14:41 +0100
+Subject: QApplication: Fix DEPRECATED_VERSION for setActiveWindow
+
+It's not deprecated in 6.4, only 6.5
+
+Change-Id: I86a09b9ce5a7f4d8b1d80a6e67218dfe00f93844
+Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
+(cherry picked from commit 99975ec07feb6b1a9f6be9e0d392a35e40f9550a)
+Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
+---
+ src/widgets/kernel/qapplication.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/widgets/kernel/qapplication.h b/src/widgets/kernel/qapplication.h
+index c4c73d4cf8..fd698fb69f 100644
+--- a/src/widgets/kernel/qapplication.h
++++ b/src/widgets/kernel/qapplication.h
+@@ -79,8 +79,8 @@ public:
+ 
+     static QWidget *activeWindow();
+ 
+-#if QT_DEPRECATED_SINCE(6,4)
+-    QT_DEPRECATED_VERSION_X_6_4("Use QWidget::activateWindow() instead.")
++#if QT_DEPRECATED_SINCE(6, 5)
++    QT_DEPRECATED_VERSION_X_6_5("Use QWidget::activateWindow() instead.")
+     static void setActiveWindow(QWidget* act);
+ #endif
+ 
+-- 
+cgit v1.2.3
+

diff --git a/dev-qt/qtbase/qtbase-6.5.0.ebuild b/dev-qt/qtbase/qtbase-6.5.0.ebuild
new file mode 100644
index 000000000000..38de403b3daf
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.5.0.ebuild
@@ -0,0 +1,188 @@
+# Copyright 2021-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit qt6-build
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64"
+fi
+
+# Qt Modules
+IUSE="+concurrent +dbus +gui +network +sql opengl +widgets +xml zstd"
+REQUIRED_USE="
+	opengl? ( gui )
+	widgets? ( gui )
+	X? ( || ( evdev libinput ) )
+"
+
+QTGUI_IUSE="accessibility egl eglfs evdev gles2-only +jpeg +libinput tslib tuio vulkan +X"
+QTNETWORK_IUSE="brotli gssapi libproxy sctp +ssl vnc"
+QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite"
+IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev"
+# QtPrintSupport = QtGui + QtWidgets enabled.
+# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X
+REQUIRED_USE+="
+	$(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/})
+	$(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/})
+	$(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/})
+	accessibility? ( dbus X )
+	cups? ( gui widgets )
+	eglfs? ( egl )
+	gtk? ( widgets )
+	gui? ( || ( eglfs X ) || ( libinput X ) )
+	libinput? ( udev )
+	sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) )
+	vnc? ( gui )
+	X? ( gles2-only? ( egl ) )
+"
+
+# TODO:
+# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c
+# qtnetwork: connman, networkmanager
+DEPEND="
+	app-crypt/libb2
+	dev-libs/double-conversion:=
+	dev-libs/glib:2
+	dev-libs/libpcre2:=[pcre16,unicode]
+	dev-util/gtk-update-icon-cache
+	media-libs/fontconfig
+	>=media-libs/freetype-2.6.1:2
+	>=media-libs/harfbuzz-1.6.0:=
+	media-libs/tiff:=
+	>=sys-apps/dbus-1.4.20
+	sys-libs/zlib:=
+	brotli? ( app-arch/brotli:= )
+	evdev? ( sys-libs/mtdev )
+	freetds? ( dev-db/freetds )
+	gles2-only? ( media-libs/libglvnd )
+	!gles2-only? ( media-libs/libglvnd[X] )
+	gssapi? ( virtual/krb5 )
+	gtk? (
+		x11-libs/gtk+:3
+		x11-libs/libX11
+		x11-libs/pango
+	)
+	gui? ( media-libs/libpng:= )
+	icu? ( dev-libs/icu:= )
+	!icu? ( virtual/libiconv )
+	jpeg? ( media-libs/libjpeg-turbo:= )
+	libinput? (
+		dev-libs/libinput:=
+		>=x11-libs/libxkbcommon-0.5.0
+	)
+	libproxy? ( net-libs/libproxy )
+	mysql? ( dev-db/mysql-connector-c:= )
+	oci8? ( dev-db/oracle-instantclient:=[sdk] )
+	odbc? ( dev-db/unixODBC )
+	postgres? ( dev-db/postgresql:* )
+	sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
+	sqlite? ( dev-db/sqlite:3 )
+	ssl? ( dev-libs/openssl:= )
+	systemd? ( sys-apps/systemd:= )
+	tslib? ( >=x11-libs/tslib-1.21 )
+	udev? ( virtual/libudev:= )
+	vulkan? ( dev-util/vulkan-headers )
+	X? (
+		x11-libs/libdrm
+		x11-libs/libICE
+		x11-libs/libSM
+		x11-libs/libX11
+		>=x11-libs/libxcb-1.12:=
+		>=x11-libs/libxkbcommon-0.5.0[X]
+		x11-libs/xcb-util-image
+		x11-libs/xcb-util-keysyms
+		x11-libs/xcb-util-renderutil
+		x11-libs/xcb-util-wm
+	)
+	zstd? ( app-arch/zstd:= )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-6.5.0-setActiveWindow-deprecated-version.patch" )
+
+src_configure() {
+	local mycmakeargs=(
+		-DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR}
+		-DINSTALL_BINDIR=${QT6_BINDIR}
+		-DINSTALL_DATADIR=${QT6_DATADIR}
+		-DINSTALL_DOCDIR=${QT6_DOCDIR}
+		-DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR}
+		-DINSTALL_INCLUDEDIR=${QT6_HEADERDIR}
+		-DINSTALL_LIBDIR=${QT6_LIBDIR}
+		-DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR}
+		-DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs
+		-DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR}
+		-DINSTALL_QMLDIR=${QT6_QMLDIR}
+		-DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR}
+		-DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR}
+		-DQT_FEATURE_androiddeployqt=OFF
+		$(qt_feature concurrent)
+		$(qt_feature dbus)
+		$(qt_feature gui)
+		$(qt_feature gui testlib)
+		$(qt_feature icu)
+		$(qt_feature network)
+		$(qt_feature sql)
+		$(qt_feature systemd journald)
+		$(qt_feature udev libudev)
+		$(qt_feature xml)
+		$(qt_feature zstd)
+	)
+	use gui && mycmakeargs+=(
+		$(qt_feature accessibility accessibility_atspi_bridge)
+		$(qt_feature egl)
+		$(qt_feature egl xcb_egl_plugin)
+		$(qt_feature eglfs eglfs_egldevice)
+		$(qt_feature eglfs eglfs_gbm)
+		$(qt_feature evdev)
+		$(qt_feature evdev mtdev)
+		-DQT_FEATURE_gif=ON
+		$(qt_feature jpeg)
+		$(qt_feature opengl)
+		$(qt_feature gles2-only opengles2)
+		$(qt_feature libinput)
+		$(qt_feature tslib)
+		$(qt_feature tuio tuiotouch)
+		$(qt_feature vulkan)
+		$(qt_feature widgets)
+		$(qt_feature X xcb)
+		$(qt_feature X xcb_xlib)
+	)
+	use widgets && mycmakeargs+=(
+		$(qt_feature cups)
+		$(qt_feature gtk gtk3)
+	)
+	if use libinput || use X; then
+		mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON )
+	fi
+	use network && mycmakeargs+=(
+		$(qt_feature brotli)
+		$(qt_feature gssapi)
+		$(qt_feature libproxy)
+		$(qt_feature sctp)
+		$(qt_feature ssl openssl)
+		$(qt_feature vnc)
+	)
+	use sql && mycmakeargs+=(
+		$(qt_feature freetds sql_tds)
+		$(qt_feature mysql sql_mysql)
+		$(qt_feature oci8 sql_oci)
+		$(qt_feature odbc sql_odbc)
+		$(qt_feature postgres sql_psql)
+		$(qt_feature sqlite sql_sqlite)
+		$(qt_feature sqlite system_sqlite)
+	)
+
+	qt6-build_src_configure
+}
+
+src_install() {
+	qt6-build_src_install
+
+	# https://bugs.gentoo.org/863395
+	qt6_symlink_binary_to_path qmake 6
+}


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-07-26 13:31 Jimi Huotari
  0 siblings, 0 replies; 11+ messages in thread
From: Jimi Huotari @ 2023-07-26 13:31 UTC (permalink / raw
  To: gentoo-commits

commit:     14516d8afc141ef1bb025e3e5fc83226136d9394
Author:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 26 13:23:21 2023 +0000
Commit:     Jimi Huotari <chiitoo <AT> gentoo <DOT> org>
CommitDate: Wed Jul 26 13:30:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=14516d8a

dev-qt/qtbase: drop 6.5.1-r1

Closes: https://bugs.gentoo.org/908384
Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org>

 dev-qt/qtbase/Manifest                             |   1 -
 .../qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch |  54 ------
 dev-qt/qtbase/qtbase-6.5.1-r1.ebuild               | 190 ---------------------
 3 files changed, 245 deletions(-)

diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index f18d34b4b586..9476478fb0bf 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,2 +1 @@
-DIST qtbase-everywhere-src-6.5.1.tar.xz 48287392 BLAKE2B 47872492f21a936d980891c28df61591380bc236adc66b57a90fbb87dd292cdeb3c632fb1159231ba40142d25e02944e4c5e8568153f1286e0a1abc8c5b26699 SHA512 7f7b20bbc25cda65266d6067cdd68e3e077636988d67dbf5783f79a61186135fb3a36d57ac72cfe4501012035b630ab1f5849148e4817726d4f459fa1937e91a
 DIST qtbase-everywhere-src-6.5.2.tar.xz 48410716 BLAKE2B 578c69ede6f45a8b21cba0a24674d5d8801722503d13ab9578b06b2446ce15e6a84bcdbd0c5d2c9aa868ec70862f0845406c959ed79b695f82bb398ecf299c63 SHA512 8d97029aae5b73a3e03624c9a8495dbf2fe54a4f5e992071c06f3d93935e64c80f2121b33eeb60a92d96ceb288cb25d74906a5bf47b45bb018d859d4a2d13f20

diff --git a/dev-qt/qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch b/dev-qt/qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch
deleted file mode 100644
index 6f1264709e01..000000000000
--- a/dev-qt/qtbase/files/qtbase-6.5.1-CVE-2023-34410.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From: https://lists.qt-project.org/pipermail/development/2023-June/044031.html
-
---- a/src/plugins/tls/schannel/qtls_schannel.cpp
-+++ b/src/plugins/tls/schannel/qtls_schannel.cpp
-@@ -2106,6 +2106,27 @@ bool TlsCryptographSchannel::verifyCertContext(CERT_CONTEXT *certContext)
-         verifyDepth = DWORD(q->peerVerifyDepth());
-
-     const auto &caCertificates = q->sslConfiguration().caCertificates();
-+
-+    if (!rootCertOnDemandLoadingAllowed()
-+            && !(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_PARTIAL_CHAIN)
-+            && (q->peerVerifyMode() == QSslSocket::VerifyPeer
-+                    || (isClient && q->peerVerifyMode() == QSslSocket::AutoVerifyPeer))) {
-+        // When verifying a peer Windows "helpfully" builds a chain that
-+        // may include roots from the system store. But we don't want that if
-+        // the user has set their own CA certificates.
-+        // Since Windows claims this is not a partial chain the root is included
-+        // and we have to check that it is one of our configured CAs.
-+        CERT_CHAIN_ELEMENT *element = chain->rgpElement[chain->cElement - 1];
-+        QSslCertificate certificate = getCertificateFromChainElement(element);
-+        if (!caCertificates.contains(certificate)) {
-+            auto error = QSslError(QSslError::CertificateUntrusted, certificate);
-+            sslErrors += error;
-+            emit q->peerVerifyError(error);
-+            if (q->state() != QAbstractSocket::ConnectedState)
-+                return false;
-+        }
-+    }
-+
-     QList<QSslCertificate> peerCertificateChain;
-     for (DWORD i = 0; i < verifyDepth; i++) {
-         CERT_CHAIN_ELEMENT *element = chain->rgpElement[i];
-
---- a/src/network/ssl/qsslsocket.cpp
-+++ b/src/network/ssl/qsslsocket.cpp
-@@ -1973,6 +1973,10 @@ QSslSocketPrivate::QSslSocketPrivate()
-     , flushTriggered(false)
- {
-     QSslConfigurationPrivate::deepCopyDefaultConfiguration(&configuration);
-+    // If the global configuration doesn't allow root certificates to be loaded
-+    // on demand then we have to disable it for this socket as well.
-+    if (!configuration.allowRootCertOnDemandLoading)
-+        allowRootCertOnDemandLoading = false;
-
-     const auto *tlsBackend = tlsBackendInUse();
-     if (!tlsBackend) {
-@@ -2281,6 +2285,7 @@ void QSslConfigurationPrivate::deepCopyDefaultConfiguration(QSslConfigurationPri
-     ptr->sessionProtocol = global->sessionProtocol;
-     ptr->ciphers = global->ciphers;
-     ptr->caCertificates = global->caCertificates;
-+    ptr->allowRootCertOnDemandLoading = global->allowRootCertOnDemandLoading;
-     ptr->protocol = global->protocol;
-     ptr->peerVerifyMode = global->peerVerifyMode;
-     ptr->peerVerifyDepth = global->peerVerifyDepth;

diff --git a/dev-qt/qtbase/qtbase-6.5.1-r1.ebuild b/dev-qt/qtbase/qtbase-6.5.1-r1.ebuild
deleted file mode 100644
index 4bcdc55ce530..000000000000
--- a/dev-qt/qtbase/qtbase-6.5.1-r1.ebuild
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit qt6-build
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
-	KEYWORDS="~amd64"
-fi
-
-# Qt Modules
-IUSE="+concurrent +dbus +gui +network +sql opengl +widgets +xml zstd"
-REQUIRED_USE="
-	opengl? ( gui )
-	widgets? ( gui )
-	X? ( || ( evdev libinput ) )
-"
-
-QTGUI_IUSE="accessibility egl eglfs evdev gles2-only +jpeg +libinput tslib tuio vulkan +X"
-QTNETWORK_IUSE="brotli gssapi libproxy sctp +ssl vnc"
-QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite"
-IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev wayland"
-# QtPrintSupport = QtGui + QtWidgets enabled.
-# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X
-REQUIRED_USE+="
-	$(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/})
-	$(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/})
-	$(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/})
-	accessibility? ( dbus X )
-	cups? ( gui widgets )
-	eglfs? ( egl )
-	gtk? ( widgets )
-	gui? ( || ( eglfs X ) || ( libinput X ) )
-	libinput? ( udev )
-	sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) )
-	vnc? ( gui )
-	X? ( gles2-only? ( egl ) )
-"
-
-# TODO:
-# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c
-# qtnetwork: connman, networkmanager
-DEPEND="
-	app-crypt/libb2
-	dev-libs/double-conversion:=
-	dev-libs/glib:2
-	dev-libs/libpcre2:=[pcre16,unicode]
-	dev-util/gtk-update-icon-cache
-	media-libs/fontconfig
-	>=media-libs/freetype-2.6.1:2
-	>=media-libs/harfbuzz-1.6.0:=
-	media-libs/tiff:=
-	>=sys-apps/dbus-1.4.20
-	sys-libs/zlib:=
-	brotli? ( app-arch/brotli:= )
-	evdev? ( sys-libs/mtdev )
-	freetds? ( dev-db/freetds )
-	gles2-only? ( media-libs/libglvnd )
-	!gles2-only? ( media-libs/libglvnd[X] )
-	gssapi? ( virtual/krb5 )
-	gtk? (
-		x11-libs/gtk+:3
-		x11-libs/libX11
-		x11-libs/pango
-	)
-	gui? ( media-libs/libpng:= )
-	icu? ( dev-libs/icu:= )
-	!icu? ( virtual/libiconv )
-	jpeg? ( media-libs/libjpeg-turbo:= )
-	libinput? (
-		dev-libs/libinput:=
-		>=x11-libs/libxkbcommon-0.5.0
-	)
-	libproxy? ( net-libs/libproxy )
-	mysql? ( dev-db/mysql-connector-c:= )
-	oci8? ( dev-db/oracle-instantclient:=[sdk] )
-	odbc? ( dev-db/unixODBC )
-	postgres? ( dev-db/postgresql:* )
-	sctp? ( kernel_linux? ( net-misc/lksctp-tools ) )
-	sqlite? ( dev-db/sqlite:3 )
-	ssl? ( dev-libs/openssl:= )
-	systemd? ( sys-apps/systemd:= )
-	tslib? ( >=x11-libs/tslib-1.21 )
-	udev? ( virtual/libudev:= )
-	vulkan? ( dev-util/vulkan-headers )
-	X? (
-		x11-libs/libdrm
-		x11-libs/libICE
-		x11-libs/libSM
-		x11-libs/libX11
-		>=x11-libs/libxcb-1.12:=
-		>=x11-libs/libxkbcommon-0.5.0[X]
-		x11-libs/xcb-util-cursor
-		x11-libs/xcb-util-image
-		x11-libs/xcb-util-keysyms
-		x11-libs/xcb-util-renderutil
-		x11-libs/xcb-util-wm
-	)
-	zstd? ( app-arch/zstd:= )
-"
-RDEPEND="${DEPEND}"
-PDEPEND="wayland? ( =dev-qt/qtwayland-${PV}* )"
-
-PATCHES=( "${FILESDIR}/${PN}-6.5.1-CVE-2023-34410.patch" )
-
-src_configure() {
-	local mycmakeargs=(
-		-DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR}
-		-DINSTALL_BINDIR=${QT6_BINDIR}
-		-DINSTALL_DATADIR=${QT6_DATADIR}
-		-DINSTALL_DOCDIR=${QT6_DOCDIR}
-		-DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR}
-		-DINSTALL_INCLUDEDIR=${QT6_HEADERDIR}
-		-DINSTALL_LIBDIR=${QT6_LIBDIR}
-		-DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR}
-		-DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs
-		-DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR}
-		-DINSTALL_QMLDIR=${QT6_QMLDIR}
-		-DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR}
-		-DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR}
-		-DQT_FEATURE_androiddeployqt=OFF
-		$(qt_feature concurrent)
-		$(qt_feature dbus)
-		$(qt_feature gui)
-		$(qt_feature gui testlib)
-		$(qt_feature icu)
-		$(qt_feature network)
-		$(qt_feature sql)
-		$(qt_feature systemd journald)
-		$(qt_feature udev libudev)
-		$(qt_feature xml)
-		$(qt_feature zstd)
-	)
-	use gui && mycmakeargs+=(
-		$(qt_feature accessibility accessibility_atspi_bridge)
-		$(qt_feature egl)
-		$(qt_feature egl xcb_egl_plugin)
-		$(qt_feature eglfs eglfs_egldevice)
-		$(qt_feature eglfs eglfs_gbm)
-		$(qt_feature evdev)
-		$(qt_feature evdev mtdev)
-		-DQT_FEATURE_gif=ON
-		$(qt_feature jpeg)
-		$(qt_feature opengl)
-		$(qt_feature gles2-only opengles2)
-		$(qt_feature libinput)
-		$(qt_feature tslib)
-		$(qt_feature tuio tuiotouch)
-		$(qt_feature vulkan)
-		$(qt_feature widgets)
-		$(qt_feature X xcb)
-		$(qt_feature X xcb_xlib)
-	)
-	use widgets && mycmakeargs+=(
-		$(qt_feature cups)
-		$(qt_feature gtk gtk3)
-	)
-	if use libinput || use X; then
-		mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON )
-	fi
-	use network && mycmakeargs+=(
-		$(qt_feature brotli)
-		$(qt_feature gssapi)
-		$(qt_feature libproxy)
-		$(qt_feature sctp)
-		$(qt_feature ssl openssl)
-		$(qt_feature vnc)
-	)
-	use sql && mycmakeargs+=(
-		$(qt_feature freetds sql_tds)
-		$(qt_feature mysql sql_mysql)
-		$(qt_feature oci8 sql_oci)
-		$(qt_feature odbc sql_odbc)
-		$(qt_feature postgres sql_psql)
-		$(qt_feature sqlite sql_sqlite)
-		$(qt_feature sqlite system_sqlite)
-	)
-
-	qt6-build_src_configure
-}
-
-src_install() {
-	qt6-build_src_install
-
-	# https://bugs.gentoo.org/863395
-	qt6_symlink_binary_to_path qmake 6
-}


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-09-14 20:15 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2023-09-14 20:15 UTC (permalink / raw
  To: gentoo-commits

commit:     4d490887059ff73ebd7ad9d76348c001d02c5ef5
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Sep 14 20:08:52 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Sep 14 20:14:09 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4d490887

dev-qt/qtbase: skip build dir's symlink check

Closes: https://bugs.gentoo.org/914195
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtbase/files/qtbase-6.5.2-no-symlink-check.patch | 5 +++++
 dev-qt/qtbase/qtbase-6.5.2-r2.ebuild                    | 1 +
 dev-qt/qtbase/qtbase-6.5.9999.ebuild                    | 4 ++++
 dev-qt/qtbase/qtbase-6.6.9999.ebuild                    | 4 ++++
 dev-qt/qtbase/qtbase-6.9999.ebuild                      | 4 ++++
 5 files changed, 18 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-no-symlink-check.patch b/dev-qt/qtbase/files/qtbase-6.5.2-no-symlink-check.patch
new file mode 100644
index 000000000000..815fd3955420
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-no-symlink-check.patch
@@ -0,0 +1,5 @@
+https://bugs.gentoo.org/914195
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -65 +64,0 @@
+-qt_internal_check_if_path_has_symlinks("${CMAKE_BINARY_DIR}")

diff --git a/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild b/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
index fdddf8ec8f89..f0eca7d2ab6c 100644
--- a/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
@@ -129,6 +129,7 @@ PDEPEND="
 "
 
 PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${P}-CVE-2023-38197.patch
 	"${FILESDIR}"/${P}-tests-gcc13.patch
 )

diff --git a/dev-qt/qtbase/qtbase-6.5.9999.ebuild b/dev-qt/qtbase/qtbase-6.5.9999.ebuild
index bf8d33b74e87..d7374a33f357 100644
--- a/dev-qt/qtbase/qtbase-6.5.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.9999.ebuild
@@ -128,6 +128,10 @@ PDEPEND="
 	wayland? ( ~dev-qt/qtwayland-${PV}:6 )
 "
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
+)
+
 src_prepare() {
 	qt6-build_src_prepare
 

diff --git a/dev-qt/qtbase/qtbase-6.6.9999.ebuild b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
index 980755e275ba..8580c287a200 100644
--- a/dev-qt/qtbase/qtbase-6.6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
@@ -128,6 +128,10 @@ PDEPEND="
 	wayland? ( ~dev-qt/qtwayland-${PV}:6 )
 "
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
+)
+
 src_prepare() {
 	qt6-build_src_prepare
 

diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild b/dev-qt/qtbase/qtbase-6.9999.ebuild
index b5545709934f..b02ce128351b 100644
--- a/dev-qt/qtbase/qtbase-6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.9999.ebuild
@@ -130,6 +130,10 @@ PDEPEND="
 	wayland? ( ~dev-qt/qtwayland-${PV}:6 )
 "
 
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
+)
+
 src_prepare() {
 	qt6-build_src_prepare
 


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-09-19  3:02 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2023-09-19  3:02 UTC (permalink / raw
  To: gentoo-commits

commit:     7f6c7b9be96640df5b5e0fad5807990651ffb315
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 19 02:57:21 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Sep 19 02:59:48 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f6c7b9b

dev-qt/qtbase: import hppa forkfd fix from debian

Some of bug #914371's issues could (ideally) still need looking
into/attention, but believe reasonable to close for now and allow
keywording assuming did not overlook anything.

Closes: https://bugs.gentoo.org/914371
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../qtbase-6.5.2-hppa-forkfd-grow-stack.patch      | 28 ++++++++++++++++++++++
 dev-qt/qtbase/qtbase-6.5.2-r2.ebuild               |  1 +
 dev-qt/qtbase/qtbase-6.5.9999.ebuild               |  1 +
 dev-qt/qtbase/qtbase-6.6.9999.ebuild               |  1 +
 dev-qt/qtbase/qtbase-6.9999.ebuild                 |  1 +
 5 files changed, 32 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch b/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
new file mode 100644
index 000000000000..ccada9f80e34
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.2-hppa-forkfd-grow-stack.patch
@@ -0,0 +1,28 @@
+Patch taken from Debian[1], largely broken on HPPA without and several
+tests give segmentation faults[2].
+
+Needs upstreaming if someone familiar with HPPA wants to give this
+attention. Note forkfd is essentially maintained in qtbase's repo[3]
+rather than truly third party.
+
+[1] https://bugs.debian.org/1042018
+[2] https://bugs.gentoo.org/914371
+[3] https://code.qt.io/cgit/qt/qtbase.git/tree/src/3rdparty/forkfd
+
+Description: Change how stack grows on HPPA.
+ On HPPA stack grows upwards. This patch introduces this change for
+ this 3rd party code.
+Author: John David Anglin <dave.anglin@bell.net>
+--- a/src/3rdparty/forkfd/forkfd_linux.c
++++ b/src/3rdparty/forkfd/forkfd_linux.c
+@@ -170,5 +170,10 @@
+     *system = 1;
+ 
++#if defined(__hppa__)
++    /* Stack grows up */
++    pid = clone(childFn, childStack, cloneflags, token, &pidfd, NULL, NULL);
++#else
+     pid = clone(childFn, childStack + sizeof(childStack), cloneflags, token, &pidfd, NULL, NULL);
++#endif
+     if (pid < 0)
+         return pid;

diff --git a/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild b/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
index c47ffa70d566..add31f2972ab 100644
--- a/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
@@ -130,6 +130,7 @@ PDEPEND="
 "
 
 PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${P}-CVE-2023-38197.patch
 	"${FILESDIR}"/${P}-tests-gcc13.patch

diff --git a/dev-qt/qtbase/qtbase-6.5.9999.ebuild b/dev-qt/qtbase/qtbase-6.5.9999.ebuild
index a5e477d6c8c6..9511c2c54404 100644
--- a/dev-qt/qtbase/qtbase-6.5.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.9999.ebuild
@@ -130,6 +130,7 @@ PDEPEND="
 "
 
 PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 )
 

diff --git a/dev-qt/qtbase/qtbase-6.6.9999.ebuild b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
index ba01c16ca68f..87e7e43c198a 100644
--- a/dev-qt/qtbase/qtbase-6.6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
@@ -130,6 +130,7 @@ PDEPEND="
 "
 
 PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 )
 

diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild b/dev-qt/qtbase/qtbase-6.9999.ebuild
index 21e519807742..0df3665e86a0 100644
--- a/dev-qt/qtbase/qtbase-6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.9999.ebuild
@@ -132,6 +132,7 @@ PDEPEND="
 "
 
 PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 )
 


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-10-21  6:22 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2023-10-21  6:22 UTC (permalink / raw
  To: gentoo-commits

commit:     9152c25f592db19e2d6f6ab0aab991a463503a34
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Sat Oct 21 05:46:22 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Sat Oct 21 06:21:50 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9152c25f

dev-qt/qtbase: fix qsb and qmake with sandbox

Also add to 6.5.3, while the issue has been less prominent in
6.5.x, there has been users that ran into issues with older
versions, and is needed for stable users.

See bug #915695 for details, the others are essentially duplicates
which are hopefully fixed too (please report if still issues given
I could never reproduce myself and cannot confirm).

Closes: https://bugs.gentoo.org/908809
Closes: https://bugs.gentoo.org/908816
Closes: https://bugs.gentoo.org/913493
Closes: https://bugs.gentoo.org/915695
Thanks-to: vowstar
Thanks-to: Mike Gilbert <floppym <AT> gentoo.org>
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../qtbase-6.5.3-forkfd-childstack-size.patch      | 27 ++++++++++++++++++++++
 ...{qtbase-6.5.3.ebuild => qtbase-6.5.3-r1.ebuild} |  1 +
 ...{qtbase-6.6.0.ebuild => qtbase-6.6.0-r1.ebuild} |  1 +
 3 files changed, 29 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.5.3-forkfd-childstack-size.patch b/dev-qt/qtbase/files/qtbase-6.5.3-forkfd-childstack-size.patch
new file mode 100644
index 000000000000..34cbec61895b
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.5.3-forkfd-childstack-size.patch
@@ -0,0 +1,27 @@
+Avoid crash that happens for some users in qsb, qmake, and
+potentially other Qt tools when ran under sandbox leading
+to build failures for qtdeclarative and other packages.
+
+Note that this is the initial (simple) version of the patch
+to ensure no issues, a more proper fix should land upstream
+eventually.
+
+https://bugs.gentoo.org/908809
+https://bugs.gentoo.org/908816
+https://bugs.gentoo.org/913493
+https://bugs.gentoo.org/915695
+https://codereview.qt-project.org/c/qt/qtbase/+/513140
+From: Huang Rui <vowstar@users.noreply.github.com>
+Date: Fri, 20 Oct 2023 10:16:01 +0800
+Subject: [PATCH] folkfd_linux,c: set stack size to 8192
+--- a/src/3rdparty/forkfd/forkfd_linux.c
++++ b/src/3rdparty/forkfd/forkfd_linux.c
+@@ -157,7 +157,7 @@ static int system_forkfd_pidfd_set_flags(int pidfd, int flags)
+ 
+ int system_vforkfd(int flags, pid_t *ppid, int (*childFn)(void *), void *token, int *system)
+ {
+-    __attribute__((aligned(64))) char childStack[4096];
++    __attribute__((aligned(64))) char childStack[8192];
+     pid_t pid;
+     int pidfd;
+     unsigned long cloneflags = CLONE_PIDFD | CLONE_VFORK | CLONE_VM | SIGCHLD;

diff --git a/dev-qt/qtbase/qtbase-6.5.3.ebuild b/dev-qt/qtbase/qtbase-6.5.3-r1.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.5.3.ebuild
rename to dev-qt/qtbase/qtbase-6.5.3-r1.ebuild
index e58d9d0e80e4..b166e0302241 100644
--- a/dev-qt/qtbase/qtbase-6.5.3.ebuild
+++ b/dev-qt/qtbase/qtbase-6.5.3-r1.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.5.3-xkbcommon160.patch
+	"${FILESDIR}"/${PN}-6.5.3-forkfd-childstack-size.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.6.0.ebuild b/dev-qt/qtbase/qtbase-6.6.0-r1.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.6.0.ebuild
rename to dev-qt/qtbase/qtbase-6.6.0-r1.ebuild
index d41f291526d3..044f46b80925 100644
--- a/dev-qt/qtbase/qtbase-6.6.0.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.0-r1.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.5.3-xkbcommon160.patch
+	"${FILESDIR}"/${PN}-6.5.3-forkfd-childstack-size.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2023-11-15 19:28 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2023-11-15 19:28 UTC (permalink / raw
  To: gentoo-commits

commit:     785817491b48b00f3710438c983e97aab7d23a69
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Nov 15 18:01:04 2023 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Nov 15 19:27:59 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=78581749

dev-qt/qtbase: drop 6.5.2-r2

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtbase/Manifest                             |   1 -
 .../qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch | 404 ---------------------
 dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch |  25 --
 dev-qt/qtbase/qtbase-6.5.2-r2.ebuild               | 351 ------------------
 4 files changed, 781 deletions(-)

diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest
index b6ec5a5ee2e7..50d58187908e 100644
--- a/dev-qt/qtbase/Manifest
+++ b/dev-qt/qtbase/Manifest
@@ -1,3 +1,2 @@
-DIST qtbase-everywhere-src-6.5.2.tar.xz 48410716 BLAKE2B 578c69ede6f45a8b21cba0a24674d5d8801722503d13ab9578b06b2446ce15e6a84bcdbd0c5d2c9aa868ec70862f0845406c959ed79b695f82bb398ecf299c63 SHA512 8d97029aae5b73a3e03624c9a8495dbf2fe54a4f5e992071c06f3d93935e64c80f2121b33eeb60a92d96ceb288cb25d74906a5bf47b45bb018d859d4a2d13f20
 DIST qtbase-everywhere-src-6.5.3.tar.xz 47142456 BLAKE2B 5b4c774b7199563dc7f2aebf9b2b531d851ee49bc038212f4970eeb43a17c364710432708f82a518eee6692ab123d78b642c234d9548d5b553f689a43aa05ee6 SHA512 31c6c01d466f1e01f18d6dcee593360c08ee83ad0a6be495a8eba023faad628cf07ce7285426fabfd247db306319e9a64da329682c99a712a282e32f7493cdb9
 DIST qtbase-everywhere-src-6.6.0.tar.xz 48350308 BLAKE2B 719e265dfafb4fd95f972a317acb95e2d83f8d62175c28ab97837c635435bdcd79bdca113362dea2f04dab799d4749e23056ddb9583908ee20ab23cedeca19b7 SHA512 4e85acefeddc0a3cd6ba615b4768f435c4e237a605172153a1777a10285dab83d9cf220c18ce6d723d051b8b432f3e92be94925b54c2eb972c2c1d9ace849e17

diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch b/dev-qt/qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch
deleted file mode 100644
index 220e94d9ca2f..000000000000
--- a/dev-qt/qtbase/files/qtbase-6.5.2-CVE-2023-38197.patch
+++ /dev/null
@@ -1,404 +0,0 @@
-Upstream: https://codereview.qt-project.org/c/qt/qtbase/+/490550
-Upstream: https://lists.qt-project.org/pipermail/development/2023-July/044166.html
-
-From c216c3d9859a20b3aeec985512e89316423fc3a8 Mon Sep 17 00:00:00 2001
-From: Axel Spoerl <axel.spoerl@qt.io>
-Date: Fri, 30 Jun 2023 12:43:59 +0200
-Subject: [PATCH] QXmlStreamReader: Raise error on unexpected tokens
-
-QXmlStreamReader accepted multiple DOCTYPE elements, containing DTD
-fragments in the XML prolog, and in the XML body.
-Well-formed but invalid XML files - with multiple DTD fragments in
-prolog and body, combined with recursive entity expansions - have
-caused infinite loops in QXmlStreamReader.
-
-This patch implements a token check in QXmlStreamReader.
-A stream is allowed to start with an XML prolog. StartDocument
-and DOCTYPE elements are only allowed in this prolog, which
-may also contain ProcessingInstruction and Comment elements.
-As soon as anything else is seen, the prolog ends.
-After that, the prolog-specific elements are treated as unexpected.
-Furthermore, the prolog can contain at most one DOCTYPE element.
-
-Update the documentation to reflect the new behavior.
-Add an autotest that checks the new error cases are correctly detected,
-and no error is raised for legitimate input.
-
-The original OSS-Fuzz files (see bug reports) are not included in this
-patch for file size reasons. They have been tested manually. Each of
-them has more than one DOCTYPE element, causing infinite loops in
-recursive entity expansions. The newly implemented functionality
-detects those invalid DTD fragments. By raising an error, it aborts
-stream reading before an infinite loop occurs.
-
-Thanks to OSS-Fuzz for finding this.
-
-Fixes: QTBUG-92113
-Fixes: QTBUG-95188
-Change-Id: I0a082b9188b2eee50b396c4d5b1c9e1fd237bbdd
-Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
-(cherry picked from commit c4301be7d5f94852e1b17f2c2989d5ca807855d4)
----
- src/corelib/serialization/qxmlstream.cpp           | 145 +++++++++++++++++++--
- src/corelib/serialization/qxmlstream_p.h           |  11 ++
- .../qxmlstream/tokenError/dtdInBody.xml            |  20 +++
- .../qxmlstream/tokenError/multipleDtd.xml          |  20 +++
- .../qxmlstream/tokenError/wellFormed.xml           |  15 +++
- .../serialization/qxmlstream/tst_qxmlstream.cpp    |  39 ++++++
- 6 files changed, 242 insertions(+), 8 deletions(-)
- create mode 100644 tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml
- create mode 100644 tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml
- create mode 100644 tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml
-
-diff --git a/src/corelib/serialization/qxmlstream.cpp b/src/corelib/serialization/qxmlstream.cpp
-index 6e34d4da6e5a..cf46d690f122 100644
---- a/src/corelib/serialization/qxmlstream.cpp
-+++ b/src/corelib/serialization/qxmlstream.cpp
-@@ -185,7 +185,7 @@ WRAP(indexOf, QLatin1StringView)
-     addData() or by waiting for it to arrive on the device().
- 
-     \value UnexpectedElementError The parser encountered an element
--    that was different to those it expected.
-+    or token that was different to those it expected.
- 
- */
- 
-@@ -322,13 +322,34 @@ QXmlStreamEntityResolver *QXmlStreamReader::entityResolver() const
- 
-   QXmlStreamReader is a well-formed XML 1.0 parser that does \e not
-   include external parsed entities. As long as no error occurs, the
--  application code can thus be assured that the data provided by the
--  stream reader satisfies the W3C's criteria for well-formed XML. For
--  example, you can be certain that all tags are indeed nested and
--  closed properly, that references to internal entities have been
--  replaced with the correct replacement text, and that attributes have
--  been normalized or added according to the internal subset of the
--  DTD.
-+  application code can thus be assured, that
-+  \list
-+  \li the data provided by the stream reader satisfies the W3C's
-+      criteria for well-formed XML,
-+  \li tokens are provided in a valid order.
-+  \endlist
-+
-+  Unless QXmlStreamReader raises an error, it guarantees the following:
-+  \list
-+  \li All tags are nested and closed properly.
-+  \li References to internal entities have been replaced with the
-+      correct replacement text.
-+  \li Attributes have been normalized or added according to the
-+      internal subset of the \l DTD.
-+  \li Tokens of type \l StartDocument happen before all others,
-+      aside from comments and processing instructions.
-+  \li At most one DOCTYPE element (a token of type \l DTD) is present.
-+  \li If present, the DOCTYPE appears before all other elements,
-+      aside from StartDocument, comments and processing instructions.
-+  \endlist
-+
-+  In particular, once any token of type \l StartElement, \l EndElement,
-+  \l Characters, \l EntityReference or \l EndDocument is seen, no
-+  tokens of type StartDocument or DTD will be seen. If one is present in
-+  the input stream, out of order, an error is raised.
-+
-+  \note The token types \l Comment and \l ProcessingInstruction may appear
-+  anywhere in the stream.
- 
-   If an error occurs while parsing, atEnd() and hasError() return
-   true, and error() returns the error that occurred. The functions
-@@ -659,6 +680,7 @@ QXmlStreamReader::TokenType QXmlStreamReader::readNext()
-         d->token = -1;
-         return readNext();
-     }
-+    d->checkToken();
-     return d->type;
- }
- 
-@@ -743,6 +765,11 @@ static constexpr auto QXmlStreamReader_tokenTypeString = qOffsetStringArray(
-     "ProcessingInstruction"
- );
- 
-+static constexpr auto QXmlStreamReader_XmlContextString = qOffsetStringArray(
-+    "Prolog",
-+    "Body"
-+);
-+
- /*!
-     \property  QXmlStreamReader::namespaceProcessing
-     \brief the namespace-processing flag of the stream reader.
-@@ -777,6 +804,15 @@ QString QXmlStreamReader::tokenString() const
-     return QLatin1StringView(QXmlStreamReader_tokenTypeString.at(d->type));
- }
- 
-+/*!
-+   \internal
-+   \return \param loc (Prolog/Body) as a string.
-+ */
-+static constexpr QLatin1StringView contextString(QXmlStreamReaderPrivate::XmlContext ctxt)
-+{
-+    return QLatin1StringView(QXmlStreamReader_XmlContextString.at(static_cast<int>(ctxt)));
-+}
-+
- #endif // QT_NO_XMLSTREAMREADER
- 
- QXmlStreamPrivateTagStack::QXmlStreamPrivateTagStack()
-@@ -864,6 +900,8 @@ void QXmlStreamReaderPrivate::init()
- 
-     type = QXmlStreamReader::NoToken;
-     error = QXmlStreamReader::NoError;
-+    currentContext = XmlContext::Prolog;
-+    foundDTD = false;
- }
- 
- /*
-@@ -3838,6 +3876,97 @@ void QXmlStreamWriter::writeCurrentToken(const QXmlStreamReader &reader)
-     }
- }
- 
-+static constexpr bool isTokenAllowedInContext(QXmlStreamReader::TokenType type,
-+                                               QXmlStreamReaderPrivate::XmlContext loc)
-+{
-+    switch (type) {
-+    case QXmlStreamReader::StartDocument:
-+    case QXmlStreamReader::DTD:
-+        return loc == QXmlStreamReaderPrivate::XmlContext::Prolog;
-+
-+    case QXmlStreamReader::StartElement:
-+    case QXmlStreamReader::EndElement:
-+    case QXmlStreamReader::Characters:
-+    case QXmlStreamReader::EntityReference:
-+    case QXmlStreamReader::EndDocument:
-+        return loc == QXmlStreamReaderPrivate::XmlContext::Body;
-+
-+    case QXmlStreamReader::Comment:
-+    case QXmlStreamReader::ProcessingInstruction:
-+        return true;
-+
-+    case QXmlStreamReader::NoToken:
-+    case QXmlStreamReader::Invalid:
-+        return false;
-+    }
-+
-+    // GCC 8.x does not treat __builtin_unreachable() as constexpr
-+#if !defined(Q_CC_GNU_ONLY) || (Q_CC_GNU >= 900)
-+    Q_UNREACHABLE_RETURN(false);
-+#else
-+    return false;
-+#endif
-+}
-+
-+/*!
-+   \internal
-+   \brief QXmlStreamReader::isValidToken
-+   \return \c true if \param type is a valid token type.
-+   \return \c false if \param type is an unexpected token,
-+   which indicates a non-well-formed or invalid XML stream.
-+ */
-+bool QXmlStreamReaderPrivate::isValidToken(QXmlStreamReader::TokenType type)
-+{
-+    // Don't change currentContext, if Invalid or NoToken occur in the prolog
-+    if (type == QXmlStreamReader::Invalid || type == QXmlStreamReader::NoToken)
-+        return false;
-+
-+    // If a token type gets rejected in the body, there is no recovery
-+    const bool result = isTokenAllowedInContext(type, currentContext);
-+    if (result || currentContext == XmlContext::Body)
-+        return result;
-+
-+    // First non-Prolog token observed => switch context to body and check again.
-+    currentContext = XmlContext::Body;
-+    return isTokenAllowedInContext(type, currentContext);
-+}
-+
-+/*!
-+   \internal
-+   Checks token type and raises an error, if it is invalid
-+   in the current context (prolog/body).
-+ */
-+void QXmlStreamReaderPrivate::checkToken()
-+{
-+    Q_Q(QXmlStreamReader);
-+
-+    // The token type must be consumed, to keep track if the body has been reached.
-+    const XmlContext context = currentContext;
-+    const bool ok = isValidToken(type);
-+
-+    // Do nothing if an error has been raised already (going along with an unexpected token)
-+    if (error != QXmlStreamReader::Error::NoError)
-+        return;
-+
-+    if (!ok) {
-+        raiseError(QXmlStreamReader::UnexpectedElementError,
-+                   QObject::tr("Unexpected token type %1 in %2.")
-+                   .arg(q->tokenString(), contextString(context)));
-+        return;
-+    }
-+
-+    if (type != QXmlStreamReader::DTD)
-+        return;
-+
-+    // Raise error on multiple DTD tokens
-+    if (foundDTD) {
-+        raiseError(QXmlStreamReader::UnexpectedElementError,
-+                   QObject::tr("Found second DTD token in %1.").arg(contextString(context)));
-+    } else {
-+        foundDTD = true;
-+    }
-+}
-+
- /*!
-  \fn bool QXmlStreamAttributes::hasAttribute(QAnyStringView qualifiedName) const
- 
-diff --git a/src/corelib/serialization/qxmlstream_p.h b/src/corelib/serialization/qxmlstream_p.h
-index 070424a9f523..f09adaa37e66 100644
---- a/src/corelib/serialization/qxmlstream_p.h
-+++ b/src/corelib/serialization/qxmlstream_p.h
-@@ -297,6 +297,17 @@ public:
-     QStringDecoder decoder;
-     bool atEnd;
- 
-+    enum class XmlContext
-+    {
-+        Prolog,
-+        Body,
-+    };
-+
-+    XmlContext currentContext = XmlContext::Prolog;
-+    bool foundDTD = false;
-+    bool isValidToken(QXmlStreamReader::TokenType type);
-+    void checkToken();
-+
-     /*!
-       \sa setType()
-      */
-diff --git a/tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml b/tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml
-new file mode 100644
-index 000000000000..1c3ca4e2711f
---- /dev/null
-+++ b/tests/auto/corelib/serialization/qxmlstream/tokenError/dtdInBody.xml
-@@ -0,0 +1,20 @@
-+<!DOCTYPE TEST [
-+   <!ELEMENT TESTATTRIBUTE (CASE+)>
-+   <!ELEMENT CASE (CLASS, FUNCTION)>
-+   <!ELEMENT CLASS (#PCDATA)>
-+
-+   <!-- adding random ENTITY statement, as this is typical DTD content -->
-+   <!ENTITY unite "&#x222a;">
-+
-+   <!ATTLIST CASE CLASS CDATA #REQUIRED>
-+]>
-+<TEST>
-+  <CASE>
-+    <CLASS>tst_QXmlStream</CLASS>
-+  </CASE>
-+  <!-- invalid DTD in XML body follows -->
-+  <!DOCTYPE DTDTEST [
-+    <!ELEMENT RESULT (CASE+)>
-+    <!ATTLIST RESULT OUTPUT CDATA #REQUIRED>
-+  ]>
-+</TEST>
-diff --git a/tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml b/tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml
-new file mode 100644
-index 000000000000..cd398c0f9fde
---- /dev/null
-+++ b/tests/auto/corelib/serialization/qxmlstream/tokenError/multipleDtd.xml
-@@ -0,0 +1,20 @@
-+<!DOCTYPE TEST [
-+   <!ELEMENT TESTATTRIBUTE (CASE+)>
-+   <!ELEMENT CASE (CLASS, FUNCTION, DATASET, COMMENTS)>
-+   <!ELEMENT CLASS (#PCDATA)>
-+
-+   <!-- adding random ENTITY statements, as this is typical DTD content -->
-+   <!ENTITY iff "&hArr;">
-+
-+   <!ATTLIST CASE CLASS CDATA #REQUIRED>
-+]>
-+<!-- invalid second DTD follows -->
-+<!DOCTYPE SECOND [
-+   <!ELEMENT SECONDATTRIBUTE (#PCDATA)>
-+   <!ENTITY on "&#8728;">
-+]>
-+<TEST>
-+  <CASE>
-+    <CLASS>tst_QXmlStream</CLASS>
-+  </CASE>
-+</TEST>
-diff --git a/tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml b/tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml
-new file mode 100644
-index 000000000000..1b61a3f06225
---- /dev/null
-+++ b/tests/auto/corelib/serialization/qxmlstream/tokenError/wellFormed.xml
-@@ -0,0 +1,15 @@
-+<!DOCTYPE TEST [
-+   <!ELEMENT TESTATTRIBUTE (CASE+)>
-+   <!ELEMENT CASE (CLASS, FUNCTION, DATASET, COMMENTS)>
-+   <!ELEMENT CLASS (#PCDATA)>
-+
-+   <!-- adding random ENTITY statements, as this is typical DTD content -->
-+   <!ENTITY unite "&#x222a;">
-+
-+   <!ATTLIST CASE CLASS CDATA #REQUIRED>
-+]>
-+<TEST>
-+  <CASE>
-+    <CLASS>tst_QXmlStream</CLASS>
-+  </CASE>
-+</TEST>
-diff --git a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
-index 2a340e11bff5..30f54999e7c8 100644
---- a/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
-+++ b/tests/auto/corelib/serialization/qxmlstream/tst_qxmlstream.cpp
-@@ -590,6 +590,9 @@ private slots:
- 
-     void entityExpansionLimit() const;
- 
-+    void tokenErrorHandling_data() const;
-+    void tokenErrorHandling() const;
-+
- private:
-     static QByteArray readFile(const QString &filename);
- 
-@@ -1855,5 +1858,41 @@ void tst_QXmlStream::test_fastScanName() const
-     QCOMPARE(reader.error(), errorType);
- }
- 
-+void tst_QXmlStream::tokenErrorHandling_data() const
-+{
-+    QTest::addColumn<QString>("fileName");
-+    QTest::addColumn<QXmlStreamReader::Error>("expectedError");
-+    QTest::addColumn<QString>("errorKeyWord");
-+
-+    constexpr auto invalid = QXmlStreamReader::Error::UnexpectedElementError;
-+    constexpr auto valid = QXmlStreamReader::Error::NoError;
-+    QTest::newRow("DtdInBody") << "dtdInBody.xml" << invalid << "DTD";
-+    QTest::newRow("multipleDTD") << "multipleDtd.xml" << invalid << "second DTD";
-+    QTest::newRow("wellFormed") << "wellFormed.xml" << valid << "";
-+}
-+
-+void tst_QXmlStream::tokenErrorHandling() const
-+{
-+    QFETCH(const QString, fileName);
-+    QFETCH(const QXmlStreamReader::Error, expectedError);
-+    QFETCH(const QString, errorKeyWord);
-+
-+    const QDir dir(QFINDTESTDATA("tokenError"));
-+    QFile file(dir.absoluteFilePath(fileName));
-+
-+    // Cross-compiling: File will be on host only
-+    if (!file.exists())
-+        QSKIP("Testfile not found.");
-+
-+    file.open(QIODevice::ReadOnly);
-+    QXmlStreamReader reader(&file);
-+    while (!reader.atEnd())
-+        reader.readNext();
-+
-+    QCOMPARE(reader.error(), expectedError);
-+    if (expectedError != QXmlStreamReader::Error::NoError)
-+        QVERIFY(reader.errorString().contains(errorKeyWord));
-+}
-+
- #include "tst_qxmlstream.moc"
- // vim: et:ts=4:sw=4:sts=4
--- 
-2.16.3
-

diff --git a/dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch b/dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch
deleted file mode 100644
index 431d89a387f6..000000000000
--- a/dev-qt/qtbase/files/qtbase-6.5.2-tests-gcc13.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-https://bugreports.qt.io/browse/QTBUG-114785
-https://code.qt.io/cgit/qt/qtbase.git/commit/?id=3e801b5477a7abfe4b87f20639e345bf3dc7eca8
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sat, 29 Apr 2023 13:01:56 +0200
-Subject: [PATCH] tinycbor: fix build with gcc-13
-
-Fixes: QTBUG-114785
-Pick-to: 6.6 6.5
-Change-Id: I4876ebd8890eee883a0d1a2bef8cb7aec4fd0f2f
-Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
---- a/src/3rdparty/tinycbor/tests/encoder/data.cpp
-+++ b/src/3rdparty/tinycbor/tests/encoder/data.cpp
-@@ -239,9 +239,9 @@
-     QTest::newRow("0.f16") << raw("\xf9\0\0") << QVariant::fromValue(qfloat16(0));
-     QTest::newRow("-1.f16") << raw("\xf9\xbc\0") << QVariant::fromValue(qfloat16(-1));
-     QTest::newRow("1.5f16") << raw("\xf9\x3e\0") << QVariant::fromValue(qfloat16(1.5));
--    QTest::newRow("nan_f16") << raw("\xf9\x7e\0") << QVariant::fromValue<qfloat16>(myNaNf());
--    QTest::newRow("-inf_f16") << raw("\xf9\xfc\0") << QVariant::fromValue<qfloat16>(myNInff());
--    QTest::newRow("+inf_f16") << raw("\xf9\x7c\0") << QVariant::fromValue<qfloat16>(myInff());
-+    QTest::newRow("nan_f16") << raw("\xf9\x7e\0") << QVariant::fromValue<qfloat16>(qfloat16(myNaNf()));
-+    QTest::newRow("-inf_f16") << raw("\xf9\xfc\0") << QVariant::fromValue<qfloat16>(qfloat16(myNInff()));
-+    QTest::newRow("+inf_f16") << raw("\xf9\x7c\0") << QVariant::fromValue<qfloat16>(qfloat16(myInff()));
- #endif
- 
-     QTest::newRow("0.f") << raw("\xfa\0\0\0\0") << QVariant::fromValue(0.f);

diff --git a/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild b/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
deleted file mode 100644
index 58ad15249b57..000000000000
--- a/dev-qt/qtbase/qtbase-6.5.2-r2.ebuild
+++ /dev/null
@@ -1,351 +0,0 @@
-# Copyright 2021-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-inherit flag-o-matic qt6-build toolchain-funcs
-
-DESCRIPTION="Cross-platform application development framework"
-
-if [[ ${QT6_BUILD_TYPE} == release ]]; then
-	KEYWORDS="amd64 ~arm ~arm64 ~hppa ~loong ~x86"
-fi
-
-declare -A QT6_IUSE=(
-	[global]="+ssl +udev zstd"
-	[core]="icu"
-	[modules]="+concurrent +dbus +gui +network +sql +xml"
-
-	[gui]="
-		+X accessibility eglfs evdev gles2-only +libinput
-		opengl tslib vulkan +widgets
-	"
-	[network]="brotli gssapi libproxy sctp"
-	[sql]="mysql oci8 odbc postgres +sqlite"
-	[widgets]="cups gtk"
-
-	[optfeature]="nls wayland" #810802,864509
-)
-IUSE="${QT6_IUSE[*]}"
-REQUIRED_USE="
-	$(
-		printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
-		printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
-		printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
-		printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
-	)
-	accessibility? ( X dbus )
-	eglfs? ( opengl )
-	gles2-only? ( opengl )
-	gui? ( || ( X eglfs wayland ) )
-	libinput? ( udev )
-	sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
-	test? ( icu sql? ( sqlite ) )
-"
-
-# groups:
-# - global (configure.cmake)
-# - qtcore (src/corelib/configure.cmake)
-# - qtgui (src/gui/configure.cmake)
-# - qtnetwork (src/network/configure.cmake)
-# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
-# - qtsql (src/plugins/sqldrivers/configure.cmake)
-RDEPEND="
-	sys-libs/zlib:=
-	ssl? ( dev-libs/openssl:= )
-	udev? ( virtual/libudev:= )
-	zstd? ( app-arch/zstd:= )
-
-	app-crypt/libb2
-	dev-libs/double-conversion:=
-	dev-libs/glib:2
-	dev-libs/libpcre2:=[pcre16,unicode(+)]
-	icu? ( dev-libs/icu:= )
-
-	dbus? ( sys-apps/dbus )
-	gui? (
-		media-libs/fontconfig
-		media-libs/freetype:2
-		media-libs/harfbuzz:=
-		media-libs/libjpeg-turbo:=
-		media-libs/libpng:=
-		x11-libs/libdrm
-		x11-libs/libxkbcommon[X?]
-		X? (
-			x11-libs/libICE
-			x11-libs/libSM
-			x11-libs/libX11
-			x11-libs/libxcb:=
-			x11-libs/xcb-util-cursor
-			x11-libs/xcb-util-image
-			x11-libs/xcb-util-keysyms
-			x11-libs/xcb-util-renderutil
-			x11-libs/xcb-util-wm
-		)
-		accessibility? ( app-accessibility/at-spi2-core:2 )
-		eglfs? ( media-libs/mesa[gbm(+)] )
-		evdev? ( sys-libs/mtdev )
-		libinput? ( dev-libs/libinput:= )
-		opengl? (
-			gles2-only? ( media-libs/libglvnd )
-			!gles2-only? ( media-libs/libglvnd[X?] )
-		)
-		tslib? ( x11-libs/tslib )
-		widgets? (
-			cups? ( net-print/cups )
-			gtk? (
-				x11-libs/gdk-pixbuf:2
-				x11-libs/gtk+:3
-				x11-libs/pango
-			)
-		)
-	)
-	network? (
-		brotli? ( app-arch/brotli:= )
-		gssapi? ( virtual/krb5 )
-		libproxy? ( net-libs/libproxy )
-	)
-	sql? (
-		mysql? ( dev-db/mysql-connector-c:= )
-		oci8? ( dev-db/oracle-instantclient:=[sdk] )
-		odbc? ( dev-db/unixODBC )
-		postgres? ( dev-db/postgresql:* )
-		sqlite? ( dev-db/sqlite:3 )
-	)
-"
-DEPEND="
-	${RDEPEND}
-	<x11-libs/libxkbcommon-1.6
-	X? ( x11-base/xorg-proto )
-	gui? (
-		vulkan? ( dev-util/vulkan-headers )
-	)
-	network? (
-		sctp? ( net-misc/lksctp-tools )
-	)
-	test? (
-		elibc_musl? ( sys-libs/timezone-data )
-	)
-"
-BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
-PDEPEND="
-	nls? ( ~dev-qt/qttranslations-${PV}:6 )
-	wayland? ( ~dev-qt/qtwayland-${PV}:6 )
-"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
-	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
-	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
-	"${FILESDIR}"/${P}-CVE-2023-38197.patch
-	"${FILESDIR}"/${P}-tests-gcc13.patch
-)
-
-src_prepare() {
-	qt6-build_src_prepare
-
-	if use test; then
-		# test itself has -Werror=strict-aliasing issues, drop for simplicity
-		sed -e '/add_subdirectory(qsharedpointer)/d' \
-			-i tests/auto/corelib/tools/CMakeLists.txt || die
-	fi
-}
-
-src_configure() {
-	local mycmakeargs=(
-		-DBUILD_WITH_PCH=OFF
-
-		-DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
-		-DINSTALL_BINDIR="${QT6_BINDIR}"
-		-DINSTALL_DATADIR="${QT6_DATADIR}"
-		-DINSTALL_DOCDIR="${QT6_DOCDIR}"
-		-DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
-		-DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
-		-DINSTALL_LIBDIR="${QT6_LIBDIR}"
-		-DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
-		-DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
-		-DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
-		-DINSTALL_QMLDIR="${QT6_QMLDIR}"
-		-DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
-		-DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
-
-		$(qt_feature ssl openssl)
-		$(qt_feature ssl openssl_linked)
-		$(qt_feature udev libudev)
-		$(qt_feature zstd)
-
-		# qtcore
-		$(qt_feature icu)
-
-		# tools
-		-DQT_FEATURE_androiddeployqt=OFF
-
-		# modules
-		$(qt_feature concurrent)
-		$(qt_feature dbus)
-		$(qt_feature gui)
-		$(qt_feature network)
-		$(qt_feature sql)
-		-DQT_FEATURE_testlib=ON # trivial and often needed to build revdeps
-		$(qt_feature xml)
-	)
-
-	use gui && mycmakeargs+=(
-		$(qt_feature X xcb)
-		$(qt_feature X system_xcb_xinput)
-		$(qt_feature X xkbcommon_x11)
-		$(cmake_use_find_package X X11) # needed for truly no automagic
-		$(qt_feature accessibility accessibility_atspi_bridge)
-		$(qt_feature eglfs)
-		$(qt_feature evdev)
-		$(qt_feature evdev mtdev)
-		$(qt_feature libinput)
-		$(qt_feature tslib)
-		$(qt_feature vulkan)
-		$(qt_feature widgets)
-		-DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
-		-DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
-	) && use widgets && mycmakeargs+=(
-		# note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
-		$(qt_feature cups)
-		$(qt_feature gtk gtk3)
-	)
-
-	use network && mycmakeargs+=(
-		$(qt_feature brotli)
-		$(qt_feature gssapi)
-		$(qt_feature libproxy)
-		$(qt_feature sctp)
-		$(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
-	)
-
-	use sql && mycmakeargs+=(
-		-DQT_FEATURE_sql_db2=OFF # unpackaged
-		-DQT_FEATURE_sql_ibase=OFF # unpackaged
-		$(qt_feature mysql sql_mysql)
-		$(qt_feature oci8 sql_oci)
-		$(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
-		$(qt_feature odbc sql_odbc)
-		$(qt_feature postgres sql_psql)
-		$(qt_feature sqlite sql_sqlite)
-		$(qt_feature sqlite system_sqlite)
-		-DQT_FEATURE_sql_tds=OFF # currently a no-op in CMakeLists.txt
-	)
-
-	if use amd64 || use x86; then
-		# see bug #913400 for explanations
-		local cpufeats=(
-			# list of checked cpu features in configure.cmake
-			avx avx2 avx512{bw,cd,dq,er,f,ifma,pf,vbmi,vbmi2,vl}
-			f16c rdrnd rdseed sse2 sse3 sse4_1 sse4_2 ssse3 vaes
-		)
-		# handle odd ones out not matching -m* and macros (keep same order)
-		local cpuflags=( "${cpufeats[@]}" aes sha )
-		local cpufeats+=( aesni shani )
-
-		local -a intrins
-		IFS=' ' read -ra intrins < <(
-			: "$(test-flags-CXX "${cpuflags[@]/#/-m}")"
-			$(tc-getCXX) -E -P ${_} ${CXXFLAGS} ${CPPFLAGS} - <<-EOF | tail -n 1
-				#if defined(__GNUC__) && (defined(__x86_64__) || defined(__i386__))
-				#include <x86intrin.h>
-				#endif
-				$(printf '__%s__ ' "${cpuflags[@]^^}")
-			EOF
-			assert
-		)
-
-		# do nothing and leave to qtbase if no macros expanded (test failed?)
-		if [[ \ ${intrins[*]} == *\ [^_\ ]* ]]; then
-			local -i i
-			for ((i=0; i<${#cpufeats[@]}; i++)); do
-				[[ ${intrins[i]} == __* ]] &&
-					mycmakeargs+=( -DQT_FEATURE_${cpufeats[i]}=OFF )
-			done
-			mycmakeargs+=( -DTEST_x86intrin=ON )
-		fi
-	fi
-
-	qt6-build_src_configure
-}
-
-src_test() {
-	local -x TZ=UTC
-	local -x LC_TIME=C
-
-	local CMAKE_SKIP_TESTS=(
-		# broken with out-of-source + if qtbase is not already installed
-		tst_moc
-		tst_qmake
-		# needs x11/opengl, we *could* run these but tend to be flaky
-		# when opengl rendering is involved (even if software-only)
-		tst_qopengl{,config,widget,window}
-		tst_qgraphicsview
-		tst_qx11info
-		# fails with network sandbox
-		tst_qdnslookup
-		# typical to lack SCTP support on non-generic kernels
-		tst_qsctpsocket
-		# these can be flaky depending on the environment/toolchain
-		tst_qlogging # backtrace log test can easily vary
-		tst_q{,raw}font # affected by available fonts / settings (bug #914737)
-		tst_qstorageinfo # checks mounted filesystems
-		# flaky due to using different test framework and fails with USE=-gui
-		tst_selftests
-		# known failing when using clang+glibc+stdc++, needs looking into
-		tst_qthread
-		# partially failing on x86 chroots and seemingly(?) harmless (dev-qt
-		# revdeps tests pass), skip globally to avoid keywording flakiness
-		tst_json
-		tst_qcolorspace
-		tst_qdoublevalidator
-		tst_qglobal
-		tst_qglyphrun
-		tst_qvectornd
-		tst_rcc
-		# similarly, but on armv7 and potentially others (bug #914028)
-		tst_qlineedit
-		tst_qpainter
-		# likewise, known failing at least on BE arches (bug #914033,914371)
-		tst_qimagereader
-		tst_qimagewriter
-		tst_qpluginloader
-		# partially broken on llvm-musl, needs looking into but skip to have
-		# a baseline for regressions (rest of dev-qt still passes with musl)
-		$(usev elibc_musl '
-			tst_qfiledialog2
-			tst_qicoimageformat
-			tst_qimagereader
-			tst_qimage
-		')
-		# fails due to hppa's NaN handling, needs looking into (bug #914371)
-		$(usev hppa '
-			tst_qcborvalue
-			tst_qnumeric
-		')
-		# note: for linux, upstream only really runs+maintains tests for amd64
-		# https://doc.qt.io/qt-6/supported-platforms.html
-	)
-
-	qt6-build_src_test
-}
-
-src_install() {
-	qt6-build_src_install
-
-	if use test; then
-		local delete_bins=( # need a better way to handle this
-			clientserver copier crashingServer desktopsettingsaware_helper
-			echo fileWriterProcess modal_helper nospace 'one space'
-			paster qcommandlineparser_test_helper qfileopeneventexternal
-			socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
-			write-read-write
-		)
-		local delete=( # sigh
-			"${D}${QT6_BINDIR}"/test*
-			"${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
-		)
-		# using -f given not tracking which tests may be skipped or not
-		rm -rf -- "${delete[@]}" || die
-	fi
-}


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-02-22 15:13 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2024-02-22 15:13 UTC (permalink / raw
  To: gentoo-commits

commit:     5d91e3b73346a76fd065865bc70c4b63808e8ee3
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 22 14:42:53 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Thu Feb 22 15:12:56 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5d91e3b7

dev-qt/qtbase: fix build with x32 abi

Closes: https://bugs.gentoo.org/925103
Thanks-to: Andrii Batyiev
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch | 13 +++++++++++++
 dev-qt/qtbase/qtbase-6.6.2.ebuild             |  1 +
 dev-qt/qtbase/qtbase-6.6.9999.ebuild          |  1 +
 dev-qt/qtbase/qtbase-6.7.9999.ebuild          |  1 +
 dev-qt/qtbase/qtbase-6.9999.ebuild            |  1 +
 5 files changed, 17 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch b/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch
new file mode 100644
index 000000000000..1204dcc5c25c
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.6.2-x32abi.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/925103
+--- a/src/corelib/thread/qthread.h
++++ b/src/corelib/thread/qthread.h
+@@ -166,5 +166,9 @@
+ #elif defined(Q_PROCESSOR_X86_64) && ((defined(Q_OS_LINUX) && defined(__GLIBC__)) || defined(Q_OS_FREEBSD))
+     // x86_64 Linux, BSD uses FS
++# if defined(__ILP32__)
++    __asm__("mov %%fs:%c1, %0" : "=r" (tid) : "i" (2 * sizeof(void*)) : );
++# else
+     __asm__("movq %%fs:%c1, %0" : "=r" (tid) : "i" (2 * sizeof(void*)) : );
++# endif
+ #elif defined(Q_PROCESSOR_X86_64) && defined(Q_OS_WIN)
+     // See https://en.wikipedia.org/wiki/Win32_Thread_Information_Block

diff --git a/dev-qt/qtbase/qtbase-6.6.2.ebuild b/dev-qt/qtbase/qtbase-6.6.2.ebuild
index fe273bc5f7c9..14520bcdd35c 100644
--- a/dev-qt/qtbase/qtbase-6.6.2.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.2.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.2-x32abi.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.6.9999.ebuild b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
index d7b14a3f1a66..a39a20691815 100644
--- a/dev-qt/qtbase/qtbase-6.6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.2-x32abi.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.7.9999.ebuild b/dev-qt/qtbase/qtbase-6.7.9999.ebuild
index e2aa70f1ea9b..c2827c3f3ac9 100644
--- a/dev-qt/qtbase/qtbase-6.7.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.9999.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.2-x32abi.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild b/dev-qt/qtbase/qtbase-6.9999.ebuild
index e2aa70f1ea9b..c2827c3f3ac9 100644
--- a/dev-qt/qtbase/qtbase-6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.9999.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.2-x32abi.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-03-26 20:49 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2024-03-26 20:49 UTC (permalink / raw
  To: gentoo-commits

commit:     73bec710536da954edada1cddf97a833960bfb81
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 26 20:44:29 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Mar 26 20:47:13 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73bec710

dev-qt/qtbase: do build workaround for gcc:14 + avx512fp16

Closes: https://bugs.gentoo.org/926287
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 dev-qt/qtbase/files/qtbase-6.6.3-gcc14-avx512fp16.patch | 15 +++++++++++++++
 dev-qt/qtbase/qtbase-6.6.3.ebuild                       |  1 +
 dev-qt/qtbase/qtbase-6.6.9999.ebuild                    |  1 +
 dev-qt/qtbase/qtbase-6.7.0_rc2-r1.ebuild                |  1 +
 dev-qt/qtbase/qtbase-6.7.9999.ebuild                    |  1 +
 dev-qt/qtbase/qtbase-6.9999.ebuild                      |  1 +
 6 files changed, 20 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.6.3-gcc14-avx512fp16.patch b/dev-qt/qtbase/files/qtbase-6.6.3-gcc14-avx512fp16.patch
new file mode 100644
index 000000000000..e7eb9dcc9209
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.6.3-gcc14-avx512fp16.patch
@@ -0,0 +1,15 @@
+Simply disable the broken path rather than worry about it for now.
+
+Likely an easy fix but would rather this be handled upstream and
+reported by someone that is affected and can test.
+
+https://bugs.gentoo.org/926287
+--- a/src/gui/painting/qrgbafloat.h
++++ b/src/gui/painting/qrgbafloat.h
+@@ -20,5 +20,5 @@
+ public:
+     using Type = F;
+-#if defined(__AVX512FP16__) && QFLOAT16_IS_NATIVE
++#if 0
+     // AVX512FP16 has multiplication instructions
+     using FastType = F;

diff --git a/dev-qt/qtbase/qtbase-6.6.3.ebuild b/dev-qt/qtbase/qtbase-6.6.3.ebuild
index 1adebe3c5958..40a65fab575d 100644
--- a/dev-qt/qtbase/qtbase-6.6.3.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.3.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.6.9999.ebuild b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
index 1adebe3c5958..40a65fab575d 100644
--- a/dev-qt/qtbase/qtbase-6.6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.6.9999.ebuild
@@ -137,6 +137,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-no-glx.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.7.0_rc2-r1.ebuild b/dev-qt/qtbase/qtbase-6.7.0_rc2-r1.ebuild
index 87d5fb955203..016279f8fec5 100644
--- a/dev-qt/qtbase/qtbase-6.7.0_rc2-r1.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.0_rc2-r1.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.7.9999.ebuild b/dev-qt/qtbase/qtbase-6.7.9999.ebuild
index 87d5fb955203..016279f8fec5 100644
--- a/dev-qt/qtbase/qtbase-6.7.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.9999.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
 )
 
 src_prepare() {

diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild b/dev-qt/qtbase/qtbase-6.9999.ebuild
index 87d5fb955203..016279f8fec5 100644
--- a/dev-qt/qtbase/qtbase-6.9999.ebuild
+++ b/dev-qt/qtbase/qtbase-6.9999.ebuild
@@ -138,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
 	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
 	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-07-16 23:52 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2024-07-16 23:52 UTC (permalink / raw
  To: gentoo-commits

commit:     6b0845fa8c13b564c6d0b26891c0b043afe0e6bc
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 16 23:28:03 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Jul 16 23:28:05 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6b0845fa

dev-qt/qtbase: backport fix for CVE-2024-39936

Still no update from Qt's blog, but given been handled for
Qt5 may as well do it here too at this point.

Bug: https://bugs.gentoo.org/935869
Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch | 200 ++++++++++++
 dev-qt/qtbase/qtbase-6.7.2-r1.ebuild               | 350 +++++++++++++++++++++
 2 files changed, 550 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch b/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch
new file mode 100644
index 000000000000..cc6238a55f1b
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch
@@ -0,0 +1,200 @@
+https://bugs.gentoo.org/935869
+https://github.com/qt/qtbase/commit/2b1e36e183ce75c224305c7a94457b92f7a5cf58
+From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= <marten.nordheim@qt.io>
+Date: Tue, 25 Jun 2024 17:09:35 +0200
+Subject: [PATCH] HTTP2: Delay any communication until encrypted() can be
+ responded to
+
+We have the encrypted() signal that lets users do extra checks on the
+established connection. It is emitted as BlockingQueued, so the HTTP
+thread stalls until it is done emitting. Users can potentially call
+abort() on the QNetworkReply at that point, which is passed as a Queued
+call back to the HTTP thread. That means that any currently queued
+signal emission will be processed before the abort() call is processed.
+
+In the case of HTTP2 it is a little special since it is multiplexed and
+the code is built to start requests as they are available. This means
+that, while the code worked fine for HTTP1, since one connection only
+has one request, it is not working for HTTP2, since we try to send more
+requests in-between the encrypted() signal and the abort() call.
+
+This patch changes the code to delay any communication until the
+encrypted() signal has been emitted and processed, for HTTP2 only.
+It's done by adding a few booleans, both to know that we have to return
+early and so we can keep track of what events arose and what we need to
+resume once enough time has passed that any abort() call must have been
+processed.
+
+Fixes: QTBUG-126610
+--- a/src/network/access/qhttp2protocolhandler.cpp
++++ b/src/network/access/qhttp2protocolhandler.cpp
+@@ -304,10 +304,10 @@
+     }
+ 
+-    if (!prefaceSent && !sendClientPreface())
+-        return false;
+-
+     if (!requests.size())
+         return true;
+ 
++    if (!prefaceSent && !sendClientPreface())
++        return false;
++
+     m_channel->state = QHttpNetworkConnectionChannel::WritingState;
+     // Check what was promised/pushed, maybe we do not have to send a request
+--- a/src/network/access/qhttpnetworkconnectionchannel.cpp
++++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
+@@ -210,4 +210,8 @@
+ {
+     Q_ASSERT(protocolHandler);
++    if (waitingForPotentialAbort) {
++        needInvokeSendRequest = true;
++        return false; // this return value is unused
++    }
+     return protocolHandler->sendRequest();
+ }
+@@ -222,7 +226,6 @@
+ {
+     QMetaObject::invokeMethod(this, [this] {
+-        Q_ASSERT(protocolHandler);
+         if (reply)
+-            protocolHandler->sendRequest();
++            sendRequest();
+     }, Qt::ConnectionType::QueuedConnection);
+ }
+@@ -231,4 +234,8 @@
+ {
+     Q_ASSERT(protocolHandler);
++    if (waitingForPotentialAbort) {
++        needInvokeReceiveReply = true;
++        return;
++    }
+     protocolHandler->_q_receiveReply();
+ }
+@@ -237,4 +244,8 @@
+ {
+     Q_ASSERT(protocolHandler);
++    if (waitingForPotentialAbort) {
++        needInvokeReadyRead = true;
++        return;
++    }
+     protocolHandler->_q_readyRead();
+ }
+@@ -1240,5 +1251,16 @@
+             // Similar to HTTP/1.1 counterpart below:
+             const auto &pair = std::as_const(h2RequestsToSend).first();
++            waitingForPotentialAbort = true;
+             emit pair.second->encrypted();
++
++            // We don't send or handle any received data until any effects from
++            // emitting encrypted() have been processed. This is necessary
++            // because the user may have called abort(). We may also abort the
++            // whole connection if the request has been aborted and there is
++            // no more requests to send.
++            QMetaObject::invokeMethod(this,
++                                      &QHttpNetworkConnectionChannel::checkAndResumeCommunication,
++                                      Qt::QueuedConnection);
++
+             // In case our peer has sent us its settings (window size, max concurrent streams etc.)
+             // let's give _q_receiveReply a chance to read them first ('invokeMethod', QueuedConnection).
+@@ -1258,4 +1280,26 @@
+ }
+ 
++
++void QHttpNetworkConnectionChannel::checkAndResumeCommunication()
++{
++    Q_ASSERT(connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2
++             || connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2Direct);
++
++    // Because HTTP/2 requires that we send a SETTINGS frame as the first thing we do, and respond
++    // to a SETTINGS frame with an ACK, we need to delay any handling until we can ensure that any
++    // effects from emitting encrypted() have been processed.
++    // This function is called after encrypted() was emitted, so check for changes.
++
++    if (!reply && h2RequestsToSend.isEmpty())
++        abort();
++    waitingForPotentialAbort = false;
++    if (needInvokeReadyRead)
++        _q_readyRead();
++    if (needInvokeReceiveReply)
++        _q_receiveReply();
++    if (needInvokeSendRequest)
++        sendRequest();
++}
++
+ void QHttpNetworkConnectionChannel::requeueHttp2Requests()
+ {
+--- a/src/network/access/qhttpnetworkconnectionchannel_p.h
++++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
+@@ -75,4 +75,8 @@
+     bool ssl;
+     bool isInitialized;
++    bool waitingForPotentialAbort = false;
++    bool needInvokeReceiveReply = false;
++    bool needInvokeReadyRead = false;
++    bool needInvokeSendRequest = false;
+     ChannelState state;
+     QHttpNetworkRequest request; // current request, only used for HTTP
+@@ -147,4 +151,6 @@
+     void resendCurrentRequest();
+ 
++    void checkAndResumeCommunication();
++
+     bool isSocketBusy() const;
+     bool isSocketWriting() const;
+--- a/tests/auto/network/access/http2/tst_http2.cpp
++++ b/tests/auto/network/access/http2/tst_http2.cpp
+@@ -107,4 +107,6 @@
+     void duplicateRequestsWithAborts();
+ 
++    void abortOnEncrypted();
++
+ protected slots:
+     // Slots to listen to our in-process server:
+@@ -1480,4 +1482,46 @@
+ }
+ 
++void tst_Http2::abortOnEncrypted()
++{
++#if !QT_CONFIG(ssl)
++    QSKIP("TLS support is needed for this test");
++#else
++    clearHTTP2State();
++    serverPort = 0;
++
++    ServerPtr targetServer(newServer(defaultServerSettings, H2Type::h2Direct));
++
++    QMetaObject::invokeMethod(targetServer.data(), "startServer", Qt::QueuedConnection);
++    runEventLoop();
++
++    nRequests = 1;
++    nSentRequests = 0;
++
++    const auto url = requestUrl(H2Type::h2Direct);
++    QNetworkRequest request(url);
++    request.setAttribute(QNetworkRequest::Http2DirectAttribute, true);
++
++    std::unique_ptr<QNetworkReply> reply{manager->get(request)};
++    reply->ignoreSslErrors();
++    connect(reply.get(), &QNetworkReply::encrypted, reply.get(), [reply = reply.get()](){
++        reply->abort();
++    });
++    connect(reply.get(), &QNetworkReply::errorOccurred, this, &tst_Http2::replyFinishedWithError);
++
++    runEventLoop();
++    STOP_ON_FAILURE
++
++    QCOMPARE(nRequests, 0);
++    QCOMPARE(reply->error(), QNetworkReply::OperationCanceledError);
++
++    const bool res = QTest::qWaitFor(
++            [this, server = targetServer.get()]() {
++                return serverGotSettingsACK || prefaceOK || nSentRequests > 0;
++            },
++            500);
++    QVERIFY(!res);
++#endif // QT_CONFIG(ssl)
++}
++
+ void tst_Http2::serverStarted(quint16 port)
+ {

diff --git a/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild b/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild
new file mode 100644
index 000000000000..499bf7372d57
--- /dev/null
+++ b/dev-qt/qtbase/qtbase-6.7.2-r1.ebuild
@@ -0,0 +1,350 @@
+# Copyright 2021-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit qt6-build toolchain-funcs
+
+DESCRIPTION="Cross-platform application development framework"
+
+if [[ ${QT6_BUILD_TYPE} == release ]]; then
+	KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+declare -A QT6_IUSE=(
+	[global]="+ssl +udev zstd"
+	[core]="icu"
+	[modules]="+concurrent +dbus +gui +network +sql +xml"
+
+	[gui]="
+		+X accessibility eglfs evdev gles2-only +libinput
+		opengl renderdoc tslib vulkan wayland +widgets
+	"
+	[network]="brotli gssapi libproxy sctp"
+	[sql]="mysql oci8 odbc postgres +sqlite"
+	[widgets]="cups gtk"
+
+	[optfeature]="nls" #810802
+)
+IUSE="${QT6_IUSE[*]}"
+REQUIRED_USE="
+	$(
+		printf '%s? ( gui ) ' ${QT6_IUSE[gui]//+/}
+		printf '%s? ( network ) ' ${QT6_IUSE[network]//+/}
+		printf '%s? ( sql ) ' ${QT6_IUSE[sql]//+/}
+		printf '%s? ( gui widgets ) ' ${QT6_IUSE[widgets]//+/}
+	)
+	accessibility? ( dbus )
+	eglfs? ( opengl )
+	gles2-only? ( opengl )
+	gui? ( || ( X eglfs wayland ) )
+	libinput? ( udev )
+	sql? ( || ( ${QT6_IUSE[sql]//+/} ) )
+	test? ( icu sql? ( sqlite ) )
+"
+
+# groups:
+# - global (configure.cmake)
+# - qtcore (src/corelib/configure.cmake)
+# - qtgui (src/gui/configure.cmake)
+# - qtnetwork (src/network/configure.cmake)
+# - qtprintsupport (src/printsupport/configure.cmake) [gui+widgets]
+# - qtsql (src/plugins/sqldrivers/configure.cmake)
+# dlopen: renderdoc
+RDEPEND="
+	sys-libs/zlib:=
+	ssl? ( dev-libs/openssl:= )
+	udev? ( virtual/libudev:= )
+	zstd? ( app-arch/zstd:= )
+
+	app-crypt/libb2
+	dev-libs/double-conversion:=
+	dev-libs/glib:2
+	dev-libs/libpcre2:=[pcre16,unicode(+)]
+	icu? ( dev-libs/icu:= )
+
+	dbus? ( sys-apps/dbus )
+	gui? (
+		media-libs/fontconfig
+		media-libs/freetype:2
+		media-libs/harfbuzz:=
+		media-libs/libjpeg-turbo:=
+		media-libs/libpng:=
+		x11-libs/libdrm
+		x11-libs/libxkbcommon[X?]
+		X? (
+			x11-libs/libICE
+			x11-libs/libSM
+			x11-libs/libX11
+			x11-libs/libxcb:=
+			x11-libs/xcb-util-cursor
+			x11-libs/xcb-util-image
+			x11-libs/xcb-util-keysyms
+			x11-libs/xcb-util-renderutil
+			x11-libs/xcb-util-wm
+		)
+		accessibility? ( app-accessibility/at-spi2-core:2 )
+		eglfs? ( media-libs/mesa[gbm(+)] )
+		evdev? ( sys-libs/mtdev )
+		libinput? ( dev-libs/libinput:= )
+		opengl? (
+			gles2-only? ( media-libs/libglvnd )
+			!gles2-only? ( media-libs/libglvnd[X?] )
+		)
+		renderdoc? ( media-gfx/renderdoc )
+		tslib? ( x11-libs/tslib )
+		widgets? (
+			cups? ( net-print/cups )
+			gtk? (
+				x11-libs/gdk-pixbuf:2
+				x11-libs/gtk+:3
+				x11-libs/pango
+			)
+		)
+	)
+	network? (
+		brotli? ( app-arch/brotli:= )
+		gssapi? ( virtual/krb5 )
+		libproxy? ( net-libs/libproxy )
+	)
+	sql? (
+		mysql? ( dev-db/mysql-connector-c:= )
+		oci8? ( dev-db/oracle-instantclient:=[sdk] )
+		odbc? ( dev-db/unixODBC )
+		postgres? ( dev-db/postgresql:* )
+		sqlite? ( dev-db/sqlite:3 )
+	)
+"
+DEPEND="
+	${RDEPEND}
+	X? ( x11-base/xorg-proto )
+	gui? (
+		vulkan? ( dev-util/vulkan-headers )
+	)
+	network? (
+		sctp? ( net-misc/lksctp-tools )
+	)
+	test? (
+		elibc_musl? ( sys-libs/timezone-data )
+	)
+"
+BDEPEND="zstd? ( app-arch/libarchive[zstd] )" #910392
+PDEPEND="
+	nls? ( ~dev-qt/qttranslations-${PV}:6 )
+	wayland? ( ~dev-qt/qtwayland-${PV}:6 )
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.5.2-hppa-forkfd-grow-stack.patch
+	"${FILESDIR}"/${PN}-6.5.2-no-symlink-check.patch
+	"${FILESDIR}"/${PN}-6.6.1-forkfd-childstack-size.patch
+	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
+	"${FILESDIR}"/${PN}-6.7.2-CVE-2024-39936.patch
+)
+
+src_prepare() {
+	qt6-build_src_prepare
+
+	if use test; then
+		# test itself has -Werror=strict-aliasing issues, drop for simplicity
+		sed -e '/add_subdirectory(qsharedpointer)/d' \
+			-i tests/auto/corelib/tools/CMakeLists.txt || die
+
+		# workaround for __extendhfxf2 being used for tst_qfloat16.cpp
+		# which is unavailable with compiler-rt (assume used if clang)
+		if tc-is-clang; then
+			sed -e '/add_subdirectory(qfloat16)/d' \
+				-i tests/auto/corelib/global/CMakeLists.txt || die
+		fi
+	fi
+}
+
+src_configure() {
+	local mycmakeargs=(
+		-DBUILD_WITH_PCH=OFF
+
+		-DINSTALL_ARCHDATADIR="${QT6_ARCHDATADIR}"
+		-DINSTALL_BINDIR="${QT6_BINDIR}"
+		-DINSTALL_DATADIR="${QT6_DATADIR}"
+		-DINSTALL_DOCDIR="${QT6_DOCDIR}"
+		-DINSTALL_EXAMPLESDIR="${QT6_EXAMPLESDIR}"
+		-DINSTALL_INCLUDEDIR="${QT6_HEADERDIR}"
+		-DINSTALL_LIBDIR="${QT6_LIBDIR}"
+		-DINSTALL_LIBEXECDIR="${QT6_LIBEXECDIR}"
+		-DINSTALL_MKSPECSDIR="${QT6_MKSPECSDIR}"
+		-DINSTALL_PLUGINSDIR="${QT6_PLUGINDIR}"
+		-DINSTALL_QMLDIR="${QT6_QMLDIR}"
+		-DINSTALL_SYSCONFDIR="${QT6_SYSCONFDIR}"
+		-DINSTALL_TRANSLATIONSDIR="${QT6_TRANSLATIONDIR}"
+
+		-DQT_UNITY_BUILD=ON # ~30% faster build, affects other dev-qt/* too
+
+		-DQT_FEATURE_relocatable=OFF #927691
+		$(qt_feature ssl openssl)
+		$(qt_feature ssl openssl_linked)
+		$(qt_feature udev libudev)
+		$(qt_feature zstd)
+
+		# qtcore
+		$(qt_feature icu)
+
+		# tools
+		-DQT_FEATURE_androiddeployqt=OFF
+
+		# modules
+		$(qt_feature concurrent)
+		$(qt_feature dbus)
+		$(qt_feature gui)
+		$(qt_feature network)
+		$(qt_feature sql)
+		# trivial, and is often needed (sometimes even when not building tests)
+		-DQT_FEATURE_testlib=ON
+		$(qt_feature xml)
+	)
+
+	use gui && mycmakeargs+=(
+		$(qt_feature X xcb)
+		$(qt_feature X system_xcb_xinput)
+		$(qt_feature X xkbcommon_x11)
+		$(cmake_use_find_package X X11) # needed for truly no automagic
+		$(qt_feature accessibility accessibility_atspi_bridge)
+		$(qt_feature eglfs)
+		$(qt_feature evdev)
+		$(qt_feature evdev mtdev)
+		$(qt_feature libinput)
+		$(qt_feature renderdoc graphicsframecapture)
+		$(qt_feature tslib)
+		$(qt_feature vulkan)
+		$(qt_feature wayland)
+		$(qt_feature widgets)
+		-DINPUT_opengl=$(usex opengl $(usex gles2-only es2 desktop) no)
+		-DQT_FEATURE_system_textmarkdownreader=OFF # TODO?: package md4c
+	) && use widgets && mycmakeargs+=(
+		# note: qtprintsupport is enabled w/ gui+widgets regardless of USE=cups
+		$(qt_feature cups)
+		$(qt_feature gtk gtk3)
+	)
+
+	use network && mycmakeargs+=(
+		$(qt_feature brotli)
+		$(qt_feature gssapi)
+		$(qt_feature libproxy)
+		$(qt_feature sctp)
+		$(usev test -DQT_SKIP_DOCKER_COMPOSE=ON)
+	)
+
+	use sql && mycmakeargs+=(
+		-DQT_FEATURE_sql_db2=OFF # unpackaged
+		-DQT_FEATURE_sql_ibase=OFF # unpackaged
+		-DQT_FEATURE_sql_mimer=OFF # unpackaged
+		$(qt_feature mysql sql_mysql)
+		$(qt_feature oci8 sql_oci)
+		$(usev oci8 -DOracle_ROOT="${ESYSROOT}"/usr/$(get_libdir)/oracle/client)
+		$(qt_feature odbc sql_odbc)
+		$(qt_feature postgres sql_psql)
+		$(qt_feature sqlite sql_sqlite)
+		$(qt_feature sqlite system_sqlite)
+	)
+
+	qt6-build_src_configure
+}
+
+src_test() {
+	local -x TZ=UTC
+	local -x LC_TIME=C
+
+	local CMAKE_SKIP_TESTS=(
+		# broken with out-of-source + if qtbase is not already installed
+		tst_moc
+		tst_qmake
+		# similarly broken when relocatable=OFF (bug #927691)
+		tst_qapplication
+		tst_qt_cmake_create
+		tst_uic
+		# needs x11/opengl, we *could* run these but tend to be flaky
+		# when opengl rendering is involved (even if software-only)
+		tst_qopengl{,config,widget,window}
+		tst_qgraphicsview
+		tst_qx11info
+		# fails with network sandbox
+		tst_qdnslookup
+		# fails with sandbox
+		tst_qsharedmemory
+		# typical to lack SCTP support on non-generic kernels
+		tst_qsctpsocket
+		# randomly fails without -j1, and not worth it over this (bug #916181)
+		tst_qfiledialog{,2}
+		# may randomly hang+timeout, perhaps related to -j as well
+		tst_qtimer
+		# these can be flaky depending on the environment/toolchain
+		tst_qlogging # backtrace log test can easily vary
+		tst_q{,raw}font # affected by available fonts / settings (bug #914737)
+		tst_qprinter # checks system's printers (bug #916216)
+		tst_qhighdpi # may detect users' settings and fail (bug #935364)
+		tst_qstorageinfo # checks mounted filesystems
+		# flaky due to using different test framework and fails with USE=-gui
+		tst_selftests
+		# known failing when using clang+glibc+stdc++, needs looking into
+		tst_qthread
+		# partially failing on x86 chroots and seemingly(?) harmless (dev-qt
+		# revdeps tests pass), skip globally to avoid keywording flakiness
+		tst_json
+		tst_qcolorspace
+		tst_qdoublevalidator
+		tst_qglobal
+		tst_qglyphrun
+		tst_qvectornd
+		tst_rcc
+		# similarly, but on armv7 and potentially others (bug #914028)
+		tst_qlineedit
+		tst_qpainter
+		# likewise, known failing on BE arches (bug #914033,914371,918878)
+		tst_qimagereader
+		tst_qimagewriter
+		tst_qpluginloader
+		tst_quuid # >=6.6.2 had related fixes, needs retesting
+		# partially broken on llvm-musl, needs looking into but skip to have
+		# a baseline for regressions (rest of dev-qt still passes with musl)
+		$(usev elibc_musl '
+			tst_qicoimageformat
+			tst_qimagereader
+			tst_qimage
+			tst_qprocess
+		')
+		# fails due to hppa's NaN handling, needs looking into (bug #914371)
+		$(usev hppa '
+			tst_qcborvalue
+			tst_qnumeric
+		')
+		# bug #914033
+		$(usev sparc '
+			tst_qbuffer
+			tst_qprocess
+			tst_qtconcurrentiteratekernel
+		')
+		# note: for linux, upstream only really runs+maintains tests for amd64
+		# https://doc.qt.io/qt-6/supported-platforms.html
+	)
+
+	qt6-build_src_test
+}
+
+src_install() {
+	qt6-build_src_install
+
+	if use test; then
+		local delete_bins=( # need a better way to handle this
+			clientserver copier crashingServer desktopsettingsaware_helper
+			echo fileWriterProcess modal_helper nospace 'one space'
+			paster qcommandlineparser_test_helper qfileopeneventexternal
+			socketprocess syslocaleapp tst_qhashseed_helper 'two space s'
+			write-read-write
+		)
+		local delete=( # sigh
+			"${D}${QT6_BINDIR}"/test*
+			"${delete_bins[@]/#/${D}${QT6_BINDIR}/}"
+		)
+		# using -f given not tracking which tests may be skipped or not
+		rm -rf -- "${delete[@]}" || die
+	fi
+}


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-09-25  4:03 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2024-09-25  4:03 UTC (permalink / raw
  To: gentoo-commits

commit:     2d0b5ef18fb28fe09877c453d9b0a156a9294d63
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 25 03:24:40 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Wed Sep 25 04:02:39 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2d0b5ef1

dev-qt/qtbase: backport fix for x86-64-v3 without rdrand at runtime

Skipping live ebuilds given due to land in 6.7+6.8 "soon" (in 6.9 atm),
albeit unknown if 6.7.3 and 6.8.0 branches will get it before release
and should check on bump.

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtbase-6.7.2-haswell-no-rdrnd.patch      | 100 +++++++++++++++++++++
 ...base-6.7.2-r4.ebuild => qtbase-6.7.2-r5.ebuild} |   1 +
 2 files changed, 101 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-haswell-no-rdrnd.patch b/dev-qt/qtbase/files/qtbase-6.7.2-haswell-no-rdrnd.patch
new file mode 100644
index 000000000000..0427315d69d5
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.2-haswell-no-rdrnd.patch
@@ -0,0 +1,100 @@
+https://bugreports.qt.io/browse/QTBUG-129193 
+https://forums.gentoo.org/viewtopic-t-1170690.html
+https://forums.gentoo.org/viewtopic-t-1169619.html
+https://codereview.qt-project.org/c/qt/qtbase/+/593073
+From: Thiago Macieira <thiago.macieira@intel.com>
+Date: Mon, 23 Sep 2024 13:44:31 -0700
+Subject: [PATCH] qsimd_x86: disable the requirement that CPUs must have RNGs
+
+Intel CPUs have had this since 2013 (Ivy Bridge), but some older
+Bulldozer AMD CPUs appear to be missing it. This creates a mismatch
+between when the __haswell__ macro gets declared in qsimd_p.h and the
+runtime check using the CpuArchHaswell value. That in turn creates a
+condition where qInitDrawhelperFunctions() in qdrawhelper.cpp leaves the
+memfill pointers set to null.
+
+#elif defined(__SSE2__)
+#  ifndef __haswell__
+    qt_memfill32 = qt_memfill32_sse2;
+    qt_memfill64 = qt_memfill64_sse2;
+#  endif
+...
+#if defined(QT_COMPILER_SUPPORTS_AVX2)
+    if (qCpuHasFeature(ArchHaswell)) {
+        qt_memfill32 = qt_memfill32_avx2;
+        qt_memfill64 = qt_memfill64_avx2;
+
+It does this so the qt_memfillXX_sse2 functions don't have to be defined
+anywhere, so the QtGui build won't carry unnecessary dead code.
+
+This is old code (from Qt 4.x) and several improvements I've made for
+QtCore are not applied yet. My work for qSimdDispatcher[1] isn't
+complete: it might have avoided this problem here, but it would also
+have required major work for the draw helpers to work in the first
+place.
+
+[1] https://codereview.qt-project.org/c/qt/qtbase/+/537384
+
+Pick-to: 6.8 6.7 6.5 6.2
+Fixes: QTBUG-129193
+Change-Id: Ia427a9e502b0fb46b2bdfffda8e2131b7091c9e9
+Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
+--- a/src/corelib/global/qsimd_x86_p.h
++++ b/src/corelib/global/qsimd_x86_p.h
+@@ -85,16 +85,14 @@
+ #define cpu_snb                 (cpu_wsm \
+                                  | cpu_feature_avx)
+ #define cpu_ivb                 (cpu_snb \
+-                                 | cpu_feature_f16c \
+-                                 | cpu_feature_rdrnd)
++                                 | cpu_feature_f16c)
+ #define cpu_hsw                 (cpu_ivb \
+                                  | cpu_feature_avx2 \
+                                  | cpu_feature_fma \
+                                  | cpu_feature_bmi \
+                                  | cpu_feature_bmi2 \
+                                  | cpu_feature_movbe)
+-#define cpu_bdw                 (cpu_hsw \
+-                                 | cpu_feature_rdseed)
++#define cpu_bdw                 (cpu_hsw)
+ #define cpu_bdx                 (cpu_bdw)
+ #define cpu_skl                 (cpu_bdw)
+ #define cpu_skx                 (cpu_skl \
+@@ -237,9 +235,9 @@
+ #define QT_FUNCTION_TARGET_STRING_ARCH_NHM          QT_FUNCTION_TARGET_STRING_ARCH_CORE2 ",sse4.1,sse4.2,popcnt"
+ #define QT_FUNCTION_TARGET_STRING_ARCH_WSM          QT_FUNCTION_TARGET_STRING_ARCH_NHM
+ #define QT_FUNCTION_TARGET_STRING_ARCH_SNB          QT_FUNCTION_TARGET_STRING_ARCH_WSM ",avx"
+-#define QT_FUNCTION_TARGET_STRING_ARCH_IVB          QT_FUNCTION_TARGET_STRING_ARCH_SNB ",f16c,rdrnd,fsgsbase"
++#define QT_FUNCTION_TARGET_STRING_ARCH_IVB          QT_FUNCTION_TARGET_STRING_ARCH_SNB ",f16c,fsgsbase"
+ #define QT_FUNCTION_TARGET_STRING_ARCH_HSW          QT_FUNCTION_TARGET_STRING_ARCH_IVB ",avx2,fma,bmi,bmi2,lzcnt,movbe"
+-#define QT_FUNCTION_TARGET_STRING_ARCH_BDW          QT_FUNCTION_TARGET_STRING_ARCH_HSW ",adx,rdseed"
++#define QT_FUNCTION_TARGET_STRING_ARCH_BDW          QT_FUNCTION_TARGET_STRING_ARCH_HSW ",adx"
+ #define QT_FUNCTION_TARGET_STRING_ARCH_BDX          QT_FUNCTION_TARGET_STRING_ARCH_BDW
+ #define QT_FUNCTION_TARGET_STRING_ARCH_SKL          QT_FUNCTION_TARGET_STRING_ARCH_BDW ",xsavec,xsaves"
+ #define QT_FUNCTION_TARGET_STRING_ARCH_SKX          QT_FUNCTION_TARGET_STRING_ARCH_SKL ",avx512f,avx512dq,avx512cd,avx512bw,avx512vl"
+@@ -473,9 +471,9 @@
+     CpuArchNHM = cpu_nhm,
+     CpuArchWSM = cpu_wsm,
+     CpuArchSNB = cpu_snb,
+-    CpuArchIVB = cpu_ivb,
++    CpuArchIVB = cpu_ivb,                                    ///< rdrnd
+     CpuArchHSW = cpu_hsw,                                    ///< hle,rtm
+-    CpuArchBDW = cpu_bdw,
++    CpuArchBDW = cpu_bdw,                                    ///< rdseed
+     CpuArchBDX = cpu_bdx,
+     CpuArchSKL = cpu_skl,
+     CpuArchSKX = cpu_skx,                                    ///< clwb
+--- a/util/x86simdgen/3rdparty/simd-intel.conf
++++ b/util/x86simdgen/3rdparty/simd-intel.conf
+@@ -142,9 +142,9 @@
+ arch=NHM	Core2	sse4.1,sse4.2,popcnt
+ arch=WSM	NHM
+ arch=SNB	WSM	avx
+-arch=IVB	SNB	f16c,rdrnd,fsgsbase
++arch=IVB	SNB	f16c,fsgsbase		        # rdrnd
+ arch=HSW	IVB	avx2,fma,bmi,bmi2,lzcnt,movbe	# hle,rtm
+-arch=BDW	HSW	adx,rdseed
++arch=BDW	HSW	adx				# rdseed
+ arch=BDX	BDW
+ arch=SKL	BDW	xsavec,xsaves
+ arch=SKX	SKL	avx512f,avx512dq,avx512cd,avx512bw,avx512vl #clwb

diff --git a/dev-qt/qtbase/qtbase-6.7.2-r4.ebuild b/dev-qt/qtbase/qtbase-6.7.2-r5.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.7.2-r4.ebuild
rename to dev-qt/qtbase/qtbase-6.7.2-r5.ebuild
index e7e909a26a94..e21fc8158f6c 100644
--- a/dev-qt/qtbase/qtbase-6.7.2-r4.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.2-r5.ebuild
@@ -150,6 +150,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.7.2-float16-sse2.patch
 	"${FILESDIR}"/${PN}-6.7.2-qwindowprivate-crash.patch
 	"${FILESDIR}"/${PN}-6.7.2-qcontiguouscache.patch
+	"${FILESDIR}"/${PN}-6.7.2-haswell-no-rdrnd.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/
@ 2024-10-01 18:10 Ionen Wolkens
  0 siblings, 0 replies; 11+ messages in thread
From: Ionen Wolkens @ 2024-10-01 18:10 UTC (permalink / raw
  To: gentoo-commits

commit:     d855faed9dc5e08c6d0ab5dd35242faf5ca8e799
Author:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 30 21:45:55 2024 +0000
Commit:     Ionen Wolkens <ionen <AT> gentoo <DOT> org>
CommitDate: Tue Oct  1 18:08:02 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d855faed

dev-qt/qtbase: revert upstream commit causing erratic mouse input

Signed-off-by: Ionen Wolkens <ionen <AT> gentoo.org>

 .../files/qtbase-6.7.3-erratic-mouse-input.patch   | 156 +++++++++++++++++++++
 ...{qtbase-6.7.3.ebuild => qtbase-6.7.3-r1.ebuild} |   1 +
 2 files changed, 157 insertions(+)

diff --git a/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch b/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch
new file mode 100644
index 000000000000..14bdf1463949
--- /dev/null
+++ b/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch
@@ -0,0 +1,156 @@
+https://bugreports.qt.io/browse/QTBUG-129509
+https://bugreports.qt.io/browse/QTBUG-129514
+https://codereview.qt-project.org/c/qt/qtbase/+/594889
+From 42845904d51ad14b2ab41a165bd9b9b1a9459840 Mon Sep 17 00:00:00 2001
+From: Liang Qi <liang.qi@qt.io>
+Date: Tue, 01 Oct 2024 12:46:30 +0200
+Subject: [PATCH] Revert "xcb: handle XI2 input button and motion events from slave devices"
+
+This reverts commit b71be292780b858f2c55ce92601452e2ea946de2, which causes a regression when using mouse wheel and moving cursor together
+on scroll bar for some qt applications, like qutebrowser and
+qbittorrent.
+
+Fixes: QTBUG-129509
+Fixes: QTBUG-129514
+Task-number: QTBUG-110841
+Pick-to: 6.8.0 6.8 6.7 6.5 6.2 5.15
+Change-Id: I703158874413a1306ea99217bced4ba38382f543
+--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
++++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
+@@ -683,94 +683,21 @@
+ }
+ 
+-//implementation is ported from https://codereview.qt-project.org/c/qt/qtbase/+/231552/12/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp#558
+-namespace {
+-
+-/*! \internal
+-
+- Qt listens for XIAllDevices to avoid losing mouse events. This function
+- ensures that we don't process the same event twice: from a slave device and
+- then again from a master device.
+-
+- In a normal use case (e.g. mouse press and release inside a window), we will
+- drop events from master devices as duplicates. Other advantage of processing
+- events from slave devices is that they don't share button state. All buttons
+- on a master device share the state.
+-
+- Examples of special cases:
+-
+-\list
+-
+-\li During system move/resize, window manager (_NET_WM_MOVERESIZE) grabs the
+-   master pointer, in this case we process the matching release from the slave
+-   device. A master device event is not sent by the server, hence no duplicate
+-   event to drop. If we listened for XIAllMasterDevices instead, we would never
+-   see a release event in this case.
+-
+-\li If we dismiss a context menu by clicking somewhere outside a Qt application,
+-   we will process the mouse press from the master pointer as that is the
+-   device we are grabbing. We are not grabbing slave devices (grabbing on the
+-   slave device is buggy according to 19d289ab1b5bde3e136765e5432b5c7d004df3a4).
+-   And since the event occurs outside our window, the slave device event is
+-   not sent to us by the server, hence no duplicate event to drop.
+-
+-\endlist
+-*/
+-bool isDuplicateEvent(xcb_ge_event_t *event)
+-{
+-    Q_ASSERT(event);
+-
+-    struct qXIEvent {
+-        bool isValid = false;
+-        uint16_t sourceid;
+-        uint8_t evtype;
+-        uint32_t detail;
+-        int32_t root_x;
+-        int32_t root_y;
+-    };
+-    static qXIEvent lastSeenEvent;
+-
+-    bool isDuplicate = false;
+-    auto *xiDeviceEvent = reinterpret_cast<qt_xcb_input_device_event_t *>(event);
+-    if (lastSeenEvent.isValid) {
+-        isDuplicate = lastSeenEvent.sourceid == xiDeviceEvent->sourceid &&
+-                lastSeenEvent.evtype == xiDeviceEvent->event_type &&
+-                lastSeenEvent.detail == xiDeviceEvent->detail &&
+-                lastSeenEvent.root_x == xiDeviceEvent->root_x &&
+-                lastSeenEvent.root_y == xiDeviceEvent->root_y;
+-    } else {
+-        lastSeenEvent.isValid = true;
+-    }
+-    lastSeenEvent.sourceid = xiDeviceEvent->sourceid;
+-    lastSeenEvent.evtype = xiDeviceEvent->event_type;
+-    lastSeenEvent.detail = xiDeviceEvent->detail;
+-    lastSeenEvent.root_x = xiDeviceEvent->root_x;
+-    lastSeenEvent.root_y = xiDeviceEvent->root_y;
+-
+-    if (isDuplicate) {
+-        qCDebug(lcQpaXInputEvents, "Duplicate XI2 event %d", event->event_type);
+-        // This sanity check ensures that special cases like QTBUG-59277 keep working.
+-        lastSeenEvent.isValid = false; // An event can be a duplicate only once.
+-    }
+-
+-    return isDuplicate;
+-}
+-
+-} // namespace
+-
+ void QXcbConnection::xi2HandleEvent(xcb_ge_event_t *event)
+ {
+     auto *xiEvent = reinterpret_cast<qt_xcb_input_device_event_t *>(event);
+-    if (m_xiSlavePointerIds.contains(xiEvent->deviceid)) {
+-        if (!(xiEvent->event_type == XCB_INPUT_BUTTON_PRESS
+-              || xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE
+-              || xiEvent->event_type == XCB_INPUT_MOTION)) {
+-            if (!m_duringSystemMoveResize)
+-                return;
+-            if (xiEvent->event == XCB_NONE)
+-                return;
+-
+-            if (xiEvent->event_type == XCB_INPUT_TOUCH_END)
+-                abortSystemMoveResize(xiEvent->event);
++    setTime(xiEvent->time);
++    if (m_xiSlavePointerIds.contains(xiEvent->deviceid) && xiEvent->event_type != XCB_INPUT_PROPERTY) {
++        if (!m_duringSystemMoveResize)
++            return;
++        if (xiEvent->event == XCB_NONE)
++            return;
+ 
++        if (xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE
++            && xiEvent->detail == XCB_BUTTON_INDEX_1 ) {
++            abortSystemMoveResize(xiEvent->event);
++        } else if (xiEvent->event_type == XCB_INPUT_TOUCH_END) {
++            abortSystemMoveResize(xiEvent->event);
++            return;
++        } else {
+             return;
+         }
+@@ -784,25 +711,9 @@
+     case XCB_INPUT_BUTTON_PRESS:
+     case XCB_INPUT_BUTTON_RELEASE:
+-    case XCB_INPUT_MOTION: {
+-        if (isDuplicateEvent(event))
+-            return;
+-        if (m_xiSlavePointerIds.contains(xiEvent->deviceid)) {
+-            if (m_duringSystemMoveResize) {
+-                if (xiEvent->event_type == XCB_INPUT_BUTTON_RELEASE
+-                    && xiEvent->detail == XCB_BUTTON_INDEX_1 ) {
+-                    abortSystemMoveResize(xiEvent->event);
+-                } else {
+-                    return;
+-                }
+-            }
+-        }
+-        xiDeviceEvent = xiEvent;
+-        eventListener = windowEventListenerFromId(xiDeviceEvent->event);
+-        sourceDeviceId = xiDeviceEvent->sourceid; // use the actual device id instead of the master
+-        break;
+-    }
++    case XCB_INPUT_MOTION:
+     case XCB_INPUT_TOUCH_BEGIN:
+     case XCB_INPUT_TOUCH_UPDATE:
+-    case XCB_INPUT_TOUCH_END: {
++    case XCB_INPUT_TOUCH_END:
++    {
+         xiDeviceEvent = xiEvent;
+         eventListener = windowEventListenerFromId(xiDeviceEvent->event);

diff --git a/dev-qt/qtbase/qtbase-6.7.3.ebuild b/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
similarity index 99%
rename from dev-qt/qtbase/qtbase-6.7.3.ebuild
rename to dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
index 83f66ef4cd47..07859a84c2e5 100644
--- a/dev-qt/qtbase/qtbase-6.7.3.ebuild
+++ b/dev-qt/qtbase/qtbase-6.7.3-r1.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}"/${PN}-6.6.3-gcc14-avx512fp16.patch
 	"${FILESDIR}"/${PN}-6.7.2-qcontiguouscache.patch
 	"${FILESDIR}"/${PN}-6.7.2-haswell-no-rdrnd.patch
+	"${FILESDIR}"/${PN}-6.7.3-erratic-mouse-input.patch
 )
 
 src_prepare() {


^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-10-01 18:10 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-11-15 19:28 [gentoo-commits] repo/gentoo:master commit in: dev-qt/qtbase/files/, dev-qt/qtbase/ Ionen Wolkens
  -- strict thread matches above, loose matches on Subject: below --
2024-10-01 18:10 Ionen Wolkens
2024-09-25  4:03 Ionen Wolkens
2024-07-16 23:52 Ionen Wolkens
2024-03-26 20:49 Ionen Wolkens
2024-02-22 15:13 Ionen Wolkens
2023-10-21  6:22 Ionen Wolkens
2023-09-19  3:02 Ionen Wolkens
2023-09-14 20:15 Ionen Wolkens
2023-07-26 13:31 Jimi Huotari
2023-04-15 18:39 Jimi Huotari

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox