On Fri, Feb 14, 2025 at 3:28 PM Niko Mauno via lists.openembedded.org <niko.mauno=vaisala....@lists.openembedded.org> wrote:
> From: Niko Mauno <niko.ma...@vaisala.com> > > According to Yocto reference manual, in description of the > IMAGE_LINK_NAME variable, it is said that > > It is possible to set this to "" to disable symlink creation, > however, you also need to set :term:`IMAGE_NAME` to still have > a reasonable value e.g.:: > > IMAGE_LINK_NAME = "" > IMAGE_NAME = > "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}" > > However, when using following additions in local.conf file: > > INHERIT += "cve-check" > IMAGE_LINK_NAME = "" > IMAGE_NAME = > "${IMAGE_BASENAME}${IMAGE_MACHINE_SUFFIX}${IMAGE_VERSION_SUFFIX}" > > the implicit symlink creation in cve_check_write_rootfs_manifest leads > to following build failure > > $ bitbake core-image-minimal core-image-base > ... > ERROR: core-image-base-1.0-r0 do_image_complete: Recipe core-image-base > is trying to install files into a shared area when those files already > exist. The files and the manifests listing them are: > /home/poky/build/tmp/deploy/images/qemux86-64/.json > (matched in manifest-qemux86_64-core-image-minimal.image_complete) > Please adjust the recipes so only one recipe provides a given file. > > Mitigate the issue by creating the symlink only in case IMAGE_LINK_NAME > has not been set to empty string. > > Signed-off-by: Niko Mauno <niko.ma...@vaisala.com> > --- > meta/classes/cve-check.bbclass | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/meta/classes/cve-check.bbclass > b/meta/classes/cve-check.bbclass > index 6e10dd915a..190c5b9a80 100644 > --- a/meta/classes/cve-check.bbclass > +++ b/meta/classes/cve-check.bbclass > @@ -244,13 +244,15 @@ python cve_check_write_rootfs_manifest () { > > if enable_json: > manifest_name_suffix = d.getVar("CVE_CHECK_MANIFEST_JSON_SUFFIX") > - link_path = os.path.join(deploy_dir, "%s.%s" % (link_name, > manifest_name_suffix)) > manifest_name = d.getVar("CVE_CHECK_MANIFEST_JSON") > > with open(manifest_name, "w") as f: > json.dump(json_data, f, indent=2) > > - update_symlinks(manifest_name, link_path) > + if link_name: > + link_path = os.path.join(deploy_dir, "%s.%s" % (link_name, > manifest_name_suffix)) > + update_symlinks(manifest_name, link_path) > + > bb.plain("Image CVE JSON report stored in: %s" % manifest_name) > } > > I'm wondering in how many places you have similar changes? Wouldn't it be better to centralize the conditional processing in a separate function that could be reused? Either inside update_symlinks or in some other wrapper function. Kind regards, Marta
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#211605): https://lists.openembedded.org/g/openembedded-core/message/211605 Mute This Topic: https://lists.openembedded.org/mt/111182720/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-