Skip to contentSkip to conversation

package/iojs: new package

PATCH New Jörg Krause 4 participants 6 messages Jan 14, 2015 – Jan 20, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/iojs: new package

io.js is a fork of Node.js. This package is mainly based on the nodejs package, except for the patches.

io.js is currently marked as unstable and there is no stable release for now.

---
 package/Config.in                                  |   1 +
 ...-deps-remove-python-import-of-bz2-in-js2c.patch |  30 +++++
 .../0002-deps-fix-musl-build-error-for-v8.patch    |  30 +++++
 .../0003-deps-fix-uClibc-build-errors-for-v8.patch |  97 ++++++++++++++++
 package/iojs/Config.in                             |  87 ++++++++++++++
 package/iojs/iojs.hash                             |   2 +
 package/iojs/iojs.mk                               | 128 +++++++++++++++++++++
 7 files changed, 375 insertions(+)
 create mode 100644 package/iojs/0001-deps-remove-python-import-of-bz2-in-js2c.patch
 create mode 100644 package/iojs/0002-deps-fix-musl-build-error-for-v8.patch
 create mode 100644 package/iojs/0003-deps-fix-uClibc-build-errors-for-v8.patch
 create mode 100644 package/iojs/Config.in
 create mode 100644 package/iojs/iojs.hash
 create mode 100644 package/iojs/iojs.mk
package/Config.in +1 -0
index 7bd31e8..418026c 100644
@@ -400,6 +400,7 @@ menu "Interpreter languages and scripting"
 	source "package/erlang/Config.in"
 	source "package/guile/Config.in"
 	source "package/haserl/Config.in"
+	source "package/iojs/Config.in"
 	source "package/jamvm/Config.in"
 	source "package/jimtcl/Config.in"
 	source "package/lua/Config.in"
package/iojs/0001-deps-remove-python-import-of-bz2-in-js2c.patch new file +30 -0
new file mode 100644
index 0000000..e23ea06
@@ -0,0 +1,30 @@
+From 7ab03529c34c43c147f09b21c3346130d075928d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <[email protected]>
+Date: Mon, 12 Jan 2015 23:00:13 +0100
+Subject: [PATCH 1/3] deps: remove python import of bz2 in js2c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The bz2 module is never used in this python script. In the io.js build, this
+allows to remove the dependency on this module.
+
+Signed-off-by: J?rg Krause <[email protected]>
+---
+ deps/v8/tools/js2c.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/deps/v8/tools/js2c.py b/deps/v8/tools/js2c.py
+index 621ed5a..096a4eb 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.2.2
package/iojs/0002-deps-fix-musl-build-error-for-v8.patch new file +30 -0
new file mode 100644
index 0000000..3bfa3cd
@@ -0,0 +1,30 @@
+From 9adaa4f87cbbd56362f0d3fba204e147a74b22c3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Krause?= <[email protected]>
+Date: Mon, 12 Jan 2015 23:14:13 +0100
+Subject: [PATCH 2/3] deps: fix musl build error for v8
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With the musl C library, building V8 fails because __ARM_NR_cacheflush is
+undeclared. Fix this by including <asm/unistd.h>.
+
+Signed-off-by: J?rg Krause <[email protected]>
+---
+ deps/v8/src/arm/cpu-arm.cc | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/deps/v8/src/arm/cpu-arm.cc b/deps/v8/src/arm/cpu-arm.cc
+index 4a34070..c94e30c 100644
+--- a/deps/v8/src/arm/cpu-arm.cc
++++ b/deps/v8/src/arm/cpu-arm.cc
+@@ -16,6 +16,7 @@
+
+ #if V8_TARGET_ARCH_ARM
+
++#include <asm/unistd.h>
+ #include "src/assembler.h"
+ #include "src/macro-assembler.h"
+ #include "src/simulator.h"  // for cache flushing.
+--
+2.2.2
package/iojs/0003-deps-fix-uClibc-build-errors-for-v8.patch new file +97 -0

97 lines not on this page · raw message

package/iojs/Config.in new file +87 -0

87 lines not on this page · raw message

package/iojs/iojs.hash new file +2 -0
new file mode 100644
index 0000000..8ed3d3e
@@ -0,0 +1,2 @@
+# From https://iojs.org/dist/v1.0.1/SHASUMS256.txt
+sha256	c26052dad5d9ccd8a7b9134806994ebf2d217a57d6efd5633e01c5cc1dcdedc5  iojs-v1.0.1.tar.gz
package/iojs/iojs.mk new file +128 -0

128 lines not on this page · raw message

Signature · 1 line
2.2.2
#1 lore raw

PATCH 1/1 package/iojs: new package

Hi J?rg,

On Thu, Jan 15, 2015 at 12:38:16AM +0100, J?rg Krause wrote:
[...]

Quoted 21 lines
package/iojs/Config.in new file +15 -0
new file mode 100644
index 0000000..189b89f
@@ -0,0 +1,87 @@
+config BR2_PACKAGE_IOJS
+	bool "iojs"
+	depends on BR2_INET_IPV6
+	depends on BR2_LARGEFILE
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel
+	depends on !BR2_MIPS_SOFT_FLOAT
+	# ARM needs BLX, so v5t+
+	depends on !BR2_ARM_CPU_ARMV4
+	# uses fork()
+	depends on BR2_USE_MMU
+	select BR2_PACKAGE_ZLIB
+	help
+	  io.js is a JavaScript platform built on Chrome's V8 runtime. io.js

package/iojs/Config.in line 25

Quoted 10 lines
package/iojs/Config.in new file +10 -0
+	  originally based on Node.js and is compatible with the npm ecosystem.
+
+	  http://iojs.org/
+
+comment "iojs needs a toolchain w/ C++, IPv6, largefile, threads"
+	depends on BR2_USE_MMU
+	depends on BR2_arm || BR2_i386 || BR2_x86_64 || BR2_mipsel
+	depends on !BR2_ARM_CPU_ARMV4
+	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_LARGEFILE || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_INET_IPV6

Missing 'depends on !BR2_MIPS_SOFT_FLOAT'.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
#2 lore raw

PATCH 1/1 package/iojs: new package

In reply to Jörg Krause

Dear J?rg Krause,

Quoted 6 lines · J?rg Krause

io.js is a fork of Node.js. This package is mainly based on the nodejs package, except for the patches.

io.js is currently marked as unstable and there is no stable release for now.

Immediate question that comes to mind: is the code base diverging from Node.js ? Do we need two separate packages ? Does this fork has a chance of becoming widely used ? I'm a bit concerned by the fact of having two separate packages for basically the same thing.

Thanks,

Thomas

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

PATCH 1/1 package/iojs: new package

Dear Thomas Petazzoni,

Quoted 6 lines · Thomas Petazzoni

Dear J?rg Krause,

Quoted 3 lines · J?rg Krause

io.js is a fork of Node.js. This package is mainly based on the nodejs package, except for the patches.

Quoted 6 lines
Quoted 3 lines

io.js is currently marked as unstable and there is no stable release for now.

Immediate question that comes to mind: is the code base diverging from Node.js ?

Yes, it is.

Quoted 1 line

Do we need two separate packages ?

I would say yes. io.js is build against modern versions of V8 and libuv and bundles a recent npm package. This enables the user the new features from the upcoming JavaScript ECMA-262 specification (ES6).

From io.js ChangeLog:
"The io.js codebase inherits the majority of the changes found in the v0.11 branch of the joyent/node repository and therefore can be seen as an extension to v0.11."

Quoted 2 lines

Does this fork has a chance of becoming widely used ? I'm a bit concerned by the fact of having two separate packages for basically the same thing.

I think of Node.js as an enterprise-driven and io.js as an community-driven project. Both have different goals, and will have different feature sets in the future. IMO it's good for the user to decide, which platform he want to use concerning his demands.

Best regards
J?rg Krause

#4 lore raw

PATCH 1/1 package/iojs: new package

J?rg, All,

On 2015-01-15 20:58 +0100, J?rg Krause spake thusly:

Quoted 16 lines · Thomas Petazzoni
Quoted 10 lines · J?rg Krause
Quoted 6 lines

io.js is a fork of Node.js. This package is mainly based on the nodejs package, except for the patches.

io.js is currently marked as unstable and there is no stable release for now.

Immediate question that comes to mind: is the code base diverging from Node.js ?

Yes, it is.

Quoted 1 line

Do we need two separate packages ?

Quoted 8 lines

I would say yes. io.js is build against modern versions of V8 and libuv and bundles a recent npm package. This enables the user the new features from the upcoming JavaScript ECMA-262 specification (ES6).

From io.js ChangeLog:
"The io.js codebase inherits the majority of the changes found in the v0.11 branch of the joyent/node repository and therefore can be seen as an extension to v0.11."

OK, so in the long run, will we need to have a virtual package for the NodeJS feature?

That is, are there packages that would work with either NodeJS or iojs?

We need not add such a virtual package for now, but will need to when/if we package in Buildroot new packages that can use either one.

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.  |
'------------------------------^-------^------------------^--------------------'
#5 lore raw

PATCH 1/1 package/iojs: new package

Hi Yann,

Quoted 28 lines · Yann E. MORIN

J?rg, All,

On 2015-01-15 20:58 +0100, J?rg Krause spake thusly:

Quoted 16 lines · Thomas Petazzoni
Quoted 10 lines · J?rg Krause
Quoted 6 lines

io.js is a fork of Node.js. This package is mainly based on the nodejs package, except for the patches.

io.js is currently marked as unstable and there is no stable release for now.

Immediate question that comes to mind: is the code base diverging from Node.js ?

Yes, it is.

Quoted 1 line

Do we need two separate packages ?

Quoted 8 lines

I would say yes. io.js is build against modern versions of V8 and libuv and bundles a recent npm package. This enables the user the new features from the upcoming JavaScript ECMA-262 specification (ES6).

From io.js ChangeLog:
"The io.js codebase inherits the majority of the changes found in the v0.11 branch of the joyent/node repository and therefore can be seen as an extension to v0.11."

Quoted 7 lines

OK, so in the long run, will we need to have a virtual package for the NodeJS feature?

That is, are there packages that would work with either NodeJS or iojs?

We need not add such a virtual package for now, but will need to when/if we package in Buildroot new packages that can use either one.

I'm not quite sure if I get you right.

We would have two packages: nodejs and iojs. Node.js uses npm as package management system. iojs is based on Node.js and compatible to npm. In Buildroot, additional modules for Node.js are installed with BR2_PACKAGE_NODEJS_MODULES_ADDITIONAL.

Additional modules for io.js will be installed with BR2_PACKAGE_IOJS_MODULES_ADDITIONAL.

This is the config menu:
[*] iojs
Module Selection --->
() Additional modules

[] nodejs
Module Selection --->
() Additional modules

There are no packages in Buildroot which depends on or selects the package nodejs (or iojs).

Best regards
J?rg