* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.