diff --git a/.gitignore b/.gitignore index 7fa6a66..9d27144 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,6 @@ /wasi-sdk-wasi-sdk-14.tar.gz /node-v18.16.1-stripped.tar.gz /undici-5.21.0.tar.gz +/node-v20.5.0-stripped.tar.gz +/icu4c-73_2-src.tgz +/undici-5.22.1.tar.gz diff --git a/nodejs.spec b/nodejs.spec index c1bc216..d71fbbd 100644 --- a/nodejs.spec +++ b/nodejs.spec @@ -25,6 +25,9 @@ # bytecompiling files in the node_modules/ directory %global __python %{__python3} +# This macro serves to provide corepack, which is not provided for now, but might be in the future +%bcond_with corepack + # == Master Relase == # This is used by both the nodejs package and the npm subpackage that # has a separate version - the name is special so that rpmdev-bumpspec @@ -39,12 +42,12 @@ # feature releases that are only supported for nine months, which is shorter # than a Fedora release lifecycle. %global nodejs_epoch 1 -%global nodejs_major 18 -%global nodejs_minor 16 -%global nodejs_patch 1 +%global nodejs_major 20 +%global nodejs_minor 5 +%global nodejs_patch 0 %global nodejs_abi %{nodejs_major}.%{nodejs_minor} # nodejs_soversion - from NODE_MODULE_VERSION in src/node_version.h -%global nodejs_soversion 108 +%global nodejs_soversion 115 %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release %{baserelease} @@ -54,10 +57,10 @@ # v8 - from deps/v8/include/v8-version.h # Epoch is set to ensure clean upgrades from the old v8 package %global v8_epoch 2 -%global v8_major 10 -%global v8_minor 2 -%global v8_build 154 -%global v8_patch 26 +%global v8_major 11 +%global v8_minor 3 +%global v8_build 244 +%global v8_patch 8 # V8 presently breaks ABI at least every x.y release while never bumping SONAME %global v8_abi %{v8_major}.%{v8_minor} %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} @@ -68,29 +71,23 @@ %global c_ares_version 1.19.1 # llhttp - from deps/llhttp/include/llhttp.h -%global llhttp_version 6.0.11 +%global llhttp_version 8.1.1 # libuv - from deps/uv/include/uv/version.h -%global libuv_version 1.44.2 +%global libuv_version 1.46.0 # nghttp2 - from deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h -%global nghttp2_version 1.52.0 +%global nghttp2_version 1.55.1 # nghttp3 - from deps/ngtcp2/nghttp3/lib/includes/nghttp3/version.h -%global nghttp3_major 0 -%global nghttp3_minor 7 -%global nghttp3_patch 0 -%global nghttp3_version %{nghttp3_major}.%{nghttp3_minor}.%{nghttp3_patch} +%global nghttp3_version 0.7.0 # ngtcp2 from deps/ngtcp2/ngtcp2/lib/includes/ngtcp2/version.h -%global ngtcp2_major 0 -%global ngtcp2_minor 8 -%global ngtcp2_patch 1 -%global ngtcp2_version %{ngtcp2_major}.%{ngtcp2_minor}.%{ngtcp2_patch} +%global ngtcp2_version 0.8.1 # ICU - from tools/icu/current_ver.dep -%global icu_major 72 -%global icu_minor 1 +%global icu_major 73 +%global icu_minor 2 %global icu_version %{icu_major}.%{icu_minor} %global icudatadir %{nodejs_datadir}/icudata @@ -108,13 +105,10 @@ %endif # simduft from deps/simdutf/simdutf.h -%global simduft_major 3 -%global simduft_minor 2 -%global simduft_patch 2 -%global simduft_version %{simduft_major}.%{simduft_minor}.%{simduft_patch} +%global simduft_version 3.2.14 # ada from deps/ada/ada.h -%global ada_version 1.0.4 +%global ada_version 2.5.1 # OpenSSL minimum version %global openssl_minimum 1:1.1.1 @@ -122,11 +116,12 @@ # punycode - from lib/punycode.js # Note: this was merged into the mainline since 0.6.x # Note: this will be unmerged in an upcoming major release +# Note: Marked as pending deprecation since 18.16.0 %global punycode_version 2.1.0 # npm - from deps/npm/package.json %global npm_epoch 1 -%global npm_version 9.5.1 +%global npm_version 9.8.0 # In order to avoid needing to keep incrementing the release version for the # main package forever, we will just construct one for npm that is guaranteed @@ -134,11 +129,15 @@ # base npm version number is increasing. %global npm_release %{nodejs_epoch}.%{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release} -# uvwasi - from deps/uvwasi/include/uvwasi.h -%global uvwasi_version 0.0.15 +# Node.js 16.9.1 and later comes with an experimental package management tool +# corepack - from deps/corepack/package.json +%global corepack_version 0.19.0 -# histogram_c - assumed from timestamps -%global histogram_version 0.11.2 +# uvwasi - from deps/uvwasi/include/uvwasi.h +%global uvwasi_version 0.0.18 + +# histogram_c - from deps/histogram/include/hdr/hdr_histogram_version.h +%global histogram_version 0.11.8 Name: nodejs Epoch: %{nodejs_epoch} @@ -181,11 +180,11 @@ Source101: cjs-module-lexer-1.2.2.tar.gz Source111: https://github.com/WebAssembly/wasi-sdk/archive/wasi-sdk-11/wasi-sdk-11.0-linux.tar.gz # Version: jq '.version' deps/undici/src/package.json -# Original: https://github.com/nodejs/undici/archive/refs/tags/v5.21.0.tar.gz -# Adjustments: rm -f undici-5.20.0/lib/llhttp/llhttp*.wasm +# Original: https://github.com/nodejs/undici/archive/refs/tags/v5.22.1.tar.gz +# Adjustments: rm -f undici-5.22.1/lib/llhttp/llhttp*.wasm # wasi-sdk version can be found in Dockerfile -# https://github.com/nodejs/undici/blob/v5.21.0/build/Dockerfile -Source102: undici-5.21.0.tar.gz +# https://github.com/nodejs/undici/blob/v5.22.1/build/Dockerfile +Source102: undici-5.22.1.tar.gz Source112: https://github.com/WebAssembly/wasi-sdk/archive/wasi-sdk-14/wasi-sdk-14.0-linux.tar.gz # Disable running gyp on bundled deps we don't use @@ -209,7 +208,6 @@ BuildRequires: jq BuildRequires: nodejs-packaging BuildRequires: chrpath BuildRequires: libatomic -BuildRequires: systemtap-sdt-devel %if %{with bundled} Provides: bundled(libuv) = %{libuv_version} @@ -288,6 +286,9 @@ Provides: bundled(icu) = %{icu_version} # or there's no option to built it as a shared dependency, so we bundle them Provides: bundled(uvwasi) = %{uvwasi_version} Provides: bundled(histogram) = %{histogram_version} +%if %{with corepack} +Provides: bundled(corepack) = %{corepack_version} +%endif Provides: bundled(simduft) = %{simduft_version} Provides: bundled(ada) = %{ada_version} @@ -402,11 +403,9 @@ find . -type f -exec sed -i "s~python -c~python3 -c~" {} \; %endif %build -%ifarch s390 s390x %{arm} %ix86 # Decrease debuginfo verbosity to reduce memory consumption during final # library linking %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') -%endif export CC='%{__cc}' export CXX='%{__cxx}' @@ -430,10 +429,9 @@ export LDFLAGS="%{build_ldflags}" --shared-brotli \ %{!?with_bundled:--shared-libuv} \ %{!?with_bundled:--shared-nghttp2} \ - --with-dtrace \ --with-intl=small-icu \ --with-icu-default-data-dir=%{icudatadir} \ - --without-corepack \ + %{!?with_corepack:--without-corepack} \ --openssl-use-def-ca-store \ --openssl-default-cipher-list=PROFILE=SYSTEM @@ -535,6 +533,13 @@ find %{buildroot}%{_prefix}/lib/node_modules/npm \ chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/@npmcli/run-script/lib/node-gyp-bin/node-gyp chmod 0755 %{buildroot}%{_prefix}/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js +%if %{with corepack} +# Corepack contains a number of executable"shims", including some for Windows +# PowerShell. Drop the executable bit for those so we don't pick up an +# automatic dependency on /usr/bin/pwsh that we cannot satisfy. +chmod -x %{buildroot}%{_prefix}/lib/node_modules/corepack/shims/*.ps1 +%endif + # Drop the NPM builtin configuration in place sed -e 's#@SYSCONFDIR@#%{_sysconfdir}#g' \ %{SOURCE8} > %{buildroot}%{_prefix}/lib/node_modules/npm/npmrc @@ -567,12 +572,12 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/nod %{_bindir}/node %dir %{_prefix}/lib/node_modules %dir %{_datadir}/node -%dir %{_datadir}/systemtap -%dir %{_datadir}/systemtap/tapset -%{_datadir}/systemtap/tapset/node.stp -%dir %{_usr}/lib/dtrace -%{_usr}/lib/dtrace/node.d +%if %{with corepack} +# corepack +%{_bindir}/corepack +%{_prefix}/lib/node_modules/corepack +%endif %{_rpmconfigdir}/fileattrs/nodejs_native.attr %{_rpmconfigdir}/nodejs_native.req @@ -629,6 +634,14 @@ NODE_PATH=%{buildroot}%{_prefix}/lib/node_modules:%{buildroot}%{_prefix}/lib/nod %changelog +* Thu Jul 27 2023 Zuzana Svetlikova - 1:20.5.0-1 +- Update to v20.5.0 +- Remove dtrace support +- bcond corepack, so we don't provide it by default +- Decrease debuginfo verbosity for all arches +- Resolves: #2186717 +- Resolves RHELPLAN-155639 + * Wed Jul 12 2023 Jan Staněk - 1:18.16.1-1 - Rebase to 18.16.1 Resolves: rhbz#2188292 rhbz#2187683 diff --git a/sources b/sources index 1068499..d2b06cb 100644 --- a/sources +++ b/sources @@ -1,6 +1,6 @@ -SHA512 (node-v18.16.1-stripped.tar.gz) = 8548e92504760c8ea3b5d8bf1e745b7577668bd249786247fcbfeafd519c308b7f3974d6692cc98c124482a3e5d6867d4c6e2ad829ada4ec6b7b1b0114194911 -SHA512 (icu4c-72_1-src.tgz) = 848c341b37c0ff077e34a95d92c6200d5aaddd0ee5e06134101a74e04deb08256a5e817c8aefab020986abe810b7827dd7b2169a60dacd250c298870518dcae8 -SHA512 (undici-5.21.0.tar.gz) = 69097b92f7aac8f47207e6e76074b2676ecee8ecbadf8c35e7295cdf550e881e32bce9f0123f612d7a1cb5e7a2c5de798550f5e097ac053e4257e61d025db7d8 +SHA512 (node-v20.5.0-stripped.tar.gz) = 46056ee170ef87819e64365a86930d0730b22562250c1d66a214a00e9ab21b4165f7a5d90b10195ae9e216ffdb71ad648b55a1d454db9bed3e1478549abe724a +SHA512 (icu4c-73_2-src.tgz) = 76dd782db6205833f289d7eb68b60860dddfa3f614f0ba03fe7ec13117077f82109f0dc1becabcdf4c8a9c628b94478ab0a46134bdb06f4302be55f74027ce62 +SHA512 (undici-5.22.1.tar.gz) = d372c6d5b9705901d3377a3d1ab2b42b7b8cb66b0d9d427843ab1f8ca15da7a7b1d5895280c54d71507112534ca9f1d934c647159f74b7868d8bfc876bfeca19 SHA512 (cjs-module-lexer-1.2.2.tar.gz) = 2c8e9caf2231ca7d61e71936305389774859aca9b5c86c63489c9a62a81f4736f99477c3f0cbb41077bb7924fdd23e0f24b7bce858e42fb0f87e7c0ffc87afeb SHA512 (wasi-sdk-11.0-linux.tar.gz) = e3ed4597f7f2290967eef6238e9046f60abbcb8633a4a2a51525d00e7393df8df637a98a5b668217d332dd44fcbf2442ec7efd5e65724e888d90611164451e20 SHA512 (wasi-sdk-14.0-linux.tar.gz) = 288a367e051f5b3f5853de97fabaedd3acf2255819d50c24f48f573897518500ea808342fd9aea832b2a5717089807bf1cbcf6d46b156b4eb60cc6b3c02ee997