Re: [meta-arm] [PATCH] meta-arm: fixup new override syntax usage

Denys Dmytriyenko <[email protected]> Sat, 7 Feb 2026 09:06:24 -0500
Newsgroups org.yoctoproject.lists.meta-arm
Message-ID <[email protected]>
On Sat, Feb 07, 2026 at 12:41:09AM +0000, Johannes Schneider via lists.yoctoproject.org wrote:
> The placing of ' ' in combination with inline python variable
> expansion can lead to missing/skipping the license file checksum
> verification.

This technique is relied upon in so many places, the issue would have been 
noticed long ago, if it was the case.


> Fix this by using '+=' (which itself adds a space) instead of :append
> (which concatenates strings without inserting a space)
> 
> Fixes: 8dfdacd75c6c ("meta-arm: Convert to new override syntax")
> Signed-off-by: Johannes Schneider <[email protected]>
> 
> ---
> 
> By chance we had an incorrect checksum set as
> meta-geosurv-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-leica_2.13.bb
> LIC_FILES_CHKSUM += "file://docs/license.rst;md5=83b7626b8c7a37263c6a58af8d19bee1"
> 
> Which 'bitbake -e' would resolve correctly:
> 
>  # $LIC_FILES_CHKSUM [3 operations]
>  #   set /workspace/layers/openembedded-core/meta/conf/documentation.conf:268
>  #     [doc] "Checksums of the license text in the recipe source code."
>  #   :append /workspace/layers/meta-arm/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc:57
>  #     "${@bb.utils.contains('TFA_MBEDTLS', '1', ' ${LIC_FILES_CHKSUM_MBEDTLS}', '', d)}"
>  #   append /workspace/layers/meta-geosurv-bsp/recipes-bsp/trusted-firmware-a/trusted-firmware-a-leica_2.13.bb:41
>  #     "file://docs/license.rst;md5=83b7626b8c7a37263c6a58af8d19bee1"
>  # pre-expansion value:
>  #   " file://docs/license.rst;md5=83b7626b8c7a37263c6a58af8d19bee1${@bb.utils.contains('TFA_MBEDTLS', '1', ' ${LIC_FILES_CHKSUM_MBEDTLS}', '', d)}"
>  LIC_FILES_CHKSUM=" file://docs/license.rst;md5=83b7626b8c7a37263c6a58af8d19bee1"
> 
> Note the missing space in the pre-expansion value.

The space is not missing, it is embedded in the ' ${LIC_FILES_CHKSUM_MBEDTLS}'
You should be able to check it by setting TFA_MBEDTLS=1 and running bitbake -e


> But the oe-core/meta/classes-global/license.bbclass check would miss.
> 
> This went unnoticed for a long time and over many clean-builds, as
> it would only very rarily raise the QA error.
> 
> Sidenote:
> I've looked over the meta-layer, but didn't spot any similar problems.
> 
> ---
>  .../recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc     | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc b/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
> index 6a2c0da9..987b7a66 100644
> --- a/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
> +++ b/meta-arm/recipes-bsp/trusted-firmware-a/trusted-firmware-a.inc
> @@ -49,10 +49,10 @@ SRC_URI_MBEDTLS ??= ""
>  # This should be set to MBEDTLS LIC FILES checksum
>  LIC_FILES_CHKSUM_MBEDTLS ??= ""
>  # add MBEDTLS to our sources if activated
> -SRC_URI:append = " ${@bb.utils.contains('TFA_MBEDTLS', '1', '${SRC_URI_MBEDTLS}', '', d)}"

Here the space is always appended, as it's outside of the inline code section.


> +SRC_URI += "${@bb.utils.contains('TFA_MBEDTLS', '1', '${SRC_URI_MBEDTLS}', '', d)}"
>  # Update license variables
>  LICENSE:append = "${@bb.utils.contains('TFA_MBEDTLS', '1', ' & Apache-2.0', '', d)}"
> -LIC_FILES_CHKSUM:append = "${@bb.utils.contains('TFA_MBEDTLS', '1', ' ${LIC_FILES_CHKSUM_MBEDTLS}', '', d)}"

And here the space only gets appended, if the inline code returns true ^^^


> +LIC_FILES_CHKSUM += "${@bb.utils.contains('TFA_MBEDTLS', '1', '${LIC_FILES_CHKSUM_MBEDTLS}', '', d)}"
>  # add mbed TLS to version
>  SRCREV_FORMAT:append = "${@bb.utils.contains('TFA_MBEDTLS', '1', '_mbedtls', '', d)}"
> 
> 
> base-commit: be599f9523c5784904274cec12596ae31e20121f
> -- 
> 2.43.0