diff options
Diffstat (limited to 'meta/classes/license.bbclass')
-rw-r--r-- | meta/classes/license.bbclass | 36 |
1 files changed, 22 insertions, 14 deletions
diff --git a/meta/classes/license.bbclass b/meta/classes/license.bbclass index 17ae82d2c5..0d91dc6a95 100644 --- a/meta/classes/license.bbclass +++ b/meta/classes/license.bbclass | |||
@@ -26,14 +26,9 @@ python write_package_manifest() { | |||
26 | } | 26 | } |
27 | 27 | ||
28 | python license_create_manifest() { | 28 | python license_create_manifest() { |
29 | import re | ||
30 | import oe.packagedata | 29 | import oe.packagedata |
31 | from oe.rootfs import image_list_installed_packages | 30 | from oe.rootfs import image_list_installed_packages |
32 | 31 | ||
33 | bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE", True) or "").split() | ||
34 | bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses) | ||
35 | bad_licenses = expand_wildcard_licenses(d, bad_licenses) | ||
36 | |||
37 | build_images_from_feeds = d.getVar('BUILD_IMAGES_FROM_FEEDS', True) | 32 | build_images_from_feeds = d.getVar('BUILD_IMAGES_FROM_FEEDS', True) |
38 | if build_images_from_feeds == "1": | 33 | if build_images_from_feeds == "1": |
39 | return 0 | 34 | return 0 |
@@ -49,8 +44,18 @@ python license_create_manifest() { | |||
49 | pkg_lic_name = "LICENSE_" + pkg_name | 44 | pkg_lic_name = "LICENSE_" + pkg_name |
50 | pkg_dic[pkg_name]["LICENSE"] = pkg_dic[pkg_name][pkg_lic_name] | 45 | pkg_dic[pkg_name]["LICENSE"] = pkg_dic[pkg_name][pkg_lic_name] |
51 | 46 | ||
52 | license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY', True), | 47 | rootfs_license_manifest = os.path.join(d.getVar('LICENSE_DIRECTORY', True), |
53 | d.getVar('IMAGE_NAME', True), 'license.manifest') | 48 | d.getVar('IMAGE_NAME', True), 'license.manifest') |
49 | write_license_files(d, rootfs_license_manifest, pkg_dic) | ||
50 | } | ||
51 | |||
52 | def write_license_files(d, license_manifest, pkg_dic): | ||
53 | import re | ||
54 | |||
55 | bad_licenses = (d.getVar("INCOMPATIBLE_LICENSE", True) or "").split() | ||
56 | bad_licenses = map(lambda l: canonical_license(d, l), bad_licenses) | ||
57 | bad_licenses = expand_wildcard_licenses(d, bad_licenses) | ||
58 | |||
54 | with open(license_manifest, "w") as license_file: | 59 | with open(license_manifest, "w") as license_file: |
55 | for pkg in sorted(pkg_dic): | 60 | for pkg in sorted(pkg_dic): |
56 | if bad_licenses: | 61 | if bad_licenses: |
@@ -98,15 +103,16 @@ python license_create_manifest() { | |||
98 | if copy_lic_manifest == "1": | 103 | if copy_lic_manifest == "1": |
99 | rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS', 'True'), | 104 | rootfs_license_dir = os.path.join(d.getVar('IMAGE_ROOTFS', 'True'), |
100 | 'usr', 'share', 'common-licenses') | 105 | 'usr', 'share', 'common-licenses') |
101 | os.makedirs(rootfs_license_dir) | 106 | bb.utils.mkdirhier(rootfs_license_dir) |
102 | rootfs_license_manifest = os.path.join(rootfs_license_dir, | 107 | rootfs_license_manifest = os.path.join(rootfs_license_dir, |
103 | 'license.manifest') | 108 | os.path.split(license_manifest)[1]) |
104 | os.link(license_manifest, rootfs_license_manifest) | 109 | if not os.path.exists(rootfs_license_manifest): |
110 | os.link(license_manifest, rootfs_license_manifest) | ||
105 | 111 | ||
106 | if copy_lic_dirs == "1": | 112 | if copy_lic_dirs == "1": |
107 | for pkg in sorted(pkg_dic): | 113 | for pkg in sorted(pkg_dic): |
108 | pkg_rootfs_license_dir = os.path.join(rootfs_license_dir, pkg) | 114 | pkg_rootfs_license_dir = os.path.join(rootfs_license_dir, pkg) |
109 | os.makedirs(pkg_rootfs_license_dir) | 115 | bb.utils.mkdirhier(pkg_rootfs_license_dir) |
110 | pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY', True), | 116 | pkg_license_dir = os.path.join(d.getVar('LICENSE_DIRECTORY', True), |
111 | pkg_dic[pkg]["PN"]) | 117 | pkg_dic[pkg]["PN"]) |
112 | licenses = os.listdir(pkg_license_dir) | 118 | licenses = os.listdir(pkg_license_dir) |
@@ -124,14 +130,16 @@ python license_create_manifest() { | |||
124 | if not os.path.exists(rootfs_license): | 130 | if not os.path.exists(rootfs_license): |
125 | os.link(pkg_license, rootfs_license) | 131 | os.link(pkg_license, rootfs_license) |
126 | 132 | ||
127 | os.symlink(os.path.join('..', lic), pkg_rootfs_license) | 133 | if not os.path.exists(pkg_rootfs_license): |
134 | os.symlink(os.path.join('..', lic), pkg_rootfs_license) | ||
128 | else: | 135 | else: |
129 | if oe.license.license_ok(canonical_license(d, | 136 | if (oe.license.license_ok(canonical_license(d, |
130 | lic), bad_licenses) == False: | 137 | lic), bad_licenses) == False or |
138 | os.path.exists(pkg_rootfs_license)): | ||
131 | continue | 139 | continue |
132 | 140 | ||
133 | os.link(pkg_license, pkg_rootfs_license) | 141 | os.link(pkg_license, pkg_rootfs_license) |
134 | } | 142 | |
135 | 143 | ||
136 | python do_populate_lic() { | 144 | python do_populate_lic() { |
137 | """ | 145 | """ |