package/nodejs: Add node.js v0.12.5 and set as the default version

The version of the V8 JavaScript engine used by node.js v0.12.5 requires
at least an ARMv6 architecture with VFPv2.  For this reason v0.10.39
remains the default for ARMv5 targets, all other targets now default to
v0.12.5.

Signed-off-by: Martin Bark <martin@barkynet.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Martin Bark 2015-07-02 10:43:24 +01:00 committed by Thomas Petazzoni
parent d23cce19c2
commit 73f3b45e18
6 changed files with 186 additions and 1 deletions

View File

@ -0,0 +1,39 @@
From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
Date: Tue, 30 Jun 2015 09:43:11 +0100
Subject: [PATCH 1/4] Remove dependency on Python bz2 module
The Python bz2 module is only needed in certain cases, so only import
it when needed. In the normal nodejs build, this allows to remove the
dependency on this module.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Martin: adapt to 0.12.5]
Signed-off-by: Martin Bark <martin@barkynet.com>
---
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
@@ -492,6 +491,7 @@ def CompressMaybe(sources, compression_type):
if compression_type == "off":
return sources_bytes
elif compression_type == "bz2":
+ import bz2
return bz2.compress(sources_bytes)
else:
raise Error("Unknown compression type %s." % compression_type)
--
2.1.4

View File

@ -0,0 +1,27 @@
From 90a3c113c19ec615249ab880c45c6c0a8d369098 Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
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 <s.martin49@gmail.com>
Signed-off-by: Martin Bark <martin@barkynet.com>
---
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
@@ -141,7 +141,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

View File

@ -0,0 +1,63 @@
From 4a48c65921b0f05b621aef5b902b6aa54811ad7a Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
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 <thomas.petazzoni@free-electrons.com>
[Martin: adapt to 0.12.5]
Signed-off-by: Martin Bark <martin@barkynet.com>
---
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
@@ -1353,7 +1353,7 @@
'outputs': [
'<(PRODUCT_DIR)/natives_blob.bin',
],
- 'action': ['python', '<@(_inputs)', '<@(_outputs)'],
+ 'action': ['<(python)', '<@(_inputs)', '<@(_outputs)'],
}],
}],
['want_separate_host_toolset==1', {
@@ -1435,7 +1435,7 @@
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
],
'action': [
- 'python',
+ '<(python)',
'../../tools/js2c.py',
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc',
'CORE',
@@ -1462,7 +1462,7 @@
'<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
],
'action': [
- 'python',
+ '<(python)',
'../../tools/js2c.py',
'<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc',
'EXPERIMENTAL',
@@ -1500,7 +1500,7 @@
'<(SHARED_INTERMEDIATE_DIR)/debug-support.cc',
],
'action': [
- 'python',
+ '<(python)',
'../../tools/gen-postmortem-metadata.py',
'<@(_outputs)',
'<@(heapobject_files)'
--
2.1.4

View File

@ -0,0 +1,46 @@
From 6bfa497dceb83de5257c64da59fbcf6a32d83305 Mon Sep 17 00:00:00 2001
From: Martin Bark <martin@barkynet.com>
Date: Tue, 30 Jun 2015 09:45:07 +0100
Subject: [PATCH 4/4] fix build error without OpenSSL support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Jörg Krause <jkrause@posteo.de>
[Martin: adapt to 0.12.5]
Signed-off-by: Martin Bark <martin@barkynet.com>
---
src/node.cc | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/src/node.cc b/src/node.cc
index e669706..d43b791 100644
--- a/src/node.cc
+++ b/src/node.cc
@@ -2934,8 +2934,10 @@ static void PrintHelp() {
" present.\n"
#endif
#endif
+#if HAVE_OPENSSL
" --enable-ssl2 enable ssl2\n"
" --enable-ssl3 enable ssl3\n"
+#endif
"\n"
"Environment variables:\n"
#ifdef _WIN32
@@ -3003,10 +3005,12 @@ static void ParseArgs(int* argc,
} else if (strcmp(arg, "--version") == 0 || strcmp(arg, "-v") == 0) {
printf("%s\n", NODE_VERSION);
exit(0);
+#if HAVE_OPENSSL
} else if (strcmp(arg, "--enable-ssl2") == 0) {
SSL2_ENABLE = true;
} else if (strcmp(arg, "--enable-ssl3") == 0) {
SSL3_ENABLE = true;
+#endif
} else if (strcmp(arg, "--help") == 0 || strcmp(arg, "-h") == 0) {
PrintHelp();
exit(0);
--
2.1.4

View File

@ -24,18 +24,25 @@ if BR2_PACKAGE_NODEJS
choice
prompt "Node.js version"
default BR2_BR2_PACKAGE_NODEJS_0_10_39
default BR2_BR2_PACKAGE_NODEJS_0_10_39 if BR2_ARM_CPU_ARMV5
default BR2_BR2_PACKAGE_NODEJS_0_12_5
help
Select the version of Node.js you wish to use.
config BR2_BR2_PACKAGE_NODEJS_0_10_39
bool "v0.10.39"
# V8 included with v0.12.5 requires at least ARMv6
config BR2_BR2_PACKAGE_NODEJS_0_12_5
bool "v0.12.5"
depends on !BR2_ARM_CPU_ARMV5
endchoice
config BR2_PACKAGE_NODEJS_VERSION_STRING
string
default "0.10.39" if BR2_BR2_PACKAGE_NODEJS_0_10_39
default "0.12.5" if BR2_BR2_PACKAGE_NODEJS_0_12_5
menu "Module Selection"

View File

@ -1,2 +1,5 @@
# From upstream URL: http://nodejs.org/dist/v0.10.39/SHASUMS256.txt
sha256 68f8d8f9515c4e77e2a06034b742e19e9848c1fee5bcadedc1d68f3e4302df37 node-v0.10.39.tar.gz
# From upstream URL: http://nodejs.org/dist/v0.12.5/SHASUMS256.txt
sha256 4bc1e25f4c62ac65324d3cf4aa9de2d801cd708757c3567b6ad2ced7df30cdd2 node-v0.12.5.tar.gz