diff options
author | Karel Kočí <cynerd@email.cz> | 2018-09-08 08:31:34 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2018-09-08 08:31:34 +0200 |
commit | 28093a126b913ea9629ac0a341c71be7c5e06763 (patch) | |
tree | 393ad0bb1751fee067469447e86ed9a7a4c27698 | |
parent | 5a113c99487c68c2179719a3b031d0235016ecc9 (diff) | |
download | openwrt-personal-pkgs-28093a126b913ea9629ac0a341c71be7c5e06763.tar.gz openwrt-personal-pkgs-28093a126b913ea9629ac0a341c71be7c5e06763.tar.bz2 openwrt-personal-pkgs-28093a126b913ea9629ac0a341c71be7c5e06763.zip |
Add copy of node from packages repository
We need host build that is not build and feeds are not available in SDK
so just recompile our own node to have host build.
-rw-r--r-- | node/Makefile | 83 | ||||
-rw-r--r-- | node/patches/001-hardfloat.patch | 12 | ||||
-rw-r--r-- | node/patches/002-addr_info.patch | 10 | ||||
-rw-r--r-- | node/patches/003-path.patch | 12 |
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')); |