diff options
author | Sam James <sam@gentoo.org> | 2024-07-28 04:58:45 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2024-07-28 04:58:47 +0100 |
commit | 60a6dd214a05024dfd1bf5b1529c454e9036b652 (patch) | |
tree | 6fd8b92328384c03750684a883ba58e23be12767 /lxde-base/lxterminal | |
parent | sys-apps/systemd: add 256.4 (diff) | |
download | gentoo-60a6dd214a05024dfd1bf5b1529c454e9036b652.tar.gz gentoo-60a6dd214a05024dfd1bf5b1529c454e9036b652.tar.bz2 gentoo-60a6dd214a05024dfd1bf5b1529c454e9036b652.zip |
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@gentoo.org>
Diffstat (limited to 'lxde-base/lxterminal')
-rw-r--r-- | lxde-base/lxterminal/Manifest | 1 | ||||
-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, 165 insertions, 0 deletions
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 +} |