summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--node/Makefile83
-rw-r--r--node/patches/001-hardfloat.patch12
-rw-r--r--node/patches/002-addr_info.patch10
-rw-r--r--node/patches/003-path.patch12
4 files changed, 117 insertions, 0 deletions
diff --git a/node/Makefile b/node/Makefile
new file mode 100644
index 0000000..4f9aa79
--- /dev/null
+++ b/node/Makefile
@@ -0,0 +1,83 @@
+#
+# Copyright (C) 2006-2016 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=node
+PKG_VERSION:=v4.4.5
+PKG_RELEASE:=1
+
+PKG_SOURCE:=node-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION}
+PKG_MD5SUM:=376140907bbe362f36065a30af04f020
+
+HOST_BUILD_DEPENDS:=python/host
+PKG_BUILD_DEPENDS:=python/host
+PKG_INSTALL:=1
+PKG_USE_MIPS16:=0
+
+HOST_BUILD_PARALLEL:=1
+PKG_BUILD_PARALLEL:=1
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/node
+ SECTION:=lang
+ CATEGORY:=Languages
+ SUBMENU:=Node.js
+ TITLE:=Node.js is a platform built on Chrome's JavaScript runtime
+ URL:=http://nodejs.org/
+ DEPENDS:=+libpthread +librt +libstdcpp +libopenssl +zlib
+endef
+
+define Package/node/description
+ Node.jsĀ® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses
+ an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js'
+ package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
+endef
+
+CPU:=$(subst aarch64,arm64,$(subst x86_64,x64,$(subst i386,ia32,$(ARCH))))
+
+MAKE_VARS += \
+ DESTCPU=$(CPU)
+
+CONFIGURE_ARGS= \
+ --dest-cpu=$(CPU) \
+ --dest-os=linux \
+ --without-snapshot \
+ --shared-zlib \
+ --shared-openssl \
+ --prefix=/usr
+
+HOST_CONFIGURE_VARS:=
+HOST_CONFIGURE_ARGS:= \
+ --dest-os=linux \
+ --without-snapshot \
+ --prefix=$(STAGING_DIR)/host/
+
+HOST_CONFIGURE_CMD:=python ./configure
+
+define Build/InstallDev
+ $(INSTALL_DIR) $(1)/usr/include
+ $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+endef
+
+define Package/node/install
+ mkdir -p $(1)/usr/bin $(1)/usr/lib/node_modules/npm/{bin,lib,node_modules}
+ $(CP) $(PKG_INSTALL_DIR)/usr/bin/{node,npm} $(1)/usr/bin/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/{package.json,LICENSE,cli.js} $(1)/usr/lib/node_modules/npm
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/bin/npm-cli.js $(1)/usr/lib/node_modules/npm/bin
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/lib/* $(1)/usr/lib/node_modules/npm/lib/
+ $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/node_modules/* $(1)/usr/lib/node_modules/npm/node_modules/
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,node))
diff --git a/node/patches/001-hardfloat.patch b/node/patches/001-hardfloat.patch
new file mode 100644
index 0000000..1bb2493
--- /dev/null
+++ b/node/patches/001-hardfloat.patch
@@ -0,0 +1,12 @@
+diff --git a/deps/v8/src/base/cpu.cc b/deps/v8/src/base/cpu.cc
+index 4f58720..1f3071e 100644
+--- a/deps/v8/src/base/cpu.cc
++++ b/deps/v8/src/base/cpu.cc
+@@ -143,6 +143,7 @@ int __detect_fp64_mode(void) {
+ ".set push\n\t"
+ ".set noreorder\n\t"
+ ".set oddspreg\n\t"
++ ".set hardfloat\n\t"
+ "lui $t0, 0x3FF0\n\t"
+ "ldc1 $f0, %0\n\t"
+ "mtc1 $t0, $f1\n\t"
diff --git a/node/patches/002-addr_info.patch b/node/patches/002-addr_info.patch
new file mode 100644
index 0000000..0aa02da
--- /dev/null
+++ b/node/patches/002-addr_info.patch
@@ -0,0 +1,10 @@
+--- a/deps/uv/src/unix/getaddrinfo.c
++++ b/deps/uv/src/unix/getaddrinfo.c
+@@ -99,6 +99,7 @@ static void uv__getaddrinfo_work(struct
+ int err;
+
+ req = container_of(w, uv_getaddrinfo_t, work_req);
++ req->hints->ai_flags &= ~AI_V4MAPPED;
+ err = getaddrinfo(req->hostname, req->service, req->hints, &req->addrinfo);
+ req->retcode = uv__getaddrinfo_translate_error(err);
+ }
diff --git a/node/patches/003-path.patch b/node/patches/003-path.patch
new file mode 100644
index 0000000..01a71c6
--- /dev/null
+++ b/node/patches/003-path.patch
@@ -0,0 +1,12 @@
+--- a/lib/module.js
++++ b/lib/module.js
+@@ -453,7 +453,8 @@ Module._initPaths = function() {
+ homeDir = process.env.HOME;
+ }
+
+- var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')];
++ var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node'),
++ path.resolve(process.execPath, '..', '..', 'lib', 'node_modules')];
+
+ if (homeDir) {
+ paths.unshift(path.resolve(homeDir, '.node_libraries'));