summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorHongxu Jia <hongxu.jia@windriver.com>2024-10-29 22:07:43 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2024-11-01 12:07:12 +0000
commit8f4759806ee868a32a063943059345641eb26f22 (patch)
treeb089368474236cc82d71a569ff14e705b334f887 /meta/classes
parent29c65baf76f54258ab40b75c6ad205a3ebd06316 (diff)
downloadpoky-8f4759806ee868a32a063943059345641eb26f22.tar.gz
create-spdx-{2.2,3.0}: fix do_create_spdx dependency while spdx include sources
Call function ${@create_spdx_source_deps(d)} or ${create_spdx_source_deps(d)} along with addtask not working, use task do_create_spdx flag 'depends' to instead Move function create_spdx_source_deps to spdx-common.bbclass for both of create-spdx-2.2.bbclass and create-spdx-3.0.bbclass (From OE-Core rev: dda4b7ccd416ef370634babd150e944f2aa9116e) Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com> Reviewed-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/create-spdx-2.2.bbclass5
-rw-r--r--meta/classes/create-spdx-3.0.bbclass19
-rw-r--r--meta/classes/spdx-common.bbclass21
3 files changed, 29 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
585do_create_spdx[dirs] = "${SPDXWORK}" 585do_create_spdx[dirs] = "${SPDXWORK}"
586do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}" 586do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}"
587do_create_spdx[depends] += "${PATCHDEPENDENCY}" 587do_create_spdx[depends] += " \
588 ${PATCHDEPENDENCY} \
589 ${@create_spdx_source_deps(d)} \
590"
588 591
589python do_create_runtime_spdx() { 592python 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
138def 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
151SSTATETASKS += "do_create_spdx" 137SSTATETASKS += "do_create_spdx"
152do_create_spdx[sstate-inputdirs] = "${SPDXDEPLOY}" 138do_create_spdx[sstate-inputdirs] = "${SPDXDEPLOY}"
153do_create_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}" 139do_create_spdx[sstate-outputdirs] = "${DEPLOY_DIR_SPDX}"
@@ -159,7 +145,10 @@ addtask do_create_spdx_setscene
159 145
160do_create_spdx[dirs] = "${SPDXWORK}" 146do_create_spdx[dirs] = "${SPDXWORK}"
161do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}" 147do_create_spdx[cleandirs] = "${SPDXDEPLOY} ${SPDXWORK}"
162do_create_spdx[depends] += "${PATCHDEPENDENCY}" 148do_create_spdx[depends] += " \
149 ${PATCHDEPENDENCY} \
150 ${@create_spdx_source_deps(d)} \
151"
163 152
164python do_create_package_spdx() { 153python 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
40SPDX_MULTILIB_SSTATE_ARCHS ??= "${SSTATE_ARCHS}" 40SPDX_MULTILIB_SSTATE_ARCHS ??= "${SSTATE_ARCHS}"
41 41
42def 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
42python do_collect_spdx_deps() { 63python 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