[Buildroot] [v4 1/4] package/nodejs: Add node.js v0.12.5 and set as the default version
Yann E. MORIN
yann.morin.1998 at free.fr
Thu Jul 2 21:51:21 UTC 2015
Martin, All,
On 2015-07-02 10:43 +0100, Martin Bark spake thusly:
> 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 at barkynet.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998 at free.fr>
This time for good I hope. ;-)
Regards,
Yann E. MORIN.
> ---
> Changes v3 -> v4
> - Added back depends on !BR2_ARM_CPU_ARMV5 that was removed by mistake
> (Suggested by Yann E. MORIN)
>
> Changes v2 -> v3
> - Corrected default node.js version on ARMv5 (Suggested by Yann E. MORIN)
> - Removed stray empty line (Suggested by Yann E. MORIN)
> - Corrected Signed-off-by in 0.12.5 patches (Suggested by Yann E. MORIN)
> - Improved commit message
>
> Changes v1 -> v2
> - Added depends on !BR2_ARM_CPU_ARMV5
> - Updated from node.js v0.12.4 to v0.12.5
> ---
> ...01-Remove-dependency-on-Python-bz2-module.patch | 39 ++++++++++++++
> .../0002-gyp-force-link-command-to-use-CXX.patch | 27 ++++++++++
> ...hon-variable-instead-of-hardcoding-Python.patch | 63 ++++++++++++++++++++++
> ...4-fix-build-error-without-OpenSSL-support.patch | 46 ++++++++++++++++
> package/nodejs/Config.in | 9 +++-
> package/nodejs/nodejs.hash | 3 ++
> 6 files changed, 186 insertions(+), 1 deletion(-)
> create mode 100644 package/nodejs/0.12.5/0001-Remove-dependency-on-Python-bz2-module.patch
> create mode 100644 package/nodejs/0.12.5/0002-gyp-force-link-command-to-use-CXX.patch
> create mode 100644 package/nodejs/0.12.5/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch
> create mode 100644 package/nodejs/0.12.5/0004-fix-build-error-without-OpenSSL-support.patch
>
> diff --git a/package/nodejs/0.12.5/0001-Remove-dependency-on-Python-bz2-module.patch b/package/nodejs/0.12.5/0001-Remove-dependency-on-Python-bz2-module.patch
> new file mode 100644
> index 0000000..24a78a4
> --- /dev/null
> +++ b/package/nodejs/0.12.5/0001-Remove-dependency-on-Python-bz2-module.patch
> @@ -0,0 +1,39 @@
> +From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001
> +From: Martin Bark <martin at 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 at free-electrons.com>
> +[Martin: adapt to 0.12.5]
> +Signed-off-by: Martin Bark <martin at 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
> +
> diff --git a/package/nodejs/0.12.5/0002-gyp-force-link-command-to-use-CXX.patch b/package/nodejs/0.12.5/0002-gyp-force-link-command-to-use-CXX.patch
> new file mode 100644
> index 0000000..3b007f1
> --- /dev/null
> +++ b/package/nodejs/0.12.5/0002-gyp-force-link-command-to-use-CXX.patch
> @@ -0,0 +1,27 @@
> +From 90a3c113c19ec615249ab880c45c6c0a8d369098 Mon Sep 17 00:00:00 2001
> +From: Martin Bark <martin at 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 at gmail.com>
> +Signed-off-by: Martin Bark <martin at 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
> +
> diff --git a/package/nodejs/0.12.5/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch b/package/nodejs/0.12.5/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch
> new file mode 100644
> index 0000000..37ceda3
> --- /dev/null
> +++ b/package/nodejs/0.12.5/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch
> @@ -0,0 +1,63 @@
> +From 4a48c65921b0f05b621aef5b902b6aa54811ad7a Mon Sep 17 00:00:00 2001
> +From: Martin Bark <martin at 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 at free-electrons.com>
> +[Martin: adapt to 0.12.5]
> +Signed-off-by: Martin Bark <martin at 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
> +
> diff --git a/package/nodejs/0.12.5/0004-fix-build-error-without-OpenSSL-support.patch b/package/nodejs/0.12.5/0004-fix-build-error-without-OpenSSL-support.patch
> new file mode 100644
> index 0000000..ccb29b1
> --- /dev/null
> +++ b/package/nodejs/0.12.5/0004-fix-build-error-without-OpenSSL-support.patch
> @@ -0,0 +1,46 @@
> +From 6bfa497dceb83de5257c64da59fbcf6a32d83305 Mon Sep 17 00:00:00 2001
> +From: Martin Bark <martin at 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 at posteo.de>
> +[Martin: adapt to 0.12.5]
> +Signed-off-by: Martin Bark <martin at 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
> +
> diff --git a/package/nodejs/Config.in b/package/nodejs/Config.in
> index 9a39385..580d9a2 100644
> --- a/package/nodejs/Config.in
> +++ b/package/nodejs/Config.in
> @@ -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"
>
> diff --git a/package/nodejs/nodejs.hash b/package/nodejs/nodejs.hash
> index bc1f15f..816d602 100644
> --- a/package/nodejs/nodejs.hash
> +++ b/package/nodejs/nodejs.hash
> @@ -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
> --
> 2.1.4
>
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list