[Buildroot] [git commit branch/next] package/nodejs: Fixes for node-pre-gyp
From: Thomas Petazzoni <hidden>
Date: 2015-08-08 10:57:10
Subsystem:
the rest · Maintainer:
Linus Torvalds
commit: http://git.buildroot.net/buildroot/commit/?id=c72b8eaf21f5dc7c7cb8095357c542acb86bb356 branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/next Many packages use node-pre-gyp as a way of deploying precompiled binary dependencies with fall back to compilation for other targets. Currently installing node modules that use node-pre-gyp can fail to use the correct binary for the target. This patch fixes this issue by correctly configuring node-pre-gyp. Firstly, node-gyp uses the option --arch to determine its target architecture (which is already set correctly), however, node-pre-gyp uses --target-arch. Without this set node.js packages that uses node-pre-gyp will pick the wrong target architecture. Secondly, the use of precompiled binary packages is not desirable due to potential security and licensing issues. To solve this we use the --build-from-source option to force node-pre-gyp to always build the C++ code. This patch passes npm_config_target_arch and npm_config_build_from_source to npm which causes --target-arch and --build-from-source to be passed to node-pre-gyp. I have tested this using the node.js package serialport which now successfully builds and runs. Signed-off-by: Martin Bark <redacted> Reviewed-by: "Yann E. MORIN" <redacted> Signed-off-by: Thomas Petazzoni <redacted> --- package/nodejs/nodejs.mk | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk
index 0b3f8a5..156b151 100644
--- a/package/nodejs/nodejs.mk
+++ b/package/nodejs/nodejs.mk@@ -107,6 +107,8 @@ define NODEJS_INSTALL_MODULES $(TARGET_CONFIGURE_OPTS) \ LD="$(TARGET_CXX)" \ npm_config_arch=$(NODEJS_CPU) \ + npm_config_target_arch=$(NODEJS_CPU) \ + npm_config_build_from_source=true \ npm_config_nodedir=$(BUILD_DIR)/nodejs-$(NODEJS_VERSION) \ $(HOST_DIR)/usr/bin/npm install \ $(NODEJS_MODULES_LIST) \