meta-raspberrypi/recipes-graphics/mesa/mesa.bbappend
Martin Jansa 5c540d5447
Some checks failed
Mirrors / Yocto Git Mirror (push) Has been cancelled
mesa, wayland-protocols: use separate recipe instead of bbappend
Fix
https://github.com/agherzan/meta-raspberrypi/pull/1484

Avoid llvm runtime dependency to avoid issues in builds with meta-clang:

ERROR: Multiple .bb files are due to be built which each provide llvm:
  meta-clang/recipes-devtools/clang/clang_git.bb
  oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb
A list of tasks depending on these providers is shown and may help explain where the dependency comes from.
meta-clang/recipes-devtools/clang/clang_git.bb has unique dependees:
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_prepare_recipe_sysroot
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_package
  meta-atlas/meta-atlas/recipes-core/images/atlas-image-video.bb:do_populate_lic_deploy
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_collect_spdx_deps
  meta-atlas/meta-atlas/recipes-core/images/atlas-image-video.bb:do_populate_interfaces_deploy
oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique dependees:
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_package_qa
  oe-core/meta/recipes-graphics/mesa/mesa_24.0.7.bb:do_create_runtime_spdx
It could be that one recipe provides something the other doesn't and should. The following provider and runtime provider differences may be helpful.
meta-clang/recipes-devtools/clang/clang_git.bb has unique provides:
  clang
meta-clang/recipes-devtools/clang/clang_git.bb has unique rprovides:
  clang-dbg
  clang-libclang-cpp
  liblldb
  llvm-linker-tools
  ^clang-locale-.*
  clang-libllvm
  lldb
  clang-format
  clang
  clang-dev
  clang-locale
  clang-lldb-python
  libclang
  clang-src
  clang-doc
  clang-staticdev
  lldb-server
  clang-tidy
  clang-tools
oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique provides:

oe-core/meta/recipes-devtools/llvm/llvm_18.1.6.bb has unique rprovides:
  llvm
  llvm-dbg
  llvm-libllvm
  llvm-src
  llvm-dev
  llvm-liboptremarks
  llvm-locale
  llvm-llvmhello
  llvm-liblto
  llvm-staticdev
  llvm-bugpointpasses
  llvm-doc
  ^llvm-locale-.*

check_data_file_clashes: Package clang-libllvm wants to install file rootfs/usr/lib/libLLVM.so.18.1
But that file is already provided by package  * llvm

Also avoid:
  python __anonymous() {
      if d.getVar('SOC_FAMILY') == 'rpi' and d.getVar("PN") == d.getVar("BPN"):
          d.setVarFlag("SRC_URI", "sha256sum", "4d2b2a9e3e099d017dc8107bf1c334d27bb87d9e4aff19a0c8d856d17cd41ef0")
  }
This doesn't work for multilib builds where PN != BPN (e.g. lib32-wayland-protocols)

It is easier to just add separate recipes with COMPATIBLE_MACHINE
restriction instead of modifying the recipes for all MACHINEs with
bbappend and then trying to limit it to rpi MACHINEs with overrides
(e.g. why is whole recipe duplicated in wayland-protocols bbappend
doesn't make any sense to me).

breakage like this in stable branches is bad, these bbappends are hard
to avoid (without BBMASKing them and then reintroducing the necessary
part of original mesa bbappend). Now with separate recipes people can
at least opt-out by setting P_V to original scarthgap versions:

PREFERRED_VERSION_mesa:rpi = "24.%"
PREFERRED_VERSION_wayland-protocols:rpi = "1.33"

Signed-off-by: Martin Jansa <martin2.jansa@lgepartner.com>
2025-09-17 11:27:08 +01:00

7 lines
468 B
Plaintext

# DRI3 note:
# With oe-core commit 8509e2e1a87578882b71948ccef3b50ccf1228b3 dri3 is set
# as default. To state out clearly that Raspi needs dri3 and to avoid surprises
# in case oe-core changes this default, we set dri3 explicitly.
PACKAGECONFIG:append:rpi = " gallium vc4 v3d kmsro ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11 dri3', '', d)} ${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'vulkan broadcom', '', d)}"
DRIDRIVERS:class-target:rpi = ""