Openembedded Core Discussions
 help / color / mirror / Atom feed
* [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