diff options
Diffstat (limited to 'meta/classes-recipe/create-spdx-image-3.0.bbclass')
-rw-r--r-- | meta/classes-recipe/create-spdx-image-3.0.bbclass | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/meta/classes-recipe/create-spdx-image-3.0.bbclass b/meta/classes-recipe/create-spdx-image-3.0.bbclass new file mode 100644 index 0000000000..e0f1766bb7 --- /dev/null +++ b/meta/classes-recipe/create-spdx-image-3.0.bbclass | |||
@@ -0,0 +1,85 @@ | |||
1 | # | ||
2 | # Copyright OpenEmbedded Contributors | ||
3 | # | ||
4 | # SPDX-License-Identifier: GPL-2.0-only | ||
5 | # | ||
6 | # SPDX image tasks | ||
7 | |||
8 | SPDX_ROOTFS_PACKAGES = "${SPDXDIR}/rootfs-packages.json" | ||
9 | SPDXIMAGEDEPLOYDIR = "${SPDXDIR}/image-deploy" | ||
10 | SPDXROOTFSDEPLOY = "${SPDXDIR}/rootfs-deploy" | ||
11 | |||
12 | python spdx_collect_rootfs_packages() { | ||
13 | import json | ||
14 | from pathlib import Path | ||
15 | from oe.rootfs import image_list_installed_packages | ||
16 | |||
17 | root_packages_file = Path(d.getVar("SPDX_ROOTFS_PACKAGES")) | ||
18 | |||
19 | packages = image_list_installed_packages(d) | ||
20 | if not packages: | ||
21 | packages = {} | ||
22 | |||
23 | root_packages_file.parent.mkdir(parents=True, exist_ok=True) | ||
24 | with root_packages_file.open("w") as f: | ||
25 | json.dump(packages, f) | ||
26 | } | ||
27 | ROOTFS_POSTUNINSTALL_COMMAND =+ "spdx_collect_rootfs_packages" | ||
28 | |||
29 | python do_create_rootfs_spdx() { | ||
30 | import oe.spdx30_tasks | ||
31 | oe.spdx30_tasks.create_rootfs_spdx(d) | ||
32 | } | ||
33 | addtask do_create_rootfs_spdx after do_rootfs before do_image | ||
34 | SSTATETASKS += "do_create_rootfs_spdx" | ||
35 | do_create_rootfs_spdx[sstate-inputdirs] = "${SPDXROOTFSDEPLOY}" | ||
36 | do_create_rootfs_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}" | ||
37 | do_create_rootfs_spdx[recrdeptask] += "do_create_spdx do_create_package_spdx" | ||
38 | do_create_rootfs_spdx[cleandirs] += "${SPDXROOTFSDEPLOY}" | ||
39 | do_create_rootfs_spdx[file-checksums] += "${SPDX3_LIB_DEP_FILES}" | ||
40 | |||
41 | python do_create_rootfs_spdx_setscene() { | ||
42 | sstate_setscene(d) | ||
43 | } | ||
44 | addtask do_create_rootfs_spdx_setscene | ||
45 | |||
46 | python do_create_image_spdx() { | ||
47 | import oe.spdx30_tasks | ||
48 | oe.spdx30_tasks.create_image_spdx(d) | ||
49 | } | ||
50 | addtask do_create_image_spdx after do_image_complete do_create_rootfs_spdx before do_build | ||
51 | SSTATETASKS += "do_create_image_spdx" | ||
52 | SSTATE_SKIP_CREATION:task-create-image-spdx = "1" | ||
53 | do_create_image_spdx[sstate-inputdirs] = "${SPDXIMAGEWORK}" | ||
54 | do_create_image_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}" | ||
55 | do_create_image_spdx[cleandirs] = "${SPDXIMAGEWORK}" | ||
56 | do_create_image_spdx[dirs] = "${SPDXIMAGEWORK}" | ||
57 | do_create_image_spdx[file-checksums] += "${SPDX3_LIB_DEP_FILES}" | ||
58 | do_create_image_spdx[vardeps] += "\ | ||
59 | SPDX_IMAGE_PURPOSE \ | ||
60 | " | ||
61 | |||
62 | python do_create_image_spdx_setscene() { | ||
63 | sstate_setscene(d) | ||
64 | } | ||
65 | addtask do_create_image_spdx_setscene | ||
66 | |||
67 | |||
68 | python do_create_image_sbom_spdx() { | ||
69 | import oe.spdx30_tasks | ||
70 | oe.spdx30_tasks.create_image_sbom_spdx(d) | ||
71 | } | ||
72 | addtask do_create_image_sbom_spdx after do_create_rootfs_spdx do_create_image_spdx before do_build | ||
73 | SSTATETASKS += "do_create_image_sbom_spdx" | ||
74 | SSTATE_SKIP_CREATION:task-create-image-sbom = "1" | ||
75 | do_create_image_sbom_spdx[sstate-inputdirs] = "${SPDXIMAGEDEPLOYDIR}" | ||
76 | do_create_image_sbom_spdx[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}" | ||
77 | do_create_image_sbom_spdx[stamp-extra-info] = "${MACHINE_ARCH}" | ||
78 | do_create_image_sbom_spdx[cleandirs] = "${SPDXIMAGEDEPLOYDIR}" | ||
79 | do_create_image_sbom_spdx[recrdeptask] += "do_create_spdx do_create_package_spdx" | ||
80 | do_create_image_sbom_spdx[file-checksums] += "${SPDX3_LIB_DEP_FILES}" | ||
81 | |||
82 | python do_create_image_sbom_spdx_setscene() { | ||
83 | sstate_setscene(d) | ||
84 | } | ||
85 | addtask do_create_image_sbom_spdx_setscene | ||