Bug 105211

Summary: build failure after zwp_dmabuf commit if wayland-protocols is not installed
Product: Mesa Reporter: Alan Swanson <reiver>
Component: Drivers/Vulkan/CommonAssignee: mesa-dev
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium CC: airlied, chadversary, daniel, jason
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Alan Swanson 2018-02-22 17:46:56 UTC
Commit bfa22266cd4d268e52d2535b41ef972421e66f71 "vulkan/wsi/wayland: Add support for zwp_dmabuf" causes a build failure if wayland protocols are not installed. 
Similar to bug 101933 where if WL_DMABUF_XML=/unstable/... it should not be used. Reverting resolves.

make[3]: Entering directory '/builddir/src/vulkan'
/bin/mkdir -p util
/bin/mkdir -p util
/bin/mkdir -p wsi
/usr/bin/python2.7  /builddir/src/vulkan/util/gen_enum_to_str.py \
    --xml /builddir/src/vulkan/registry/vk.xml \
    --xml /builddir/src/vulkan/registry/vk_android_native_buffer.xml \
    --outdir ../../src/vulkan/util
/usr/bin/python2.7  /builddir/src/vulkan/util/gen_enum_to_str.py \
    --xml /builddir/src/vulkan/registry/vk.xml \
    --xml /builddir/src/vulkan/registry/vk_android_native_buffer.xml \
    --outdir ../../src/vulkan/util
: code < /builddir/src/egl/wayland/wayland-drm/wayland-drm.xml > wsi/wayland-drm-protocol.c
/bin/mkdir -p wsi
make[3]: *** No rule to make target '/unstable/linux-dmabuf/linux-dmabuf-unstable-v1.xml', needed by 'wsi/linux-dmabuf-unstable-v1-protocol.c'.  Stop.
make[3]: *** Waiting for unfinished jobs....
Comment 1 Daniel Stone 2018-02-22 17:54:07 UTC
Yes, sorry about this, the autotools build is quite funny with wayland-protocols.

At the moment, you can solve this by simply removing the linux-dmabuf lines from src/vulkan/Makefile.sources, or you can install wayland-protocols. The protocols package is purely a bunch of XML files, with no dependencies. You don't need to actually enable Wayland support to bypass this build failure, just to have wayland-protocols present somewhere in the pkg-config search path.

Hopefully we can find a real fix quite quickly.
Comment 2 Alan Swanson 2018-02-22 18:19:46 UTC
No worries. But just to note that wayland-protocols does have a dependency on wayland-scanner from the main wayland build - or at least an autotools configure failure if not present (though scan.sh test script would later skip if wayland-scanner was not present).
Comment 3 Emil Velikov 2018-02-22 18:21:32 UTC
Daniel, let's opt for your earlier suggestion and stop shipping those generated sources. It's causing more problems than what it's worth.

There was some fun when building/using the correct wayland-scanner in cross-compilation, but that should be ironed out by now.
Comment 4 Dieter Nützel 2018-02-23 00:58:45 UTC
(In reply to Daniel Stone from comment #1)
> Yes, sorry about this, the autotools build is quite funny with
> wayland-protocols.
> 
> At the moment, you can solve this by simply removing the linux-dmabuf lines
> from src/vulkan/Makefile.sources, or you can install wayland-protocols. The
> protocols package is purely a bunch of XML files, with no dependencies. You
> don't need to actually enable Wayland support to bypass this build failure,
> just to have wayland-protocols present somewhere in the pkg-config search
> path.

Moin, Daniel ;-)

On my (current) openSUSE Tumbleweed
wayland-protocols-devel-1.13-1.1.noarch
did the trick.

Thank you!

Dieter
Comment 5 Daniel Stone 2018-02-23 11:23:06 UTC
Thanks both! Patches sent: https://patchwork.freedesktop.org/series/38853/
Comment 6 Daniel Stone 2018-02-26 10:43:54 UTC
Landed in master now.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.