[oe] the awkwardness of using core-image.bbclass

Paul Eggleton paul.eggleton at linux.intel.com
Mon Jul 14 09:34:32 UTC 2014


Hi Robert,

On Friday 11 July 2014 12:51:54 Robert P. J. Day wrote:
>   some observations/questions on core-image.bbclass, and whether it
> can be used more understandably. this is being written from the
> perspective of someone who has had the occasional student ask, "why
> was it done *that* way?"
> 
>   so here's the important part of core-image.bbclass:
> 
> CORE_IMAGE_BASE_INSTALL = '\
>     packagegroup-core-boot \
>     packagegroup-base-extended \
>     \
>     ${CORE_IMAGE_EXTRA_INSTALL} \
>     '
> 
> CORE_IMAGE_EXTRA_INSTALL ?= ""
> 
> IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
> 
> inherit image
> 
>   whose job is obviously to define the final contents in IMAGE_INSTALL
> to be handed off to image.bbclass. so far, so good. but notice first
> that while IMAGE_INSTALL and CORE_IMAGE_EXTRA_INSTALL are weakly
> assigned, CORE_IMAGE_BASE_INSTALL is *not*, which -- if one is
> perusing that file -- strongly suggests that if you're inheriting
> from this class file, you really should use that value. but it doesn't
> work that way.
> 
>   first, here's (the relevant parts of) core-image-base.bb:
> 
> IMAGE_FEATURES += "splash"
> inherit core-image
> 
>   that's perfect -- define an additional feature, then pull in
> core-image to take care of the rest. perfectly understandable.
> 
>   core-image-minimal.bb is *not* so clean:
> 
> IMAGE_INSTALL = "packagegroup-core-boot ${ROOTFS_PKGMANAGE_BOOTSTRAP}
> ${CORE_IMAGE_EXTRA_INSTALL}"
> inherit core-image
> 
>   i consider this recipe file potentially confusing since, although it
> inherits core-image, it effectively stomps on the settings in there,
> and just rams an overriding value into IMAGE_INSTALL. in short, rather
> than "inheriting" cleanly from core-image and extending or enhancing
> the recipe, core-image-mimimal simply kicks IMAGE_INSTALL out of the
> way and sets its own final value.

As core-image.bbclass currently works, it core-image-minimal must do this; 
otherwise you'll get packagegroup-base-extended in the image and the name 
"minimal" won't be true anymore. If on the other hand you inherit image 
instead of core-image then you won't be able to use the IMAGE_FEATURES 
definitions that core-image.bbclass defines.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-devel mailing list