Skip to contentSkip to conversation

package/nodejs: bump version to 5.3.0

PATCH New Martin Bark 4 participants 14 messages Dec 23, 2015 – Dec 30, 2015

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/7 package/nodejs: bump version to 5.3.0

Replace 4.2.3 with 5.3.0. 5.3.0 is the current Stable release. See
https://nodejs.org/en/blog/release/v5.3.0 for details on the release.

Copied 4.2.3 patched to 5.3.0 with the following exceptions:
- Removed 0004-fix-arm-vfpv2.patch, committed upstream and included in 5.3.0. See https://github.com/nodejs/node/commit/84dea1bd0c
- Added 0004-Fix-va_list-not-declared.patch, fix for a new bug. This has already been fixed upstream but is not in 5.3.0

---
Changes v2 -> v3
- Fixed !BR2_USE_WCHAR use in Config.in (Yann)

Changes v1 -> v2
- Updated patch set from 5.2.0 to 5.3.0

---
 Config.in.legacy                                   |  9 +++++
 package/nodejs/4.2.3/0004-fix-arm-vfpv2.patch      | 46 ----------------------
 ...01-Remove-dependency-on-Python-bz2-module.patch |  0
 .../0002-gyp-force-link-command-to-use-CXX.patch   |  0
 ...hon-variable-instead-of-hardcoding-Python.patch |  0
 .../5.3.0/0004-Fix-va_list-not-declared.patch      | 39 ++++++++++++++++++
 package/nodejs/Config.in                           | 13 +++---
 package/nodejs/nodejs.hash                         |  4 +-
 package/nodejs/nodejs.mk                           |  2 +-
 9 files changed, 58 insertions(+), 55 deletions(-)
 delete mode 100644 package/nodejs/4.2.3/0004-fix-arm-vfpv2.patch
 rename package/nodejs/{4.2.3 => 5.3.0}/0001-Remove-dependency-on-Python-bz2-module.patch (100%)
 rename package/nodejs/{4.2.3 => 5.3.0}/0002-gyp-force-link-command-to-use-CXX.patch (100%)
 rename package/nodejs/{4.2.3 => 5.3.0}/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch (100%)
 create mode 100644 package/nodejs/5.3.0/0004-Fix-va_list-not-declared.patch
Config.in.legacy +9 -0
index 82ab375..b67454c 100644
@@ -248,6 +248,15 @@ config BR2_PACKAGE_INFOZIP
 	  to avoid ambiguities with Info-Zip's UnZip which has been added
 	  in the unzip package.
 
+config BR2_BR2_PACKAGE_NODEJS_4_X
+	bool "nodejs version 4.x has been removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_NODEJS
+	help
+	  nodejs version 4.x has been removed.  As an alternative,
+	  the latest nodejs version has been automatically selected in
+	  your configuration.
+
 ###############################################################################
 comment "Legacy options removed in 2015.11"
 
package/nodejs/4.2.3/0004-fix-arm-vfpv2.patch deleted +0 -46

46 lines not on this page · raw message

package/nodejs/5.3.0/0001-Remove-dependency-on-Python-bz2-module.patch renamed from package/nodejs/4.2.3/0001-Remove-dependency-on-Python-bz2-module.patch +0 -0
similarity index 100%
rename from package/nodejs/4.2.3/0001-Remove-dependency-on-Python-bz2-module.patch
rename to package/nodejs/5.3.0/0001-Remove-dependency-on-Python-bz2-module.patch
package/nodejs/5.3.0/0002-gyp-force-link-command-to-use-CXX.patch renamed from package/nodejs/4.2.3/0002-gyp-force-link-command-to-use-CXX.patch +0 -0
similarity index 100%
rename from package/nodejs/4.2.3/0002-gyp-force-link-command-to-use-CXX.patch
rename to package/nodejs/5.3.0/0002-gyp-force-link-command-to-use-CXX.patch
package/nodejs/5.3.0/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch renamed from package/nodejs/4.2.3/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch +0 -0
similarity index 100%
rename from package/nodejs/4.2.3/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch
rename to package/nodejs/5.3.0/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch
package/nodejs/5.3.0/0004-Fix-va_list-not-declared.patch new file +39 -0
new file mode 100644
index 0000000..aec8e12
@@ -0,0 +1,39 @@
+From 5b3dd2599ebde1846750aaf7c79576ad45246ffa Mon Sep 17 00:00:00 2001
+From: Martin Bark <[email protected]>
+Date: Tue, 8 Dec 2015 11:41:08 +0000
+Subject: [PATCH] Fix va_list not declared
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When compiling with uClibc-ng the following error is seen.
+
+In file included from ../deps/v8/src/log-utils.cc:5:0:
+../deps/v8/src/log-utils.h:64:39: error: ?va_list? has not been declared
+     void AppendVA(const char* format, va_list args);
+
+This patch fixes the issue by adding the missing #include <cstdarg>.  Note
+that this fix has already be included upstream, see
+https://github.com/nodejs/node/blob/8a43a3d/deps/v8/src/log-utils.h
+
+Signed-off-by: Martin Bark <[email protected]>
+---
+ deps/v8/src/log-utils.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/deps/v8/src/log-utils.h b/deps/v8/src/log-utils.h
+index 87dab52..6714307 100644
+--- a/deps/v8/src/log-utils.h
++++ b/deps/v8/src/log-utils.h
+@@ -5,6 +5,8 @@
+ #ifndef V8_LOG_UTILS_H_
+ #define V8_LOG_UTILS_H_
+ 
++#include <cstdarg>
++
+ #include "src/allocation.h"
+ #include "src/base/platform/mutex.h"
+ #include "src/flags.h"
+-- 
+2.5.0
+
package/nodejs/Config.in +7 -6
index b0f4f2b..8ae0b76 100644
@@ -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_4_X
+	default BR2_PACKAGE_NODEJS_5_X
 	help
 	  Select the version of Node.js you wish to use.
 
@@ -48,14 +48,15 @@ config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "v0.12.9"
 	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
 
-config BR2_BR2_PACKAGE_NODEJS_4_X
-	bool "v4.2.3"
+config BR2_PACKAGE_NODEJS_5_X
+	bool "v5.3.0"
 	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+	depends on BR2_USE_WCHAR
 
-comment "v4.2.3 needs a toolchain w/ gcc >= 4.8"
+comment "v5.3.0 needs a toolchain w/ gcc >= 4.8, wchar"
 	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
-	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
+	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR
 
 endchoice
 
@@ -63,7 +64,7 @@ config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.41"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
 	default "0.12.9"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
-	default "4.2.3"		if BR2_BR2_PACKAGE_NODEJS_4_X
+	default "5.3.0"		if BR2_PACKAGE_NODEJS_5_X
 
 menu "Module Selection"
 
package/nodejs/nodejs.hash +2 -2
index 7d58a54..c3bdc44 100644
@@ -4,5 +4,5 @@ sha256	79f694e2a5c42543b75d0c69f6860499d7593136d0f6b59e7163b9e66fb2c995  node-v0
 # From upstream URL: http://nodejs.org/dist/v0.12.9/SHASUMS256.txt
 sha256	35daad301191e5f8dd7e5d2fbb711d081b82d1837d59837b8ee224c256cfe5e4  node-v0.12.9.tar.gz
 
-# From upstream URL: http://nodejs.org/dist/v4.2.3/SHASUMS256.txt
-sha256  9e8aef1e47b317575c421c8d10a80e6c319b26969b566d3b84e49e65a92837f4  node-v4.2.3.tar.xz
+# From upstream URL: http://nodejs.org/dist/v5.3.0/SHASUMS256.txt
+sha256  e5115ee78c31ac3af0f2b3553aa84fff2f49ae59bd6e01e11d78ce86c544569e  node-v5.3.0.tar.xz
package/nodejs/nodejs.mk +1 -1
index 7ede89d..af47b26 100644
@@ -5,7 +5,7 @@
 ################################################################################
 
 NODEJS_VERSION = $(call qstrip,$(BR2_PACKAGE_NODEJS_VERSION_STRING))
-ifeq ($(BR2_BR2_PACKAGE_NODEJS_4_X),y)
+ifeq ($(BR2_PACKAGE_NODEJS_5_X),y)
 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.xz
 else
 NODEJS_SOURCE = node-v$(NODEJS_VERSION).tar.gz
Signature · 1 line
2.5.0
#1 lore raw

PATCH v3 2/7 package/nodejs: removed version 0.12.9

Remove 0.12.9 to rationalise the number of nodejs releases supported by buildroot. Going forward buildroot will only support the latest release of nodejs and the 0.10.x branch for armv5 support.

---
Changes v2 -> v3
- None

Changes v1 -> v2
- New in v2

---
 Config.in.legacy                                   |  9 ++++
 ...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 ----------------------
 ...c-fix-build-error-without-OpenSSL-support.patch | 44 ---------------
 ...or-arm-predefined-macro-in-atomicops_inte.patch | 30 -----------
 package/nodejs/Config.in                           |  5 --
 package/nodejs/nodejs.hash                         |  3 --
 8 files changed, 9 insertions(+), 211 deletions(-)
 delete mode 100644 package/nodejs/0.12.9/0001-Remove-dependency-on-Python-bz2-module.patch
 delete mode 100644 package/nodejs/0.12.9/0002-gyp-force-link-command-to-use-CXX.patch
 delete mode 100644 package/nodejs/0.12.9/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch
 delete mode 100644 package/nodejs/0.12.9/0004-src-fix-build-error-without-OpenSSL-support.patch
 delete mode 100644 package/nodejs/0.12.9/0005-Fix-typo-for-arm-predefined-macro-in-atomicops_inte.patch
Config.in.legacy +9 -0
index b67454c..7e32df8 100644
@@ -248,6 +248,15 @@ config BR2_PACKAGE_INFOZIP
 	  to avoid ambiguities with Info-Zip's UnZip which has been added
 	  in the unzip package.
 
+config BR2_BR2_PACKAGE_NODEJS_0_12_X
+	bool "nodejs version 0.12.x has been removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_NODEJS
+	help
+	  nodejs version 0.12.x has been removed.  As an alternative,
+	  the latest nodejs version has been automatically selected in
+	  your configuration.
+
 config BR2_BR2_PACKAGE_NODEJS_4_X
 	bool "nodejs version 4.x has been removed"
 	select BR2_LEGACY
package/nodejs/0.12.9/0001-Remove-dependency-on-Python-bz2-module.patch deleted +0 -39
deleted file mode 100644
index 24a78a4..0000000
@@ -1,39 +0,0 @@
-From 3d4817c152d6f3afddcc699949c4d1664da91e2b Mon Sep 17 00:00:00 2001
-From: Martin Bark <[email protected]>
-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 <[email protected]>
-[Martin: adapt to 0.12.5]
-Signed-off-by: Martin Bark <[email protected]>
----
- 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
-
package/nodejs/0.12.9/0002-gyp-force-link-command-to-use-CXX.patch deleted +0 -27
deleted file mode 100644
index 3b007f1..0000000
@@ -1,27 +0,0 @@
-From 90a3c113c19ec615249ab880c45c6c0a8d369098 Mon Sep 17 00:00:00 2001
-From: Martin Bark <[email protected]>
-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 <[email protected]>
-Signed-off-by: Martin Bark <[email protected]>
----
- 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
-
package/nodejs/0.12.9/0003-Use-a-python-variable-instead-of-hardcoding-Python.patch deleted +0 -63

63 lines not on this page · raw message

package/nodejs/0.12.9/0004-src-fix-build-error-without-OpenSSL-support.patch deleted +0 -44

44 lines not on this page · raw message

package/nodejs/0.12.9/0005-Fix-typo-for-arm-predefined-macro-in-atomicops_inte.patch deleted +0 -30
deleted file mode 100644
index 94d9eff..0000000
@@ -1,30 +0,0 @@
-From b7b69cdcdb4e2d80a85e303cc3230666d565bc39 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <[email protected]>
-Date: Sun, 11 Oct 2015 09:14:52 +0200
-Subject: [PATCH] Fix typo for arm predefined macro in
- atomicops_internals_arm_gcc.h
-
-Fix typo  __ARM_ARCH_6KZ__ vs.  __ARM_ARCH_6ZK__, fixes
-compile for raspberry pi.
-
-Signed-off-by: Peter Seiderer <[email protected]>
----
- deps/v8/src/base/atomicops_internals_arm_gcc.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deps/v8/src/base/atomicops_internals_arm_gcc.h b/deps/v8/src/base/atomicops_internals_arm_gcc.h
-index 069b1ff..b924981 100644
---- a/deps/v8/src/base/atomicops_internals_arm_gcc.h
-+++ b/deps/v8/src/base/atomicops_internals_arm_gcc.h
-@@ -63,7 +63,7 @@ inline void MemoryBarrier() {
-     defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || \
-     defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || \
-     defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6Z__) || \
--    defined(__ARM_ARCH_6KZ__) || defined(__ARM_ARCH_6T2__)
-+    defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6T2__)
- 
- inline Atomic32 NoBarrier_CompareAndSwap(volatile Atomic32* ptr,
-                                          Atomic32 old_value,
--- 
-2.1.4
-
package/nodejs/Config.in +0 -5
index 8ae0b76..645ca7a 100644
@@ -44,10 +44,6 @@ choice
 config BR2_BR2_PACKAGE_NODEJS_0_10_X
 	bool "v0.10.41"
 
-config BR2_BR2_PACKAGE_NODEJS_0_12_X
-	bool "v0.12.9"
-	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
-
 config BR2_PACKAGE_NODEJS_5_X
 	bool "v5.3.0"
 	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
@@ -63,7 +59,6 @@ endchoice
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
 	default "0.10.41"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
-	default "0.12.9"	if BR2_BR2_PACKAGE_NODEJS_0_12_X
 	default "5.3.0"		if BR2_PACKAGE_NODEJS_5_X
 
 menu "Module Selection"
package/nodejs/nodejs.hash +0 -3
index c3bdc44..dc56efa 100644
@@ -1,8 +1,5 @@
 # From upstream URL: http://nodejs.org/dist/v0.10.41/SHASUMS256.txt
 sha256	79f694e2a5c42543b75d0c69f6860499d7593136d0f6b59e7163b9e66fb2c995  node-v0.10.41.tar.gz
 
-# From upstream URL: http://nodejs.org/dist/v0.12.9/SHASUMS256.txt
-sha256	35daad301191e5f8dd7e5d2fbb711d081b82d1837d59837b8ee224c256cfe5e4  node-v0.12.9.tar.gz
-
 # From upstream URL: http://nodejs.org/dist/v5.3.0/SHASUMS256.txt
 sha256  e5115ee78c31ac3af0f2b3553aa84fff2f49ae59bd6e01e11d78ce86c544569e  node-v5.3.0.tar.xz
Signature · 1 line
2.5.0
#2 lore raw

PATCH v3 3/7 package/nodejs: correct 0.10.x option name

In reply to Martin Bark

The nodejs options incorrectly started BR2_BR2_xxx. This change corrects the name for 0.10.x releases to BR2_PACKAGE_NODEJS_0_10_X

---
Changes v2 -> v3
- Corrected help test
- Removed select BR2_PACKAGE_NODEJS_0_10_X as this will not work (Yann)
- Note that selecting BR2_PACKAGE_NODEJS_0_10_X is not needed as a subsequent patch will remove the version choice.

Changes v1 -> v2
- New in v2

---
 Config.in.legacy         | 8 ++++++++
 package/nodejs/Config.in | 6 +++---
 2 files changed, 11 insertions(+), 3 deletions(-)
Config.in.legacy +8 -0
index 7e32df8..2628796 100644
@@ -248,6 +248,14 @@ config BR2_PACKAGE_INFOZIP
 	  to avoid ambiguities with Info-Zip's UnZip which has been added
 	  in the unzip package.
 
+config BR2_BR2_PACKAGE_NODEJS_0_10_X
+	bool "nodejs 0.10.x option renamed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_NODEJS
+	help
+	  nodejs 0.10.x option was named incorrectly and has been renamed
+	  to BR2_PACKAGE_NODEJS_0_10_X.
+
 config BR2_BR2_PACKAGE_NODEJS_0_12_X
 	bool "nodejs version 0.12.x has been removed"
 	select BR2_LEGACY
package/nodejs/Config.in +3 -3
index 645ca7a..ce35452 100644
@@ -36,12 +36,12 @@ 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_PACKAGE_NODEJS_0_10_X if BR2_ARM_CPU_ARMV5
 	default BR2_PACKAGE_NODEJS_5_X
 	help
 	  Select the version of Node.js you wish to use.
 
-config BR2_BR2_PACKAGE_NODEJS_0_10_X
+config BR2_PACKAGE_NODEJS_0_10_X
 	bool "v0.10.41"
 
 config BR2_PACKAGE_NODEJS_5_X
@@ -58,7 +58,7 @@ endchoice
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
-	default "0.10.41"	if BR2_BR2_PACKAGE_NODEJS_0_10_X
+	default "0.10.41"	if BR2_PACKAGE_NODEJS_0_10_X
 	default "5.3.0"		if BR2_PACKAGE_NODEJS_5_X
 
 menu "Module Selection"
Signature · 1 line
2.5.0
#3 lore raw

PATCH v3 4/7 package/nodejs: fixed comment for mips soft float

In reply to Martin Bark

nodejs is only selected for mips hard float however the comment is displayed for hard and soft float. Correct this by adding the missing !BR2_MIPS_SOFT_FLOAT to the comment.

---
Changes v2 -> v3
- New in v3.
- Note: See commit 8e7dacf766f13011d208b927260b78c56070a7fe when the !BR2_MIPS_SOFT_FLOAT requirement was added

---
 package/nodejs/Config.in | 1 +
 1 file changed, 1 insertion(+)
package/nodejs/Config.in +1 -0
index ce35452..eb3aeec 100644
@@ -20,6 +20,7 @@ config BR2_PACKAGE_NODEJS
 comment "nodejs needs a toolchain w/ C++, dynamic library, threads"
 	depends on BR2_USE_MMU
 	depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel
+	depends on !BR2_MIPS_SOFT_FLOAT
 	depends on !BR2_ARM_CPU_ARMV4
 	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
 
Signature · 1 line
2.5.0
#4 lore raw

PATCH v3 5/7 package/nodejs: remove version choice

In reply to Martin Bark

Remove the choice of nodejs version. Now automatically pick nodejs 0.10.x for armv5 architectures only and the latest nodejs for all other supported architectures.

---
Changes v2 -> v3
- New in v3.

---
 package/nodejs/Config.in | 22 +++++++++-------------
 1 file changed, 9 insertions(+), 13 deletions(-)
package/nodejs/Config.in +9 -13
index eb3aeec..1aac38e 100644
@@ -6,6 +6,7 @@ config BR2_PACKAGE_NODEJS
 	depends on !BR2_MIPS_SOFT_FLOAT
 	# ARM needs BLX, so v5t+
 	depends on !BR2_ARM_CPU_ARMV4
+	depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X
 	# uses fork()
 	depends on BR2_USE_MMU
 	# uses dlopen(). On ARMv5, we could technically support static
@@ -22,9 +23,8 @@ comment "nodejs needs a toolchain w/ C++, dynamic library, threads"
 	depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel
 	depends on !BR2_MIPS_SOFT_FLOAT
 	depends on !BR2_ARM_CPU_ARMV4
-	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
-
-if BR2_PACKAGE_NODEJS
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS \
+		|| (!BR2_PACKAGE_NODEJS_0_10_X && !BR2_PACKAGE_NODEJS_5_X)
 
 # Starting with 0.12.x, on ARM, V8 (the JS engine)
 # now requires an armv6+ and a VFPv2+.
@@ -35,18 +35,14 @@ config BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
 	# On ARM, at least ARMv6+ with VFPv2+ is needed
 	default y if !BR2_ARM_CPU_ARMV5 && BR2_ARM_CPU_HAS_VFPV2
 
-choice
-	prompt "Node.js version"
-	default BR2_PACKAGE_NODEJS_0_10_X if BR2_ARM_CPU_ARMV5
-	default BR2_PACKAGE_NODEJS_5_X
-	help
-	  Select the version of Node.js you wish to use.
-
 config BR2_PACKAGE_NODEJS_0_10_X
-	bool "v0.10.41"
+	bool
+	# Only support 0.10.x on ARMv5
+	default y if BR2_ARM_CPU_ARMV5
 
 config BR2_PACKAGE_NODEJS_5_X
-	bool "v5.3.0"
+	bool
+	default y
 	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
 	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
 	depends on BR2_USE_WCHAR
@@ -55,7 +51,7 @@ comment "v5.3.0 needs a toolchain w/ gcc >= 4.8, wchar"
 	depends on BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS
 	depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 || !BR2_USE_WCHAR
 
-endchoice
+if BR2_PACKAGE_NODEJS
 
 config BR2_PACKAGE_NODEJS_VERSION_STRING
 	string
Signature · 1 line
2.5.0
#5 lore raw

PATCH v3 5/7 package/nodejs: remove version choice

Martin,

package/nodejs/Config.in config BR2_PACKAGE_NODEJS · line 9

Quoted 9 lines · Martin Bark
package/nodejs/Config.in +1 -0
index eb3aeec..1aac38e 100644
@@ -6,6 +6,7 @@ config BR2_PACKAGE_NODEJS
 	depends on !BR2_MIPS_SOFT_FLOAT
 	# ARM needs BLX, so v5t+
 	depends on !BR2_ARM_CPU_ARMV4
+	depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X

I don't like that the main BR2_PACKAGE_NODEJS option depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X.

Instead, please do something like:

BR2_PACKAGE_NODEJS_VERSION

	string
	default "5.3.0"   if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && BR2_USE_WCHAR
	default "0.10.41"

And then use BR2_PACKAGE_NODEJS_VERSION in nodejs.mk to find which version to use.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#6 lore raw

PATCH v3 5/7 package/nodejs: remove version choice

Martin, Thomas, All,

On 2015-12-23 18:56 +0100, Thomas Petazzoni spake thusly:

Quoted 16 lines · Martin Bark

package/nodejs/Config.in config BR2_PACKAGE_NODEJS · line 9

Quoted 9 lines
package/nodejs/Config.in +1 -0
index eb3aeec..1aac38e 100644
@@ -6,6 +6,7 @@ config BR2_PACKAGE_NODEJS
 	depends on !BR2_MIPS_SOFT_FLOAT
 	# ARM needs BLX, so v5t+
 	depends on !BR2_ARM_CPU_ARMV4
+	depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X

I don't like that the main BR2_PACKAGE_NODEJS option depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X.

Instead, please do something like:

Quoted 7 lines

BR2_PACKAGE_NODEJS_VERSION

	string
	default "5.3.0"   if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && BR2_USE_WCHAR
	default "0.10.41"

And then use BR2_PACKAGE_NODEJS_VERSION in nodejs.mk to find which version to use.

And even if it is not a visible option, please keep it in the if-nodejs conditional block.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#7 lore raw

PATCH v3 5/7 package/nodejs: remove version choice

In reply to Thomas Petazzoni

Thomas,

Quoted 19 lines · Thomas Petazzoni

Martin,

package/nodejs/Config.in config BR2_PACKAGE_NODEJS · line 9

Quoted 9 lines · Martin Bark
package/nodejs/Config.in +1 -0
index eb3aeec..1aac38e 100644
@@ -6,6 +6,7 @@ config BR2_PACKAGE_NODEJS
      depends on !BR2_MIPS_SOFT_FLOAT
      # ARM needs BLX, so v5t+
      depends on !BR2_ARM_CPU_ARMV4
+     depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X

I don't like that the main BR2_PACKAGE_NODEJS option depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X.

Instead, please do something like:

Quoted 7 lines

BR2_PACKAGE_NODEJS_VERSION

        string
        default "5.3.0"   if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && BR2_USE_WCHAR
        default "0.10.41"

And then use BR2_PACKAGE_NODEJS_VERSION in nodejs.mk to find which version to use.

I'm not 100% clear what you want. If BR2_PACKAGE_NODEJS does not depend on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X then you can select nodejs when some dependencies are not satisfied. This would mean 0.10.x would get installed on architectures other than armv5. I thought the idea was 0.10.x only on armv5. Can you please clarify.

Thanks

Martin

Quoted 6 lines

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

#8 lore raw

PATCH v3 5/7 package/nodejs: remove version choice

Quoted 28 lines · Martin Bark

Thomas,

Quoted 24 lines · Thomas Petazzoni

Martin,

package/nodejs/Config.in config BR2_PACKAGE_NODEJS · line 9

Quoted 9 lines · Martin Bark
package/nodejs/Config.in +1 -0
index eb3aeec..1aac38e 100644
@@ -6,6 +6,7 @@ config BR2_PACKAGE_NODEJS
      depends on !BR2_MIPS_SOFT_FLOAT
      # ARM needs BLX, so v5t+
      depends on !BR2_ARM_CPU_ARMV4
+     depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X

I don't like that the main BR2_PACKAGE_NODEJS option depends on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X.

Instead, please do something like:

BR2_PACKAGE_NODEJS_VERSION

        string
        default "5.3.0"   if BR2_PACKAGE_NODEJS_V8_ARCH_SUPPORTS && BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 && BR2_USE_WCHAR
        default "0.10.41"
Quoted 6 lines
Quoted 2 lines

And then use BR2_PACKAGE_NODEJS_VERSION in nodejs.mk to find which version to use.

I'm not 100% clear what you want. If BR2_PACKAGE_NODEJS does not depend on BR2_PACKAGE_NODEJS_0_10_X || BR2_PACKAGE_NODEJS_5_X then you can select nodejs when some dependencies are not satisfied.

No, because BR2_PACKAGE_NODEJS already has the required depends on
!BR2_ARM_CPU_ARMV4 and others, so this is not an issue.

Quoted 4 lines

This
would mean 0.10.x would get installed on architectures other than armv5. I thought the idea was 0.10.x only on armv5. Can you please clarify.

No it doesn't, with Thomas's proposal, 5.3.0 will be selected except if it is
not supported.

By the way, if/when you repost, please include the host-gcc version check
patches that I just sent, because they are conflicting.

Regards,
Arnout

Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#9 lore raw

PATCH v3 6/7 package/nodejs: fix support for uClibc-ng

In reply to Martin Bark

Fix segmentation fault in node.js when using uClibc-ng.

This patch fixes bug #8296, see
https://bugs.busybox.net/show_bug.cgi?id=8296.

---
Changes v2 -> v3
- Updated patch to mention libuv commit (Yann)
- Added patch to 0.10.41

Changes v1 -> v2
- Updated for node 5.3.0. removed patches for 0.12.9 and 4.2.3

---
 .../0.10.41/0005-Fix-support-for-uClibc-ng.patch   | 33 +++++++++++++++++++
 .../0005-Fix-crash-in-GetInterfaceAddresses.patch  | 37 ++++++++++++++++++++++
 .../5.3.0/0006-Fix-support-for-uClibc-ng.patch     | 33 +++++++++++++++++++
 3 files changed, 103 insertions(+)
 create mode 100644 package/nodejs/0.10.41/0005-Fix-support-for-uClibc-ng.patch
 create mode 100644 package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch
 create mode 100644 package/nodejs/5.3.0/0006-Fix-support-for-uClibc-ng.patch
package/nodejs/0.10.41/0005-Fix-support-for-uClibc-ng.patch new file +33 -0
new file mode 100644
index 0000000..59b9d50
@@ -0,0 +1,33 @@
+From 1cc08f6ceacbb0e5ba1f4638ca3a97ac002d7792 Mon Sep 17 00:00:00 2001
+From: "Bark, Martin" <[email protected]>
+Date: Mon, 14 Dec 2015 13:26:10 +0000
+Subject: [PATCH 2/2] Fix support for uClibc-ng
+
+uClibc-ng is currently at v1.0.9.  The patch corrects the uClibc
+version test so that HAVE_IFADDRS_H is defined for uClibc versions
+after v0.9.32.
+
+Submitted upstream to libuv and accepted, see
+https://github.com/libuv/libuv/pull/653 and
+https://github.com/libuv/libuv/commit/c861972
+
+Signed-off-by: Bark, Martin <[email protected]>
+---
+ deps/uv/src/unix/linux-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c
+index e6e6828..6cbbb71 100644
+--- a/deps/uv/src/unix/linux-core.c
++++ b/deps/uv/src/unix/linux-core.c
+@@ -39,7 +39,7 @@
+ #define HAVE_IFADDRS_H 1
+
+ #ifdef __UCLIBC__
+-# if __UCLIBC_MAJOR__ < 0 || __UCLIBC_MINOR__ < 9 || __UCLIBC_SUBLEVEL__ < 32
++# if __UCLIBC_MAJOR__ < 0 && __UCLIBC_MINOR__ < 9 && __UCLIBC_SUBLEVEL__ < 32
+ #  undef HAVE_IFADDRS_H
+ # endif
+ #endif
+--
+2.6.2
package/nodejs/5.3.0/0005-Fix-crash-in-GetInterfaceAddresses.patch new file +37 -0
new file mode 100644
index 0000000..d964290
@@ -0,0 +1,37 @@
+From 839bd9d147b2c85fe70196c86dbdbed504762caf Mon Sep 17 00:00:00 2001
+From: "Bark, Martin" <[email protected]>
+Date: Mon, 14 Dec 2015 13:27:51 +0000
+Subject: [PATCH 1/2] Fix crash in GetInterfaceAddresses
+
+If uv_interface_addresses() returns UV_ENOSYS then interfaces and count are
+uninitialised. This can cause a segmentation fault inside
+GetInterfaceAddresses when it tries to use the invalid interfaces[]. Fix
+the issue by returning from GetInterfaceAddresses on the UV_ENOSYS error.
+
+This issue was observed when using uCLibc-ng version 1.0.9 because
+uv_interface_addresses() in deps/uv/src/unix/linux-core.c incorrectly
+undefines HAVE_IFADDRS_H.
+
+Submitted upstream, see https://github.com/nodejs/node/pull/4272
+
+Signed-off-by: Martin Bark <[email protected]>
+---
+ src/node_os.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/node_os.cc b/src/node_os.cc
+index a100090..92f53a9 100644
+--- a/src/node_os.cc
++++ b/src/node_os.cc
+@@ -200,7 +200,7 @@ static void GetInterfaceAddresses(const FunctionCallbackInfo<Value>& args) {
+   ret = Object::New(env->isolate());
+ 
+   if (err == UV_ENOSYS) {
+-    args.GetReturnValue().Set(ret);
++    return args.GetReturnValue().Set(ret);
+   } else if (err) {
+     return env->ThrowUVException(err, "uv_interface_addresses");
+   }
+-- 
+2.6.2
+
package/nodejs/5.3.0/0006-Fix-support-for-uClibc-ng.patch new file +33 -0
new file mode 100644
index 0000000..59b9d50
@@ -0,0 +1,33 @@
+From 1cc08f6ceacbb0e5ba1f4638ca3a97ac002d7792 Mon Sep 17 00:00:00 2001
+From: "Bark, Martin" <[email protected]>
+Date: Mon, 14 Dec 2015 13:26:10 +0000
+Subject: [PATCH 2/2] Fix support for uClibc-ng
+
+uClibc-ng is currently at v1.0.9.  The patch corrects the uClibc
+version test so that HAVE_IFADDRS_H is defined for uClibc versions
+after v0.9.32.
+
+Submitted upstream to libuv and accepted, see
+https://github.com/libuv/libuv/pull/653 and
+https://github.com/libuv/libuv/commit/c861972
+
+Signed-off-by: Bark, Martin <[email protected]>
+---
+ deps/uv/src/unix/linux-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/deps/uv/src/unix/linux-core.c b/deps/uv/src/unix/linux-core.c
+index e6e6828..6cbbb71 100644
+--- a/deps/uv/src/unix/linux-core.c
++++ b/deps/uv/src/unix/linux-core.c
+@@ -39,7 +39,7 @@
+ #define HAVE_IFADDRS_H 1
+
+ #ifdef __UCLIBC__
+-# if __UCLIBC_MAJOR__ < 0 || __UCLIBC_MINOR__ < 9 || __UCLIBC_SUBLEVEL__ < 32
++# if __UCLIBC_MAJOR__ < 0 && __UCLIBC_MINOR__ < 9 && __UCLIBC_SUBLEVEL__ < 32
+ #  undef HAVE_IFADDRS_H
+ # endif
+ #endif
+--
+2.6.2
Signature · 1 line
2.5.0
#10 lore raw

PATCH v3 7/7 package/libuv: fix support for uClibc-ng

In reply to Martin Bark

See https://bugs.busybox.net/show_bug.cgi?id=8296 for further details on the origins of this bug.

Submitted upstream to libuv and accepted, see
https://github.com/libuv/libuv/pull/653 and
https://github.com/libuv/libuv/commit/c861972

---
Changes v2 -> v3
- Updated commit message to mention libuv commit (Yann)

Changes v1 -> v2
- Updated patch to be the same as in libuv/libuv/pull/653
- Reword commit message

---
 .../0001-unix-fix-support-for-uClibc-ng.patch      | 30 ++++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 package/libuv/0001-unix-fix-support-for-uClibc-ng.patch
package/libuv/0001-unix-fix-support-for-uClibc-ng.patch new file +30 -0
new file mode 100644
index 0000000..6aec436
@@ -0,0 +1,30 @@
+From 21dcb3a98feb3ae6ba862cfbf25fba3361bc8a9b Mon Sep 17 00:00:00 2001
+From: Martin Bark <[email protected]>
+Date: Mon, 14 Dec 2015 21:46:17 +0000
+Subject: [PATCH] unix: fix support for uClibc-ng
+
+uClibc-ng is currently at v1.0.9.  The patch corrects the uClibc
+version test so that HAVE_IFADDRS_H is defined for uClibc versions
+after v0.9.32.
+
+Signed-off-by: Martin Bark <[email protected]>
+---
+ src/unix/linux-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unix/linux-core.c b/src/unix/linux-core.c
+index 3ff6fb1..4735bc4 100644
+--- a/src/unix/linux-core.c
++++ b/src/unix/linux-core.c
+@@ -39,7 +39,7 @@
+ #define HAVE_IFADDRS_H 1
+ 
+ #ifdef __UCLIBC__
+-# if __UCLIBC_MAJOR__ < 0 || __UCLIBC_MINOR__ < 9 || __UCLIBC_SUBLEVEL__ < 32
++# if __UCLIBC_MAJOR__ < 0 && __UCLIBC_MINOR__ < 9 && __UCLIBC_SUBLEVEL__ < 32
+ #  undef HAVE_IFADDRS_H
+ # endif
+ #endif
+-- 
+2.5.0
+
Signature · 1 line
2.5.0
#11 lore raw

PATCH v3 1/7 package/nodejs: bump version to 5.3.0

In reply to Martin Bark

Dear Martin Bark,

Quoted 10 lines · Martin Bark

Replace 4.2.3 with 5.3.0. 5.3.0 is the current Stable release. See
https://nodejs.org/en/blog/release/v5.3.0 for details on the release.

Copied 4.2.3 patched to 5.3.0 with the following exceptions:
- Removed 0004-fix-arm-vfpv2.patch, committed upstream and included in 5.3.0. See https://github.com/nodejs/node/commit/84dea1bd0c
- Added 0004-Fix-va_list-not-declared.patch, fix for a new bug. This has already been fixed upstream but is not in 5.3.0

I've applied patches 1, 2, 3, 4, 6 and 7. I've left out patch 5 because I have some concerns about it. I'll reply to patch 5 with some details.

Thanks a lot!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#12 lore raw

PATCH v3 1/7 package/nodejs: bump version to 5.3.0

Thomas,

Quoted 12 lines · Thomas Petazzoni

Dear Martin Bark,

Quoted 9 lines · Martin Bark

Replace 4.2.3 with 5.3.0. 5.3.0 is the current Stable release. See
https://nodejs.org/en/blog/release/v5.3.0 for details on the release.

Copied 4.2.3 patched to 5.3.0 with the following exceptions:
- Removed 0004-fix-arm-vfpv2.patch, committed upstream and included in 5.3.0. See https://github.com/nodejs/node/commit/84dea1bd0c
- Added 0004-Fix-va_list-not-declared.patch, fix for a new bug. This has already been fixed upstream but is not in 5.3.0

Quoted 4 lines
Quoted 1 line

I've applied patches 1, 2, 3, 4, 6 and 7. I've left out patch 5 because I have some concerns about it. I'll reply to patch 5 with some details.

Thanks for that. It does not look like patch 3 "package/nodejs:
correct 0.10.x option name" got applied, is there a reason?

Thanks

Martin

Quoted 8 lines

Thanks a lot!

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

#13 lore raw

PATCH v3 1/7 package/nodejs: bump version to 5.3.0

Martin,

Quoted 5 lines · Martin Bark
Quoted 2 lines

I've applied patches 1, 2, 3, 4, 6 and 7. I've left out patch 5 because I have some concerns about it. I'll reply to patch 5 with some details.

Thanks for that. It does not look like patch 3 "package/nodejs:
correct 0.10.x option name" got applied, is there a reason?

Absolutely my bad. I just applied it now.

Thanks for spotting the issue!

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com