diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2015-12-21 09:55:39 +1300 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2015-12-28 09:25:17 +0000 |
commit | 35bd2544eced75a916c9a8fb4ebc9b5c3607776b (patch) | |
tree | 39ffa6e10cc8deebd21d90e07f8f3acc13a11bbf | |
parent | ea0abcdd17debeda43307cebab1ebf8bfe272e6a (diff) | |
download | poky-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>
-rw-r--r-- | meta/classes/buildhistory.bbclass | 41 | ||||
-rw-r--r-- | 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 c0dba59436..943c8d7d0c 100644 --- a/meta/classes/buildhistory.bbclass +++ b/meta/classes/buildhistory.bbclass | |||
@@ -11,8 +11,9 @@ BUILDHISTORY_FEATURES ?= "image package sdk" | |||
11 | BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" | 11 | BUILDHISTORY_DIR ?= "${TOPDIR}/buildhistory" |
12 | BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" | 12 | BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/${IMAGE_BASENAME}" |
13 | BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" | 13 | BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" |
14 | BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}/${IMAGE_BASENAME}" | 14 | BUILDHISTORY_DIR_SDK = "${BUILDHISTORY_DIR}/sdk/${SDK_NAME}${SDK_EXT}/${IMAGE_BASENAME}" |
15 | BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group" | 15 | BUILDHISTORY_IMAGE_FILES ?= "/etc/passwd /etc/group" |
16 | BUILDHISTORY_SDK_FILES ?= "conf/local.conf conf/locked-sigs.inc conf/devtool.conf" | ||
16 | BUILDHISTORY_COMMIT ?= "0" | 17 | BUILDHISTORY_COMMIT ?= "0" |
17 | BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" | 18 | BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" |
18 | BUILDHISTORY_PUSH_REPO ?= "" | 19 | BUILDHISTORY_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 | ||
532 | python 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 |
524 | ROOTFS_POSTUNINSTALL_COMMAND += " buildhistory_list_installed_image ;\ | 557 | ROOTFS_POSTUNINSTALL_COMMAND += " buildhistory_list_installed_image ;\ |
@@ -532,7 +565,7 @@ POPULATE_SDK_POST_TARGET_COMMAND_append = " buildhistory_list_installed_sdk_targ | |||
532 | POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;\ | 565 | POPULATE_SDK_POST_HOST_COMMAND_append = " buildhistory_list_installed_sdk_host ;\ |
533 | buildhistory_get_sdk_installed_host ; " | 566 | buildhistory_get_sdk_installed_host ; " |
534 | 567 | ||
535 | SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; " | 568 | SDK_POSTPROCESS_COMMAND_append = " buildhistory_get_sdkinfo ; buildhistory_get_extra_sdkinfo; " |
536 | 569 | ||
537 | def buildhistory_get_build_id(d): | 570 | def 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 | ||
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass index 85bbaa505c..c30181ab4d 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}" | |||
15 | 15 | ||
16 | SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext = "0" | 16 | SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext = "0" |
17 | 17 | ||
18 | SDK_EXT = "" | ||
19 | SDK_EXT_task-populate-sdk-ext = "-ext" | ||
20 | |||
18 | SDK_LOCAL_CONF_WHITELIST ?= "" | 21 | SDK_LOCAL_CONF_WHITELIST ?= "" |
19 | SDK_LOCAL_CONF_BLACKLIST ?= "CONF_VERSION BB_NUMBER_THREADS PARALLEL_MAKE PRSERV_HOST" | 22 | SDK_LOCAL_CONF_BLACKLIST ?= "CONF_VERSION BB_NUMBER_THREADS PARALLEL_MAKE PRSERV_HOST" |
20 | SDK_INHERIT_BLACKLIST ?= "buildhistory icecc" | 23 | SDK_INHERIT_BLACKLIST ?= "buildhistory icecc" |