--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock
Hi,
please unblock vte2.91 for a few selected bugfixes.
vte2.91 (0.38.1-2) unstable; urgency=medium
* Bug fixes from upstream git:
+ 10_check_cursor_display.patch: check the cursor’s display before
using it.
+ 11_cjk_ambiguous_width.patch: copy-paste bug in properties.
+ 12_zombies.patch, 13_zombies.patch: don’t leave zombie processes
around. Closes: #770596.
Attaching the individual patches.
unblock vte2.91/0.38.1-2
Thanks,
--
.''`. Josselin Mouette
: :' :
`. `'
`-
>From 5cff499de0122b44d60c189ec138b2853af10a6c Mon Sep 17 00:00:00 2001
From: Christian Persch <chpe@gnome.org>
Date: Mon, 3 Nov 2014 18:38:30 +0100
Subject: widget: Check cursor's display before using it
(cherry picked from commit 19963440f9da89e2a3035c8a7488a92a244f22e3)
diff --git a/src/vte.c b/src/vte.c
index 9374fe6..28b7be9 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -1147,7 +1147,8 @@ vte_terminal_set_cursor_from_regex_match(VteTerminal *terminal, struct vte_match
switch (regex->cursor_mode) {
case VTE_REGEX_CURSOR_GDKCURSOR:
- if (regex->cursor.cursor != NULL) {
+ if (regex->cursor.cursor != NULL &&
+ gdk_cursor_get_display(regex->cursor.cursor) == gtk_widget_get_display(&terminal->widget)) {
cursor = g_object_ref(regex->cursor.cursor);
}
break;
--
cgit v0.10.1
>From 102468e58fe48512ef100e439577d08c2ba4fb7f Mon Sep 17 00:00:00 2001
From: Egmont Koblinger <egmont@gmail.com>
Date: Sat, 22 Nov 2014 13:33:33 +0100
Subject: widget: Fix installing the CJK ambiguous width property
(cherry picked from commit 447266e2925527f898d3e9d048db7cecd2397cb7)
diff --git a/src/vte.c b/src/vte.c
index 28b7be9..c6172fc 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -11286,7 +11286,7 @@ vte_terminal_class_init(VteTerminalClass *klass)
*/
g_object_class_install_property
(gobject_class,
- PROP_CURSOR_BLINK_MODE,
+ PROP_CJK_AMBIGUOUS_WIDTH,
g_param_spec_int ("cjk-ambiguous-width", NULL, NULL,
1, 2, VTE_ISO2022_DEFAULT_UTF8_AMBIGUOUS_WIDTH,
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY));
--
cgit v0.10.1
>From d9d83d455a5b67fcce030c56fbd8de921dc3fa6d Mon Sep 17 00:00:00 2001
From: Egmont Koblinger <egmont@gmail.com>
Date: Mon, 1 Dec 2014 13:30:52 +0100
Subject: widget: Do not leave behind a zombie child when closing a terminal
https://bugzilla.gnome.org/show_bug.cgi?id=740929
(cherry picked from commit 31b150146189b49fadd126edc1c373ada234c865)
diff --git a/src/vte.c b/src/vte.c
index c6172fc..e5149c9 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -3210,6 +3210,12 @@ vte_terminal_child_watch_cb(GPid pid,
int status,
VteTerminal *terminal)
{
+ if (terminal == NULL) {
+ /* The child outlived VteTerminal. Do nothing, we're happy that Glib
+ * read its exit data and hence it's no longer there as zombie. */
+ return;
+ }
+
if (pid == terminal->pvt->pty_pid) {
GObject *object = G_OBJECT(terminal);
@@ -8416,11 +8422,15 @@ vte_terminal_finalize(GObject *object)
terminal->pvt->outgoing_conv = VTE_INVALID_CONV;
}
- /* Stop listening for child-exited signals. */
+ /* Start listening for child-exited signals and ignore them, so that no zombie child is left behind. */
if (terminal->pvt->child_watch_source != 0) {
g_source_remove (terminal->pvt->child_watch_source);
terminal->pvt->child_watch_source = 0;
}
+ g_child_watch_add_full(G_PRIORITY_HIGH,
+ terminal->pvt->pty_pid,
+ (GChildWatchFunc)vte_terminal_child_watch_cb,
+ NULL, NULL);
/* Stop processing input. */
vte_terminal_stop_processing (terminal);
--
cgit v0.10.1
>From b033047970a7bb7e9e17c6e38ce5107daf704a7a Mon Sep 17 00:00:00 2001
From: Debarshi Ray <debarshir@gnome.org>
Date: Thu, 4 Dec 2014 16:46:00 +0100
Subject: widget: Reap only when a child is present
https://bugzilla.gnome.org/show_bug.cgi?id=740929
(cherry picked from commit 5f19e0b08cb06c76d989592e1a859ac3a23b8b4b)
diff --git a/src/vte.c b/src/vte.c
index e5149c9..5919416 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -8426,11 +8426,11 @@ vte_terminal_finalize(GObject *object)
if (terminal->pvt->child_watch_source != 0) {
g_source_remove (terminal->pvt->child_watch_source);
terminal->pvt->child_watch_source = 0;
+ g_child_watch_add_full(G_PRIORITY_HIGH,
+ terminal->pvt->pty_pid,
+ (GChildWatchFunc)vte_terminal_child_watch_cb,
+ NULL, NULL);
}
- g_child_watch_add_full(G_PRIORITY_HIGH,
- terminal->pvt->pty_pid,
- (GChildWatchFunc)vte_terminal_child_watch_cb,
- NULL, NULL);
/* Stop processing input. */
vte_terminal_stop_processing (terminal);
--
cgit v0.10.1
--- End Message ---