fix FTBFS and rebuild for xfce 4.20

This commit is contained in:
Mukundan Ragavan 2024-12-22 16:46:51 -06:00
commit df25228024
2 changed files with 364 additions and 1 deletions

View file

@ -0,0 +1,359 @@
From: Yves-Alexis Perez <corsac@debian.org>
Date: Fri, 26 Jul 2024 10:32:39 +0200
Subject: Fix FTBFS with gcc-14
- add pragma generated by more recent vala compiler to explicitely
disable some warnings
- use menu.insert() instead of menu.append() to fix ftbfs with gcc-14
(https://gitlab.gnome.org/GNOME/gtk/-/issues/5870)
---
lib/application.c | 17 +++++++++++++----
lib/application.vala | 6 +++---
lib/hypertextview.c | 9 +++++++++
lib/icon-button.c | 9 +++++++++
lib/note.c | 9 +++++++++
lib/theme-gtkcss.c | 9 +++++++++
lib/theme.c | 9 +++++++++
lib/window-monitor.c | 9 +++++++++
lib/window.c | 9 +++++++++
src/main-panel-plugin.c | 9 +++++++++
src/main-popup.c | 9 +++++++++
src/main-status-icon.c | 14 +++++++++++---
src/main-status-icon.vala | 6 +++---
13 files changed, 111 insertions(+), 13 deletions(-)
diff --git a/lib/application.c b/lib/application.c
index aff74db..2ecf377 100644
--- a/lib/application.c
+++ b/lib/application.c
@@ -1,4 +1,4 @@
-/* application.c generated by valac 0.56.14, the Vala compiler
+/* application.c generated by valac 0.56.17, the Vala compiler
* generated from application.vala, do not modify */
/*
@@ -37,6 +37,15 @@
#include <math.h>
#include <signal.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_APPLICATION_0_PROPERTY,
XNP_APPLICATION_NOTES_PATH_PROPERTY,
@@ -3458,7 +3467,7 @@ __lambda16_ (Block2Data* _data2_)
_tmp8_ = mi;
g_signal_connect_object (_tmp8_, "activate", (GCallback) _____lambda18__gtk_menu_item_activate, self, 0);
_tmp9_ = mi;
- gtk_menu_shell_append ((GtkMenuShell*) _data2_->menu, _tmp9_);
+ gtk_menu_shell_insert ((GtkMenuShell*) _data2_->menu, G_TYPE_CHECK_INSTANCE_TYPE (_tmp9_, gtk_widget_get_type ()) ? ((GtkWidget*) _tmp9_) : NULL, -1);
_g_object_unref0 (mi);
_g_object_unref0 (win);
}
@@ -3467,7 +3476,7 @@ __lambda16_ (Block2Data* _data2_)
_tmp10_ = (GtkSeparatorMenuItem*) gtk_separator_menu_item_new ();
g_object_ref_sink (_tmp10_);
mi_sep = _tmp10_;
- gtk_menu_shell_append ((GtkMenuShell*) _data2_->menu, (GtkMenuItem*) mi_sep);
+ gtk_menu_shell_insert ((GtkMenuShell*) _data2_->menu, G_TYPE_CHECK_INSTANCE_TYPE (mi_sep, gtk_widget_get_type ()) ? ((GtkWidget*) mi_sep) : NULL, -1);
_tmp11_ = (GtkImageMenuItem*) gtk_image_menu_item_new_with_mnemonic (_ ("_Add a new group"));
g_object_ref_sink (_tmp11_);
mi_add = _tmp11_;
@@ -3476,7 +3485,7 @@ __lambda16_ (Block2Data* _data2_)
g_object_ref_sink (_tmp12_);
image = _tmp12_;
gtk_image_menu_item_set_image (mi_add, (GtkWidget*) image);
- gtk_menu_shell_append ((GtkMenuShell*) _data2_->menu, (GtkMenuItem*) mi_add);
+ gtk_menu_shell_insert ((GtkMenuShell*) _data2_->menu, G_TYPE_CHECK_INSTANCE_TYPE (mi_add, gtk_widget_get_type ()) ? ((GtkWidget*) mi_add) : NULL, -1);
gtk_widget_show_all ((GtkWidget*) _data2_->menu);
_g_object_unref0 (image);
_g_object_unref0 (mi_add);
diff --git a/lib/application.vala b/lib/application.vala
index 12fef77..e154de9 100644
--- a/lib/application.vala
+++ b/lib/application.vala
@@ -1052,12 +1052,12 @@ namespace Xnp {
var w = i.get_data<Xnp.Window> ("window");
w.present ();
});
- menu.append (mi);
+ menu.append (mi as Gtk.Widget, -1);
}
// New group menu item
var mi_sep = new Gtk.SeparatorMenuItem ();
- menu.append (mi_sep);
+ menu.append (mi_sep as Gtk.Widget, -1);
var mi_add = new Gtk.ImageMenuItem.with_mnemonic (_("_Add a new group"));
mi_add.activate.connect (() => {
var new_win = create_window ();
@@ -1066,7 +1066,7 @@ namespace Xnp {
});
var image = new Gtk.Image.from_icon_name ("gtk-add", Gtk.IconSize.MENU);
mi_add.set_image (image);
- menu.append (mi_add);
+ menu.insert (mi_add as Gtk.Widget, -1);
// Show all items
menu.show_all ();
diff --git a/lib/hypertextview.c b/lib/hypertextview.c
index 8577647..29f0ea4 100644
--- a/lib/hypertextview.c
+++ b/lib/hypertextview.c
@@ -32,6 +32,15 @@
#include <pango/pango.h>
#include <gio/gio.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_HYPERTEXT_VIEW_0_PROPERTY,
XNP_HYPERTEXT_VIEW_FONT_PROPERTY,
diff --git a/lib/icon-button.c b/lib/icon-button.c
index fc6f956..2dfe650 100644
--- a/lib/icon-button.c
+++ b/lib/icon-button.c
@@ -31,6 +31,15 @@
#define M_PI 3.14159265358979323846
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_ICON_BUTTON_0_PROPERTY,
XNP_ICON_BUTTON_ENABLED_PROPERTY,
diff --git a/lib/note.c b/lib/note.c
index 3e28543..a151932 100644
--- a/lib/note.c
+++ b/lib/note.c
@@ -27,6 +27,15 @@
#include <glib-object.h>
#include <gtk/gtk.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_NOTE_0_PROPERTY,
XNP_NOTE_NAME_PROPERTY,
diff --git a/lib/theme-gtkcss.c b/lib/theme-gtkcss.c
index 5d53157..a882bbb 100644
--- a/lib/theme-gtkcss.c
+++ b/lib/theme-gtkcss.c
@@ -34,6 +34,15 @@
#include <libxfce4util/libxfce4util.h>
#include <glib/gstdio.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_THEME_GTKCSS_0_PROPERTY,
XNP_THEME_GTKCSS_USE_GTK_STYLE_PROPERTY,
diff --git a/lib/theme.c b/lib/theme.c
index 4b9aef8..a0382ef 100644
--- a/lib/theme.c
+++ b/lib/theme.c
@@ -30,6 +30,15 @@
#include <float.h>
#include <math.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_THEME_0_PROPERTY,
XNP_THEME_NUM_PROPERTIES
diff --git a/lib/window-monitor.c b/lib/window-monitor.c
index 6eb43b0..5fe0c04 100644
--- a/lib/window-monitor.c
+++ b/lib/window-monitor.c
@@ -27,6 +27,15 @@
#include <stdlib.h>
#include <string.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
enum {
XNP_WINDOW_MONITOR_0_PROPERTY,
XNP_WINDOW_MONITOR_NUM_PROPERTIES
diff --git a/lib/window.c b/lib/window.c
index 8198818..afa80bb 100644
--- a/lib/window.c
+++ b/lib/window.c
@@ -33,6 +33,15 @@
#include <math.h>
#include <cairo-gobject.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
#define XNP_WINDOW_ui_string "\n" \
"<ui>\n" \
" <accelerator action=\"close-window\" />\n" \
diff --git a/src/main-panel-plugin.c b/src/main-panel-plugin.c
index 2a90d4d..803c5e4 100644
--- a/src/main-panel-plugin.c
+++ b/src/main-panel-plugin.c
@@ -31,6 +31,15 @@
#include <string.h>
#include <glib/gi18n-lib.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
diff --git a/src/main-popup.c b/src/main-popup.c
index 8371935..d804cb9 100644
--- a/src/main-popup.c
+++ b/src/main-popup.c
@@ -26,6 +26,15 @@
#include <gtk/gtk.h>
#include <gio/gio.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
+
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
diff --git a/src/main-status-icon.c b/src/main-status-icon.c
index ee1f095..8a6eb73 100644
--- a/src/main-status-icon.c
+++ b/src/main-status-icon.c
@@ -31,6 +31,14 @@
#include <libc/xfce-autostart.h>
#include <gio/gio.h>
+#if !defined(VALA_STRICT_C)
+#if !defined(__clang__) && defined(__GNUC__) && (__GNUC__ >= 14)
+#pragma GCC diagnostic warning "-Wincompatible-pointer-types"
+#elif defined(__clang__) && (__clang_major__ >= 16)
+#pragma clang diagnostic ignored "-Wincompatible-function-pointer-types"
+#pragma clang diagnostic ignored "-Wincompatible-pointer-types"
+#endif
+#endif
#if !defined(VALA_EXTERN)
#if defined(_MSC_VER)
#define VALA_EXTERN __declspec(dllexport) extern
@@ -261,7 +269,7 @@ menu_add_icon_item (GtkMenu* menu,
image = _tmp1_;
gtk_image_menu_item_set_image (mi, (GtkWidget*) image);
g_signal_connect_data ((GtkMenuItem*) mi, "activate", (GCallback) ___lambda6__gtk_menu_item_activate, block1_data_ref (_data1_), (GClosureNotify) block1_data_unref, 0);
- gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkMenuItem*) mi);
+ gtk_menu_shell_insert ((GtkMenuShell*) menu, G_TYPE_CHECK_INSTANCE_TYPE (mi, gtk_widget_get_type ()) ? ((GtkWidget*) mi) : NULL, -1);
_g_object_unref0 (image);
_g_object_unref0 (mi);
block1_data_unref (_data1_);
@@ -277,7 +285,7 @@ menu_add_separator (GtkMenu* menu)
_tmp0_ = (GtkSeparatorMenuItem*) gtk_separator_menu_item_new ();
g_object_ref_sink (_tmp0_);
mi = _tmp0_;
- gtk_menu_shell_append ((GtkMenuShell*) menu, (GtkMenuItem*) mi);
+ gtk_menu_shell_insert ((GtkMenuShell*) menu, G_TYPE_CHECK_INSTANCE_TYPE (mi, gtk_widget_get_type ()) ? ((GtkWidget*) mi) : NULL, -1);
_g_object_unref0 (mi);
}
@@ -345,7 +353,7 @@ build_context_menu (void)
_tmp3_ = xnp_application_context_menu (_tmp2_);
menu_go = _tmp3_;
gtk_menu_item_set_submenu (mi, menu_go);
- gtk_menu_shell_append ((GtkMenuShell*) menu, mi);
+ gtk_menu_shell_insert ((GtkMenuShell*) menu, G_TYPE_CHECK_INSTANCE_TYPE (mi, gtk_widget_get_type ()) ? ((GtkWidget*) mi) : NULL, -1);
menu_add_separator (menu);
menu_add_icon_item (menu, _ ("_Properties"), "gtk-properties", ___lambda7__callback, NULL);
menu_add_icon_item (menu, _ ("_About"), "gtk-about", ___lambda8__callback, NULL);
diff --git a/src/main-status-icon.vala b/src/main-status-icon.vala
index 9f5141d..e09cf24 100644
--- a/src/main-status-icon.vala
+++ b/src/main-status-icon.vala
@@ -54,12 +54,12 @@ static void menu_add_icon_item (Gtk.Menu menu, string text, string icon, Callbac
var image = new Gtk.Image.from_icon_name (icon, Gtk.IconSize.MENU);
mi.set_image (image);
mi.activate.connect (() => { callback (); });
- menu.append (mi);
+ menu.insert (mi as Gtk.Widget, -1);
}
static void menu_add_separator (Gtk.Menu menu) {
var mi = new Gtk.SeparatorMenuItem ();
- menu.append (mi);
+ menu.insert (mi as Gtk.Widget, -1);
}
static Gtk.Menu build_context_menu () {
@@ -68,7 +68,7 @@ static Gtk.Menu build_context_menu () {
var mi = new Gtk.MenuItem.with_mnemonic (_("_Groups"));
var menu_go = application.context_menu ();
mi.set_submenu (menu_go);
- menu.append (mi);
+ menu.insert (mi as Gtk.Widget, -1);
menu_add_separator (menu);
menu_add_icon_item (menu, _("_Properties"), "gtk-properties", () => { application.open_settings_dialog (); });

View file

@ -12,6 +12,10 @@ License: GPL-2.0-or-later
URL: http://goodies.xfce.org/projects/panel-plugins/%{name}
Source0: http://archive.xfce.org/src/panel-plugins/%{name}/%{minor_version}/%{name}-%{version}.tar.bz2
# patch from upstream git
# https://gitlab.xfce.org/panel-plugins/xfce4-notes-plugin/-/issues/84
Patch0: 0001-Fix-FTBFS-with-gcc-14.patch
BuildRequires: make
BuildRequires: gcc-c++
BuildRequires: xfce4-panel-devel >= %{xfceversion}
@ -30,7 +34,7 @@ background color and much more.
%prep
%autosetup
%autosetup -p1
%build
%configure --disable-static