From e1223906aa7b44777a2f1e3c30104bfae075f7f1 Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 01:58:27 +0800 Subject: [PATCH 1/8] nodejs-20: drop, orphaned Signed-off-by: stydxm --- lang-js/nodejs-20/autobuild/beyond | 18 ---- lang-js/nodejs-20/autobuild/build | 29 ------ lang-js/nodejs-20/autobuild/defines | 11 --- .../0001-AOSCOS-fix-python-3.14-support.patch | 98 ------------------- lang-js/nodejs-20/autobuild/prepare | 4 - lang-js/nodejs-20/spec | 10 -- 6 files changed, 170 deletions(-) delete mode 100644 lang-js/nodejs-20/autobuild/beyond delete mode 100644 lang-js/nodejs-20/autobuild/build delete mode 100644 lang-js/nodejs-20/autobuild/defines delete mode 100644 lang-js/nodejs-20/autobuild/patches/0001-AOSCOS-fix-python-3.14-support.patch delete mode 100644 lang-js/nodejs-20/autobuild/prepare delete mode 100644 lang-js/nodejs-20/spec diff --git a/lang-js/nodejs-20/autobuild/beyond b/lang-js/nodejs-20/autobuild/beyond deleted file mode 100644 index 371b547634b8..000000000000 --- a/lang-js/nodejs-20/autobuild/beyond +++ /dev/null @@ -1,18 +0,0 @@ -##### Control part variables -NODE_SUFFIX="-${PKGVER%%.*}" - -abinfo "Generating postinst scripts ..." -printf 'update-alternatives --install /usr/bin/node node /usr/lib/node%s/bin/node 50' "$NODE_SUFFIX" >> "$SRCDIR/autobuild/postinst" -for i in "$PKGDIR"/usr/lib/node${NODE_SUFFIX}/bin/*; do - BIN="$(basename $i)" - [ "$BIN" == 'node' ] || printf " --slave /usr/bin/$BIN $BIN /usr/lib/node%s/bin/$BIN" "$NODE_SUFFIX" >> "$SRCDIR/autobuild/postinst" -done - -cat <"$SRCDIR/autobuild/postrm" -if [ "\$1" != "upgrade" ]; then - update-alternatives --remove node /usr/lib/node${NODE_SUFFIX}/bin/node || true -fi -EOF - -abinfo "Final postinst script:" -cat "$SRCDIR/autobuild/postinst" diff --git a/lang-js/nodejs-20/autobuild/build b/lang-js/nodejs-20/autobuild/build deleted file mode 100644 index 91a4893b93e0..000000000000 --- a/lang-js/nodejs-20/autobuild/build +++ /dev/null @@ -1,29 +0,0 @@ -#### Control part variable. -_NODE_PREFIX=/usr/lib/node-${PKGVER%%.*} - -abinfo "Configuring Node.js ..." -"$SRCDIR"/configure \ - --prefix=${_NODE_PREFIX} \ - --shared-openssl \ - --shared-zlib \ - --with-intl=system-icu \ - $NODE_FLAGS_ARCH - -abinfo "Building Node.js ..." -make "$MAKEFLAGS" - -abinfo "Installing Node.js ..." -make install \ - DESTDIR="$PKGDIR" - -abinfo "Installing node-gyp ..." -install -Dvm755 \ - "$PKGDIR"/${_NODE_PREFIX}/lib/node_modules/npm/bin/node-gyp-bin/node-gyp \ - "$PKGDIR"/${_NODE_PREFIX}/bin/node-gyp -sed -e 's|"`dirname "$0"`/../../|"`dirname "$0"`/../lib/node-${PKGVER%%.*}/lib/node_modules/npm/|' \ - -i "$PKGDIR"/${_NODE_PREFIX}/bin/node-gyp - -abinfo "Creating Corepack shims..." -PATH="$PATH:"$PKGDIR"/${_NODE_PREFIX}/bin" \ -"$PKGDIR"/${_NODE_PREFIX}/bin/corepack \ - enable diff --git a/lang-js/nodejs-20/autobuild/defines b/lang-js/nodejs-20/autobuild/defines deleted file mode 100644 index 5552967ce8c7..000000000000 --- a/lang-js/nodejs-20/autobuild/defines +++ /dev/null @@ -1,11 +0,0 @@ -PKGNAME=nodejs-20 -PKGSEC=devel -PKGDEP="python-3 icu zlib brotli libuv openssl ca-certs" -BUILDDEP="chrpath unzip jq" -PKGDES="A JavaScript runtime built on the V8 JavaScript engine (LTS branch 20.x)" - -# https://github.com/nodejs/node/issues/44195#issuecomment-1545966528 -NOLTO=1 - -PKGREP="nodejs<=2:20.18.0-1 pnpm<=9.7.0 yarn<=1.22.22-1" -PKGBREAK="$PKGREP" diff --git a/lang-js/nodejs-20/autobuild/patches/0001-AOSCOS-fix-python-3.14-support.patch b/lang-js/nodejs-20/autobuild/patches/0001-AOSCOS-fix-python-3.14-support.patch deleted file mode 100644 index 39059b3be2c9..000000000000 --- a/lang-js/nodejs-20/autobuild/patches/0001-AOSCOS-fix-python-3.14-support.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 6a9962d2add3bc110f66532f108c202e7b6dca33 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Lum=C3=ADr=20=27Frenzy=27=20Balhar?= - -Date: Sun, 22 Jun 2025 07:49:14 +0200 -Subject: [PATCH] AOSCOS: fix python 3.14 support - -SQUASHED UPSTREAM COMMITS: - -tools: make nodedownload module compatible with Python 3.14 - -FancyURLopener and URLopener have been deprecated since -Python 3.3 and they are removed completely from 3.14. - -Fixes: https://github.com/nodejs/node/issues/58740 -PR-URL: https://github.com/nodejs/node/pull/58752 -Reviewed-By: Luigi Pinca -Reviewed-By: Yagiz Nizipli -Reviewed-By: James M Snell - -build: test on Python 3.14 release candidate 3 - -Python v3.14 -- October 7th -* https://www.python.org/download/pre-releases -* https://www.python.org/downloads/release/python-3140rc3 - -PR-URL: https://github.com/nodejs/node/pull/59983 -Reviewed-By: Marco Ippolito -Reviewed-By: Stefan Stojanovic -Reviewed-By: Stewart X Addison ---- - configure | 3 ++- - tools/configure.d/nodedownload.py | 15 +++++---------- - 2 files changed, 7 insertions(+), 11 deletions(-) - -diff --git a/configure b/configure -index 29ebe882b09..a9d84c0312c 100755 ---- a/configure -+++ b/configure -@@ -4,6 +4,7 @@ - # Note that the mix of single and double quotes is intentional, - # as is the fact that the ] goes on a new line. - _=[ 'exec' '/bin/sh' '-c' ''' -+command -v python3.14 >/dev/null && exec python3.14 "$0" "$@" - command -v python3.13 >/dev/null && exec python3.13 "$0" "$@" - command -v python3.12 >/dev/null && exec python3.12 "$0" "$@" - command -v python3.11 >/dev/null && exec python3.11 "$0" "$@" -@@ -25,7 +26,7 @@ except ImportError: - from distutils.spawn import find_executable as which - - print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info)) --acceptable_pythons = ((3, 13), (3, 12), (3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6)) -+acceptable_pythons = ((3, 14), (3, 13), (3, 12), (3, 11), (3, 10), (3, 9)) - if sys.version_info[:2] in acceptable_pythons: - import configure - else: -diff --git a/tools/configure.d/nodedownload.py b/tools/configure.d/nodedownload.py -index 4f144e0e4b4..0d65c33606b 100644 ---- a/tools/configure.d/nodedownload.py -+++ b/tools/configure.d/nodedownload.py -@@ -7,10 +7,7 @@ import sys - import zipfile - import tarfile - import contextlib --try: -- from urllib.request import FancyURLopener, URLopener --except ImportError: -- from urllib import FancyURLopener, URLopener -+from urllib.request import build_opener, install_opener, urlretrieve - - def formatSize(amt): - """Format a size as a string in MB""" -@@ -21,11 +18,6 @@ def spin(c): - spin = ".:|'" - return (spin[c % len(spin)]) - --class ConfigOpener(FancyURLopener): -- """fancy opener used by retrievefile. Set a UA""" -- # append to existing version (UA) -- version = '%s node.js/configure' % URLopener.version -- - def reporthook(count, size, total): - """internal hook used by retrievefile""" - sys.stdout.write(' Fetch: %c %sMB total, %sMB downloaded \r' % -@@ -38,7 +30,10 @@ def retrievefile(url, targetfile): - try: - sys.stdout.write(' <%s>\nConnecting...\r' % url) - sys.stdout.flush() -- ConfigOpener().retrieve(url, targetfile, reporthook=reporthook) -+ opener = build_opener() -+ opener.addheaders = [('User-agent', f'Python-urllib/{sys.version_info.major}.{sys.version_info.minor} node.js/configure')] -+ install_opener(opener) -+ urlretrieve(url, targetfile, reporthook=reporthook) - print('') # clear the line - return targetfile - except IOError as err: --- -2.52.0 - diff --git a/lang-js/nodejs-20/autobuild/prepare b/lang-js/nodejs-20/autobuild/prepare deleted file mode 100644 index 722beffb6482..000000000000 --- a/lang-js/nodejs-20/autobuild/prepare +++ /dev/null @@ -1,4 +0,0 @@ -if ab_match_arch loongson3; then - abinfo "Loongson 3 detected, specifying r2 target and fp64 FPU mode ..." - NODE_FLAGS_ARCH="--with-mips-arch-variant=r2 --with-mips-fpu-mode=fp64" -fi diff --git a/lang-js/nodejs-20/spec b/lang-js/nodejs-20/spec deleted file mode 100644 index 20159a31a1df..000000000000 --- a/lang-js/nodejs-20/spec +++ /dev/null @@ -1,10 +0,0 @@ -VER=20.19.6 -REL="2" -SRCS="tbl::https://nodejs.org/dist/v$VER/node-v$VER.tar.xz" -CHKSUMS="sha256::2026f9ff52c286d7c7d99932b21be313d1736aea524c5aff1748d41ab0bd9a20" -CHKUPDATE="anitya::id=369796" -# Note: Node.js currently requires large memory to build. -# Prefer 3C5000 (or faster) build hosts. -ENVREQ__LOONGARCH64="total_mem=30 core=16" -# Note: Prefer larger RAM. -ENVREQ__ARM64="total_mem=60" From e9bb793154357b1d9aa52861906e324805e67bc9 Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 02:16:02 +0800 Subject: [PATCH 2/8] nodejs-22: update to 22.22.0 Signed-off-by: stydxm --- lang-js/nodejs-22/autobuild/defines | 2 +- lang-js/nodejs-22/spec | 14 +++----------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/lang-js/nodejs-22/autobuild/defines b/lang-js/nodejs-22/autobuild/defines index 71667e20acee..b7dbc707ef91 100644 --- a/lang-js/nodejs-22/autobuild/defines +++ b/lang-js/nodejs-22/autobuild/defines @@ -3,7 +3,7 @@ PKGSEC=devel PKGDEP="python-3 icu zlib brotli libuv openssl ca-certs" BUILDDEP="chrpath unzip jq" BUILDDEP__LOONGSON3="${BUILDDEP} llvm" -PKGDES="A JavaScript runtime built on the V8 JavaScript engine (LTS branch 22.x)" +PKGDES="JavaScript runtime built on the V8 JavaScript engine (LTS branch 22.x)" # https://github.com/nodejs/node/issues/44195#issuecomment-1545966528 NOLTO=1 diff --git a/lang-js/nodejs-22/spec b/lang-js/nodejs-22/spec index db38eb492afe..e46fba086fa7 100644 --- a/lang-js/nodejs-22/spec +++ b/lang-js/nodejs-22/spec @@ -1,13 +1,5 @@ -VER=22.21.1 -REL="2" +VER=22.22.0 SRCS="tbl::https://nodejs.org/dist/v$VER/node-v$VER.tar.xz" -CHKSUMS="sha256::487d73fd4db00dc2420d659a8221b181a7937fbc5bc73f31c30b1680ad6ded6a" +CHKSUMS="sha256::4c138012bb5352f49822a8f3e6d1db71e00639d0c36d5b6756f91e4c6f30b683" CHKUPDATE="anitya::id=374342" -# Note: Node.js currently requires large memory to build. -# Prefer 3C5000 (or faster) build hosts. -ENVREQ__LOONGARCH64="total_mem=30 core=16" -ENVREQ__LOONGARCH64_NOSIMD="total_mem=30 core=16" -# Note: Prefer larger RAM. -ENVREQ__ARM64="total_mem=60" -# Note: Larger RAM per core needed. -ENVREQ__PPC64EL="total_mem_per_core=2" +ENVREQ="total_mem_per_core=2" From 732850d63017461b13affac8bd5e2fd3a495342a Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 02:12:25 +0800 Subject: [PATCH 3/8] nodejs-24: new, 24.13.1 Signed-off-by: stydxm --- lang-js/nodejs-24/autobuild/beyond | 18 ++ lang-js/nodejs-24/autobuild/build | 37 +++ lang-js/nodejs-24/autobuild/defines | 8 + .../patches/0001-highway-vsx-gcc15.patch | 262 ++++++++++++++++++ lang-js/nodejs-24/spec | 5 + 5 files changed, 330 insertions(+) create mode 100644 lang-js/nodejs-24/autobuild/beyond create mode 100644 lang-js/nodejs-24/autobuild/build create mode 100644 lang-js/nodejs-24/autobuild/defines create mode 100644 lang-js/nodejs-24/autobuild/patches/0001-highway-vsx-gcc15.patch create mode 100644 lang-js/nodejs-24/spec diff --git a/lang-js/nodejs-24/autobuild/beyond b/lang-js/nodejs-24/autobuild/beyond new file mode 100644 index 000000000000..371b547634b8 --- /dev/null +++ b/lang-js/nodejs-24/autobuild/beyond @@ -0,0 +1,18 @@ +##### Control part variables +NODE_SUFFIX="-${PKGVER%%.*}" + +abinfo "Generating postinst scripts ..." +printf 'update-alternatives --install /usr/bin/node node /usr/lib/node%s/bin/node 50' "$NODE_SUFFIX" >> "$SRCDIR/autobuild/postinst" +for i in "$PKGDIR"/usr/lib/node${NODE_SUFFIX}/bin/*; do + BIN="$(basename $i)" + [ "$BIN" == 'node' ] || printf " --slave /usr/bin/$BIN $BIN /usr/lib/node%s/bin/$BIN" "$NODE_SUFFIX" >> "$SRCDIR/autobuild/postinst" +done + +cat <"$SRCDIR/autobuild/postrm" +if [ "\$1" != "upgrade" ]; then + update-alternatives --remove node /usr/lib/node${NODE_SUFFIX}/bin/node || true +fi +EOF + +abinfo "Final postinst script:" +cat "$SRCDIR/autobuild/postinst" diff --git a/lang-js/nodejs-24/autobuild/build b/lang-js/nodejs-24/autobuild/build new file mode 100644 index 000000000000..25406b748ee4 --- /dev/null +++ b/lang-js/nodejs-24/autobuild/build @@ -0,0 +1,37 @@ +#### Control part variable. +_NODE_PREFIX=/usr/lib/node-${PKGVER%%.*} + +abinfo "Configuring Node.js ..." +"$SRCDIR"/configure \ + --prefix=${_NODE_PREFIX} \ + --shared-brotli \ + --shared-cares \ + --shared-libuv \ + --shared-nghttp2 \ + --shared-nghttp3 \ + --shared-ngtcp2 \ + --shared-openssl \ + --shared-sqlite \ + --shared-zlib \ + --shared-zstd \ + --with-intl=system-icu \ + $NODE_FLAGS_ARCH + +abinfo "Building Node.js ..." +make "$MAKEFLAGS" + +abinfo "Installing Node.js ..." +make install \ + DESTDIR="$PKGDIR" + +abinfo "Installing node-gyp ..." +install -Dvm755 \ + "$PKGDIR"/${_NODE_PREFIX}/lib/node_modules/npm/bin/node-gyp-bin/node-gyp \ + "$PKGDIR"/${_NODE_PREFIX}/bin/node-gyp +sed -e 's|"`dirname "$0"`/../../|"`dirname "$0"`/../lib/node-${PKGVER%%.*}/lib/node_modules/npm/|' \ + -i "$PKGDIR"/${_NODE_PREFIX}/bin/node-gyp + +abinfo "Creating Corepack shims..." +PATH="$PATH:"$PKGDIR"/${_NODE_PREFIX}/bin" \ +"$PKGDIR"/${_NODE_PREFIX}/bin/corepack \ + enable diff --git a/lang-js/nodejs-24/autobuild/defines b/lang-js/nodejs-24/autobuild/defines new file mode 100644 index 000000000000..60424b370738 --- /dev/null +++ b/lang-js/nodejs-24/autobuild/defines @@ -0,0 +1,8 @@ +PKGNAME=nodejs-24 +PKGSEC=devel +PKGDEP="python-3 icu zlib brotli libuv openssl ca-certs nghttp2 nghttp3 ngtcp2 sqlite zstd ada" +BUILDDEP="chrpath unzip jq" +PKGDES="JavaScript runtime built on the V8 JavaScript engine (LTS branch 24.x)" + +# https://github.com/nodejs/node/issues/44195#issuecomment-1545966528 +NOLTO=1 diff --git a/lang-js/nodejs-24/autobuild/patches/0001-highway-vsx-gcc15.patch b/lang-js/nodejs-24/autobuild/patches/0001-highway-vsx-gcc15.patch new file mode 100644 index 000000000000..a5e191e5610c --- /dev/null +++ b/lang-js/nodejs-24/autobuild/patches/0001-highway-vsx-gcc15.patch @@ -0,0 +1,262 @@ +From dcc0ca1cd4245ecff9e5ba50818e47d5e2ccf699 Mon Sep 17 00:00:00 2001 +From: John Platts +Date: Fri, 17 Jan 2025 12:16:49 -0600 +Subject: [PATCH] Fix for GCC 15 compiler error on PPC8/PPC9/PPC10 + +--- + hwy/ops/ppc_vsx-inl.h | 167 ++++++++++++++++++++++++++---------------- + 1 file changed, 103 insertions(+), 64 deletions(-) + +diff --git a/deps/v8/third_party/highway/src/hwy/ops/ppc_vsx-inl.h b/deps/v8/third_party/highway/src/hwy/ops/ppc_vsx-inl.h +index 86d6d98c39..3564ae0b17 100644 +--- a/deps/v8/third_party/highway/src/hwy/ops/ppc_vsx-inl.h ++++ b/deps/v8/third_party/highway/src/hwy/ops/ppc_vsx-inl.h +@@ -3744,16 +3744,73 @@ static HWY_INLINE V VsxF2INormalizeSrcVals(V v) { + #endif + } + ++template ++static HWY_INLINE HWY_MAYBE_UNUSED VFromD>> ++VsxXvcvspsxds(VF32 vf32) { ++ using VI64 = VFromD>>; ++#if (HWY_COMPILER_GCC_ACTUAL && HWY_COMPILER_GCC_ACTUAL < 1500) || \ ++ HWY_HAS_BUILTIN(__builtin_vsx_xvcvspsxds) ++ // Use __builtin_vsx_xvcvspsxds if it is available (which is the case with ++ // GCC 4.8 through GCC 14 or Clang 13 or later on PPC8/PPC9/PPC10) ++ return VI64{__builtin_vsx_xvcvspsxds(vf32.raw)}; ++#elif HWY_COMPILER_GCC_ACTUAL >= 1500 && HWY_IS_LITTLE_ENDIAN ++ // On little-endian PPC8/PPC9/PPC10 with GCC 15 or later, use the F32->I64 ++ // vec_signedo intrinsic as the __builtin_vsx_xvcvspsxds intrinsic has been ++ // removed from GCC in GCC 15 ++ return VI64{vec_signedo(vf32.raw)}; ++#elif HWY_COMPILER_GCC_ACTUAL >= 1500 && HWY_IS_BIG_ENDIAN ++ // On big-endian PPC8/PPC9/PPC10 with GCC 15 or later, use the F32->I64 ++ // vec_signede intrinsic as the __builtin_vsx_xvcvspsxds intrinsic has been ++ // removed from GCC in GCC 15 ++ return VI64{vec_signede(vf32.raw)}; ++#else ++ // Inline assembly fallback for older versions of Clang that do not have the ++ // __builtin_vsx_xvcvspsxds intrinsic ++ __vector signed long long raw_result; ++ __asm__("xvcvspsxds %x0, %x1" : "=wa"(raw_result) : "wa"(vf32.raw) :); ++ return VI64{raw_result}; ++#endif ++} ++ ++template ++static HWY_INLINE HWY_MAYBE_UNUSED VFromD>> ++VsxXvcvspuxds(VF32 vf32) { ++ using VU64 = VFromD>>; ++#if (HWY_COMPILER_GCC_ACTUAL && HWY_COMPILER_GCC_ACTUAL < 1500) || \ ++ HWY_HAS_BUILTIN(__builtin_vsx_xvcvspuxds) ++ // Use __builtin_vsx_xvcvspuxds if it is available (which is the case with ++ // GCC 4.8 through GCC 14 or Clang 13 or later on PPC8/PPC9/PPC10) ++ return VU64{reinterpret_cast<__vector unsigned long long>( ++ __builtin_vsx_xvcvspuxds(vf32.raw))}; ++#elif HWY_COMPILER_GCC_ACTUAL >= 1500 && HWY_IS_LITTLE_ENDIAN ++ // On little-endian PPC8/PPC9/PPC10 with GCC 15 or later, use the F32->U64 ++ // vec_unsignedo intrinsic as the __builtin_vsx_xvcvspuxds intrinsic has been ++ // removed from GCC in GCC 15 ++ return VU64{vec_unsignedo(vf32.raw)}; ++#elif HWY_COMPILER_GCC_ACTUAL >= 1500 && HWY_IS_BIG_ENDIAN ++ // On big-endian PPC8/PPC9/PPC10 with GCC 15 or later, use the F32->U64 ++ // vec_unsignedo intrinsic as the __builtin_vsx_xvcvspuxds intrinsic has been ++ // removed from GCC in GCC 15 ++ return VU64{vec_unsignede(vf32.raw)}; ++#else ++ // Inline assembly fallback for older versions of Clang that do not have the ++ // __builtin_vsx_xvcvspuxds intrinsic ++ __vector unsigned long long raw_result; ++ __asm__("xvcvspuxds %x0, %x1" : "=wa"(raw_result) : "wa"(vf32.raw) :); ++ return VU64{raw_result}; ++#endif ++} ++ + } // namespace detail + #endif // !HWY_S390X_HAVE_Z14 + + template + HWY_API VFromD PromoteTo(D di64, VFromD> v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspsxds)) +- const __vector float raw_v = +- detail::VsxF2INormalizeSrcVals(InterleaveLower(v, v)).raw; +- return VFromD{__builtin_vsx_xvcvspsxds(raw_v)}; ++#if !HWY_S390X_HAVE_Z14 ++ const Repartition dt_f32; ++ const auto vt_f32 = ResizeBitCast(dt_f32, v); ++ return detail::VsxXvcvspsxds( ++ detail::VsxF2INormalizeSrcVals(InterleaveLower(vt_f32, vt_f32))); + #else + const RebindToFloat df64; + return ConvertTo(di64, PromoteTo(df64, v)); +@@ -3762,12 +3819,11 @@ HWY_API VFromD PromoteTo(D di64, VFromD> v) { + + template + HWY_API VFromD PromoteTo(D du64, VFromD> v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspuxds)) +- const __vector float raw_v = +- detail::VsxF2INormalizeSrcVals(InterleaveLower(v, v)).raw; +- return VFromD{reinterpret_cast<__vector unsigned long long>( +- __builtin_vsx_xvcvspuxds(raw_v))}; ++#if !HWY_S390X_HAVE_Z14 ++ const Repartition dt_f32; ++ const auto vt_f32 = ResizeBitCast(dt_f32, v); ++ return detail::VsxXvcvspuxds( ++ detail::VsxF2INormalizeSrcVals(InterleaveLower(vt_f32, vt_f32))); + #else + const RebindToFloat df64; + return ConvertTo(du64, PromoteTo(df64, v)); +@@ -3876,12 +3932,10 @@ HWY_API VFromD PromoteUpperTo(D df64, Vec128 v) { + + template + HWY_API VFromD PromoteUpperTo(D di64, Vec128 v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspsxds)) +- const __vector float raw_v = +- detail::VsxF2INormalizeSrcVals(InterleaveUpper(Full128(), v, v)) +- .raw; +- return VFromD{__builtin_vsx_xvcvspsxds(raw_v)}; ++#if !HWY_S390X_HAVE_Z14 ++ (void)di64; ++ return detail::VsxXvcvspsxds( ++ detail::VsxF2INormalizeSrcVals(InterleaveUpper(Full128(), v, v))); + #else + const RebindToFloat df64; + return ConvertTo(di64, PromoteUpperTo(df64, v)); +@@ -3890,13 +3944,10 @@ HWY_API VFromD PromoteUpperTo(D di64, Vec128 v) { + + template + HWY_API VFromD PromoteUpperTo(D du64, Vec128 v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspuxds)) +- const __vector float raw_v = +- detail::VsxF2INormalizeSrcVals(InterleaveUpper(Full128(), v, v)) +- .raw; +- return VFromD{reinterpret_cast<__vector unsigned long long>( +- __builtin_vsx_xvcvspuxds(raw_v))}; ++#if !HWY_S390X_HAVE_Z14 ++ (void)du64; ++ return detail::VsxXvcvspuxds( ++ detail::VsxF2INormalizeSrcVals(InterleaveUpper(Full128(), v, v))); + #else + const RebindToFloat df64; + return ConvertTo(du64, PromoteUpperTo(df64, v)); +@@ -3984,20 +4035,18 @@ HWY_INLINE VFromD PromoteEvenTo(hwy::SignedTag /*to_type_tag*/, + hwy::SizeTag<8> /*to_lane_size_tag*/, + hwy::FloatTag /*from_type_tag*/, D d_to, + V v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspsxds)) ++#if !HWY_S390X_HAVE_Z14 + (void)d_to; + const auto normalized_v = detail::VsxF2INormalizeSrcVals(v); + #if HWY_IS_LITTLE_ENDIAN +- // __builtin_vsx_xvcvspsxds expects the source values to be in the odd lanes +- // on little-endian PPC, and the vec_sld operation below will shift the even ++ // VsxXvcvspsxds expects the source values to be in the odd lanes on ++ // little-endian PPC, and the Shuffle2103 operation below will shift the even + // lanes of normalized_v into the odd lanes. +- return VFromD{ +- __builtin_vsx_xvcvspsxds(vec_sld(normalized_v.raw, normalized_v.raw, 4))}; ++ return VsxXvcvspsxds(Shuffle2103(normalized_v)); + #else +- // __builtin_vsx_xvcvspsxds expects the source values to be in the even lanes +- // on big-endian PPC. +- return VFromD{__builtin_vsx_xvcvspsxds(normalized_v.raw)}; ++ // VsxXvcvspsxds expects the source values to be in the even lanes on ++ // big-endian PPC. ++ return VsxXvcvspsxds(normalized_v); + #endif + #else + const RebindToFloat df64; +@@ -4012,22 +4061,18 @@ HWY_INLINE VFromD PromoteEvenTo(hwy::UnsignedTag /*to_type_tag*/, + hwy::SizeTag<8> /*to_lane_size_tag*/, + hwy::FloatTag /*from_type_tag*/, D d_to, + V v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspuxds)) ++#if !HWY_S390X_HAVE_Z14 + (void)d_to; + const auto normalized_v = detail::VsxF2INormalizeSrcVals(v); + #if HWY_IS_LITTLE_ENDIAN +- // __builtin_vsx_xvcvspuxds expects the source values to be in the odd lanes +- // on little-endian PPC, and the vec_sld operation below will shift the even +- // lanes of normalized_v into the odd lanes. +- return VFromD{ +- reinterpret_cast<__vector unsigned long long>(__builtin_vsx_xvcvspuxds( +- vec_sld(normalized_v.raw, normalized_v.raw, 4)))}; ++ // VsxXvcvspuxds expects the source values to be in the odd lanes ++ // on little-endian PPC, and the Shuffle2103 operation below will shift the ++ // even lanes of normalized_v into the odd lanes. ++ return VsxXvcvspuxds(Shuffle2103(normalized_v)); + #else +- // __builtin_vsx_xvcvspuxds expects the source values to be in the even lanes ++ // VsxXvcvspuxds expects the source values to be in the even lanes + // on big-endian PPC. +- return VFromD{reinterpret_cast<__vector unsigned long long>( +- __builtin_vsx_xvcvspuxds(normalized_v.raw))}; ++ return VsxXvcvspuxds(normalized_v); + #endif + #else + const RebindToFloat df64; +@@ -4069,20 +4114,18 @@ HWY_INLINE VFromD PromoteOddTo(hwy::SignedTag /*to_type_tag*/, + hwy::SizeTag<8> /*to_lane_size_tag*/, + hwy::FloatTag /*from_type_tag*/, D d_to, + V v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspsxds)) ++#if !HWY_S390X_HAVE_Z14 + (void)d_to; + const auto normalized_v = detail::VsxF2INormalizeSrcVals(v); + #if HWY_IS_LITTLE_ENDIAN +- // __builtin_vsx_xvcvspsxds expects the source values to be in the odd lanes ++ // VsxXvcvspsxds expects the source values to be in the odd lanes + // on little-endian PPC +- return VFromD{__builtin_vsx_xvcvspsxds(normalized_v.raw)}; ++ return VsxXvcvspsxds(normalized_v); + #else +- // __builtin_vsx_xvcvspsxds expects the source values to be in the even lanes +- // on big-endian PPC, and the vec_sld operation below will shift the odd lanes +- // of normalized_v into the even lanes. +- return VFromD{ +- __builtin_vsx_xvcvspsxds(vec_sld(normalized_v.raw, normalized_v.raw, 4))}; ++ // VsxXvcvspsxds expects the source values to be in the even lanes ++ // on big-endian PPC, and the Shuffle0321 operation below will shift the odd ++ // lanes of normalized_v into the even lanes. ++ return VsxXvcvspsxds(Shuffle0321(normalized_v)); + #endif + #else + const RebindToFloat df64; +@@ -4097,22 +4140,18 @@ HWY_INLINE VFromD PromoteOddTo(hwy::UnsignedTag /*to_type_tag*/, + hwy::SizeTag<8> /*to_lane_size_tag*/, + hwy::FloatTag /*from_type_tag*/, D d_to, + V v) { +-#if !HWY_S390X_HAVE_Z14 && \ +- (HWY_COMPILER_GCC_ACTUAL || HWY_HAS_BUILTIN(__builtin_vsx_xvcvspuxds)) ++#if !HWY_S390X_HAVE_Z14 + (void)d_to; + const auto normalized_v = detail::VsxF2INormalizeSrcVals(v); + #if HWY_IS_LITTLE_ENDIAN +- // __builtin_vsx_xvcvspuxds expects the source values to be in the odd lanes ++ // VsxXvcvspuxds expects the source values to be in the odd lanes + // on little-endian PPC +- return VFromD{reinterpret_cast<__vector unsigned long long>( +- __builtin_vsx_xvcvspuxds(normalized_v.raw))}; ++ return VsxXvcvspuxds(normalized_v); + #else +- // __builtin_vsx_xvcvspuxds expects the source values to be in the even lanes +- // on big-endian PPC, and the vec_sld operation below will shift the odd lanes +- // of normalized_v into the even lanes. +- return VFromD{ +- reinterpret_cast<__vector unsigned long long>(__builtin_vsx_xvcvspuxds( +- vec_sld(normalized_v.raw, normalized_v.raw, 4)))}; ++ // VsxXvcvspuxds expects the source values to be in the even lanes ++ // on big-endian PPC, and the Shuffle0321 operation below will shift the odd ++ // lanes of normalized_v into the even lanes. ++ return VsxXvcvspuxds(Shuffle0321(normalized_v)); + #endif + #else + const RebindToFloat df64; + diff --git a/lang-js/nodejs-24/spec b/lang-js/nodejs-24/spec new file mode 100644 index 000000000000..a38838f890f0 --- /dev/null +++ b/lang-js/nodejs-24/spec @@ -0,0 +1,5 @@ +VER=24.13.1 +SRCS="git::commit=tags/v$VER::https://github.com/nodejs/node" +CHKSUMS="SKIP" +CHKUPDATE="anitya::id=374342" +ENVREQ="total_mem_per_core=2" From ed37438842b58db229ebdf8aa6a67bc66509942e Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 03:54:07 +0800 Subject: [PATCH 4/8] nodejs: update to 24 Signed-off-by: stydxm --- lang-js/nodejs/autobuild/defines | 4 ++-- lang-js/nodejs/spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lang-js/nodejs/autobuild/defines b/lang-js/nodejs/autobuild/defines index b3bbb3362118..77eb9cb5f5bc 100644 --- a/lang-js/nodejs/autobuild/defines +++ b/lang-js/nodejs/autobuild/defines @@ -1,7 +1,7 @@ PKGNAME=nodejs PKGSEC=devel -PKGDEP="nodejs-22" -PKGDES="A JavaScript runtime built on the V8 JavaScript engine" +PKGDEP="nodejs-24" +PKGDES="JavaScript runtime built on the V8 JavaScript engine" ABTYPE=dummy ABHOST=noarch diff --git a/lang-js/nodejs/spec b/lang-js/nodejs/spec index 31f73ab01f22..cc9115a472ac 100644 --- a/lang-js/nodejs/spec +++ b/lang-js/nodejs/spec @@ -1,2 +1,2 @@ -VER=22 +VER=24 DUMMYSRC=1 From d3430f9f0f7bd26867da6e53a7789949eec6c2cb Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 16:27:08 +0800 Subject: [PATCH 5/8] v2raya: use Node.js 22 Signed-off-by: stydxm --- app-proxy/v2raya/autobuild/defines | 6 ++++-- app-proxy/v2raya/spec | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app-proxy/v2raya/autobuild/defines b/app-proxy/v2raya/autobuild/defines index 5c2002f24147..9059c51f3f3f 100644 --- a/app-proxy/v2raya/autobuild/defines +++ b/app-proxy/v2raya/autobuild/defines @@ -1,7 +1,9 @@ PKGNAME=v2raya PKGSEC=net -PKGDES="A client for Project V with web UI" +PKGDES="Client for Project V with web UI" PKGDEP="v2ray" -BUILDDEP="go nodejs-20" +# FIXME: not support Node.js 24 yet +# @achrinza/nodeTipc@10.1.11: The engine "node" is incompatible with this module. Expected version "14 || 16 || 17 || 18 || 19 || 20 || 22". Got "24.13.0" +BUILDDEP="go nodejs-22" ABSPLITDBG=0 diff --git a/app-proxy/v2raya/spec b/app-proxy/v2raya/spec index 998989c1ce61..f8e39f17c6f5 100644 --- a/app-proxy/v2raya/spec +++ b/app-proxy/v2raya/spec @@ -1,5 +1,5 @@ VER=2.2.7.3 -REL=1 +REL=2 SRCS="git::commit=tags/v$VER::https://github.com/v2rayA/v2rayA.git" CHKSUMS="SKIP" CHKUPDATE="anitya::id=326097" From b4130470ccc27f2e0ae0778d4b7c43c54ab42dca Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 16:28:23 +0800 Subject: [PATCH 6/8] zulip-desktop: build with latest Node.js Signed-off-by: stydxm --- app-web/zulip-desktop/autobuild/defines | 2 +- app-web/zulip-desktop/spec | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app-web/zulip-desktop/autobuild/defines b/app-web/zulip-desktop/autobuild/defines index ecb2990184a4..25f01b0ac5c3 100644 --- a/app-web/zulip-desktop/autobuild/defines +++ b/app-web/zulip-desktop/autobuild/defines @@ -1,7 +1,7 @@ PKGNAME=zulip-desktop PKGSEC=web PKGDEP="glibc" -BUILDDEP="nodejs-22 python-3 gcc x11-lib gconf" +BUILDDEP="nodejs python-3 gcc x11-lib gconf" PKGDES="Real-time team chat based on the email threading model" FAIL_ARCH="!(amd64|arm64)" diff --git a/app-web/zulip-desktop/spec b/app-web/zulip-desktop/spec index b98416db37c0..32f4db3727a5 100644 --- a/app-web/zulip-desktop/spec +++ b/app-web/zulip-desktop/spec @@ -1,5 +1,5 @@ VER=5.12.3 +REL=2 SRCS="git::commit=tags/v$VER::https://github.com/zulip/zulip-desktop.git" CHKSUMS="SKIP" CHKUPDATE="anitya::id=374790" -REL="1" From d0215ba612b8b9865b70ec2fd259b6252fdb91c9 Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 20:31:14 +0800 Subject: [PATCH 7/8] firefox: build with latest Node.js Signed-off-by: stydxm --- app-web/firefox/autobuild/defines | 2 -- app-web/firefox/spec | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app-web/firefox/autobuild/defines b/app-web/firefox/autobuild/defines index 3366a5ddd6d9..9d96c52f566a 100644 --- a/app-web/firefox/autobuild/defines +++ b/app-web/firefox/autobuild/defines @@ -5,8 +5,6 @@ PKGDEP="gtk-3 startup-notification dbus-glib alsa-lib \ networkmanager mozilla-common ffmpeg icu openh264" BUILDDEP="rustc unzip llvm nodejs libnotify \ xorg-server nasm yasm cbindgen llvm-runtime+wasi" -# FIXME: Node.js 22 seems to break build on RISC-V. -BUILDDEP__RISCV64="${BUILDDEP/nodejs/nodejs-20}" PKGDES="Standalone Web browser from Mozilla" PKGBREAK="firefox-i18n<=43.0.1" diff --git a/app-web/firefox/spec b/app-web/firefox/spec index ec239ca00384..b0b49718df5e 100644 --- a/app-web/firefox/spec +++ b/app-web/firefox/spec @@ -1,4 +1,5 @@ VER=147.0.3 +REL=1 CHKUPDATE="anitya::id=5506" SRCS="tbl::https://archive.mozilla.org/pub/firefox/releases/$VER/source/firefox-$VER.source.tar.xz \ file::rename=ach.xpi::https://archive.mozilla.org/pub/firefox/releases/$VER/linux-x86_64/xpi/ach.xpi \ From e1aafd05be0ae9cd6e1913d1865aeaccb82488b0 Mon Sep 17 00:00:00 2001 From: stydxm Date: Wed, 11 Feb 2026 20:31:55 +0800 Subject: [PATCH 8/8] thunderbird: build with latest Node.js Signed-off-by: stydxm --- app-web/thunderbird/autobuild/defines | 2 -- app-web/thunderbird/spec | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app-web/thunderbird/autobuild/defines b/app-web/thunderbird/autobuild/defines index 6b040ecd6398..5f60c8fa20db 100644 --- a/app-web/thunderbird/autobuild/defines +++ b/app-web/thunderbird/autobuild/defines @@ -6,8 +6,6 @@ PKGDEP="alsa-lib dbus-glib desktop-file-utils gtk-2 hicolor-icon-theme \ BUILDDEP="wireless-tools inetutils imake rustc llvm marco \ nodejs cbindgen llvm-runtime+wasi" BUILDDEP__AMD64="${BUILDDEP} nasm yasm" -# FIXME: Node.js 22 seems to break build on RISC-V. -BUILDDEP__RISCV64="${BUILDDEP/nodejs/nodejs-20}" PKGDES="Standalone mail and news reader from Mozilla" PKGBREAK="thunderbird-i18n<=38.5.0" diff --git a/app-web/thunderbird/spec b/app-web/thunderbird/spec index 95fd3d72e52c..5122d0e56184 100644 --- a/app-web/thunderbird/spec +++ b/app-web/thunderbird/spec @@ -1,4 +1,5 @@ VER=147.0.1 +REL=1 # Note: Track Thunderbird Release updates as it is now the default # advertised on the project homepage. CHKUPDATE="anitya::id=4967"