* [PATCH 0/3] eSDK fixes
@ 2017-02-06 20:30 Paul Eggleton
2017-02-06 20:30 ` [PATCH 1/3] classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETS Paul Eggleton
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Paul Eggleton @ 2017-02-06 20:30 UTC (permalink / raw)
To: openembedded-core
Task dependency fixes for the extensible SDK.
NOTE: two of these patches depend upon the patch I just sent to
bitbake-devel adding bb.build.tasksbetween().
The following changes since commit b3a74335e1f9701ce2d6217080800baf3a61acb4:
Revert "yocto-bsps: add 4.9 bbappend" (2017-02-06 14:45:48 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/esdk-fixes4
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=paule/esdk-fixes4
Paul Eggleton (3):
classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETS
classes/patch: switch to new bb.build.tasksbetween() function
classes/populate_sdk_ext: account for custom image tasks
meta/classes/patch.bbclass | 20 +-------------------
meta/classes/populate_sdk_ext.bbclass | 10 ++++++----
2 files changed, 7 insertions(+), 23 deletions(-)
--
2.9.3
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETS
2017-02-06 20:30 [PATCH 0/3] eSDK fixes Paul Eggleton
@ 2017-02-06 20:30 ` Paul Eggleton
2017-02-06 20:30 ` [PATCH 2/3] classes/patch: switch to new bb.build.tasksbetween() function Paul Eggleton
2017-02-06 20:30 ` [PATCH 3/3] classes/populate_sdk_ext: account for custom image tasks Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2017-02-06 20:30 UTC (permalink / raw)
To: openembedded-core
Up until recently it was possible to set SDK_TARGETS to include a native
recipe you wanted installed into the sysroot when installing the eSDK.
I'm not sure what happened but now when you try to add a native recipe
to SDK_TARGETS you get a missing task error because this recipe has no
do_package_write_* task. Of course such a task dependency is erroneous
and is apparently caused by setting SDK_RDEPENDS. I've checked and it
turns out that we no longer need to set SDK_RDEPENDS anyway (probably
because we explicitly set up task dependencies further down in the
class, which I don't think we were fully doing in early versions of the
eSDK). Thus, drop setting this variable to restore the functionality.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
meta/classes/populate_sdk_ext.bbclass | 2 --
1 file changed, 2 deletions(-)
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index 9517111..4eda06b 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -11,8 +11,6 @@ TOOLCHAIN_HOST_TASK_task-populate-sdk-ext = " \
TOOLCHAIN_TARGET_TASK_task-populate-sdk-ext = ""
-SDK_RDEPENDS_append_task-populate-sdk-ext = " ${SDK_TARGETS}"
-
SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext = "0"
SDK_EXT = ""
--
2.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] classes/patch: switch to new bb.build.tasksbetween() function
2017-02-06 20:30 [PATCH 0/3] eSDK fixes Paul Eggleton
2017-02-06 20:30 ` [PATCH 1/3] classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETS Paul Eggleton
@ 2017-02-06 20:30 ` Paul Eggleton
2017-02-06 20:30 ` [PATCH 3/3] classes/populate_sdk_ext: account for custom image tasks Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2017-02-06 20:30 UTC (permalink / raw)
To: openembedded-core
A generic version of the code to work out the tasks between two
tasks (based on the code here) has been added to bb.build, so use that
instead.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
meta/classes/patch.bbclass | 20 +-------------------
1 file changed, 1 insertion(+), 19 deletions(-)
diff --git a/meta/classes/patch.bbclass b/meta/classes/patch.bbclass
index d0806bc..8f35cb4 100644
--- a/meta/classes/patch.bbclass
+++ b/meta/classes/patch.bbclass
@@ -12,25 +12,7 @@ inherit terminal
python () {
if d.getVar('PATCHTOOL') == 'git' and d.getVar('PATCH_COMMIT_FUNCTIONS') == '1':
- tasks = list(filter(lambda k: d.getVarFlag(k, "task"), d.keys()))
- extratasks = []
- def follow_chain(task, endtask, chain=None):
- if not chain:
- chain = []
- chain.append(task)
- for othertask in tasks:
- if othertask == task:
- continue
- if task == endtask:
- for ctask in chain:
- if ctask not in extratasks:
- extratasks.append(ctask)
- else:
- deps = d.getVarFlag(othertask, 'deps', False)
- if task in deps:
- follow_chain(othertask, endtask, chain)
- chain.pop()
- follow_chain('do_unpack', 'do_patch')
+ extratasks = bb.build.tasksbetween('do_unpack', 'do_patch', d)
try:
extratasks.remove('do_unpack')
except ValueError:
--
2.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] classes/populate_sdk_ext: account for custom image tasks
2017-02-06 20:30 [PATCH 0/3] eSDK fixes Paul Eggleton
2017-02-06 20:30 ` [PATCH 1/3] classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETS Paul Eggleton
2017-02-06 20:30 ` [PATCH 2/3] classes/patch: switch to new bb.build.tasksbetween() function Paul Eggleton
@ 2017-02-06 20:30 ` Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2017-02-06 20:30 UTC (permalink / raw)
To: openembedded-core
Any custom tasks that were added on the image between do_image_complete
and do_build were not being taken into account. Use the newly added
bb.build.tasksbetween() function to take care of that.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
meta/classes/populate_sdk_ext.bbclass | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index 4eda06b..95b3d23 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -45,8 +45,10 @@ def get_sdk_install_targets(d, images_only=False):
sdk_install_targets = d.getVar('SDK_TARGETS')
depd = d.getVar('BB_TASKDEPDATA', False)
+ tasklist = bb.build.tasksbetween('do_image_complete', 'do_build', d)
+ tasklist.remove('do_build')
for v in depd.values():
- if v[1] == 'do_image_complete':
+ if v[1] in tasklist:
if v[0] not in sdk_install_targets:
sdk_install_targets += ' {}'.format(v[0])
@@ -630,7 +632,9 @@ def get_ext_sdk_depends(d):
deps = d.getVarFlag('do_image_complete', 'deps', False)
pn = d.getVar('PN')
deplist = ['%s:%s' % (pn, dep) for dep in deps]
- for task in ['do_image_complete', 'do_rootfs', 'do_build']:
+ tasklist = bb.build.tasksbetween('do_image_complete', 'do_build', d)
+ tasklist.append('do_rootfs')
+ for task in tasklist:
deplist.extend((d.getVarFlag(task, 'depends') or '').split())
return ' '.join(deplist)
--
2.9.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-02-06 20:30 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-06 20:30 [PATCH 0/3] eSDK fixes Paul Eggleton
2017-02-06 20:30 ` [PATCH 1/3] classes/populate_sdk_ext: remove unnecessary dependencies breaking SDK_TARGETS Paul Eggleton
2017-02-06 20:30 ` [PATCH 2/3] classes/patch: switch to new bb.build.tasksbetween() function Paul Eggleton
2017-02-06 20:30 ` [PATCH 3/3] classes/populate_sdk_ext: account for custom image tasks Paul Eggleton
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox