summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNiko Mauno <niko.mauno@vaisala.com>2025-03-10 14:37:43 +0000
committerSteve Sakoman <steve@sakoman.com>2025-03-15 06:40:08 -0700
commit7543e4e24a8bd61e1c9b172ea1ad0ed666b5e2b0 (patch)
tree42a1c315dc8a08574ec7a25a8b8109f7c88938cd
parent216fcf245877cc58b86656a8434de5e77e599180 (diff)
downloadpoky-7543e4e24a8bd61e1c9b172ea1ad0ed666b5e2b0.tar.gz
cve-check.bbclass: Mitigate symlink related error
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. (From OE-Core rev: 64bfec359bd909761ce0a6a716286d938ed162d1) (From OE-Core rev: 35e210e3ebe21f1f4466760076b7140618af536e) Signed-off-by: Niko Mauno <niko.mauno@vaisala.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/classes/cve-check.bbclass6
1 files changed, 4 insertions, 2 deletions
diff --git a/meta/classes/cve-check.bbclass b/meta/classes/cve-check.bbclass
index ed219bf472..badfee550c 100644
--- a/meta/classes/cve-check.bbclass
+++ b/meta/classes/cve-check.bbclass
@@ -281,13 +281,15 @@ python cve_check_write_rootfs_manifest () {
281 281
282 if enable_json: 282 if enable_json:
283 manifest_name_suffix = d.getVar("CVE_CHECK_MANIFEST_JSON_SUFFIX") 283 manifest_name_suffix = d.getVar("CVE_CHECK_MANIFEST_JSON_SUFFIX")
284 link_path = os.path.join(deploy_dir, "%s.%s" % (link_name, manifest_name_suffix))
285 manifest_name = d.getVar("CVE_CHECK_MANIFEST_JSON") 284 manifest_name = d.getVar("CVE_CHECK_MANIFEST_JSON")
286 285
287 with open(manifest_name, "w") as f: 286 with open(manifest_name, "w") as f:
288 json.dump(json_data, f, indent=2) 287 json.dump(json_data, f, indent=2)
289 288
290 update_symlinks(manifest_name, link_path) 289 if link_name:
290 link_path = os.path.join(deploy_dir, "%s.%s" % (link_name, manifest_name_suffix))
291 update_symlinks(manifest_name, link_path)
292
291 bb.plain("Image CVE JSON report stored in: %s" % manifest_name) 293 bb.plain("Image CVE JSON report stored in: %s" % manifest_name)
292} 294}
293 295