commit: 181cb7b473c0f9db36fc177b6dd925ae9493194e Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Jul 28 04:09:17 2024 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jul 28 04:09:17 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=181cb7b4
lxde-base/lxsession: fix modern C issues Closes: https://bugs.gentoo.org/919093 Signed-off-by: Sam James <sam <AT> gentoo.org> .../lxsession/files/lxsession-0.5.5-c99.patch | 86 ++++++++++++++++++++++ lxde-base/lxsession/lxsession-0.5.5-r1.ebuild | 62 ++++++++++++++++ 2 files changed, 148 insertions(+) diff --git a/lxde-base/lxsession/files/lxsession-0.5.5-c99.patch b/lxde-base/lxsession/files/lxsession-0.5.5-c99.patch new file mode 100644 index 000000000000..8f79578026cb --- /dev/null +++ b/lxde-base/lxsession/files/lxsession-0.5.5-c99.patch @@ -0,0 +1,86 @@ +https://github.com/lxde/lxsession/pull/34 + +From a0d8f8b865ce25867983cd45720adfff33b3fdfb Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA <mtas...@fedoraproject.org> +Date: Sun, 25 Feb 2024 16:58:43 +0900 +Subject: [PATCH] Fix: support gcc14 -Werror=incompatible-pointer-types + +gcc14 now defaults to -Werror=incompatible-pointer-types. +To support compilation with gcc14, cast GTK related objects +properly. +--- a/lxpolkit/lxpolkit-listener.c ++++ b/lxpolkit/lxpolkit-listener.c +@@ -85,13 +85,13 @@ static void on_completed(PolkitAgentSession* session, gboolean authorized, DlgDa + + if(!authorized && !g_cancellable_is_cancelled(data->cancellable)) + { +- show_msg(data->dlg, GTK_MESSAGE_ERROR, _("Authentication failed!\nWrong password?")); ++ show_msg(GTK_WINDOW(data->dlg), GTK_MESSAGE_ERROR, _("Authentication failed!\nWrong password?")); + /* initiate a new session */ + g_object_unref(data->session); + data->session = NULL; +- gtk_entry_set_text(data->request, ""); ++ gtk_entry_set_text(GTK_ENTRY(data->request), ""); + gtk_widget_grab_focus(data->request); +- on_user_changed(data->id, data); ++ on_user_changed(GTK_COMBO_BOX(data->id), data); + return; + } + g_simple_async_result_complete(data->result); +@@ -106,20 +106,20 @@ static void on_request(PolkitAgentSession* session, gchar* request, gboolean ech + msg = _("Password: "); + else + msg = request; +- gtk_label_set_text(data->request_label, msg); +- gtk_entry_set_visibility(data->request, echo_on); ++ gtk_label_set_text(GTK_LABEL(data->request_label), msg); ++ gtk_entry_set_visibility(GTK_ENTRY(data->request), echo_on); + } + + static void on_show_error(PolkitAgentSession* session, gchar* text, DlgData* data) + { + DEBUG("on error: %s", text); +- show_msg(data->dlg, GTK_MESSAGE_ERROR, text); ++ show_msg(GTK_WINDOW(data->dlg), GTK_MESSAGE_ERROR, text); + } + + static void on_show_info(PolkitAgentSession* session, gchar* text, DlgData* data) + { + DEBUG("on info: %s", text); +- show_msg(data->dlg, GTK_MESSAGE_INFO, text); ++ show_msg(GTK_WINDOW(data->dlg), GTK_MESSAGE_INFO, text); + } + + void on_dlg_response(GtkDialog* dlg, int response, DlgData* data) +@@ -127,7 +127,7 @@ void on_dlg_response(GtkDialog* dlg, int response, DlgData* data) + DEBUG("on_response: %d", response); + if(response == GTK_RESPONSE_OK) + { +- const char* request = gtk_entry_get_text(data->request); ++ const char* request = gtk_entry_get_text(GTK_ENTRY(data->request)); + polkit_agent_session_response(data->session, request); + gtk_widget_set_sensitive(data->dlg, FALSE); + } +@@ -195,7 +195,7 @@ static void initiate_authentication(PolkitAgentListener *listener, + DEBUG("%s: %s", *p, polkit_details_lookup(details, *p)); + #endif + data->listener = (LXPolkitListener*)listener; +- data->result = g_simple_async_result_new(listener, callback, user_data, initiate_authentication); ++ data->result = g_simple_async_result_new(G_OBJECT(listener), callback, user_data, initiate_authentication); + + data->action_id = g_strdup(action_id); + data->cancellable = (GCancellable*)g_object_ref(cancellable); +@@ -260,10 +260,10 @@ static void initiate_authentication(PolkitAgentListener *listener, + g_free(str); + } + } +- gtk_combo_box_set_model(data->id, GTK_TREE_MODEL(store)); ++ gtk_combo_box_set_model(GTK_COMBO_BOX(data->id), GTK_TREE_MODEL(store)); + g_object_unref(store); + /* select the fist user in the list */ +- gtk_combo_box_set_active(data->id, 0); ++ gtk_combo_box_set_active(GTK_COMBO_BOX(data->id), 0); + } + else + { + diff --git a/lxde-base/lxsession/lxsession-0.5.5-r1.ebuild b/lxde-base/lxsession/lxsession-0.5.5-r1.ebuild new file mode 100644 index 000000000000..638e9fdd99e2 --- /dev/null +++ b/lxde-base/lxsession/lxsession-0.5.5-r1.ebuild @@ -0,0 +1,62 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit vala autotools + +DESCRIPTION="LXDE session manager" +HOMEPAGE="https://wiki.lxde.org/en/LXSession" +SRC_URI="https://downloads.sourceforge.net/lxde/${P}.tar.xz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~riscv ~x86 ~x86-linux" +IUSE="nls upower" + +COMMON_DEPEND=" + dev-libs/dbus-glib + dev-libs/glib:2 + >=lxde-base/lxde-common-0.99.2-r1 + sys-apps/dbus + sys-auth/polkit + x11-libs/cairo + x11-libs/gdk-pixbuf:2 + x11-libs/gtk+:3 + x11-libs/libX11 +" +RDEPEND="${COMMON_DEPEND} + !lxde-base/lxsession-edit + sys-apps/lsb-release + upower? ( sys-power/upower ) +" +DEPEND="${COMMON_DEPEND} + x11-base/xorg-proto +" +BDEPEND=" + $(vala_depend) + dev-util/intltool + sys-devel/gettext + virtual/pkgconfig +" + +PATCHES=( + # Fedora patches + "${FILESDIR}"/${PN}-0.5.2-reload.patch + "${FILESDIR}"/${PN}-0.5.2-notify-daemon-default.patch + "${FILESDIR}"/${PN}-0.5.5-c99.patch +) + +src_prepare() { + rm *.stamp || die + vala_src_prepare + default + eautoreconf +} + +src_configure() { + # dbus is used for restart/shutdown (logind), and suspend/hibernate (UPower) + econf \ + $(use_enable nls) \ + --enable-gtk3 +}