[OE-core] [PATCH] package.bbclass: Call os.chmod after os.mkdir

Richard Purdie richard.purdie at linuxfoundation.org
Sun Sep 8 23:03:43 UTC 2013


On Sun, 2013-09-08 at 17:01 +0200, Martin Jansa wrote:
> * in 556dee0c4d6d8a87c0cddbd2f60fe5917d009f18 os.chmod was replaced by 2nd param
>   to os.mkdir:
>   -      bb.utils.mkdirhier(dest)
>   -      fstat = os.stat(src)
>   -      os.chmod(dest, fstat.st_mode)
>   +      fstat = cpath.stat(src)
>   +      os.mkdir(dest, fstat.st_mode)
> 
>   but fstat in os.mkdir, doesn't work the same as good old os.chmod:
>   >>> p='test-p'
>   >>> os.mkdir(p, 041777)
>   >>> oct(os.stat(p).st_mode)
>   '041775'
>   >>> os.chmod(p, 041777)
>   >>> oct(os.stat(p).st_mode)
>   '041777'
> 
> Signed-off-by: Martin Jansa <Martin.Jansa at gmail.com>
> ---
>  meta/classes/package.bbclass | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/meta/classes/package.bbclass b/meta/classes/package.bbclass
> index bdac2bd..c96acd2 100644
> --- a/meta/classes/package.bbclass
> +++ b/meta/classes/package.bbclass
> @@ -988,8 +988,9 @@ python populate_packages () {
>              def mkdir(src, dest, p):
>                  src = os.path.join(src, p)
>                  dest = os.path.join(dest, p)
> +                bb.utils.mkdirhier(dest)
>                  fstat = cpath.stat(src)
> -                os.mkdir(dest, fstat.st_mode)
> +                os.chmod(dest, fstat.st_mode)
>                  os.chown(dest, fstat.st_uid, fstat.st_gid)
>                  if p not in seen:
>                      seen.append(p)

Can we set and then restore the umask to avoid having to do this? I ask
since from what I remember, changing things like this is quite expensive
performance wise :(

Cheers,

Richard





More information about the Openembedded-core mailing list