* [PATCH 1/3] lib/oe/sdk: Add get_extra_sdk_info to reuse code in buildhistory
@ 2017-02-21 22:48 Francisco Pedraza
2017-02-21 22:48 ` [PATCH 2/3] meta/classes/populate_sdk_base: Only execute write manifest when is populate_sdk Francisco Pedraza
2017-02-21 22:48 ` [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest Francisco Pedraza
0 siblings, 2 replies; 6+ messages in thread
From: Francisco Pedraza @ 2017-02-21 22:48 UTC (permalink / raw)
To: openembedded-core; +Cc: Francisco Pedraza
This function is going to be used for generating the target and host manifest files packages for eSDK.
[YOCTO #9038]
Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com>
---
meta/classes/buildhistory.bbclass | 20 ++++++++------------
meta/lib/oe/sdk.py | 17 +++++++++++++++++
2 files changed, 25 insertions(+), 12 deletions(-)
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 7251a2c..b7130fe 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -550,23 +550,19 @@ END
python buildhistory_get_extra_sdkinfo() {
import operator
import math
+ # importing oe.sdk due package information req
+ from oe.sdk import get_extra_sdkinfo
+
if d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
- tasksizes = {}
- filesizes = {}
- for root, _, files in os.walk(d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')):
- 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 = tasksizes.get(task, 0)
- tasksizes[task] = origtotal + fsize
- filesizes[fn] = fsize
+ sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')
+ extra_info = get_extra_sdkinfo(sstate_dir)
+
with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-package-sizes.txt'), 'w') as f:
- filesizes_sorted = sorted(filesizes.items(), key=operator.itemgetter(1, 0), reverse=True)
+ filesizes_sorted = sorted(extra_info['filesizes'].items(), key=operator.itemgetter(1, 0), reverse=True)
for fn, size in filesizes_sorted:
f.write('%10d KiB %s\n' % (size, fn))
with open(d.expand('${BUILDHISTORY_DIR_SDK}/sstate-task-sizes.txt'), 'w') as f:
- tasksizes_sorted = sorted(tasksizes.items(), key=operator.itemgetter(1, 0), reverse=True)
+ tasksizes_sorted = sorted(extra_info['tasksizes'].items(), key=operator.itemgetter(1, 0), reverse=True)
for task, size in tasksizes_sorted:
f.write('%10d KiB %s\n' % (size, task))
}
diff --git a/meta/lib/oe/sdk.py b/meta/lib/oe/sdk.py
index fef02d0..4ce388f 100644
--- a/meta/lib/oe/sdk.py
+++ b/meta/lib/oe/sdk.py
@@ -371,5 +371,22 @@ def populate_sdk(d, manifest_dir=None):
os.environ.clear()
os.environ.update(env_bkp)
+def get_extra_sdkinfo(sstate_dir):
+ 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
+
if __name__ == "__main__":
pass
--
1.8.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] meta/classes/populate_sdk_base: Only execute write manifest when is populate_sdk
2017-02-21 22:48 [PATCH 1/3] lib/oe/sdk: Add get_extra_sdk_info to reuse code in buildhistory Francisco Pedraza
@ 2017-02-21 22:48 ` Francisco Pedraza
2017-02-21 22:48 ` [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest Francisco Pedraza
1 sibling, 0 replies; 6+ messages in thread
From: Francisco Pedraza @ 2017-02-21 22:48 UTC (permalink / raw)
To: openembedded-core; +Cc: Francisco Pedraza
This function is going to be used for generating the eSDK, however the
eSDK package information comes from sstate artifacts instead of package files.
[YOCTO #9038]
Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com>
---
meta/classes/populate_sdk_base.bbclass | 34 ++++++++++++++++++----------------
1 file changed, 18 insertions(+), 16 deletions(-)
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index dd3cac5..33665cd 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -60,14 +60,15 @@ SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
SDK_TARGET_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
SDK_HOST_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
python write_target_sdk_manifest () {
- from oe.sdk import sdk_list_installed_packages
- from oe.utils import format_pkg_list
- sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST"))
- pkgs = sdk_list_installed_packages(d, True)
- if not os.path.exists(sdkmanifestdir):
- bb.utils.mkdirhier(sdkmanifestdir)
- with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
- output.write(format_pkg_list(pkgs, 'ver'))
+ if d.getVar('BB_CURRENTTASK') == 'populate_sdk':
+ from oe.sdk import sdk_list_installed_packages
+ from oe.utils import format_pkg_list
+ sdkmanifestdir = os.path.dirname(d.getVar("SDK_TARGET_MANIFEST"))
+ pkgs = sdk_list_installed_packages(d, True)
+ if not os.path.exists(sdkmanifestdir):
+ bb.utils.mkdirhier(sdkmanifestdir)
+ with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
+ output.write(format_pkg_list(pkgs, 'ver'))
}
python write_sdk_test_data() {
@@ -78,14 +79,15 @@ python write_sdk_test_data() {
}
python write_host_sdk_manifest () {
- from oe.sdk import sdk_list_installed_packages
- from oe.utils import format_pkg_list
- sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST"))
- pkgs = sdk_list_installed_packages(d, False)
- if not os.path.exists(sdkmanifestdir):
- bb.utils.mkdirhier(sdkmanifestdir)
- with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
- output.write(format_pkg_list(pkgs, 'ver'))
+ if d.getVar('BB_CURRENTTASK') == 'populate_sdk':
+ from oe.sdk import sdk_list_installed_packages
+ from oe.utils import format_pkg_list
+ sdkmanifestdir = os.path.dirname(d.getVar("SDK_HOST_MANIFEST"))
+ pkgs = sdk_list_installed_packages(d, False)
+ if not os.path.exists(sdkmanifestdir):
+ bb.utils.mkdirhier(sdkmanifestdir)
+ with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
+ output.write(format_pkg_list(pkgs, 'ver'))
}
POPULATE_SDK_POST_TARGET_COMMAND_append = " write_target_sdk_manifest ; write_sdk_test_data ; "
--
1.8.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest
2017-02-21 22:48 [PATCH 1/3] lib/oe/sdk: Add get_extra_sdk_info to reuse code in buildhistory Francisco Pedraza
2017-02-21 22:48 ` [PATCH 2/3] meta/classes/populate_sdk_base: Only execute write manifest when is populate_sdk Francisco Pedraza
@ 2017-02-21 22:48 ` Francisco Pedraza
2017-02-21 23:07 ` Pedraza Gonzalez, Francisco J
2017-02-22 15:52 ` Joshua Lock
1 sibling, 2 replies; 6+ messages in thread
From: Francisco Pedraza @ 2017-02-21 22:48 UTC (permalink / raw)
To: openembedded-core; +Cc: Francisco Pedraza
This function writes on host and target manifest files for eSDK.
[YOCTO #9038]
Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com>
---
meta/classes/populate_sdk_base.bbclass | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 33665cd..db700d7 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -59,6 +59,9 @@ SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
SDK_TARGET_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
SDK_HOST_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
+SDK_EXT_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
+SDK_EXT_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
+
python write_target_sdk_manifest () {
if d.getVar('BB_CURRENTTASK') == 'populate_sdk':
from oe.sdk import sdk_list_installed_packages
@@ -69,6 +72,17 @@ python write_target_sdk_manifest () {
bb.utils.mkdirhier(sdkmanifestdir)
with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
output.write(format_pkg_list(pkgs, 'ver'))
+ elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
+ from oe.sdk import get_extra_sdkinfo
+ sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')
+ extra_info = get_extra_sdkinfo(sstate_dir)
+ target = d.getVar('TARGET_SYS')
+ target_multimach = d.getVar('MULTIMACH_TARGET_SYS')
+ with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f:
+ for fn in extra_info['filesizes']:
+ info = fn.split(':') #added
+ if info[2] in (target, target_multimach):
+ f.write("%s %s %s\n" % (info[1], info[2], info[3]))
}
python write_sdk_test_data() {
@@ -88,12 +102,22 @@ python write_host_sdk_manifest () {
bb.utils.mkdirhier(sdkmanifestdir)
with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
output.write(format_pkg_list(pkgs, 'ver'))
+ elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
+ from oe.sdk import get_extra_sdkinfo
+ sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')
+ extra_info = get_extra_sdkinfo(sstate_dir)
+ host = d.getVar('BUILD_SYS')
+ with open(d.getVar('SDK_EXT_HOST_MANIFEST'), 'w') as f:
+ for fn in extra_info['filesizes']:
+ info = fn.split(':') #added
+ if info[2] == host:
+ f.write("%s %s %s\n" % (info[1], info[2], info[3]))
}
POPULATE_SDK_POST_TARGET_COMMAND_append = " write_target_sdk_manifest ; write_sdk_test_data ; "
POPULATE_SDK_POST_HOST_COMMAND_append = " write_host_sdk_manifest; "
SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}"
-SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK_PACKAGING_COMMAND} "
+SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; write_target_sdk_manifest; write_host_sdk_manifest; ${SDK_PACKAGING_COMMAND} "
def populate_sdk_common(d):
from oe.sdk import populate_sdk
--
1.8.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest
2017-02-21 22:48 ` [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest Francisco Pedraza
@ 2017-02-21 23:07 ` Pedraza Gonzalez, Francisco J
2017-02-22 15:52 ` Joshua Lock
1 sibling, 0 replies; 6+ messages in thread
From: Pedraza Gonzalez, Francisco J @ 2017-02-21 23:07 UTC (permalink / raw)
To: openembedded-core
I tested this implementation and is writing the installed packages on host and target manifest properly.
https://bugzilla.yoctoproject.org/attachment.cgi?id=3639
https://bugzilla.yoctoproject.org/attachment.cgi?id=3638
Regards,
Francisco Pedraza
Open-source Technology Center
Yocto Project
-----Original Message-----
From: Pedraza Gonzalez, Francisco J
Sent: Tuesday, February 21, 2017 4:49 PM
To: openembedded-core@lists.openembedded.org
Cc: Pedraza Gonzalez, Francisco J <francisco.j.pedraza.gonzalez@intel.com>
Subject: [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest
This function writes on host and target manifest files for eSDK.
[YOCTO #9038]
Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.com>
---
meta/classes/populate_sdk_base.bbclass | 26 +++++++++++++++++++++++++-
1 file changed, 25 insertions(+), 1 deletion(-)
diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
index 33665cd..db700d7 100644
--- a/meta/classes/populate_sdk_base.bbclass
+++ b/meta/classes/populate_sdk_base.bbclass
@@ -59,6 +59,9 @@ SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or d.getVar('DISTRO')} SDK"
SDK_TARGET_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
SDK_HOST_MANIFEST = "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
+SDK_EXT_TARGET_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
+SDK_EXT_HOST_MANIFEST = "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
+
python write_target_sdk_manifest () {
if d.getVar('BB_CURRENTTASK') == 'populate_sdk':
from oe.sdk import sdk_list_installed_packages @@ -69,6 +72,17 @@ python write_target_sdk_manifest () {
bb.utils.mkdirhier(sdkmanifestdir)
with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
output.write(format_pkg_list(pkgs, 'ver'))
+ elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
+ from oe.sdk import get_extra_sdkinfo
+ sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')
+ extra_info = get_extra_sdkinfo(sstate_dir)
+ target = d.getVar('TARGET_SYS')
+ target_multimach = d.getVar('MULTIMACH_TARGET_SYS')
+ with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f:
+ for fn in extra_info['filesizes']:
+ info = fn.split(':') #added
+ if info[2] in (target, target_multimach):
+ f.write("%s %s %s\n" % (info[1], info[2], info[3]))
}
python write_sdk_test_data() {
@@ -88,12 +102,22 @@ python write_host_sdk_manifest () {
bb.utils.mkdirhier(sdkmanifestdir)
with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
output.write(format_pkg_list(pkgs, 'ver'))
+ elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
+ from oe.sdk import get_extra_sdkinfo
+ sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-cache')
+ extra_info = get_extra_sdkinfo(sstate_dir)
+ host = d.getVar('BUILD_SYS')
+ with open(d.getVar('SDK_EXT_HOST_MANIFEST'), 'w') as f:
+ for fn in extra_info['filesizes']:
+ info = fn.split(':') #added
+ if info[2] == host:
+ f.write("%s %s %s\n" % (info[1], info[2], info[3]))
}
POPULATE_SDK_POST_TARGET_COMMAND_append = " write_target_sdk_manifest ; write_sdk_test_data ; "
POPULATE_SDK_POST_HOST_COMMAND_append = " write_host_sdk_manifest; "
SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if '${SDK_PACKAGING_FUNC}' else ''}"
-SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; ${SDK_PACKAGING_COMMAND} "
+SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots; tar_sdk; write_target_sdk_manifest; write_host_sdk_manifest; ${SDK_PACKAGING_COMMAND} "
def populate_sdk_common(d):
from oe.sdk import populate_sdk
--
1.8.3.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest
2017-02-21 22:48 ` [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest Francisco Pedraza
2017-02-21 23:07 ` Pedraza Gonzalez, Francisco J
@ 2017-02-22 15:52 ` Joshua Lock
2017-02-22 16:18 ` Aníbal Limón
1 sibling, 1 reply; 6+ messages in thread
From: Joshua Lock @ 2017-02-22 15:52 UTC (permalink / raw)
To: Francisco Pedraza, openembedded-core
On Tue, 2017-02-21 at 14:48 -0800, Francisco Pedraza wrote:
> This function writes on host and target manifest files for eSDK.
> [YOCTO #9038]
>
> Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.
> com>
> ---
> meta/classes/populate_sdk_base.bbclass | 26
> +++++++++++++++++++++++++-
> 1 file changed, 25 insertions(+), 1 deletion(-)
>
> diff --git a/meta/classes/populate_sdk_base.bbclass
> b/meta/classes/populate_sdk_base.bbclass
> index 33665cd..db700d7 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -59,6 +59,9 @@ SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or
> d.getVar('DISTRO')} SDK"
>
> SDK_TARGET_MANIFEST =
> "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
> SDK_HOST_MANIFEST =
> "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
> +SDK_EXT_TARGET_MANIFEST =
> "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
> +SDK_EXT_HOST_MANIFEST =
> "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
> +
> python write_target_sdk_manifest () {
> if d.getVar('BB_CURRENTTASK') == 'populate_sdk':
> from oe.sdk import sdk_list_installed_packages
> @@ -69,6 +72,17 @@ python write_target_sdk_manifest () {
> bb.utils.mkdirhier(sdkmanifestdir)
> with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
> output.write(format_pkg_list(pkgs, 'ver'))
> + elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
Rather than checking which task is running like this couldn't we do the
following logic in the
populate_sdk_ext.bbclass:write_target_sdk_manifest() and similarly move
the above into populate_sdk.bbclass?
Joshua
> + from oe.sdk import get_extra_sdkinfo
> + sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-
> cache')
> + extra_info = get_extra_sdkinfo(sstate_dir)
> + target = d.getVar('TARGET_SYS')
> + target_multimach = d.getVar('MULTIMACH_TARGET_SYS')
> + with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f:
> + for fn in extra_info['filesizes']:
> + info = fn.split(':') #added
> + if info[2] in (target, target_multimach):
> + f.write("%s %s %s\n" % (info[1], info[2],
> info[3]))
> }
>
> python write_sdk_test_data() {
> @@ -88,12 +102,22 @@ python write_host_sdk_manifest () {
> bb.utils.mkdirhier(sdkmanifestdir)
> with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
> output.write(format_pkg_list(pkgs, 'ver'))
> + elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
> + from oe.sdk import get_extra_sdkinfo
> + sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-
> cache')
> + extra_info = get_extra_sdkinfo(sstate_dir)
> + host = d.getVar('BUILD_SYS')
> + with open(d.getVar('SDK_EXT_HOST_MANIFEST'), 'w') as f:
> + for fn in extra_info['filesizes']:
> + info = fn.split(':') #added
> + if info[2] == host:
> + f.write("%s %s %s\n" % (info[1], info[2],
> info[3]))
> }
>
> POPULATE_SDK_POST_TARGET_COMMAND_append = "
> write_target_sdk_manifest ; write_sdk_test_data ; "
> POPULATE_SDK_POST_HOST_COMMAND_append = " write_host_sdk_manifest; "
> SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if
> '${SDK_PACKAGING_FUNC}' else ''}"
> -SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots;
> tar_sdk; ${SDK_PACKAGING_COMMAND} "
> +SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots;
> tar_sdk; write_target_sdk_manifest; write_host_sdk_manifest;
> ${SDK_PACKAGING_COMMAND} "
>
> def populate_sdk_common(d):
> from oe.sdk import populate_sdk
> --
> 1.8.3.1
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest
2017-02-22 15:52 ` Joshua Lock
@ 2017-02-22 16:18 ` Aníbal Limón
0 siblings, 0 replies; 6+ messages in thread
From: Aníbal Limón @ 2017-02-22 16:18 UTC (permalink / raw)
To: Joshua Lock, Francisco Pedraza, openembedded-core
[-- Attachment #1: Type: text/plain, Size: 4047 bytes --]
On 02/22/2017 09:52 AM, Joshua Lock wrote:
> On Tue, 2017-02-21 at 14:48 -0800, Francisco Pedraza wrote:
>> This function writes on host and target manifest files for eSDK.
>> [YOCTO #9038]
>>
>> Signed-off-by: Francisco Pedraza <francisco.j.pedraza.gonzalez@intel.
>> com>
>> ---
>> meta/classes/populate_sdk_base.bbclass | 26
>> +++++++++++++++++++++++++-
>> 1 file changed, 25 insertions(+), 1 deletion(-)
>>
>> diff --git a/meta/classes/populate_sdk_base.bbclass
>> b/meta/classes/populate_sdk_base.bbclass
>> index 33665cd..db700d7 100644
>> --- a/meta/classes/populate_sdk_base.bbclass
>> +++ b/meta/classes/populate_sdk_base.bbclass
>> @@ -59,6 +59,9 @@ SDK_TITLE ?= "${@d.getVar('DISTRO_NAME') or
>> d.getVar('DISTRO')} SDK"
>>
>> SDK_TARGET_MANIFEST =
>> "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.target.manifest"
>> SDK_HOST_MANIFEST =
>> "${SDKDEPLOYDIR}/${TOOLCHAIN_OUTPUTNAME}.host.manifest"
>> +SDK_EXT_TARGET_MANIFEST =
>> "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.target.manifest"
>> +SDK_EXT_HOST_MANIFEST =
>> "${SDK_DEPLOY}/${TOOLCHAINEXT_OUTPUTNAME}.host.manifest"
>> +
>> python write_target_sdk_manifest () {
>> if d.getVar('BB_CURRENTTASK') == 'populate_sdk':
>> from oe.sdk import sdk_list_installed_packages
>> @@ -69,6 +72,17 @@ python write_target_sdk_manifest () {
>> bb.utils.mkdirhier(sdkmanifestdir)
>> with open(d.getVar('SDK_TARGET_MANIFEST'), 'w') as output:
>> output.write(format_pkg_list(pkgs, 'ver'))
>> + elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
>
> Rather than checking which task is running like this couldn't we do the
> following logic in the
> populate_sdk_ext.bbclass:write_target_sdk_manifest() and similarly move
> the above into populate_sdk.bbclass?
Yes, that would be a good idea.
alimon
>
> Joshua
>> + from oe.sdk import get_extra_sdkinfo
>> + sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-
>> cache')
>> + extra_info = get_extra_sdkinfo(sstate_dir)
>> + target = d.getVar('TARGET_SYS')
>> + target_multimach = d.getVar('MULTIMACH_TARGET_SYS')
>> + with open(d.getVar('SDK_EXT_TARGET_MANIFEST'), 'w') as f:
>> + for fn in extra_info['filesizes']:
>> + info = fn.split(':') #added
>> + if info[2] in (target, target_multimach):
>> + f.write("%s %s %s\n" % (info[1], info[2],
>> info[3]))
>> }
>>
>> python write_sdk_test_data() {
>> @@ -88,12 +102,22 @@ python write_host_sdk_manifest () {
>> bb.utils.mkdirhier(sdkmanifestdir)
>> with open(d.getVar('SDK_HOST_MANIFEST'), 'w') as output:
>> output.write(format_pkg_list(pkgs, 'ver'))
>> + elif d.getVar('BB_CURRENTTASK') == 'populate_sdk_ext':
>> + from oe.sdk import get_extra_sdkinfo
>> + sstate_dir = d.expand('${SDK_OUTPUT}/${SDKPATH}/sstate-
>> cache')
>> + extra_info = get_extra_sdkinfo(sstate_dir)
>> + host = d.getVar('BUILD_SYS')
>> + with open(d.getVar('SDK_EXT_HOST_MANIFEST'), 'w') as f:
>> + for fn in extra_info['filesizes']:
>> + info = fn.split(':') #added
>> + if info[2] == host:
>> + f.write("%s %s %s\n" % (info[1], info[2],
>> info[3]))
>> }
>>
>> POPULATE_SDK_POST_TARGET_COMMAND_append = "
>> write_target_sdk_manifest ; write_sdk_test_data ; "
>> POPULATE_SDK_POST_HOST_COMMAND_append = " write_host_sdk_manifest; "
>> SDK_PACKAGING_COMMAND = "${@'${SDK_PACKAGING_FUNC};' if
>> '${SDK_PACKAGING_FUNC}' else ''}"
>> -SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots;
>> tar_sdk; ${SDK_PACKAGING_COMMAND} "
>> +SDK_POSTPROCESS_COMMAND = " create_sdk_files; check_sdk_sysroots;
>> tar_sdk; write_target_sdk_manifest; write_host_sdk_manifest;
>> ${SDK_PACKAGING_COMMAND} "
>>
>> def populate_sdk_common(d):
>> from oe.sdk import populate_sdk
>> --
>> 1.8.3.1
>>
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-02-22 16:15 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-21 22:48 [PATCH 1/3] lib/oe/sdk: Add get_extra_sdk_info to reuse code in buildhistory Francisco Pedraza
2017-02-21 22:48 ` [PATCH 2/3] meta/classes/populate_sdk_base: Only execute write manifest when is populate_sdk Francisco Pedraza
2017-02-21 22:48 ` [PATCH 3/3] classes/populate_sdk_base: Adds support to generate extensible sdk package manifest Francisco Pedraza
2017-02-21 23:07 ` Pedraza Gonzalez, Francisco J
2017-02-22 15:52 ` Joshua Lock
2017-02-22 16:18 ` Aníbal Limón
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.