diff --git a/SHASUMS256.txt b/SHASUMS256.txt index 08e6a86..adb6ba7 100644 --- a/SHASUMS256.txt +++ b/SHASUMS256.txt @@ -1,41 +1,41 @@ -e06dff53a5e2a88caff9735c076165a6a53f4c45960a8887410684e1fea6c7cb node-v21.6.2-aix-ppc64.tar.gz -c7fa8788001eaac4bb250a84f6b3a918ebaa8016111ece95d59b513cf4a394dc node-v21.6.2-arm64.msi -120c8205654c640865864dc464389b3ffe6d7ebe310dffdbe3fd8718a512e14f node-v21.6.2-darwin-arm64.tar.gz -f8aa996b4e7700069892bc9ff28ddef3b3b3c8c952b929d1b148c943995970e3 node-v21.6.2-darwin-arm64.tar.xz -0f75d9b46b986100c6faeec040ee46adf4981eb6abb5dd63e7a6ca4868d280f4 node-v21.6.2-darwin-x64.tar.gz -5944de39bc7b8af229b0024d583ced7c76cee194ee9068a07d67372a606c5105 node-v21.6.2-darwin-x64.tar.xz -55d9a03dcfce682583eb5e7eec15f32ae95b28b6e805f31688b22a7bd71581b1 node-v21.6.2-headers.tar.gz -976500ffa659108fa2eb30daae2f1b96a34a97b2caa1db30802ac56edc2b237a node-v21.6.2-headers.tar.xz -b8431985c53cc14e02cddf4c128d043c62af19023f908ebcdc1c6a683ee995f3 node-v21.6.2-linux-arm64.tar.gz -2606765f95262bcebb323e56a39b3be8db89863fbd83e06d2b5a08e41dc78f29 node-v21.6.2-linux-arm64.tar.xz -d6127be538ae57447fd40bac6ea124ad71cfd5a50b9343b781830cc92bc1a0c2 node-v21.6.2-linux-armv7l.tar.gz -ae33085c3d635f9488f47c56ee90fdf0dc9c1d0a520cfbe281c5b08d69e64da0 node-v21.6.2-linux-armv7l.tar.xz -2e265d86f9d20ba223d65ceadc0589b156439a5521cd9da6e34de5460a0d2195 node-v21.6.2-linux-ppc64le.tar.gz -b951f52db17b75a7bff0a2da2cefca3ba1e4dd7368b2b1280f39fcbecde0555c node-v21.6.2-linux-ppc64le.tar.xz -7cba8c2b2338aaa05f5dec5d953d61cdf5219881a7c8d420f215e920a33c06fa node-v21.6.2-linux-s390x.tar.gz -167bb0595478bae4c46b2248cae16890d24c2a9c92de7d0e27f9d1cafcad21ba node-v21.6.2-linux-s390x.tar.xz -d4504dcbcd1a9ded42d86bc20a7e72d6d631e49dcf3f9c849c3b51b12f3f4544 node-v21.6.2-linux-x64.tar.gz -593dd28f5c78d797e76b730937b95fcdfc594f053a8756b1d0860a4555bed58e node-v21.6.2-linux-x64.tar.xz -a0cdada31786f6ff1f82e8fd91bda23cd4f615a56acd3c9605cd468b60b8437a node-v21.6.2-win-arm64.7z -a201948e5f0df6de6c4b42dbcb42d7a10d3cb5b6dbb7a40e3f4244644d3b3d1a node-v21.6.2-win-arm64.zip -d450d170009d272c98765af3abf2bbc2903c1c08856f9e3730be03cc9d9b2bc5 node-v21.6.2-win-x64.7z -99bac3a930bd487e53c5a35b3e2f5ec102053316d7eb89f93273d916d57353a2 node-v21.6.2-win-x64.zip -44dee171378d7ac9967e772a8f114be5fdf59a163f65ec5faa7411c8be3bc961 node-v21.6.2-win-x86.7z -1701b32ba5315c794c2a64ef4a71e93ad2a6c109acf5b577d628413a7dc5cd04 node-v21.6.2-win-x86.zip -e081647df79c833e9d62e7edff5e9e01dbd5b78417dff6ef149e6384e8327bcf node-v21.6.2-x64.msi -12960661f83a1618adf57e84eddcd1886edec452d74f27318efde8b92a25c91a node-v21.6.2-x86.msi -6b5d7153dffec20487cbcb81d5ebaf97e6678eb463337e8429ba4e7b60754505 node-v21.6.2.pkg -9020fb36ec7e04f5032944c8422c2004350e9bfcd5e835ac3c90b74981c1f3e0 node-v21.6.2.tar.gz -191294d445d1e6800359acc8174529b1e18e102147dc5f596030d3dce96931e5 node-v21.6.2.tar.xz -ae7ccd1298e8871e61c1223a929ff482fa43d29aa284118798f01a73e40b2b29 win-arm64/node.exe -cf6082f3ffb45335d41566805c7b844082f36042fa7dc2dc6aecdc3ce0e7c79a win-arm64/node.lib -8cb47e9ebda0efb8578382db82001308bcb2de95e0275e0bca3ff4f03de140b1 win-arm64/node_pdb.7z -cdb3d760f9aca9578135c25f299b382e074bfcb56b2d321acf278a0a76ec2eb4 win-arm64/node_pdb.zip -3f06d98986b4ddf7e9d258936bb7b8907c44c6e9a29c645a5aca04e5a26c0b53 win-x64/node.exe -cacf06da3d7f04d0a0a5a901bfbdbaf0950cc5f73febf7b2f451b27c7f6265b1 win-x64/node.lib -077739fded97d02d026db839aca840622c34b7e584efe294d40fc8d1bd9dc19a win-x64/node_pdb.7z -54c3a6fea6f832716bfe5d918a56ca1767ae89163729c34d866c2623c0a90edf win-x64/node_pdb.zip -0aaa0f4635253afe9660f64a862786db555961ecc7217b68fa120817c0c56a00 win-x86/node.exe -ca6545afa230d2abdbf8ba19065f77b727bde72dfa253c466d876d0b3a7ea4ee win-x86/node.lib -cf24de1e7157ac4bac77fccb255fe295e8639a349d5c9f8726fe3e6b5ccf8afc win-x86/node_pdb.7z -99f2345e0e737fbd7f8d94b4118d9dc820ebc198823de29324e1f1754f84c9e0 win-x86/node_pdb.zip +6290bc006ee81332da8345b2d254ecf75674de0898a6dd5e348c7685ca0df325 node-v21.7.2-aix-ppc64.tar.gz +92b1d9ecd1e4520a1ac82963719dd7fd80b3f250751e34d67a8a7553fd149720 node-v21.7.2-arm64.msi +d00a2b5002db121d798f1c9556342abb6ec6a4fac9d6197bc86c922a796812ae node-v21.7.2-darwin-arm64.tar.gz +47784735ff348e9ca6eed5a1482d58582949f0ace7d74ba5d510ab763d5e1327 node-v21.7.2-darwin-arm64.tar.xz +6211829236013582fb654b4b9f8c6528dcb07620f6f82878ef514fae1b30685e node-v21.7.2-darwin-x64.tar.gz +309457de4a2e87db456b5656383be8590d8a69aacd1e161015d98a88697a206f node-v21.7.2-darwin-x64.tar.xz +32bc006ce485d8726e72c666feb08de567098d881b8e79ee37fc9aa9854329c6 node-v21.7.2-headers.tar.gz +66fa0952f5b207c1e1771492d04285a2199bf0dc756e392fe03d3be54ca3733d node-v21.7.2-headers.tar.xz +5cf1cb89feb40404adad999307659754dd17fc9afa6c086aaff690ecbf8af66c node-v21.7.2-linux-arm64.tar.gz +0a07d44da8324ad0514ccd4d588d5aa8d749d76b01b69d55343c2132d1efbe3b node-v21.7.2-linux-arm64.tar.xz +73df605f0aaa18c4a8e9789206d18045b277f4233f50837b1563f9b3dd50f696 node-v21.7.2-linux-armv7l.tar.gz +8c23b9f1d6a9022b04cda94c85bbfd329a178d7710c1bbd25587a668078d9915 node-v21.7.2-linux-armv7l.tar.xz +4ece271c97fc434c34328081245e406e23a23fed32868f90fe901f1a232a27bd node-v21.7.2-linux-ppc64le.tar.gz +11750d12cec45b7f7451b18dcd98ddcdce07afbb68db57bb0dc89e883b78ab6b node-v21.7.2-linux-ppc64le.tar.xz +9df7a1c8c9be7a7f4a62b822c3cbbc0f4c66ad185b7383c6bfb021e99a9441b0 node-v21.7.2-linux-s390x.tar.gz +ba8e598921c29e2ff5efd6f42a3e11c765a77339ac7ef7e1b55c6aba95f3bf8b node-v21.7.2-linux-s390x.tar.xz +06b891c82c9b19b8d8553222de5de8afd43a38c1b898f9ca323e1d2e22da9075 node-v21.7.2-linux-x64.tar.gz +9d55843dd4b2400fe4034de3281003de718dbd0c6f61ce6b53e94e987b16c9dc node-v21.7.2-linux-x64.tar.xz +f9e642aa9e729842b289c0314be8c7d468aca2994b1b8d8a8c2143382f1c4136 node-v21.7.2-win-arm64.7z +a9a62973ac69adb98d62f5aa6d3a7ca668fb7b1a5c84833e93ff330eef1d972b node-v21.7.2-win-arm64.zip +a532dd8dae519c78100497f398621574431757afa933ab32d39b1ba3fcf44d9b node-v21.7.2-win-x64.7z +99102e5964c6cd3c3ba5562243dbfda8e1f265e7fff2489aa1d806074893d88a node-v21.7.2-win-x64.zip +9987f8a12d2cb0439a9def11b449793b372d4ff96acceb9321a736f5c57e5f41 node-v21.7.2-win-x86.7z +ce346bb8e5d2722d653d8f6cee81fdcc80fb88c51ca945763ff12c7e4f659bbb node-v21.7.2-win-x86.zip +b936d30bbd0927157165fb09d2eaff2d939d1f13136bbddc50e64c31aa86b4ac node-v21.7.2-x64.msi +83b30683316bb2f8115d58af23b8bb154de9615632cf491fec6c365aff3b74f5 node-v21.7.2-x86.msi +f75990a446cd3512c80598d815243592776a99ac7f4e5f2cbccc5cf1369b7cfe node-v21.7.2.pkg +dc1b18771e7ed3da051fc2242806bfde5ae02b63fe7205e80156e92de8f8fa3d node-v21.7.2.tar.gz +b4b1e2a07e96f85f6ce34a2fbfea348691aefe5cb219aa6951e23ccc991f9e2f node-v21.7.2.tar.xz +80541446e8ef8a2d26d73e4517afbb560717d47e4ed0d122fdddd90f8662da53 win-arm64/node.exe +298d58a6fed36728a8d1b07f6fe3678c5a6faf4c77bdcd7288e155c117404eea win-arm64/node.lib +1881ceeab304bc003ed87c03a1206f9f9e7deb861a44af68361e493a23a5aec1 win-arm64/node_pdb.7z +c7824ff2aea7a565d81d3ba0e2992497fd7a0f776f39179681f326d9b6eab75b win-arm64/node_pdb.zip +64b5a1e9101e6281f072b385691affbe45b2cb93ba84a592f1a9941d994e621f win-x64/node.exe +473d2b087bfa76b2746542c6c4bd019b0527545849e04cbc3d0872ebd9335f0a win-x64/node.lib +93d79e521d9f3513eee1cb9ad98f38c7b62b3845be285333ad3731cd50c983ab win-x64/node_pdb.7z +e8f7a31dae7239154e53f57e3b1545102b6905419c1545ffeed721509f95426c win-x64/node_pdb.zip +f16257e0cdae9de68cc3bff533ddac2bbfe42f3b7cba16a2a8fc1b40a98e3d3c win-x86/node.exe +8ecea23973c4e82d13c18f78f4e23beebac5b70f1d54c100d08d41f52ade421e win-x86/node.lib +6ddf27e2fcc6528a95fd5db9046a5629698714aeae43ff4e21d6b99904bb8cde win-x86/node_pdb.7z +91af5f3e3bb0e838a2c2e5c6a2d96331309fe52bb0897072774954eddc1976c4 win-x86/node_pdb.zip diff --git a/SHASUMS256.txt.sig b/SHASUMS256.txt.sig index e3025f8..ecbebd5 100644 Binary files a/SHASUMS256.txt.sig and b/SHASUMS256.txt.sig differ diff --git a/c-ares-fixes.patch b/c-ares-fixes.patch deleted file mode 100644 index bccc1bd..0000000 --- a/c-ares-fixes.patch +++ /dev/null @@ -1,46 +0,0 @@ -Index: node-v21.4.0/test/parallel/test-dns-resolveany-bad-ancount.js -=================================================================== ---- node-v21.4.0.orig/test/parallel/test-dns-resolveany-bad-ancount.js -+++ node-v21.4.0/test/parallel/test-dns-resolveany-bad-ancount.js -@@ -7,6 +7,8 @@ const dgram = require('dgram'); - const dnsPromises = dns.promises; - - const server = dgram.createSocket('udp4'); -+const resolver = new dns.Resolver({ timeout: 100, tries: 1 }); -+const resolverPromises = new dnsPromises.Resolver({ timeout: 100, tries: 1 }); - - server.on('message', common.mustCall((msg, { address, port }) => { - const parsed = dnstools.parseDNSPacket(msg); -@@ -18,16 +20,20 @@ server.on('message', common.mustCall((ms - questions: parsed.questions, - answers: { type: 'A', address: '1.2.3.4', ttl: 123, domain }, - }); -- // Overwrite the # of answers with 2, which is incorrect. -+ // Overwrite the # of answers with 2, which is incorrect. The response is -+ // discarded in c-ares >= 1.21.0. This is the reason why a small timeout is -+ // used in the `Resolver` constructor. See -+ // https://github.com/nodejs/node/pull/50743#issue-1994909204 - buf.writeUInt16LE(2, 6); - server.send(buf, port, address); - }, 2)); - - server.bind(0, common.mustCall(async () => { - const address = server.address(); -- dns.setServers([`127.0.0.1:${address.port}`]); -+ resolver.setServers([`127.0.0.1:${address.port}`]); -+ resolverPromises.setServers([`127.0.0.1:${address.port}`]); - -- dnsPromises.resolveAny('example.org') -+ resolverPromises.resolveAny('example.org') - .then(common.mustNotCall()) - .catch(common.expectsError({ - // May return EBADRESP or ETIMEOUT -@@ -36,7 +42,7 @@ server.bind(0, common.mustCall(async () - hostname: 'example.org' - })); - -- dns.resolveAny('example.org', common.mustCall((err) => { -+ resolver.resolveAny('example.org', common.mustCall((err) => { - assert.notStrictEqual(err.code, 'SUCCESS'); - assert.strictEqual(err.syscall, 'queryAny'); - assert.strictEqual(err.hostname, 'example.org'); diff --git a/fix_ci_tests.patch b/fix_ci_tests.patch index 60fad66..c3755e0 100644 --- a/fix_ci_tests.patch +++ b/fix_ci_tests.patch @@ -2,10 +2,10 @@ Author: Adam Majer Date: Dec 20 09:18:49 UTC 2017 Summary: Fix CI unit tests framework for OBS building -Index: node-v21.6.1/test/parallel/test-node-output-v8-warning.mjs +Index: node-v21.7.1/test/parallel/test-node-output-v8-warning.mjs =================================================================== ---- node-v21.6.1.orig/test/parallel/test-node-output-v8-warning.mjs -+++ node-v21.6.1/test/parallel/test-node-output-v8-warning.mjs +--- node-v21.7.1.orig/test/parallel/test-node-output-v8-warning.mjs ++++ node-v21.7.1/test/parallel/test-node-output-v8-warning.mjs @@ -15,7 +15,7 @@ describe('v8 output', { concurrency: tru .replaceAll('*test*', '*') .replaceAll(/.*?\*fixtures\*v8\*/g, '(node:*) V8: *') // Replace entire path before fixtures/v8 @@ -15,10 +15,10 @@ Index: node-v21.6.1/test/parallel/test-node-output-v8-warning.mjs } const common = snapshot .transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, replaceNodeVersion); -Index: node-v21.6.1/test/parallel/test-module-loading-globalpaths.js +Index: node-v21.7.1/test/parallel/test-module-loading-globalpaths.js =================================================================== ---- node-v21.6.1.orig/test/parallel/test-module-loading-globalpaths.js -+++ node-v21.6.1/test/parallel/test-module-loading-globalpaths.js +--- node-v21.7.1.orig/test/parallel/test-module-loading-globalpaths.js ++++ node-v21.7.1/test/parallel/test-module-loading-globalpaths.js @@ -11,6 +11,9 @@ const { addLibraryPath } = require('../c addLibraryPath(process.env); @@ -29,10 +29,10 @@ Index: node-v21.6.1/test/parallel/test-module-loading-globalpaths.js if (process.argv[2] === 'child') { console.log(require(pkgName).string); } else { -Index: node-v21.6.1/test/parallel/test-tls-passphrase.js +Index: node-v21.7.1/test/parallel/test-tls-passphrase.js =================================================================== ---- node-v21.6.1.orig/test/parallel/test-tls-passphrase.js -+++ node-v21.6.1/test/parallel/test-tls-passphrase.js +--- node-v21.7.1.orig/test/parallel/test-tls-passphrase.js ++++ node-v21.7.1/test/parallel/test-tls-passphrase.js @@ -223,7 +223,7 @@ server.listen(0, common.mustCall(functio }, onSecureConnect()); })).unref(); @@ -42,10 +42,10 @@ Index: node-v21.6.1/test/parallel/test-tls-passphrase.js // Missing passphrase assert.throws(function() { -Index: node-v21.6.1/test/parallel/test-repl-envvars.js +Index: node-v21.7.1/test/parallel/test-repl-envvars.js =================================================================== ---- node-v21.6.1.orig/test/parallel/test-repl-envvars.js -+++ node-v21.6.1/test/parallel/test-repl-envvars.js +--- node-v21.7.1.orig/test/parallel/test-repl-envvars.js ++++ node-v21.7.1/test/parallel/test-repl-envvars.js @@ -2,7 +2,9 @@ // Flags: --expose-internals @@ -57,11 +57,19 @@ Index: node-v21.6.1/test/parallel/test-repl-envvars.js const stream = require('stream'); const { describe, test } = require('node:test'); const REPL = require('internal/repl'); -Index: node-v21.6.1/Makefile +Index: node-v21.7.1/Makefile =================================================================== ---- node-v21.6.1.orig/Makefile -+++ node-v21.6.1/Makefile -@@ -545,7 +545,8 @@ test-ci-js: | clear-stalled +--- node-v21.7.1.orig/Makefile ++++ node-v21.7.1/Makefile +@@ -389,7 +389,6 @@ ADDONS_HEADERS_PREREQS := tools/install. + $(wildcard deps/uv/include/*/*.h) \ + $(wildcard deps/v8/include/*.h) \ + $(wildcard deps/v8/include/*/*.h) \ +- deps/zlib/zconf.h deps/zlib/zlib.h \ + src/node.h src/node_api.h src/js_native_api.h src/js_native_api_types.h \ + src/node_api_types.h src/node_buffer.h src/node_object_wrap.h \ + src/node_version.h +@@ -560,7 +559,8 @@ test-ci-js: | clear-stalled .PHONY: test-ci # Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned test-ci: LOGLEVEL := info @@ -71,7 +79,7 @@ Index: node-v21.6.1/Makefile out/Release/cctest --gtest_output=xml:out/junit/cctest.xml $(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \ --mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \ -@@ -726,7 +727,8 @@ apidocs_json = $(addprefix out/,$(apidoc +@@ -742,7 +742,8 @@ apidocs_json = $(addprefix out/,$(apidoc apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*))) tools/doc/node_modules: tools/doc/package.json @@ -81,10 +89,10 @@ Index: node-v21.6.1/Makefile echo "Skipping tools/doc/node_modules (no crypto)"; \ else \ cd tools/doc && $(call available-node,$(run-npm-ci)) \ -Index: node-v21.6.1/tools/test.py +Index: node-v21.7.1/tools/test.py =================================================================== ---- node-v21.6.1.orig/tools/test.py -+++ node-v21.6.1/tools/test.py +--- node-v21.7.1.orig/tools/test.py ++++ node-v21.7.1/tools/test.py @@ -1362,7 +1362,7 @@ def BuildOptions(): result.add_option("-s", "--suite", help="A test suite", default=[], action="append") @@ -94,10 +102,10 @@ Index: node-v21.6.1/tools/test.py result.add_option("--arch", help='The architecture to run tests for', default='none') result.add_option("--snapshot", help="Run the tests with snapshot turned on", -Index: node-v21.6.1/test/parallel/test-crypto-dh.js +Index: node-v21.7.1/test/parallel/test-crypto-dh.js =================================================================== ---- node-v21.6.1.orig/test/parallel/test-crypto-dh.js -+++ node-v21.6.1/test/parallel/test-crypto-dh.js +--- node-v21.7.1.orig/test/parallel/test-crypto-dh.js ++++ node-v21.7.1/test/parallel/test-crypto-dh.js @@ -92,7 +92,7 @@ const crypto = require('crypto'); dh3.computeSecret(''); }, { message: common.hasOpenSSL3 && !hasOpenSSL3WithNewErrorMessage ? @@ -107,10 +115,10 @@ Index: node-v21.6.1/test/parallel/test-crypto-dh.js } } -Index: node-v21.6.1/benchmark/misc/startup-cli-version.js +Index: node-v21.7.1/benchmark/misc/startup-cli-version.js =================================================================== ---- node-v21.6.1.orig/benchmark/misc/startup-cli-version.js -+++ node-v21.6.1/benchmark/misc/startup-cli-version.js +--- node-v21.7.1.orig/benchmark/misc/startup-cli-version.js ++++ node-v21.7.1/benchmark/misc/startup-cli-version.js @@ -11,10 +11,10 @@ const path = require('path'); // indispensible part of the CLI. const bench = common.createBenchmark(main, { diff --git a/node-gyp-addon-gypi.patch b/node-gyp-addon-gypi.patch index b50a35e..05c120e 100644 --- a/node-gyp-addon-gypi.patch +++ b/node-gyp-addon-gypi.patch @@ -1,7 +1,7 @@ -Index: node-v20.10.0/addon-rpm.gypi +Index: node-v21.7.1/addon-rpm.gypi =================================================================== --- /dev/null -+++ node-v20.10.0/addon-rpm.gypi ++++ node-v21.7.1/addon-rpm.gypi @@ -0,0 +1,35 @@ +{ + 'target_defaults': { @@ -38,10 +38,10 @@ Index: node-v20.10.0/addon-rpm.gypi + ] + } +} -Index: node-v20.10.0/deps/npm/node_modules/node-gyp/lib/configure.js +Index: node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js =================================================================== ---- node-v20.10.0.orig/deps/npm/node_modules/node-gyp/lib/configure.js -+++ node-v20.10.0/deps/npm/node_modules/node-gyp/lib/configure.js +--- node-v21.7.1.orig/deps/npm/node_modules/node-gyp/lib/configure.js ++++ node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js @@ -36,10 +36,6 @@ async function configure (gyp, argv) { if ('v' + release.version !== process.version) { // if --target was given, then determine a target version to compile for @@ -66,13 +66,47 @@ Index: node-v20.10.0/deps/npm/node_modules/node-gyp/lib/configure.js } return createBuildDir() -@@ -201,7 +203,8 @@ async function configure (gyp, argv) { +@@ -201,8 +203,16 @@ async function configure (gyp, argv) { // this logic ported from the old `gyp_addon` python file const gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py') - const addonGypi = path.resolve(__dirname, '..', 'addon.gypi') +- let commonGypi = path.resolve(nodeDir, 'include/node/common.gypi') + let addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi' -+ var addonGypi = path.resolve(__dirname, '..', addon_gypi_file) - let commonGypi = path.resolve(nodeDir, 'include/node/common.gypi') ++ let addonGypi = path.resolve(__dirname, '..', addon_gypi_file) ++ let commonGypi = path.resolve(nodeDir, 'include/node21/common.gypi') ++ ++ try { ++ await fs.stat(commonGypi) ++ } catch (err) { ++ commonGypi = path.resolve(nodeDir, 'include/node/common.gypi') ++ } ++ try { await fs.stat(commonGypi) + } catch (err) { +Index: node-v21.7.1/deps/npm/node_modules/node-gyp/addon.gypi +=================================================================== +--- node-v21.7.1.orig/deps/npm/node_modules/node-gyp/addon.gypi ++++ node-v21.7.1/deps/npm/node_modules/node-gyp/addon.gypi +@@ -18,6 +18,7 @@ + ], + + 'include_dirs': [ ++ '<(node_root_dir)/include/node21', + '<(node_root_dir)/include/node', + '<(node_root_dir)/src', + '<(node_root_dir)/deps/openssl/config', +Index: node-v21.7.1/tools/build_addons.py +=================================================================== +--- node-v21.7.1.orig/tools/build_addons.py ++++ node-v21.7.1/tools/build_addons.py +@@ -27,7 +27,7 @@ def generate_headers(headers_dir, instal + def rebuild_addons(args): + headers_dir = os.path.abspath(args.headers_dir) + out_dir = os.path.abspath(args.out_dir) +- node_bin = os.path.join(out_dir, 'node') ++ node_bin = os.path.join(out_dir, 'node21') + if args.is_win: + node_bin += '.exe' + diff --git a/node-v21.6.2.tar.xz b/node-v21.6.2.tar.xz deleted file mode 100644 index a871111..0000000 --- a/node-v21.6.2.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:191294d445d1e6800359acc8174529b1e18e102147dc5f596030d3dce96931e5 -size 42668368 diff --git a/node-v21.7.2.tar.xz b/node-v21.7.2.tar.xz new file mode 100644 index 0000000..085c215 --- /dev/null +++ b/node-v21.7.2.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4b1e2a07e96f85f6ce34a2fbfea348691aefe5cb219aa6951e23ccc991f9e2f +size 42378944 diff --git a/nodejs-libpath.patch b/nodejs-libpath.patch index ed46a24..7416139 100644 --- a/nodejs-libpath.patch +++ b/nodejs-libpath.patch @@ -1,49 +1,49 @@ -Index: node-v18.9.0/tools/install.py +Index: node-v20.12.0/tools/install.py =================================================================== ---- node-v18.9.0.orig/tools/install.py -+++ node-v18.9.0/tools/install.py -@@ -7,6 +7,7 @@ import errno +--- node-v20.12.0.orig/tools/install.py ++++ node-v20.12.0/tools/install.py +@@ -6,6 +6,7 @@ import errno import os import shutil import sys +from distutils import sysconfig import re - # set at init time -@@ -66,6 +67,10 @@ def try_copy(path, dst): + def abspath(*args): +@@ -66,6 +67,10 @@ def try_copy(options, path, dest): try_unlink(target_path) # prevent ETXTBSY errors return shutil.copy2(source_path, target_path) -+def libdir(): ++def libdir(options): + libdir_fq = sysconfig.get_config_var("LIBDIR") -+ return re.sub("^" + re.escape(node_prefix + "/"), "", libdir_fq) ++ return re.sub("^" + re.escape(options.prefix + "/"), "", libdir_fq) + - def try_remove(path, dst): - source_path, target_path = mkpaths(path, dst) - print('removing %s' % target_path) -@@ -81,7 +86,7 @@ def uninstall(paths, dst): - try_remove(path, dst) + def try_remove(options, path, dest): + source_path, target_path = mkpaths(options, path, dest) + if not options.silent: +@@ -82,7 +87,7 @@ def uninstall(options, paths, dest): + try_remove(options, path, dest) - def package_files(action, name, bins): -- target_path = 'lib/node_modules/' + name + '/' -+ target_path = libdir() + '/node_modules/' + name + '/' + def package_files(options, action, name, bins): +- target_path = os.path.join('lib/node_modules', name) ++ target_path = os.path.join(libdir(options), 'node_modules', name) # don't install npm if the target path is a symlink, it probably means # that a dev version of npm is installed there -@@ -101,7 +106,7 @@ def package_files(action, name, bins): +@@ -103,7 +108,7 @@ def package_files(options, action, name, if action == uninstall: - action([link_path], 'bin/' + bin_name) + action(options, [link_path], os.path.join('bin', bin_name)) elif action == install: -- try_symlink('../lib/node_modules/' + name + '/' + bin_target, link_path) -+ try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path) +- try_symlink(options, os.path.join('../lib/node_modules', name, bin_target), link_path) ++ try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name, bin_target), link_path) else: assert 0 # unhandled action type -Index: node-v18.9.0/lib/internal/modules/cjs/loader.js +Index: node-v20.12.0/lib/internal/modules/cjs/loader.js =================================================================== ---- node-v18.9.0.orig/lib/internal/modules/cjs/loader.js -+++ node-v18.9.0/lib/internal/modules/cjs/loader.js -@@ -1254,7 +1254,7 @@ Module._initPaths = function() { +--- node-v20.12.0.orig/lib/internal/modules/cjs/loader.js ++++ node-v20.12.0/lib/internal/modules/cjs/loader.js +@@ -1529,7 +1529,7 @@ Module._initPaths = function() { path.resolve(process.execPath, '..') : path.resolve(process.execPath, '..', '..'); diff --git a/nodejs21.changes b/nodejs21.changes index 5cdd49e..01cddc2 100644 --- a/nodejs21.changes +++ b/nodejs21.changes @@ -1,3 +1,37 @@ +------------------------------------------------------------------- +Tue Apr 9 14:13:21 UTC 2024 - Adam Majer + +- Update to 21.7.2: + * Assertion failed in node::http2::Http2Session::~Http2Session() + leads to HTTP/2 server crash (High) (bsc#1222244, CVE-2024-27983) + * HTTP Request Smuggling via Content Length Obfuscation + (Medium) (bsc#1222384, CVE-2024-27982) + * updated dependencies: + + llhttp version 9.2.1 + + undici version 6.11.1 (bsc#1222530, bsc#1222603, + CVE-2024-30260, CVE-2024-30261) + +- node-gyp-addon-gypi.patch: adapted for new unit test layouts + +------------------------------------------------------------------- +Tue Apr 2 13:54:32 UTC 2024 - Adam Majer + +- Update to 21.7.1 + * revert "test_runner: do not invoke after hook when test is empty" + * lib: return directly if udp socket close before lookup + +- Changes in 21.7.0 + * util.styleText(format, text): This function returns a + formatted text considering the format passed. + * support for multi-line values for .env file + * sea: support embedding assets + * vm: support using the default loader to handle dynamic import() + * crypto: implement crypto.hash() + * http2: add h2 compat support for appendHeader + +- versioned.patch, nodejs-libpath.patch: refreshed +- c-ares-fixes.patch: upstreamed, removed + ------------------------------------------------------------------- Fri Feb 16 15:37:23 UTC 2024 - Adam Majer @@ -25,6 +59,10 @@ Mon Feb 12 14:51:32 UTC 2024 - Adam Majer * Support configurable snapshot through --build-snapshot-config flag - fix_ci_tests.patch: refreshed +------------------------------------------------------------------- +Sat Jan 27 10:09:34 UTC 2024 - xtex + +- Add libalternative config for corepack ------------------------------------------------------------------- Mon Jan 8 15:02:53 UTC 2024 - Adam Majer diff --git a/nodejs21.spec b/nodejs21.spec index 34869a7..96238a7 100644 --- a/nodejs21.spec +++ b/nodejs21.spec @@ -31,7 +31,7 @@ %endif Name: nodejs21 -Version: 21.6.2 +Version: 21.7.2 Release: 0 # Double DWZ memory limits @@ -177,7 +177,6 @@ Patch200: versioned.patch Patch305: qemu_timeouts_arches.patch Patch308: node-gyp-config.patch Patch309: gcc13.patch -Patch311: c-ares-fixes.patch BuildRequires: pkg-config BuildRequires: fdupes @@ -309,19 +308,19 @@ BuildRequires: bundled_openssl_should_not_be_required %if ! 0%{with intree_cares} BuildRequires: pkgconfig(libcares) >= 1.17.0 %else -Provides: bundled(libcares2) = 1.20.1 +Provides: bundled(libcares2) = 1.27.0 %endif %if ! 0%{with intree_icu} BuildRequires: pkgconfig(icu-i18n) >= 71 %else -Provides: bundled(icu) = 74.1 +Provides: bundled(icu) = 74.2 %endif %if ! 0%{with intree_nghttp2} BuildRequires: libnghttp2-devel >= 1.41.0 %else -Provides: bundled(nghttp2) = 1.58.0 +Provides: bundled(nghttp2) = 1.60.0 %endif %if 0%{with valgrind_tests} @@ -370,7 +369,7 @@ ExclusiveArch: not_buildable %endif %endif -Provides: bundled(uvwasi) = 0.0.19 +Provides: bundled(uvwasi) = 0.0.20 Provides: bundled(libuv) = 1.48.0 Provides: bundled(v8) = 11.8.172.17 %if %{with intree_brotli} @@ -380,21 +379,20 @@ BuildRequires: pkgconfig(libbrotlidec) %endif -Provides: bundled(llhttp) = 9.1.3 -Provides: bundled(ngtcp2) = 0.8.1 -Provides: bundled(base64) = 0.5.1 +Provides: bundled(llhttp) = 9.2.1 +Provides: bundled(ngtcp2) = 1.3.0 +Provides: bundled(base64) = 0.5.2 Provides: bundled(simdutf) = 4.0.8 -Provides: bundled(simdjson) = 3.6.3 +Provides: bundled(simdjson) = 3.7.0 # bundled url-ada parser, not ada -Provides: bundled(ada) = 2.7.4 +Provides: bundled(ada) = 2.7.6 -Provides: bundled(node-@fastify/busboy) = 2.1.0 Provides: bundled(node-acorn) = 8.11.3 -Provides: bundled(node-acorn-walk) = 8.3.1 +Provides: bundled(node-acorn-walk) = 8.3.2 Provides: bundled(node-cjs-module-lexer) = 1.2.2 -Provides: bundled(node-corepack) = 0.24.0 +Provides: bundled(node-corepack) = 0.25.2 Provides: bundled(node-minimatch) = 9.0.3 -Provides: bundled(node-undici) = 5.28.3 +Provides: bundled(node-undici) = 6.11.1 %description Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js @@ -423,7 +421,7 @@ Requires: nodejs-common Requires: nodejs21 = %{version} Provides: nodejs-npm = %{version} Obsoletes: nodejs-npm < 4.0.0 -Provides: npm(npm) = 10.2.4 +Provides: npm(npm) = 10.5.0 Provides: npm = %{version} %if 0%{?suse_version} >= 1500 %if %{node_version_number} >= 10 @@ -432,7 +430,6 @@ Requires: group(nobody) %endif %endif Provides: bundled(node-abbrev) = 2.0.0 -Provides: bundled(node-abort-controller) = 3.0.0 Provides: bundled(node-agent-base) = 7.1.0 Provides: bundled(node-aggregate-error) = 3.1.0 Provides: bundled(node-ansi-regex) = 5.0.1 @@ -441,15 +438,13 @@ Provides: bundled(node-ansi-styles) = 4.3.0 Provides: bundled(node-ansi-styles) = 6.2.1 Provides: bundled(node-aproba) = 2.0.0 Provides: bundled(node-archy) = 1.0.0 -Provides: bundled(node-are-we-there-yet) = 4.0.1 +Provides: bundled(node-are-we-there-yet) = 4.0.2 Provides: bundled(node-balanced-match) = 1.0.2 -Provides: bundled(node-base64-js) = 1.5.1 Provides: bundled(node-bin-links) = 4.0.3 Provides: bundled(node-binary-extensions) = 2.2.0 Provides: bundled(node-brace-expansion) = 2.0.1 -Provides: bundled(node-buffer) = 6.0.3 Provides: bundled(node-builtins) = 5.0.1 -Provides: bundled(node-cacache) = 18.0.0 +Provides: bundled(node-cacache) = 18.0.2 Provides: bundled(node-chalk) = 5.3.0 Provides: bundled(node-chownr) = 2.0.0 Provides: bundled(node-ci-info) = 4.0.0 @@ -469,16 +464,13 @@ Provides: bundled(node-cross-spawn) = 7.0.3 Provides: bundled(node-cssesc) = 3.0.0 Provides: bundled(node-debug) = 4.3.4 Provides: bundled(node-defaults) = 1.0.4 -Provides: bundled(node-delegates) = 1.0.0 -Provides: bundled(node-diff) = 5.1.0 +Provides: bundled(node-diff) = 5.2.0 Provides: bundled(node-eastasianwidth) = 0.2.0 Provides: bundled(node-emoji-regex) = 8.0.0 Provides: bundled(node-emoji-regex) = 9.2.2 Provides: bundled(node-encoding) = 0.1.13 Provides: bundled(node-env-paths) = 2.2.1 Provides: bundled(node-err-code) = 2.0.3 -Provides: bundled(node-event-target-shim) = 5.0.1 -Provides: bundled(node-events) = 3.3.0 Provides: bundled(node-exponential-backoff) = 3.1.1 Provides: bundled(node-fastest-levenshtein) = 1.0.16 Provides: bundled(node-foreground-child) = 3.1.1 @@ -489,19 +481,18 @@ Provides: bundled(node-gauge) = 5.0.1 Provides: bundled(node-glob) = 10.3.10 Provides: bundled(node-graceful-fs) = 4.2.11 Provides: bundled(node-has-unicode) = 2.0.1 -Provides: bundled(node-hasown) = 2.0.0 +Provides: bundled(node-hasown) = 2.0.1 Provides: bundled(node-hosted-git-info) = 7.0.1 Provides: bundled(node-http-cache-semantics) = 4.1.1 -Provides: bundled(node-http-proxy-agent) = 7.0.0 -Provides: bundled(node-https-proxy-agent) = 7.0.2 +Provides: bundled(node-http-proxy-agent) = 7.0.2 +Provides: bundled(node-https-proxy-agent) = 7.0.4 Provides: bundled(node-iconv-lite) = 0.6.3 -Provides: bundled(node-ieee754) = 1.2.1 -Provides: bundled(node-ignore-walk) = 6.0.3 +Provides: bundled(node-ignore-walk) = 6.0.4 Provides: bundled(node-imurmurhash) = 0.1.4 Provides: bundled(node-indent-string) = 4.0.0 Provides: bundled(node-ini) = 4.1.1 Provides: bundled(node-init-package-json) = 6.0.0 -Provides: bundled(node-ip) = 2.0.0 +Provides: bundled(node-ip-address) = 9.0.5 Provides: bundled(node-ip-regex) = 5.0.0 Provides: bundled(node-is-cidr) = 5.0.3 Provides: bundled(node-is-core-module) = 2.13.1 @@ -510,30 +501,31 @@ Provides: bundled(node-is-lambda) = 1.0.1 Provides: bundled(node-isexe) = 2.0.0 Provides: bundled(node-isexe) = 3.1.1 Provides: bundled(node-jackspeak) = 2.3.6 -Provides: bundled(node-json-parse-even-better-errors) = 3.0.0 +Provides: bundled(node-jsbn) = 1.1.0 +Provides: bundled(node-json-parse-even-better-errors) = 3.0.1 Provides: bundled(node-json-stringify-nice) = 1.1.4 Provides: bundled(node-jsonparse) = 1.3.1 Provides: bundled(node-just-diff) = 6.0.2 Provides: bundled(node-just-diff-apply) = 5.5.0 -Provides: bundled(node-libnpmaccess) = 8.0.1 -Provides: bundled(node-libnpmdiff) = 6.0.3 -Provides: bundled(node-libnpmexec) = 7.0.4 -Provides: bundled(node-libnpmfund) = 5.0.1 -Provides: bundled(node-libnpmhook) = 10.0.0 -Provides: bundled(node-libnpmorg) = 6.0.1 -Provides: bundled(node-libnpmpack) = 6.0.3 -Provides: bundled(node-libnpmpublish) = 9.0.2 -Provides: bundled(node-libnpmsearch) = 7.0.0 -Provides: bundled(node-libnpmteam) = 6.0.0 -Provides: bundled(node-libnpmversion) = 5.0.1 -Provides: bundled(node-lru-cache) = 10.0.2 +Provides: bundled(node-libnpmaccess) = 8.0.2 +Provides: bundled(node-libnpmdiff) = 6.0.7 +Provides: bundled(node-libnpmexec) = 7.0.8 +Provides: bundled(node-libnpmfund) = 5.0.5 +Provides: bundled(node-libnpmhook) = 10.0.1 +Provides: bundled(node-libnpmorg) = 6.0.2 +Provides: bundled(node-libnpmpack) = 6.0.7 +Provides: bundled(node-libnpmpublish) = 9.0.4 +Provides: bundled(node-libnpmsearch) = 7.0.1 +Provides: bundled(node-libnpmteam) = 6.0.1 +Provides: bundled(node-libnpmversion) = 5.0.2 +Provides: bundled(node-lru-cache) = 10.2.0 Provides: bundled(node-lru-cache) = 6.0.0 Provides: bundled(node-make-fetch-happen) = 13.0.0 Provides: bundled(node-minimatch) = 9.0.3 Provides: bundled(node-minipass) = 3.3.6 Provides: bundled(node-minipass) = 5.0.0 Provides: bundled(node-minipass) = 7.0.4 -Provides: bundled(node-minipass-collect) = 1.0.2 +Provides: bundled(node-minipass-collect) = 2.0.1 Provides: bundled(node-minipass-fetch) = 3.0.4 Provides: bundled(node-minipass-flush) = 1.0.5 Provides: bundled(node-minipass-json-stream) = 1.0.1 @@ -553,22 +545,21 @@ Provides: bundled(node-npm-bundled) = 3.0.0 Provides: bundled(node-npm-install-checks) = 6.3.0 Provides: bundled(node-npm-normalize-package-bin) = 3.0.1 Provides: bundled(node-npm-package-arg) = 11.0.1 -Provides: bundled(node-npm-packlist) = 8.0.0 +Provides: bundled(node-npm-packlist) = 8.0.2 Provides: bundled(node-npm-pick-manifest) = 9.0.0 Provides: bundled(node-npm-profile) = 9.0.0 Provides: bundled(node-npm-registry-fetch) = 16.1.0 Provides: bundled(node-npm-user-validate) = 2.0.0 Provides: bundled(node-npmlog) = 7.0.1 Provides: bundled(node-p-map) = 4.0.0 -Provides: bundled(node-pacote) = 17.0.4 +Provides: bundled(node-pacote) = 17.0.6 Provides: bundled(node-parse-conflict-json) = 3.0.1 Provides: bundled(node-path-key) = 3.1.1 Provides: bundled(node-path-scurry) = 1.10.1 -Provides: bundled(node-postcss-selector-parser) = 6.0.13 +Provides: bundled(node-postcss-selector-parser) = 6.0.15 Provides: bundled(node-proc-log) = 3.0.0 -Provides: bundled(node-process) = 0.11.10 Provides: bundled(node-promise-all-reject-late) = 1.0.1 -Provides: bundled(node-promise-call-limit) = 1.0.2 +Provides: bundled(node-promise-call-limit) = 3.0.1 Provides: bundled(node-promise-inflight) = 1.0.1 Provides: bundled(node-promise-retry) = 2.0.1 Provides: bundled(node-promzard) = 1.0.0 @@ -577,25 +568,23 @@ Provides: bundled(node-read) = 2.1.0 Provides: bundled(node-read-cmd-shim) = 4.0.0 Provides: bundled(node-read-package-json) = 7.0.0 Provides: bundled(node-read-package-json-fast) = 3.0.2 -Provides: bundled(node-readable-stream) = 4.4.2 Provides: bundled(node-retry) = 0.12.0 -Provides: bundled(node-safe-buffer) = 5.2.1 Provides: bundled(node-safer-buffer) = 2.1.2 -Provides: bundled(node-semver) = 7.5.4 +Provides: bundled(node-semver) = 7.6.0 Provides: bundled(node-set-blocking) = 2.0.0 Provides: bundled(node-shebang-command) = 2.0.0 Provides: bundled(node-shebang-regex) = 3.0.0 Provides: bundled(node-signal-exit) = 4.1.0 -Provides: bundled(node-sigstore) = 2.1.0 +Provides: bundled(node-sigstore) = 2.2.2 Provides: bundled(node-smart-buffer) = 4.2.0 -Provides: bundled(node-socks) = 2.7.1 +Provides: bundled(node-socks) = 2.8.0 Provides: bundled(node-socks-proxy-agent) = 8.0.2 Provides: bundled(node-spdx-correct) = 3.2.0 -Provides: bundled(node-spdx-exceptions) = 2.3.0 +Provides: bundled(node-spdx-exceptions) = 2.5.0 Provides: bundled(node-spdx-expression-parse) = 3.0.1 -Provides: bundled(node-spdx-license-ids) = 3.0.16 +Provides: bundled(node-spdx-license-ids) = 3.0.17 +Provides: bundled(node-sprintf-js) = 1.1.3 Provides: bundled(node-ssri) = 10.0.5 -Provides: bundled(node-string_decoder) = 1.3.0 Provides: bundled(node-string-width) = 4.2.3 Provides: bundled(node-string-width) = 5.1.2 Provides: bundled(node-strip-ansi) = 6.0.1 @@ -605,7 +594,7 @@ Provides: bundled(node-tar) = 6.2.0 Provides: bundled(node-text-table) = 0.2.0 Provides: bundled(node-tiny-relative-date) = 1.3.0 Provides: bundled(node-treeverse) = 3.0.0 -Provides: bundled(node-tuf-js) = 2.1.0 +Provides: bundled(node-tuf-js) = 2.2.0 Provides: bundled(node-unique-filename) = 3.0.0 Provides: bundled(node-unique-slug) = 4.0.0 Provides: bundled(node-util-deprecate) = 1.0.2 @@ -678,40 +667,39 @@ tar Jxf %{SOURCE5} popd %if %{node_version_number} >= 19 -%patch308 -p1 +%patch -P 308 -p1 %else %endif %endif -%patch1 -p1 -%patch3 -p1 +%patch -P 1 -p1 +%patch -P 3 -p1 %if %{node_version_number} <= 12 && 0%{?suse_version} < 1500 -%patch5 -p1 +%patch -P 5 -p1 %endif -%patch7 -p1 +%patch -P 7 -p1 %if 0%{with valgrind_tests} %endif -%patch13 -p1 -%patch100 -p1 -%patch101 -p1 +%patch -P 13 -p1 +%patch -P 100 -p1 +%patch -P 101 -p1 %if 0%{?suse_version} >= 1500 || 0%{?suse_version} == 0 -%patch102 -p1 +%patch -P 102 -p1 %endif # Add check_output to configure script (not part of Python 2.6 in SLE11). %if 0%{?suse_version} == 1110 %endif -%patch104 -p1 -%patch106 -p1 -%patch110 -p1 -%patch120 -p1 -%patch132 -p1 +%patch -P 104 -p1 +%patch -P 106 -p1 +%patch -P 110 -p1 +%patch -P 120 -p1 +%patch -P 132 -p1 %if ! 0%{with openssl_RSA_get0_pss_params} %endif -%patch200 -p1 +%patch -P 200 -p1 -%patch305 -p1 -%patch309 -p1 -%patch311 -p1 +%patch -P 305 -p1 +%patch -P 309 -p1 %if %{node_version_number} == 12 # minimist security update - patch50 @@ -898,6 +886,12 @@ ln -s -f npx-default %{buildroot}%{_sysconfdir}/alternatives/npx-default ln -s -f npx.1%{ext_man} %{buildroot}%{_sysconfdir}/alternatives/npx.1%{ext_man} ln -s %{_sysconfdir}/alternatives/npx-default %{buildroot}%{_bindir}/npx-default ln -s %{_sysconfdir}/alternatives/npx.1%{ext_man} %{buildroot}%{_mandir}/man1/npx.1%{ext_man} +%if %{node_version_number} >= 14 +ln -s -f corepack-default %{buildroot}%{_sysconfdir}/alternatives/corepack-default +ln -s -f corepack.1%{ext_man} %{buildroot}%{_sysconfdir}/alternatives/corepack.1%{ext_man} +ln -s %{_sysconfdir}/alternatives/corepack-default %{buildroot}%{_bindir}/corepack-default +ln -s %{_sysconfdir}/alternatives/corepack.1%{ext_man} %{buildroot}%{_mandir}/man1/corepack.1%{ext_man} +%endif %endif # libalternatives - can always ship @@ -916,6 +910,13 @@ binary=%{_bindir}/npx%{node_version_number} man=npx%{node_version_number}.1 group=npm,npx EOF +%if %{node_version_number} >= 14 +mkdir -p %{buildroot}%{_datadir}/libalternatives/corepack; +cat > %{buildroot}%{_datadir}/libalternatives/corepack/%{node_version_number}.conf <= 14 +%post -n corepack%{node_version_number} +update-alternatives --remove corepack-default %{_bindir}/corepack%{node_version_number} +%endif + %else %pre # remove files that are no longer owned but provided by update-alternatives @@ -1124,6 +1138,24 @@ if [ ! -f %{_bindir}/npx%{node_version_number} ] ; then update-alternatives --remove npx-default %{_bindir}/npx%{node_version_number} fi +%if %{node_version_number} >= 14 +%pre -n corepack%{node_version_number} +# remove files that are no longer owned but provided by update-alternatives +if ! [ -L %{_mandir}/man1/corepack.1%{ext_man} ]; then + rm -f %{_mandir}/man1/corepack.1%{ext_man} +fi + +%post -n corepack%{node_version_number} +update-alternatives \ + --install %{_bindir}/corepack-default corepack-default %{_bindir}/corepack%{node_version_number} %{node_version_number} \ + --slave %{_mandir}/man1/corepack.1%{ext_man} corepack.1%{ext_man} %{_mandir}/man1/corepack%{node_version_number}.1%{ext_man} + +%postun -n corepack%{node_version_number} +if [ ! -f %{_bindir}/corepack%{node_version_number} ] ; then + update-alternatives --remove corepack-default %{_bindir}/corepack%{node_version_number} +fi +%endif + %endif %changelog diff --git a/versioned.patch b/versioned.patch index f0d500e..4ab0e2b 100644 --- a/versioned.patch +++ b/versioned.patch @@ -8,75 +8,75 @@ management via update_alternatives. This is also important for generation of binary modules for multiple versions of NodeJS -Index: node-v21.1.0/Makefile +Index: node-v21.7.1/Makefile =================================================================== ---- node-v21.1.0.orig/Makefile -+++ node-v21.1.0/Makefile +--- node-v21.7.1.orig/Makefile ++++ node-v21.7.1/Makefile @@ -76,7 +76,7 @@ BUILDTYPE_LOWER := $(shell echo $(BUILDT EXEEXT := $(shell $(PYTHON) -c \ "import sys; print('.exe' if sys.platform == 'win32' else '')") -NODE_EXE = node$(EXEEXT) +NODE_EXE = node21$(EXEEXT) - NODE ?= ./$(NODE_EXE) + # Use $(PWD) so we can cd to anywhere before calling this + NODE ?= "$(PWD)/$(NODE_EXE)" NODE_G_EXE = node_g$(EXEEXT) - NPM ?= ./deps/npm/bin/npm-cli.js -Index: node-v21.1.0/tools/install.py +Index: node-v21.7.1/tools/install.py =================================================================== ---- node-v21.1.0.orig/tools/install.py -+++ node-v21.1.0/tools/install.py -@@ -86,7 +86,7 @@ def uninstall(paths, dst): - try_remove(path, dst) +--- node-v21.7.1.orig/tools/install.py ++++ node-v21.7.1/tools/install.py +@@ -87,7 +87,7 @@ def uninstall(options, paths, dest): + try_remove(options, path, dest) - def package_files(action, name, bins): -- target_path = libdir() + '/node_modules/' + name + '/' -+ target_path = libdir() + '/node_modules/' + name + '21/' + def package_files(options, action, name, bins): +- target_path = os.path.join(libdir(options), 'node_modules', name) ++ target_path = os.path.join(libdir(options), 'node_modules', name + '21') # don't install npm if the target path is a symlink, it probably means # that a dev version of npm is installed there -@@ -106,19 +106,19 @@ def package_files(action, name, bins): +@@ -108,19 +108,19 @@ def package_files(options, action, name, if action == uninstall: - action([link_path], 'bin/' + bin_name) + action(options, [link_path], os.path.join('bin', bin_name)) elif action == install: -- try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path) -+ try_symlink('../' + libdir() + '/node_modules/' + name + '21/' + bin_target, link_path) +- try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name, bin_target), link_path) ++ try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name + '21', bin_target), link_path) else: assert 0 # unhandled action type - def npm_files(action): - package_files(action, 'npm', { + def npm_files(options, action): + package_files(options, action, 'npm', { - 'npm': 'bin/npm-cli.js', - 'npx': 'bin/npx-cli.js', + 'npm21': 'bin/npm-cli.js', + 'npx21': 'bin/npx-cli.js', }) - def corepack_files(action): - package_files(action, 'corepack', { + def corepack_files(options, action): + package_files(options, action, 'corepack', { - 'corepack': 'dist/corepack.js', + 'corepack21': 'dist/corepack.js', # Not the default just yet: # 'yarn': 'dist/yarn.js', # 'yarnpkg': 'dist/yarn.js', -@@ -147,7 +147,7 @@ def subdir_files(path, dest, action): +@@ -149,7 +149,7 @@ def subdir_files(options, path, dest, ac + action(options, files_in_path, subdir + os.path.sep) - def files(action): - is_windows = sys.platform == 'win32' -- output_file = 'node' -+ output_file = 'node21' - output_prefix = 'out/Release/' - - if is_windows: -@@ -189,7 +189,7 @@ def files(action): + def files(options, action): +- node_bin = 'node' ++ node_bin = 'node21' + if options.is_win: + node_bin += '.exe' + action(options, [os.path.join(options.build_dir, node_bin)], os.path.join('bin', node_bin)) +@@ -190,7 +190,7 @@ def files(options, action): if 'freebsd' in sys.platform or 'openbsd' in sys.platform: - action(['doc/node.1'], 'man/man1/') + action(options, ['doc/node.1'], 'man/man1/') else: -- action(['doc/node.1'], 'share/man/man1/') -+ action(['doc/node.1'], 'share/man/man1/node21.1') +- action(options, ['doc/node.1'], 'share/man/man1/') ++ action(options, ['doc/node.1'], 'share/man/man1/node21.1') - if 'true' == variables.get('node_install_npm'): - npm_files(action) -@@ -325,28 +325,28 @@ def headers(action): + if 'true' == options.variables.get('node_install_npm'): + npm_files(options, action) +@@ -333,28 +333,28 @@ def headers(options, action): 'src/node_buffer.h', 'src/node_object_wrap.h', 'src/node_version.h', @@ -85,27 +85,27 @@ Index: node-v21.1.0/tools/install.py # Add the expfile that is created on AIX if sys.platform.startswith('aix') or sys.platform == "os400": -- action(['out/Release/node.exp'], 'include/node/') -+ action(['out/Release/node.exp'], 'include/node21/') +- action(options, ['out/Release/node.exp'], 'include/node/') ++ action(options, ['out/Release/node.exp'], 'include/node21/') -- subdir_files('deps/v8/include', 'include/node/', wanted_v8_headers) -+ subdir_files('deps/v8/include', 'include/node21/', wanted_v8_headers) +- subdir_files(options, os.path.join(options.v8_dir, 'include'), 'include/node/', wanted_v8_headers) ++ subdir_files(options, os.path.join(options.v8_dir, 'include'), 'include/node21/', wanted_v8_headers) - if 'false' == variables.get('node_shared_libuv'): -- subdir_files('deps/uv/include', 'include/node/', action) -+ subdir_files('deps/uv/include', 'include/node21/', action) + if 'false' == options.variables.get('node_shared_libuv'): +- subdir_files(options, 'deps/uv/include', 'include/node/', action) ++ subdir_files(options, 'deps/uv/include', 'include/node21/', action) - if 'true' == variables.get('node_use_openssl') and \ - 'false' == variables.get('node_shared_openssl'): -- subdir_files('deps/openssl/openssl/include/openssl', 'include/node/openssl/', action) -- subdir_files('deps/openssl/config/archs', 'include/node/openssl/archs', action) -- subdir_files('deps/openssl/config', 'include/node/openssl', action) -+ subdir_files('deps/openssl/openssl/include/openssl', 'include/node21/openssl/', action) -+ subdir_files('deps/openssl/config/archs', 'include/node21/openssl/archs', action) -+ subdir_files('deps/openssl/config', 'include/node21/openssl', action) + if 'true' == options.variables.get('node_use_openssl') and \ + 'false' == options.variables.get('node_shared_openssl'): +- subdir_files(options, 'deps/openssl/openssl/include/openssl', 'include/node/openssl/', action) +- subdir_files(options, 'deps/openssl/config/archs', 'include/node/openssl/archs', action) +- subdir_files(options, 'deps/openssl/config', 'include/node/openssl', action) ++ subdir_files(options, 'deps/openssl/openssl/include/openssl', 'include/node21/openssl/', action) ++ subdir_files(options, 'deps/openssl/config/archs', 'include/node21/openssl/archs', action) ++ subdir_files(options, 'deps/openssl/config', 'include/node21/openssl', action) - if 'false' == variables.get('node_shared_zlib'): - action([ + if 'false' == options.variables.get('node_shared_zlib'): + action(options, [ 'deps/zlib/zconf.h', 'deps/zlib/zlib.h', - ], 'include/node/') @@ -113,10 +113,10 @@ Index: node-v21.1.0/tools/install.py if sys.platform == 'zos': zoslibinc = os.environ.get('ZOSLIB_INCLUDES') -Index: node-v21.1.0/doc/node.1 +Index: node-v21.7.1/doc/node.1 =================================================================== ---- node-v21.1.0.orig/doc/node.1 -+++ node-v21.1.0/doc/node.1 +--- node-v21.7.1.orig/doc/node.1 ++++ node-v21.7.1/doc/node.1 @@ -31,24 +31,24 @@ .Dt NODE 1 . @@ -146,10 +146,10 @@ Index: node-v21.1.0/doc/node.1 .Op Fl -v8-options . .\"====================================================================== -Index: node-v21.1.0/src/node_main.cc +Index: node-v21.7.1/src/node_main.cc =================================================================== ---- node-v21.1.0.orig/src/node_main.cc -+++ node-v21.1.0/src/node_main.cc +--- node-v21.7.1.orig/src/node_main.cc ++++ node-v21.7.1/src/node_main.cc @@ -94,6 +94,7 @@ int wmain(int argc, wchar_t* wargv[]) { // UNIX @@ -158,11 +158,11 @@ Index: node-v21.1.0/src/node_main.cc return node::Start(argc, argv); } #endif -Index: node-v21.1.0/tools/test.py +Index: node-v21.7.1/tools/test.py =================================================================== ---- node-v21.1.0.orig/tools/test.py -+++ node-v21.1.0/tools/test.py -@@ -953,7 +953,7 @@ class Context(object): +--- node-v21.7.1.orig/tools/test.py ++++ node-v21.7.1/tools/test.py +@@ -954,7 +954,7 @@ class Context(object): if self.vm is not None: return self.vm if arch == 'none': @@ -171,10 +171,10 @@ Index: node-v21.1.0/tools/test.py else: name = 'out/%s.%s/node' % (arch, mode) -Index: node-v21.1.0/node.gyp +Index: node-v21.7.1/node.gyp =================================================================== ---- node-v21.1.0.orig/node.gyp -+++ node-v21.1.0/node.gyp +--- node-v21.7.1.orig/node.gyp ++++ node-v21.7.1/node.gyp @@ -24,8 +24,8 @@ 'node_shared_openssl%': 'false', 'node_v8_options%': '', @@ -186,10 +186,10 @@ Index: node-v21.1.0/node.gyp 'node_intermediate_lib_type%': 'static_library', 'node_builtin_modules_path%': '', 'linked_module_files': [ -Index: node-v21.1.0/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot +Index: node-v21.7.1/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot =================================================================== ---- node-v21.1.0.orig/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot -+++ node-v21.1.0/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot +--- node-v21.7.1.orig/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot ++++ node-v21.7.1/test/fixtures/errors/promise_unhandled_warn_with_error.snapshot @@ -6,5 +6,5 @@ at * at * @@ -197,10 +197,10 @@ Index: node-v21.1.0/test/fixtures/errors/promise_unhandled_warn_with_error.snaps -(Use `node --trace-warnings ...` to show where the warning was created) +(Use `node21 --trace-warnings ...` to show where the warning was created) (node:*) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https:*nodejs.org*api*cli.html#cli_unhandled_rejections_mode). (rejection id: 1) -Index: node-v21.1.0/test/parallel/test-snapshot-warning.js +Index: node-v21.7.1/test/parallel/test-snapshot-warning.js =================================================================== ---- node-v21.1.0.orig/test/parallel/test-snapshot-warning.js -+++ node-v21.1.0/test/parallel/test-snapshot-warning.js +--- node-v21.7.1.orig/test/parallel/test-snapshot-warning.js ++++ node-v21.7.1/test/parallel/test-snapshot-warning.js @@ -60,7 +60,7 @@ tmpdir.refresh(); stderr(output) { let match = output.match(/Warning: test warning/g); @@ -236,10 +236,10 @@ Index: node-v21.1.0/test/parallel/test-snapshot-warning.js + match = warnings2.match(/Use `node21 --trace-warnings/g); assert.strictEqual(match.length, 1); } -Index: node-v21.1.0/test/fixtures/errors/throw_error_with_getter_throw.snapshot +Index: node-v21.7.1/test/fixtures/errors/throw_error_with_getter_throw.snapshot =================================================================== ---- node-v21.1.0.orig/test/fixtures/errors/throw_error_with_getter_throw.snapshot -+++ node-v21.1.0/test/fixtures/errors/throw_error_with_getter_throw.snapshot +--- node-v21.7.1.orig/test/fixtures/errors/throw_error_with_getter_throw.snapshot ++++ node-v21.7.1/test/fixtures/errors/throw_error_with_getter_throw.snapshot @@ -3,6 +3,6 @@ throw { * eslint-disable-line no-throw-literal ^ @@ -248,10 +248,10 @@ Index: node-v21.1.0/test/fixtures/errors/throw_error_with_getter_throw.snapshot +(Use `node21 --trace-uncaught ...` to show where the exception was thrown) Node.js * -Index: node-v21.1.0/test/fixtures/errors/throw_undefined.snapshot +Index: node-v21.7.1/test/fixtures/errors/throw_undefined.snapshot =================================================================== ---- node-v21.1.0.orig/test/fixtures/errors/throw_undefined.snapshot -+++ node-v21.1.0/test/fixtures/errors/throw_undefined.snapshot +--- node-v21.7.1.orig/test/fixtures/errors/throw_undefined.snapshot ++++ node-v21.7.1/test/fixtures/errors/throw_undefined.snapshot @@ -3,6 +3,6 @@ throw undefined; ^ @@ -260,10 +260,10 @@ Index: node-v21.1.0/test/fixtures/errors/throw_undefined.snapshot +(Use `node21 --trace-uncaught ...` to show where the exception was thrown) Node.js * -Index: node-v21.1.0/test/fixtures/errors/throw_null.snapshot +Index: node-v21.7.1/test/fixtures/errors/throw_null.snapshot =================================================================== ---- node-v21.1.0.orig/test/fixtures/errors/throw_null.snapshot -+++ node-v21.1.0/test/fixtures/errors/throw_null.snapshot +--- node-v21.7.1.orig/test/fixtures/errors/throw_null.snapshot ++++ node-v21.7.1/test/fixtures/errors/throw_null.snapshot @@ -3,6 +3,6 @@ throw null; ^