From 06bdecee4f3fd125b69e131ec98f04bedf2aaf93 Mon Sep 17 00:00:00 2001 From: sulincix Date: Mon, 30 Sep 2024 19:40:53 +0000 Subject: [PATCH] fixes about lxde and xfce --- lxde/base/lxpanel/lxpanel-0.10.1-c99.patch | 29 ++++++ lxde/base/lxpanel/ympbuild | 11 ++- ...esion-0.5.5-fix-incompatible-pointer.patch | 89 +++++++++++++++++++ lxde/base/lxsession/lxsession-0.5.5-c99.patch | 86 ++++++++++++++++++ lxde/base/lxsession/ympbuild | 16 ++-- .../lxterminal/lxterminal-0.4.0-c99.patch | 54 +++++++++++ lxde/base/lxterminal/ympbuild | 6 +- lxde/base/pcmanfm/ympbuild | 3 + xfce/base/xfce4-session/ympbuild | 2 +- xfce/extra/xfce-polkit/ympbuild | 2 + 10 files changed, 287 insertions(+), 11 deletions(-) create mode 100644 lxde/base/lxpanel/lxpanel-0.10.1-c99.patch create mode 100644 lxde/base/lxsession/lxsesion-0.5.5-fix-incompatible-pointer.patch create mode 100644 lxde/base/lxsession/lxsession-0.5.5-c99.patch create mode 100644 lxde/base/lxterminal/lxterminal-0.4.0-c99.patch diff --git a/lxde/base/lxpanel/lxpanel-0.10.1-c99.patch b/lxde/base/lxpanel/lxpanel-0.10.1-c99.patch new file mode 100644 index 00000000..06a94821 --- /dev/null +++ b/lxde/base/lxpanel/lxpanel-0.10.1-c99.patch @@ -0,0 +1,29 @@ +https://bugs.gentoo.org/919092 +https://github.com/lxde/lxpanel/pull/70 + +From 914bcc3945503be2506e112883a648b867c6db57 Mon Sep 17 00:00:00 2001 +From: Ravi Kant Sharma <600723+raviksharma@users.noreply.github.com> +Date: Tue, 23 Jul 2024 18:02:44 +0200 +Subject: [PATCH] fix build failure on gcc-14 + +gcc-14 treats implicitly casting all pointer types to all other pointer types as error now. + +https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors +--- + plugins/tray.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/tray.c b/plugins/tray.c +index 3e66b81f..42d4917c 100644 +--- a/plugins/tray.c ++++ b/plugins/tray.c +@@ -631,7 +631,7 @@ static GtkWidget *tray_constructor(LXPanel *panel, config_setting_t *settings) + /* Add GDK event filter. */ + gdk_window_add_filter(NULL, (GdkFilterFunc) tray_event_filter, tr); + /* Reference the window since it is never added to a container. */ +- tr->invisible = g_object_ref_sink(G_OBJECT(invisible)); ++ tr->invisible = (GtkWidget *) g_object_ref_sink(G_OBJECT(invisible)); + tr->invisible_window = GDK_WINDOW_XID(gtk_widget_get_window(invisible)); + + /* Allocate top level widget and set into Plugin widget pointer. */ + diff --git a/lxde/base/lxpanel/ympbuild b/lxde/base/lxpanel/ympbuild index e092f60b..bca5e164 100644 --- a/lxde/base/lxpanel/ympbuild +++ b/lxde/base/lxpanel/ympbuild @@ -7,17 +7,24 @@ description='Lightweight X11 desktop panel for LXDE ' email='bayramk@gmail.com' maintainer='bk' license=('GPLv3') -source=("https://salsa.debian.org/lxde-team/lxpanel/-/archive/debian/$version-1/lxpanel-debian-$version-1.tar.gz") +source=("https://salsa.debian.org/lxde-team/lxpanel/-/archive/debian/$version-1/lxpanel-debian-$version-1.tar.gz" + "lxpanel-0.10.1-c99.patch") depends=(libwnck3 wireless-tools) makedepends=() -sha256sums=('e4c6a8c9901f4226160af79c409236fe4e5d1b1ec3aefdb1c43e416698f27811') +sha256sums=('e4c6a8c9901f4226160af79c409236fe4e5d1b1ec3aefdb1c43e416698f27811' + 'SKIP') group=(lxde.base) uses=() arch=('x86_64') cd $name-debian-$version-1 +export CFLAGS="-Wno-all -O2 -s" +export CXXFLAGS="-Wno-all -O2 -s" + prepare(){ + + patch -Np1 -i ../lxpanel-0.10.1-c99.patch # Disable pager plugin as it breaks panel layout with GTK+ 3 # https://sourceforge.net/p/lxde/bugs/773/ sed -i '/pager.c/d' plugins/Makefile.am diff --git a/lxde/base/lxsession/lxsesion-0.5.5-fix-incompatible-pointer.patch b/lxde/base/lxsession/lxsesion-0.5.5-fix-incompatible-pointer.patch new file mode 100644 index 00000000..d45ffb53 --- /dev/null +++ b/lxde/base/lxsession/lxsesion-0.5.5-fix-incompatible-pointer.patch @@ -0,0 +1,89 @@ +From 0eb1a31843691b4e5f3354c153315dcb7ebeda3d Mon Sep 17 00:00:00 2001 +From: Mamoru TASAKA +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. +--- + lxpolkit/lxpolkit-listener.c | 22 +++++++++++----------- + 1 file changed, 11 insertions(+), 11 deletions(-) + +diff --git a/lxpolkit/lxpolkit-listener.c b/lxpolkit/lxpolkit-listener.c +index 00bda424..819d2c58 100644 +--- 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-c99.patch b/lxde/base/lxsession/lxsession-0.5.5-c99.patch new file mode 100644 index 00000000..8f795780 --- /dev/null +++ b/lxde/base/lxsession/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 +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/ympbuild b/lxde/base/lxsession/ympbuild index f784362e..325baef1 100644 --- a/lxde/base/lxsession/ympbuild +++ b/lxde/base/lxsession/ympbuild @@ -7,25 +7,27 @@ description='Lightweight X11 session manager' email='akarsu@protonmail.com' maintainer='akarsu' license=('GPL2') -source=("https://salsa.debian.org/lxde-team/lxsession/-/archive/debian/$version-2/lxsession-debian-$version-2.tar.gz") +_commit="95e902d76758e09f9226abd39163aadd5cd50bc1" +source=("https://github.com/lxde/lxsession/archive/${_commit}.zip") depends=(gtk3 polkit) makedepends=(intltool vala docbook-xsl) -sha256sums=('c9ed57c23c682fbd33cf5a8092a5d5c5415a922f8e36d350dcbb637434db6843') +sha256sums=('19df9abfda70fb051c4e0f6d17a68d6e635728065faee7b95e441e26af4098d9') group=(lxde.base) uses=() arch=('x86_64') -cd $name-debian-$version-2 +cd $name-${_commit} + +export CC="clang" +export CXX="clang++" setup(){ - autoreconf -fvi + ./autogen.sh ./configure --prefix=/usr\ --sysconfdir=/etc \ --libexecdir=/usr/libexec \ --enable-gtk3 \ - --enable-buildin-clipboard \ - --libdir=/usr/lib64/ \ - --enable-buildin-polkit + --libdir=/usr/lib64/ } build(){ diff --git a/lxde/base/lxterminal/lxterminal-0.4.0-c99.patch b/lxde/base/lxterminal/lxterminal-0.4.0-c99.patch new file mode 100644 index 00000000..7694e94b --- /dev/null +++ b/lxde/base/lxterminal/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 +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/ympbuild b/lxde/base/lxterminal/ympbuild index d2e9c3e1..a8d306f6 100644 --- a/lxde/base/lxterminal/ympbuild +++ b/lxde/base/lxterminal/ympbuild @@ -17,10 +17,14 @@ arch=('x86_64') cd $name-debian-$version-2 +export CC="clang" +export CXX="clang++" + + setup(){ autoreconf -fvi ./configure --prefix=/usr \ - --libdir=/usr/lib64/ --enable-gtk3 + --libdir=/usr/lib64/ --enable-gtk3 } build(){ diff --git a/lxde/base/pcmanfm/ympbuild b/lxde/base/pcmanfm/ympbuild index 5daeb8fe..275bdbfb 100644 --- a/lxde/base/pcmanfm/ympbuild +++ b/lxde/base/pcmanfm/ympbuild @@ -17,6 +17,9 @@ arch=('x86_64') cd $name-$version +export CC="clang" +export CXX="clang++" + setup(){ autoreconf -fvi ./configure --prefix=/usr \ diff --git a/xfce/base/xfce4-session/ympbuild b/xfce/base/xfce4-session/ympbuild index bb6ec6a7..c58f3ca1 100644 --- a/xfce/base/xfce4-session/ympbuild +++ b/xfce/base/xfce4-session/ympbuild @@ -9,7 +9,7 @@ email='akarsu@protonmail.com' maintainer='akarsu' license=('GPLv2') source=("https://archive.xfce.org/src/xfce/xfce4-session/${_version}/xfce4-session-${version}.tar.bz2") -depends=(libxfce4ui libwnck3 xfconf) +depends=(libxfce4ui libwnck3 xfconf xorg-iceauth) makedepends=(intltool) sha256sums=('9a9c5074c7338b881a5259d3b643619bf84901360c03478e1a697938ece06516') group=(xfce.base) diff --git a/xfce/extra/xfce-polkit/ympbuild b/xfce/extra/xfce-polkit/ympbuild index c36fb670..abb47591 100644 --- a/xfce/extra/xfce-polkit/ympbuild +++ b/xfce/extra/xfce-polkit/ympbuild @@ -32,5 +32,7 @@ build () { package () { make DESTDIR="$DESTDIR" install $jobs + # dont run non xfce + echo "OnlyShowIn=XFCE;" >> $DESTDIR//etc/xdg/autostart/xfce-polkit.desktop }