summaryrefslogtreecommitdiffstats
path: root/meta/classes/npm.bbclass
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2016-03-09 17:48:52 +1300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-03-09 17:00:29 +0000
commit91455005b65db1b6caededbcac0f08a0cfb660f3 (patch)
tree5b7e917a5560985f743d99475b722bc726f00660 /meta/classes/npm.bbclass
parentd46827cfd322554b57c3fc774b4d914f6e449d75 (diff)
downloadpoky-91455005b65db1b6caededbcac0f08a0cfb660f3.tar.gz
recipetool: create: split npm module dependencies into packages
Rather than rolling all of an npm module's dependencies into the same package, split them into one module per package, setting the SUMMARY and PKGV values from the package.json file for each package. Additionally, mark each package with the appropriate license using the license scanning we already do, falling back to the license stated in the package.json file for the module if unknown. All of this is mostly in aid of ensuring all modules and their licenses now show up in the manifests for the image. Additionally we set the main LICENSE value more concretely once we've calculated the per-package licenses, since we have more information at that point. (From OE-Core rev: 8226805f83d21e7c1d2ba21969f3e8ee4b137496) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/classes/npm.bbclass')
-rw-r--r--meta/classes/npm.bbclass20
1 files changed, 20 insertions, 0 deletions
diff --git a/meta/classes/npm.bbclass b/meta/classes/npm.bbclass
index be76056c55..b5db99d2b9 100644
--- a/meta/classes/npm.bbclass
+++ b/meta/classes/npm.bbclass
@@ -18,6 +18,26 @@ npm_do_install() {
18 cp -a ${S}/* ${D}${libdir}/node_modules/${PN}/ --no-preserve=ownership 18 cp -a ${S}/* ${D}${libdir}/node_modules/${PN}/ --no-preserve=ownership
19} 19}
20 20
21python populate_packages_prepend () {
22 instdir = d.expand('${D}${libdir}/node_modules/${PN}')
23 extrapackages = oe.package.npm_split_package_dirs(instdir)
24 pkgnames = extrapackages.keys()
25 d.prependVar('PACKAGES', '%s ' % ' '.join(pkgnames))
26 for pkgname in pkgnames:
27 pkgrelpath, pdata = extrapackages[pkgname]
28 pkgpath = '${libdir}/node_modules/${PN}/' + pkgrelpath
29 expanded_pkgname = d.expand(pkgname)
30 d.setVar('FILES_%s' % expanded_pkgname, pkgpath)
31 if pdata:
32 version = pdata.get('version', None)
33 if version:
34 d.setVar('PKGV_%s' % expanded_pkgname, version.encode("utf8"))
35 description = pdata.get('description', None)
36 if description:
37 d.setVar('SUMMARY_%s' % expanded_pkgname, description.replace(u"\u2018", "'").replace(u"\u2019", "'").encode("utf8"))
38 d.appendVar('RDEPENDS_%s' % d.getVar('PN', True), ' %s' % ' '.join(pkgnames))
39}
40
21FILES_${PN} += " \ 41FILES_${PN} += " \
22 ${libdir}/node_modules/${PN} \ 42 ${libdir}/node_modules/${PN} \
23" 43"