Re: [meta-arago][master][PATCH 3/4] mesa-demos: Flip to a bbappend

Ryan Eatmon <[email protected]> Wed, 25 Mar 2026 10:32:32 -0500
Newsgroups org.yoctoproject.lists.meta-arago
Message-ID <[email protected]>

On 3/24/2026 1:20 PM, Ryan Eatmon via lists.yoctoproject.org wrote:
> 
> 
> On 3/24/2026 1:14 PM, Denys Dmytriyenko wrote:
>> On Mon, Mar 23, 2026 at 08:51:31PM -0400, Denys Dmytriyenko wrote:
>>> On Mon, Mar 23, 2026 at 12:16:30PM -0500, Randolph Sapp wrote:
>>>> On Sun Mar 22, 2026 at 2:26 PM CDT, Denys Dmytriyenko wrote:
>>>>> On Fri, Mar 20, 2026 at 05:22:30PM -0500, Randolph Sapp via 
>>>>> lists.yoctoproject.org wrote:
>>>>>> On Fri Mar 20, 2026 at 5:14 PM CDT, Ryan Eatmon via 
>>>>>> lists.yoctoproject.org wrote:
>>>>>>> Clean up a check layer error related to how this recipe was setup.
>>>>>>>
>>>>>>> Change the recipe to a bbappend instead of a new git version.  
>>>>>>> Apply all
>>>>>>> of the changes that were made in the new recipe to the bbappend, and
>>>>>>> remove the PREFERRED_VERSION in arago-prefs.inc.
>>>>>>>
>>>>>>> Signed-off-by: Ryan Eatmon <[email protected]>
>>>>>>> ---
>>>>>>>   .../conf/distro/include/arago-prefs.inc       |  3 --
>>>>>>>   .../mesa/mesa-demos-arago.inc                 | 17 ++++++++
>>>>>>>   .../mesa/mesa-demos_9.0.0.bbappend            |  4 ++
>>>>>>>   .../recipes-graphics/mesa/mesa-demos_git.bb   | 42 
>>>>>>> -------------------
>>>>>>>   4 files changed, 21 insertions(+), 45 deletions(-)
>>>>>>>   create mode 100644 
>>>>>>> meta-arago-distro/recipes-graphics/mesa/mesa-demos-arago.inc
>>>>>>>   create mode 100644 
>>>>>>> meta-arago-distro/recipes-graphics/mesa/mesa-demos_9.0.0.bbappend
>>>>>>>   delete mode 100644 
>>>>>>> meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
>>>>>>>
>>>>>>> diff --git 
>>>>>>> a/meta-arago-distro/conf/distro/include/arago-prefs.inc 
>>>>>>> b/meta-arago-distro/conf/distro/include/arago-prefs.inc
>>>>>>> index 4d1a6006..6a2faa53 100644
>>>>>>> --- a/meta-arago-distro/conf/distro/include/arago-prefs.inc
>>>>>>> +++ b/meta-arago-distro/conf/distro/include/arago-prefs.inc
>>>>>>> @@ -10,6 +10,3 @@ VIRTUAL-RUNTIME_dbus = "dbus-broker"
>>>>>>>   # application that does not have a GPLv3 license
>>>>>>>   PREFERRED_VERSION_crda = "3.18"
>>>>>>>   PREFERRED_VERSION_obex = "0.34"
>>>>>>> -
>>>>>>> -# Bump mesa-demos to include some patches not in a tagged release
>>>>>>> -PREFERRED_VERSION_mesa-demos = "9.0.0+git"
>>>>>>> diff --git 
>>>>>>> a/meta-arago-distro/recipes-graphics/mesa/mesa-demos-arago.inc 
>>>>>>> b/meta-arago-distro/recipes-graphics/mesa/mesa-demos-arago.inc
>>>>>>> new file mode 100644
>>>>>>> index 00000000..5a5412c2
>>>>>>> --- /dev/null
>>>>>>> +++ b/meta-arago-distro/recipes-graphics/mesa/mesa-demos-arago.inc
>>>>>>> @@ -0,0 +1,17 @@
>>>>>>> +SECTION = ""
>>>>>>> +
>>>>>>> +LIC_FILES_CHKSUM:remove = 
>>>>>>> "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=914225785450eff644a86c871d3ae00e"
>>>>>>> +
>>>>>>> +LIC_FILES_CHKSUM:append = " 
>>>>>>> file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=a481fbdb2ac800ecb12405c33bcfacae"
>>>>>>> +
>>>>>>> +SRC_URI = 
>>>>>>> "git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main"
>>>>>>> +SRCREV = "02eae079cb0b8186064d5b194ca4cc2995f099ee"
>>>>>>> +
>>>>>>> +PV = "9.0.0+git"
>>>>>>> +
>>>>>>> +REQUIRED_DISTRO_FEATURES:remove = "x11"
>>>>>>> +
>>>>>>> +PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 
>>>>>>> 'wayland', d)}"
>>>>>>> +
>>>>>>> +PACKAGECONFIG[glut] = 
>>>>>>> "-Dwith-glut=${STAGING_EXECPREFIXDIR},-Dglut=disabled,freeglut"
>>>>>>> +PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled,"
>>>>>>> diff --git 
>>>>>>> a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_9.0.0.bbappend b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_9.0.0.bbappend
>>>>>>> new file mode 100644
>>>>>>> index 00000000..3b26e342
>>>>>>> --- /dev/null
>>>>>>> +++ 
>>>>>>> b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_9.0.0.bbappend
>>>>>>> @@ -0,0 +1,4 @@
>>>>>>> +MESA_DEMOS_ARAGO = ""
>>>>>>> +MESA_DEMOS_ARAGO:arago = "mesa-demos-arago.inc"
>>>>>>> +
>>>>>>> +require ${MESA_DEMOS_ARAGO}
>>>>>>> diff --git 
>>>>>>> a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb 
>>>>>>> b/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
>>>>>>> deleted file mode 100644
>>>>>>> index 2da3ceff..00000000
>>>>>>> --- a/meta-arago-distro/recipes-graphics/mesa/mesa-demos_git.bb
>>>>>>> +++ /dev/null
>>>>>>> @@ -1,42 +0,0 @@
>>>>>>> -SUMMARY = "Mesa demo applications"
>>>>>>> -DESCRIPTION = "This package includes the demonstration 
>>>>>>> application, such as glxgears. \
>>>>>>> -These applications can be used for Mesa validation and 
>>>>>>> benchmarking."
>>>>>>> -HOMEPAGE = "http://mesa3d.org"
>>>>>>> -BUGTRACKER = "https://bugs.freedesktop.org"
>>>>>>> -
>>>>>>> -LICENSE = "MIT & PD"
>>>>>>> -LIC_FILES_CHKSUM = 
>>>>>>> "file://src/xdemos/glxgears.c;beginline=1;endline=20;md5=a481fbdb2ac800ecb12405c33bcfacae \
>>>>>>> -                    
>>>>>>> file://src/xdemos/glxdemo.c;beginline=1;endline=8;md5=b01d5ab1aee94d35b7efaa2ef48e1a06"
>>>>>>> -
>>>>>>> -SRC_URI = 
>>>>>>> "git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main"
>>>>>>> -SRCREV = "02eae079cb0b8186064d5b194ca4cc2995f099ee"
>>>>>>> -
>>>>>>> -DEFAULT_PREFERENCE = "-1"
>>>>>>> -PV = "9.0.0+git"
>>>>>>> -
>>>>>>> -inherit meson pkgconfig features_check
>>>>>>> -REQUIRED_DISTRO_FEATURES = "opengl"
>>>>>>> -
>>>>>>> -EXTRA_OEMESON = "-Dwith-system-data-files=true"
>>>>>>> -
>>>>>>> -PACKAGECONFIG ?= "drm egl gles1 gles2 \
>>>>>>> -                  ${@bb.utils.filter('DISTRO_FEATURES', 'vulkan 
>>>>>>> x11 wayland', d)}"
>>>>>>> -
>>>>>>> -PACKAGECONFIG[drm] = "-Dlibdrm=enabled,-Dlibdrm=disabled,libdrm"
>>>>>>> -PACKAGECONFIG[egl] = "-Degl=enabled,-Degl=disabled,virtual/egl"
>>>>>>> -PACKAGECONFIG[gles1] = 
>>>>>>> "-Dgles1=enabled,-Dgles1=disabled,virtual/libgles1"
>>>>>>> -PACKAGECONFIG[gles2] = 
>>>>>>> "-Dgles2=enabled,-Dgles2=disabled,virtual/libgles2"
>>>>>>> -PACKAGECONFIG[glut] = 
>>>>>>> "-Dwith-glut=${STAGING_EXECPREFIXDIR},-Dglut=disabled,freeglut"
>>>>>>> -PACKAGECONFIG[osmesa] = "-Dosmesa=enabled,-Dosmesa=disabled,"
>>>>>>> -PACKAGECONFIG[vulkan] = 
>>>>>>> "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-loader glslang-native"
>>>>>>> -PACKAGECONFIG[wayland] = 
>>>>>>> "-Dwayland=enabled,-Dwayland=disabled,virtual/libgl wayland 
>>>>>>> wayland-native wayland-protocols libxkbcommon libdecor"
>>>>>>> -PACKAGECONFIG[x11] = 
>>>>>>> "-Dx11=enabled,-Dx11=disabled,virtual/libx11 libglu libxkbcommon 
>>>>>>> libxcb"
>>>>>>> -
>>>>>>> -do_install:append() {
>>>>>>> -    # it can be completely empty when all PACKAGECONFIG options 
>>>>>>> are disabled
>>>>>>> -    rmdir --ignore-fail-on-non-empty ${D}${bindir}
>>>>>>> -
>>>>>>> -    if [ -f ${D}${bindir}/clear ]; then
>>>>>>> -        mv ${D}${bindir}/clear ${D}${bindir}/clear.mesa-demos
>>>>>>> -    fi
>>>>>>> -}
>>>>>>
>>>>>> I still hate that layer conformance thinks this is the correct way 
>>>>>> to do what is
>>>>>> essentially adding a new *optional* package version. Feels really 
>>>>>> backwards and
>>>>>> gross, but I'm already picking other fights right now.
>>>>>
>>>>> In order for a new version of a recipe to be *optional*, it should 
>>>>> not be
>>>>> selected by bitbake by default.
>>>>>
>>>>> There are 2 ways to do this (besides making a bbappend):
>>>>>
>>>>> 1. Use the same name, but lower the default preference 
>>>>> DEFAULT_PREFERENCE="-1"
>>>>> and still able to select it with 
>>>>> PREFERRED_VERSION_mesa-demos="9.0.0+git"
>>>>
>>>> Yeah, I did that. You can see it in the patch above, being removed. The
>>>> conformance still thinks it's wrong.
>>>
>>> Ah, indeed, missed that.
>>>
>>> Still not sure why the yocto-check-layer fails for this case...
>>
>> FTR, in our discussions during early days of YP Compat and 
>> yocto-check-layer
>> several years ago, this was one of the correct methods to deal with 
>> multiple
>> versions - see the comments here:
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=12688
>>
>> Do you have the exact error message that the tool now prints?
> 
> Of course not.  I was just fixing the issue not documenting things. I'll 
> have to revert the patch to get the message.  I'll try and do that 
> sometime this week... if I can remember to...


INFO: ======================================================================
INFO: FAIL: test_signatures (common.CommonCheckLayer.test_signatures)
INFO: ----------------------------------------------------------------------
INFO: Traceback (most recent call last):
   File 
"/scratch/builds/check-layer/check-layer-meta-arago-master-wip/ypcompat/build/sources/oe-core/scripts/lib/checklayer/cases/common.py", 
line 141, in test_signatures
     self.fail('Adding layer %s changed signatures.\n%s' % 
(self.tc.layer['name'], msg))
AssertionError: Adding layer meta-arago-distro changed signatures.
29 signatures changed, initial differences (first hash before, second 
after):
    mesa-demos:do_create_recipe_spdx: 
fdfa5e3d9511bd54a5acc78263febea675fa0c8a2008acf3cfa30ec4e2f8a5a1 -> 
8edf52b9c5a6900ec8145520c5669c21acaf8d19a8a0fa1cfa8053d37bee568c
       bitbake-diffsigs --task mesa-demos do_create_recipe_spdx 
--signature 
fdfa5e3d9511bd54a5acc78263febea675fa0c8a2008acf3cfa30ec4e2f8a5a1 
8edf52b9c5a6900ec8145520c5669c21acaf8d19a8a0fa1cfa8053d37bee568c
       NOTE: Reconnecting to bitbake server...
       basehash changed from 
0ffaa6b8739b033ea2ced33806a84321f22cd2b545941a995e45c20e25d3ac83 to 
7f97e74de56a366492f9e28738528bb75cb27a658d2f3e0a55d843ea35bf8bfb
       Variable FILE_LAYERNAME value changed from 'core' to 
'meta-arago-distro'
       Variable PV value changed from '9.0.0' to '9.0.0+git'
       runtaskdeps changed:
       ['gcc-cross-x86_64:do_create_recipe_spdx 
gcc-runtime:do_create_recipe_spdx glibc:do_create_recipe_spdx 
glslang-native:do_create_recipe_spdx', +libdecor:do_create_recipe_spdx, 
'libdrm:do_create_recipe_spdx libglu:do_create_recipe_spdx 
libx11:do_create_recipe_spdx libxcb:do_create_recipe_spdx 
libxkbcommon:do_create_recipe_spdx mesa:do_create_recipe_spdx 
meson-native:do_create_recipe_spdx ninja-native:do_create_recipe_spdx 
pkgconf-native:do_create_recipe_spdx 
python3-native:do_create_recipe_spdx qemu-native:do_create_recipe_spdx 
vulkan-loader:do_create_recipe_spdx', 
+wayland-native:do_create_recipe_spdx 
wayland-protocols:do_create_recipe_spdx wayland:do_create_recipe_spdx]
       Number of task dependencies changed
       Dependency on task libdecor:do_create_recipe_spdx was added with 
hash d0ae5f314e39c6759b1251b19ee60fed31cb596ed74db4c2af1bf9c81120ca71
       Dependency on task wayland-native:do_create_recipe_spdx was added 
with hash 2fcdc48b49b216a7ca88d77c47fdfc2fced6fd430cbd56bf3c3f40c653b3bf5d
       Dependency on task wayland-protocols:do_create_recipe_spdx was 
added with hash 
9a61f0be609311e41c15076efa091042796ff578c07eb574639515b57ad99c43
       Dependency on task wayland:do_create_recipe_spdx was added with 
hash f93d7441a54a3996ec8f51403ffbdfafdacae6748ab40267eaa86a84d2602137

    mesa-demos:do_recipe_qa: 
fdb65811eccad14710d68baedd228db109d29a414864839cb980b24a31f23cef -> 
3e2485f2d58b88827b96212eb4ae8f3c71cab6a96180855597ac5107ce9ab30b
       bitbake-diffsigs --task mesa-demos do_recipe_qa --signature 
fdb65811eccad14710d68baedd228db109d29a414864839cb980b24a31f23cef 
3e2485f2d58b88827b96212eb4ae8f3c71cab6a96180855597ac5107ce9ab30b
       NOTE: Reconnecting to bitbake server...
       Task dependencies changed from:
       ['BPN', 'HOMEPAGE', 'INSANE_SKIP', 'MLPREFIX', 'OE_SHARED_UMASK', 
'PN', 'PR', 'PV', 'QA_ERRORS_FOUND', 'RECIPE_MAINTAINER', 
'SPECIAL_PKGSUFFIX', 'SRC_URI', 'SRC_URI[sha256sum]', 
'SSTATECREATEFUNCS', 'SSTATEPOSTCREATEFUNCS', 'SSTATEPOSTUNPACKFUNCS', 
'SSTATE_BUILDDIR', 'SSTATE_INSTDIR', 'SSTATE_MANIFESTS', 
'SSTATE_SCAN_FILES', 'SSTATE_SKIP_CREATION', 'SUMMARY', 
'do_recipe_qa[network]', 'do_recipe_qa[sstate-inputdirs]', 
'oe.path.copyhardlinktree', 'oe.path.copytree', 'oe.path.remove', 
'oe.qa.exit_if_errors', 'oe.qa.exit_with_message_if_errors', 
'oe.sstatesig.sstate_get_manifest_filename', 'oe.utils.prune_suffix', 
'sstate_add', 'sstate_clean', 'sstate_clean_manifest', 'sstate_init', 
'sstate_install', 'sstate_installpkgdir', 'sstate_package', 
'sstate_state_fromvars', 'sstate_task_postfunc', 'sstate_task_prefunc']
       to:
       ['HOMEPAGE', 'INSANE_SKIP', 'OE_SHARED_UMASK', 'PN', 'PR', 'PV', 
'QA_ERRORS_FOUND', 'RECIPE_MAINTAINER', 'SRC_URI', 'SSTATECREATEFUNCS', 
'SSTATEPOSTCREATEFUNCS', 'SSTATEPOSTUNPACKFUNCS', 'SSTATE_BUILDDIR', 
'SSTATE_INSTDIR', 'SSTATE_MANIFESTS', 'SSTATE_SCAN_FILES', 
'SSTATE_SKIP_CREATION', 'SUMMARY', 'do_recipe_qa[network]', 
'do_recipe_qa[sstate-inputdirs]', 'oe.path.copyhardlinktree', 
'oe.path.copytree', 'oe.path.remove', 'oe.qa.exit_if_errors', 
'oe.qa.exit_with_message_if_errors', 
'oe.sstatesig.sstate_get_manifest_filename', 'sstate_add', 
'sstate_clean', 'sstate_clean_manifest', 'sstate_init', 
'sstate_install', 'sstate_installpkgdir', 'sstate_package', 
'sstate_state_fromvars', 'sstate_task_postfunc', 'sstate_task_prefunc']
       basehash changed from 
f3c45b3c71fdb2e78bea3799d710ff4dc34bc08debc780666a13aae14dc3929b to 
62f19e76a9f74c8a8a8467e3cb7f322f7c3accd60a3d56bfa412a438aa00b5bb
       List of dependencies for variable SRC_URI changed from 
'frozenset({'BPN', 'PV', 'SRC_URI[sha256sum]'})' to 'frozenset()'
       Dependency on Variable BPN was removed
       Dependency on Variable MLPREFIX was removed
       Dependency on Variable SPECIAL_PKGSUFFIX was removed
       Dependency on Variable SRC_URI[sha256sum] was removed
       Dependency on Variable oe.utils.prune_suffix was removed
       Variable PV value changed from '9.0.0' to '9.0.0+git'
       Variable SRC_URI value changed:
       "[-https://archive.mesa3d.org/demos/${BPN}-${PV}.tar.xz 
  file://0001-meson-fix-glx-detection-without-glvnd.patch            -] 
{+git://gitlab.freedesktop.org/mesa/demos.git;protocol=https;branch=main+}"

    mesa-demos:do_write_config: 
74d083f3c31a70739bd6dc4c614b966960da100230c569a6ed4b20a9ce6d9d48 -> 
9b254ca132ba955b0a0fa5bc1a05608cbd6f91fe7f39e8f359773e443f4ad001
       bitbake-diffsigs --task mesa-demos do_write_config --signature 
74d083f3c31a70739bd6dc4c614b966960da100230c569a6ed4b20a9ce6d9d48 
9b254ca132ba955b0a0fa5bc1a05608cbd6f91fe7f39e8f359773e443f4ad001
       NOTE: Reconnecting to bitbake server...
       basehash changed from 
d06bb5d1e0378df4aef1951edc4d39162f54204b9b371a2849b1bd8814260f70 to 
82023e545f66d6c0bd6d4af9c64f8234be828d1121aaf8183285cd8098584fa3
       Variable PV value changed from '9.0.0' to '9.0.0+git'


That's the errors.  Basically, the tool does not like having two recipes 
for the same package.








> 
>>
>>>>> 2. Use a different name e.g. mesa-demos-arago and set 
>>>>> PROVIDES="mesa-demos" -
>>>>> allows selecting it with 
>>>>> PREFERRED_PROVIDER_mesa-demos="mesa-demos-arago"
> 

-- 
Ryan Eatmon                [email protected]
-----------------------------------------
Texas Instruments, Inc.  -  LCPD  -  MGTS