GNOME Bugzilla – Bug 94125
gnome applications compiled against HEAD segfault
Last modified: 2004-12-22 21:47:04 UTC
most of the gnome applications using GTK+ HEAD segfault, all the games, utils , gnumeric, galeon2 and gnome-terminal and the capplets, they give this warning and then segfault: GLib-GObject-WARNING **: cannot create instance of abstract (non-instantiatable) type `GtkWidget' other applications such as gnome-panel and nautilus have a strange behaviour, upon start of gnome-panel it segfaults, after the panel creshed nautilus also crashes, as they are restarted by gnome-session they don't segfault again. But the do give the warning. Before updating everything was working perfectly.
Created attachment 11243 [details] Backtrace
i've just find the cause of the bug, the get_type function in gtkwidget.c registers the type gtkwidget with the flag ABSTRACT, for now i have just remove this from my tree. I've also been looking at gnome-client.c in the libgnomeui module, the warning shows up when from the client_save_yourself_callback function a GtkWidget object is created, this object is only used to perform gtk_grab_add and gtk_grab_remove operations. Should i create a dummy object derived from GtkWidget to fix this from real? also creating any other type of widget should fix the problem. What way should i follow to fix the problem?
This has been fixed in libgnomeui, still some question whether we want to put a workaround in GTK+ to work with the old libgnomeui. See: http://mail.gnome.org/archives/gtk-devel-list/2002-September/msg00128.html And followups.
I could release a new version of libgnomeui stable, if that'd help.
I'm going to leave things as is in GTK+. It woudl be nice to have the libgnomeui patch in stable libgnomeui as well, but I don't think a special release is needed. (If there isn't another stable libgnomeui release before GTK+-2.2.0 is released, it might make sense at that point.)
*** Bug 97210 has been marked as a duplicate of this bug. ***
sorry, bug #97210 is not a duplicate: I typed a wrong bug ID.