Currently when execute populate_sdk_ext it's generate a empty target manifest and a host manifest only with buildtools. We need to give information about what is provided/to install in the extensible SDK because another components needs that info. May be not in the form of manifest but we need another file. For example the SDK compatibility test suite executes tests based on what SDK provide/install the eSDK and now that information isn't provided.
Well today, one year ago this one was raised . . .................() ..........()...._||_....() ......()._||_(........)_||_.() ....._||_(..................)_||_ ...(_____________________________) I am working on it.
As suggested by Anibal, I just added INHERIT+="buildhistory" BUILDHISTORY_COMMIT = "1" to conf/local.conf to check what information displays. After that $ bitbake core-image-minimal -c populate_sdk_ext
I created a function at oe.sdk called get_extra_sdkinfo Inside get_extra_sdkinfo I am doind the following: import operator import math extra_info = {} extra_info['tasksizes'] = {} extra_info['filesizes'] = {} for root, _, files in os.walk(sstate_dir): for fn in files: if fn.endswith('.tgz'): fsize = int(math.ceil(float(os.path.getsize(os.path.join(root, fn))) / 1024)) task = fn.rsplit(':',1)[1].split('_',1)[1].split(',')[0] origtotal = extra_info['tasksizes'].get(task, 0) extra_info['tasksizes'][task] = origtotal + fsize extra_info['filesizes'][fn] = fsize return extra_info I added a validation at python write_target_sdk_manifest{ if d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext' then I import the get_extra_sdkinfo in order to write at sstate_dir the content to the variable SDK_EXT_TARGET_MANIFEST. I do the same for python write_sdk_test_data() { but for this case I copare with BB_CURRENTTASK d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext': and write conent to SDK_EXT_HOST_MANIFEST Right now is getting an error and I am working on it.
Created attachment 3638 [details] target manifest logs
Created attachment 3639 [details] host manifest log
Sent three patches to open embedded lists: 1 - lib/oe/sdk: Add get_extra_sdk_info to reuse code in build history [1] This function is going to be used for generating the target and host manifest files packages for eSDK. 2 - meta/classes/populate_sdk_base: Only execute write manifest when is populate_sdk [2] This function is going to be used for generating the eSDK, however the eSDK package information comes from sstate artifacts instead of package files. 3 - Adds support to generate extensible sdk package manifest This function writes on host and target manifest files for eSDK. [3] [1] - http://lists.openembedded.org/pipermail/openembedded-core/2017-February/133110.html [2] - http://lists.openembedded.org/pipermail/openembedded-core/2017-February/133109.html [3] - http://lists.openembedded.org/pipermail/openembedded-core/2017-February/133111.html Currently I tested this implementation and is displaying the installed packages on eSDK properly. I already attached the logs.
Added update due feedback. Add get_extra_sdk_info to reuse code in buildhistory [1] This function is going to be used for generating the target and host manifest files packages for eSDK. Adds support for generating eSDK manifest files [2] The functionalities to generate SDK and eSDK manifest files are different, the SDK comes from package information and the eSDK comes from sstate artifacts. Only execute write_sdk_{host, target}_manifest when is on populate_sdk class. Adds new functions write_sdk{host, target}_ext_manifest to execute on postprocess in populate_sdk_ext because at the end we have all the sstate artifacts to generate the manifest. 1 - http://lists.openembedded.org/pipermail/openembedded-core/2017-February/133257.html 2 - http://lists.openembedded.org/pipermail/openembedded-core/2017-February/133258.html
Patch is sent, I will move to M4 due delay in revision.
Updated version of the fix sent: 1- http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137867.html 2- http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137870.html 3- http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137868.html Waiting for approval
(In reply to comment #9) > Updated version of the fix sent: > 1- > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137867. > html > 2- > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137870. > html > 3- > http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137868. > html > > Waiting for approval 4- http://lists.openembedded.org/pipermail/openembedded-core/2017-June/137866.html
Waiting for integration, moved to M2.
Merged: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=08a4705af9cc677b32fd6489e67f86f7e9d6e92c http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=1b804d7944f3f2bfe9a414b045f313a0e1bff817
the manifest is empty with '-c populate_sdk_ext' too (set to blocked by bug #11741)
(In reply to comment #13) > the manifest is empty with '-c populate_sdk_ext' too (set to blocked by bug > #11741) When the SDK is constructed with minimal type no toolchain or other sstate components are within, so for run tests needs to be in full mode. See explanation at, https://bugzilla.yoctoproject.org/show_bug.cgi?id=11741#c12 Cheers, Anibal