Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package qt6-declarative for openSUSE:Factory 
checked in at 2026-10-29 18:18:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/qt6-declarative (Old)
 and      /work/SRC/openSUSE:Factory/.qt6-declarative.new.1255 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "qt6-declarative"

Thu Oct 29 18:18:07 2026 rev:66 rq:1393388 version:6.12.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/qt6-declarative/qt6-declarative.changes  
2026-10-18 19:21:24.073976673 +0200
+++ 
/work/SRC/openSUSE:Factory/.qt6-declarative.new.1255/qt6-declarative.changes    
    2026-10-29 18:18:11.764283351 +0100
@@ -1,0 +2,6 @@
+Wed Oct 28 10:02:15 UTC 2026 - Christophe Marin <[email protected]>
+
+- Add upstream change (kde#527720)
+  * 0001-Fix-teardown-hang-with-QuickPixmapReader.patch
+
+-------------------------------------------------------------------

New:
----
  0001-Fix-teardown-hang-with-QuickPixmapReader.patch

----------(New B)----------
  New:- Add upstream change (kde#527720)
  * 0001-Fix-teardown-hang-with-QuickPixmapReader.patch
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ qt6-declarative.spec ++++++
--- /var/tmp/diff_new_pack.6W0XMO/_old  2026-10-29 18:18:13.093339048 +0100
+++ /var/tmp/diff_new_pack.6W0XMO/_new  2026-10-29 18:18:13.097339215 +0100
@@ -41,6 +41,8 @@
 Source99:       qt6-declarative-rpmlintrc
 # PATCH-FIX-OPENSUSE
 Patch0:         0001-qmlimportscanner-Include-module-versions-again.patch
+# PATCH-FIX-UPSTREAM
+Patch1:         0001-Fix-teardown-hang-with-QuickPixmapReader.patch
 BuildRequires:  memory-constraints
 BuildRequires:  pkgconfig
 BuildRequires:  python3-base

++++++ 0001-Fix-teardown-hang-with-QuickPixmapReader.patch ++++++
>From bbcaf3f39143b9add9722f4e31b51fc1dd102892 Mon Sep 17 00:00:00 2001
From: David Edmundson <[email protected]>
Date: Thu, 1 Oct 2026 13:35:58 +0100
Subject: [PATCH] Fix teardown hang with QuickPixmapReader

QQuickPixmapReader is a QThread subclass that encapsulates the thread
usage in the constructor/destructor.

The current code is broken if the QQmlEngine (and thus
QuickPixmapReader) are deleted as children of the QCoreApplication. At
this point no new events are posted and the deleteLater doesn't reach
the relevant thread. We then hang forever waiting on a thread that will
never quit.

The eventloop_hack was added in 2010
(ff983ee8257b79143911ca58ebedc49b1660a0c4 before Qt split) with the
comment that QThread::quit was not thread safe. Current docs say it is.

Change-Id: I0ae1f6c5cf269dfe5cb7b96c682f50692b210da1
Reviewed-by: Marco Martin <[email protected]>
Reviewed-by: Ulf Hermann <[email protected]>
Reviewed-by: Shawn Rutledge <[email protected]>
(cherry picked from commit 7214a32024be080099ad05c596ee778623ed66d8)
Reviewed-by: Qt Cherry-pick Bot <[email protected]>
---
 src/quick/util/qquickpixmapcache.cpp | 10 +---------
 1 file changed, 1 insertion(+), 9 deletions(-)

diff --git a/src/quick/util/qquickpixmapcache.cpp 
b/src/quick/util/qquickpixmapcache.cpp
index 288d7afbce..c91fa7b62c 100644
--- a/src/quick/util/qquickpixmapcache.cpp
+++ b/src/quick/util/qquickpixmapcache.cpp
@@ -261,7 +261,6 @@ private:
     {
         return runLoopReaderThreadExecutionEnforcer;
     }
-    QObject *eventLoopQuitHack;
     QMutex mutex;
     ReaderThreadExecutionEnforcer *runLoopReaderThreadExecutionEnforcer = 
nullptr;
 #else
@@ -606,9 +605,6 @@ QQuickPixmapReader::QQuickPixmapReader(QQmlEngine *eng)
 
     Q_DETACH_THREAD_AFFINITY_MARKER(m_readerThreadAffinityMarker);
 #if QT_CONFIG(quick_pixmap_cache_threaded_download)
-    eventLoopQuitHack = new QObject;
-    eventLoopQuitHack->moveToThread(this);
-    QObject::connect(eventLoopQuitHack, &QObject::destroyed, this, 
&QThread::quit, Qt::DirectConnection);
     start(QThread::LowestPriority);
 #else
     run(); // Call nonblocking run for ourselves.
@@ -656,11 +652,7 @@ QQuickPixmapReader::~QQuickPixmapReader()
     }
 
 #if QT_CONFIG(quick_pixmap_cache_threaded_download)
-    // ... schedule stopping of this thread via the eventLoopQuitHack 
(processJobs scheduled above
-    // will run first) ...
-    eventLoopQuitHack->deleteLater();
-    // ... and wait() for it all to finish, as the thread will only quit after 
eventLoopQuitHack
-    // has been deleted.
+    quit();
     wait();
 #endif
 
-- 
2.56.0

Reply via email to