After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 696457 - gnome-ostree build broken by 3a9de35a6cefddc09aaf000e523f3435a955a5e7 (probably)
gnome-ostree build broken by 3a9de35a6cefddc09aaf000e523f3435a955a5e7 (probably)
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: Wayland
unspecified
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks: 700165 700166 700177
 
 
Reported: 2013-03-23 16:30 UTC by Colin Walters
Modified: 2013-05-12 14:14 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
0001-gdkkeys-Avoid-instantiating-a-display-manager-if-non.patch (2.65 KB, patch)
2013-03-23 18:12 UTC, Colin Walters
accepted-commit_now Details | Review
0002-gtktoolpalette-Only-call-gdk_atom_intern-when-we-re-.patch (1.46 KB, patch)
2013-03-23 18:12 UTC, Colin Walters
accepted-commit_now Details | Review

Description Colin Walters 2013-03-23 16:30:44 UTC
Pretty sure it's that commit which broke with these symptoms:

g-ir-scanner: link: /bin/sh ../libtool --mode=link --tag=CC gcc -o /ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/Gtk-3.0 -export-dynamic -O2 -g -m64 -mtune=generic -Wall /ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/Gtk-3.0.o -L. libgtk-3.la ../gdk/libgdk-3.la -Wl,--export-dynamic -pthread -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0
libtool: link: gcc -o /ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/.libs/Gtk-3.0 -O2 -g -m64 -mtune=generic -Wall /ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/Gtk-3.0.o -Wl,--export-dynamic -pthread -Wl,--export-dynamic  -L. ./.libs/libgtk-3.so /ostbuild/source/gtk3/_build/gdk/.libs/libgdk-3.so -latk-1.0 -latk-bridge-2.0 ../gdk/.libs/libgdk-3.so -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo-gobject -lXinerama -lXi -lXrandr -lXcomposite -lXdamage -lXfixes -lcairo -lX11 -lXext -lpangoft2-1.0 -lpango-1.0 -lfreetype -lfontconfig -lm -lgio-2.0 -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0 -pthread

(process:31027): Gdk-ERROR **: No GDK backend found (*)
Command '['/ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/Gtk-3.0', '--introspect-dump=/ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/functions.txt,/ostbuild/source/gtk3/_build/gtk/tmp-introspectSdukQA/dump.xml']' returned non-zero exit status -5

What's almost certainly going on here is that the builder doesn't have DISPLAY set (and I'm not going to do so).  We need to fix the part of GDK that's trying to find a backend during introspection dumping.
Comment 1 Colin Walters 2013-03-23 17:33:10 UTC
Stack trace:

Program received signal SIGTRAP, Trace/breakpoint trap.
g_logv (log_domain=0x7ffff74a60e6 "Gdk", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=args@entry=0x7fffffffd308) at ../../glib/gmessages.c:981
981	../../glib/gmessages.c: No such file or directory.
(gdb) bt
  • #0 g_logv
    at ../../glib/gmessages.c line 981
  • #1 g_log
    at ../../glib/gmessages.c line 1010
  • #2 gdk_display_manager_get
    at ../../gdk/gdkdisplaymanager.c line 376
  • #3 gdk_keyval_convert_case
    at ../../gdk/gdkkeys.c line 206
  • #4 gdk_keyval_to_lower
    at ../../gdk/gdkkeys.c line 244
  • #5 _gtk_binding_entry_add_signall
    at ../../gtk/gtkbindings.c line 926
  • #6 gtk_binding_entry_add_signal
    at ../../gtk/gtkbindings.c line 1073
  • #7 gtk_widget_class_init
    at ../../gtk/gtkwidget.c line 3214
  • #8 type_class_init_Wm
    at ../../gobject/gtype.c line 2239
  • #9 g_type_class_ref
    at ../../gobject/gtype.c line 2954
  • #10 dump_properties
  • #11 dump_object_type
  • #12 dump_type
  • #13 dump_irepository
  • #14 main

Comment 2 Colin Walters 2013-03-23 17:44:54 UTC
A few possible solutions, from least to most invasive:

* Change gdk_keyval_convert_case() to directly invoke _gdk_display_manager_real_keyval_convert_case() if there's no display manager.

* Change gtkbinding to wait until an instance of the class is initialized

* Change all widgets to use GOnce for binding sets instead of doing it in class init
Comment 3 Colin Walters 2013-03-23 18:12:00 UTC
Created attachment 239636 [details] [review]
0001-gdkkeys-Avoid-instantiating-a-display-manager-if-non.patch
Comment 4 Colin Walters 2013-03-23 18:12:16 UTC
Created attachment 239637 [details] [review]
0002-gtktoolpalette-Only-call-gdk_atom_intern-when-we-re-.patch
Comment 5 Matthias Clasen 2013-03-23 18:46:17 UTC
Review of attachment 239636 [details] [review]:

This one looks ok to me for now.

Really, the backend-specific case conversion is crack and should just go away. We should verify that _gdk_display_manager_real_keyval_convert_case does the right thing for all keysyms, and drop the vfunc.
Comment 6 Matthias Clasen 2013-03-23 18:46:58 UTC
Review of attachment 239637 [details] [review]:

ok
Comment 7 Dominique Leuenberger 2013-05-10 12:03:23 UTC
FYI: I see this same build failure (currently in evince and glade) when building against gtk 3.9.0, which already contains the two patches linked here.

A full build log is available at:
https://build.opensuse.org/package/live_build_log?arch=x86_64&package=evince&project=GNOME%3AFactory&repository=openSUSE_Factory
Comment 8 Dominique Leuenberger 2013-05-10 13:35:52 UTC
I'm reopening the bug... as the actual cause seems not fixed.

A stack trace from g-ir-scanner run while building glade:

    (gdb) bt
    #0  0x00007ffff70c21bd in g_logv () from /usr/lib64/libglib-2.0.so.0
    #1  0x00007ffff70c2382 in g_log () from /usr/lib64/libglib-2.0.so.0
    #2  0x00007ffff60df45f in gdk_display_manager_get () from /usr/lib64/libgdk-3.so.0
    #3  0x00007ffff60df559 in gdk_display_get_default () from /usr/lib64/libgdk-3.so.0
    #4  0x00007ffff657fae3 in ?? () from /usr/lib64/libgtk-3.so.0
    #5  0x00007ffff65c7430 in ?? () from /usr/lib64/libgtk-3.so.0
    #6  0x00007ffff65c75bf in ?? () from /usr/lib64/libgtk-3.so.0
    #7  0x00007ffff65c75dd in gtk_stock_list_ids () from /usr/lib64/libgtk-3.so.0
    #8  0x00007ffff7bacff7 in list_stock_items (include_images=0) at glade-builtins.c:163
    #9  0x00007ffff7bad3d1 in glade_standard_stock_get_type () at glade-builtins.c:271
    #10 0x0000000000402d4d in invoke_get_type ()
    #11 0x0000000000403b06 in dump_irepository ()
    #12 0x0000000000403db1 in main (
Comment 9 Dominique Leuenberger 2013-05-10 13:55:01 UTC
for reference, this is the stack trace happening in evince build:

(gdb) bt
  • #0 g_logv
    from /usr/lib64/libglib-2.0.so.0
  • #1 g_log
    from /usr/lib64/libglib-2.0.so.0
  • #2 gdk_display_manager_get
    from /usr/lib64/libgdk-3.so.0
  • #3 gdk_display_get_default
    from /usr/lib64/libgdk-3.so.0
  • #4 gdk_screen_get_default
    from /usr/lib64/libgdk-3.so.0
  • #5 ev_view_presentation_class_init
    at ev-view-presentation.c line 1548
  • #6 ev_view_presentation_class_intern_init
    at ev-view-presentation.c line 115
  • #7 g_type_class_ref
    from /usr/lib64/libgobject-2.0.so.0
  • #8 dump_properties
  • #9 dump_object_type
  • #10 dump_type
  • #11 dump_irepository
  • #12 main

Comment 10 Matthias Clasen 2013-05-11 18:59:38 UTC
that stacktrace is entirely different from the one in comment #2. Please open a new bug (against glade) for this.
Comment 11 Dominique Leuenberger 2013-05-12 11:57:11 UTC
For reference:
* filed bug 700165 for the evince failure
* filed bug 700166 for the glade failure
(preferably, this is likely to be addressed in a common place, where everybody can rely on the fix)
Comment 12 Dominique Leuenberger 2013-05-12 14:14:28 UTC
* and the same effect on rhythmbox: bug 700177
(noting here, as the only thing different to all those issues is that gtk was updated to 3.9; so the underlying cause is the same for all of those failures)