1 Commits

Author SHA1 Message Date
sbwml fe70be2e61 node: init packages-25.12
Signed-off-by: sbwml <admin@cooluc.com>
2026-05-04 17:05:27 +08:00
2 changed files with 24 additions and 28 deletions
+17 -24
View File
@@ -8,17 +8,15 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=node
PKG_BASE:=packages-24.10
PKG_VERSION:=$(shell curl -s https://downloads.openwrt.org/releases/$(PKG_BASE)/aarch64_generic/packages/Packages | grep -oP '(?<=Filename: node_)\d+\.\d+\.\d+-r\d+')
PKG_BUILD_VERSION:=$(shell curl -s https://downloads.openwrt.org/releases/$(PKG_BASE)/$(ARCH_PACKAGES)/packages/Packages | grep -oP '(?<=Filename: node_)\d+\.\d+\.\d+-r\d+')
PKG_MAJOR_VERSION:=v$(shell echo $(PKG_BUILD_VERSION) | sed 's/-.*//')
PKG_VERSION:=$(shell curl -s https://api.github.com/repos/sbwml/node_workflow/tags | grep '"name"' | head -n 1 | sed -E 's/.*"name": "v([^"]+)".*/\1/')
PKG_RELEASE:=1
PKG_MAINTAINER:=Hirokazu MORIKAWA <morikw2@gmail.com>, Adrian Panella <ianchi74@outlook.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:nodejs:node.js
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_BUILD_VERSION)
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
@@ -29,9 +27,9 @@ define Package/node
SUBMENU:=Node.js
TITLE:=Node.js is a platform built on Chrome's JavaScript runtime
URL:=https://nodejs.org/
DEPENDS:=@USE_MUSL @HAS_FPU @(i386||x86_64||arm||aarch64||mipsel) \
+libstdcpp +libopenssl +zlib +libnghttp2 +libuv \
+libcares +libatomic +NODEJS_ICU_SYSTEM:icu +NODEJS_ICU_SYSTEM:icu-full-data
DEPENDS:=@USE_MUSL @HAS_FPU @(i386||x86_64||arm||aarch64) \
+libstdcpp +libopenssl +zlib +libnghttp2 \
+libcares +libatomic
endef
define Package/node/description
@@ -40,7 +38,7 @@ define Package/node/description
package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
*** The following preparations must be made on the host side. ***
1. gcc 10.1 or higher is required.
1. gcc 12.2 or higher is required.
2. To build a 32-bit target, gcc-multilib, g++-multilib are required.
3. Requires libatomic package. (If necessary, install the 32-bit library at the same time.)
ex) sudo apt-get install gcc-multilib g++-multilib
@@ -60,35 +58,30 @@ define Package/node-npm/description
endef
ifeq ($(HOST_ARCH),x86_64)
NODE_ARCH:=x64
NODE_HOST_ARCH:=x64
endif
ifeq ($(HOST_ARCH),aarch64)
NODE_ARCH:=arm64
NODE_HOST_ARCH:=arm64
endif
define Host/Compile
( \
pushd $(HOST_BUILD_DIR) ; \
$(RM) node-v* ; \
wget https://nodejs.org/dist/$(PKG_MAJOR_VERSION)/node-$(PKG_MAJOR_VERSION)-linux-$(NODE_ARCH).tar.xz ; \
$(TAR) -xf node-$(PKG_MAJOR_VERSION)-linux-$(NODE_ARCH).tar.xz ; \
$(RM) node-v* ; \
wget https://nodejs.org/dist/v$(PKG_VERSION)/node-v$(PKG_VERSION)-linux-$(NODE_HOST_ARCH).tar.xz ; \
$(TAR) -xf node-v$(PKG_VERSION)-linux-$(NODE_HOST_ARCH).tar.xz ; \
popd ; \
)
endef
define Build/Compile
( \
echo $(ARCH_PACKAGES) ; \
pushd $(PKG_BUILD_DIR) ; \
wget https://downloads.openwrt.org/releases/$(PKG_BASE)/$(ARCH_PACKAGES)/packages/node_$(PKG_BUILD_VERSION)_$(ARCH_PACKAGES).ipk ; \
$(TAR) -zxf node_$(PKG_BUILD_VERSION)_$(ARCH_PACKAGES).ipk ; \
$(TAR) -zxf data.tar.gz ; \
rm -f data.tar.gz control.tar.gz debian-binary ; \
wget https://downloads.openwrt.org/releases/$(PKG_BASE)/$(ARCH_PACKAGES)/packages/node-npm_$(PKG_BUILD_VERSION)_$(ARCH_PACKAGES).ipk ; \
$(TAR) -zxf node-npm_$(PKG_BUILD_VERSION)_$(ARCH_PACKAGES).ipk ; \
$(TAR) -zxf data.tar.gz ; \
rm -f data.tar.gz control.tar.gz debian-binary ; \
wget https://github.com/sbwml/node_workflow/releases/download/v$(PKG_VERSION)/$(ARCH_PACKAGES).tar.gz ; \
$(TAR) -zxf $(ARCH_PACKAGES).tar.gz ; \
$(STAGING_DIR_HOST)/bin/apk extract --allow-untrusted *.apk ; \
$(RM) *.tar.gz *.apk ; \
popd ; \
)
endef
@@ -112,7 +105,7 @@ define Package/node-npm/install
endef
define Host/Install
$(CP) $(HOST_BUILD_DIR)/node-$(PKG_MAJOR_VERSION)-linux-$(NODE_ARCH)/* $(STAGING_DIR_HOST)/
$(CP) $(HOST_BUILD_DIR)/node-v$(PKG_VERSION)-linux-$(NODE_HOST_ARCH)/* $(STAGING_DIR_HOST)/
endef
$(eval $(call HostBuild))
+7 -4
View File
@@ -1,8 +1,11 @@
# openwrt-24.10 - node
## openwrt-25.12 - Fast Build for Node.js Dependent Packages
### quickly build package that require node dependent
When building packages that require Node.js on the OpenWrt branch, use the prebuilt Node.js feed instead of compiling Node.js from source. This approach significantly reduces build time and ensures compatibility with dependent packages.
```shell
```bash
# remove the default Node.js feed
rm -rf feeds/packages/lang/node
git clone https://github.com/sbwml/feeds_packages_lang_node-prebuilt -b packages-24.10 feeds/packages/lang/node
# clone the prebuilt Node.js feed (packages-25.12 branch)
git clone https://github.com/sbwml/feeds_packages_lang_node -b packages-25.12 feeds/packages/lang/node
```