public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: lxde-base/lxterminal/, lxde-base/lxterminal/files/
@ 2024-07-28  4:05 Sam James
  0 siblings, 0 replies; only message in thread
From: Sam James @ 2024-07-28  4:05 UTC (permalink / raw
  To: gentoo-commits

commit:     60a6dd214a05024dfd1bf5b1529c454e9036b652
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Sun Jul 28 03:58:45 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Sun Jul 28 03:58:47 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=60a6dd21

lxde-base/lxterminal: add 0.4.0_p20230917

Take a snapshot as Fedora did and include the patches they have
for Modern C.

Closes: https://bugs.gentoo.org/919094
Signed-off-by: Sam James <sam <AT> gentoo.org>

 lxde-base/lxterminal/Manifest                      |  1 +
 .../lxterminal/files/lxterminal-0.4.0-c99.patch    | 54 ++++++++++++++++++++
 .../files/lxterminal-0.4.0-crash-on-exit.patch     | 57 ++++++++++++++++++++++
 .../lxterminal/lxterminal-0.4.0_p20230917.ebuild   | 53 ++++++++++++++++++++
 4 files changed, 165 insertions(+)

diff --git a/lxde-base/lxterminal/Manifest b/lxde-base/lxterminal/Manifest
index 22fa4e454d28..abb7216fdee3 100644
--- a/lxde-base/lxterminal/Manifest
+++ b/lxde-base/lxterminal/Manifest
@@ -1 +1,2 @@
 DIST lxterminal-0.4.0.tar.xz 201856 BLAKE2B 2fe72007e36c5324b868b9dfc54b04422f85f93f71265126f65eb0b6e0510e60eefb0a2a53acadee6f2c44adcd3c498117b709c9eaa1eb2241dd9016558b9e5c SHA512 d1462bf9739c5e9022cbabe9f9c8f70bbb882c0aba7a39d1f87d804f4002056151165d7555cace6f439c0acfbdcd3c959a420993379f646d066f5d30af71232e
+DIST lxterminal-0.4.0_p20230917.tar.gz 163085 BLAKE2B c26051fdf814da3989d74a14ad726b72e45afb1189c01ac6f3897daecc2473c3cfe1574976ab96bfe08ce7e2b84652471b6e839a17dd0c44932244c5936bd8c1 SHA512 4d00e979add7c2322703d0761707d9a935bb839ffcc981a61c51f28cb37466768c373dc03b9d8ae159e0e919d824c7d7f20bb9b2abda465092016c3692449c9d

diff --git a/lxde-base/lxterminal/files/lxterminal-0.4.0-c99.patch b/lxde-base/lxterminal/files/lxterminal-0.4.0-c99.patch
new file mode 100644
index 000000000000..7694e94b34af
--- /dev/null
+++ b/lxde-base/lxterminal/files/lxterminal-0.4.0-c99.patch
@@ -0,0 +1,54 @@
+https://bugs.gentoo.org/919094
+https://github.com/lxde/lxterminal/issues/121
+https://github.com/lxde/lxterminal/pull/122
+https://src.fedoraproject.org/rpms/lxterminal/blob/rawhide/f/lxterminal-pr122-fix-gcc14-incompatible-pointer-types.patch
+
+From c947b9065b470c24064ac1b1c4935e8093970531 Mon Sep 17 00:00:00 2001
+From: Mamoru TASAKA <mtasaka@fedoraproject.org>
+Date: Wed, 21 Feb 2024 17:01:14 +0900
+Subject: [PATCH] Fix: support gcc14 -Werror=incompatible-pointer-types
+
+gcc14 now defaults to -Werror=incompatible-pointer-types .
+Fix code to support this.
+
+* Add GTK cast for GTK_STYLE_PROVIDER
+* VteRegex must be deref'ed with vte_regex_unref
+
+Fixes #121 .
+---
+ src/lxterminal.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/lxterminal.c b/src/lxterminal.c
+index 680e411..dcd7405 100644
+--- a/src/lxterminal.c
++++ b/src/lxterminal.c
+@@ -1208,7 +1208,7 @@ static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
+     GtkStyleContext* box_style_ctx =
+         gtk_widget_get_style_context(GTK_WIDGET(terminal->box));
+     gtk_style_context_add_provider(
+-        box_style_ctx, box_css_provider,
++        box_style_ctx, GTK_STYLE_PROVIDER(box_css_provider),
+         GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+     #endif
+ 
+@@ -1232,6 +1232,8 @@ static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
+     vte_terminal_match_set_cursor_name(VTE_TERMINAL(term->vte), ret, "pointer");
+     ret = vte_terminal_match_add_regex(VTE_TERMINAL(term->vte), dingus2, 0);
+     vte_terminal_match_set_cursor_name(VTE_TERMINAL(term->vte), ret, "pointer");
++    vte_regex_unref(dingus1);
++    vte_regex_unref(dingus2);
+ #else
+     GRegex * dingus1 = g_regex_new(DINGUS1, G_REGEX_OPTIMIZE, 0, NULL);
+     GRegex * dingus2 = g_regex_new(DINGUS2, G_REGEX_OPTIMIZE, 0, NULL);
+@@ -1239,9 +1241,9 @@ static Term * terminal_new(LXTerminal * terminal, const gchar * label, const gch
+     vte_terminal_match_set_cursor_name(VTE_TERMINAL(term->vte), ret, "pointer");
+     ret = vte_terminal_match_add_gregex(VTE_TERMINAL(term->vte), dingus2, 0);
+     vte_terminal_match_set_cursor_name(VTE_TERMINAL(term->vte), ret, "pointer");
+-#endif
+     g_regex_unref(dingus1);
+     g_regex_unref(dingus2);
++#endif
+ 
+     /* Create a horizontal box inside an event box as the toplevel for the tab label. */
+     term->tab = gtk_event_box_new();

diff --git a/lxde-base/lxterminal/files/lxterminal-0.4.0-crash-on-exit.patch b/lxde-base/lxterminal/files/lxterminal-0.4.0-crash-on-exit.patch
new file mode 100644
index 000000000000..bdf9ca1f3c98
--- /dev/null
+++ b/lxde-base/lxterminal/files/lxterminal-0.4.0-crash-on-exit.patch
@@ -0,0 +1,57 @@
+https://src.fedoraproject.org/rpms/lxterminal/blob/rawhide/f/lxterminal-0.4.0-avoid-segv-on-window-close.patch
+--- lxterminal-0.4.0/src/lxterminal.c.orig	2023-05-26 13:59:55.800250980 +0900
++++ lxterminal-0.4.0/src/lxterminal.c	2023-06-09 14:03:22.478441852 +0900
+@@ -59,6 +59,7 @@ static void terminal_new_window_activate
+ static void terminal_new_tab_activate_event(GtkAction * action, LXTerminal * terminal);
+ static void terminal_close_tab_activate_event(GtkAction * action, LXTerminal * terminal);
+ static void terminal_close_window_activate_event(GtkAction * action, LXTerminal * terminal);
++static void terminal_close_window_activate_event_internal(GtkAction * action, LXTerminal * terminal);
+ static void terminal_open_url_activate_event(GtkAction * action, LXTerminal * terminal);
+ static void terminal_copy_url_activate_event(GtkAction * action, LXTerminal * terminal);
+ static void terminal_copy_activate_event(GtkAction * action, LXTerminal * terminal);
+@@ -480,15 +481,28 @@ static void terminal_close_window_activa
+     if (!terminal_close_window_confirmation_dialog(terminal)) {
+         return;
+     }
++    terminal_close_window_activate_event_internal(action, terminal);
++}
+ 
++static void terminal_close_window_activate_event_internal(GtkAction * action, LXTerminal * terminal)
++{
+     /* Play it safe and delete tabs one by one. */
+-    while(terminal->terms->len > 0) {
++    while(1 /* terminal->terms->len > 0 */) {
++      /* terminal_child_exited_event() finally frees terminal->terms */
++      /* terminal_window_exit() finally frees terminal itself
++         when closing one window of multiple ones
++        */
++        guint len = terminal->terms->len;
+         Term *term = g_ptr_array_index(terminal->terms, 0);
+ #if VTE_CHECK_VERSION (0, 38, 0)
+         terminal_child_exited_event(VTE_TERMINAL(term->vte), 0, term);
+ #else
+         terminal_child_exited_event(VTE_TERMINAL(term->vte), term);
+ #endif
++       if (len <= 1) {
++          break;
++        }
++
+     }
+ }
+ 
+@@ -838,7 +852,15 @@ static void terminal_window_title_change
+ /* Handler for "delete-event" signal on a LXTerminal. */
+ static gboolean terminal_close_window_confirmation_event(GtkWidget * widget, GdkEventButton * event, LXTerminal * terminal)
+ {
++#if 0
+     return !terminal_close_window_confirmation_dialog(terminal);
++#else
++    gboolean status = terminal_close_window_confirmation_dialog(terminal);
++    if (status) {
++        terminal_close_window_activate_event_internal(NULL, terminal);
++    }
++    return TRUE; /* Always nuke this event, call the above function explicitly */
++#endif
+ }
+ 
+ /* Display closing tabs warning */

diff --git a/lxde-base/lxterminal/lxterminal-0.4.0_p20230917.ebuild b/lxde-base/lxterminal/lxterminal-0.4.0_p20230917.ebuild
new file mode 100644
index 000000000000..28f02527696b
--- /dev/null
+++ b/lxde-base/lxterminal/lxterminal-0.4.0_p20230917.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools xdg
+
+DESCRIPTION="Lightweight vte-based tabbed terminal emulator for LXDE"
+HOMEPAGE="https://wiki.lxde.org/en/LXTerminal"
+if [[ ${PV} == *_p* ]] ; then
+	TERMINAL_COMMIT="9b4299c292567b371158368686088900a4c0a128"
+	SRC_URI="https://github.com/lxde/lxterminal/archive/${TERMINAL_COMMIT}.tar.gz -> ${P}.tar.gz"
+	S="${WORKDIR}"/${PN}-${TERMINAL_COMMIT}
+else
+	SRC_URI="https://downloads.sourceforge.net/lxde/${P}.tar.xz"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~mips ~ppc ~riscv ~x86 ~amd64-linux ~x86-linux"
+
+DEPEND="
+	dev-libs/glib:2
+	x11-libs/gdk-pixbuf:2
+	x11-libs/gtk+:3
+	x11-libs/libX11
+	x11-libs/pango
+	>=x11-libs/vte-0.28.0:2.91
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+	app-text/docbook-xsl-stylesheets
+	>=dev-util/intltool-0.40.0
+	sys-devel/gettext
+	virtual/pkgconfig
+"
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-0.4.0-crash-on-exit.patch
+	"${FILESDIR}"/${PN}-0.4.0-c99.patch
+)
+
+src_prepare() {
+	default
+
+	xdg_environment_reset
+
+	eautoreconf
+}
+
+src_configure() {
+	econf --enable-man --enable-gtk3
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-07-28  4:05 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-28  4:05 [gentoo-commits] repo/gentoo:master commit in: lxde-base/lxterminal/, lxde-base/lxterminal/files/ Sam James

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox