GNOME Bugzilla – Bug 708012
Wayland dependency inaccurate
Last modified: 2013-09-17 20:29:31 UTC
I just tried to build gtk+ master with no extra backend options , which seem to default to have only wayland backend enabled. The build fails with below errors. I'd say you should bump a version dependency on wayland to cover this error during the configure stage. My installed wayland packages: libwayland-client-1.1.90-0.1.20130515.fc19.i686 libwayland-client-1.1.90-0.1.20130515.fc19.x86_64 libwayland-client-devel-1.1.90-0.1.20130515.fc19.x86_64 libwayland-cursor-1.1.90-0.1.20130515.fc19.x86_64 libwayland-cursor-devel-1.1.90-0.1.20130515.fc19.x86_64 libwayland-server-1.1.90-0.1.20130515.fc19.i686 libwayland-server-1.1.90-0.1.20130515.fc19.x86_64 mesa-libwayland-egl-9.2-0.12.20130610.fc19.x86_64 mesa-libwayland-egl-devel-9.2-0.12.20130610.fc19.x86_64 wayland-devel-1.1.90-0.1.20130515.fc19.x86_64 gdkdevice-wayland.c: In function 'gdk_wayland_device_update_window_cursor': gdkdevice-wayland.c:174:3: warning: implicit declaration of function 'wl_surface_set_buffer_scale' [-Wimplicit-function-declaration] wl_surface_set_buffer_scale (wd->pointer_surface, scale); ^ gdkscreen-wayland.c:1010:3: warning: excess elements in struct initializer [enabled by default] output_handle_done, ^ gdkscreen-wayland.c:1010:3: warning: (near initialization for 'output_listener') [enabled by default] gdkscreen-wayland.c:1011:3: warning: excess elements in struct initializer [enabled by default] output_handle_scale, ^ gdkscreen-wayland.c:1011:3: warning: (near initialization for 'output_listener') [enabled by default] gdkwindow-wayland.c: In function 'gdk_wayland_window_attach_image': gdkwindow-wayland.c:615:5: warning: implicit declaration of function 'wl_surface_set_buffer_scale' [-Wimplicit-function-declaration] wl_surface_set_buffer_scale (impl->surface, data->scale); ^ /bin/sh: line 84: test: too many arguments /data/develop/test-cli/_other/gtk+/gdk/.libs/libgdk-3.so: undefined reference to `wl_surface_set_buffer_scale' collect2: error: ld returned 1 exit status make[4]: *** [gtk-launch] Error 1 make[4]: *** Waiting for unfinished jobs.... /data/develop/test-cli/_other/gtk+/gdk/.libs/libgdk-3.so: undefined reference to `wl_surface_set_buffer_scale' collect2: error: ld returned 1 exit status make[4]: *** [gtk-query-immodules-3.0] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all] Error 2
Here is what I get when I configure without options: GDK backends: x11 wayland
That means that both backends are built. How does it fix the build break of wayland?
I updated gtk+ to commit 6aa5697. $ ./configure --prefix=.... GDK backends: x11 wayland but because of insufficient version check on wayland version (about which this bug is) I run configure with disabled wayland: $ ./configure --prefix=... --disable-wayland-backend ... checking for nm... /usr/bin/nm -B checking for some Win32 platform... no configure: error: No GDK backends selected. thus I'm forced to: $ ./configure --prefix=/build/test-cli --disable-wayland-backend --enable-x11-backend GDK backends: x11 Anyway, this bug isn't about configure options, it is, as summary says, about insufficient version request on the wayland libraries.
> Anyway, this bug isn't about configure options, it is, as summary says, about > insufficient version request on the wayland libraries. ... which was fixed in 4a90a0da12de943a424958f96b34a12ebd792284
Oh, I had that commit when I was testing the updated gtk+ at comment #3 and the configure passed (the line about GDK backends was copy&pasted from my terminal window). I probably didn't regenerate configure itself with that change. I'm sorry for that. Trying with regenerated configure throws the wayland version error for me, as expected.