[packages/qt6] up to 6.7.3
atler
atler at pld-linux.org
Sat Sep 28 12:14:40 CEST 2024
commit 7135573a1ee00c1cd5ca848e0df213e58271b714
Author: Jan Palus <atler at pld-linux.org>
Date: Sat Sep 28 12:14:20 2024 +0200
up to 6.7.3
CVE-2024-39936-qtbase-6.7.patch | 138 ----------------------------------------
gcc14.patch | 58 -----------------
qt6.spec | 24 +++----
3 files changed, 10 insertions(+), 210 deletions(-)
---
diff --git a/qt6.spec b/qt6.spec
index 5cc2021..c404ab3 100644
--- a/qt6.spec
+++ b/qt6.spec
@@ -103,20 +103,18 @@
Summary: Qt6 Library
Summary(pl.UTF-8): Biblioteka Qt6
Name: qt6
-Version: 6.7.2
-Release: 4
+Version: 6.7.3
+Release: 1
License: LGPL v3 or GPL v2 or GPL v3 or commercial
Group: X11/Libraries
Source0: https://download.qt.io/official_releases/qt/6.7/%{version}/single/qt-everywhere-src-%{version}.tar.xz
-# Source0-md5: 06d35b47349c7c0a45710daad359e07b
+# Source0-md5: 3efadf18f1e16e3271abd09c606d3c9b
Patch0: system-cacerts.patch
Patch1: ninja-program.patch
Patch2: %{name}-gn.patch
Patch3: no-implicit-sse2.patch
Patch4: x32.patch
Patch5: qtwebengine-cmake-build-type.patch
-Patch6: CVE-2024-39936-qtbase-6.7.patch
-Patch7: gcc14.patch
URL: https://www.qt.io/
%{?with_directfb:BuildRequires: DirectFB-devel}
BuildRequires: EGL-devel
@@ -3673,8 +3671,6 @@ narzędzia.
%patch3 -p1
%patch4 -p1
%patch5 -p1
-%patch6 -p1 -d qtbase
-%patch7 -p1 -d qtbase
%{__sed} -i -e 's,usr/X11R6/,usr/,g' qtbase/mkspecs/linux-g++-64/qmake.conf
@@ -5288,13 +5284,13 @@ rm -rf $RPM_BUILD_ROOT
%files -n Qt6Multimedia-plugin-gstreamer-devel
%defattr(644,root,root,755)
-%{_libdir}/libQt6QGstreamerMediaPlugin.a
-%{_libdir}/libQt6QGstreamerMediaPlugin.prl
-%{_includedir}/qt6/QtQGstreamerMediaPlugin
-%{_libdir}/cmake/Qt6QGstreamerMediaPluginPrivate
-%{qt6dir}/metatypes/qt6qgstreamermediapluginprivate_pld_metatypes.json
-%{qt6dir}/mkspecs/modules/qt_lib_qgstreamermediaplugin_private.pri
-%{qt6dir}/modules/QGstreamerMediaPluginPrivate.json
+%{_libdir}/libQt6QGstreamerMediaPluginImpl.a
+%{_libdir}/libQt6QGstreamerMediaPluginImpl.prl
+%{_includedir}/qt6/QtQGstreamerMediaPluginImpl
+%{_libdir}/cmake/Qt6QGstreamerMediaPluginImplPrivate
+%{qt6dir}/metatypes/qt6qgstreamermediapluginimplprivate_pld_metatypes.json
+%{qt6dir}/mkspecs/modules/qt_lib_qgstreamermediapluginimpl_private.pri
+%{qt6dir}/modules/QGstreamerMediaPluginImplPrivate.json
%files -n Qt6Network
%defattr(644,root,root,755)
diff --git a/CVE-2024-39936-qtbase-6.7.patch b/CVE-2024-39936-qtbase-6.7.patch
deleted file mode 100644
index bef53fb..0000000
--- a/CVE-2024-39936-qtbase-6.7.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp
-index 0abd99b9bc2..3631b13dc85 100644
---- a/src/network/access/qhttp2protocolhandler.cpp
-+++ b/src/network/access/qhttp2protocolhandler.cpp
-@@ -303,12 +303,12 @@ bool QHttp2ProtocolHandler::sendRequest()
- }
- }
-
-- 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
- // and have a response already?
-diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp
-index 6766989690c..1e4161d1fdf 100644
---- a/src/network/access/qhttpnetworkconnectionchannel.cpp
-+++ b/src/network/access/qhttpnetworkconnectionchannel.cpp
-@@ -209,6 +209,10 @@ void QHttpNetworkConnectionChannel::abort()
- bool QHttpNetworkConnectionChannel::sendRequest()
- {
- Q_ASSERT(protocolHandler);
-+ if (waitingForPotentialAbort) {
-+ needInvokeSendRequest = true;
-+ return false; // this return value is unused
-+ }
- return protocolHandler->sendRequest();
- }
-
-@@ -221,21 +225,28 @@ bool QHttpNetworkConnectionChannel::sendRequest()
- void QHttpNetworkConnectionChannel::sendRequestDelayed()
- {
- QMetaObject::invokeMethod(this, [this] {
-- Q_ASSERT(protocolHandler);
- if (reply)
-- protocolHandler->sendRequest();
-+ sendRequest();
- }, Qt::ConnectionType::QueuedConnection);
- }
-
- void QHttpNetworkConnectionChannel::_q_receiveReply()
- {
- Q_ASSERT(protocolHandler);
-+ if (waitingForPotentialAbort) {
-+ needInvokeReceiveReply = true;
-+ return;
-+ }
- protocolHandler->_q_receiveReply();
- }
-
- void QHttpNetworkConnectionChannel::_q_readyRead()
- {
- Q_ASSERT(protocolHandler);
-+ if (waitingForPotentialAbort) {
-+ needInvokeReadyRead = true;
-+ return;
-+ }
- protocolHandler->_q_readyRead();
- }
-
-@@ -1239,7 +1250,18 @@ void QHttpNetworkConnectionChannel::_q_encrypted()
- if (!h2RequestsToSend.isEmpty()) {
- // 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).
- }
-@@ -1257,6 +1279,28 @@ void QHttpNetworkConnectionChannel::_q_encrypted()
- QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection);
- }
-
-+
-+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()
- {
- const auto h2RequestsToSendCopy = std::exchange(h2RequestsToSend, {});
-diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h
-index c42290feca4..061f20fd426 100644
---- a/src/network/access/qhttpnetworkconnectionchannel_p.h
-+++ b/src/network/access/qhttpnetworkconnectionchannel_p.h
-@@ -74,6 +74,10 @@ public:
- QAbstractSocket *socket;
- 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
- QHttpNetworkReply *reply; // current reply for this request, only used for HTTP
-@@ -146,6 +150,8 @@ public:
- void closeAndResendCurrentRequest();
- void resendCurrentRequest();
-
-+ void checkAndResumeCommunication();
-+
- bool isSocketBusy() const;
- bool isSocketWriting() const;
- bool isSocketWaiting() const;
diff --git a/gcc14.patch b/gcc14.patch
deleted file mode 100644
index d5bd600..0000000
--- a/gcc14.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 39fa7e7bef90be2940c5f736935f963e3969e0bd Mon Sep 17 00:00:00 2001
-From: Dmitry Shachnev <mitya57 at gmail.com>
-Date: Sat, 27 Jul 2024 23:03:07 +0300
-Subject: 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
-
-Pick-to: 6.8 6.7 6.5
-Change-Id: I393ee83eb8e8888f5fc9e3b349dc8b063eef6f5a
-Reviewed-by: Thiago Macieira <thiago.macieira at intel.com>
-Reviewed-by: Edward Welbourne <edward.welbourne at qt.io>
----
- src/corelib/global/qtypes.h | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-(limited to 'src/corelib/global/qtypes.h')
-
-diff --git a/src/corelib/global/qtypes.h b/src/corelib/global/qtypes.h
-index db9ba38e4c..28458f63c2 100644
---- a/src/corelib/global/qtypes.h
-+++ b/src/corelib/global/qtypes.h
-@@ -263,13 +263,12 @@ using NativeFloat16Type = std::float16_t;
- // disabled due to https://github.com/llvm/llvm-project/issues/56963
- # 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
- using NativeFloat16Type = void;
---
-cgit v1.2.3
-
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/qt6.git/commitdiff/7135573a1ee00c1cd5ca848e0df213e58271b714
More information about the pld-cvs-commit
mailing list