Re: [yocto] Issues with DEPENDS

Jared Weyer <[email protected]>
Newsgroups org.yoctoproject.lists.yocto
Message-ID <[email protected]>
Hi all,

Thanks for the input! I figured out that the issue was indeed related to the install directory. I have the following in recipe B:

do_install() {
    install -d ${D}${MCU_PLUS_SDK_AM263PX_INSTALL_DIR}
    cp -r ${B}/. ${D}${MCU_PLUS_SDK_AM263PX_INSTALL_DIR}
}

where MCU_PLUS_SDK_AM263PX_INSTALL_DIR came from two different include files:

# meta-ti/meta-ti-extras/recipes-ti/includes/ti-paths.inc
installdir = "${datadir}/ti"

# meta-aec/recipes-ti/includes/aec-ti-paths.inc
CU_PLUS_SDK_AM263PX_VERSION := "11.00.00.19"
MCU_PLUS_SDK_AM263PX_INSTALL_NAME := "mcu_plus_sdk_am263px_${MCU_PLUS_SDK_AM263PX_VERSION}"
MCU_PLUS_SDK_AM263PX_INSTALL_DIR = "${installdir}/${MCU_PLUS_SDK_AM263PX_INSTALL_NAME}"

The above works as expected; However, the bug was that I had the following:

MCU_PLUS_SDK_AM263PX_INSTALL_DIR := "${installdir}/${MCU_PLUS_SDK_AM263PX_INSTALL_NAME}"

I was using immediate expansion which causing issues only when the recipe was built as a dependency to another recipe. I believe this was because of the context shift causing ${datadir} to expand differently when the recipe was built independently, though I am still not entirely sure why it caused sysroot-components to be empty, I would have expected it to populate but with an incorrect path.

Anyways, thank you both for your input!

Thanks again,

- Jared

________________________________________
From: Gyorgy Sarvari <[email protected]>
Sent: Thursday, October 23, 2025 4:27 AM
To: [email protected]; Jared Weyer
Subject: Re: [yocto] Issues with DEPENDS

On 10/21/25 03:02, Jared Weyer via lists.yoctoproject.org wrote:
>
>     install -m 0755 ${S}/test.txt ${D}/usr/share/ti
>     install -m 0755 ${S}/test2.txt ${D}/usr

I remember this, this is how I learned to use bitbake variables for all
paths, I spent at least 2 days debugging it some years ago.
When you do build for native, ${D} is pretty much the same as for
tagret, but ${datadir and ${prefix} are very different.

For target it looks like this:
prefix = /usr
datadir = /usr/share

For native, it looks like this:
prefix =
/home/mee/stuff/ptest-images/build/tmp/work/x86_64-linux/openssl-native/3.5.4/recipe-sysroot-native/usr
datadir =
/home/mee/stuff/ptest-images/build/tmp/work/x86_64-linux/openssl-native/3.5.4/recipe-sysroot-native/usr/share


Try in your recipe you should always use ${D}${datadir}, ${D}{prefix}
etc variables when installing files to avoid such issues.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.