guix_mirror_bot pushed a commit to branch qt-team
in repository guix.
commit 3425af871c3618f806752e318596d6e715219c0f
Author: Zheng Junjie <[email protected]>
AuthorDate: Mon Jul 21 23:26:14 2025 +0800
gnu: qtbase: Update to 6.9.1.
* gnu/packages/qt.scm (qtbase): Update to 6.9.1.
[source]<patches>: Add qtbase-send-RST_STREAM-states-when-destroyed.patch
[arguments]<#:phases>: Adjust patch-more-paths phase.
* gnu/packages/patches/qtbase-send-RST_STREAM-states-when-destroyed.patch:
New
patch.
* gnu/local.mk (dist_patch_DATA): Register it.
Change-Id: Ia890e2c944b476feaaabb7d78abdd277209db7b9
---
gnu/local.mk | 1 +
...ase-send-RST_STREAM-states-when-destroyed.patch | 37 ++++++++++++++++++++++
gnu/packages/qt.scm | 18 ++++++-----
3 files changed, 48 insertions(+), 8 deletions(-)
diff --git a/gnu/local.mk b/gnu/local.mk
index 453df71ee3..abb41bd7bd 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2220,6 +2220,7 @@ dist_patch_DATA =
\
%D%/packages/patches/qtbase-absolute-runpath.patch \
%D%/packages/patches/qtbase-qmake-fix-includedir.patch \
%D%/packages/patches/qtbase-qmlimportscanner-qml-import-path.patch \
+ %D%/packages/patches/qtbase-send-RST_STREAM-states-when-destroyed.patch\
%D%/packages/patches/qtbase-moc-ignore-gcc-macro.patch \
%D%/packages/patches/qtbase-qmake-use-libname.patch \
%D%/packages/patches/qtbase-5-use-TZDIR.patch \
diff --git
a/gnu/packages/patches/qtbase-send-RST_STREAM-states-when-destroyed.patch
b/gnu/packages/patches/qtbase-send-RST_STREAM-states-when-destroyed.patch
new file mode 100644
index 0000000000..fbee767469
--- /dev/null
+++ b/gnu/packages/patches/qtbase-send-RST_STREAM-states-when-destroyed.patch
@@ -0,0 +1,37 @@
+from https://codereview.qt-project.org/c/qt/qtbase/+/663298
+
+From dd5193d27ad5683b9c2da0fef1d53b967f702243 Mon Sep 17 00:00:00 2001
+From: MÃ¥rten Nordheim <[email protected]>
+Date: Wed, 23 Jul 2025 16:30:40 +0200
+Subject: [PATCH] QHttp2Stream: send RST_STREAM in most states when destroyed
+
+Apart from Idle (not started) and Closed (nothing more will happen),
+it is quite likely that we benefit from sending an RST_STREAM
+if we are done with it in more states than just
+Open (started, but no one has finished their part) or HalfClosedRemote
+(the peer has finished their part).
+
+Specifically HalfClosedLocal (we finished sending our stuff) makes a lot
+of sense to send, seeing as it means we have likely sent our HEADERS
+and are waiting for a response. Without marking the stream as locally
+reset we would treat any incoming HEADERS as unexpected, and invalid,
+closing the connection.
+
+Task-number: QTBUG-138156
+Pick-to: 6.10 6.9 6.8
+Change-Id: I9ac6144ee85915f8f6a02e73909cdb01a73fe409
+---
+
+diff --git a/src/network/access/qhttp2connection.cpp
b/src/network/access/qhttp2connection.cpp
+index 9b339a1..1d5c0d9 100644
+--- a/src/network/access/qhttp2connection.cpp
++++ b/src/network/access/qhttp2connection.cpp
+@@ -44,7 +44,7 @@
+
+ QHttp2Stream::~QHttp2Stream() noexcept {
+ if (auto *connection = getConnection()) {
+- if (m_state == State::Open || m_state == State::HalfClosedRemote) {
++ if (m_state != State::Idle && m_state != State::Closed) {
+ qCDebug(qHttp2ConnectionLog, "[%p] stream %u, destroyed while
still open", connection,
+ m_streamID);
+ // Check if we can still send data, then send RST_STREAM:
diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index b31bb19f9a..be1fa075ee 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -761,13 +761,13 @@ developers using C++ or QML, a CSS & JavaScript like
language.")
(package
(inherit qtbase-5)
(name "qtbase")
- (version "6.8.2")
+ (version "6.9.1")
(source (origin
(inherit (package-source qtbase-5))
(uri (qt-url name version))
(sha256
(base32
- "01gy1p8zvxq8771x6iqkrc7s3kzdddgf1i7xj656w7j1dp746801"))
+ "13pjmha1jpalpy5qc5gijny7i648clsmcc08c5cik6nchfzyvjj0"))
(modules '((guix build utils)))
(snippet
;; corelib uses bundled harfbuzz, md4, md5, sha3
@@ -777,11 +777,13 @@ developers using C++ or QML, a CSS & JavaScript like
language.")
"pcre2" "md4c" "libpng" "libjpeg"
"sqlite" "xcb" "zlib"))))
(patches
- (search-patches "qtbase-moc-ignore-gcc-macro.patch"
- "qtbase-absolute-runpath.patch"
- "qtbase-qmake-use-libname.patch"
- "qtbase-qmlimportscanner-qml-import-path.patch"
- "qtbase-qmake-fix-includedir.patch"))))
+ (search-patches
+ "qtbase-send-RST_STREAM-states-when-destroyed.patch"
+ "qtbase-moc-ignore-gcc-macro.patch"
+ "qtbase-absolute-runpath.patch"
+ "qtbase-qmake-use-libname.patch"
+ "qtbase-qmlimportscanner-qml-import-path.patch"
+ "qtbase-qmake-fix-includedir.patch"))))
(build-system cmake-build-system)
(arguments
(substitute-keyword-arguments (package-arguments qtbase-5)
@@ -875,7 +877,7 @@ endif()\n" below)))))
;; from PATH anyway.
(("original_cmake_path=\"@CMAKE_COMMAND@\"")
"original_cmake_path=\"\""))
- (substitute* "src/gui/platform/unix/qgenericunixservices.cpp"
+ (substitute* "src/gui/platform/unix/qdesktopunixservices.cpp"
(("\"xdg-open\"")
(format #f "~s" (search-input-file inputs "bin/xdg-open"))))
(substitute* '("mkspecs/features/qt_functions.prf"