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
+}

Reply via email to