Hi, > thanks, and sorry I didn't see your reply before I pushed. :-D So this commit totally broke gtk+.
Thread 1 (Thread 0x7f3813651980 (LWP 537)): #0 g_logv (log_domain=0x7f38128b01ce "Gdk", log_level=G_LOG_LEVEL_ERROR, format=<optimized out>, args=<optimized out>) at ../../glib/gmessages.c:1078 #1 0x00007f380edd30cd in wl_log (fmt=fmt@entry=0x7f380edd31b8 "error: WAYLAND_DISPLAY not set in the environment.\n") at ../src/wayland-util.c:385 #2 0x00007f380edd0115 in connect_to_socket (name=0x0) at ../src/wayland-client.c:768 #3 wl_display_connect (name=name@entry=0x0) at ../src/wayland-client.c:899 #4 0x00007f38128a5f7e in _gdk_wayland_display_open (display_name=0x0) at ../../../gdk/wayland/gdkdisplay-wayland.c:443 #5 0x00007f381285b357 in gdk_display_manager_open_display (manager=<optimized out>, name=0x0) at ../../gdk/gdkdisplaymanager.c:463 #6 0x00007f3812d24c10 in gtk_init_check (argc=<optimized out>, argv=<optimized out>) at ../../gtk/gtkmain.c:1011 #7 0x00007f3812d24c49 in gtk_init (argc=<optimized out>, argv=<optimized out>) at ../../gtk/gtkmain.c:1068 #8 0x0000000000400e11 in main (argc=0, argv=0x0) at ../../tools/gnome-session-check-accelerated.c:121 gtk+ treats wl_log messages as fatal errors. See this commit from krh: https://git.gnome.org/browse/gtk+/commit/?id=4252ac6d6ce2a02efa0991fc0723f9522aff7a0f Gtk+ also uses its wayland backend by default, so after this change, it now dies instead of falings back to the x11 backend on non-wayland sessions. I've filed https://bugzilla.gnome.org/show_bug.cgi?id=753635 to change gtk+'s default behavior to treat wayland errors as debug messages now. Still, I think this change is wrong headed. We've been trying to cleave ourselves from environment variables for years in the default case. Having to set this seems like a step backward. This means having to jump through additional hoops when using systemd --user sessions, it means having to jump through an additional hoop when running a program from a VT, and it means having to jump through an additional hoop when ssh'ing in to debug something. if a user runs a program it should show up on the default display in a clean environment. save the environment variables for fringe cases like nested compositors. The problem purportedly getting fixed gives this as a rationale: > Now suppose you launch Weston while running the Gnome session. Suddenly, all > of the Gtk+ apps > launched from Gnome will show up inside Weston instead. That's unexpected. > There's also no good > way to prevent that from happening (other than perhaps setting > WAYLAND_DISPLAY to an invalid value > when launching an app). It's wrong to say there's no good way to prevent programs from launching on weston. This corner case, can be covered by setting the GDK_BACKEND environment variable. edge cases should use environment variables not the default case. Furthermore, the commit says it's trying to fix a scenario where the user is logged into X, but the commit actually breaks X logins (because of the above log handler issue)! That means it wasn't tested. I don't think the commit is good idea at all, can we revert it ? XDG_RUNTIME_DIR is supposed to free us from other environment variables. --Ray _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/wayland-devel