summaryrefslogtreecommitdiff
path: root/lxde-base/lxterminal
diff options
context:
space:
mode:
Diffstat (limited to 'lxde-base/lxterminal')
-rw-r--r--lxde-base/lxterminal/Manifest4
-rw-r--r--lxde-base/lxterminal/files/lxterminal-0.4.0-c99.patch54
-rw-r--r--lxde-base/lxterminal/files/lxterminal-0.4.0-crash-on-exit.patch57
-rw-r--r--lxde-base/lxterminal/lxterminal-0.4.0_p20230917.ebuild53
4 files changed, 168 insertions, 0 deletions
diff --git a/lxde-base/lxterminal/Manifest b/lxde-base/lxterminal/Manifest
index b73ca5d9a444..63cbbb80eaed 100644
--- a/lxde-base/lxterminal/Manifest
+++ b/lxde-base/lxterminal/Manifest
@@ -1,3 +1,7 @@
+AUX lxterminal-0.4.0-c99.patch 2390 BLAKE2B ef86c1b806a7e956a36be133069bf3bdc07e6f23d3d252e8459a8f806516642ab864c90079ee27dcadf7e81f52b1b1d76da1c7e02296ab92a8a0333bf8edeecc SHA512 28a54b12c0bf266b3ad06a10fdc2c7cb596a2f435598925bdbfd5aabb3efd08b13a51685e8ee4ef2a91606c8a46be02826bb7c11255b27dac56569da575d4704
+AUX lxterminal-0.4.0-crash-on-exit.patch 2630 BLAKE2B 9f13e7f1e489f52b0715a03458aec4590e91bbbd5ae79469c43ec1e9fc2e51554326cde5a9e3f8ba6f6575ea0b53a692885023e41e2ef53836663ee223eff691 SHA512 19b6142fac501f1090adf1d785e0b8ce88adc5b748baa065662c075a19535e29f0ac48dfa4d3edad62e12881792c5d4b477737d61cc8453038d53eac890bc70d
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
EBUILD lxterminal-0.4.0.ebuild 817 BLAKE2B 14b9917b5c5cb1d976777b2a0d69fb8c2f25416ff21f957de22a240cbdf62e73c2d08f2a3b9d2f6f7c5f53431b086a76c0b1fda6c8195ab27d6888500232e0ae SHA512 9782eb25efcf5a861ba2a6f760d12ade595e7613f69c9a4370439ba42eaa157cca661c6ca3e8a684daaf89b1c14d5d4e8c5f370600ad2d42bd1d27d845ebf531
+EBUILD lxterminal-0.4.0_p20230917.ebuild 1139 BLAKE2B 6823fd156822dd732ecaee8112d34ab7b9b1ab218dd3e1c1ddde8ad5987225e959c82d62ca270b2d4382a17ff3bdad649e37fe9d15a61ad7bd5a84eb960dcf38 SHA512 ef2953fed9ca7028b5a130129cbbb2fb49809119d0067c9b842f8efb18b815dd18ab691bad895024fd2aee7ff9f08c836c3f495670a7b5f27a72e9002e3bbb52
MISC metadata.xml 296 BLAKE2B b60c416597393c9944dc00a2ed51cd8117e0a6deeebf778b5d7f7bb5da4643c510d8a002c0778fe5b835aa7817854fa0ba1a2ffbbe690855999028d13c9f79fc SHA512 5484c2d095231eccfef4100e64808b99dcacd2a2c19558f4c6e44e665f720dfd417455d50c25960eef5dfdfdf761adf8bbb1a9689be78c51b4d350967cf4dcbb
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
+}