image-container.bbclass: Error if not using linux-dummy

In the typical case of a container, the user doesn't particularly care
about the kernel version used. Since using linux-dummy prevents building
a kernel in the most common case, alert the user if they choose a
container image, but don't also specify linux-dummy.

In the cases the user actually does want to build against particular
kernel headers, etc, they can override by setting
IMAGE_CONTAINER_NO_DUMMY = "1".

[YOCTO #9502]

(From OE-Core rev: f0645e172bb839803d616f19307e1e81e0d204c0)

Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Randy Witt 2017-01-18 10:31:51 -08:00 committed by Richard Purdie
parent 1b8f485c24
commit 5da9c1c38b
1 changed files with 18 additions and 0 deletions

View File

@ -1,3 +1,21 @@
ROOTFS_BOOTSTRAP_INSTALL = ""
IMAGE_TYPES_MASKED += "container"
IMAGE_TYPEDEP_container = "tar.bz2"
python __anonymous() {
if "container" in d.getVar("IMAGE_FSTYPES") and \
d.getVar("IMAGE_CONTAINER_NO_DUMMY") != "1" and \
"linux-dummy" not in d.getVar("PREFERRED_PROVIDER_virtual/kernel"):
msg = '"container" is in IMAGE_FSTYPES, but ' \
'PREFERRED_PROVIDER_virtual/kernel is not "linux-dummy". ' \
'Unless a particular kernel is needed, using linux-dummy will ' \
'prevent a kernel from being built, which can reduce ' \
'build times. If you don\'t want to use "linux-dummy", set ' \
'"IMAGE_CONTAINER_NO_DUMMY" to "1".'
# Raising skip recipe was Paul's clever idea. It causes the error to
# only be shown for the recipes actually requested to build, rather
# than bb.fatal which would appear for all recipes inheriting the
# class.
raise bb.parse.SkipRecipe(msg)
}