Skip to contentSkip to conversation

Extensible SDK fixes

PATCH New Paul Eggleton 1 participant 5 messages Jan 12, 2016

lore
Share & tools
lore
#0 lore raw

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
#1 lore raw

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
index 87fb767..984f538 100644
@@ -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
#2 lore raw

PATCH 2/4 classes/populate_sdk_ext: support auto.conf

In reply to Paul Eggleton

If 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
index 984f538..69e13ab 100644
@@ -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
#3 lore raw

PATCH 3/4 classes/buildhistory: save auto.conf and bblayers.conf for extensible SDK

In reply to Paul Eggleton

These 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
index 4153e58..2c144ab 100644
@@ -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
#4 lore raw

PATCH 4/4 classes/populate_sdk_ext: check that extensible SDK prepared correctly

In reply to Paul Eggleton

After 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
index 69e13ab..4d8d2a6 100644
@@ -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
deleted file mode 100644
index b3f5d93..0000000
@@ -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