image/core-image: Handle conflicting IMAGE_FEATURES.
IMAGE_FEATURES such as 'ssh-server-dropbear' and 'ssh-server-openssh' can't be both enabled. User can use the following variables to define the relationship of image features: IMAGE_FEATURES_REPLACES_foo = "bar" means including image feature "foo" would replace the image feature "bar". IMAGE_FEATURES_CONFLICTS_foo = "bar" means including both image features "foo" and "bar" would cause an parsing error. (From OE-Core rev: e36d12a9c1cf69540079e48a1dfadbc343758e48) Signed-off-by: Lianhao Lu <lianhao.lu@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
6121186ff9
commit
286b2666dc
|
@ -47,6 +47,14 @@ PACKAGE_GROUP_ssh-server-openssh = "task-core-ssh-openssh"
|
||||||
PACKAGE_GROUP_package-management = "${ROOTFS_PKGMANAGE}"
|
PACKAGE_GROUP_package-management = "${ROOTFS_PKGMANAGE}"
|
||||||
PACKAGE_GROUP_qt4-pkgs = "task-core-qt-demos"
|
PACKAGE_GROUP_qt4-pkgs = "task-core-qt-demos"
|
||||||
|
|
||||||
|
|
||||||
|
# IMAGE_FEAETURES_REPLACES_foo = 'bar1 bar2'
|
||||||
|
# Including image feature foo would replace the image features bar1 and bar2
|
||||||
|
IMAGE_FEATURES_REPLACES_ssh-server-openssh = "ssh-server-dropbear"
|
||||||
|
|
||||||
|
# IMAGE_FEATURES_CONFLICTS_foo = 'bar1 bar2'
|
||||||
|
# An error exception would be raised if both image features foo and bar1(or bar2) are included
|
||||||
|
|
||||||
CORE_IMAGE_BASE_INSTALL = '\
|
CORE_IMAGE_BASE_INSTALL = '\
|
||||||
task-core-boot \
|
task-core-boot \
|
||||||
task-base-extended \
|
task-base-extended \
|
||||||
|
@ -60,7 +68,8 @@ IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
|
||||||
|
|
||||||
X11_IMAGE_FEATURES = "x11-base apps-x11-core package-management"
|
X11_IMAGE_FEATURES = "x11-base apps-x11-core package-management"
|
||||||
ENHANCED_IMAGE_FEATURES = "${X11_IMAGE_FEATURES} apps-x11-games apps-x11-pimlico package-management"
|
ENHANCED_IMAGE_FEATURES = "${X11_IMAGE_FEATURES} apps-x11-games apps-x11-pimlico package-management"
|
||||||
SATO_IMAGE_FEATURES = "${ENHANCED_IMAGE_FEATURES} x11-sato ssh-server-dropbear"
|
SSHSERVER_IMAGE_FEATURES ??= "ssh-server-dropbear"
|
||||||
|
SATO_IMAGE_FEATURES = "${ENHANCED_IMAGE_FEATURES} x11-sato ${SSHSERVER_IMAGE_FEATURES}"
|
||||||
|
|
||||||
inherit image
|
inherit image
|
||||||
|
|
||||||
|
|
|
@ -94,6 +94,23 @@ python () {
|
||||||
deps += " %s:do_populate_sysroot" % dep
|
deps += " %s:do_populate_sysroot" % dep
|
||||||
d.appendVarFlag('do_build', 'depends', deps)
|
d.appendVarFlag('do_build', 'depends', deps)
|
||||||
|
|
||||||
|
#process IMAGE_FEATURES, we must do this before runtime_mapping_rename
|
||||||
|
#Check for replaces image features
|
||||||
|
features = set(oe.data.typed_value('IMAGE_FEATURES', d))
|
||||||
|
remain_features = features.copy()
|
||||||
|
for feature in features:
|
||||||
|
replaces = set((d.getVar("IMAGE_FEATURES_REPLACES_%s" % feature, True) or "").split())
|
||||||
|
remain_features -= replaces
|
||||||
|
|
||||||
|
#Check for conflict image features
|
||||||
|
for feature in remain_features:
|
||||||
|
conflicts = set((d.getVar("IMAGE_FEATURES_CONFLICTS_%s" % feature, True) or "").split())
|
||||||
|
temp = conflicts & remain_features
|
||||||
|
if temp:
|
||||||
|
bb.fatal("%s contains conflicting IMAGE_FEATURES %s %s" % (d.getVar('PN', True), feature, ' '.join(list(temp))))
|
||||||
|
|
||||||
|
d.setVar('IMAGE_FEATURES', ' '.join(list(remain_features)))
|
||||||
|
|
||||||
# If we don't do this we try and run the mapping hooks while parsing which is slow
|
# If we don't do this we try and run the mapping hooks while parsing which is slow
|
||||||
# bitbake should really provide something to let us know this...
|
# bitbake should really provide something to let us know this...
|
||||||
if d.getVar('BB_WORKERCONTEXT', True) is not None:
|
if d.getVar('BB_WORKERCONTEXT', True) is not None:
|
||||||
|
|
|
@ -8,6 +8,8 @@ form a standalone SDK."
|
||||||
IMAGE_FEATURES += "apps-console-core ${SATO_IMAGE_FEATURES} dev-pkgs tools-sdk qt4-pkgs"
|
IMAGE_FEATURES += "apps-console-core ${SATO_IMAGE_FEATURES} dev-pkgs tools-sdk qt4-pkgs"
|
||||||
EXTRA_IMAGE_FEATURES += "tools-debug tools-profile tools-testapps debug-tweaks"
|
EXTRA_IMAGE_FEATURES += "tools-debug tools-profile tools-testapps debug-tweaks"
|
||||||
|
|
||||||
|
SSHSERVER_IMAGE_FEATURES = "ssh-server-openssh"
|
||||||
|
|
||||||
LICENSE = "MIT"
|
LICENSE = "MIT"
|
||||||
|
|
||||||
inherit core-image
|
inherit core-image
|
||||||
|
|
Loading…
Reference in New Issue