diff options
author | Bjørn Forsman <bjorn.forsman@gmail.com> | 2016-04-04 21:02:29 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-04-05 15:00:04 +0100 |
commit | d00b2250a6afebd7d1373c04b4006290f0cd4043 (patch) | |
tree | ae0987abc18f32f53e44cd5909c5bab6f48616fe /meta | |
parent | f81c641022c26a9b89fac769e0f2889eaec5d32f (diff) | |
download | openembedded-core-d00b2250a6afebd7d1373c04b4006290f0cd4043.tar.gz openembedded-core-d00b2250a6afebd7d1373c04b4006290f0cd4043.tar.bz2 openembedded-core-d00b2250a6afebd7d1373c04b4006290f0cd4043.zip |
license.bbclass: fix warnings when run in unprivileged "container" env
An unprivileged "container" environment like this[1] doesn't have root
account (uid 0) which causes tons of "Invalid argument" warnings:
$ bitbake ...
...
WARNING: Could not copy license file [src] to [dest]: [Errno 22] Invalid argument: '[src]'
WARNING: Could not copy license file [src] to [dest]: [Errno 22] Invalid argument: '[src]'
WARNING: Could not copy license file [src] to [dest]: [Errno 22] Invalid argument: '[src]'
...
Fix it by handling EINVAL similar to existing handling of EPERM (which
was added for when not running under pseudo).
[1]: The real environemnt is buildFHSUserEnv from NixOS/nixpkgs, but a
demonstration of the issue can be done like this:
$ touch f
$ unshare --user --mount chown 0:0 f
chown: changing ownership of ‘f’: Invalid argument
Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r-- | meta/classes/license.bbclass | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index ba95c9ac84..94be559f44 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass @@ -354,9 +354,11 @@ def copy_license_files(lic_files_paths, destdir): os.chown(dst,0,0) except OSError as err: import errno - if err.errno == errno.EPERM: - # suppress "Operation not permitted" error, as - # sometimes this function is not executed under pseudo + if err.errno in (errno.EPERM, errno.EINVAL): + # Suppress "Operation not permitted" error, as + # sometimes this function is not executed under pseudo. + # Also ignore "Invalid argument" errors that happen in + # some (unprivileged) container environments (no root). pass else: raise |