diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/classes/create-spdx-2.2.bbclass | 5 | ||||
| -rw-r--r-- | meta/classes/create-spdx-3.0.bbclass | 19 | ||||
| -rw-r--r-- | meta/classes/spdx-common.bbclass | 21 | ||||
| -rw-r--r-- | meta/lib/oe/spdx_common.py | 4 |
4 files changed, 33 insertions, 16 deletions
diff --git a/meta/classes/create-spdx-2.2.bbclass b/meta/classes/create-spdx-2.2.bbclass index cd1d6819bf..27242ecf70 100644 --- a/meta/classes/create-spdx-2.2.bbclass +++ b/meta/classes/create-spdx-2.2.bbclass | |||
| @@ -584,7 +584,10 @@ addtask do_create_spdx_setscene | |||
| 584 | 584 | ||
| 585 | do_create_spdx[dirs] = "${SPDXWORK}" | 585 | do_create_spdx[dirs] = "${SPDXWORK}" |
| 586 | do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}" | 586 | do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}" |
| 587 | do_create_spdx[depends] += "${PATCHDEPENDENCY}" | 587 | do_create_spdx[depends] += " \ |
| 588 | ${PATCHDEPENDENCY} \ | ||
| 589 | ${@create_spdx_source_deps(d)} \ | ||
| 590 | " | ||
| 588 | 591 | ||
| 589 | python do_create_runtime_spdx() { | 592 | python do_create_runtime_spdx() { |
| 590 | from datetime import datetime, timezone | 593 | from datetime import datetime, timezone |
diff --git a/meta/classes/create-spdx-3.0.bbclass b/meta/classes/create-spdx-3.0.bbclass index 5f0590198f..bc23d2d211 100644 --- a/meta/classes/create-spdx-3.0.bbclass +++ b/meta/classes/create-spdx-3.0.bbclass | |||
| @@ -132,22 +132,8 @@ addtask do_create_spdx after \ | |||
| 132 | do_collect_spdx_deps \ | 132 | do_collect_spdx_deps \ |
| 133 | do_deploy_source_date_epoch \ | 133 | do_deploy_source_date_epoch \ |
| 134 | do_populate_sysroot do_package do_packagedata \ | 134 | do_populate_sysroot do_package do_packagedata \ |
| 135 | ${create_spdx_source_deps(d)} \ | ||
| 136 | before do_populate_sdk do_populate_sdk_ext do_build do_rm_work | 135 | before do_populate_sdk do_populate_sdk_ext do_build do_rm_work |
| 137 | 136 | ||
| 138 | def create_spdx_source_deps(d): | ||
| 139 | deps = [] | ||
| 140 | if d.getVar("SPDX_INCLUDE_SOURCES") == "1": | ||
| 141 | deps.extend([ | ||
| 142 | # do_unpack is a hack for now; we only need it to get the | ||
| 143 | # dependencies do_unpack already has so we can extract the source | ||
| 144 | # ourselves | ||
| 145 | "do_unpack", | ||
| 146 | # For kernel source code | ||
| 147 | "do_shared_workdir", | ||
| 148 | ]) | ||
| 149 | return " ".join(deps) | ||
| 150 | |||
| 151 | SSTATETASKS += "do_create_spdx" | 137 | SSTATETASKS += "do_create_spdx" |
| 152 | do_create_spdx[sstate-inputdirs] = "${SPDXDEPLOY}" | 138 | do_create_spdx[sstate-inputdirs] = "${SPDXDEPLOY}" |
| 153 | do_create_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}" | 139 | do_create_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}" |
| @@ -159,7 +145,10 @@ addtask do_create_spdx_setscene | |||
| 159 | 145 | ||
| 160 | do_create_spdx[dirs] = "${SPDXWORK}" | 146 | do_create_spdx[dirs] = "${SPDXWORK}" |
| 161 | do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}" | 147 | do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}" |
| 162 | do_create_spdx[depends] += "${PATCHDEPENDENCY}" | 148 | do_create_spdx[depends] += " \ |
| 149 | ${PATCHDEPENDENCY} \ | ||
| 150 | ${@create_spdx_source_deps(d)} \ | ||
| 151 | " | ||
| 163 | 152 | ||
| 164 | python do_create_package_spdx() { | 153 | python do_create_package_spdx() { |
| 165 | import oe.spdx30_tasks | 154 | import oe.spdx30_tasks |
diff --git a/meta/classes/spdx-common.bbclass b/meta/classes/spdx-common.bbclass index cd9cc0db98..ad02da5cd6 100644 --- a/meta/classes/spdx-common.bbclass +++ b/meta/classes/spdx-common.bbclass | |||
| @@ -39,6 +39,27 @@ SPDX_CUSTOM_ANNOTATION_VARS ??= "" | |||
| 39 | 39 | ||
| 40 | SPDX_MULTILIB_SSTATE_ARCHS ??= "${SSTATE_ARCHS}" | 40 | SPDX_MULTILIB_SSTATE_ARCHS ??= "${SSTATE_ARCHS}" |
| 41 | 41 | ||
| 42 | def create_spdx_source_deps(d): | ||
| 43 | import oe.spdx_common | ||
| 44 | |||
| 45 | deps = [] | ||
| 46 | if d.getVar("SPDX_INCLUDE_SOURCES") == "1": | ||
| 47 | pn = d.getVar('PN') | ||
| 48 | # do_unpack is a hack for now; we only need it to get the | ||
| 49 | # dependencies do_unpack already has so we can extract the source | ||
| 50 | # ourselves | ||
| 51 | if oe.spdx_common.has_task(d, "do_unpack"): | ||
| 52 | deps.append("%s:do_unpack" % pn) | ||
| 53 | |||
| 54 | if oe.spdx_common.is_work_shared_spdx(d) and \ | ||
| 55 | oe.spdx_common.process_sources(d): | ||
| 56 | # For kernel source code | ||
| 57 | if oe.spdx_common.has_task(d, "do_shared_workdir"): | ||
| 58 | deps.append("%s:do_shared_workdir" % pn) | ||
| 59 | |||
| 60 | return " ".join(deps) | ||
| 61 | |||
| 62 | |||
| 42 | python do_collect_spdx_deps() { | 63 | python do_collect_spdx_deps() { |
| 43 | # This task calculates the build time dependencies of the recipe, and is | 64 | # This task calculates the build time dependencies of the recipe, and is |
| 44 | # required because while a task can deptask on itself, those dependencies | 65 | # required because while a task can deptask on itself, those dependencies |
diff --git a/meta/lib/oe/spdx_common.py b/meta/lib/oe/spdx_common.py index 1ea55419ae..7a85579f64 100644 --- a/meta/lib/oe/spdx_common.py +++ b/meta/lib/oe/spdx_common.py | |||
| @@ -226,6 +226,10 @@ def get_patched_src(d): | |||
| 226 | d.setVar("WORKDIR", workdir) | 226 | d.setVar("WORKDIR", workdir) |
| 227 | 227 | ||
| 228 | 228 | ||
| 229 | def has_task(d, task): | ||
| 230 | return bool(d.getVarFlag(task, "task", False)) and not bool(d.getVarFlag(task, "noexec", False)) | ||
| 231 | |||
| 232 | |||
| 229 | def fetch_data_to_uri(fd, name): | 233 | def fetch_data_to_uri(fd, name): |
| 230 | """ | 234 | """ |
| 231 | Translates a bitbake FetchData to a string URI | 235 | Translates a bitbake FetchData to a string URI |
