[OE-core] [PATCH V2 1/1] populate_sdk_ext: set noexec flag for some tasks

Randy Witt randy.e.witt at linux.intel.com
Thu May 14 16:49:50 UTC 2015


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 <Qi.Chen at windriver.com>
> ---
>   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,
>




More information about the Openembedded-core mailing list