[OE-core] npm.bbclass support for deep native modules?

Paul Eggleton paul.eggleton at linux.intel.com
Mon Nov 28 10:11:22 UTC 2016


Hi Peter,

On Sat, 26 Nov 2016 18:17:48 Peter A. Bigot wrote:
> 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-linu
> x-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-lin
> ux-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?

Disclaimer - I'm the one who has been doing most of the recent work with npm 
support (aside from the node.js recipe and the original npm fetcher plugin, 
which were the work of others) however my knowledge of node.js is pretty 
limited - most of it has been picked up along the way. So unfortunately I 
can't immediately see why this isn't working. The thing that puzzles me in 
particular about the error you're seeing though is that we're explicitly 
telling npm not to look for a registry, so why is it complaining about the 
lack of a registry?

Henry / Brendan - any suggestions?

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



More information about the Openembedded-core mailing list