summaryrefslogtreecommitdiffstats
path: root/meta/classes
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-13 13:53:01 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2018-11-14 11:14:40 +0000
commit0577d02faecb0f76045863c33598edc426ee9534 (patch)
tree4121c90a926e14a45ce60102840c1b36a6b37a5d /meta/classes
parentef637239656b1472bfcabaa87f87441dc92d6650 (diff)
downloadpoky-0577d02faecb0f76045863c33598edc426ee9534.tar.gz
license_image: Fix rootfs file ownership issues with COPY_LIC_DIRS
We need to set ownership of the license files after copying into the rootfs. We also need to ensure we don't overwrite the rootfs files outside rootfs generation, hence only write there when the new rootfs function parameter is True. [YOCTO #12961] (From OE-Core rev: 6aa0eeaa4d31a440700f7695174de2a1dcc54866) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes')
-rw-r--r--meta/classes/license_image.bbclass15
1 files changed, 11 insertions, 4 deletions
diff --git a/meta/classes/license_image.bbclass b/meta/classes/license_image.bbclass
index f0fbb763f1..6515ee8278 100644
--- a/meta/classes/license_image.bbclass
+++ b/meta/classes/license_image.bbclass
@@ -32,10 +32,10 @@ python license_create_manifest() {
32 32
33 rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'), 33 rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY'),
34 d.getVar('IMAGE_NAME'), 'license.manifest') 34 d.getVar('IMAGE_NAME'), 'license.manifest')
35 write_license_files(d, rootfs_license_manifest, pkg_dic) 35 write_license_files(d, rootfs_license_manifest, pkg_dic, rootfs=True)
36} 36}
37 37
38def write_license_files(d, license_manifest, pkg_dic): 38def write_license_files(d, license_manifest, pkg_dic, rootfs=True):
39 import re 39 import re
40 40
41 bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split() 41 bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE") or "").split()
@@ -94,7 +94,7 @@ def write_license_files(d, license_manifest, pkg_dic):
94 # With both options set we see a .5 M increase in core-image-minimal 94 # With both options set we see a .5 M increase in core-image-minimal
95 copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST') 95 copy_lic_manifest = d.getVar('COPY_LIC_MANIFEST')
96 copy_lic_dirs = d.getVar('COPY_LIC_DIRS') 96 copy_lic_dirs = d.getVar('COPY_LIC_DIRS')
97 if copy_lic_manifest == "1": 97 if rootfs and copy_lic_manifest == "1":
98 rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'), 98 rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS'),
99 'usr', 'share', 'common-licenses') 99 'usr', 'share', 'common-licenses')
100 bb.utils.mkdirhier(rootfs_license_dir) 100 bb.utils.mkdirhier(rootfs_license_dir)
@@ -146,6 +146,13 @@ def write_license_files(d, license_manifest, pkg_dic):
146 continue 146 continue
147 147
148 os.link(pkg_license, pkg_rootfs_license) 148 os.link(pkg_license, pkg_rootfs_license)
149 # Fixup file ownership
150 for walkroot, dirs, files in os.walk(rootfs_license_dir):
151 for f in files:
152 os.lchown(os.path.join(walkroot, f), 0, 0)
153 for dir in dirs:
154 os.lchown(os.path.join(walkroot, dir), 0, 0)
155
149 156
150 157
151def license_deployed_manifest(d): 158def license_deployed_manifest(d):
@@ -176,7 +183,7 @@ def license_deployed_manifest(d):
176 d.getVar('IMAGE_NAME')) 183 d.getVar('IMAGE_NAME'))
177 bb.utils.mkdirhier(lic_manifest_dir) 184 bb.utils.mkdirhier(lic_manifest_dir)
178 image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest') 185 image_license_manifest = os.path.join(lic_manifest_dir, 'image_license.manifest')
179 write_license_files(d, image_license_manifest, man_dic) 186 write_license_files(d, image_license_manifest, man_dic, rootfs=False)
180 187
181def get_deployed_dependencies(d): 188def get_deployed_dependencies(d):
182 """ 189 """