summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChen Qi <Qi.Chen@windriver.com>2015-04-29 13:39:10 +0800
committerChen Qi <Qi.Chen@windriver.com>2015-05-12 14:17:00 +0800
commit3b8fb9213491e3563be55245dc62f95aed82b491 (patch)
tree6a2a15cd0335e18b190d611e8b14ed3b20e044c7
parent3030d69a4aa172f6af394a142075414bba95e61d (diff)
downloadopenembedded-core-contrib-ChenQi/populate_sdk_ext_2_fixes.tar.gz
openembedded-core-contrib-ChenQi/populate_sdk_ext_2_fixes.tar.bz2
openembedded-core-contrib-ChenQi/populate_sdk_ext_2_fixes.zip
populate_sdk_ext: consider custom configuration in local.confChenQi/populate_sdk_ext_2_fixes
Copy the contents of local.conf under TOPDIR into the final generated local.conf. In this way, custom settings are also made into the final local.conf like IMAGE_INSTALL, DISTRO_FEATURES, VIRTUAL-RUNTIME_xxx, etc. Before this change, installing extensible SDK would usually report failure when preparing the build system if the user has custom configuration for DISTRO_FEATURES in local.conf. Also, items in IMAGE_INSTALL_append in local.conf also don't get built correctly. This patch solves the above problem. A blacklist mechanism is also introduced so that we can blacklist variables that should not be copied into the final local.conf file. Currently, the blacklist contains 'TMPDIR', 'SSTATE_DIR', 'DL_DIR', 'STAMPS_DIR', 'BASE_WORKDIR' and 'DEPLOY_DIR'. What these variables have in common is that they are set in bitbake.conf using '?=' or '??='. In addition, we check to avoid any setting that might lead to host path bleeding into SDK's configuration. [YOCTO #7616] Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-rw-r--r--meta/classes/populate_sdk_ext.bbclass23
1 files changed, 23 insertions, 0 deletions
diff --git a/meta/classes/populate_sdk_ext.bbclass b/meta/classes/populate_sdk_ext.bbclass
index 2fc4c11730..49ba26b738 100644
--- a/meta/classes/populate_sdk_ext.bbclass
+++ b/meta/classes/populate_sdk_ext.bbclass
@@ -16,6 +16,7 @@ SDK_RDEPENDS_append_task-populate-sdk-ext = " ${SDK_TARGETS}"
SDK_RELOCATE_AFTER_INSTALL_task-populate-sdk-ext = "0"
SDK_META_CONF_WHITELIST ?= "MACHINE DISTRO PACKAGE_CLASSES"
+SDK_META_CONF_BLACKLIST ?= "TMPDIR DL_DIR SSTATE_DIR STAMPS_DIR BASE_WORKDIR DEPLOY_DIR"
SDK_TARGETS ?= "${PN}"
OE_INIT_ENV_SCRIPT ?= "oe-init-build-env"
@@ -114,6 +115,28 @@ python copy_buildsystem () {
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')
+ # Copy configurations from the current local.conf
+ builddir = d.getVar('TOPDIR', True)
+ with open(builddir + '/conf/local.conf', 'r') as lf:
+ varblacklist = d.getVar('SDK_META_CONF_BLACKLIST', True).split()
+ skip = False
+ for line in lf:
+ line = line.lstrip()
+ if line.startswith('#'):
+ continue
+ # avoid host path bleeding into SDK configuration
+ if line.find('"/') != -1:
+ continue
+ for varname in varblacklist:
+ if line.startswith(varname):
+ skip = True
+ break
+ if not skip:
+ f.write(line)
+ skip = False
+ f.write('\n')
+
+ # Configurations in local.conf which are specific for extensible SDK
f.write('INHERIT += "%s"\n\n' % 'uninative')
f.write('CONF_VERSION = "%s"\n\n' % d.getVar('CONF_VERSION'))