summaryrefslogtreecommitdiffstats
path: root/meta/classes/create-spdx.bbclass
diff options
context:
space:
mode:
authorDavide Gardenal <davidegarde2000@gmail.com>2022-04-14 15:27:47 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2022-04-19 14:14:01 +0100
commit88f76bba705007a7fcda506c79f743060d8f2e52 (patch)
tree3338c22d24a8f571f20da91efc74af70c14e8a4a /meta/classes/create-spdx.bbclass
parent99dee60b8db557f54783bf0f61098587badc683c (diff)
downloadopenembedded-core-contrib-88f76bba705007a7fcda506c79f743060d8f2e52.tar.gz
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 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>
Diffstat (limited to 'meta/classes/create-spdx.bbclass')
-rw-r--r--meta/classes/create-spdx.bbclass10
1 files changed, 4 insertions, 6 deletions
diff --git a/meta/classes/create-spdx.bbclass b/meta/classes/create-spdx.bbclass
index 137db81a5b..47a8764bf0 100644
--- a/meta/classes/create-spdx.bbclass
+++ b/meta/classes/create-spdx.bbclass
@@ -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")