Openembedded Core Discussions
 help / color / mirror / Atom feed
* [jethro][PATCH v3] license.bbclass: fix host contamination warnings for license files
@ 2015-11-28  8:09 Jagadeesh Krishnanjanappa
  2015-12-04 15:27 ` Jagadeesh Krishnanjanappa
  2016-03-07 15:59 ` Burton, Ross
  0 siblings, 2 replies; 8+ messages in thread
From: Jagadeesh Krishnanjanappa @ 2015-11-28  8:09 UTC (permalink / raw)
  To: openembedded-core

We get below host contamination warnings of license files for
each recipe, when we try to create a separate ${PN}-lic package (which
contains license files), by setting LICENSE_CREATE_PACKAGE equal to "1"
in local.conf.

-- snip --
WARNING: QA Issue: libcgroup: /libcgroup-lic/usr/share/licenses/libcgroup/generic_LGPLv2.1 is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
WARNING: QA Issue: attr: /attr-lic/usr/share/licenses/attr/libattr.c is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
WARNING: QA Issue: bash: /bash-lic/usr/share/licenses/bash/COPYING is owned by uid 5001, which is the same as the user running bitbake. This may be due to host contamination [host-user-contaminated]
-- CUT --

Since the license files from source and OE-core, are populated in a normal
shell environment rather in pseudo environment (fakeroot); the ownership of
these files will be same as host user running bitbake. During the do_package
task (which runs in pseudo environment (fakeroot)), os.link preserves the
ownership of these license files as host user instead of root user.
This causes license files to have UID same as host user id and resulting in
above warnings during do_package_qa task.

Changing ownership of license files to root user (which has UID and GID as 0)
under pseudo environment will solve above warnings, and on exiting pseudo
environment the license files will continue to be owned by host user. Perform
this manipulation within try/except statements, as tasks which are not exected
under pseudo (such as do_populate_lic) result in OSError when trying to
change ownership of license files.

Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
---
 meta/classes/license.bbclass | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass
index c616a20..8fff156 100644
--- a/meta/classes/license.bbclass
+++ b/meta/classes/license.bbclass
@@ -185,6 +185,15 @@ def copy_license_files(lic_files_paths, destdir):
                 os.remove(dst)
             if os.access(src, os.W_OK) and (os.stat(src).st_dev == os.stat(destdir).st_dev):
                 os.link(src, dst)
+                try:
+                    os.chown(dst,0,0)
+                except OSError as err:
+                    if err.errno == 1:
+                        # suppress "Operation not permitted" error, as 
+                        # sometimes this function is not executed under pseudo
+                        pass
+                    else:
+                        raise
             else:
                 shutil.copyfile(src, dst)
         except Exception as e:
-- 
1.9.1



^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-03-07 17:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-28  8:09 [jethro][PATCH v3] license.bbclass: fix host contamination warnings for license files Jagadeesh Krishnanjanappa
2015-12-04 15:27 ` Jagadeesh Krishnanjanappa
2015-12-10 10:49   ` Jagadeesh Krishnanjanappa
2016-03-04 12:51   ` Martin Jansa
2016-03-07 15:59 ` Burton, Ross
2016-03-07 16:45   ` Jagadeesh Krishnanjanappa
2016-03-07 17:16     ` Burton, Ross
2016-03-07 17:20       ` Jagadeesh Krishnanjanappa

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox