summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorJoshua Watt <jpewhacker@gmail.com>2019-02-13 10:58:36 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2019-02-15 08:17:38 +0000
commit8190d192fceb9b0969385507d3d4bca7be75c810 (patch)
tree379c6a35b3ed98adaaf272055ffdbd29a4389a58 /meta/classes
parent1cd9e258a4a7db98e6cb79ab13450cbb1eb94ba7 (diff)
downloadopenembedded-core-8190d192fceb9b0969385507d3d4bca7be75c810.tar.gz
openembedded-core-8190d192fceb9b0969385507d3d4bca7be75c810.tar.bz2
openembedded-core-8190d192fceb9b0969385507d3d4bca7be75c810.zip
classes/license_image.bbclass: Fix rootfs license file permissions
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> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/license_image.bbclass12
1 files changed, 9 insertions, 3 deletions
diff --git a/meta/classes/license_image.bbclass b/meta/classes/license_image.bbclass
index 6ac63e0192..67500386bf 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)