diff options
Diffstat (limited to 'lxde-base/lxterminal')
-rw-r--r-- | lxde-base/lxterminal/Manifest | 4 | ||||
-rw-r--r-- | lxde-base/lxterminal/files/lxterminal-0.4.0-c99.patch | 54 | ||||
-rw-r--r-- | lxde-base/lxterminal/files/lxterminal-0.4.0-crash-on-exit.patch | 57 | ||||
-rw-r--r-- | lxde-base/lxterminal/lxterminal-0.4.0_p20230917.ebuild | 53 |
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 +} |