[OE-core] [PATCH] populate_sdk_base/image: Fix races for variable mappings

Mark Hatle mark.hatle at windriver.com
Tue Mar 5 01:52:19 UTC 2013


On 3/4/13 11:43 AM, Richard Purdie wrote:
> When using the -c populate_sdk option, images are not generated quite as
> they should be under certain circumstances. For example the dropbear
> feature may not get replaced with openssh, leading to both being installed
> with an appropriate rootfs failure.
>
> This patch moves the remapping logic to later points in the code, ensuring
> there is no conflict. The result is slightly simpler too as an added bonus.
>
> [YOCTO #3749]

Just an FYI, I verified this corrects the reported issue with the 
core-image-sato-sdk as indicated in the defect.

> Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
Signed-off-by: Mark Hatle <mark.hatle at windriver.com>

> ---
> diff --git a/meta/classes/image.bbclass b/meta/classes/image.bbclass
> index 19564d8..68bd342 100644
> --- a/meta/classes/image.bbclass
> +++ b/meta/classes/image.bbclass
> @@ -117,6 +117,10 @@ python () {
>
>       d.setVar('IMAGE_FEATURES', ' '.join(list(remain_features)))
>
> +    if d.getVar('BB_WORKERCONTEXT', True) is not None:
> +        runtime_mapping_rename("PACKAGE_INSTALL", d)
> +        runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", d)
> +
>       # Ensure we have the vendor list for complementary package handling
>       ml_vendor_list = ""
>       multilibs = d.getVar('MULTILIBS', True) or ""
> @@ -129,19 +133,6 @@ python () {
>       d.setVar('MULTILIB_VENDORS', ml_vendor_list)
>   }
>
> -python image_handler () {
> -    if not isinstance(e, bb.event.RecipeParsed):
> -        return
> -
> -    # 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...
> -    if e.data.getVar('BB_WORKERCONTEXT', True) is not None:
> -        runtime_mapping_rename("PACKAGE_INSTALL", e.data)
> -        runtime_mapping_rename("PACKAGE_INSTALL_ATTEMPTONLY", e.data)
> -
> -}
> -addhandler image_handler
> -
>   #
>   # Get a list of files containing device tables to create.
>   # * IMAGE_DEVICE_TABLE is the old name to an absolute path to a device table file
> diff --git a/meta/classes/populate_sdk_base.bbclass b/meta/classes/populate_sdk_base.bbclass
> index 88de1e4..7af2d2e 100644
> --- a/meta/classes/populate_sdk_base.bbclass
> +++ b/meta/classes/populate_sdk_base.bbclass
> @@ -29,14 +29,9 @@ EXCLUDE_FROM_WORLD = "1"
>
>   SDK_PACKAGING_FUNC ?= "create_shar"
>
> -python () {
> -    # 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...
> -    if bb.data.getVar('BB_WORKERCONTEXT', d, True) is not None:
> -        runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", d)
> -}
> -
>   fakeroot python do_populate_sdk() {
> +    runtime_mapping_rename("TOOLCHAIN_TARGET_TASK", d)
> +
>       bb.build.exec_func("populate_sdk_image", d)
>
>       # Handle multilibs in the SDK environment, siteconfig, etc files...
>
>
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>





More information about the Openembedded-core mailing list