summaryrefslogtreecommitdiffstats
path: root/meta/classes/buildhistory.bbclass
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2015-12-21 09:55:39 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2015-12-28 09:25:17 +0000
commit35bd2544eced75a916c9a8fb4ebc9b5c3607776b (patch)
tree39ffa6e10cc8deebd21d90e07f8f3acc13a11bbf /meta/classes/buildhistory.bbclass
parentea0abcdd17debeda43307cebab1ebf8bfe272e6a (diff)
downloadpoky-35bd2544eced75a916c9a8fb4ebc9b5c3607776b.tar.gz
buildhistory: improve support for extensible SDK
* 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 (From OE-Core rev: 5f87ff116d9ccd5e95e638dfa84583169a3f99f3) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/buildhistory.bbclass')
-rw-r--r--meta/classes/buildhistory.bbclass41
1 files changed, 38 insertions, 3 deletions
diff --git a/meta/classes/buildhistory.bbclass b/meta/classes/buildhistory.bbclass
index c0dba59436..943c8d7d0c 100644
--- a/meta/classes/buildhistory.bbclass
+++ b/meta/classes/buildhistory.bbclass
@@ -11,8 +11,9 @@ BUILDHISTORY_FEATURES ?= "image package sdk"
11BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" 11BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory"
12BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" 12BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}"
13BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" 13BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}"
14BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}/${IMAGE_BASENAME}" 14BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}${SDK_EXT}/${IMAGE_BASENAME}"
15BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group" 15BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group"
16BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/locked-sigs.inc conf/devtool.conf"
16BUILDHISTORY_COMMIT ?= "0" 17BUILDHISTORY_COMMIT ?= "0"
17BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" 18BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>"
18BUILDHISTORY_PUSH_REPO ?= "" 19BUILDHISTORY_PUSH_REPO ?= ""
@@ -510,6 +511,15 @@ buildhistory_get_sdkinfo() {
510 511
511 buildhistory_list_files ${SDK_OUTPUT} ${BUILDHISTORY_DIR_SDK}/files-in-sdk.txt 512 buildhistory_list_files ${SDK_OUTPUT} ${BUILDHISTORY_DIR_SDK}/files-in-sdk.txt
512 513
514 # Collect files requested in BUILDHISTORY_SDK_FILES
515 rm -rf ${BUILDHISTORY_DIR_SDK}/sdk-files
516 for f in ${BUILDHISTORY_SDK_FILES}; do
517 if [ -f ${SDK_OUTPUT}/${SDKPATH}/$f ] ; then
518 mkdir -p ${BUILDHISTORY_DIR_SDK}/sdk-files/`dirname $f`
519 cp ${SDK_OUTPUT}/${SDKPATH}/$f ${BUILDHISTORY_DIR_SDK}/sdk-files/$f
520 fi
521 done
522
513 # Record some machine-readable meta-information about the SDK 523 # Record some machine-readable meta-information about the SDK
514 printf "" > ${BUILDHISTORY_DIR_SDK}/sdk-info.txt 524 printf "" > ${BUILDHISTORY_DIR_SDK}/sdk-info.txt
515 cat >> ${BUILDHISTORY_DIR_SDK}/sdk-info.txt <<END 525 cat >> ${BUILDHISTORY_DIR_SDK}/sdk-info.txt <<END
@@ -519,6 +529,29 @@ END
519 echo "SDKSIZE = $sdksize" >> ${BUILDHISTORY_DIR_SDK}/sdk-info.txt 529 echo "SDKSIZE = $sdksize" >> ${BUILDHISTORY_DIR_SDK}/sdk-info.txt
520} 530}
521 531
532python buildhistory_get_extra_sdkinfo() {
533 import operator
534 if d.getVar('BB_CURRENTTASK', True) == 'populate_sdk_ext':
535 tasksizes = {}
536 filesizes = {}
537 for root, _, files in os.walk('${SDK_OUTPUT}/${SDKPATH}/sstate-cache'):
538 for fn in files:
539 if fn.endswith('.tgz'):
540 fsize = os.path.getsize(os.path.join(root, fn))
541 task = fn.rsplit(':', 1)[1].split('_', 1)[1].split('.')[0]
542 origtotal = tasksizes.get(task, 0)
543 tasksizes[task] = origtotal + fsize
544 filesizes[fn] = fsize
545 with open('${BUILDHISTORY_DIR_SDK}/sstate-package-sizes.txt', 'w') as f:
546 filesizes_sorted = sorted(filesizes.items(), key=operator.itemgetter(1), reverse=True)
547 for fn, size in filesizes_sorted:
548 f.write('%10d KiB %s\n' % (size, fn))
549 with open('${BUILDHISTORY_DIR_SDK}/sstate-task-sizes.txt', 'w') as f:
550 tasksizes_sorted = sorted(tasksizes.items(), key=operator.itemgetter(1), reverse=True)
551 for task, size in tasksizes_sorted:
552 f.write('%10d KiB %s\n' % (size, task))
553}
554
522# By using ROOTFS_POSTUNINSTALL_COMMAND we get in after uninstallation of 555# By using ROOTFS_POSTUNINSTALL_COMMAND we get in after uninstallation of
523# unneeded packages but before the removal of packaging files 556# unneeded packages but before the removal of packaging files
524ROOTFS_POSTUNINSTALL_COMMAND += " buildhistory_list_installed_image ;\ 557ROOTFS_POSTUNINSTALL_COMMAND += " buildhistory_list_installed_image ;\
@@ -532,7 +565,7 @@ POPULATE_SDK_POST_TARGET_COMMAND_append = " buildhistory_list_installed_sdk_targ
532POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;\ 565POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;\
533 buildhistory_get_sdk_installed_host ; " 566 buildhistory_get_sdk_installed_host ; "
534 567
535SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; " 568SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; buildhistory_get_extra_sdkinfo; "
536 569
537def buildhistory_get_build_id(d): 570def buildhistory_get_build_id(d):
538 if d.getVar('BB_WORKERCONTEXT', True) != '1': 571 if d.getVar('BB_WORKERCONTEXT', True) != '1':
@@ -584,7 +617,9 @@ def buildhistory_get_sdkvars(d):
584 if d.getVar('BB_WORKERCONTEXT', True) != '1': 617 if d.getVar('BB_WORKERCONTEXT', True) != '1':
585 return "" 618 return ""
586 sdkvars = "DISTRO DISTRO_VERSION SDK_NAME SDK_VERSION SDKMACHINE SDKIMAGE_FEATURES BAD_RECOMMENDATIONS NO_RECOMMENDATIONS PACKAGE_EXCLUDE" 619 sdkvars = "DISTRO DISTRO_VERSION SDK_NAME SDK_VERSION SDKMACHINE SDKIMAGE_FEATURES BAD_RECOMMENDATIONS NO_RECOMMENDATIONS PACKAGE_EXCLUDE"
587 listvars = "SDKIMAGE_FEATURES BAD_RECOMMENDATIONS PACKAGE_EXCLUDE" 620 if d.getVar('BB_CURRENTTASK', True) == 'populate_sdk_ext':
621 sdkvars += " SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST SDK_UPDATE_URL"
622 listvars = "SDKIMAGE_FEATURES BAD_RECOMMENDATIONS PACKAGE_EXCLUDE SDK_LOCAL_CONF_WHITELIST SDK_LOCAL_CONF_BLACKLIST SDK_INHERIT_BLACKLIST"
588 return outputvars(sdkvars, listvars, d) 623 return outputvars(sdkvars, listvars, d)
589 624
590 625