create-spdx: fix error when symlink cannot be created

If IMAGE_NAME and IMAGE_LINK_NAME are the same an
exception is raised in image_combine_spdx because
it cannot create a symlink with the same exact
path of the original file. In that case there is
no point in creating a link in the first place.

Refactor image_combine_spdx to avoid code duplication

(From OE-Core rev: 88f76bba705007a7fcda506c79f743060d8f2e52)

Signed-off-by: Davide Gardenal <davide.gardenal@huawei.com>
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Davide Gardenal
2022-04-14 15:27:47 +02:00
committed by Richard Purdie
parent f72889eb00
commit 41fd30c430

View File

@@ -835,16 +835,14 @@ python image_combine_spdx() {
combine_spdx(d, image_name, imgdeploydir, img_spdxid, packages)
if image_link_name:
image_spdx_path = imgdeploydir / (image_name + ".spdx.json")
image_spdx_link = imgdeploydir / (image_link_name + ".spdx.json")
image_spdx_link.symlink_to(os.path.relpath(image_spdx_path, image_spdx_link.parent))
def make_image_link(target_path, suffix):
if image_link_name:
link = imgdeploydir / (image_link_name + suffix)
link.symlink_to(os.path.relpath(target_path, link.parent))
if link != target_path:
link.symlink_to(os.path.relpath(target_path, link.parent))
image_spdx_path = imgdeploydir / (image_name + ".spdx.json")
make_image_link(image_spdx_path, ".spdx.json")
spdx_tar_path = imgdeploydir / (image_name + ".spdx.tar.zst")
make_image_link(spdx_tar_path, ".spdx.tar.zst")
spdx_index_path = imgdeploydir / (image_name + ".spdx.index.json")