sakura: 3.5.0 -> 3.6.0

This commit is contained in:
Danny Rawlins 2018-09-28 20:53:26 +10:00
parent 61ba515f44
commit 1644807681
3 changed files with 72 additions and 6 deletions

View File

@ -1,5 +1,6 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF3yCQZ5DOzzayjWzc6cZ0YzllJFUaWymWWxrGYNeTma1exZRASFpa54vad/o/a3vSE27GjTteAh00KsrhXPFpkwI=
SHA256 (Pkgfile) = 2e8d087ae1b1a546153d6281209cfe9c480527820910641d6c1f1ef6faf05ade
RWSagIOpLGJF35Lc9YkPc8HXf7TVplXI+GOGoc4Lp6E+f5T6tq7atdi8TpuNex9k57h8ZcgTv6XhvRiD6ba6jqLolTaKDJVuHws=
SHA256 (Pkgfile) = bd3cb1f80f5977fdf5061565c00a326e0723883d2821a7a444ac2327696c2861
SHA256 (.footprint) = 329496cfa310c07f4b8f63ec1a6a69e2dbcc82825f430df777108d134d8a6979
SHA256 (sakura-3.5.0.tar.bz2) = eb30ede41083fda2b07c6a3b7393150f48867e81d28ef70b15824740cab00c3a
SHA256 (sakura-3.6.0.tar.bz2) = a1161f3cedde20a7e1bc5981b3e6ab3b91d2cd3a5ffe35c792a7fa402a1e86e0
SHA256 (segfault.patch) = bc9f2364a85261ac7f6e031556b9a3bb71a2be3384ef3f049806df03b12936c7

View File

@ -1,16 +1,19 @@
# Description: A terminal emulator based on GTK and VTE.
# URL: http://www.pleyades.net/david/projects/sakura
# Maintainer: Danny Rawlins, crux at romster dot me
# Depends on: vte3 cmake libidn
# Depends on: vte3
name=sakura
version=3.5.0
version=3.6.0
release=1
source=(https://launchpad.net/sakura/trunk/$version/+download/$name-$version.tar.bz2)
source=(https://launchpad.net/sakura/trunk/$version/+download/$name-$version.tar.bz2
segfault.patch)
build() {
cd $name-$version
patch -p0 -i $SRC/segfault.patch
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=RELEASE .
make

62
sakura/segfault.patch Normal file
View File

@ -0,0 +1,62 @@
=== modified file 'src/sakura.c'
--- src/sakura.c 2018-05-02 19:22:43 +0000
+++ src/sakura.c 2018-09-16 13:26:19 +0000
@@ -339,6 +339,7 @@
bool label_set_byuser;
GtkBorder padding; /* inner-property data */
int colorset;
+ gulong exit_handler_id;
};
@@ -984,31 +985,6 @@
if (npages==1) {
sakura_config_done();
}
-
- /* Workaround for libvte strange behaviour. There is not child-exited signal for
- the last terminal, so we need to kill it here. Check with libvte authors about
- child-exited/eof signals */
- if (gtk_notebook_get_current_page(GTK_NOTEBOOK(sakura.notebook))==0) {
-
- term = sakura_get_page_term(sakura, 0);
-
- if (option_hold==TRUE) {
- SAY("hold option has been activated");
- return;
- }
-
- //SAY("waiting for terminal pid (in eof) %d", term->pid);
- //waitpid(term->pid, &status, WNOHANG);
- /* TODO: check wait return */
- /* Child should be automatically reaped because we don't use G_SPAWN_DO_NOT_REAP_CHILD flag */
- g_spawn_close_pid(term->pid);
-
- sakura_del_tab(0);
-
- npages = gtk_notebook_get_n_pages(GTK_NOTEBOOK(sakura.notebook));
- if (npages==0)
- sakura_destroy();
- }
}
/* This handler is called when window title changes, and is used to change window and notebook pages titles */
@@ -3167,7 +3143,7 @@
g_signal_connect(G_OBJECT(term->vte), "bell", G_CALLBACK(sakura_beep), NULL);
g_signal_connect(G_OBJECT(term->vte), "increase-font-size", G_CALLBACK(sakura_increase_font), NULL);
g_signal_connect(G_OBJECT(term->vte), "decrease-font-size", G_CALLBACK(sakura_decrease_font), NULL);
- g_signal_connect(G_OBJECT(term->vte), "child-exited", G_CALLBACK(sakura_child_exited), NULL);
+ term->exit_handler_id = g_signal_connect(G_OBJECT(term->vte), "child-exited", G_CALLBACK(sakura_child_exited), NULL);
g_signal_connect(G_OBJECT(term->vte), "eof", G_CALLBACK(sakura_eof), NULL);
g_signal_connect(G_OBJECT(term->vte), "window-title-changed", G_CALLBACK(sakura_title_changed), NULL);
g_signal_connect_swapped(G_OBJECT(term->vte), "button-press-event", G_CALLBACK(sakura_button_press), sakura.menu);
@@ -3366,6 +3342,7 @@
}
gtk_widget_hide(term->hbox);
+ g_signal_handler_disconnect (term->vte, term->exit_handler_id);
gtk_notebook_remove_page(GTK_NOTEBOOK(sakura.notebook), page);
/* Find the next page, if it exists, and grab focus */