[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#1110539: marked as done (unblock: qtmir/0.8.0~git20250407.ea2f477-2)



Your message dated Thu, 14 Aug 2025 13:52:43 +0200
with message-id <906e549b-f761-4c21-b196-54e704c4bee0@debian.org>
and subject line close all open unblock requests, the trixie release happened
has caused the Debian Bug report #1110539,
regarding unblock: qtmir/0.8.0~git20250407.ea2f477-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
1110539: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1110539
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: qtmir@packages.debian.org
Control: affects -1 + src:qtmir
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package qtmir

This unblock requests comes very late in the deep home that it can still
get accepted. It goes together with #1110538 for lomiri 0.5.0-4.

[ Reason ]

+  * debian/patches:
+    + Add 0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch. Fix
+      cursor positioning if display is rotated.

-> This patch caused my to hesitate for maybe too long. It brings in a
regression and this patch needs to be removed from the package again for
the first point release.

+    + Add 0009_src-modules-Add-header-for-getpid.patch. Add include for getpid()
+      function.

-> Compiler warning fix. Trivial.

+    + Add 0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch.
+      Regression fix, fix arbitrary font rendering glitches. (LP:#1583088).

-> This one is important: From time to time the fonts in a Lomiri
session become totally unreadable. It can immediately after login or in
the course of the session.

+    + Add 0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch.
+      Selecting the active window can lead to a range exception, so avoid a
+      crash by wrapping this in a try-catch.

-> Stabilize Lomiri, avoid session crashes when selecting the active window.

+    + Add 0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch. Drop
+      overzealous code when removing a window.

-> Removes overzealous code causing instability.

+    + Add 0013_src-modules-Address-review-comments-for-MirSurface.patch,
+      0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch, 0015_src-
+      modules-Use-explicit-signal-to-signify-a-teardow.patch, 0016_src-modules-
+      Drop-references-before-teardown.patch. Address crash-on-close issue for
+      windows with the same APP_ID (causing Lomiri shell to crash). This goes
+      together with a changeset in lomiri src:pkg.

-> This goes together with a fix in Lomiri for handling closing of
multi-window-capable apps (such as lomiri-terminal-app) well when
closing one of its windows. (Without this one, closing terminal app can
tear down the whole Lomiri session).

Similar to what I wrote for this problem in lomiri 0.5.0-4's unblock
request: Upstream has now provided a better fix for this and we will
replace this patch in a follow-up upload for the 1st point release of
trixie.

+    + Trivial rebase of 2003_disable-benchmarks.patch.

-> trivial patch rebasing

[ Impact ]
Stability issues in Lomiri session. (Arbitrary session crashes, loss of unsaved user data).

[ Tests ]
Manual tests on notebooks and tablets.

[ Risks ]
For Lomiri users.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
Relevant for Lomiri on Debian.

unblock qtmir/0.8.0~git20250407.ea2f477-2
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/changelog qtmir-0.8.0~git20250407.ea2f477/debian/changelog
--- qtmir-0.8.0~git20250407.ea2f477/debian/changelog	2025-04-17 21:25:11.000000000 +0200
+++ qtmir-0.8.0~git20250407.ea2f477/debian/changelog	2025-07-30 15:21:45.000000000 +0200
@@ -1,3 +1,27 @@
+qtmir (0.8.0~git20250407.ea2f477-2) unstable; urgency=medium
+
+  * debian/patches:
+    + Add 0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch. Fix
+      cursor positioning if display is rotated.
+    + Add 0009_src-modules-Add-header-for-getpid.patch. Add include for getpid()
+      function.
+    + Add 0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch.
+      Regression fix, fix arbitrary font rendering glitches. (LP:#1583088).
+    + Add 0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch.
+      Selecting the active window can lead to a range exception, so avoid a
+      crash by wrapping this in a try-catch.
+    + Add 0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch. Drop
+      overzealous code when removing a window.
+    + Add 0013_src-modules-Address-review-comments-for-MirSurface.patch,
+      0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch, 0015_src-
+      modules-Use-explicit-signal-to-signify-a-teardow.patch, 0016_src-modules-
+      Drop-references-before-teardown.patch. Address crash-on-close issue for
+      windows with the same APP_ID (causing Lomiri shell to crash). This goes
+      together with a changeset in lomiri src:pkg.
+    + Trivial rebase of 2003_disable-benchmarks.patch.
+
+ -- Mike Gabriel <sunweaver@debian.org>  Wed, 30 Jul 2025 15:21:45 +0200
+
 qtmir (0.8.0~git20250407.ea2f477-1) unstable; urgency=medium
 
   * New upstream Git snapshot.
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch	2025-05-15 09:58:10.000000000 +0200
@@ -0,0 +1,34 @@
+From 9e93db5bdbd54e3ae495762ae47c795cab920bbd Mon Sep 17 00:00:00 2001
+From: Ratchanan Srirattanamet <ratchanan@ubports.com>
+Date: Mon, 12 May 2025 22:30:24 +0700
+Subject: [PATCH] mirserver/cursor: take Shell's rotation into account
+
+It's incorrect to simply subtract the screen's top left from global
+cursor position to turn it into a local position; one must use
+QQuickItem::mapFromGlobal() to let QtQuick take rotation (among others)
+into account. Since the position is relative to the item's parent, call
+to its parent for this.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/platforms/mirserver/cursor.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/platforms/mirserver/cursor.cpp b/src/platforms/mirserver/cursor.cpp
+index 3ded65ef..31bf7dbc 100644
+--- a/src/platforms/mirserver/cursor.cpp
++++ b/src/platforms/mirserver/cursor.cpp
+@@ -148,8 +148,9 @@ void Cursor::registerMousePointer(MirMousePointerInterface *mousePointer)
+     auto updatePositionFunction = [mousePointer](const QPoint& screenPos) {
+         if (!mousePointer->window()) return;
+         if (!mousePointer->isEnabled()) return;
++        if (!mousePointer->parentItem()) return;
+ 
+-        QPoint localPos = screenPos - mousePointer->window()->geometry().topLeft();
++        QPoint localPos = mousePointer->parentItem()->mapFromGlobal(screenPos).toPoint();
+         mousePointer->moveTo(localPos);
+     };
+ 
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch	2025-07-29 10:49:48.000000000 +0200
@@ -0,0 +1,33 @@
+From b7333e0a00c2d7169c48e16b6e08c32803823fb4 Mon Sep 17 00:00:00 2001
+From: Alfred <dev.beidl@gmail.com>
+Date: Thu, 11 Jul 2024 18:54:41 +0200
+Subject: [PATCH 02/14] src/modules: Re-introduce lost workaround for font
+ render issue
+
+Lost in commit b27b44772de3be476a05831c0f14a63f56d79378, pulled from
+revision 15fcc65039b19a598eda76e18260ea9824a13048 and placed in a
+similar place around buffer bindings happen.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/mirbuffersgtexture.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/modules/QtMir/Application/mirbuffersgtexture.cpp b/src/modules/QtMir/Application/mirbuffersgtexture.cpp
+index 47d9f03a..6397b528 100644
+--- a/src/modules/QtMir/Application/mirbuffersgtexture.cpp
++++ b/src/modules/QtMir/Application/mirbuffersgtexture.cpp
+@@ -135,6 +135,10 @@ public:
+         f->glBindTexture(GL_TEXTURE_2D, m_textureId);
+ 
+         m_texSourceBuf->bind();
++
++        // Fix for lp:1583088 - For non-GL clients, Mir uploads the client pixel buffer to a GL texture.
++        // But as it does so, it changes some GL state and neglects to restore it, which breaks Qt's rendering.
++        f->glPixelStorei(GL_UNPACK_ALIGNMENT, 4); // 4 is the default which Qt uses
+     }
+ 
+ private:
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0009_src-modules-Add-header-for-getpid.patch	2025-07-29 10:49:48.000000000 +0200
@@ -0,0 +1,27 @@
+From e2af137c0e778e6e3c1440d0b782456793a9b5e3 Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Thu, 8 Aug 2024 22:04:41 +0200
+Subject: [PATCH 09/14] src/modules: Add header for getpid()
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/application.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/modules/QtMir/Application/application.cpp b/src/modules/QtMir/Application/application.cpp
+index ef9e15cd..07d1aa92 100644
+--- a/src/modules/QtMir/Application/application.cpp
++++ b/src/modules/QtMir/Application/application.cpp
+@@ -36,6 +36,9 @@
+ // std
+ #include <csignal>
+ 
++// Linux
++#include <unistd.h>
++
+ namespace shellapp = lomiri::shell::application;
+ 
+ #define DEBUG_MSG qCDebug(QTMIR_APPLICATIONS).nospace() << "Application[" << appId() <<"]::" << __func__
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch	2025-07-29 10:49:48.000000000 +0200
@@ -0,0 +1,54 @@
+From ca5e7399ca86280afcedf14f8ee5e09689c94abc Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Fri, 4 Jul 2025 10:49:52 +0200
+Subject: [PATCH 11/14] src/platforms: Wrap window activity change in a
+ try-catch
+
+Selecting the active window can lead to a range exception,
+so avoid a crash by wrapping this in a try-catch.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ .../mirserver/wrappedwindowmanagementpolicy.cpp      | 12 +++++++++---
+ 1 file changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+index b303b39f..d04813d3 100644
+--- a/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
++++ b/src/platforms/mirserver/wrappedwindowmanagementpolicy.cpp
+@@ -619,7 +619,9 @@ void WrappedWindowManagementPolicy::deliver_keyboard_event(const MirKeyboardEven
+     if (mir_keyboard_event_action(event) == mir_keyboard_action_down) {
+         tools.invoke_under_lock([&]() {
+             if (tools.active_window() != window) {
+-                tools.select_active_window(window);
++                try {
++                    tools.select_active_window(window);
++                } catch (const std::exception& e) { }
+             }
+         });
+     }
+@@ -631,7 +633,9 @@ void WrappedWindowManagementPolicy::deliver_touch_event(const MirTouchEvent *eve
+ {
+     tools.invoke_under_lock([&]() {
+         if (tools.active_window() != window) {
+-            tools.select_active_window(window);
++            try {
++                tools.select_active_window(window);
++            } catch (const std::exception& e) { }
+         }
+     });
+ 
+@@ -644,7 +648,9 @@ void WrappedWindowManagementPolicy::deliver_pointer_event(const MirPointerEvent
+     if (mir_pointer_event_action(event) == mir_pointer_action_button_down) {
+         tools.invoke_under_lock([&]() {
+             if (tools.active_window() != window) {
+-                tools.select_active_window(window);
++                try {
++                    tools.select_active_window(window);
++                } catch (const std::exception& e) { }
+             }
+         });
+     }
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch	2025-07-29 10:49:48.000000000 +0200
@@ -0,0 +1,38 @@
+From c6bee71ba608570ca8417399f32f5f5cf7796f0a Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Tue, 22 Jul 2025 12:47:38 +0200
+Subject: [PATCH 12/14] src/modules: Partial revert of
+ e73ef71622ad3202b77bf6005f73134726d6394a
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/windowmodel.cpp | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/src/modules/QtMir/Application/windowmodel.cpp b/src/modules/QtMir/Application/windowmodel.cpp
+index c95adc73..0d65d7f5 100644
+--- a/src/modules/QtMir/Application/windowmodel.cpp
++++ b/src/modules/QtMir/Application/windowmodel.cpp
+@@ -81,17 +81,10 @@ void WindowModel::onWindowAdded(const NewWindow &window)
+     beginInsertRows(QModelIndex(), index, index);
+ 
+ #if MIR_SERVER_VERSION >= MIR_VERSION_NUMBER(2, 20, 0)
+-    auto mirSurface = new MirSurface(window, m_windowController, *m_glProvider);
++    m_windowModel.append(new MirSurface(window, m_windowController, *m_glProvider));
+ #else
+-    auto mirSurface = new MirSurface(window, m_windowController);
++    m_windowModel.append(new MirSurface(window, m_windowController));
+ #endif
+-    connect(mirSurface, &MirSurface::isBeingDisplayedChanged, this, [=, this](){
+-        if (mirSurface->isBeingDisplayed())
+-            return;
+-        onWindowRemoved(window.windowInfo);
+-    });
+-
+-    m_windowModel.append(mirSurface);
+     endInsertRows();
+     Q_EMIT countChanged();
+ }
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0013_src-modules-Address-review-comments-for-MirSurface.patch	2025-07-29 10:49:48.000000000 +0200
@@ -0,0 +1,34 @@
+From ca9e9a2635bc817438ea0028b63a58db3940d0b0 Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Tue, 22 Jul 2025 12:48:17 +0200
+Subject: [PATCH 13/14] src/modules: Address review comments for MirSurface
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/mirsurface.cpp | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/modules/QtMir/Application/mirsurface.cpp b/src/modules/QtMir/Application/mirsurface.cpp
+index d892f207..b37bae31 100644
+--- a/src/modules/QtMir/Application/mirsurface.cpp
++++ b/src/modules/QtMir/Application/mirsurface.cpp
+@@ -138,7 +138,7 @@ public:
+ #else
+     void attrib_changed(MirWindowAttrib, int) override;
+     void resized_to(mir::geometry::Size const&) override;
+-    void moved_to(mir::geometry::Point const&) override {};
++    void moved_to(mir::geometry::Point const&) override {}
+     void hidden_set_to(bool) override;
+ 
+     // Get new frame notifications from Mir, called from a Mir thread.
+@@ -681,7 +681,6 @@ void MirSurface::teardown()
+     for (const auto& id : m_views.keys()) {
+         unregisterView(id);
+     }
+-    deleteLater();
+ }
+ 
+ void MirSurface::resize(int width, int height)
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch	2025-07-29 10:49:48.000000000 +0200
@@ -0,0 +1,39 @@
+From 81f25c97fb80f56302cd754dd5973bdf705e014a Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Sat, 26 Jul 2025 16:47:18 +0200
+Subject: [PATCH 14/14] src/modules: Set MirSurface live to false when tearing
+ down
+
+Cause a natural removal of the surface from the SurfaceManager through
+signals & slots. This will remove associated surfaces from the window.
+Window removal can be done in QML from the window model later on.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/mirsurface.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/modules/QtMir/Application/mirsurface.cpp b/src/modules/QtMir/Application/mirsurface.cpp
+index b37bae31..f20b4b23 100644
+--- a/src/modules/QtMir/Application/mirsurface.cpp
++++ b/src/modules/QtMir/Application/mirsurface.cpp
+@@ -678,6 +678,7 @@ void MirSurface::forceClose()
+ 
+ void MirSurface::teardown()
+ {
++    setLive(false);
+     for (const auto& id : m_views.keys()) {
+         unregisterView(id);
+     }
+@@ -1215,7 +1216,7 @@ void MirSurface::onCloseTimedOut()
+             m_controller->forceClose(m_window);
+         }
+     } else {
+-        WARNING_MSG << "Surface not live anymore, tearing down.";
++        WARNING_MSG << "(), Surface not live anymore, tearing down.";
+         teardown();
+     }
+ }
+-- 
+2.47.2
+
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch	2025-07-30 14:10:03.000000000 +0200
@@ -0,0 +1,53 @@
+From 948cb3593c5947b511087ff4640be38e09008aec Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Tue, 29 Jul 2025 08:57:11 +0200
+Subject: [PATCH 1/2] src/modules: Use explicit signal to signify a teardown
+
+This signal is consumed both by the SurfaceManager as well as QML
+to determine whether to keep or remove old windows in the window model.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/mirsurface.cpp        | 5 +----
+ src/modules/QtMir/Application/mirsurfaceinterface.h | 1 +
+ src/modules/QtMir/Application/surfacemanager.cpp    | 5 +++++
+ 3 files changed, 7 insertions(+), 4 deletions(-)
+
+--- a/src/modules/QtMir/Application/mirsurface.cpp
++++ b/src/modules/QtMir/Application/mirsurface.cpp
+@@ -678,10 +678,7 @@
+ 
+ void MirSurface::teardown()
+ {
+-    setLive(false);
+-    for (const auto& id : m_views.keys()) {
+-        unregisterView(id);
+-    }
++    Q_EMIT teardownRequested();
+ }
+ 
+ void MirSurface::resize(int width, int height)
+--- a/src/modules/QtMir/Application/mirsurfaceinterface.h
++++ b/src/modules/QtMir/Application/mirsurfaceinterface.h
+@@ -134,6 +134,7 @@
+     void isBeingDisplayedChanged();
+     void frameDropped();
+     void closeRequested();
++    void teardownRequested();
+ };
+ 
+ } // namespace qtmir
+--- a/src/modules/QtMir/Application/surfacemanager.cpp
++++ b/src/modules/QtMir/Application/surfacemanager.cpp
+@@ -204,6 +204,11 @@
+         }
+     });
+ 
++    connect(surface, &MirSurface::teardownRequested, this, [this, surface](){
++        forgetMirSurface(static_cast<MirSurface*>(surface)->window());
++        surface->deleteLater();
++    });
++
+     if (parentSurface) {
+         static_cast<MirSurfaceListModel*>(parentSurface->childSurfaceList())->prependSurface(surface);
+     }
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch	1970-01-01 01:00:00.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/0016_src-modules-Drop-references-before-teardown.patch	2025-07-30 14:09:54.000000000 +0200
@@ -0,0 +1,39 @@
+From 36c26bbafa1612e4e7bdacb28f605def19f4938a Mon Sep 17 00:00:00 2001
+From: Alfred Neumayer <dev.beidl@gmail.com>
+Date: Tue, 29 Jul 2025 13:27:22 +0200
+Subject: [PATCH 2/2] src/modules: Drop references before teardown
+
+Make sure we have no MirSurfaceItem referencing this surface when it goes EOL.
+Also add missing tracepoint call while we're at it.
+
+Signed-off-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
+---
+ src/modules/QtMir/Application/mirsurface.cpp     | 6 ++++++
+ src/modules/QtMir/Application/surfacemanager.cpp | 1 +
+ 2 files changed, 7 insertions(+)
+
+--- a/src/modules/QtMir/Application/mirsurface.cpp
++++ b/src/modules/QtMir/Application/mirsurface.cpp
+@@ -678,6 +678,12 @@
+ 
+ void MirSurface::teardown()
+ {
++    DEBUG_MSG << "()";
++
++    for (const auto& id : m_views.keys()) {
++        unregisterView(id);
++    }
++
+     Q_EMIT teardownRequested();
+ }
+ 
+--- a/src/modules/QtMir/Application/surfacemanager.cpp
++++ b/src/modules/QtMir/Application/surfacemanager.cpp
+@@ -207,6 +207,7 @@
+     connect(surface, &MirSurface::teardownRequested, this, [this, surface](){
+         forgetMirSurface(static_cast<MirSurface*>(surface)->window());
+         surface->deleteLater();
++        tracepoint(qtmir, surfaceDestroyed);
+     });
+ 
+     if (parentSurface) {
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch	2024-02-14 10:33:36.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/2003_disable-benchmarks.patch	2025-07-30 14:18:39.000000000 +0200
@@ -3,7 +3,7 @@
 
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -184,5 +184,5 @@
+@@ -185,5 +185,5 @@
  # add subdirectories to build
  add_subdirectory(src)
  add_subdirectory(demos)
diff -Nru qtmir-0.8.0~git20250407.ea2f477/debian/patches/series qtmir-0.8.0~git20250407.ea2f477/debian/patches/series
--- qtmir-0.8.0~git20250407.ea2f477/debian/patches/series	2025-02-28 14:46:20.000000000 +0100
+++ qtmir-0.8.0~git20250407.ea2f477/debian/patches/series	2025-07-30 14:09:48.000000000 +0200
@@ -1,2 +1,11 @@
 2002_no-requires-provides-check.patch
 2003_disable-benchmarks.patch
+0001_mirserver-cursor-take-Shell-s-rotation-into-account.patch
+0002_src-modules-Re-introduce-lost-workaround-for-font-re.patch
+0009_src-modules-Add-header-for-getpid.patch
+0011_src-platforms-Wrap-window-activity-change-in-a-try-c.patch
+0012_src-modules-Partial-revert-of-e73ef71622ad3202b77bf6.patch
+0013_src-modules-Address-review-comments-for-MirSurface.patch
+0014_src-modules-Set-MirSurface-live-to-false-when-tearin.patch
+0015_src-modules-Use-explicit-signal-to-signify-a-teardow.patch
+0016_src-modules-Drop-references-before-teardown.patch

--- End Message ---
--- Begin Message ---
Hi,

I'm sorry we couldn't unblock your request in time for trixie. I'm closing all open unblock requests in one go, so I'm not going into details of the particular request, but reasons are typically as follow:
- the request came after the deadline of 2025-07-30
- the request came late and we just didn't have the time to deal with it
- the request was waiting for action from the submitter (moreinfo tag)
- the request didn't appear to be in line with the freeze policy and we
  didn't have the energy to engage (sorry for that, see our FAQ [1])
- there was discussion in the unblock request but no agreement was
  reached in time for the release.

Paul

[1] https://release.debian.org/trixie/FAQ.html

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


--- End Message ---

Reply to: