qtyoctowaylandwestonyocto-kirkstone

bitbake core-image-weston | Nothing RPROVIDES ... Error


I want to build an image with Yocto, to run a simple Qt6 widget application on a Raspberry Pi 4B. I built an image using bitbake core-image-minimal, but it seems to be to stripped down to run weston and my Qt app (which was successfully baked into the image). It did not boot into a GUI, and I could not run my Qt app, nor start weston.

(I am using VirtualBox and a VM running Linux Mint. I know, it is not tested with Yocto, therefore, maybe I should change to Ubuntu...)

My first attempt now, is to build an image with bitbake core-image-weston. I have added the following lines to conf/local.conf file

IMAGE_INSTALL += "qtexample"
DISTRO_FEATURES:append = "wayland"
IMAGE_INSTALL:append = "qtbase qtwayland"
CORE_IMAGE_EXTRA_INSTALL += "wayland weston"

where IMAGE_INSTALL += "qtexample" is supposed to bake my Qt6 app into the image. The Qt6 layer, meta-openembedded/meta-oe and meta-openembedded/meta-python, and the RasPi BSP are included into the conf/bblayers.conf.

However, when I run bitbake core-image-weston, I get the error:

ERROR: Nothing RPROVIDES 'matchbox-terminalqtexampleqtbase' (but /home/bkeohane/Projekte/yocto/poky/meta/recipes-graphics/images/core-image-weston.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'matchbox-terminalqtexampleqtbase' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['matchbox-terminalqtexampleqtbase']
ERROR: Required build target 'core-image-weston' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-weston', 'matchbox-terminalqtexampleqtbase']

I figured out, that a directory matchbox-terminal where a matchbox-terminal_0.2.bb recipe lives, exists, and copied it from poky/meta/recipes-sato to poky/meta/recipes-graphics, because I assumed, it shall be located there, in order to be included into the build process.

After re-running the build, the error changed a bit:

ERROR: Nothing RPROVIDES 'qtexampleqtbase' (but /home/bkeohane/Projekte/yocto/poky/meta/recipes-graphics/images/core-image-weston.bb RDEPENDS on or otherwise requires it)
NOTE: Runtime target 'qtexampleqtbase' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['qtexampleqtbase']
ERROR: Required build target 'core-image-weston' has no buildable providers.
Missing or unbuildable dependency chain was: ['core-image-weston', 'qtexampleqtbase']

The error does not include the matchbox-terminal anymore. However, a dependency error still exists, and I do not know why.

In poky/meta/recipes-graphics/images/core-image-weston.bb , I cannot identify the missing dependency:

SUMMARY = "A very basic Wayland image with a terminal"

IMAGE_FEATURES += "splash package-management ssh-server-dropbear hwcodecs weston"

LICENSE = "MIT"

inherit core-image

CORE_IMAGE_BASE_INSTALL += "gtk+3-demo"
CORE_IMAGE_BASE_INSTALL += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'weston-xwayland matchbox-terminal', '', d)}"

QB_MEM = "-m 512"

I am thankful for any tips or hints. Cheers.


Solution

  • The answer of my issue in the original post can be solved by adding a space on front of qtexample, hence:

    IMAGE_INSTALL += " qtexample"
    DISTRO_FEATURES:append = "wayland"
    IMAGE_INSTALL:append = "qtbase qtwayland"
    CORE_IMAGE_EXTRA_INSTALL += "wayland weston"
    

    I am now more aware of how the recipes in yocto are being parsed, i.e., by using the commands as plain strings.