Update to version 24.14.1

The following CVEs were fixed in the NodeJS itself:
CVE-2026-21637 CVE-2026-21710 CVE-2026-21711 CVE-2026-21712
CVE-2026-21713 CVE-2026-21714 CVE-2026-21715 CVE-2026-21716
CVE-2026-21717

The following CVEs were fixed in bundled undici:
CVE-2026-1525 CVE-2026-1528 CVE-2026-2581 CVE-2026-1527 CVE-2026-2229
CVE-2026-1526

Resolves: RHEL-163752
This commit is contained in:
Jan Staněk 2026-03-31 16:13:14 +02:00
parent 358199c9e6
commit 8153e577a0
No known key found for this signature in database
GPG Key ID: 2972F2037B243B6D
6 changed files with 50 additions and 320 deletions

12
.gitignore vendored
View File

@ -1,11 +1,3 @@
/icu4c-77_1-data-bin-b.zip
/icu4c-77_1-data-bin-l.zip
/node-v24.4.1-stripped.tar.gz
/icu4c-*-data-bin-?.zip
/node-v*-stripped.tar.gz
/packaging-scripts.tar.gz
/node-v24.6.0-stripped.tar.gz
/node-v24.7.0-stripped.tar.gz
/node-v24.8.0-stripped.tar.gz
/node-v24.9.0-stripped.tar.gz
/node-v24.11.0-stripped.tar.gz
/node-v24.11.1-stripped.tar.gz
/node-v24.13.0-stripped.tar.gz

View File

@ -1,265 +0,0 @@
From 4208b7849eeee5c2aa76d692e2624bd80422057d Mon Sep 17 00:00:00 2001
From: John Platts <john_platts@hotmail.com>
Date: Fri, 17 Jan 2025 12:16:49 -0600
Subject: [PATCH] v8(highway): Fix for GCC 15 compiler error on PPC8/PPC9/PPC10
Signed-off-by: rpm-build <rpm-build>
---
.../highway/src/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 d216c54..73e736e 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
@@ -3701,16 +3701,73 @@ static HWY_INLINE V VsxF2INormalizeSrcVals(V v) {
#endif
}
+template <class VF32>
+static HWY_INLINE HWY_MAYBE_UNUSED VFromD<Repartition<int64_t, DFromV<VF32>>>
+VsxXvcvspsxds(VF32 vf32) {
+ using VI64 = VFromD<Repartition<int64_t, DFromV<VF32>>>;
+#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 <class VF32>
+static HWY_INLINE HWY_MAYBE_UNUSED VFromD<Repartition<uint64_t, DFromV<VF32>>>
+VsxXvcvspuxds(VF32 vf32) {
+ using VU64 = VFromD<Repartition<uint64_t, DFromV<VF32>>>;
+#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 <class D, HWY_IF_I64_D(D)>
HWY_API VFromD<D> PromoteTo(D di64, VFromD<Rebind<float, D>> 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<decltype(di64)>{__builtin_vsx_xvcvspsxds(raw_v)};
+#if !HWY_S390X_HAVE_Z14
+ const Repartition<float, decltype(di64)> dt_f32;
+ const auto vt_f32 = ResizeBitCast(dt_f32, v);
+ return detail::VsxXvcvspsxds(
+ detail::VsxF2INormalizeSrcVals(InterleaveLower(vt_f32, vt_f32)));
#else
const RebindToFloat<decltype(di64)> df64;
return ConvertTo(di64, PromoteTo(df64, v));
@@ -3719,12 +3776,11 @@ HWY_API VFromD<D> PromoteTo(D di64, VFromD<Rebind<float, D>> v) {
template <class D, HWY_IF_U64_D(D)>
HWY_API VFromD<D> PromoteTo(D du64, VFromD<Rebind<float, D>> 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<decltype(du64)>{reinterpret_cast<__vector unsigned long long>(
- __builtin_vsx_xvcvspuxds(raw_v))};
+#if !HWY_S390X_HAVE_Z14
+ const Repartition<float, decltype(du64)> dt_f32;
+ const auto vt_f32 = ResizeBitCast(dt_f32, v);
+ return detail::VsxXvcvspuxds(
+ detail::VsxF2INormalizeSrcVals(InterleaveLower(vt_f32, vt_f32)));
#else
const RebindToFloat<decltype(du64)> df64;
return ConvertTo(du64, PromoteTo(df64, v));
@@ -3829,12 +3885,10 @@ HWY_API VFromD<D> PromoteUpperTo(D df64, Vec128<uint32_t> v) {
template <class D, HWY_IF_V_SIZE_D(D, 16), HWY_IF_I64_D(D)>
HWY_API VFromD<D> PromoteUpperTo(D di64, Vec128<float> 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<float>(), v, v))
- .raw;
- return VFromD<decltype(di64)>{__builtin_vsx_xvcvspsxds(raw_v)};
+#if !HWY_S390X_HAVE_Z14
+ (void)di64;
+ return detail::VsxXvcvspsxds(
+ detail::VsxF2INormalizeSrcVals(InterleaveUpper(Full128<float>(), v, v)));
#else
const RebindToFloat<decltype(di64)> df64;
return ConvertTo(di64, PromoteUpperTo(df64, v));
@@ -3843,13 +3897,10 @@ HWY_API VFromD<D> PromoteUpperTo(D di64, Vec128<float> v) {
template <class D, HWY_IF_V_SIZE_D(D, 16), HWY_IF_U64_D(D)>
HWY_API VFromD<D> PromoteUpperTo(D du64, Vec128<float> 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<float>(), v, v))
- .raw;
- return VFromD<decltype(du64)>{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<float>(), v, v)));
#else
const RebindToFloat<decltype(du64)> df64;
return ConvertTo(du64, PromoteUpperTo(df64, v));
@@ -3937,20 +3988,18 @@ HWY_INLINE VFromD<D> 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<D>{
- __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<D>{__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<decltype(d_to)> df64;
@@ -3965,22 +4014,18 @@ HWY_INLINE VFromD<D> 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<D>{
- 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<D>{reinterpret_cast<__vector unsigned long long>(
- __builtin_vsx_xvcvspuxds(normalized_v.raw))};
+ return VsxXvcvspuxds(normalized_v);
#endif
#else
const RebindToFloat<decltype(d_to)> df64;
@@ -4022,20 +4067,18 @@ HWY_INLINE VFromD<D> 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<D>{__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<D>{
- __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<decltype(d_to)> df64;
@@ -4050,22 +4093,18 @@ HWY_INLINE VFromD<D> 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<D>{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<D>{
- 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<decltype(d_to)> df64;
--
2.50.0

View File

@ -27,7 +27,7 @@ PACKAGING := Makefile packaging/make-nodejs-tarball.sh packaging/fill-versions.s
# Update the package to TARGET_VERSION
update: ${SPECFILE} packaging/fill-versions.sh
sed -Ei '/^%nodejs_define_version\s+node\>/s|:[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+-|:${TARGET_VERSION}-|' '${SPECFILE}'
awk -i inplace '/^Version:/ && !done {sub(/[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+/, "${TARGET_VERSION}"); done=1} {print}' '${SPECFILE}'
${MAKE} node-v${TARGET_VERSION}-stripped.tar.gz
packaging/fill-versions.sh '${SPECFILE}' node-v${TARGET_VERSION}-stripped.tar.gz
${GIT} add '${SPECFILE}'

View File

@ -1,6 +1,6 @@
Name: nodejs24
Epoch: 1
Version: 24.13.0
Version: 24.14.1
Release: %{autorelease}
Summary: JavaScript runtime
@ -12,7 +12,7 @@ URL: https://nodejs.org
%{load:%{_sourcedir}/nodejs.srpm.macros}
# === Versions of any software shipped in the main nodejs tarball
%nodejs_define_version node %{epoch}:%{version}-%{autorelease} -p
%nodejs_define_version node %{epoch}:%{version}-%{release} -p
# Special release for sub-packages with their own version string.
# The complex release string ensures that the subpackage release is always increasing,
@ -24,44 +24,44 @@ URL: https://nodejs.org
# expect anything between the markers to be overwritten on any update.
# BEGIN automatic-version-macros # DO NOT REMOVE THIS LINE!
# Version from node-v24.13.0/src/node_version.h
# Version from node-v24.14.1/src/node_version.h
%global node_soversion 137
# Version from node-v24.13.0/deps/ada/ada.h
%nodejs_define_version ada 3.3.0
# Version from node-v24.13.0/deps/brotli/c/common/version.h
%nodejs_define_version brotli 1.1.0
# Version from node-v24.13.0/deps/cares/include/ares_version.h
# Version from node-v24.14.1/deps/ada/ada.h
%nodejs_define_version ada 3.4.2
# Version from node-v24.14.1/deps/brotli/c/common/version.h
%nodejs_define_version brotli 1.2.0
# Version from node-v24.14.1/deps/cares/include/ares_version.h
%nodejs_define_version c_ares 1.34.6
# Version from node-v24.13.0/deps/histogram/include/hdr/hdr_histogram_version.h
# Version from node-v24.14.1/deps/histogram/include/hdr/hdr_histogram_version.h
%nodejs_define_version histogram 0.11.9
# Version from node-v24.13.0/tools/icu/current_ver.dep
%nodejs_define_version icu 77.1 -p
# Version from node-v24.13.0/deps/uv/include/uv/version.h
# Version from node-v24.14.1/tools/icu/current_ver.dep
%nodejs_define_version icu 78.2 -p
# Version from node-v24.14.1/deps/uv/include/uv/version.h
%nodejs_define_version libuv 1.51.0
# Version from node-v24.13.0/deps/llhttp/include/llhttp.h
# Version from node-v24.14.1/deps/llhttp/include/llhttp.h
%nodejs_define_version llhttp 9.3.0
# Version from node-v24.13.0/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
%nodejs_define_version nghttp2 1.67.1
# Version from node-v24.13.0/deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h
# Version from node-v24.14.1/deps/merve/merve.h
%nodejs_define_version merve 1.0.0
# Version from node-v24.14.1/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h
%nodejs_define_version nghttp2 1.68.0
# Version from node-v24.14.1/deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h
%nodejs_define_version nghttp3 1.6.0
# Version from node-v24.13.0/deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h
# Version from node-v24.14.1/deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h
%nodejs_define_version ngtcp2 1.11.0
# Version from node-v24.13.0/deps/cjs-module-lexer/src/package.json
%nodejs_define_version nodejs-cjs-module-lexer 2.1.0
# Version from node-v24.13.0/lib/punycode.js
# Version from node-v24.14.1/lib/punycode.js
%nodejs_define_version nodejs-punycode 2.1.0
# Version from node-v24.13.0/deps/undici/src/package.json
%nodejs_define_version nodejs-undici 7.18.2
# Version from node-v24.13.0/deps/npm/package.json
%nodejs_define_version npm 1:11.6.2-%{nodejs_subpackage_release}
# Version from node-v24.13.0/deps/sqlite/sqlite3.h
%nodejs_define_version sqlite 3.50.4
# Version from node-v24.13.0/deps/uvwasi/include/uvwasi.h
# Version from node-v24.14.1/deps/undici/src/package.json
%nodejs_define_version nodejs-undici 7.24.4
# Version from node-v24.14.1/deps/npm/package.json
%nodejs_define_version npm 1:11.11.0-%{nodejs_subpackage_release}
# Version from node-v24.14.1/deps/sqlite/sqlite3.h
%nodejs_define_version sqlite 3.51.2
# Version from node-v24.14.1/deps/uvwasi/include/uvwasi.h
%nodejs_define_version uvwasi 0.0.23
# Version from node-v24.13.0/deps/v8/include/v8-version.h
# Version from node-v24.14.1/deps/v8/include/v8-version.h
%nodejs_define_version v8 3:13.6.233.17-%{nodejs_subpackage_release} -p
# Version from node-v24.13.0/deps/zlib/zlib.h
# Version from node-v24.14.1/deps/zlib/zlib.h
%nodejs_define_version zlib 1.3.1
# END automatic-version-macros # DO NOT REMOVE THIS LINE!
@ -108,10 +108,10 @@ BuildRequires: pkgconfig(openssl) >= 3.0.2
%nodejs_declare_bundled -a icu
%nodejs_declare_bundled -a libuv
%nodejs_declare_bundled -a llhttp
%nodejs_declare_bundled -a merve
%nodejs_declare_bundled -a nghttp2
%nodejs_declare_bundled -a nghttp3
%nodejs_declare_bundled -a ngtcp2
%nodejs_declare_bundled -a nodejs-cjs-module-lexer
%nodejs_declare_bundled -a nodejs-punycode -npunycode
%nodejs_declare_bundled -a nodejs-undici
%nodejs_declare_bundled -a sqlite -psqlite3
@ -133,8 +133,8 @@ Provides: nodejs(engine) = %{node_version}
Source: node-v%{node_version}-stripped.tar.gz
# Sources 001-099: reserved for additional sources to be installed
# - Full ICU database data
Source001: https://github.com/unicode-org/icu/releases/download/release-%{icu_version_major}-%{icu_version_minor}/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-b.zip
Source002: https://github.com/unicode-org/icu/releases/download/release-%{icu_version_major}-%{icu_version_minor}/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-l.zip
Source001: https://github.com/unicode-org/icu/releases/download/release-%{icu_version_major}.%{icu_version_minor}/icu4c-%{icu_version_major}.%{icu_version_minor}-data-bin-b.zip
Source002: https://github.com/unicode-org/icu/releases/download/release-%{icu_version_major}.%{icu_version_minor}/icu4c-%{icu_version_major}.%{icu_version_minor}-data-bin-l.zip
# - Downstream/distribution configuration files
Source003: nodejs.pc.in
Source004: v8.pc.in
@ -151,7 +151,6 @@ Source101: nodejs.srpm.macros
%patchlist
0001-Remove-unused-OpenSSL-config.patch
0005-v8-highway-Fix-for-GCC-15-compiler-error-on-PPC8-PPC.patch
0001-fips-disable-options.patch
%description
@ -251,7 +250,7 @@ readonly -a devendored_paths=(
%{?!with_bundled_brotli:deps/brotli}
%{?!with_bundled_c_ares:deps/cares}
%{?!with_bundled_libuv:deps/uv}
%{?!with_bundled_nodejs_cjs_module_lexer:deps/cjs-module-lexer}
%{?!with_bundled_merve:deps/merve}
%{?!with_bundled_nodejs_undici:deps/undici}
%{?!with_bundled_sqlite:deps/sqlite}
%{?!with_bundled_zlib:deps/zlib}
@ -300,9 +299,9 @@ readonly -a configure_flags=(
%{?!with_bundled_libuv:--shared-libuv}
%{?!with_bundled_sqlite:--shared-sqlite}
%{?!with_bundled_zlib:--shared-zlib}
%if %{without bundled_nodejs_cjs_module_lexer}
--shared-builtin-cjs_module_lexer/lexer-path=%{nodejs_common_sitelib}/cjs-module-lexer/lexer.js
--shared-builtin-cjs_module_lexer/dist/lexer-path=%{nodejs_common_sitelib}/cjs-module-lexer/dist/lexer.js
%if %{without bundled_merve}
--shared-builtin-merve/lexer-path=%{nodejs_common_sitelib}/merve/lexer.js
--shared-builtin-merve/dist/lexer-path=%{nodejs_common_sitelib}/merve/dist/lexer.js
%endif
%if %{without bundled_nodejs_undici}
--shared-builtin-undici/undici-path=%{nodejs_common_sitelib}/undici/loader.js
@ -513,8 +512,12 @@ npm() {
# === Sanity check for important versions
node -e 'require("assert").equal(process.versions.node, "%{node_version}")'
node -e 'require("assert").equal(process.versions.v8.replace(/-node\.\d+$/, ""), "%{v8_version}")'
%if %{with bundled_c_ares}
node -e 'require("assert").equal(process.versions.ares.replace(/-DEV$/, ""), "%{c_ares_version}")'
%endif
%if %{with bundled_punycode}
node --no-deprecation -e 'require("assert").equal(require("punycode").version, "%{nodejs_punycode_version}")'
%endif
npm version --json | jq --exit-status '.npm == "%{npm_version}"'
@ -568,7 +571,7 @@ bash '%{SOURCE10}' "${RPM_BUILD_ROOT}%{_bindir}/node-%{node_version_major}" test
%{_libdir}/pkgconfig/v8-%{v8_version_major}.%{v8_version_minor}.pc
%files full-i18n
%doc full-icu/icu4c-%{icu_version_major}_%{icu_version_minor}-data-bin-?-README.md
%doc full-icu/icu4c-%{icu_version_major}.%{icu_version_minor}-data-bin-?-README.md
%license full-icu/LICENSE
%dir %{nodejs_datadir}/
%{nodejs_datadir}/icudata/

View File

@ -95,7 +95,7 @@ parse_isu_version() {
local -r path="${1?No ICU metadata JSON path provided!}"
version_from_json "${path}" '.[0].url' \
| sed -E 's/.*release-([[:digit:]]+)-([[:digit:]]+).*/\1.\2/g'
| sed -E 's/.*release-([[:digit:]]+).([[:digit:]]+).*/\1.\2/g'
}
parse_punycode_version() {
local -r path="${1?No punycode.js path provided!}"
@ -162,10 +162,10 @@ find_version histogram deps/histogram/include/hdr/hdr_histogram_version.h '' ver
find_version icu tools/icu/current_ver.dep -p parse_isu_version
find_version libuv deps/uv/include/uv/version.h '' version_from_c_define UV_VERSION_{MAJOR,MINOR,PATCH}
find_version llhttp deps/llhttp/include/llhttp.h '' version_from_c_define LLHTTP_VERSION_{MAJOR,MINOR,PATCH}
find_version merve deps/merve/merve.h '' version_from_c_define MERVE_VERSION
find_version nghttp2 deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h '' version_from_c_define NGHTTP2_VERSION
find_version nghttp3 deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h '' version_from_c_define NGHTTP3_VERSION
find_version ngtcp2 deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h '' version_from_c_define NGTCP2_VERSION
find_version nodejs-cjs-module-lexer deps/cjs-module-lexer/src/package.json '' version_from_json
find_version nodejs-punycode lib/punycode.js '' parse_punycode_version
find_version nodejs-undici deps/undici/src/package.json '' version_from_json
find_version npm deps/npm/package.json '' parse_npm_version

View File

@ -1,4 +1,4 @@
SHA512 (icu4c-77_1-data-bin-b.zip) = 93b4c8228a059546e7c3e337f1f837db255c0046c15f50a31a7bd20daf361174edab05b01faaac1dd4f515ca3c1f1d7fb0f61e4177eb5631833ad1450e252c4e
SHA512 (icu4c-77_1-data-bin-l.zip) = 3de15bb5925956b8e51dc6724c2114a1009ec471a2241b09ae09127f1760f44d02cc29cfbeed6cbaac6ee880553ac8395c61c6043c00ddba3277233e19e6490e
SHA512 (packaging-scripts.tar.gz) = deedbc98d0907e4deac5b089ed0cb2d3fad8de5e45736752c6a48b940d8240312dc81d4957b684d68877c22b5d6a9f45d98b183dea92dd9659ab1a52868d51ee
SHA512 (node-v24.13.0-stripped.tar.gz) = 9e1093ff95af37e8fe13e7ee028753994d8d5e0b4a18ed7905ebcb5e97abac11be4186505a955b0511d3f7f8cc06449e6781e177d9a47e0c03581dac3c13565c
SHA512 (node-v24.14.1-stripped.tar.gz) = 630ae6ad554d56722ee23e41cbc5a5cce632f0db183cb975e67385c947137ca10c2cbbe0db99d50b4d9faa8a5bdc01ba46e0d7df02bc56e43b13f322e4fdac3d
SHA512 (icu4c-78.2-data-bin-b.zip) = 032a1e519bf92dfa7936ef85ebed697550dbcb4e32c6ecd28ffecb158a403eeff6c0a3545b2551eba73f288e31693be6880e202a38cd86c129dffa395e8ab625
SHA512 (icu4c-78.2-data-bin-l.zip) = c0b46de115332940d3276763904caa6257eb516edce4382632f4b96a5b010fee4cb06a5e10ef5eee2f881515c1ee8277d9ae59015f6de6fe1d175b9d00dbb1ca
SHA512 (packaging-scripts.tar.gz) = 2b8753300a5c30d7ed026607c99d32d3dd916f31d93d0730b00a51ba127eb693d342c50592182236cbfd4a401effa7d40b3fbc4a166a6157177cfefd5003f18e