GNOME Bugzilla – Bug 612712
Does not compile with -DGSEAL_ENABLE
Last modified: 2010-07-19 07:30:06 UTC
This module does not build with -DGSEAL_ENABLE. See http://live.gnome.org/GnomeGoals/UseGseal . Note that maybe this report cannot be fixed yet, as GTK+ still misses some accessor functions (see bug 588389, bug 597610) needed for sealing. Also see http://live.gnome.org/GTK%2B/3.0/PendingSealings for current status. The jhbuild output posted here of course only lists the very first error when trying to compile. terminal-screen.c: In function ‘parent_parent_set_cb’: terminal-screen.c:261: error: ‘GtkWidget’ has no member named ‘parent’ terminal-screen.c:263: error: ‘GtkWidget’ has no member named ‘parent’ terminal-screen.c: In function ‘parent_set_callback’: terminal-screen.c:285: error: ‘GtkWidget’ has no member named ‘parent’ terminal-screen.c:286: error: ‘GtkWidget’ has no member named ‘parent’ terminal-screen.c: In function ‘terminal_screen_style_set’: terminal-screen.c:353: error: ‘GtkObject’ has no member named ‘flags’ terminal-screen.c: In function ‘terminal_screen_profile_notify_cb’: terminal-screen.c:967: error: ‘GtkObject’ has no member named ‘flags’ terminal-screen.c: In function ‘terminal_screen_system_font_notify_cb’: terminal-screen.c:1169: error: ‘GtkObject’ has no member named ‘flags’ terminal-screen.c: In function ‘get_child_environment’: terminal-screen.c:1439: error: ‘GtkWidget’ has no member named ‘window’ terminal-screen.c: In function ‘terminal_screen_set_font_scale’: terminal-screen.c:1814: error: ‘GtkObject’ has no member named ‘flags’ terminal-screen.c: In function ‘terminal_screen_drag_data_received’: terminal-screen.c:1928: error: ‘GtkSelectionData’ has no member named ‘target’ terminal-screen.c:1946: error: ‘GtkSelectionData’ has no member named ‘target’ terminal-screen.c:1959: error: ‘GtkSelectionData’ has no member named ‘data’ terminal-screen.c:1965: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:1992: error: ‘GtkSelectionData’ has no member named ‘format’ terminal-screen.c:1993: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:1994: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:1997: error: ‘GtkSelectionData’ has no member named ‘data’ terminal-screen.c:1998: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:2027: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:2027: error: ‘GtkSelectionData’ has no member named ‘format’ terminal-screen.c:2030: error: ‘GtkSelectionData’ has no member named ‘data’ terminal-screen.c:2030: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:2051: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:2051: error: ‘GtkSelectionData’ has no member named ‘format’ terminal-screen.c:2054: error: ‘GtkSelectionData’ has no member named ‘data’ terminal-screen.c:2054: error: ‘GtkSelectionData’ has no member named ‘length’ terminal-screen.c:2095: error: ‘GtkSelectionData’ has no member named ‘data’ terminal-screen.c: In function ‘_terminal_screen_update_scrollbar’: terminal-screen.c:2128: error: ‘GtkWidget’ has no member named ‘parent’ make[4]: *** [gnome_terminal-terminal-screen.o] Error 1 make[4]: Leaving directory `/home/andre/svn-gnome/gnome-terminal/src' make[3]: *** [all-recursive] Error 1
Created attachment 158862 [details] [review] Remove use of deprecated GTK+ functions, and bumps GTK_REQUIRED to 2.18
Created attachment 158863 [details] [review] Partial patch to enable GSeal compilation. Sorry for the previous patch, it was targeted at bug #615556 (remove GTK+ deprecated functions), although this one also fixes the problem (it includes the previous one). So this patch addresses most of the GSeal problem, but I couldn't find a good solution for : label = GTK_MESSAGE_DIALOG (dialog)->label; (see http://git.gnome.org/browse/gnome-terminal/tree/src/terminal-window.c#n3499) and if (GTK_NOTEBOOK (notebook)->first_tab == NULL) (see http://git.gnome.org/browse/gnome-terminal/tree/src/terminal-window.c#n303) Thanks for your help!
+ monitor_num = gdk_screen_get_monitor_at_window (screen, gtk_widget_get_window [..] + gdk_window_get_origin (gtk_widget_get_window (widget), x, y); Since you're using gtk_widget_get_window() twice in the same func, let's introduce a local var holding result, to save one of these calls. Same for other places where this occurs. You'll also need to add compat defines to terminal-gtk-compat.h which you probably can copy from gnome-games/libgames-support/games-gtk-compat.h . Asfor the first_tab issue, I think you can just remove that bit of code. For the message dialogue's label, we either need a new accessor for it, or, preferably, fix gtk+ bug 328069, since what we use the label for is just to get hold of the content box. That shouldn't hold up getting the other parts of the patch in, however.
Stéphane: Any plans to update your patch as per last comment?
Created attachment 160166 [details] [review] Use accessor functions instead of direct access. Here it is, please review. The last standing issue is that gtk_message_dialog->label. I'll try to add the gtk-compat files later (have some homework left for the moment...).
I fixed some small problems and code style issues in the patch, and pushed it to master. Thanks! I will probably move g-t to requiring gtk 2.20, so only accessors new in 2.21 will need to be ifdef'd.
Still to do (also to fix bug 615556): ./src/terminal-screen.c: if (!GTK_WIDGET_TOPLEVEL (toplevel)) ./src/terminal-screen.c: g_assert (GTK_WIDGET_TOPLEVEL (window)); ./src/terminal-window.c: if (!GTK_WIDGET_TOPLEVEL (toplevel)) ./src/terminal-window.c: if (GTK_WIDGET_TOPLEVEL (old_window) &&
gtk_widget_get_allocation in the patch committed requires 2.18, but configure.ac still says GTK_REQUIRED=2.14.0.
Looks like there is now exactly one issue left to fix: /src/terminal-window.c: In function ‘terminal_set_title_callback’: terminal-window.c:3666: error: ‘GtkMessageDialog’ has no member named ‘label’
(In reply to comment #9) > terminal-window.c:3666: error: ‘GtkMessageDialog’ has no member named ‘label’ Epiphany used this workaround: http://git.gnome.org/browse/epiphany/commit/?id=864d20152054e684a5cbb0b2dbde8f6bdf63f698
I'd rather have a real fix, aka the proposal in bug 328069.
bug 328069 is fixed now - any plans to fix this one too soonish?
chpe: There is still label = GTK_MESSAGE_DIALOG (dialog)->label; in line 3672 and nothing in the commit log. Sure you've pushed this?
Fixed.