All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yann E. MORIN <yann.morin.1998@free.fr>
To: buildroot@busybox.net
Subject: [Buildroot] [v4 1/4] package/nodejs: Add node.js v0.12.5 and set as the default version
Date: Thu, 2 Jul 2015 23:51:21 +0200	[thread overview]
Message-ID: <20150702215121.GI3838@free.fr> (raw)
In-Reply-To: <1435830207-16664-1-git-send-email-martin@barkynet.com>

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@barkynet.com>

Acked-by: "Yann E. MORIN" <yann.morin.1998@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@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
> +
> 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@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
> +
> 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@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
> +
> 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@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
> +
> 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.  |
'------------------------------^-------^------------------^--------------------'

  parent reply	other threads:[~2015-07-02 21:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-02  9:43 [Buildroot] [v4 1/4] package/nodejs: Add node.js v0.12.5 and set as the default version Martin Bark
2015-07-02  9:43 ` [Buildroot] [v4 2/4] package/nodejs: symlink /usr/lib/node_modules/.bin/* to /usr/bin Martin Bark
2015-07-02  9:43 ` [Buildroot] [v4 3/4] package/nodejs: Fixes for node-pre-gyp Martin Bark
2015-07-02 21:54   ` Yann E. MORIN
2015-07-04  6:51     ` Jörg Krause
2015-07-02  9:43 ` [Buildroot] [v4 4/4] package/nodejs: Define NPM command for other packages to use Martin Bark
2015-07-02 21:51 ` Yann E. MORIN [this message]
2015-07-04 12:56 ` [Buildroot] [v4 1/4] package/nodejs: Add node.js v0.12.5 and set as the default version Thomas Petazzoni
2015-07-05 19:07   ` Martin Bark
2015-10-11 19:25 ` Yann E. MORIN
2015-10-12  8:48   ` Martin Bark
2015-10-12 16:51     ` Yann E. MORIN

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150702215121.GI3838@free.fr \
    --to=yann.morin.1998@free.fr \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.