Opened 10 months ago

Last modified 10 months ago

#67926 new defect

xfce4-session fails to build with current gtk-3: error: 'GtkWidget' {aka 'struct _GtkWidget'} has no member named 'style'

Reported by: barracuda156 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: Cc:
Port: xfce4-session

Description

To begin with, existing port will fail at configure itself, since it looks for non-existing library. After adding the patch:

--- configure.ac.orig	2023-08-08 03:39:56.000000000 +0800
+++ configure.ac	2023-08-08 03:45:18.000000000 +0800
@@ -106,7 +106,7 @@
 
 dnl Check for required packages
 XDT_CHECK_PACKAGE([LIBXFCE4UTIL], [libxfce4util-1.0], [4.9.0])
-XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-1], [4.12.1])
+XDT_CHECK_PACKAGE([LIBXFCE4UI], [libxfce4ui-2], [4.12.1])
 XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.20.0])
 XDT_CHECK_PACKAGE([GMODULE], [gmodule-2.0], [2.24.0])
 XDT_CHECK_PACKAGE([LIBWNCK], [libwnck-1.0], [2.30])
@@ -210,9 +210,9 @@
 fi
 
 dnl check for location Xfce glade files were installed to
-XFCE_GLADE_CATALOG_PATH="`pkg-config --variable glade_catalogdir libxfce4ui-1`"
-XFCE_GLADE_PIXMAP_PATH="`pkg-config --variable glade_pixmapdir libxfce4ui-1`"
-XFCE_GLADE_MODULE_PATH="`pkg-config --variable glade_moduledir libxfce4ui-1`"
+XFCE_GLADE_CATALOG_PATH="`pkg-config --variable glade_catalogdir libxfce4ui-2`"
+XFCE_GLADE_PIXMAP_PATH="`pkg-config --variable glade_pixmapdir libxfce4ui-2`"
+XFCE_GLADE_MODULE_PATH="`pkg-config --variable glade_moduledir libxfce4ui-2`"
 AC_SUBST(XFCE_GLADE_CATALOG_PATH)
 AC_SUBST(XFCE_GLADE_PIXMAP_PATH)
 AC_SUBST(XFCE_GLADE_MODULE_PATH)

with gcc-4.2 it fails in the beginning of the build on:

:info:build Making all in libxfsm
:info:build make[2]: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_xfce_xfce4-session/xfce4-session/work/xfce4-session-4.12.1/libxfsm'
:info:build   CC       libxfsm_4_6_la-xfsm-splash-rc.lo
:info:build   CC       libxfsm_4_6_la-xfsm-util.lo
:info:build xfsm-util.c: In function ‘xfsm_window_add_border’:
:info:build xfsm-util.c:165: error: ‘GtkWidget’ has no member named ‘style’
:info:build xfsm-util.c:173: error: ‘GtkBin’ has no member named ‘child’
:info:build make[2]: *** [libxfsm_4_6_la-xfsm-util.lo] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_xfce_xfce4-session/xfce4-session/work/xfce4-session-4.12.1/libxfsm'
:info:build make[1]: *** [all-recursive] Error 1

Switching to gcc12 does not help:

:info:build Making all in libxfsm
:info:build make[2]: Entering directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_xfce_xfce4-session/xfce4-session/work/xfce4-session-4.12.1/libxfsm'
:info:build   CC       libxfsm_4_6_la-xfsm-splash-rc.lo
:info:build   CC       libxfsm_4_6_la-xfsm-util.lo
:info:build xfsm-util.c: In function 'xfsm_start_application':
:info:build xfsm-util.c:83:42: warning: 'gdk_screen_get_number' is deprecated [-Wdeprecated-declarations]
:info:build    83 |                                          gdk_screen_get_number (screen));
:info:build       |                                          ^~~~~~~~~~~~~~~~~~~~~
:info:build In file included from /opt/local/include/gtk-3.0/gdk/gdkapplaunchcontext.h:31,
:info:build                  from /opt/local/include/gtk-3.0/gdk/gdk.h:32,
:info:build                  from /opt/local/include/gtk-3.0/gdk/gdkx.h:28,
:info:build                  from xfsm-util.c:39:
:info:build /opt/local/include/gtk-3.0/gdk/gdkscreen.h:56:14: note: declared here
:info:build    56 | gint         gdk_screen_get_number            (GdkScreen   *screen);
:info:build       |              ^~~~~~~~~~~~~~~~~~~~~
:info:build xfsm-util.c:86:9: warning: 'gdk_screen_make_display_name' is deprecated [-Wdeprecated-declarations]
:info:build    86 |         screen_name = gdk_screen_make_display_name (screen);
:info:build       |         ^~~~~~~~~~~
:info:build /opt/local/include/gtk-3.0/gdk/gdkscreen.h:71:14: note: declared here
:info:build    71 | gchar *      gdk_screen_make_display_name     (GdkScreen   *screen);
:info:build       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build xfsm-util.c: In function 'xfsm_place_trash_window':
:info:build xfsm-util.c:128:3: warning: 'gdk_screen_get_monitor_geometry' is deprecated: Use 'gdk_monitor_get_geometry' instead [-Wdeprecated-declarations]
:info:build   128 |   gdk_screen_get_monitor_geometry (screen, monitor, &geometry);
:info:build       |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build /opt/local/include/gtk-3.0/gdk/gdkscreen.h:78:14: note: declared here
:info:build    78 | void         gdk_screen_get_monitor_geometry  (GdkScreen    *screen,
:info:build       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
:info:build xfsm-util.c:129:3: warning: 'gtk_widget_size_request' is deprecated: Use 'gtk_widget_get_preferred_size' instead [-Wdeprecated-declarations]
:info:build   129 |   gtk_widget_size_request (GTK_WIDGET (window), &requisition);
:info:build       |   ^~~~~~~~~~~~~~~~~~~~~~~
:info:build In file included from /opt/local/include/gtk-3.0/gtk/gtkapplication.h:27,
:info:build                  from /opt/local/include/gtk-3.0/gtk/gtkwindow.h:33,
:info:build                  from /opt/local/include/gtk-3.0/gtk/gtkdialog.h:32,
:info:build                  from /opt/local/include/gtk-3.0/gtk/gtkaboutdialog.h:30,
:info:build                  from /opt/local/include/gtk-3.0/gtk/gtk.h:31,
:info:build                  from /opt/local/include/xfce4/libxfce4ui-2/libxfce4ui/xfce-dialogs.h:27,
:info:build                  from /opt/local/include/xfce4/libxfce4ui-2/libxfce4ui/libxfce4ui.h:28,
:info:build                  from xfsm-util.c:41:
:info:build /opt/local/include/gtk-3.0/gtk/gtkwidget.h:672:12: note: declared here
:info:build   672 | void       gtk_widget_size_request        (GtkWidget           *widget,
:info:build       |            ^~~~~~~~~~~~~~~~~~~~~~~
:info:build xfsm-util.c: In function 'xfsm_window_add_border':
:info:build xfsm-util.c:164:3: warning: 'gtk_widget_modify_bg' is deprecated: Use 'gtk_widget_override_background_color' instead [-Wdeprecated-declarations]
:info:build   164 |   gtk_widget_modify_bg (box1, GTK_STATE_NORMAL,
:info:build       |   ^~~~~~~~~~~~~~~~~~~~
:info:build In file included from /opt/local/include/gtk-3.0/gtk/gtk.h:277:
:info:build /opt/local/include/gtk-3.0/gtk/deprecated/gtkstyle.h:753:13: note: declared here
:info:build   753 | void        gtk_widget_modify_bg          (GtkWidget            *widget,
:info:build       |             ^~~~~~~~~~~~~~~~~~~~
:info:build xfsm-util.c:165:45: error: 'GtkWidget' {aka 'struct _GtkWidget'} has no member named 'style'
:info:build   165 |                         &(GTK_WIDGET(window)->style->bg [GTK_STATE_SELECTED]));
:info:build       |                                             ^~
:info:build xfsm-util.c:173:3: warning: 'gtk_widget_reparent' is deprecated [-Wdeprecated-declarations]
:info:build   173 |   gtk_widget_reparent (GTK_BIN (window)->child, box2);
:info:build       |   ^~~~~~~~~~~~~~~~~~~
:info:build /opt/local/include/gtk-3.0/gtk/gtkwidget.h:755:12: note: declared here
:info:build   755 | void       gtk_widget_reparent            (GtkWidget           *widget,
:info:build       |            ^~~~~~~~~~~~~~~~~~~
:info:build xfsm-util.c:173:40: error: 'GtkBin' {aka 'struct _GtkBin'} has no member named 'child'
:info:build   173 |   gtk_widget_reparent (GTK_BIN (window)->child, box2);
:info:build       |                                        ^~
:info:build make[2]: *** [libxfsm_4_6_la-xfsm-util.lo] Error 1
:info:build make[2]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_xfce_xfce4-session/xfce4-session/work/xfce4-session-4.12.1/libxfsm'
:info:build make[1]: *** [all-recursive] Error 1
:info:build make[1]: Leaving directory `/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_xfce_xfce4-session/xfce4-session/work/xfce4-session-4.12.1'
:info:build make: *** [all] Error 2

Apparently the version of gtk-3 we have now is incompatible with it.

Change History (4)

comment:1 Changed 10 months ago by barracuda156

Well, looks like it should be built with gtk-2:

XDT_CHECK_PACKAGE([GTK], [gtk+-2.0], [2.20.0])

Portfile ignores dependency altogether.

comment:2 Changed 10 months ago by barracuda156

This commit might have introduced the breakage: [970aa2c0a90d95ab91a36886791575cef333d50f/macports-ports]

Last edited 10 months ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:3 Changed 10 months ago by ryandesign (Ryan Carsten Schmidt)

xfce4-session, and all other xfce ports that have not been updated, need to be updated to newer versions, which might fix this issue. See #64820.

comment:4 in reply to:  3 Changed 10 months ago by barracuda156

Replying to ryandesign:

xfce4-session, and all other xfce ports that have not been updated, need to be updated to newer versions, which might fix this issue. See #64820.

Thank you, I have just discovered xfce is long back at 4.18. Indeed, we should just update the whole bunch instead of fixing archaic versions.

Note: See TracTickets for help on using tickets.