All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] license.bbclass: run chown only under pseudo
@ 2017-02-22 15:26 Markus Lehtonen
  0 siblings, 0 replies; only message in thread
From: Markus Lehtonen @ 2017-02-22 15:26 UTC (permalink / raw)
  To: openembedded-core

The copy_license_files() function in license.bbclass is called in two
different contexts. First, it is run as part of the do_populate_lic
task. In addition, it is called from do_package task when
LICENSE_CREATE_PACKAGE is enabled. The function has code that changes
the owner of license files to root which is meant only to happend in the
latter case - i.e. under do_package which is run under pseudo.
Previously, the code was blindly always running chown and just ignored
errors that happened when running from do_populate_lic. This patch
changes it to be more intelligent, only doing chown when running under
pseudo.

[YOCTO #10897]

Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
---
 meta/classes/license.bbclass | 15 +++------------
 1 file changed, 3 insertions(+), 12 deletions(-)

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index 9923aac..96c0040 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -364,18 +364,9 @@ def copy_license_files(lic_files_paths, destdir):
                         canlink = False
                     else:
                         raise
-                try:
-                    if canlink:
-                        os.chown(dst,0,0)
-                except OSError as err:
-                    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
+                # Only chown if we did hardling, and, we're running under pseudo
+                if canlink and os.environ.get('PSEUDO_DISABLED') == '0':
+                    os.chown(dst,0,0)
             if not canlink:
                 begin_idx = int(beginline)-1 if beginline is not None else None
                 end_idx = int(endline) if endline is not None else None
-- 
2.10.2



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2017-02-22 15:26 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-22 15:26 [PATCH] license.bbclass: run chown only under pseudo Markus Lehtonen

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.