From: Joshua Watt Date: Wed, 13 Feb 2019 16:58:36 +0000 (-0600) Subject: classes/license_image.bbclass: Fix rootfs license file permissions X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d47356ad263fee8566c561cb509905e6e19ed59;p=thirdparty%2Fopenembedded%2Fopenembedded-core-contrib.git 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] (From OE-Core rev: 8190d192fceb9b0969385507d3d4bca7be75c810) Signed-off-by: Joshua Watt Signed-off-by: Richard Purdie --- diff --git a/meta/classes/license_image.bbclass b/meta/classes/license_image.bbclass index 6ac63e01928..67500386bf8 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)