diff options
author | Ionen Wolkens <ionen@gentoo.org> | 2024-12-27 17:54:17 -0500 |
---|---|---|
committer | Ionen Wolkens <ionen@gentoo.org> | 2025-01-06 17:48:50 -0500 |
commit | 8556262f28ab8bf5cb0bbb5fbb3855c9d7b511e5 (patch) | |
tree | 0e5e0999ef11216e37aa4d23a13d42e81aa909d0 /dev-qt | |
parent | dev-qt/qtwebview: drop 6.7.2, 6.7.3 (diff) | |
download | gentoo-8556262f28ab8bf5cb0bbb5fbb3855c9d7b511e5.tar.gz gentoo-8556262f28ab8bf5cb0bbb5fbb3855c9d7b511e5.tar.bz2 gentoo-8556262f28ab8bf5cb0bbb5fbb3855c9d7b511e5.zip |
dev-qt/qtbase: drop 6.7.2-r5, 6.7.3-r2
Signed-off-by: Ionen Wolkens <ionen@gentoo.org>
Diffstat (limited to 'dev-qt')
-rw-r--r-- | dev-qt/qtbase/Manifest | 2 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch | 200 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-float16-sse2.patch | 43 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch | 32 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-haswell-no-rdrnd.patch | 100 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-qcontiguouscache.patch | 8 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch | 28 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch | 46 | ||||
-rw-r--r-- | dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch | 156 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.7.2-r5.ebuild | 364 | ||||
-rw-r--r-- | dev-qt/qtbase/qtbase-6.7.3-r2.ebuild | 361 |
11 files changed, 0 insertions, 1340 deletions
diff --git a/dev-qt/qtbase/Manifest b/dev-qt/qtbase/Manifest index a3255ea3a196..13aa830c4d2b 100644 --- a/dev-qt/qtbase/Manifest +++ b/dev-qt/qtbase/Manifest @@ -1,3 +1 @@ -DIST qtbase-everywhere-src-6.7.2.tar.xz 49364504 BLAKE2B b48b8a8decafe3262d459b9446c25561851fef88b3316107c2909f5964e8122a558b5501a3e59667bdf4776d36ea5ba0d9f227538c45c1f8e94fbc8fff4244a6 SHA512 eb4b2f1fb02ab0ed5508d32449e140778278ff1a619cfcae14920b276b5c46e01a566d73fb8f84cf2cfc81e19cb11e53ab500df6b27d12ab875aa8c07bd15d6b -DIST qtbase-everywhere-src-6.7.3.tar.xz 49426156 BLAKE2B da7eacd64bd122bf2b320c0cec41ae7630e55e0d588912bc2cc6ef7ecc755af0f375ca84c6fe0bb8381e4008da2fd43fc491c5c88ecc7694223c62700761ed37 SHA512 99495c6ed942b3a7bd19f9471bac76502baaafc20ad7e139adf25726f699c1b4deffa1ab761fe9a49a3ffe6a36d830422a20f8a369aded67a083652bf4a19290 DIST qtbase-everywhere-src-6.8.1.tar.xz 48220752 BLAKE2B b42d562f9069cf3d68807c63492f0ae1dcb9cb9a057a8d8548a7d134b36af169e403324e2902fa59c6c82ce087add107173c7606dff952dbbbc06c33b056ddff SHA512 87b7df95a63f7c28bfc7659f19658e4151b9da55b0dc4d34dc0e04c5270254b01a72f8deac0b2fc5543fce8d7542128addb398833de9c3248196aa96b2dd1601 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 deleted file mode 100644 index cc6238a55f1b..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.2-CVE-2024-39936.patch +++ /dev/null @@ -1,200 +0,0 @@ -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/files/qtbase-6.7.2-float16-sse2.patch b/dev-qt/qtbase/files/qtbase-6.7.2-float16-sse2.patch deleted file mode 100644 index a54c9daa42b9..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.2-float16-sse2.patch +++ /dev/null @@ -1,43 +0,0 @@ -Backport from 6.7.3 as it may cause major problems for x86 sse2-less -systems using gcc14. - -https://github.com/qt/qtbase/commit/39fa7e7bef90be2940c5f736935f963e3969e0bd -From: Dmitry Shachnev <mitya57@gmail.com> -Date: Sat, 27 Jul 2024 23:03:07 +0300 -Subject: [PATCH] Use _Float16 only when SSE2 is enabled -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -The GCC documentation [1] says: “On x86 targets with SSE2 enabled, GCC -supports half-precision (16-bit) floating point via the _Float16 type”. - -On non-SSE2 x86 (such as Debian i386 baseline [2]), __FLT16_MAX__ is -defined starting with GCC 14 [3], however any non-trivial use of the -_Float16 type results in an error: - -error: operation not permitted on type ‘_Float16’ without option ‘-msse2’ - -which makes some packages fail to build on i386 architecture [4]. - -[1]: https://gcc.gnu.org/onlinedocs/gcc/Half-Precision.html -[2]: https://wiki.debian.org/ArchitectureSpecificsMemo#i386-1 -[3]: https://gcc.gnu.org/g:9a19fa8b616f83474c35cc5b34a3865073ced829 -[4]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076986 ---- a/src/corelib/global/qtypes.h -+++ b/src/corelib/global/qtypes.h -@@ -264,11 +264,10 @@ - # define QFLOAT16_IS_NATIVE 1 - using NativeFloat16Type = decltype(__FLT16_MAX__); --#elif defined(Q_CC_GNU_ONLY) && defined(__FLT16_MAX__) -+#elif defined(Q_CC_GNU_ONLY) && defined(__FLT16_MAX__) && defined(__ARM_FP16_FORMAT_IEEE) - # define QFLOAT16_IS_NATIVE 1 --# ifdef __ARM_FP16_FORMAT_IEEE - using NativeFloat16Type = __fp16; --# else -+#elif defined(Q_CC_GNU_ONLY) && defined(__FLT16_MAX__) && defined(__SSE2__) -+# define QFLOAT16_IS_NATIVE 1 - using NativeFloat16Type = _Float16; --# endif - #else - # define QFLOAT16_IS_NATIVE 0 diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch b/dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch deleted file mode 100644 index 64cedb14662a..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.2-gcc15-odr.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://codereview.qt-project.org/c/qt/qtbase/+/582403 -From: Sam James <sam@gentoo.org> -Date: Sat, 10 Aug 2024 16:43:05 +0100 -Subject: [PATCH] Fix ODR violation for IsFloatType_v - -With recent GCC 15 trunk, I started to see: -``` -ld: .../kwalletentry.cc.o:(.rodata+0x0): multiple definition of `QtPrivate::IsFloatType_v<_Float16>'; - src/runtime/kwalletd/backend/CMakeFiles/KF6WalletBackend.dir/cbc.cc.o:(.rodata+0x0): first defined here -``` - -The issue is that constexpr is only implicitly inline for functions or -static data members [0], so the two constexpr IsFloatType_v definitions -here cause an ODR violation. - -Explicitly mark them as inline constexpr. - -[0] http://eel.is/c++draft/dcl.constexpr#1.sentence-3 ---- a/src/corelib/global/qcomparehelpers.h -+++ b/src/corelib/global/qcomparehelpers.h -@@ -348,9 +348,9 @@ - - template <typename T> --constexpr bool IsFloatType_v = std::is_floating_point_v<T>; -+inline constexpr bool IsFloatType_v = std::is_floating_point_v<T>; - - #if QFLOAT16_IS_NATIVE - template <> --constexpr bool IsFloatType_v<QtPrivate::NativeFloat16Type> = true; -+inline constexpr bool IsFloatType_v<QtPrivate::NativeFloat16Type> = true; - #endif - 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 deleted file mode 100644 index 0427315d69d5..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.2-haswell-no-rdrnd.patch +++ /dev/null @@ -1,100 +0,0 @@ -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/files/qtbase-6.7.2-qcontiguouscache.patch b/dev-qt/qtbase/files/qtbase-6.7.2-qcontiguouscache.patch deleted file mode 100644 index 02219feaf681..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.2-qcontiguouscache.patch +++ /dev/null @@ -1,8 +0,0 @@ -https://bugs.gentoo.org/938475 -Older version of https://codereview.qt-project.org/c/qt/qtbase/+/585668 for 6.7 ---- a/src/corelib/tools/qcontiguouscache.h -+++ b/src/corelib/tools/qcontiguouscache.h -@@ -10,2 +10,3 @@ - #include <QtCore/qtcoreexports.h> -+#include <QtCore/qglobal.h> - #include <QtCore/qtypeinfo.h> diff --git a/dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch b/dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch deleted file mode 100644 index 353383921b7f..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.2-qwindowprivate-crash.patch +++ /dev/null @@ -1,28 +0,0 @@ -https://bugs.kde.org/show_bug.cgi?id=490791 -https://codereview.qt-project.org/c/qt/qtbase/+/584636 -From: David Edmundson <davidedmundson@kde.org> -Date: Wed, 31 Jul 2024 11:59:14 +0100 -Subject: [PATCH] QWidget: Store initialScreen as QPointer - -A Toplevel QWidget can hold a pointer to the screen where it will -eventually show contents, before a QWidgetWindow is created which then -takes precedence. - -The screen member of QWindows is always kept up-to-date when a screen is -removed, but not the contents of a toplevel window. If a widget has -setScreen called but is never shown, it has potentially dangling pointer -which can cause issues in the future. - -Pick-to: 6.5 -Change-Id: Ia7c80549e8b3c90a75cdde745487e87ecddaca63 -Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> -(cherry picked from commit d67acf94afffde6a71498be6e30447f3acf7558e) -Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> -(cherry picked from commit 6af4e5f604fff40cdb3be40099b8884362806ef4) ---- a/src/widgets/kernel/qwidget_p.h -+++ b/src/widgets/kernel/qwidget_p.h -@@ -110,3 +110,3 @@ - Qt::WindowFlags savedFlags; // Save widget flags while showing fullscreen -- QScreen *initialScreen; // Screen when passing a QDesktop[Screen]Widget as parent. -+ QPointer<QScreen> initialScreen; // Screen when passing a QDesktop[Screen]Widget as parent. - diff --git a/dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch b/dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch deleted file mode 100644 index fc60e30b62c1..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.3-QTBUG-125053.patch +++ /dev/null @@ -1,46 +0,0 @@ -https://bugreports.qt.io/browse/QTBUG-125053 -https://bugreports.qt.io/browse/QTBUG-127340 -https://codereview.qt-project.org/c/qt/qtbase/+/593123 ---- a/src/corelib/itemmodels/qabstractitemmodel.cpp -+++ b/src/corelib/itemmodels/qabstractitemmodel.cpp -@@ -3396,4 +3396,11 @@ - void QAbstractItemModel::beginResetModel() - { -+ Q_D(QAbstractItemModel); -+ if (d->resetting) { -+ qWarning() << "beginResetModel called on" << this << "without calling endResetModel first"; -+ // Warn, but don't return early in case user code relies on the incorrect behavior. -+ } -+ -+ d->resetting = true; - emit modelAboutToBeReset(QPrivateSignal()); - } -@@ -3413,6 +3420,12 @@ - { - Q_D(QAbstractItemModel); -+ if (!d->resetting) { -+ qWarning() << "endResetModel called on" << this << "without calling beginResetModel first"; -+ // Warn, but don't return early in case user code relies on the incorrect behavior. -+ } -+ - d->invalidatePersistentIndexes(); - resetInternalData(); -+ d->resetting = false; - emit modelReset(QPrivateSignal()); - } ---- a/src/corelib/itemmodels/qabstractitemmodel_p.h -+++ b/src/corelib/itemmodels/qabstractitemmodel_p.h -@@ -46,4 +46,6 @@ - ~QAbstractItemModelPrivate(); - -+ static const QAbstractItemModelPrivate *get(const QAbstractItemModel *model) { return model->d_func(); } -+ - void removePersistentIndexData(QPersistentModelIndexData *data); - void movePersistentIndexes(const QList<QPersistentModelIndexData *> &indexes, int change, const QModelIndex &parent, -@@ -116,4 +118,6 @@ - } persistent; - -+ bool resetting = false; -+ - static const QHash<int,QByteArray> &defaultRoleNames(); - static bool isVariantLessThan(const QVariant &left, const QVariant &right, 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 deleted file mode 100644 index 14bdf1463949..000000000000 --- a/dev-qt/qtbase/files/qtbase-6.7.3-erratic-mouse-input.patch +++ /dev/null @@ -1,156 +0,0 @@ -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.2-r5.ebuild b/dev-qt/qtbase/qtbase-6.7.2-r5.ebuild deleted file mode 100644 index bdb824ccb53d..000000000000 --- a/dev-qt/qtbase/qtbase-6.7.2-r5.ebuild +++ /dev/null @@ -1,364 +0,0 @@ -# Copyright 2021-2024 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 ppc ppc64 ~riscv x86" -fi - -declare -A QT6_IUSE=( - [global]="+ssl +udev zstd" - [core]="icu journald syslog" - [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=" - ?? ( journald syslog ) - $( - 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) -# nolink: renderdoc, systemd -COMMON_DEPEND=" - 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:= ) - journald? ( sys-apps/systemd ) - - 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.24.41-r1:3[X?,wayland?] - 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 ) - ) -" -RDEPEND=" - ${COMMON_DEPEND} - syslog? ( virtual/logger ) -" -DEPEND=" - ${COMMON_DEPEND} - 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 - "${FILESDIR}"/${PN}-6.7.2-gcc15-odr.patch - "${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() { - 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() { - # The only component that uses gdk backends is the qgtk3 platformtheme plugin - if use gtk; then - # defang automagic dependencies - use wayland || append-cxxflags -DGENTOO_GTK_HIDE_WAYLAND - use X || append-cxxflags -DGENTOO_GTK_HIDE_X11 - fi - - 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) - $(qt_feature journald) - $(qt_feature syslog) - - # 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_qprocess #936484 - 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 - ') - # 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 -} diff --git a/dev-qt/qtbase/qtbase-6.7.3-r2.ebuild b/dev-qt/qtbase/qtbase-6.7.3-r2.ebuild deleted file mode 100644 index 69e086cb213e..000000000000 --- a/dev-qt/qtbase/qtbase-6.7.3-r2.ebuild +++ /dev/null @@ -1,361 +0,0 @@ -# Copyright 2021-2024 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 ~ppc ~ppc64 ~riscv x86" -fi - -declare -A QT6_IUSE=( - [global]="+ssl +udev zstd" - [core]="icu journald syslog" - [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=" - ?? ( journald syslog ) - $( - 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) -# nolink: renderdoc, systemd -COMMON_DEPEND=" - 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:= ) - journald? ( sys-apps/systemd ) - - 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.24.41-r1:3[X?,wayland?] - 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 ) - ) -" -RDEPEND=" - ${COMMON_DEPEND} - syslog? ( virtual/logger ) -" -DEPEND=" - ${COMMON_DEPEND} - 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-qcontiguouscache.patch - "${FILESDIR}"/${PN}-6.7.2-haswell-no-rdrnd.patch - "${FILESDIR}"/${PN}-6.7.3-erratic-mouse-input.patch - "${FILESDIR}"/${PN}-6.7.3-QTBUG-125053.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() { - if use gtk; then - # defang automagic dependencies (bug #624960) - use X || append-cxxflags -DGENTOO_GTK_HIDE_X11 - use wayland || append-cxxflags -DGENTOO_GTK_HIDE_WAYLAND - fi - - 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) - $(qt_feature journald) - $(qt_feature syslog) - - # 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_qprocess #936484 - 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 - ') - # 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 -} |