diff --git a/package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch b/package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch new file mode 100644 index 0000000000..65bceef94a --- /dev/null +++ b/package/nodejs/4.1.2/0001-Remove-dependency-on-Python-bz2-module.patch @@ -0,0 +1,31 @@ +From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Tue, 30 Jun 2015 09:43:11 +0100 +Subject: [PATCH 1/4] Remove dependency on Python bz2 module + +Do not import the bz2 module, it is not used. + +Signed-off-by: Thomas Petazzoni +[Martin: adapt to 0.12.5] +Signed-off-by: Martin Bark +[yann.morin.1998@free.fr: adapt to 4.1.2] +Signed-off-by: "Yann E. MORIN" +--- + deps/v8/tools/js2c.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py +index 77485f6..371caf5 100755 +--- a/deps/v8/tools/js2c.py ++++ b/deps/v8/tools/js2c.py +@@ -34,7 +34,6 @@ + import os, re, sys, string + import optparse + import jsmin +-import bz2 + import textwrap + + +-- +2.1.4 + diff --git a/package/nodejs/4.1.2/0002-gyp-force-link-command-to-use-CXX.patch b/package/nodejs/4.1.2/0002-gyp-force-link-command-to-use-CXX.patch new file mode 100644 index 0000000000..5746582c14 --- /dev/null +++ b/package/nodejs/4.1.2/0002-gyp-force-link-command-to-use-CXX.patch @@ -0,0 +1,29 @@ +From 90a3c113c19ec615249ab880c45c6c0a8d369098 Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Tue, 30 Jun 2015 09:43:47 +0100 +Subject: [PATCH 2/4] gyp: force link command to use CXX + +Signed-off-by: Samuel Martin +Signed-off-by: Martin Bark +[yann.morin.1998@free.fr: adapt to 4.1.2] +Signed-off-by: "Yann E. MORIN" +--- + tools/gyp/pylib/gyp/generator/make.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py +index b88a433..0a1f2e0 100644 +--- a/tools/gyp/pylib/gyp/generator/make.py ++++ b/tools/gyp/pylib/gyp/generator/make.py +@@ -142,7 +142,7 @@ cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) + # special "figure out circular dependencies" flags around the entire + # input list during linking. + quiet_cmd_link = LINK($(TOOLSET)) $@ +-cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) ++cmd_link = $(CXX.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o $@ -Wl,--start-group $(LD_INPUTS) -Wl,--end-group $(LIBS) + + # We support two kinds of shared objects (.so): + # 1) shared_library, which is just bundling together many dependent libraries +-- +2.1.4 + diff --git a/package/nodejs/4.1.2/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch b/package/nodejs/4.1.2/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch new file mode 100644 index 0000000000..2e266afd9d --- /dev/null +++ b/package/nodejs/4.1.2/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch @@ -0,0 +1,88 @@ +From 4a48c65921b0f05b621aef5b902b6aa54811ad7a Mon Sep 17 00:00:00 2001 +From: Martin Bark +Date: Tue, 30 Jun 2015 09:44:33 +0100 +Subject: [PATCH 3/4] Use a python variable instead of hardcoding Python + +The nodejs build system uses python in a number of locations. However, +there are some locations where it hardcodes 'python' as the Python +interpreter. However, this causes problems when we need to use python2 +instead of just python. + +This patch fixes that by using the python variable already in place in +the nodejs build system. + +Signed-off-by: Thomas Petazzoni +[Martin: adapt to 0.12.5] +Signed-off-by: Martin Bark +[yann.morin.1998@free.fr: adapat to 4.1.2] +Signed-off-by: "Yann E. MORIN" +--- + deps/v8/tools/gyp/v8.gyp | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp +index c703155..06c0b2b 100644 +--- a/deps/v8/tools/gyp/v8.gyp ++++ b/deps/v8/tools/gyp/v8.gyp +@@ -1696,14 +1696,14 @@ + '<(PRODUCT_DIR)/natives_blob_host.bin', + ], + 'action': [ +- 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' ++ '<(python)', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob.bin', + ], + 'action': [ +- 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' ++ '<(python)', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' + ], + }], + ], +@@ -1712,7 +1712,7 @@ + '<(PRODUCT_DIR)/natives_blob.bin', + ], + 'action': [ +- 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' ++ '<(python)', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' + ], + }], + ], +@@ -1812,7 +1812,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', + ], + 'action': [ +- 'python', ++ '<(python)', + '../../tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', + 'CORE', +@@ -1838,7 +1838,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', + ], + 'action': [ +- 'python', ++ '<(python)', + '../../tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', + 'EXPERIMENTAL', +@@ -1863,7 +1863,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + ], + 'action': [ +- 'python', ++ '<(python)', + '../../tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + 'EXTRAS', +@@ -1900,7 +1900,7 @@ + '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', + ], + 'action': [ +- 'python', ++ '<(python)', + '../../tools/gen-postmortem-metadata.py', + '<@(_outputs)', + '<@(heapobject_files)' diff --git a/package/nodejs/4.1.2/0004-fix-arm-vfpv2.patch b/package/nodejs/4.1.2/0004-fix-arm-vfpv2.patch new file mode 100644 index 0000000000..b753dfef02 --- /dev/null +++ b/package/nodejs/4.1.2/0004-fix-arm-vfpv2.patch @@ -0,0 +1,18 @@ +configure: fix ARM VFPv2 + +The gcc -mfpu flag for VFPv2 is 'vfp', not 'vfpv2'. + +Signed-off-by: "Yann E. MORIN" + +diff -durN a/configure b/configure +--- a/configure ++++ b/configure +@@ -611,7 +611,7 @@ + o['variables']['arm_fpu'] = 'vfpv3' + o['variables']['arm_version'] = '7' + else: +- o['variables']['arm_fpu'] = 'vfpv2' ++ o['variables']['arm_fpu'] = 'vfp' + o['variables']['arm_version'] = '6' if is_arch_armv6() else 'default' + + o['variables']['arm_thumb'] = 0 # -marm diff --git a/package/nodejs/Config.in b/package/nodejs/Config.in index 034557b480..5128901e90 100644 --- a/package/nodejs/Config.in +++ b/package/nodejs/Config.in @@ -37,7 +37,7 @@ config BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS choice prompt "Node.js version" default BR2_BR2_PACKAGE_NODEJS_0_10_X if BR2_ARM_CPU_ARMV5 - default BR2_BR2_PACKAGE_NODEJS_0_12_X + default BR2_BR2_PACKAGE_NODEJS_4_X help Select the version of Node.js you wish to use. @@ -48,12 +48,22 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X bool "v0.12.7" depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS +config BR2_BR2_PACKAGE_NODEJS_4_X + bool "v4.1.2" + depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + +comment "v4.1.2 needs a toolchain w/ gcc >= 4.8" + depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS + depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 + endchoice config BR2_PACKAGE_NODEJS_VERSION_STRING string default "0.10.40" if BR2_BR2_PACKAGE_NODEJS_0_10_X default "0.12.7" if BR2_BR2_PACKAGE_NODEJS_0_12_X + default "4.1.2" if BR2_BR2_PACKAGE_NODEJS_4_X menu "Module Selection" diff --git a/package/nodejs/nodejs.hash b/package/nodejs/nodejs.hash index 9be2806c15..ab506df55f 100644 --- a/package/nodejs/nodejs.hash +++ b/package/nodejs/nodejs.hash @@ -3,3 +3,6 @@ sha256 bae79c2fd959aebe1629af36077bebbb760128db753da226d2344cd91499149f node-v0 # From upstream URL: http://nodejs.org/dist/v0.12.7/SHASUMS256.txt sha256 b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d node-v0.12.7.tar.gz + +# From upstream URL: http://nodejs.org/dist/v4.1.2/SHASUMS256.txt +sha256 443c8251e812b1f2c4b3e9152a47df23c55567ade739e017e2c0ca0869b71e74 node-v4.1.2.tar.xz diff --git a/package/nodejs/nodejs.mk b/package/nodejs/nodejs.mk index 414f3f3d49..099b3f0f57 100644 --- a/package/nodejs/nodejs.mk +++ b/package/nodejs/nodejs.mk @@ -5,7 +5,11 @@ ################################################################################ NODEJS_VERSION = $(call qstrip,$(BR2_PACKAGE_NODEJS_VERSION_STRING)) +ifeq ($(BR2_BR2_PACKAGE_NODEJS_4_X),y) +NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz +else NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.gz +endif NODEJS_SITE = http://nodejs.org/dist/v$(NODEJS_VERSION) NODEJS_DEPENDENCIES = host-python host-nodejs zlib \ $(call qstrip,$(BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL_DEPS))