On 05/13/2015 07:19 PM, Chen Qi wrote:
For the SDK, what we are interested in is the sysroot part. So the
only useful task is do_populate_sysroot. Other tasks like do_package
don't need to run. So mark them as 'noexec' for SDK.

This would result in two benefits:
1) The size of extensible SDK is larged reduced. For example, extensible
    SDK for core-image-minimal is reduced from 1.8G to 793M.
2) The installation time is reduced as a lot of tasks are not run.

[YOCTO #7590]

Signed-off-by: Chen Qi <[email protected]>
---
  meta/classes/populate_sdk_ext.bbclass | 12 +++++++++++-
  1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/meta/classes/populate_sdk_ext.bbclass 
b/meta/classes/populate_sdk_ext.bbclass
index dc2c58e..6c265b8 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -141,8 +141,18 @@ python copy_buildsystem () {
      sigfile = d.getVar('WORKDIR', True) + '/locked-sigs.inc'
      oe.copy_buildsystem.generate_locked_sigs(sigfile, d)

+    # Mark tasks to be 'noexec' for the SDK as we only need the sysroot part
+    base_class_path = os.path.join(baseoutpath, core_meta_subdir, 'classes', 
'base.bbclass')

Qi, I don't like the idea of modifying the source that is copied into the sdk. Also, this will continue to persist if the user ever wants to start generating images.

Ideally, we would only modify the behavior while setting up the sdk. And then the behavior afterward would remain as when using a regular bitbake workspace.

+    if os.path.exists(base_class_path):
+        with open(base_class_path, 'a') as f:
+            noexec_tasks = ['do_package', 'do_packagedata', 'do_package_qa', 
'do_package_write_rpm',
+                            'do_package_write_ipk', 'do_package_write_deb', 
'do_deploy', 'do_populate_lic',
+                            'do_rootfs']
+            for t in noexec_tasks:
+                f.write('%s[noexec] = "1"\n' % t)
+
      # Filter the locked signatures file to just the sstate tasks we are 
interested in
-    allowed_tasks = ['do_populate_lic', 'do_populate_sysroot', 
'do_packagedata', 'do_package_write_ipk', 'do_package_write_rpm', 
'do_package_write_deb', 'do_package_qa', 'do_deploy']
+    allowed_tasks = ['do_populate_sysroot']
      excluded_targets = d.getVar('SDK_TARGETS', True)
      lockedsigs_pruned = baseoutpath + '/conf/locked-sigs.inc'
      oe.copy_buildsystem.prune_lockedsigs(allowed_tasks,


--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to