aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRene Ladan <rene@FreeBSD.org>2026-10-13 20:24:33 +0000
committerRene Ladan <rene@FreeBSD.org>2026-10-13 20:24:59 +0000
commite84ea0bd409f94ac706677f4a58811865f2e6f0c (patch)
tree581f84cdca6021b62b5e9e156496dfbe285b14fe
parent9266795ea9b229e181c35170cdcbbedfe8d5405d (diff)
cleanup: Remove node20 expired ports:
2026-05-31 www/node20: Node.js 20.* has reached its EoL on 2026-04-30. Use Node.js 24.* (www/node24) instead www/yarn-node20: part of www/node20 www/npm-node20: part of www/node20
-rw-r--r--MOVED3
-rw-r--r--www/Makefile3
-rw-r--r--www/node20/Makefile115
-rw-r--r--www/node20/Makefile.version1
-rw-r--r--www/node20/distinfo3
-rw-r--r--www/node20/files/patch-common.gypi20
-rw-r--r--www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi11
-rw-r--r--www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi11
-rw-r--r--www/node20/files/patch-deps_openssl_openssl-cl__no__asm.gypi17
-rw-r--r--www/node20/files/patch-deps_openssl_openssl__no__asm.gypi11
-rw-r--r--www/node20/files/patch-deps_v8_src_base_platform_platform-freebsd.cc13
-rw-r--r--www/node20/files/patch-deps_v8_src_codegen_arm_cpu-arm.cc18
-rw-r--r--www/node20/files/patch-deps_v8_src_codegen_ppc_constants-ppc.h20
-rw-r--r--www/node20/files/patch-deps_v8_src_libsampler_sampler.cc13
-rw-r--r--www/node20/files/patch-node.gypi12
-rw-r--r--www/node20/files/patch-openssl315
-rw-r--r--www/node20/files/patch-src_cares__wrap.h11
-rw-r--r--www/node20/files/patch-tools_v8__gypfiles_v8.gyp11
-rw-r--r--www/node20/pkg-descr2
-rw-r--r--www/node20/pkg-message7
-rw-r--r--www/node20/pkg-plist109
-rw-r--r--www/npm-node20/Makefile5
-rw-r--r--www/yarn-node20/Makefile5
23 files changed, 3 insertions, 433 deletions
diff --git a/MOVED b/MOVED
index 13736216eeac..6af906bf0400 100644
--- a/MOVED
+++ b/MOVED
@@ -5735,3 +5735,6 @@ math/mumps|math/mumps-edf|2026-10-07|Repomove to math/mumps-edf
math/mumps4|math/mumps|2026-10-07|Repomove to math/mumps
textproc/py-hieroglyph||2026-10-09|Has expired: Broken with textproc/py-sphinx 7 and newer, last upstream release in 2020
graphics/kamerka||2026-10-11|Remove abandonware
+www/node20||2026-10-13|Has expired: Node.js 20.* has reached its EoL on 2026-04-30. Use Node.js 24.* (www/node24) instead
+www/yarn-node20||2026-10-13|Removed, part of expired www/node20
+www/npm-node20||2026-10-13|Removed, part of expired www/node20
diff --git a/www/Makefile b/www/Makefile
index 1eec0b18d360..fcbe3c3eff85 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -553,7 +553,6 @@
SUBDIR += nginx-ultimate-bad-bot-blocker
SUBDIR += nift
SUBDIR += node
- SUBDIR += node20
SUBDIR += node22
SUBDIR += node24
SUBDIR += node26
@@ -561,7 +560,6 @@
SUBDIR += novnc
SUBDIR += npc
SUBDIR += npm
- SUBDIR += npm-node20
SUBDIR += npm-node22
SUBDIR += npm-node24
SUBDIR += npm-node26
@@ -2791,7 +2789,6 @@
SUBDIR += xurls
SUBDIR += yabb
SUBDIR += yarn
- SUBDIR += yarn-node20
SUBDIR += yarn-node22
SUBDIR += yarn-node24
SUBDIR += yarn-node26
diff --git a/www/node20/Makefile b/www/node20/Makefile
deleted file mode 100644
index 6cadb83c40c8..000000000000
--- a/www/node20/Makefile
+++ /dev/null
@@ -1,115 +0,0 @@
-PORTNAME= node
-PORTVERSION= ${NODEJS_PORTVERSION}
-DISTVERSIONPREFIX= v
-PORTREVISION= 3
-CATEGORIES= www
-MASTER_SITES= https://nodejs.org/dist/v${PORTVERSION}/
-PKGNAMESUFFIX= ${PORTVERSION:R:R}
-
-MAINTAINER= sunpoet@FreeBSD.org
-COMMENT= V8 JavaScript for client and server
-WWW= https://nodejs.org/ \
- https://github.com/nodejs/node
-
-LICENSE= MIT
-LICENSE_FILE= ${WRKSRC}/LICENSE
-
-BROKEN_SSL= libressl libressl-devel
-BROKEN_SSL_REASON= Node.js ${PORTVERSION:R:R}.x requires OpenSSL or the BUNDLED_SSL option enabled
-DEPRECATED= Node.js 20.* has reached its EoL on 2026-04-30. Use Node.js 24.* (www/node24) instead
-EXPIRATION_DATE=2026-05-31
-ONLY_FOR_ARCHS= aarch64 amd64 armv6 armv7 i386 powerpc64 powerpc64le
-
-BUILD_DEPENDS= objdump:devel/binutils
-LIB_DEPENDS= libbrotlidec.so:archivers/brotli \
- libcares.so:dns/c-ares \
- libicui18n.so:devel/icu \
- libllhttp.so:www/llhttp \
- libnghttp2.so:www/libnghttp2 \
- libnghttp3.so:www/libnghttp3 \
- libngtcp2.so:net/libngtcp2 \
- libsimdjson.so:devel/simdjson \
- libuv.so:devel/libuv
-RUN_DEPENDS= corepack>=0:www/corepack
-
-USES= compiler:c++20-lang gmake localbase pkgconfig python:build shebangfix tar:xz
-
-CONFIGURE_ARGS= --prefix=${PREFIX:S|^${DESTDIR}||} \
- --shared-brotli \
- --shared-cares \
- --shared-http-parser \
- --shared-http-parser-libname=llhttp \
- --shared-libuv \
- --shared-nghttp2 \
- --shared-nghttp3 \
- --shared-ngtcp2 \
- --shared-simdjson \
- --shared-zlib \
- --with-intl=system-icu \
- --without-corepack \
- --without-npm
-CXXFLAGS_powerpc64= -mpower8-vector
-HAS_CONFIGURE= yes
-MAKE_ENV= CC.host="${CCACHE_BIN} ${CC}" \
- CFLAGS.host="${CFLAGS}" \
- CXX.host="${CCACHE_BIN} ${CXX}" \
- CXXFLAGS.host="${CXXFLAGS}" \
- LDFLAGS.host="${LDFLAGS}" \
- LINK.host="${CXX}"
-REINPLACE_ARGS= -i ''
-
-CONFLICTS_INSTALL= node[0-9][0-9]
-
-SHEBANG_FILES= deps/v8/third_party/inspector_protocol/*.py \
- deps/v8/tools/*.py \
- tools/*.py \
- tools/inspector_protocol/*.py
-
-OPTIONS_DEFINE= BUNDLED_SSL DOCS JIT
-OPTIONS_DEFAULT=JIT
-OPTIONS_SUB= yes
-BUNDLED_SSL_DESC= Use bundled OpenSSL implementation from node.js
-JIT_DESC= Use Just In Time compiler
-
-BUNDLED_SSL_CONFIGURE_OFF= --openssl-use-def-ca-store --shared-openssl
-BUNDLED_SSL_USES_OFF= ssl
-JIT_CONFIGURE_OFF= --v8-lite-mode
-
-.include "Makefile.version"
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MBUNDLED_SSL} && ${ARCH} != amd64
-CONFIGURE_ARGS+=--openssl-no-asm
-.endif
-
-post-patch:
- @${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/tools/v8_gypfiles/v8.gyp
-# Clean up bundled libraries
- @${RM} -r ${WRKSRC}/deps/brotli/
- @${RM} -r ${WRKSRC}/deps/cares/
- @${RM} -r ${WRKSRC}/deps/corepack/
- @${RM} -r ${WRKSRC}/deps/icu-small/
- @${RM} -r ${WRKSRC}/deps/llhttp/
- @${RM} -r ${WRKSRC}/deps/nghttp2/
- @${RM} -r ${WRKSRC}/deps/ngtcp2/
- @${RM} -r ${WRKSRC}/deps/npm/
- @${RM} -r ${WRKSRC}/deps/simdjson/
- @${RM} -r ${WRKSRC}/deps/uv/
- @${RM} -r ${WRKSRC}/deps/zlib/
-
-post-configure:
- # Post-process Makefile and *.mk files created by node-gyp and remove
- # all occurrences of -I${LOCALBASE}/include. C*FLAGS include this
- # before all -I../deps/* for bundled code. This can cause build
- # breakages if the dependency is installed in ${LOCALBASE}. The
- # USES+=localbase above will ensure that we pick up includes for real
- # external dependencies.
- @${FIND} ${WRKSRC}/out -type f -print0 | ${XARGS} -0 ${REINPLACE_CMD} -e "s|-I${LOCALBASE}/include||g"
-
-post-install:
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/node
-
-post-install-BUNDLED_SSL-on:
- cd ${STAGEDIR}${PREFIX} && ${FIND} include/node/openssl/ -type f >> ${TMPPLIST}
-
-.include <bsd.port.mk>
diff --git a/www/node20/Makefile.version b/www/node20/Makefile.version
deleted file mode 100644
index 6202831d131e..000000000000
--- a/www/node20/Makefile.version
+++ /dev/null
@@ -1 +0,0 @@
-NODEJS_PORTVERSION= 20.20.2
diff --git a/www/node20/distinfo b/www/node20/distinfo
deleted file mode 100644
index a1c5c8486ab9..000000000000
--- a/www/node20/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1775424012
-SHA256 (node-v20.20.2.tar.xz) = 7aeeacdb858299e09a3e0510d4bb8b266923894a9e3ac0058ba89d4ecf4a4cca
-SIZE (node-v20.20.2.tar.xz) = 42662736
diff --git a/www/node20/files/patch-common.gypi b/www/node20/files/patch-common.gypi
deleted file mode 100644
index c1a1298912e1..000000000000
--- a/www/node20/files/patch-common.gypi
+++ /dev/null
@@ -1,20 +0,0 @@
---- common.gypi.orig 2023-07-20 18:27:37 UTC
-+++ common.gypi
-@@ -426,7 +426,7 @@
- 'ldflags': [ '-m32' ],
- }],
- [ 'host_arch=="ppc64" and OS not in "aix os400"', {
-- 'cflags': [ '-m64', '-mminimal-toc' ],
-+ 'cflags': [ '-m64' ],
- 'ldflags': [ '-m64' ],
- }],
- [ 'host_arch=="s390x" and OS=="linux"', {
-@@ -450,7 +450,7 @@
- 'ldflags': [ '-m32' ],
- }],
- [ 'target_arch=="ppc64" and OS not in "aix os400"', {
-- 'cflags': [ '-m64', '-mminimal-toc' ],
-+ 'cflags': [ '-m64' ],
- 'ldflags': [ '-m64' ],
- }],
- [ 'target_arch=="s390x" and OS=="linux"', {
diff --git a/www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi b/www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi
deleted file mode 100644
index 281de6be8ee2..000000000000
--- a/www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl-cl.gypi
+++ /dev/null
@@ -1,11 +0,0 @@
---- deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi.orig 2023-05-16 06:58:19 UTC
-+++ deps/openssl/config/archs/linux-elf/no-asm/openssl-cl.gypi
-@@ -13,7 +13,7 @@
- '-Wall -O3 -fomit-frame-pointer',
- ],
- 'openssl_ex_libs_linux-elf': [
-- '-ldl -pthread',
-+ '-pthread',
- ],
- 'openssl_cli_srcs_linux-elf': [
- 'openssl/apps/lib/cmp_mock_srv.c',
diff --git a/www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi b/www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi
deleted file mode 100644
index 5a7ce627e099..000000000000
--- a/www/node20/files/patch-deps_openssl_config_archs_linux-elf_no-asm_openssl.gypi
+++ /dev/null
@@ -1,11 +0,0 @@
---- deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi.orig 2023-05-16 06:58:19 UTC
-+++ deps/openssl/config/archs/linux-elf/no-asm/openssl.gypi
-@@ -977,7 +977,7 @@
- '-Wall -O3 -fomit-frame-pointer',
- ],
- 'openssl_ex_libs_linux-elf': [
-- '-ldl -pthread',
-+ '-pthread',
- ],
- },
- 'include_dirs': [
diff --git a/www/node20/files/patch-deps_openssl_openssl-cl__no__asm.gypi b/www/node20/files/patch-deps_openssl_openssl-cl__no__asm.gypi
deleted file mode 100644
index 00ceb3bb0b64..000000000000
--- a/www/node20/files/patch-deps_openssl_openssl-cl__no__asm.gypi
+++ /dev/null
@@ -1,17 +0,0 @@
---- deps/openssl/openssl-cl_no_asm.gypi.orig 2023-11-22 10:13:54 UTC
-+++ deps/openssl/openssl-cl_no_asm.gypi
-@@ -1,4 +1,5 @@
- {
-+ 'defines': ['OPENSSL_NO_ASM'],
- 'conditions': [
- ['target_arch=="ppc64" and OS in ("aix", "os400")', {
- 'includes': ['config/archs/aix64-gcc-as/no-asm/openssl-cl.gypi'],
-@@ -45,7 +46,7 @@
- 'includes': ['config/archs/linux64-loongarch64/no-asm/openssl-cl.gypi'],
- }, {
- # Other architectures don't use assembly
-- 'includes': ['config/archs/linux-x86_64/no-asm/openssl-cl.gypi'],
-+ 'includes': ['config/archs/linux-elf/no-asm/openssl-cl.gypi'],
- }],
- ],
- }
diff --git a/www/node20/files/patch-deps_openssl_openssl__no__asm.gypi b/www/node20/files/patch-deps_openssl_openssl__no__asm.gypi
deleted file mode 100644
index f7fb266e350c..000000000000
--- a/www/node20/files/patch-deps_openssl_openssl__no__asm.gypi
+++ /dev/null
@@ -1,11 +0,0 @@
---- deps/openssl/openssl_no_asm.gypi.orig 2023-05-16 06:58:20 UTC
-+++ deps/openssl/openssl_no_asm.gypi
-@@ -44,7 +44,7 @@
- 'includes': ['config/archs/linux64-riscv64/no-asm/openssl.gypi'],
- }, {
- # Other architectures don't use assembly
-- 'includes': ['config/archs/linux-x86_64/no-asm/openssl.gypi'],
-+ 'includes': ['config/archs/linux-elf/no-asm/openssl.gypi'],
- }],
- ],
- }
diff --git a/www/node20/files/patch-deps_v8_src_base_platform_platform-freebsd.cc b/www/node20/files/patch-deps_v8_src_base_platform_platform-freebsd.cc
deleted file mode 100644
index be89ded1df8d..000000000000
--- a/www/node20/files/patch-deps_v8_src_base_platform_platform-freebsd.cc
+++ /dev/null
@@ -1,13 +0,0 @@
---- deps/v8/src/base/platform/platform-freebsd.cc.orig 2023-05-16 06:58:20 UTC
-+++ deps/v8/src/base/platform/platform-freebsd.cc
-@@ -82,8 +82,8 @@ std::vector<OS::SharedLibraryAddress> OS::GetSharedLib
- lib_name = std::string(path);
- }
- result.push_back(SharedLibraryAddress(
-- lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
-- reinterpret_cast<uintptr_t>(map->kve_end)));
-+ lib_name, static_cast<uintptr_t>(map->kve_start),
-+ static_cast<uintptr_t>(map->kve_end)));
- }
-
- start += ssize;
diff --git a/www/node20/files/patch-deps_v8_src_codegen_arm_cpu-arm.cc b/www/node20/files/patch-deps_v8_src_codegen_arm_cpu-arm.cc
deleted file mode 100644
index 42fd70bfd7ca..000000000000
--- a/www/node20/files/patch-deps_v8_src_codegen_arm_cpu-arm.cc
+++ /dev/null
@@ -1,18 +0,0 @@
---- deps/v8/src/codegen/arm/cpu-arm.cc.orig 2023-05-16 06:58:20 UTC
-+++ deps/v8/src/codegen/arm/cpu-arm.cc
-@@ -2,12 +2,15 @@
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
-
-+#include "include/v8config.h"
-+
- // CPU specific code for arm independent of OS goes here.
- #ifdef __arm__
- #ifdef __QNXNTO__
- #include <sys/mman.h> // for cache flushing.
- #undef MAP_TYPE
- #elif V8_OS_FREEBSD
-+#include <sys/cdefs.h>
- #include <machine/sysarch.h> // for cache flushing
- #include <sys/types.h>
- #elif V8_OS_STARBOARD
diff --git a/www/node20/files/patch-deps_v8_src_codegen_ppc_constants-ppc.h b/www/node20/files/patch-deps_v8_src_codegen_ppc_constants-ppc.h
deleted file mode 100644
index c6269ea752d6..000000000000
--- a/www/node20/files/patch-deps_v8_src_codegen_ppc_constants-ppc.h
+++ /dev/null
@@ -1,20 +0,0 @@
---- deps/v8/src/codegen/ppc/constants-ppc.h.orig 2023-05-16 06:58:20 UTC
-+++ deps/v8/src/codegen/ppc/constants-ppc.h
-@@ -36,7 +36,7 @@
- #endif
-
- #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || !V8_TARGET_ARCH_PPC64 || \
-- V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)
-+ (defined(_CALL_ELF) && _CALL_ELF == 2)
- #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 1
- #else
- #define ABI_RETURNS_OBJECT_PAIRS_IN_REGS 0
-@@ -44,7 +44,7 @@
-
- #if !(V8_HOST_ARCH_PPC || V8_HOST_ARCH_PPC64) || \
- (V8_TARGET_ARCH_PPC64 && \
-- (V8_TARGET_LITTLE_ENDIAN || (defined(_CALL_ELF) && _CALL_ELF == 2)))
-+ (defined(_CALL_ELF) && _CALL_ELF == 2))
- #define ABI_CALL_VIA_IP 1
- #else
- #define ABI_CALL_VIA_IP 0
diff --git a/www/node20/files/patch-deps_v8_src_libsampler_sampler.cc b/www/node20/files/patch-deps_v8_src_libsampler_sampler.cc
deleted file mode 100644
index dd19d75d8196..000000000000
--- a/www/node20/files/patch-deps_v8_src_libsampler_sampler.cc
+++ /dev/null
@@ -1,13 +0,0 @@
---- deps/v8/src/libsampler/sampler.cc.orig 2023-05-16 06:58:20 UTC
-+++ deps/v8/src/libsampler/sampler.cc
-@@ -511,6 +511,10 @@ void SignalHandler::FillRegisterState(void* context, R
- state->pc = reinterpret_cast<void*>(mcontext.__gregs[_REG_PC]);
- state->sp = reinterpret_cast<void*>(mcontext.__gregs[_REG_SP]);
- state->fp = reinterpret_cast<void*>(mcontext.__gregs[_REG_FP]);
-+#elif V8_TARGET_ARCH_PPC64
-+ state->pc = reinterpret_cast<void*>(mcontext.mc_srr0);
-+ state->sp = reinterpret_cast<void*>(mcontext.mc_frame[1]);
-+ state->fp = reinterpret_cast<void*>(mcontext.mc_frame[31]);
- #endif // V8_HOST_ARCH_*
- #elif V8_OS_NETBSD
- #if V8_HOST_ARCH_IA32
diff --git a/www/node20/files/patch-node.gypi b/www/node20/files/patch-node.gypi
deleted file mode 100644
index c1f4c867c303..000000000000
--- a/www/node20/files/patch-node.gypi
+++ /dev/null
@@ -1,12 +0,0 @@
---- node.gypi.orig 2023-05-16 06:58:21 UTC
-+++ node.gypi
-@@ -349,6 +349,9 @@
- [ 'node_use_openssl=="true"', {
- 'defines': [ 'HAVE_OPENSSL=1' ],
- 'conditions': [
-+ ['openssl_no_asm==1', {
-+ 'defines': [ 'OPENSSL_NO_ASM' ],
-+ }],
- [ 'node_shared_openssl=="false"', {
- 'defines': [ 'OPENSSL_API_COMPAT=0x10100000L', ],
- 'dependencies': [
diff --git a/www/node20/files/patch-openssl3 b/www/node20/files/patch-openssl3
deleted file mode 100644
index 0e80424bd33c..000000000000
--- a/www/node20/files/patch-openssl3
+++ /dev/null
@@ -1,15 +0,0 @@
---- src/crypto/crypto_util.cc.orig 2023-05-16 06:58:21 UTC
-+++ src/crypto/crypto_util.cc
-@@ -205,10 +205,12 @@ void InitCryptoOnce() {
- // No-op with OPENSSL_NO_COMP builds of OpenSSL.
- sk_SSL_COMP_zero(SSL_COMP_get_compression_methods());
-
-+#if OPENSSL_VERSION_MAJOR < 3
- #ifndef OPENSSL_NO_ENGINE
- ERR_load_ENGINE_strings();
- ENGINE_load_builtin_engines();
- #endif // !OPENSSL_NO_ENGINE
-+#endif
- }
-
- void GetFipsCrypto(const FunctionCallbackInfo<Value>& args) {
diff --git a/www/node20/files/patch-src_cares__wrap.h b/www/node20/files/patch-src_cares__wrap.h
deleted file mode 100644
index 7bac6f049408..000000000000
--- a/www/node20/files/patch-src_cares__wrap.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- src/cares_wrap.h.orig 2023-05-16 06:58:21 UTC
-+++ src/cares_wrap.h
-@@ -23,7 +23,7 @@
- # include <netdb.h>
- #endif // __POSIX__
-
--# include <ares_nameser.h>
-+# include <arpa/nameser.h>
-
- namespace node {
- namespace cares_wrap {
diff --git a/www/node20/files/patch-tools_v8__gypfiles_v8.gyp b/www/node20/files/patch-tools_v8__gypfiles_v8.gyp
deleted file mode 100644
index 61657d4c24a1..000000000000
--- a/www/node20/files/patch-tools_v8__gypfiles_v8.gyp
+++ /dev/null
@@ -1,11 +0,0 @@
---- tools/v8_gypfiles/v8.gyp.orig 2023-05-16 06:58:22 UTC
-+++ tools/v8_gypfiles/v8.gyp
-@@ -1091,7 +1091,7 @@
- }],
- # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library
- # to implement atomic memory access
-- ['v8_current_cpu in ["mips64", "mips64el", "ppc", "arm", "riscv64", "loong64"]', {
-+ ['v8_current_cpu in ["mips64", "mips64el", "ppc", "riscv64", "loong64"]', {
- 'link_settings': {
- 'libraries': ['-latomic', ],
- },
diff --git a/www/node20/pkg-descr b/www/node20/pkg-descr
deleted file mode 100644
index aed88d828d57..000000000000
--- a/www/node20/pkg-descr
+++ /dev/null
@@ -1,2 +0,0 @@
-Node.js is a free, open-source, cross-platform JavaScript runtime environment
-that lets developers create servers, web apps, command line tools and scripts.
diff --git a/www/node20/pkg-message b/www/node20/pkg-message
deleted file mode 100644
index 6c7acf5c034a..000000000000
--- a/www/node20/pkg-message
+++ /dev/null
@@ -1,7 +0,0 @@
-[
-{ type: install
- message: <<EOM
-Note: If you need npm (Node Package Manager), please install www/npm-node20.
-EOM
-}
-]
diff --git a/www/node20/pkg-plist b/www/node20/pkg-plist
deleted file mode 100644
index 044aeefcbfe5..000000000000
--- a/www/node20/pkg-plist
+++ /dev/null
@@ -1,109 +0,0 @@
-bin/node
-include/node/common.gypi
-include/node/config.gypi
-include/node/cppgc/allocation.h
-include/node/cppgc/common.h
-include/node/cppgc/cross-thread-persistent.h
-include/node/cppgc/custom-space.h
-include/node/cppgc/default-platform.h
-include/node/cppgc/ephemeron-pair.h
-include/node/cppgc/explicit-management.h
-include/node/cppgc/garbage-collected.h
-include/node/cppgc/heap-consistency.h
-include/node/cppgc/heap-handle.h
-include/node/cppgc/heap-state.h
-include/node/cppgc/heap-statistics.h
-include/node/cppgc/heap.h
-include/node/cppgc/internal/api-constants.h
-include/node/cppgc/internal/atomic-entry-flag.h
-include/node/cppgc/internal/base-page-handle.h
-include/node/cppgc/internal/caged-heap-local-data.h
-include/node/cppgc/internal/caged-heap.h
-include/node/cppgc/internal/compiler-specific.h
-include/node/cppgc/internal/finalizer-trait.h
-include/node/cppgc/internal/gc-info.h
-include/node/cppgc/internal/logging.h
-include/node/cppgc/internal/member-storage.h
-include/node/cppgc/internal/name-trait.h
-include/node/cppgc/internal/persistent-node.h
-include/node/cppgc/internal/pointer-policies.h
-include/node/cppgc/internal/write-barrier.h
-include/node/cppgc/liveness-broker.h
-include/node/cppgc/macros.h
-include/node/cppgc/member.h
-include/node/cppgc/name-provider.h
-include/node/cppgc/object-size-trait.h
-include/node/cppgc/persistent.h
-include/node/cppgc/platform.h
-include/node/cppgc/prefinalizer.h
-include/node/cppgc/process-heap-statistics.h
-include/node/cppgc/sentinel-pointer.h
-include/node/cppgc/source-location.h
-include/node/cppgc/testing.h
-include/node/cppgc/trace-trait.h
-include/node/cppgc/type-traits.h
-include/node/cppgc/visitor.h
-include/node/js_native_api.h
-include/node/js_native_api_types.h
-include/node/libplatform/libplatform-export.h
-include/node/libplatform/libplatform.h
-include/node/libplatform/v8-tracing.h
-include/node/node.h
-include/node/node_api.h
-include/node/node_api_types.h
-include/node/node_buffer.h
-include/node/node_object_wrap.h
-include/node/node_version.h
-include/node/v8-array-buffer.h
-include/node/v8-callbacks.h
-include/node/v8-container.h
-include/node/v8-context.h
-include/node/v8-cppgc.h
-include/node/v8-data.h
-include/node/v8-date.h
-include/node/v8-debug.h
-include/node/v8-embedder-heap.h
-include/node/v8-embedder-state-scope.h
-include/node/v8-exception.h
-include/node/v8-extension.h
-include/node/v8-external.h
-include/node/v8-forward.h
-include/node/v8-function-callback.h
-include/node/v8-function.h
-include/node/v8-initialization.h
-include/node/v8-internal.h
-include/node/v8-isolate.h
-include/node/v8-json.h
-include/node/v8-local-handle.h
-include/node/v8-locker.h
-include/node/v8-maybe.h
-include/node/v8-memory-span.h
-include/node/v8-message.h
-include/node/v8-microtask-queue.h
-include/node/v8-microtask.h
-include/node/v8-object.h
-include/node/v8-persistent-handle.h
-include/node/v8-platform.h
-include/node/v8-primitive-object.h
-include/node/v8-primitive.h
-include/node/v8-profiler.h
-include/node/v8-promise.h
-include/node/v8-proxy.h
-include/node/v8-regexp.h
-include/node/v8-script.h
-include/node/v8-snapshot.h
-include/node/v8-statistics.h
-include/node/v8-template.h
-include/node/v8-traced-handle.h
-include/node/v8-typed-array.h
-include/node/v8-unwinder.h
-include/node/v8-value-serializer.h
-include/node/v8-value.h
-include/node/v8-version.h
-include/node/v8-wasm.h
-include/node/v8-weak-callback-info.h
-include/node/v8.h
-include/node/v8config.h
-%%PORTDOCS%%%%DOCSDIR%%/gdbinit
-%%PORTDOCS%%%%DOCSDIR%%/lldb_commands.py
-@(,,444) share/man/man1/node.1.gz
diff --git a/www/npm-node20/Makefile b/www/npm-node20/Makefile
deleted file mode 100644
index 826ca62f7c17..000000000000
--- a/www/npm-node20/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-USES= nodejs:20,run
-
-MASTERDIR= ${.CURDIR}/../npm-node24
-
-.include "${MASTERDIR}/Makefile"
diff --git a/www/yarn-node20/Makefile b/www/yarn-node20/Makefile
deleted file mode 100644
index 9cf6e063171e..000000000000
--- a/www/yarn-node20/Makefile
+++ /dev/null
@@ -1,5 +0,0 @@
-USES= nodejs:20,run
-
-MASTERDIR= ${.CURDIR}/../yarn-node24
-
-.include "${MASTERDIR}/Makefile"