summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2024-07-28 05:09:17 +0100
committerSam James <sam@gentoo.org>2024-07-28 05:09:17 +0100
commit181cb7b473c0f9db36fc177b6dd925ae9493194e (patch)
treea35368fab2f9e59e87e66544eec8cffe85be35c7 /lxde-base/lxsession
parentsys-apps/systemd-utils: add 255.10 (diff)
downloadgentoo-181cb7b473c0f9db36fc177b6dd925ae9493194e.tar.gz
gentoo-181cb7b473c0f9db36fc177b6dd925ae9493194e.tar.bz2
gentoo-181cb7b473c0f9db36fc177b6dd925ae9493194e.zip
lxde-base/lxsession: fix modern C issues
Closes: https://bugs.gentoo.org/919093 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'lxde-base/lxsession')
-rw-r--r--lxde-base/lxsession/files/lxsession-0.5.5-c99.patch86
-rw-r--r--lxde-base/lxsession/lxsession-0.5.5-r1.ebuild62
2 files changed, 148 insertions, 0 deletions
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 <mtasaka@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
+}