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"

Reply via email to