diff --git a/0001-Fix-FTBFS-with-gcc-14.patch b/0001-Fix-FTBFS-with-gcc-14.patch new file mode 100644 index 0000000..9f1edec --- /dev/null +++ b/0001-Fix-FTBFS-with-gcc-14.patch @@ -0,0 +1,359 @@ +From: Yves-Alexis Perez +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 + #include + ++#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 ("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 + #include + ++#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 + #include + ++#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 + #include + ++#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 + #include + ++#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 + #include + ++#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 + #include + ++#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" \ + "\n" \ + " \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 + #include + ++#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 + #include + ++#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 + #include + ++#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 (); }); diff --git a/xfce4-notes-plugin.spec b/xfce4-notes-plugin.spec index 77e6060..7339488 100644 --- a/xfce4-notes-plugin.spec +++ b/xfce4-notes-plugin.spec @@ -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