Package: release.debian.org
Severity: normal
Tags: bookworm
User: release.debian....@packages.debian.org
Usertags: pu
X-Debbugs-Cc: vte2...@packages.debian.org
Control: affects -1 + src:vte2.91

I've uploaded another proposed vte2.91 update for bookworm. Please consider
this for 12.2.

[ Reason ]
#1040049

[ Impact ]
If not fixed, there is a crash with an assertion failure that occurs
frequently in some user workflows (I've never been able to reproduce it
myself, but the bug reporter Luca Boccassi saw it frequently).

[ Tests ]
Luca has been running a prerelease version of this update (identical except
for version number) for several weeks, and has not seen the bug again.
Available from: https://people.debian.org/~smcv/12.2/pool/main/v/vte2.91/

A functionally equivalent version was in testing for about 1 week before
being superseded by a newer upstream release, with no regression reports.
The version proposed here is a straightforward rebuild of that version
for bookworm.

[ Risks ]
Low risk: targeted fix from upstream which just invalidates caches more
often.

[ 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 (old)stable
  [x] the issue is verified as fixed in unstable

[ Changes ]
All changes are for #1040049, no extraneous diff present.
diffstat for vte2.91-0.70.6 vte2.91-0.70.6

 debian/changelog                                                      |   17 ++
 debian/patches/series                                                 |    1 
 debian/patches/widget-Invalidate-ringview-when-the-invalidating.patch |   69 
++++++++++
 src/vte.cc                                                            |   13 +
 4 files changed, 100 insertions(+)

diff -Nru vte2.91-0.70.6/debian/changelog vte2.91-0.70.6/debian/changelog
--- vte2.91-0.70.6/debian/changelog     2023-06-14 12:17:06.000000000 +0100
+++ vte2.91-0.70.6/debian/changelog     2023-08-09 13:01:27.000000000 +0100
@@ -1,3 +1,20 @@
+vte2.91 (0.70.6-2~deb12u1) bookworm; urgency=medium
+
+  * Team upload
+  * Rebuild for bookworm (Closes: #1040049)
+
+ -- Simon McVittie <s...@debian.org>  Wed, 09 Aug 2023 13:01:27 +0100
+
+vte2.91 (0.70.6-2) unstable; urgency=medium
+
+  * Team upload
+  * d/p/widget-Invalidate-ringview-when-the-invalidating.patch:
+    Add patch from upstream git to invalidate ring view more often when
+    necessary, fixing various assertion failures during event handling
+    (Closes: #1040049)
+
+ -- Simon McVittie <s...@debian.org>  Fri, 14 Jul 2023 11:31:40 +0100
+
 vte2.91 (0.70.6-1~deb12u1) bookworm; urgency=medium
 
   * Team upload
diff -Nru vte2.91-0.70.6/debian/patches/series 
vte2.91-0.70.6/debian/patches/series
--- vte2.91-0.70.6/debian/patches/series        2023-06-14 12:17:06.000000000 
+0100
+++ vte2.91-0.70.6/debian/patches/series        2023-08-09 13:01:27.000000000 
+0100
@@ -1 +1,2 @@
+widget-Invalidate-ringview-when-the-invalidating.patch
 Allow-background-color-and-color-on-VteTerminal-widgets-t.patch
diff -Nru 
vte2.91-0.70.6/debian/patches/widget-Invalidate-ringview-when-the-invalidating.patch
 
vte2.91-0.70.6/debian/patches/widget-Invalidate-ringview-when-the-invalidating.patch
--- 
vte2.91-0.70.6/debian/patches/widget-Invalidate-ringview-when-the-invalidating.patch
        1970-01-01 01:00:00.000000000 +0100
+++ 
vte2.91-0.70.6/debian/patches/widget-Invalidate-ringview-when-the-invalidating.patch
        2023-08-09 13:01:27.000000000 +0100
@@ -0,0 +1,69 @@
+From: Egmont Koblinger <egm...@gmail.com>
+Date: Thu, 13 Jul 2023 21:59:29 +0200
+Subject: widget: Invalidate ringview when the invalidating
+
+When the ringview is not invalidated when the ring has changed leads to
+failed assertion aborts when handling events, e.g. vte#2636, vte#2637,
+vte#2632, vte#2577.
+
+Bug: https://gitlab.gnome.org/GNOME/vte/-/issues/2636
+Bug: https://gitlab.gnome.org/GNOME/vte/-/issues/2637
+Bug-Debian: https://bugs.debian.org/1040049
+Applied-upstream: 0.73.0, commit:461bc3e43c819fa0e3b62d0cf40ef533a69cc7f7
+---
+ src/vte.cc | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/src/vte.cc b/src/vte.cc
+index b8e15d7..561cc42 100644
+--- a/src/vte.cc
++++ b/src/vte.cc
+@@ -2050,6 +2050,7 @@ Terminal::queue_adjustment_value_changed(double v)
+         _vte_debug_print(VTE_DEBUG_ADJ,
+                          "Scrolling by %f\n", dy);
+ 
++        m_ringview.invalidate();
+         invalidate_all();
+         match_contents_clear();
+         emit_text_scrolled(dy);
+@@ -2899,6 +2900,9 @@ Terminal::drop_scrollback()
+         if (m_screen == &m_normal_screen) {
+                 queue_adjustment_value_changed(m_normal_screen.insert_delta);
+                 adjust_adjustments_full();
++                m_ringview.invalidate();
++                invalidate_all();
++                match_contents_clear();
+         }
+ }
+ 
+@@ -7548,6 +7552,9 @@ Terminal::set_size(long columns,
+                       gtk_widget_queue_resize(m_widget); // FIXMEgtk4?
+ #endif
+ 
++                m_ringview.invalidate();
++                invalidate_all();
++                match_contents_clear();
+               /* Our visible text changed. */
+               emit_text_modified();
+       }
+@@ -9780,6 +9787,10 @@ Terminal::set_scrollback_lines(long lines)
+       queue_adjustment_value_changed(scroll_delta);
+       adjust_adjustments_full();
+ 
++        m_ringview.invalidate();
++        invalidate_all();
++        match_contents_clear();
++
+         return true;
+ }
+ 
+@@ -9962,7 +9973,9 @@ Terminal::reset(bool clear_tabstops,
+         /* BiDi */
+         m_bidi_rtl = FALSE;
+       /* Cause everything to be redrawn (or cleared). */
++      m_ringview.invalidate();
+       invalidate_all();
++      match_contents_clear();
+ 
+         /* Reset XTerm window controls */
+         m_xterm_wm_iconified = false;
diff -Nru vte2.91-0.70.6/src/vte.cc vte2.91-0.70.6/src/vte.cc
--- vte2.91-0.70.6/src/vte.cc   2023-06-01 20:34:34.000000000 +0100
+++ vte2.91-0.70.6/src/vte.cc   2023-08-20 12:20:20.000000000 +0100
@@ -2050,6 +2050,7 @@
         _vte_debug_print(VTE_DEBUG_ADJ,
                          "Scrolling by %f\n", dy);
 
+        m_ringview.invalidate();
         invalidate_all();
         match_contents_clear();
         emit_text_scrolled(dy);
@@ -2899,6 +2900,9 @@
         if (m_screen == &m_normal_screen) {
                 queue_adjustment_value_changed(m_normal_screen.insert_delta);
                 adjust_adjustments_full();
+                m_ringview.invalidate();
+                invalidate_all();
+                match_contents_clear();
         }
 }
 
@@ -7548,6 +7552,9 @@
                        gtk_widget_queue_resize(m_widget); // FIXMEgtk4?
 #endif
 
+                m_ringview.invalidate();
+                invalidate_all();
+                match_contents_clear();
                /* Our visible text changed. */
                emit_text_modified();
        }
@@ -9780,6 +9787,10 @@
        queue_adjustment_value_changed(scroll_delta);
        adjust_adjustments_full();
 
+        m_ringview.invalidate();
+        invalidate_all();
+        match_contents_clear();
+
         return true;
 }
 
@@ -9962,7 +9973,9 @@
         /* BiDi */
         m_bidi_rtl = FALSE;
        /* Cause everything to be redrawn (or cleared). */
+       m_ringview.invalidate();
        invalidate_all();
+       match_contents_clear();
 
         /* Reset XTerm window controls */
         m_xterm_wm_iconified = false;

Reply via email to