summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Darander <anders@chargestorm.se>2017-03-01 18:20:00 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2017-03-04 23:18:18 +0000
commit1da740ef3264e8f926a85127304d3b76a030ad83 (patch)
treeee72dc63d2beead3f2e0c811d11f3e372cf846eb
parent837d89b47bdf9a253952b2752ce2794fe6f90eca (diff)
downloadpoky-1da740ef3264e8f926a85127304d3b76a030ad83.tar.gz
scripts/lib/create_npm: handle AND and OR in licenses
Handle npm packages with multiple licenses (AND and OR). Prior to this, AND and OR were treated as licensed in their own. (From OE-Core rev: c0cfd9b1d54b05ad048f444d6fe248aa0500159e) Signed-off-by: Anders Darander <anders@chargestorm.se> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--scripts/lib/recipetool/create_npm.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/scripts/lib/recipetool/create_npm.py b/scripts/lib/recipetool/create_npm.py
index 3a88592b73..72ceb953e2 100644
--- a/scripts/lib/recipetool/create_npm.py
+++ b/scripts/lib/recipetool/create_npm.py
@@ -46,6 +46,19 @@ class NpmRecipeHandler(RecipeHandler):
46 if isinstance(license, dict): 46 if isinstance(license, dict):
47 license = license.get('type', None) 47 license = license.get('type', None)
48 if license: 48 if license:
49 if 'OR' in license:
50 license = license.replace('OR', '|')
51 license = license.replace('AND', '&')
52 license = license.replace(' ', '_')
53 if not license[0] == '(':
54 license = '(' + license + ')'
55 print('LICENSE: {}'.format(license))
56 else:
57 license = license.replace('AND', '&')
58 if license[0] == '(':
59 license = license[1:]
60 if license[-1] == ')':
61 license = license[:-1]
49 license = license.replace('MIT/X11', 'MIT') 62 license = license.replace('MIT/X11', 'MIT')
50 license = license.replace('SEE LICENSE IN EULA', 63 license = license.replace('SEE LICENSE IN EULA',
51 'SEE-LICENSE-IN-EULA') 64 'SEE-LICENSE-IN-EULA')
@@ -220,7 +233,8 @@ class NpmRecipeHandler(RecipeHandler):
220 packages = OrderedDict((x,y[0]) for x,y in npmpackages.items()) 233 packages = OrderedDict((x,y[0]) for x,y in npmpackages.items())
221 packages['${PN}'] = '' 234 packages['${PN}'] = ''
222 pkglicenses = split_pkg_licenses(licvalues, packages, lines_after, licenses) 235 pkglicenses = split_pkg_licenses(licvalues, packages, lines_after, licenses)
223 all_licenses = list(set([item for pkglicense in pkglicenses.values() for item in pkglicense])) 236 all_licenses = list(set([item.replace('_', ' ') for pkglicense in pkglicenses.values() for item in pkglicense]))
237 all_licenses.remove('&')
224 # Go back and update the LICENSE value since we have a bit more 238 # Go back and update the LICENSE value since we have a bit more
225 # information than when that was written out (and we know all apply 239 # information than when that was written out (and we know all apply
226 # vs. there being a choice, so we can join them with &) 240 # vs. there being a choice, so we can join them with &)