mirror of
https://git.yoctoproject.org/poky
synced 2026-09-19 18:49:32 +02:00
backport: SPDX 3.0 fixes and tasks from upstream version Walnascar
Backports the SPDX 3.0 support and fixes from upstream walnascar commit 49f47169953b807d430461ca33f3a2b076119712 into upstream scarthgap. (From OE-Core rev: 9c9b9545049a2f6e5c99edcb079275d29a4d1ac6) Signed-off-by: Kamel Bouhara (Schneider Electric) <kamel.bouhara@bootlin.com> Signed-off-by: Steve Sakoman <steve@sakoman.com>
This commit is contained in:
committed by
Steve Sakoman
parent
d101e1410d
commit
11cd8498da
85
meta/classes-recipe/create-spdx-image-3.0.bbclass
Normal file
85
meta/classes-recipe/create-spdx-image-3.0.bbclass
Normal file
@@ -0,0 +1,85 @@
|
||||
#
|
||||
# Copyright OpenEmbedded Contributors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# SPDX image tasks
|
||||
|
||||
SPDX_ROOTFS_PACKAGES = "${SPDXDIR}/rootfs-packages.json"
|
||||
SPDXIMAGEDEPLOYDIR = "${SPDXDIR}/image-deploy"
|
||||
SPDXROOTFSDEPLOY = "${SPDXDIR}/rootfs-deploy"
|
||||
|
||||
python spdx_collect_rootfs_packages() {
|
||||
import json
|
||||
from pathlib import Path
|
||||
from oe.rootfs import image_list_installed_packages
|
||||
|
||||
root_packages_file = Path(d.getVar("SPDX_ROOTFS_PACKAGES"))
|
||||
|
||||
packages = image_list_installed_packages(d)
|
||||
if not packages:
|
||||
packages = {}
|
||||
|
||||
root_packages_file.parent.mkdir(parents=True, exist_ok=True)
|
||||
with root_packages_file.open("w") as f:
|
||||
json.dump(packages, f)
|
||||
}
|
||||
ROOTFS_POSTUNINSTALL_COMMAND =+ "spdx_collect_rootfs_packages"
|
||||
|
||||
python do_create_rootfs_spdx() {
|
||||
import oe.spdx30_tasks
|
||||
oe.spdx30_tasks.create_rootfs_spdx(d)
|
||||
}
|
||||
addtask do_create_rootfs_spdx after do_rootfs before do_image
|
||||
SSTATETASKS += "do_create_rootfs_spdx"
|
||||
do_create_rootfs_spdx[sstate-inputdirs] = "${SPDXROOTFSDEPLOY}"
|
||||
do_create_rootfs_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}"
|
||||
do_create_rootfs_spdx[recrdeptask] += "do_create_spdx do_create_package_spdx"
|
||||
do_create_rootfs_spdx[cleandirs] += "${SPDXROOTFSDEPLOY}"
|
||||
do_create_rootfs_spdx[file-checksums] += "${SPDX3_LIB_DEP_FILES}"
|
||||
|
||||
python do_create_rootfs_spdx_setscene() {
|
||||
sstate_setscene(d)
|
||||
}
|
||||
addtask do_create_rootfs_spdx_setscene
|
||||
|
||||
python do_create_image_spdx() {
|
||||
import oe.spdx30_tasks
|
||||
oe.spdx30_tasks.create_image_spdx(d)
|
||||
}
|
||||
addtask do_create_image_spdx after do_image_complete do_create_rootfs_spdx before do_build
|
||||
SSTATETASKS += "do_create_image_spdx"
|
||||
SSTATE_SKIP_CREATION:task-create-image-spdx = "1"
|
||||
do_create_image_spdx[sstate-inputdirs] = "${SPDXIMAGEWORK}"
|
||||
do_create_image_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}"
|
||||
do_create_image_spdx[cleandirs] = "${SPDXIMAGEWORK}"
|
||||
do_create_image_spdx[dirs] = "${SPDXIMAGEWORK}"
|
||||
do_create_image_spdx[file-checksums] += "${SPDX3_LIB_DEP_FILES}"
|
||||
do_create_image_spdx[vardeps] += "\
|
||||
SPDX_IMAGE_PURPOSE \
|
||||
"
|
||||
|
||||
python do_create_image_spdx_setscene() {
|
||||
sstate_setscene(d)
|
||||
}
|
||||
addtask do_create_image_spdx_setscene
|
||||
|
||||
|
||||
python do_create_image_sbom_spdx() {
|
||||
import oe.spdx30_tasks
|
||||
oe.spdx30_tasks.create_image_sbom_spdx(d)
|
||||
}
|
||||
addtask do_create_image_sbom_spdx after do_create_rootfs_spdx do_create_image_spdx before do_build
|
||||
SSTATETASKS += "do_create_image_sbom_spdx"
|
||||
SSTATE_SKIP_CREATION:task-create-image-sbom = "1"
|
||||
do_create_image_sbom_spdx[sstate-inputdirs] = "${SPDXIMAGEDEPLOYDIR}"
|
||||
do_create_image_sbom_spdx[sstate-outputdirs] = "${DEPLOY_DIR_IMAGE}"
|
||||
do_create_image_sbom_spdx[stamp-extra-info] = "${MACHINE_ARCH}"
|
||||
do_create_image_sbom_spdx[cleandirs] = "${SPDXIMAGEDEPLOYDIR}"
|
||||
do_create_image_sbom_spdx[recrdeptask] += "do_create_spdx do_create_package_spdx"
|
||||
do_create_image_sbom_spdx[file-checksums] += "${SPDX3_LIB_DEP_FILES}"
|
||||
|
||||
python do_create_image_sbom_spdx_setscene() {
|
||||
sstate_setscene(d)
|
||||
}
|
||||
addtask do_create_image_sbom_spdx_setscene
|
||||
74
meta/classes-recipe/create-spdx-sdk-3.0.bbclass
Normal file
74
meta/classes-recipe/create-spdx-sdk-3.0.bbclass
Normal file
@@ -0,0 +1,74 @@
|
||||
#
|
||||
# Copyright OpenEmbedded Contributors
|
||||
#
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
#
|
||||
# SPDX SDK tasks
|
||||
|
||||
do_populate_sdk[recrdeptask] += "do_create_spdx do_create_package_spdx"
|
||||
do_populate_sdk[cleandirs] += "${SPDXSDKWORK}"
|
||||
do_populate_sdk[postfuncs] += "sdk_create_sbom"
|
||||
do_populate_sdk[file-checksums] += "${SPDX3_LIB_DEP_FILES}"
|
||||
POPULATE_SDK_POST_HOST_COMMAND:append:task-populate-sdk = " sdk_host_create_spdx"
|
||||
POPULATE_SDK_POST_TARGET_COMMAND:append:task-populate-sdk = " sdk_target_create_spdx"
|
||||
|
||||
do_populate_sdk_ext[recrdeptask] += "do_create_spdx do_create_package_spdx"
|
||||
do_populate_sdk_ext[cleandirs] += "${SPDXSDKEXTWORK}"
|
||||
do_populate_sdk_ext[postfuncs] += "sdk_ext_create_sbom"
|
||||
do_populate_sdk_ext[file-checksums] += "${SPDX3_LIB_DEP_FILES}"
|
||||
POPULATE_SDK_POST_HOST_COMMAND:append:task-populate-sdk-ext = " sdk_ext_host_create_spdx"
|
||||
POPULATE_SDK_POST_TARGET_COMMAND:append:task-populate-sdk-ext = " sdk_ext_target_create_spdx"
|
||||
|
||||
python sdk_host_create_spdx() {
|
||||
from pathlib import Path
|
||||
import oe.spdx30_tasks
|
||||
spdx_work_dir = Path(d.getVar('SPDXSDKWORK'))
|
||||
|
||||
oe.spdx30_tasks.sdk_create_spdx(d, "host", spdx_work_dir, d.getVar("TOOLCHAIN_OUTPUTNAME"))
|
||||
}
|
||||
|
||||
python sdk_target_create_spdx() {
|
||||
from pathlib import Path
|
||||
import oe.spdx30_tasks
|
||||
spdx_work_dir = Path(d.getVar('SPDXSDKWORK'))
|
||||
|
||||
oe.spdx30_tasks.sdk_create_spdx(d, "target", spdx_work_dir, d.getVar("TOOLCHAIN_OUTPUTNAME"))
|
||||
}
|
||||
|
||||
python sdk_ext_host_create_spdx() {
|
||||
from pathlib import Path
|
||||
import oe.spdx30_tasks
|
||||
spdx_work_dir = Path(d.getVar('SPDXSDKEXTWORK'))
|
||||
|
||||
# TODO: This doesn't seem to work
|
||||
oe.spdx30_tasks.sdk_create_spdx(d, "host", spdx_work_dir, d.getVar("TOOLCHAINEXT_OUTPUTNAME"))
|
||||
}
|
||||
|
||||
python sdk_ext_target_create_spdx() {
|
||||
from pathlib import Path
|
||||
import oe.spdx30_tasks
|
||||
spdx_work_dir = Path(d.getVar('SPDXSDKEXTWORK'))
|
||||
|
||||
# TODO: This doesn't seem to work
|
||||
oe.spdx30_tasks.sdk_create_spdx(d, "target", spdx_work_dir, d.getVar("TOOLCHAINEXT_OUTPUTNAME"))
|
||||
}
|
||||
|
||||
|
||||
python sdk_create_sbom() {
|
||||
from pathlib import Path
|
||||
import oe.spdx30_tasks
|
||||
sdk_deploydir = Path(d.getVar("SDKDEPLOYDIR"))
|
||||
spdx_work_dir = Path(d.getVar('SPDXSDKWORK'))
|
||||
|
||||
oe.spdx30_tasks.create_sdk_sbom(d, sdk_deploydir, spdx_work_dir, d.getVar("TOOLCHAIN_OUTPUTNAME"))
|
||||
}
|
||||
|
||||
python sdk_ext_create_sbom() {
|
||||
from pathlib import Path
|
||||
import oe.spdx30_tasks
|
||||
sdk_deploydir = Path(d.getVar("SDKEXTDEPLOYDIR"))
|
||||
spdx_work_dir = Path(d.getVar('SPDXSDKEXTWORK'))
|
||||
|
||||
oe.spdx30_tasks.create_sdk_sbom(d, sdk_deploydir, spdx_work_dir, d.getVar("TOOLCHAINEXT_OUTPUTNAME"))
|
||||
}
|
||||
|
||||
13
meta/classes-recipe/nospdx.bbclass
Normal file
13
meta/classes-recipe/nospdx.bbclass
Normal file
@@ -0,0 +1,13 @@
|
||||
#
|
||||
# Copyright OpenEmbedded Contributors
|
||||
#
|
||||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
|
||||
deltask do_collect_spdx_deps
|
||||
deltask do_create_spdx
|
||||
deltask do_create_spdx_runtime
|
||||
deltask do_create_package_spdx
|
||||
deltask do_create_rootfs_spdx
|
||||
deltask do_create_image_spdx
|
||||
deltask do_create_image_sbom
|
||||
Reference in New Issue
Block a user