public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Jeroen Roovers" <jer@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] repo/gentoo:master commit in: x11-terms/sakura/, x11-terms/sakura/files/
Date: Sun,  4 Nov 2018 12:17:04 +0000 (UTC)	[thread overview]
Message-ID: <1541333818.7f0a3eaea4bad1f148cdf1c031a083e3e4e7abf9.jer@gentoo> (raw)

commit:     7f0a3eaea4bad1f148cdf1c031a083e3e4e7abf9
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sun Nov  4 12:16:25 2018 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sun Nov  4 12:16:58 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7f0a3eae

x11-terms/sakura: Fix tab closing segmentation fault

Fixes: https://bugs.gentoo.org/670216
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Signed-off-by: Jeroen Roovers <jer <AT> gentoo.org>

 .../sakura/files/sakura-3.6.0-tab-crash.patch      | 60 +++++++++++++++++++
 x11-terms/sakura/sakura-3.6.0-r1.ebuild            | 67 ++++++++++++++++++++++
 2 files changed, 127 insertions(+)

diff --git a/x11-terms/sakura/files/sakura-3.6.0-tab-crash.patch b/x11-terms/sakura/files/sakura-3.6.0-tab-crash.patch
new file mode 100644
index 00000000000..4d1a33e2751
--- /dev/null
+++ b/x11-terms/sakura/files/sakura-3.6.0-tab-crash.patch
@@ -0,0 +1,60 @@
+--- a/src/sakura.c
++++ b/src/sakura.c
+@@ -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 */
+

diff --git a/x11-terms/sakura/sakura-3.6.0-r1.ebuild b/x11-terms/sakura/sakura-3.6.0-r1.ebuild
new file mode 100644
index 00000000000..9f68fad9974
--- /dev/null
+++ b/x11-terms/sakura/sakura-3.6.0-r1.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit cmake-utils eutils flag-o-matic gnome2-utils xdg-utils
+
+DESCRIPTION="sakura is a terminal emulator based on GTK and VTE"
+HOMEPAGE="http://www.pleyades.net/david/projects/sakura/"
+SRC_URI="https://launchpad.net/${PN}/trunk/${PV}/+download/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~x86-linux"
+
+RDEPEND="
+	>=dev-libs/glib-2.20:2
+	x11-libs/gtk+:3[X]
+	x11-libs/libX11
+	>x11-libs/vte-0.50:2.91
+"
+DEPEND="
+	${RDEPEND}
+	>=dev-lang/perl-5.10.1
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-3.1.3-flags.patch
+	"${FILESDIR}"/${PN}-3.6.0-tab-crash.patch
+)
+
+DOCS=(
+	AUTHORS
+)
+
+src_prepare() {
+	sed -i "/FILES INSTALL/d" CMakeLists.txt || die
+
+	strip-linguas -i po/
+	local lingua
+	for lingua in po/*.po; do
+		lingua="${lingua/po\/}"
+		lingua="${lingua/.po}"
+		if ! has ${lingua} ${LINGUAS}; then
+			rm po/${lingua}.po || die
+		fi
+	done
+
+	cmake-utils_src_prepare
+	# sakura.c:1740:3: warning: implicit declaration of function ‘readlink’
+	# [-Wimplicit-function-declaration]
+	append-cppflags -D_DEFAULT_SOURCE
+
+	# sakura.c:1348:9: error: ‘for’ loop initial declarations are only allowed
+	# in C99 or C11 mode
+	append-cflags -std=c99
+}
+
+pkg_postinst() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}
+
+pkg_postrm() {
+	gnome2_icon_cache_update
+	xdg_desktop_database_update
+}


             reply	other threads:[~2018-11-04 12:17 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-04 12:17 Jeroen Roovers [this message]
  -- strict thread matches above, loose matches on Subject: below --
2019-11-30 12:23 [gentoo-commits] repo/gentoo:master commit in: x11-terms/sakura/, x11-terms/sakura/files/ Jeroen Roovers
2020-07-03 11:35 Jeroen Roovers
2021-09-19  3:42 Ionen Wolkens
2022-01-22  0:34 Ionen Wolkens

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1541333818.7f0a3eaea4bad1f148cdf1c031a083e3e4e7abf9.jer@gentoo \
    --to=jer@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox