yocto build: wayland-protocols missing for building weston recipe?


I’m trying to build the tdx-reference-multimedia-image in yocto, using the tdx-xwayland downstream distro and the 5.2.0 tag from the dunfell manifest branch for my Apalis iMX8QP.

I got two errors: gstreamer-plugins-bad and weston both failed to compile because of missing xml files from the wayland-protocols package.

Using the weston recipe as an example, here’s what I got:

$ bitbake -c build weston
ERROR: weston-9.0.0.imx-r0 do_compile: Execution of '/home/rcal/dev/argus-build/oe-core/build/tmp/work/aarch64-mx8-tdx-linux/weston/9.0.0.imx-r0/temp/run.do_compile.7084' failed with exit code 1:
ninja: error: '/usr/share/wayland-protocols/unstable/linux-explicit-synchronization/linux-explicit-synchronization-unstable-v1.xml', needed by 'protocol/linux-explicit-synchronization-unstable-v1-server-protocol.h', missing and no known rule to make it

A similar error occurs for the gstreamer1.0-plugins-bad recipe, except for the alpha-compositor xml file.

It appears to be missing the wayland-protocols package and looking for it in the build host’s system directories (Ubuntu 18.04). Some of those wayland-protocols files are there, but some are not.

Regardless, all the needed files are present in the SDK directories. For example:

$ find / -name "linux-explicit-synchronization-unstable-v1.xml"

Any help?



Hi @grh

I’ve been unable to reproduce this locally. That file is provided by the wayland-protocols package which is in the dependency list for weston. In my case, it always builds wayland-protocols first resulting in that file being available.

If you manually build wayland-protocols first and then build weston, do you still have the same issue?

Can you share the “Build Configuration” block at the start of the build that shows all your variables and layers with commit hashes? Can you share your config files?


Hi @drew.tx ,

I just cleaned out both the wayland-protocols and weston packages, then rebuilt wayland-protocols, then rebuilt wayland-protocols, then I attempt to build weston. Same result.

Interestingly, the file is in the build directories:

$ find . -name "linux-explicit-synchronization-unstable-v1.xml"

Here is the “Build Configuration” block:

Build Configuration:
BB_VERSION           = "1.46.0"
BUILD_SYS            = "x86_64-linux"
NATIVELSBSTRING      = "universal"
TARGET_SYS           = "aarch64-tdx-linux"
MACHINE              = "apalis-imx8"
DISTRO               = "tdx-xwayland"
DISTRO_VERSION       = "5.2.0-devel-20210706132650+build.0"
TUNE_FEATURES        = "aarch64"
TARGET_FPU           = ""
meta-toradex-nxp     = "HEAD:a9ae3ea1f4ad181edbe940a99943a8256a811326"
meta-freescale       = "HEAD:468e157b4cff033694837db7a8bf7f39be2ea6c7"
meta-freescale-3rdparty = "HEAD:50551f0576c00bad71b1496ff2af8eaa6d7f9ca4"
meta-toradex-tegra   = "HEAD:60a50b4d6f03a3b4b2d224c2cc2cd37f522dff75"
meta-toradex-bsp-common = "HEAD:5234d3b8bc7f1fb6269a350213e93a0f8f66d6aa"
meta-webserver       = "HEAD:389757a7494221fea1d8437e9a01c6e4fb4700af"
meta-freescale-distro = "HEAD:5d882cdf079b3bde0bd9869ce3ca3db411acbf3b"
meta-toradex-demos   = "HEAD:82e3d7b2b56fccabcd52708314acc9dfd6bb24d1"
meta-qt5             = "HEAD:0d8eb956015acdea7e77cd6672d08dce18061510"
meta-toradex-distro  = "HEAD:632db61f177acf18df79d40fefdf1c662c6233a8"
meta-poky            = "HEAD:febea5f6be380fed476552d741dc97e9c78ebdd9"
meta                 = "HEAD:707036d4ec12ef1a260adcef78627b26e32e6540"
meta-argus           = "dev:c467bdf688979a97f38f42f746479fa92378e963"
workspace            = "<unknown>:<unknown>"

As far as config files, I assume you mean local.conf and any other custom configs I might have relating to those packages? If so, then that is only the build/conf/local.conf file…it’s attached here:


I don’t see anything obvious from your config information that would point to the root cause.

Can you share the output of the following commands?

find ./ -name  linux-explicit-synchronization\* ! -type d
find ../layers/ -type f -name wayland-protocols*
find tmp/ -type f -print0 | xargs -0 grep linux-explicit-synchronization-unstable-v1.xml

Can you also share the tmp/work/aarch64-mx8-tdx-linux/weston/9.0.0.imx-r0/temp/log.do_compile file?

My best guess is that some package installed in your host is not being properly ignored by the sysroot mechanism in bitbake. To help determine if this is the case, can you run a build inside a yocto crops container?