From e2fab1d3939cb2504c63e345172d53bdba9c8f94 Mon Sep 17 00:00:00 2001 From: ghpzin Date: Sun, 7 Dec 2025 02:11:11 +0300 Subject: [PATCH] gtkwave: 3.3.121 -> 3.3.125 New version includes fix for build errors with gcc15: https://www.github.com/gtkwave/gtkwave/pull/406 https://github.com/gtkwave/gtkwave/commit/b8ff75c9aeed8b5f9190e3f61a6e84d07bc3f10f Fixes build failure with gcc15: ``` menu.c:7725:56: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(void *, guint, GtkWidget *)' {aka 'void (*)(void *, unsigned int, struct _GtkWidget *)'} [-Wincompatible-pointer-types] 7725 | WAVE_GTKIFE("/File/Open New Window", "N", menu_new_viewer, WV_MENU_FONV, ""), | ^~~~~~~~~~~~~~~ gtk23compat.h:55:37: note: in definition of macro 'WAVE_GTKIFE' 55 | #define WAVE_GTKIFE(a,b,c,d,e) {a,b,c,d,e,NULL} | ^ menu.c:7725:56: note: (near initialization for 'menu_items[0].callback') 7725 | WAVE_GTKIFE("/File/Open New Window", "N", menu_new_viewer, WV_MENU_FONV, ""), | ^~~~~~~~~~~~~~~ gtk23compat.h:55:37: note: in definition of macro 'WAVE_GTKIFE' 55 | #define WAVE_GTKIFE(a,b,c,d,e) {a,b,c,d,e,NULL} | ^ menu.c:3610:1: note: 'menu_new_viewer' declared here 3610 | menu_new_viewer(gpointer null_data, guint callback_action, GtkWidget *widget) | ^~~~~~~~~~~~~~~ ... menu.c:7726:53: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(void *, guint, GtkWidget *)' {aka 'void (*)(void *, unsigned int, struct _GtkWidget *)'} [-Wincompatible-pointer-types] 7726 | WAVE_GTKIFE("/File/Open New Tab", "T", menu_new_viewer_tab, WV_MENU_FONVT, ""), | ^~~~~~~~~~~~~~~~~~~ ... menu.c:7727:63: error: initialization of 'void (*)(void)' from incompatible pointer type 'void (*)(void *, guint, GtkWidget *)' {aka 'void (*)(void *, unsigned int, struct _GtkWidget *)'} [-Wincompatible-pointer-types] 7727 | WAVE_GTKIFE("/File/Reload Waveform", "R", menu_reload_waveform, WV_MENU_FRW, ""), | ^~~~~~~~~~~~~~~~~~~~ ... ``` --- ...etection-of-quartz-in-gdk-3.0-target.patch | 40 ------- ...NDOWING_X11-macro-when-using-GtkPlug.patch | 101 ------------------ pkgs/by-name/gt/gtkwave/package.nix | 12 +-- 3 files changed, 2 insertions(+), 151 deletions(-) delete mode 100644 pkgs/by-name/gt/gtkwave/0001-Fix-detection-of-quartz-in-gdk-3.0-target.patch delete mode 100644 pkgs/by-name/gt/gtkwave/0002-Check-GDK_WINDOWING_X11-macro-when-using-GtkPlug.patch diff --git a/pkgs/by-name/gt/gtkwave/0001-Fix-detection-of-quartz-in-gdk-3.0-target.patch b/pkgs/by-name/gt/gtkwave/0001-Fix-detection-of-quartz-in-gdk-3.0-target.patch deleted file mode 100644 index b28e0b8e9720..000000000000 --- a/pkgs/by-name/gt/gtkwave/0001-Fix-detection-of-quartz-in-gdk-3.0-target.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 69a6ab80cf0908c2a44430c297932ef3659a1655 Mon Sep 17 00:00:00 2001 -From: Jiajie Chen -Date: Wed, 22 Jun 2022 16:24:10 +0800 -Subject: [PATCH 1/2] Fix detection of quartz in gdk-3.0 target - -The GTK+3 built by Nix targets ``broadway quartz`` instead of only `quartz`, -thus the target check is wrong. The script is modified to look up `quartz` in a -loop. The variable name is renamed to `targets` in `gdk-3.0.pc` as well. - ---- - configure | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/configure b/configure -index 628a80f..9cb88d5 100755 ---- a/configure -+++ b/configure -@@ -7361,7 +7361,10 @@ $as_echo "yes" >&6; } - fi - GTK_VER=`$PKG_CONFIG gtk+-3.0 --modversion` - -- _gdk_tgt=`$PKG_CONFIG --variable=target gdk-3.0` -+ # gdk-3.0 may have multiple targets e.g. "broadway quartz" -+ _gdk_tgts=`$PKG_CONFIG --variable=targets gdk-3.0` -+ for _gdk_tgt in $_gdk_tgts; -+ do - if test "x$_gdk_tgt" = xquartz; then - - pkg_failed=no -@@ -7466,6 +7469,7 @@ fi - COCOA_GTK_LDFLAGS="-framework Cocoa -framework ApplicationServices" - - fi -+ done - - if test x$with_gconf = xyes; then - --- -2.36.1 - diff --git a/pkgs/by-name/gt/gtkwave/0002-Check-GDK_WINDOWING_X11-macro-when-using-GtkPlug.patch b/pkgs/by-name/gt/gtkwave/0002-Check-GDK_WINDOWING_X11-macro-when-using-GtkPlug.patch deleted file mode 100644 index 456f5fa278f3..000000000000 --- a/pkgs/by-name/gt/gtkwave/0002-Check-GDK_WINDOWING_X11-macro-when-using-GtkPlug.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 6045177a0d4753bb7a6a6ffc3f1a4a3e96129c6d Mon Sep 17 00:00:00 2001 -From: Jiajie Chen -Date: Wed, 22 Jun 2022 17:03:29 +0800 -Subject: [PATCH 2/2] Check GDK_WINDOWING_X11 macro when using GtkPlug - ---- - src/main.c | 5 +++++ - src/twinwave.c | 12 ++++++++++-- - 2 files changed, 15 insertions(+), 2 deletions(-) - -diff --git a/src/main.c b/src/main.c -index 81bf505..b89f629 100644 ---- a/src/main.c -+++ b/src/main.c -@@ -2080,10 +2080,15 @@ if(!GLOBALS->socket_xid) - #ifdef WAVE_USE_XID - else - { -+#ifdef GDK_WINDOWING_X11 - GLOBALS->mainwindow = gtk_plug_new(GLOBALS->socket_xid); - gtk_widget_show(GLOBALS->mainwindow); - - g_signal_connect(XXX_GTK_OBJECT(GLOBALS->mainwindow), "destroy", /* formerly was "destroy" */G_CALLBACK(plug_destroy),"Plug destroy"); -+#else -+ fprintf(stderr, "GTKWAVE | GtkPlug widget is unavailable\n"); -+ exit(1); -+#endif - } - #endif - } -diff --git a/src/twinwave.c b/src/twinwave.c -index 590c7f6..d5c60f2 100644 ---- a/src/twinwave.c -+++ b/src/twinwave.c -@@ -143,15 +143,19 @@ if(GDK_IS_WAYLAND_DISPLAY(gdk_display_get_default())) - use_embedded = 0; - } - #endif -+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11) - { - xsocket[0] = gtk_socket_new (); - xsocket[1] = gtk_socket_new (); - gtk_widget_show (xsocket[0]); - gtk_widget_show (xsocket[1]); - } -+#endif - -+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11) - if(!twinwayland) - g_signal_connect(XXX_GTK_OBJECT(xsocket[0]), "plug-removed", G_CALLBACK(plug_removed), NULL); -+#endif - - #if GTK_CHECK_VERSION(3,0,0) - main_vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5); -@@ -208,7 +212,7 @@ if(hMapFile != NULL) - memset(&pi, 0, sizeof(PROCESS_INFORMATION)); - - sprintf(buf, "0+%08X", shmid); --#ifdef MINGW_USE_XID -+#if defined(MINGW_USE_XID) && defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11) - sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[0]))); - #else - sprintf(buf2, "%x", 0); -@@ -279,7 +283,7 @@ if(hMapFile != NULL) - memset(&pi, 0, sizeof(PROCESS_INFORMATION)); - - sprintf(buf, "1+%08X", shmid); --#ifdef MINGW_USE_XID -+#if defined(MINGW_USE_XID) && defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11) - sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[1]))); - #else - sprintf(buf2, "%x", 0); -@@ -429,10 +433,12 @@ if(shmid >=0) - sprintf(buf, "0+%08X", shmid); - if(use_embedded) - { -+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11) - #ifdef MAC_INTEGRATION - sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[0]))); - #else - sprintf(buf2, "%lx", (long)gtk_socket_get_id (GTK_SOCKET(xsocket[0]))); -+#endif - #endif - } - else -@@ -467,10 +473,12 @@ if(shmid >=0) - sprintf(buf, "1+%08X", shmid); - if(use_embedded) - { -+#if defined(__GTK_SOCKET_H__) && defined(GDK_WINDOWING_X11) - #ifdef MAC_INTEGRATION - sprintf(buf2, "%x", gtk_socket_get_id (GTK_SOCKET(xsocket[1]))); - #else - sprintf(buf2, "%lx", (long)gtk_socket_get_id (GTK_SOCKET(xsocket[1]))); -+#endif - #endif - } - else --- -2.36.1 - diff --git a/pkgs/by-name/gt/gtkwave/package.nix b/pkgs/by-name/gt/gtkwave/package.nix index 6ae23ab2b8a4..d87503a827a2 100644 --- a/pkgs/by-name/gt/gtkwave/package.nix +++ b/pkgs/by-name/gt/gtkwave/package.nix @@ -18,11 +18,11 @@ stdenv.mkDerivation rec { pname = "gtkwave"; - version = "3.3.121"; + version = "3.3.125"; src = fetchurl { url = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz"; - sha256 = "sha256-VKpFeI1tUq+2WcOu8zWq/eDvLImQp3cPjqpk5X8ic0Y="; + sha256 = "sha256-Musd9N/Vbg3eF+igjeYPIBOK8BeoqK1kUi9pYnVixDc="; }; nativeBuildInputs = [ @@ -44,14 +44,6 @@ stdenv.mkDerivation rec { ] ++ lib.optional stdenv.hostPlatform.isDarwin gtk-mac-integration; - # fix compilation under Darwin - # remove these patches upon next release - # https://github.com/gtkwave/gtkwave/pull/136 - patches = [ - ./0001-Fix-detection-of-quartz-in-gdk-3.0-target.patch - ./0002-Check-GDK_WINDOWING_X11-macro-when-using-GtkPlug.patch - ]; - configureFlags = [ "--with-tcl=${tcl}/lib" "--with-tk=${tk}/lib"