[oe-commits] [openembedded-core] 01/02: license.bbclass: fix warnings when run in unprivileged "container" env

git at git.openembedded.org git at git.openembedded.org
Tue Apr 5 14:00:31 UTC 2016


rpurdie pushed a commit to branch master-next
in repository openembedded-core.

commit d00b2250a6afebd7d1373c04b4006290f0cd4043
Author: Bjørn Forsman <bjorn.forsman at gmail.com>
AuthorDate: Mon Apr 4 21:02:29 2016 +0200

    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 at gmail.com>
    Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
 meta/classes/license.bbclass | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index ba95c9a..94be559 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

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list