diff options
author | Böszörményi Zoltán <zboszor@pr.hu> | 2018-02-01 14:08:31 +0100 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-02-06 10:54:34 +0000 |
commit | 6b417c7c3a38463c64756beae9817fa2a80fd09e (patch) | |
tree | 2998a65126fcc4adc635aeb4fa47d94fd2b8f913 | |
parent | 2d7d2a460842c8747df17990970f22f4a11f36f6 (diff) | |
download | openembedded-core-6b417c7c3a38463c64756beae9817fa2a80fd09e.tar.gz openembedded-core-6b417c7c3a38463c64756beae9817fa2a80fd09e.tar.bz2 openembedded-core-6b417c7c3a38463c64756beae9817fa2a80fd09e.zip |
npm.bbclass: Node module name and recipe name can be different
Some NPM modules have the same name as their low level dependencies.
To prevent recipe naming conflicts, allow node module recipe names
to start with the "node-" prefix.
Signed-off-by: Zoltán Böszörményi <zboszor@pr.hu>
Signed-off-by: Ross Burton <ross.burton@intel.com>
-rw-r--r-- | meta/classes/npm.bbclass | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/meta/classes/npm.bbclass b/meta/classes/npm.bbclass index 898a54eb50..c351ff0866 100644 --- a/meta/classes/npm.bbclass +++ b/meta/classes/npm.bbclass @@ -2,7 +2,15 @@ DEPENDS_prepend = "nodejs-native " RDEPENDS_${PN}_prepend = "nodejs " S = "${WORKDIR}/npmpkg" -NPM_INSTALLDIR = "${D}${libdir}/node_modules/${PN}" +def node_pkgname(d): + bpn = d.getVar('BPN') + if bpn.startswith("node-"): + return bpn[5:] + return bpn + +NPMPN ?= "${@node_pkgname(d)}" + +NPM_INSTALLDIR = "${D}${libdir}/node_modules/${NPMPN}" # function maps arch names to npm arch names def npm_oe_arch_map(target_arch, d): @@ -46,7 +54,7 @@ npm_do_install() { export HOME=${WORKDIR} mkdir -p ${NPM_INSTALLDIR}/ npm pack . - npm install --prefix ${D}${prefix} -g --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry ${PN}-${PV}.tgz + npm install --prefix ${D}${prefix} -g --arch=${NPM_ARCH} --target_arch=${NPM_ARCH} --production --no-registry ${NPMPN}-${PV}.tgz if [ -d ${D}${prefix}/etc ] ; then # This will be empty rmdir ${D}${prefix}/etc @@ -54,13 +62,13 @@ npm_do_install() { } python populate_packages_prepend () { - instdir = d.expand('${D}${libdir}/node_modules/${PN}') + instdir = d.expand('${D}${libdir}/node_modules/${NPMPN}') extrapackages = oe.package.npm_split_package_dirs(instdir) pkgnames = extrapackages.keys() d.prependVar('PACKAGES', '%s ' % ' '.join(pkgnames)) for pkgname in pkgnames: pkgrelpath, pdata = extrapackages[pkgname] - pkgpath = '${libdir}/node_modules/${PN}/' + pkgrelpath + pkgpath = '${libdir}/node_modules/${NPMPN}/' + pkgrelpath # package names can't have underscores but npm packages sometimes use them oe_pkg_name = pkgname.replace('_', '-') expanded_pkgname = d.expand(oe_pkg_name) @@ -76,7 +84,7 @@ python populate_packages_prepend () { } FILES_${PN} += " \ - ${libdir}/node_modules/${PN} \ + ${libdir}/node_modules/${NPMPN} \ " EXPORT_FUNCTIONS do_compile do_install |