diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2013-05-09 17:24:25 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-05-12 09:37:20 +0100 |
commit | 8d25442ab795ff0f8e072da2022108eff128e2b2 (patch) | |
tree | 494391064705aedf6ea10adb2e2e1339bdb9fea1 /meta/classes/image.bbclass | |
parent | 89be8aa7c6d49c6372df687798d006d8cfe12943 (diff) | |
download | openembedded-core-8d25442ab795ff0f8e072da2022108eff128e2b2.tar.gz openembedded-core-8d25442ab795ff0f8e072da2022108eff128e2b2.tar.bz2 openembedded-core-8d25442ab795ff0f8e072da2022108eff128e2b2.zip |
classes/image: show an error on invalid IMAGE_FEATURES
If the user specifies an invalid feature in IMAGE_FEATURES, show an
error during parsing. Valid IMAGE_FEATURES are drawn from
PACKAGE_GROUP_ definitions, COMPLEMENTARY_GLOBS and a new 'validitems'
varflag on IMAGE_FEATURES (so that additional non-package group features
can be added elsewhere.)
Implements [YOCTO #3308].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Diffstat (limited to 'meta/classes/image.bbclass')
-rw-r--r-- | meta/classes/image.bbclass | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass index 251bc9abfd..2b42e123ed 100644 --- a/meta/classes/image.bbclass +++ b/meta/classes/image.bbclass @@ -19,6 +19,7 @@ INHIBIT_DEFAULT_DEPS = "1" # IMAGE_FEATURES may contain any available package group IMAGE_FEATURES ?= "" IMAGE_FEATURES[type] = "list" +IMAGE_FEATURES[validitems] += "debug-tweaks read-only-rootfs" # rootfs bootstrap install ROOTFS_BOOTSTRAP_INSTALL = "${@base_contains("IMAGE_FEATURES", "package-management", "", "${ROOTFS_PKGMANAGE_BOOTSTRAP}",d)}" @@ -62,6 +63,19 @@ IMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("IMAGE_FEATURES", d)}' SDKIMAGE_FEATURES ??= "dev-pkgs dbg-pkgs" SDKIMAGE_INSTALL_COMPLEMENTARY = '${@complementary_globs("SDKIMAGE_FEATURES", d)}' +def check_image_features(d): + valid_features = (d.getVarFlag('IMAGE_FEATURES', 'validitems', True) or "").split() + valid_features += d.getVarFlags('COMPLEMENTARY_GLOB').keys() + for var in d: + if var.startswith("PACKAGE_GROUP_"): + valid_features.append(var[14:]) + valid_features.sort() + + features = set(oe.data.typed_value('IMAGE_FEATURES', d)) + for feature in features: + if feature not in valid_features: + bb.fatal("'%s' in IMAGE_FEATURES is not a valid image feature. Valid features: %s" % (feature, ' '.join(valid_features))) + IMAGE_INSTALL ?= "" IMAGE_INSTALL[type] = "list" export PACKAGE_INSTALL ?= "${IMAGE_INSTALL} ${ROOTFS_BOOTSTRAP_INSTALL} ${FEATURE_INSTALL}" @@ -129,6 +143,8 @@ python () { vendor = localdata.getVar("TARGET_VENDOR_virtclass-multilib-" + eext[1], False) ml_vendor_list += " " + vendor d.setVar('MULTILIB_VENDORS', ml_vendor_list) + + check_image_features(d) } # |