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", "<Control>N", menu_new_viewer, WV_MENU_FONV, "<Item>"),
      |                                                        ^~~~~~~~~~~~~~~
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", "<Control>N", menu_new_viewer, WV_MENU_FONV, "<Item>"),
      |                                                        ^~~~~~~~~~~~~~~
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", "<Control>T", menu_new_viewer_tab, WV_MENU_FONVT, "<Item>"),
      |                                                     ^~~~~~~~~~~~~~~~~~~
...
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", "<Shift><Control>R", menu_reload_waveform, WV_MENU_FRW, "<Item>"),
      |                                                               ^~~~~~~~~~~~~~~~~~~~
...
```
This commit is contained in:
ghpzin
2025-12-20 03:20:43 +03:00
parent adb508f78f
commit e2fab1d393
3 changed files with 2 additions and 151 deletions
@@ -1,40 +0,0 @@
From 69a6ab80cf0908c2a44430c297932ef3659a1655 Mon Sep 17 00:00:00 2001
From: Jiajie Chen <c@jia.je>
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
@@ -1,101 +0,0 @@
From 6045177a0d4753bb7a6a6ffc3f1a4a3e96129c6d Mon Sep 17 00:00:00 2001
From: Jiajie Chen <c@jia.je>
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
+2 -10
View File
@@ -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"