[OE-core] [PATCH] base.bbclass: add dependency on pseudo from do_prepare_recipe_sysroot

Richard Purdie richard.purdie at linuxfoundation.org
Fri Aug 30 16:49:33 UTC 2019


On Fri, 2019-08-16 at 11:13 +0200, Mattias Hansson wrote:
> do_prepare_recipe_sysroot may perform groupadd, which requires pseudo.
> However, do_prepare_recipe_sysroot does not depend on pseudo explicitly,
> which sometimes causes a build error when building a recipe that adds
> groups.
> 
> This issue only occurs when executing do_prepare_recipe_sysroot for a
> recipe that adds groups before finishing a task that depends on pseudo
> for a recipe that doesn't add groups.
> 
> Signed-off-by: Mattias Hansson <mattihn at axis.com>
> ---
>  meta/classes/base.bbclass | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta/classes/base.bbclass b/meta/classes/base.bbclass
> index 0c8a4b2862..0576b110c9 100644
> --- a/meta/classes/base.bbclass
> +++ b/meta/classes/base.bbclass
> @@ -480,6 +480,7 @@ python () {
>      # If we're building a target package we need to use fakeroot (pseudo)
>      # in order to capture permissions, owners, groups and special files
>      if not bb.data.inherits_class('native', d) and not bb.data.inherits_class('cross', d):
> +        d.setVarFlag('do_prepare_recipe_sysroot', 'fakeroot', '1')
>          d.setVarFlag('do_unpack', 'umask', '022')
>          d.setVarFlag('do_configure', 'umask', '022')
>          d.setVarFlag('do_compile', 'umask', '022')

This basically forces all target recipes prepare-recipe sysroot to run
under pseudo "just in case", with all the performance overhead that
entails. prepare_recipe_sysroot does a lot of file accesses so this is
significant. It will also increase the pseudo database sizes
everywhere.

We'll need to find a better way to handle this I'm afraid.

Cheers,

Richard



More information about the Openembedded-core mailing list