diff options
| author | Niko Mauno <niko.mauno@vaisala.com> | 2025-03-10 14:37:43 +0000 |
|---|---|---|
| committer | Steve Sakoman <steve@sakoman.com> | 2025-03-15 06:40:08 -0700 |
| commit | 7543e4e24a8bd61e1c9b172ea1ad0ed666b5e2b0 (patch) | |
| tree | 42a1c315dc8a08574ec7a25a8b8109f7c88938cd | |
| parent | 216fcf245877cc58b86656a8434de5e77e599180 (diff) | |
| download | poky-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.bbclass | 6 |
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 | ||
