[arch-commits] Commit in sakura/trunk (PKGBUILD segfault.patch)

Ronald van Haren ronald at archlinux.org
Wed Sep 26 08:20:27 UTC 2018


    Date: Wednesday, September 26, 2018 @ 08:20:27
  Author: ronald
Revision: 385159

upgpkg: sakura 3.6.0-2

fix segfault FS#60100

Added:
  sakura/trunk/segfault.patch
Modified:
  sakura/trunk/PKGBUILD

----------------+
 PKGBUILD       |   10 ++++++--
 segfault.patch |   62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-09-26 08:20:10 UTC (rev 385158)
+++ PKGBUILD	2018-09-26 08:20:27 UTC (rev 385159)
@@ -3,7 +3,7 @@
 
 pkgname=sakura
 pkgver=3.6.0
-pkgrel=1
+pkgrel=2
 pkgdesc="A terminal emulator based on GTK and VTE"
 arch=('x86_64')
 url="https://launchpad.net/sakura"
@@ -10,8 +10,9 @@
 license=('GPL')
 depends=('vte3' 'libxft')
 makedepends=('cmake')
-source=("https://launchpad.net/sakura/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2")
-sha1sums=('df5c1d9974062a1eaf5659fa36f51c4d5a689eae')
+source=("https://launchpad.net/sakura/trunk/${pkgver}/+download/${pkgname}-${pkgver}.tar.bz2" "segfault.patch")
+sha256sums=('a1161f3cedde20a7e1bc5981b3e6ab3b91d2cd3a5ffe35c792a7fa402a1e86e0'
+            'bc9f2364a85261ac7f6e031556b9a3bb71a2be3384ef3f049806df03b12936c7')
 
 prepare() {
   cd "$srcdir/${pkgname}-${pkgver}"
@@ -18,6 +19,9 @@
 
   # Set default font size a bit smaller
   sed -i 's|#define DEFAULT_FONT "Bitstream Vera Sans Mono 14"|#define DEFAULT_FONT "Bitstream Vera Sans Mono 10"|g' src/sakura.c
+
+  # segfault fix FS#60100
+  patch -Np0 -i ${srcdir}/segfault.patch
 }
 
 build() {

Added: segfault.patch
===================================================================
--- segfault.patch	                        (rev 0)
+++ segfault.patch	2018-09-26 08:20:27 UTC (rev 385159)
@@ -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 */
+
+



More information about the arch-commits mailing list