| Summary: | extensible sdk - generates empty manifests/needs file with what is installed | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Aníbal Limón <anibal.limon> | ||||||
| Component: | devtools / tool chain | Assignee: | Aníbal Limón <anibal.limon> | ||||||
| Status: | RESOLVED FIXED | QA Contact: | |||||||
| Severity: | normal | ||||||||
| Priority: | Medium+ | CC: | anibal.limon, benjamin.esquivel, bluelightning, liezhi.yang, meta.mr.watcher, meta.watcher, mikko.ylinen, randy.e.witt, richard.purdie | ||||||
| Version: | 2.0 | ||||||||
| Target Milestone: | 2.4 M1 | ||||||||
| Hardware: | All | ||||||||
| OS: | Multiple | ||||||||
| Whiteboard: | |||||||||
| OS type for building Yocto: | --- | Type of Regression: | --- | ||||||
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |||||||
| Bug Depends on: | |||||||||
| Bug Blocks: | 9090 | ||||||||
| Attachments: |
|
||||||||
|
Description
Aníbal Limón
2016-02-03 00:18:06 UTC
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 |