summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2016-04-04 21:02:29 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-04-05 15:00:04 +0100
commitd00b2250a6afebd7d1373c04b4006290f0cd4043 (patch)
treeae0987abc18f32f53e44cd5909c5bab6f48616fe
parentf81c641022c26a9b89fac769e0f2889eaec5d32f (diff)
downloadopenembedded-core-contrib-d00b2250a6afebd7d1373c04b4006290f0cd4043.tar.gz
openembedded-core-contrib-d00b2250a6afebd7d1373c04b4006290f0cd4043.tar.bz2
openembedded-core-contrib-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>
-rw-r--r--meta/classes/license.bbclass8
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