* [PATCH 0/2] SDK-related fixes for buildhistory
@ 2015-12-22 2:41 Paul Eggleton
2015-12-22 2:41 ` [PATCH 1/2] buildhistory: fix not recording SDK information Paul Eggleton
2015-12-22 2:41 ` [PATCH 2/2] buildhistory: improve support for extensible SDK Paul Eggleton
0 siblings, 2 replies; 4+ messages in thread
From: Paul Eggleton @ 2015-12-22 2:41 UTC (permalink / raw)
To: openembedded-core
Fix a general regression in recording SDK information that happened
during the jethro timeframe, and improve what we record for the
extensible SDK.
The following changes since commit 2a1edfd9cfa16ec334c0758b47677d4fee5e79a8:
bitbake.conf: Add filename and lineno to BB_SIGNATURE_EXCLUDE_FLAGS (2015-12-22 00:01:31 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/buildhistory-sdk-fix
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/buildhistory-sdk-fix
Paul Eggleton (2):
buildhistory: fix not recording SDK information
buildhistory: improve support for extensible SDK
meta/classes/buildhistory.bbclass | 41 ++++++++++++++++++++++++++++++++---
meta/classes/populate_sdk_ext.bbclass | 3 +++
2 files changed, 41 insertions(+), 3 deletions(-)
--
2.5.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/2] buildhistory: fix not recording SDK information
2015-12-22 2:41 [PATCH 0/2] SDK-related fixes for buildhistory Paul Eggleton
@ 2015-12-22 2:41 ` Paul Eggleton
2015-12-22 4:48 ` Paul Eggleton
2015-12-22 2:41 ` [PATCH 2/2] buildhistory: improve support for extensible SDK Paul Eggleton
1 sibling, 1 reply; 4+ messages in thread
From: Paul Eggleton @ 2015-12-22 2:41 UTC (permalink / raw)
To: openembedded-core
After OE-Core revision baa4e43a29e45df17eaa3456acc179b08d571db6 we lost
recording SDK the contents in buildhistory. This was due to the
SDK_POSTPROCESS_COMMAND variable being set with = in
populate_sdk_base.bbclass which overwrote any value set with += in
buildhistory.bbclass; to fix it, use _append in buildhistory.bbclass
instead.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
meta/classes/buildhistory.bbclass | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index 6023e5d..c0dba59 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -532,7 +532,7 @@ POPULATE_SDK_POST_TARGET_COMMAND_append = " buildhistory_list_installed_sdk_targ
POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;\
buildhistory_get_sdk_installed_host ; "
-SDK_POSTPROCESS_COMMAND += "buildhistory_get_sdkinfo ; "
+SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; "
def buildhistory_get_build_id(d):
if d.getVar('BB_WORKERCONTEXT', True) != '1':
--
2.5.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/2] buildhistory: improve support for extensible SDK
2015-12-22 2:41 [PATCH 0/2] SDK-related fixes for buildhistory Paul Eggleton
2015-12-22 2:41 ` [PATCH 1/2] buildhistory: fix not recording SDK information Paul Eggleton
@ 2015-12-22 2:41 ` Paul Eggleton
1 sibling, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2015-12-22 2:41 UTC (permalink / raw)
To: openembedded-core
* Ensure extensible SDK and standard SDK go into their own directories
* Record extra extensible SDK variables
* Write sstate-package-sizes.txt and sstate-task-sizes.txt files so you
can analyse the size of the contents
* Add BUILDHISTORY_SDK_FILES (similar to BUILDHISTORY_IMAGE_FILES) and
default it to pick up config files installed in the extensible SDK
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
meta/classes/buildhistory.bbclass | 41 ++++++++++++++++++++++++++++++++---
meta/classes/populate_sdk_ext.bbclass | 3 +++
2 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index c0dba59..943c8d7 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -11,8 +11,9 @@ BUILDHISTORY_FEATURES ?= "image package sdk"
BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}"
-BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}/${IMAGE_BASENAME}"
+BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}${SDK_EXT}/${IMAGE_BASENAME}"
BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
+BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/locked-sigs.inc conf/devtool.conf"
BUILDHISTORY_COMMIT ?= "0"
BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
BUILDHISTORY_PUSH_REPO ?= ""
@@ -510,6 +511,15 @@ buildhistory_get_sdkinfo() {
buildhistory_list_files ${SDK_OUTPUT} ${BUILDHISTORY_DIR_SDK}/files-in-sdk.txt
+ # Collect files requested in BUILDHISTORY_SDK_FILES
+ rm -rf ${BUILDHISTORY_DIR_SDK}/sdk-files
+ for f in ${BUILDHISTORY_SDK_FILES}; do
+ if [ -f ${SDK_OUTPUT}/${SDKPATH}/$f ] ; then
+ mkdir -p ${BUILDHISTORY_DIR_SDK}/sdk-files/`dirname $f`
+ cp ${SDK_OUTPUT}/${SDKPATH}/$f ${BUILDHISTORY_DIR_SDK}/sdk-files/$f
+ fi
+ done
+
# Record some machine-readable meta-information about the SDK
printf "" > ${BUILDHISTORY_DIR_SDK}/sdk-info.txt
cat >> ${BUILDHISTORY_DIR_SDK}/sdk-info.txt <<END
@@ -519,6 +529,29 @@ END
echo "SDKSIZE = $sdksize" >> ${BUILDHISTORY_DIR_SDK}/sdk-info.txt
}
+python buildhistory_get_extra_sdkinfo() {
+ import operator
+ if d.getVar('BB_CURRENTTASK', True) == 'populate_sdk_ext':
+ tasksizes = {}
+ filesizes = {}
+ for root, _, files in os.walk('${SDK_OUTPUT}/${SDKPATH}/sstate-cache'):
+ for fn in files:
+ if fn.endswith('.tgz'):
+ fsize = os.path.getsize(os.path.join(root, fn))
+ task = fn.rsplit(':', 1)[1].split('_', 1)[1].split('.')[0]
+ origtotal = tasksizes.get(task, 0)
+ tasksizes[task] = origtotal + fsize
+ filesizes[fn] = fsize
+ with open('${BUILDHISTORY_DIR_SDK}/sstate-package-sizes.txt', 'w') as f:
+ filesizes_sorted = sorted(filesizes.items(), key=operator.itemgetter(1), reverse=True)
+ for fn, size in filesizes_sorted:
+ f.write('%10d KiB %s\n' % (size, fn))
+ with open('${BUILDHISTORY_DIR_SDK}/sstate-task-sizes.txt', 'w') as f:
+ tasksizes_sorted = sorted(tasksizes.items(), key=operator.itemgetter(1), reverse=True)
+ for task, size in tasksizes_sorted:
+ f.write('%10d KiB %s\n' % (size, task))
+}
+
# By using ROOTFS_POSTUNINSTALL_COMMAND we get in after uninstallation of
# unneeded packages but before the removal of packaging files
ROOTFS_POSTUNINSTALL_COMMAND += " buildhistory_list_installed_image ;\
@@ -532,7 +565,7 @@ POPULATE_SDK_POST_TARGET_COMMAND_append = " buildhistory_list_installed_sdk_targ
POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;\
buildhistory_get_sdk_installed_host ; "
-SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; "
+SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; buildhistory_get_extra_sdkinfo; "
def buildhistory_get_build_id(d):
if d.getVar('BB_WORKERCONTEXT', True) != '1':
@@ -584,7 +617,9 @@ def buildhistory_get_sdkvars(d):
if d.getVar('BB_WORKERCONTEXT', True) != '1':
return ""
sdkvars = "DISTRO DISTRO_VERSION SDK_NAME SDK_VERSION SDKMACHINE SDKIMAGE_FEATURES BAD_RECOMMENDATIONS NO_RECOMMENDATIONS PACKAGE_EXCLUDE"
- listvars = "SDKIMAGE_FEATURES BAD_RECOMMENDATIONS PACKAGE_EXCLUDE"
+ if d.getVar('BB_CURRENTTASK', True) == 'populate_sdk_ext':
+ sdkvars += " SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST SDK_UPDATE_URL"
+ listvars = "SDKIMAGE_FEATURES BAD_RECOMMENDATIONS PACKAGE_EXCLUDE SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST"
return outputvars(sdkvars, listvars, d)
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index 802cbe1..7163b99 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -15,6 +15,9 @@ SDK_RDEPENDS_append_task-populate-sdk-ext = " ${SDK_TARGETS}"
SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext = "0"
+SDK_EXT = ""
+SDK_EXT_task-populate-sdk-ext = "-ext"
+
SDK_LOCAL_CONF_WHITELIST ?= ""
SDK_LOCAL_CONF_BLACKLIST ?= "CONF_VERSION BB_NUMBER_THREADS PARALLEL_MAKE PRSERV_HOST"
SDK_INHERIT_BLACKLIST ?= "buildhistory icecc"
--
2.5.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 1/2] buildhistory: fix not recording SDK information
2015-12-22 2:41 ` [PATCH 1/2] buildhistory: fix not recording SDK information Paul Eggleton
@ 2015-12-22 4:48 ` Paul Eggleton
0 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2015-12-22 4:48 UTC (permalink / raw)
To: openembedded-core
On Tue, 22 Dec 2015 15:41:27 Paul Eggleton wrote:
> After OE-Core revision baa4e43a29e45df17eaa3456acc179b08d571db6 we lost
> recording SDK the contents in buildhistory. This was due to the
> SDK_POSTPROCESS_COMMAND variable being set with = in
> populate_sdk_base.bbclass which overwrote any value set with += in
> buildhistory.bbclass; to fix it, use _append in buildhistory.bbclass
> instead.
>
> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
I neglected to note this fixes bug 8839 - I've re-pushed the branch with the
commit message updated.
Cheers,
Paul
--
Paul Eggleton
Intel Open Source Technology Centre
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-12-22 4:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-22 2:41 [PATCH 0/2] SDK-related fixes for buildhistory Paul Eggleton
2015-12-22 2:41 ` [PATCH 1/2] buildhistory: fix not recording SDK information Paul Eggleton
2015-12-22 4:48 ` Paul Eggleton
2015-12-22 2:41 ` [PATCH 2/2] buildhistory: improve support for extensible SDK Paul Eggleton
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.