ANNOUNCEMENT: Live Wireshark University & Allegro Packets online APAC Wireshark Training Session
July 17th, 2024 | 10:00am-11:55am SGT (UTC+8) | Online

Wireshark-dev: [Wireshark-dev] Wireshark SVN does not build on Ubuntu 64bit (gtk/expert_dlg.c)

From: Roland Knall <rknall@xxxxxxxxx>
Date: Tue, 22 Mar 2011 15:50:52 +0100
Hello

On my system, Wireshark does not build anymore since revision 36235.
The reason for this is the move of the struct expert_tapdata_s from
gtk/expert_dlg.h to gtk/expert_comp_dlg.c .

The stump, which was left on gtk/expert_dlg.h does not work, as
gtk/expert_dlg.c needs to use some members of the struct, and cannot
do so, as to insufficient declaration for this struct.

Moving the complete struct back to expert_dlg.h and adding a #include
to that header in expert_comp_dlg.c solves this issue.

I attached a corrsponding patch, but, am I missing something here?
Should it work?

btw, my system is a fresh setup, everything directly out of the box
Ubuntu 10.10 64bit.

kind regards,
Roland
------------------
Tshark -v output:
Compiled (64-bit) with GLib 2.26.1, with libpcap 1.1.1, with libz 1.2.3.4, with
POSIX capabilities (Linux), without libpcre, with SMI 0.4.8, with c-ares 1.7.3,
with Lua 5.1, with Python, with GnuTLS 2.8.6, with Gcrypt 1.4.5, with MIT
Kerberos, with GeoIP.

Running on Linux 2.6.35-28-generic, with libpcap version 1.1.1, with libz
1.2.3.4.

Built using gcc 4.4.5.
Index: gtk/expert_comp_dlg.c
===================================================================
--- gtk/expert_comp_dlg.c       (revision 36249)
+++ gtk/expert_comp_dlg.c       (working copy)
@@ -46,6 +46,7 @@
 #include "gtk/expert_comp_table.h"
 #include "gtk/gui_stat_menu.h"
 #include "gtk/help_dlg.h"
+#include "gtk/expert_dlg.h"
 #include "gtk/expert_comp_dlg.h"
 #include "gtk/stock_icons.h"
 #include "gtk/main.h"
@@ -84,24 +85,6 @@
     guint32 error_events;
 } expert_comp_dlg_t;
 
-struct expert_tapdata_s {
-       GtkWidget       *win;
-       GtkWidget       *scrolled_window;
-       GtkTreeView *tree_view;
-       GtkWidget       *label;
-       guint32         disp_events;
-       guint32         chat_events;
-       guint32         note_events;
-       guint32         warn_events;
-       guint32         error_events;
-       int             severity_report_level;
-
-       GArray          *ei_array;      /* expert info items */
-       guint           first;
-       guint           last;
-       GStringChunk*   text;           /* summary text */
-};
-
 static GtkWidget  *expert_comp_dlg_w = NULL;
 
 static void
Index: gtk/expert_dlg.c
===================================================================
--- gtk/expert_dlg.c    (revision 36249)
+++ gtk/expert_dlg.c    (working copy)
@@ -38,7 +38,7 @@
 #include <epan/expert.h>
 #include <epan/emem.h>
 #include <epan/tap.h>
-#include "epan/packet_info.h"
+#include <epan/packet_info.h>
 #include <epan/stat_cmd_args.h>
 #include <epan/prefs.h>
 
Index: gtk/expert_dlg.h
===================================================================
--- gtk/expert_dlg.h    (revision 36249)
+++ gtk/expert_dlg.h    (working copy)
@@ -31,7 +31,24 @@
 
 #include <gtk/gtk.h>
 
-typedef struct expert_tapdata_s expert_tapdata_t;
+/* used to keep track of the statistics for an entire program interface */
+typedef struct expert_tapdata_s {
+       GtkWidget       *win;
+       GtkWidget       *scrolled_window;
+       GtkTreeView *tree_view;
+       GtkWidget       *label;
+       guint32         disp_events;
+       guint32         chat_events;
+       guint32         note_events;
+       guint32         warn_events;
+       guint32         error_events;
+       int             severity_report_level;
 
+       GArray          *ei_array;      /* expert info items */
+       guint           first;
+       guint           last;
+       GStringChunk*   text;           /* summary text */
+} expert_tapdata_t;
+
 #endif /* __EXPERT_DLG_H__ */