Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH] classes/license_image.bbclass: Fix rootfs license file permissions
@ 2019-02-13 16:58 Joshua Watt
  0 siblings, 0 replies; only message in thread
From: Joshua Watt @ 2019-02-13 16:58 UTC (permalink / raw)
  To: openembedded-core

Fixes up the permissions on the license files when they are put on the
target file system so that they are readable by everyone. Previously,
they would have inherited whatever permissions the file had in the
recipe, which may not have been appropriate.

[YOCTO #13175]

Signed-off-by: Joshua Watt <JPEWhacker@gmail.com>
---
 meta/classes/license_image.bbclass | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/meta/classes/license_image.bbclass b/meta/classes/license_image.bbclass
index 6515ee8278..ba95ced3e6 100644
--- a/meta/classes/license_image.bbclass
+++ b/meta/classes/license_image.bbclass
@@ -37,6 +37,7 @@ python license_create_manifest() {
 
 def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
     import re
+    import stat
 
     bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split()
     bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses)
@@ -146,12 +147,17 @@ def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
                             continue
 
                         os.link(pkg_license, pkg_rootfs_license)
-            # Fixup file ownership
+            # Fixup file ownership and permissions
             for walkroot, dirs, files in os.walk(rootfs_license_dir):
                 for f in files:
-                    os.lchown(os.path.join(walkroot, f), 0, 0)
+                    p = os.path.join(walkroot, f)
+                    os.lchown(p, 0, 0)
+                    if not os.path.islink(p):
+                        os.chmod(p, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH)
                 for dir in dirs:
-                    os.lchown(os.path.join(walkroot, dir), 0, 0)
+                    p = os.path.join(walkroot, dir)
+                    os.lchown(p, 0, 0)
+                    os.chmod(p, stat.S_IRWXU | stat.S_IRGRP | stat.S_IXGRP | stat.S_IROTH | stat.S_IXOTH)
 
 
 
-- 
2.20.1



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

only message in thread, other threads:[~2019-02-13 16:59 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-13 16:58 [PATCH] classes/license_image.bbclass: Fix rootfs license file permissions Joshua Watt

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