summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Contreras2023-02-24 11:46:31 -0600
committerFelipe Contreras2023-02-24 11:46:31 -0600
commit64da70e8560a57ee70a07068b730a05f5d8b68c1 (patch)
tree4e4844510a19cb8752e0aecde7d085d19cac19c9
parentf3167b7848763fba5f978f07218e4c1afb16621d (diff)
downloadaur-64da70e8560a57ee70a07068b730a05f5d8b68c1.tar.gz
Update regression fix patch
It seems we need to do is ignore the pending EOS flag. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
-rw-r--r--.SRCINFO2
-rw-r--r--PKGBUILD2
-rw-r--r--fix-exit-regression.patch50
3 files changed, 24 insertions, 30 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 98d047844787..c5746dd15ebc 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -23,6 +23,6 @@ pkgbase = vte3-nohang
source = git+https://gitlab.gnome.org/GNOME/vte.git#tag=0.68.0
source = fix-exit-regression.patch
sha256sums = SKIP
- sha256sums = 5e5715a928b3667e7dd15d2766b45e8fe159768ab949f0badd5c47d190ceb211
+ sha256sums = b7175b365c87b4014725a690448db716e22c27636fc03c08c5a4bc516798871e
pkgname = vte3-nohang
diff --git a/PKGBUILD b/PKGBUILD
index 77315ad4d405..e85b7dca4c67 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -14,7 +14,7 @@ makedepends=(gobject-introspection vala git gtk-doc gperf meson)
source=("git+https://gitlab.gnome.org/GNOME/vte.git#tag=$pkgver"
fix-exit-regression.patch)
sha256sums=('SKIP'
- '5e5715a928b3667e7dd15d2766b45e8fe159768ab949f0badd5c47d190ceb211')
+ 'b7175b365c87b4014725a690448db716e22c27636fc03c08c5a4bc516798871e')
depends+=(vte-common)
provides=("vte3=$pkgver" libvte-2.91.so)
diff --git a/fix-exit-regression.patch b/fix-exit-regression.patch
index 19bfc907de2f..0415808df2be 100644
--- a/fix-exit-regression.patch
+++ b/fix-exit-regression.patch
@@ -1,4 +1,4 @@
-From 07c04ece7c0eb6644112c84454dc617d6b45458b Mon Sep 17 00:00:00 2001
+From a8f9b3299a2f996070ae8242eb5546083b648639 Mon Sep 17 00:00:00 2001
From: Felipe Contreras <felipe.contreras@gmail.com>
Date: Sun, 23 Jan 2022 23:36:44 -0600
Subject: [PATCH] Fix exit regression
@@ -15,45 +15,39 @@ It can be triggered by simply doing:
exit
The maintainers of vte clearly have no intention fixing the issue that
-was reported more than one year ago.
+was reported more than three years ago.
https://gitlab.gnome.org/GNOME/vte/-/issues/204
-We know the child has exited, the client does not. It's up to the client
-to decide if it wants to wait for the rest of the input, or exit
-immediately.
-
-So send the signal as soon as we receive it.
+We need to send the CHILD_EXITED signal regardless of whether or not
+there's a pending EOS.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
- src/vte.cc | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
+ src/vte.cc | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/src/vte.cc b/src/vte.cc
-index 103dc4d5..c47c10af 100644
+index 8b75883f..da296daf 100644
--- a/src/vte.cc
+++ b/src/vte.cc
-@@ -3200,6 +3200,9 @@ Terminal::child_watch_done(pid_t pid,
-
- m_pty_pid = -1;
+@@ -10124,7 +10124,6 @@ Terminal::emit_pending_signals()
+ m_bell_pending = false;
+ }
-+ if (widget())
-+ widget()->emit_child_exited(status);
-+
- /* If we still have a PTY, or data to process, defer emitting the signals
- * until we have EOF on the PTY, so that we can process all pending data.
- */
-@@ -3210,9 +3213,6 @@ Terminal::child_watch_done(pid_t pid,
- m_child_exited_eos_wait_timer.schedule_seconds(2); // FIXME: better value?
- } else {
- m_child_exited_after_eos_pending = false;
--
-- if (widget())
-- widget()->emit_child_exited(status);
+- auto const eos = m_eos_pending;
+ if (m_eos_pending) {
+ queue_eof();
+ m_eos_pending = false;
+@@ -10132,7 +10131,7 @@ Terminal::emit_pending_signals()
+ unset_pty();
}
- }
+- if (m_child_exited_after_eos_pending && eos) {
++ if (m_child_exited_after_eos_pending) {
+ /* The signal handler could destroy the terminal, so send the signal on idle */
+ queue_child_exited();
+ m_child_exited_after_eos_pending = false;
--
-2.34.1
+2.39.2