[OE-core] npm.bbclass support for deep native modules?
Peter A. Bigot
pab at pabigot.com
Sun Nov 27 00:17:48 UTC 2016
I'm using the current head of morty and trying to get a handle on the
new nodejs support in OE.
I'm failing to build a recipe for statsd. Starting with this:
devtool add 'npm://registry.npmjs.org;name=statsd;version=0.8.0'
bitbake statsd
produces an error related to the modern-syslog dependency:
DEBUG: Executing shell function do_compile
| npm ERR! Linux 4.4.0-47-generic
| npm ERR! argv
"/mnt/devel/oe/omap/build-bb-morty-master/tmp/sysroots/x86_64-linux/usr/bin/node"
"/mnt/devel/oe/omap/build-bb-morty-master/tmp/sysroots/x86_64-linux/usr/bin/npm"
"--arch=arm" "--target_arch=arm" "--production" "--no-registry" "install"
| npm ERR! node v4.6.1
| npm ERR! npm v2.15.9
|
| npm ERR! Registry not defined and registry files not found:
"/mnt/devel/oe/omap/build-bb-morty-master/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/statsd/0.8.0-r0/npm_cache/noregistry/modern-syslog/.cache.json",
"/mnt/devel/oe/omap/build-bb-morty-master/tmp/work/cortexa8hf-neon-poky-linux-gnueabi/statsd/0.8.0-r0/npm_cache/modern-syslog/.cache.json".
modern-syslog 1.1.2 needs node-gyp to build a native component and
https://wiki.yoctoproject.org/wiki/TipsAndTricks/NPM notes that devtool
can't detect such things. Doing this works fine to build that package:
devtool add 'npm://registry.npmjs.org;name=modern-syslog;version=1.1.2'
bitbake modern-syslog
but I'm having no luck getting "bitbake statsd" to find the result.
I've added:
DEPENDS = "modern-syslog"
to statsd_0.8.0.bb but that isn't helping. It looks like I need some
way to have the recipe install the prepared modern-syslog into the cache
(or globally?) before baking statsd, but since the cache gets cleared in
npm_do_compile() it's not clear how to make that happen.
I'm very rusty with OE (two years away), so am I missing something or is
this just beyond what the bitbake infrastructure can currently handle?
If so, can somebody suggest a way to hand-patch the recipe, or outline
how npm.bbclass might be extended to support this?
Thanks.
Peter
More information about the Openembedded-core
mailing list