Extensible SDK fixes
cover Extensible SDK fixes
The following changes since commit 541315d6c56df6448f64c262f99d43d5c1e9400b:
update_font_cache: only scan system font directories (2016-01-11 23:23:18 +0000)
are available in the git repository at:
git://git.openembedded.org/openembedded-core-contrib paule/extsdkfixes4-oe
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=paule/extsdkfixes4-oe
Paul Eggleton (4):
classes/populate_sdk_ext.bbclass: handle if local.conf doesn't end with a newline classes/populate_sdk_ext: support auto.conf
classes/buildhistory: save auto.conf and bblayers.conf for extensible SDK classes/populate_sdk_ext: check that extensible SDK prepared correctly
meta/classes/buildhistory.bbclass | 2 +- meta/classes/populate_sdk_ext.bbclass | 20 ++++++-- meta/files/ext-sdk-prepare.py | 92 +++++++++++++++++++++++++++++++++++ meta/files/ext-sdk-prepare.sh | 8 --- 4 files changed, 110 insertions(+), 12 deletions(-) create mode 100644 meta/files/ext-sdk-prepare.py delete mode 100644 meta/files/ext-sdk-prepare.sh
Signature · 1 line
2.5.0
PATCH 1/4 classes/populate_sdk_ext.bbclass: handle if local.conf doesn't end with a newline
If there is no newline at the end of local.conf, appending INHERIT = "uninative" won't work, it will corrupt the line and the installed eSDK will build things, making the "Preparing build system..." step take an age.
Fixes [YOCTO #8897].
--- meta/classes/populate_sdk_ext.bbclass | 2 ++ 1 file changed, 2 insertions(+)
meta/classes/populate_sdk_ext.bbclass +2 -0
@@ -142,6 +142,8 @@ python copy_buildsystem () { for line in newlines: if line.strip() and not line.startswith('#'): f.write(line) + # Write a newline just in case there's none at the end of the original + f.write('\n') f.write('INHERIT += "%s"\n\n' % 'uninative') f.write('CONF_VERSION = "%s"\n\n' % d.getVar('CONF_VERSION', False))
Signature · 1 line
2.5.0
PATCH 2/4 classes/populate_sdk_ext: support auto.conf
In reply to Paul EggletonIf auto.conf exists in the user's configuration we need to also run it through the same filter and write the result into the ext SDK, or we risk missing configuration applied on an autobuilder.
Fixes [YOCTO #8904].
--- meta/classes/populate_sdk_ext.bbclass | 13 +++++++++++++ 1 file changed, 13 insertions(+)
meta/classes/populate_sdk_ext.bbclass +13 -0
@@ -169,6 +169,19 @@ python copy_buildsystem () { f.write('require conf/locked-sigs.inc\n') + if os.path.exists(builddir + '/conf/auto.conf'): + with open(builddir + '/conf/auto.conf', 'r') as f: + oldlines = f.readlines() + (updated, newlines) = bb.utils.edit_metadata(oldlines, varlist, handle_var) + with open(baseoutpath + '/conf/auto.conf', 'w') as f: + f.write('# WARNING: this configuration has been automatically generated and in\n') + f.write('# most cases should not be edited. If you need more flexibility than\n') + f.write('# this configuration provides, it is strongly suggested that you set\n') + f.write('# up a proper instance of the full build system and use that instead.\n\n') + for line in newlines: + if line.strip() and not line.startswith('#'): + f.write(line) + sigfile = d.getVar('WORKDIR', True) + '/locked-sigs.inc' oe.copy_buildsystem.generate_locked_sigs(sigfile, d)
Signature · 1 line
2.5.0
PATCH 3/4 classes/buildhistory: save auto.conf and bblayers.conf for extensible SDK
In reply to Paul EggletonThese form part of the configuration for the extensible SDK, we should really be recording what goes into them.
--- meta/classes/buildhistory.bbclass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/classes/buildhistory.bbclass +1 -1
@@ -13,7 +13,7 @@ BUILDHISTORY_DIR_IMAGE = "${BUILDHISTORY_DIR}/images/${MACHINE_ARCH}/${TCLIBC}/$ BUILDHISTORY_DIR_PACKAGE = "${BUILDHISTORY_DIR}/packages/${MULTIMACH_TARGET_SYS}/${PN}" 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_SDK_FILES ?= "conf/local.conf conf/bblayers.conf conf/auto.conf conf/locked-sigs.inc conf/devtool.conf" BUILDHISTORY_COMMIT ?= "0" BUILDHISTORY_COMMIT_AUTHOR ?= "buildhistory <buildhistory@${DISTRO}>" BUILDHISTORY_PUSH_REPO ?= ""
Signature · 1 line
2.5.0
PATCH 4/4 classes/populate_sdk_ext: check that extensible SDK prepared correctly
In reply to Paul EggletonAfter the change to use --setscene-only when running bitbake to prepare the SDK at the end of installation, add a check that the SDK got prepared correctly by doing a dry-run and looking at the output for any real tasks that we don't expect. In order to make this easier, the preparation shell script was rewritten in python.
--- meta/classes/populate_sdk_ext.bbclass | 5 +- meta/files/ext-sdk-prepare.py | 92 +++++++++++++++++++++++++++++++++++ meta/files/ext-sdk-prepare.sh | 8 --- 3 files changed, 94 insertions(+), 11 deletions(-) create mode 100644 meta/files/ext-sdk-prepare.py delete mode 100644 meta/files/ext-sdk-prepare.sh
meta/classes/populate_sdk_ext.bbclass +2 -3
@@ -224,7 +224,7 @@ install_tools() { install ${SDK_DEPLOY}/${BUILD_ARCH}-nativesdk-libc.tar.bz2 ${SDK_OUTPUT}/${SDKPATH} - install -m 0755 ${COREBASE}/meta/files/ext-sdk-prepare.sh ${SDK_OUTPUT}/${SDKPATH} + install -m 0644 ${COREBASE}/meta/files/ext-sdk-prepare.py ${SDK_OUTPUT}/${SDKPATH} } # Since bitbake won't run as root it doesn't make sense to try and install
@@ -270,9 +270,8 @@ sdk_ext_postinst() { # current working directory when first ran, nor will it set $1 when # sourcing a script. That is why this has to look so ugly. LOGFILE="$target_sdk_dir/preparing_build_system.log" - sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && $target_sdk_dir/ext-sdk-prepare.sh $target_sdk_dir '${SDK_TARGETS}' >> $LOGFILE 2>&1" || { echo "ERROR: SDK preparation failed: see $LOGFILE"; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } + sh -c ". buildtools/environment-setup* > $LOGFILE && cd $target_sdk_dir/`dirname ${oe_init_build_env_path}` && set $target_sdk_dir && . $target_sdk_dir/${oe_init_build_env_path} $target_sdk_dir >> $LOGFILE && python $target_sdk_dir/ext-sdk-prepare.py '${SDK_TARGETS}' >> $LOGFILE 2>&1" || { echo "ERROR: SDK preparation failed: see $LOGFILE"; echo "printf 'ERROR: this SDK was not fully installed and needs reinstalling\n'" >> $env_setup_script ; exit 1 ; } fi - rm -f $target_sdk_dir/ext-sdk-prepare.sh echo done }
meta/files/ext-sdk-prepare.py new file +92 -0
92 lines not on this page · raw message
meta/files/ext-sdk-prepare.sh deleted +0 -8
@@ -1,8 +0,0 @@ -#!/bin/sh - -# Prepare the build system within the extensible SDK - -target_sdk_dir="$1" -sdk_targets="$2" - -bitbake $sdk_targets --setscene-only || exit 1
Signature · 1 line
2.5.0