From ce26a524b582d0ce92a75c74b73ca62948988a1f Mon Sep 17 00:00:00 2001 From: Stephen Gallagher Date: Tue, 21 Feb 2023 08:16:13 -0500 Subject: [PATCH] First Node.js 20 prerelease Signed-off-by: Stephen Gallagher --- 0001-Disable-running-gyp-on-shared-deps.patch | 25 +++++++--- nodejs-sources.sh | 50 ++++++++++++------- nodejs18.spec => nodejs20.spec | 43 ++++++---------- packaging/nodejs.spec.in | 21 ++------ sources | 6 +-- 5 files changed, 69 insertions(+), 76 deletions(-) rename nodejs18.spec => nodejs20.spec (96%) diff --git a/0001-Disable-running-gyp-on-shared-deps.patch b/0001-Disable-running-gyp-on-shared-deps.patch index 842a5b8..58d593c 100644 --- a/0001-Disable-running-gyp-on-shared-deps.patch +++ b/0001-Disable-running-gyp-on-shared-deps.patch @@ -1,16 +1,16 @@ -From f850686d1442e6c4f409f8e24ef461e29710277b Mon Sep 17 00:00:00 2001 +From dcfc1ddd79e6bf9c7d3066e7c9e466e51011adac Mon Sep 17 00:00:00 2001 From: Zuzana Svetlikova Date: Fri, 17 Apr 2020 12:59:44 +0200 Subject: [PATCH] Disable running gyp on shared deps Signed-off-by: rpm-build --- - Makefile | 2 +- + Makefile | 4 ++-- node.gyp | 17 ----------------- - 2 files changed, 1 insertion(+), 18 deletions(-) + 2 files changed, 2 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile -index 05fdc1509844ad616e1ae1490bb0f244627fcda9..46816fe1bc7108bd4f0abd6277b2a4f9b4283f95 100644 +index 94013466239e9c43ddce5cebc7a8d0a4dc56db4f..8577570c95d20dcf8d3dfe5d9fe82c1f67b2d70a 100644 --- a/Makefile +++ b/Makefile @@ -169,7 +169,7 @@ with-code-cache test-code-cache: @@ -19,14 +19,23 @@ index 05fdc1509844ad616e1ae1490bb0f244627fcda9..46816fe1bc7108bd4f0abd6277b2a4f9 out/Makefile: config.gypi common.gypi node.gyp \ - deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \ + deps/llhttp/llhttp.gyp \ + deps/simdutf/simdutf.gyp \ tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \ tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp - $(PYTHON) tools/gyp_node.py -f make +@@ -1550,7 +1550,7 @@ CONFLICT_RE=^>>>>>>> [[:xdigit:]]+|^<<<<<<< [[:alpha:]]+ + + # Related CI job: node-test-linter + lint-ci: lint-js-ci lint-cpp lint-py lint-md lint-addon-docs lint-yaml-build lint-yaml +- @if ! ( grep -IEqrs "$(CONFLICT_RE)" --exclude="error-message.js" --exclude="merge-conflict.json" benchmark deps doc lib src test tools ) \ ++ @if ! ( grep -IEqrs "$(CONFLICT_RE)" --exclude="error-message.js" benchmark deps doc lib src test tools ) \ + && ! ( $(FIND) . -maxdepth 1 -type f | xargs grep -IEqs "$(CONFLICT_RE)" ); then \ + exit 0 ; \ + else \ diff --git a/node.gyp b/node.gyp -index 1885a8d1ecb983fe8fd1ce3cc8cd53ee48e241d2..917eeb73d20791625e71b3e921b2fa9a68fd6133 100644 +index b0f132efd82edcd114612d25cd3316379b2097a4..f091b165cbb9efccbe16a6e595a32b311248939b 100644 --- a/node.gyp +++ b/node.gyp -@@ -428,23 +428,6 @@ +@@ -420,23 +420,6 @@ ], }, ], @@ -51,5 +60,5 @@ index 1885a8d1ecb983fe8fd1ce3cc8cd53ee48e241d2..917eeb73d20791625e71b3e921b2fa9a ], }, # node_core_target_name -- -2.39.0 +2.39.2 diff --git a/nodejs-sources.sh b/nodejs-sources.sh index a6da118..c45216f 100755 --- a/nodejs-sources.sh +++ b/nodejs-sources.sh @@ -107,6 +107,7 @@ assign_positional_args 1 "${_positionals[@]}" ### END OF CODE GENERATED BY Argbash (sortof) ### ]) # [ <-- needed because of Argbash +set -x SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" @@ -127,6 +128,16 @@ NODE_MAJOR=$(echo $version | cut -d. -f1) NODE_MINOR=$(echo $version | cut -d. -f2) NODE_PATCH=$(echo $version | cut -d. -f3) +# Treat odd-numbered major releases as pre-releases for the +# next LTS release. +if [[ $((NODE_MAJOR % 2)) -eq 0 ]]; + then NODE_PKG_MAJOR=${NODE_MAJOR}; + else NODE_PKG_MAJOR=$((NODE_MAJOR + 1)); +fi + +FEDORA_DEFAULT_RELEASE_LOW=$((NODE_PKG_MAJOR + 19)) +FEDORA_DEFAULT_RELEASE_HIGH=$((NODE_PKG_MAJOR + 20)) + rm -rf node-v${version}.tar.gz \ node-v${version}-stripped.tar.gz \ node-v${version}/ \ @@ -283,32 +294,35 @@ echo "WASI-SDK: ${UNDICI_WASI_MAJOR}.${UNDICI_WASI_MINOR}" echo echo "Applying versions to spec template" -sed -e "s/@NODE_MAJOR@/${NODE_MAJOR}/g" \ +sed -e "s/@NODE_PKG_MAJOR@/${NODE_PKG_MAJOR}/g" \ + -e "s/@NODE_MAJOR@/${NODE_MAJOR}/g" \ -e "s/@NODE_MINOR@/${NODE_MINOR}/g" \ -e "s/@NODE_PATCH@/${NODE_PATCH}/g" \ + -e "s/@FEDORA_DEFAULT_RELEASE_LOW@/${FEDORA_DEFAULT_RELEASE_LOW}/g" \ + -e "s/@FEDORA_DEFAULT_RELEASE_HIGH@/${FEDORA_DEFAULT_RELEASE_HIGH}/g" \ -e "s/@NODE_SOVERSION@/${NODE_SOVERSION}/g" \ -e "s/@V8_MAJOR@/${V8_MAJOR}/g" \ -e "s/@V8_MINOR@/${V8_MINOR}/g" \ -e "s/@V8_BUILD@/${V8_BUILD}/g" \ -e "s/@V8_PATCH@/${V8_PATCH}/g" \ - -e "s/@C_ARES_VERSION@/${C_ARES_VERSION}/g" \ - -e "s/@LLHTTP_VERSION@/${LLHTTP_MAJOR}.${LLHTTP_MINOR}.${LLHTTP_PATCH}/g" \ - -e "s/@LIBUV_VERSION@/${UV_MAJOR}.${UV_MINOR}.${UV_PATCH}/g" \ - -e "s/@NGHTTP2_VERSION@/${NGHTTP2_VERSION}/g" \ - -e "s/@ICU_MAJOR@/${ICU_MAJOR}/g" \ - -e "s/@ICU_MINOR@/${ICU_MINOR}/g" \ - -e "s/@PUNYCODE_VERSION@/${PUNYCODE_VERSION}/g" \ - -e "s/@UVWASI_VERSION@/${UVWASI_VERSION}/g" \ - -e "s/@NPM_VERSION@/${NPM_VERSION}/g" \ - -e "s/@ZLIB_VERSION@/${ZLIB_VERSION}/g" \ - -e "s/@LEXER_VERSION@/${LEXER_VERSION}/g" \ - -e "s/@LEXER_WASI_MAJOR@/${LEXER_WASI_MAJOR}/g" \ - -e "s/@LEXER_WASI_MINOR@/${LEXER_WASI_MINOR}/g" \ - -e "s/@UNDICI_VERSION@/${UNDICI_VERSION}/g" \ - -e "s/@UNDICI_WASI_MAJOR@/${UNDICI_WASI_MAJOR}/g" \ - -e "s/@UNDICI_WASI_MINOR@/${UNDICI_WASI_MINOR}/g" \ + -e "s/@C_ARES_VERSION@/${C_ARES_VERSION}/g" \ + -e "s/@LLHTTP_VERSION@/${LLHTTP_MAJOR}.${LLHTTP_MINOR}.${LLHTTP_PATCH}/g" \ + -e "s/@LIBUV_VERSION@/${UV_MAJOR}.${UV_MINOR}.${UV_PATCH}/g" \ + -e "s/@NGHTTP2_VERSION@/${NGHTTP2_VERSION}/g" \ + -e "s/@ICU_MAJOR@/${ICU_MAJOR}/g" \ + -e "s/@ICU_MINOR@/${ICU_MINOR}/g" \ + -e "s/@PUNYCODE_VERSION@/${PUNYCODE_VERSION}/g" \ + -e "s/@UVWASI_VERSION@/${UVWASI_VERSION}/g" \ + -e "s/@NPM_VERSION@/${NPM_VERSION}/g" \ + -e "s/@ZLIB_VERSION@/${ZLIB_VERSION}/g" \ + -e "s/@LEXER_VERSION@/${LEXER_VERSION}/g" \ + -e "s/@LEXER_WASI_MAJOR@/${LEXER_WASI_MAJOR}/g" \ + -e "s/@LEXER_WASI_MINOR@/${LEXER_WASI_MINOR}/g" \ + -e "s/@UNDICI_VERSION@/${UNDICI_VERSION}/g" \ + -e "s/@UNDICI_WASI_MAJOR@/${UNDICI_WASI_MAJOR}/g" \ + -e "s/@UNDICI_WASI_MINOR@/${UNDICI_WASI_MINOR}/g" \ ${SCRIPT_DIR}/packaging/nodejs.spec.in \ - > ${SCRIPT_DIR}/nodejs${NODE_MAJOR}.spec + > ${SCRIPT_DIR}/nodejs${NODE_PKG_MAJOR}.spec rm -rf node-v${version} # ] <-- needed because of Argbash diff --git a/nodejs18.spec b/nodejs20.spec similarity index 96% rename from nodejs18.spec rename to nodejs20.spec index 35baad3..a2218a7 100644 --- a/nodejs18.spec +++ b/nodejs20.spec @@ -43,12 +43,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 13 -%global nodejs_patch 0 +%global nodejs_major 19 +%global nodejs_minor 6 +%global nodejs_patch 1 %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 111 %global nodejs_version %{nodejs_major}.%{nodejs_minor}.%{nodejs_patch} %global nodejs_release %{baserelease} %global nodejs_envr %{nodejs_epoch}:%{nodejs_version}-%{nodejs_release} @@ -57,7 +57,7 @@ # Determine if this should be the default version for this Fedora release # The default version will own /usr/bin/node and friends -%if 0%{?fedora} == 37 || 0%{?fedora} == 38 || 0%{?rhel} == 10 +%if 0%{?fedora} == 39 || 0%{?fedora} == 40 %global nodejs_default %{nodejs_major} %endif %global nodejs_private_sitelib %{nodejs_sitelib}_%{nodejs_major} @@ -68,9 +68,9 @@ # Epoch is set to ensure clean upgrades from the old v8 package %global v8_epoch 3 %global v8_major 10 -%global v8_minor 2 -%global v8_build 154 -%global v8_patch 23 +%global v8_minor 8 +%global v8_build 168 +%global v8_patch 25 %global v8_version %{v8_major}.%{v8_minor}.%{v8_build}.%{v8_patch} %global v8_release %{nodejs_epoch}.%{nodejs_major}.%{nodejs_minor}.%{nodejs_patch}.%{nodejs_release} @@ -82,7 +82,7 @@ %global c_ares_version 1.18.1 # llhttp - from deps/llhttp/include/llhttp.h -%global llhttp_version 6.0.10 +%global llhttp_version 8.1.0 # libuv - from deps/uv/include/uv/version.h %global libuv_version 1.44.2 @@ -111,7 +111,7 @@ # npm - from deps/npm/package.json %global npm_epoch 1 -%global npm_version 8.19.3 +%global npm_version 9.4.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 @@ -124,13 +124,13 @@ %global npm_obsoletes 1:8.19.2-1.18.12.1.3 # uvwasi - from deps/uvwasi/include/uvwasi.h -%global uvwasi_version 0.0.13 +%global uvwasi_version 0.0.15 # histogram_c - assumed from timestamps %global histogram_version 0.9.7 -Name: nodejs%{nodejs_major} +Name: nodejs20 Epoch: %{nodejs_epoch} Version: %{nodejs_version} Release: %{nodejs_release} @@ -158,7 +158,7 @@ Source100: nodejs-sources.sh # These are generated by nodejs-sources.sh Source101: cjs-module-lexer-1.2.2-stripped.tar.gz Source102: wasi-sdk-11.0-linux.tar.gz -Source111: undici-5.13.0-stripped.tar.gz +Source111: undici-5.19.1-stripped.tar.gz Source112: wasi-sdk-14.0-linux.tar.gz # Disable running gyp on bundled deps we don't use @@ -169,7 +169,7 @@ Patch1: 0001-Disable-running-gyp-on-shared-deps.patch %package -n %{pkgname} Summary: JavaScript runtime %else -%global pkgname nodejs%{nodejs_major} +%global pkgname nodejs20 %endif BuildRequires: make @@ -203,7 +203,6 @@ BuildRequires: nodejs-packaging BuildRequires: chrpath BuildRequires: libatomic BuildRequires: ninja-build -BuildRequires: systemtap-sdt-devel BuildRequires: unzip Provides: nodejs = %{nodejs_envr} @@ -527,7 +526,6 @@ export PATH="${cwd}/.bin:$PATH" %{!?with_bundled_zlib:--shared-zlib} \ --shared-brotli \ %{!?with_bundled:--shared-libuv} \ - %{?with_bundled:--without-dtrace}%{!?with_bundled:--with-dtrace} \ --with-intl=small-icu \ --with-icu-default-data-dir=%{icudatadir} \ --without-corepack \ @@ -600,12 +598,6 @@ for soname in libv8 libv8_libbase libv8_libplatform; do ln -s libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so.%{v8_major} done -# Remove tracing for non-default versions -%if ! 0%{?nodejs_default} -rm -rf %{buildroot}%{_usr}/lib/dtrace \ - %{buildroot}%{_datadir}/systemtap/tapset/node.stp -%endif - # install documentation mkdir -p %{buildroot}%{_pkgdocdir}/html cp -pr doc/* %{buildroot}%{_pkgdocdir}/html @@ -755,14 +747,7 @@ end %if 0%{?nodejs_default} %{_bindir}/node %doc %{_mandir}/man1/node.1* -%dir %{_datadir}/systemtap -%dir %{_datadir}/systemtap/tapset %{nodejs_sitelib} -%{_datadir}/systemtap/tapset/node.stp -%if %{without bundled} -%dir %{_usr}/lib/dtrace -%{_usr}/lib/dtrace/node.d -%endif %endif %{_bindir}/node-%{nodejs_major} diff --git a/packaging/nodejs.spec.in b/packaging/nodejs.spec.in index 844609b..5377188 100644 --- a/packaging/nodejs.spec.in +++ b/packaging/nodejs.spec.in @@ -57,7 +57,7 @@ # Determine if this should be the default version for this Fedora release # The default version will own /usr/bin/node and friends -%if 0%{?fedora} == 37 || 0%{?fedora} == 38 +%if 0%{?fedora} == @FEDORA_DEFAULT_RELEASE_LOW@ || 0%{?fedora} == @FEDORA_DEFAULT_RELEASE_HIGH@ %global nodejs_default %{nodejs_major} %endif %global nodejs_private_sitelib %{nodejs_sitelib}_%{nodejs_major} @@ -130,7 +130,7 @@ %global histogram_version 0.9.7 -Name: nodejs%{nodejs_major} +Name: nodejs@NODE_PKG_MAJOR@ Epoch: %{nodejs_epoch} Version: %{nodejs_version} Release: %{nodejs_release} @@ -169,7 +169,7 @@ Patch1: 0001-Disable-running-gyp-on-shared-deps.patch %package -n %{pkgname} Summary: JavaScript runtime %else -%global pkgname nodejs%{nodejs_major} +%global pkgname nodejs@NODE_PKG_MAJOR@ %endif BuildRequires: make @@ -203,7 +203,6 @@ BuildRequires: nodejs-packaging BuildRequires: chrpath BuildRequires: libatomic BuildRequires: ninja-build -BuildRequires: systemtap-sdt-devel BuildRequires: unzip Provides: nodejs = %{nodejs_envr} @@ -527,7 +526,6 @@ export PATH="${cwd}/.bin:$PATH" %{!?with_bundled_zlib:--shared-zlib} \ --shared-brotli \ %{!?with_bundled:--shared-libuv} \ - %{?with_bundled:--without-dtrace}%{!?with_bundled:--with-dtrace} \ --with-intl=small-icu \ --with-icu-default-data-dir=%{icudatadir} \ --without-corepack \ @@ -600,12 +598,6 @@ for soname in libv8 libv8_libbase libv8_libplatform; do ln -s libnode.so.%{nodejs_soversion} %{buildroot}%{_libdir}/${soname}.so.%{v8_major} done -# Remove tracing for non-default versions -%if ! 0%{?nodejs_default} -rm -rf %{buildroot}%{_usr}/lib/dtrace \ - %{buildroot}%{_datadir}/systemtap/tapset/node.stp -%endif - # install documentation mkdir -p %{buildroot}%{_pkgdocdir}/html cp -pr doc/* %{buildroot}%{_pkgdocdir}/html @@ -755,14 +747,7 @@ end %if 0%{?nodejs_default} %{_bindir}/node %doc %{_mandir}/man1/node.1* -%dir %{_datadir}/systemtap -%dir %{_datadir}/systemtap/tapset %{nodejs_sitelib} -%{_datadir}/systemtap/tapset/node.stp -%if %{without bundled} -%dir %{_usr}/lib/dtrace -%{_usr}/lib/dtrace/node.d -%endif %endif %{_bindir}/node-%{nodejs_major} diff --git a/sources b/sources index 7b29603..290e5b6 100644 --- a/sources +++ b/sources @@ -1,7 +1,7 @@ -SHA512 (node-v18.13.0-stripped.tar.gz) = 1f634aaf11902cd9462d8192bf538e2269d1935e0a5fc933a6aeef2eec04c8db1577cb2ee7f8bac9592585912164664b9731bfb4f9687cb5d929f92ba3565c0a +SHA512 (node-v19.6.1-stripped.tar.gz) = d766ec2b41cacedb8bfa03777f81ee1caafca56b523f6dac1a99020a54a635ffc957b1579d114103b1950bcad2e9efd7aa857f9c89cbcc998b7f7fec351b2ed5 SHA512 (icu4c-72_1-data-bin-b.zip) = ed0ce3ebd02f81cca7b3808abc72dc99962eb36bd123ebdf45c578b307b674566491191b6f7d261c679b2b5662b7084c61452b98968b35df3f749d413d5d7663 SHA512 (icu4c-72_1-data-bin-l.zip) = cc9a8cf2a89dacde4fab4a68ca7a7ba1fd106b71ebc23318fb9293ab96001be825bf89b1daf3da02958ba201ca4f714a67a26db3a51dc03653b9970ebdd5ff56 -SHA512 (cjs-module-lexer-1.2.2-stripped.tar.gz) = e49c8f1a206dcf7c7b740e9ca4998e5d9b74d0016a701ddb0ea02e4f21eec763c58bf0c91dea4167401f604721027100d39d7c5c2b85025bb687c83c33c9728f +SHA512 (cjs-module-lexer-1.2.2-stripped.tar.gz) = 6604250b609c8e6262f0601dbbd14745a6318bcb7d72ecc46a037c2239d69a0267d9fa6dfa26e676e117c36ed544ea302f18765defa8211cb02e9b3850ed1f58 SHA512 (wasi-sdk-11.0-linux.tar.gz) = e3ed4597f7f2290967eef6238e9046f60abbcb8633a4a2a51525d00e7393df8df637a98a5b668217d332dd44fcbf2442ec7efd5e65724e888d90611164451e20 -SHA512 (undici-5.13.0-stripped.tar.gz) = ee10bec72ac61bed8de8fff49fc13a8d4c7796594ef4409c06b28d9331fa9656f282c79e143e43a4534df0409d7354ce09b2c7314664837dacb0a8b1cba80e64 +SHA512 (undici-5.19.1-stripped.tar.gz) = a6ea6ffcead6c6012707a87d0f3d4716ef493ee4c362f58c4e3d7007bba91a65d3e040b79528ea389ed2a087c5413487584c5b4356b3e679dd83e3f3142f5650 SHA512 (wasi-sdk-14.0-linux.tar.gz) = 288a367e051f5b3f5853de97fabaedd3acf2255819d50c24f48f573897518500ea808342fd9aea832b2a5717089807bf1cbcf6d46b156b4eb60cc6b3c02ee997