From c90d6e09a2b948724c7904ddba941486744a1ca7ea19c48d5532ea4895f4dab0 Mon Sep 17 00:00:00 2001 From: Adam Majer Date: Tue, 2 Apr 2024 14:59:13 +0000 Subject: [PATCH] - Update to 20.12.0: * crypto: implement crypto.hash() * util: add loading and parsing environment variables * new connection attempt events: connectionAttempt, connectionAttemptFailed, connectionAttemptTimeout * sea: support embedding assets * support configurable snapshot through --build-snapshot-config flag * util.styleText(format, text): This function returns a formatted text considering the format passed. * vm: support using the default loader to handle dynamic import() - c-ares-fixes.patch: removed, upstreamed - nodejs-libpath.patch, versioned.patch: refreshed * libuv version 1.48.0 (CVE-2024-24806, bsc#1220053) OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=70 --- SHASUMS256.txt | 82 ++++++++++++------------ SHASUMS256.txt.sig | Bin 438 -> 566 bytes c-ares-fixes.patch | 46 ------------- fix_ci_tests.patch | 73 +++++++++------------ node-v20.11.1.tar.xz | 3 - node-v20.12.0.tar.xz | 3 + nodejs-libpath.patch | 44 ++++++------- nodejs20.changes | 19 +++++- nodejs20.spec | 149 ++++++++++++++++++++++++++----------------- versioned.patch | 135 +++++++++++++++++++-------------------- 10 files changed, 270 insertions(+), 284 deletions(-) delete mode 100644 c-ares-fixes.patch delete mode 100644 node-v20.11.1.tar.xz create mode 100644 node-v20.12.0.tar.xz diff --git a/SHASUMS256.txt b/SHASUMS256.txt index b3f7b85..876426c 100644 --- a/SHASUMS256.txt +++ b/SHASUMS256.txt @@ -1,41 +1,41 @@ -43a881788549e1b3425eb5f2b92608f438f146e08213de09c5bd5ff841cae7ae node-v20.11.1-aix-ppc64.tar.gz -3f8e77b775372c0b27d2b85ce899d80339691f480e64dde43d4eb01504a58679 node-v20.11.1-arm64.msi -e0065c61f340e85106a99c4b54746c5cee09d59b08c5712f67f99e92aa44995d node-v20.11.1-darwin-arm64.tar.gz -fd771bf3881733bfc0622128918ae6baf2ed1178146538a53c30ac2f7006af5b node-v20.11.1-darwin-arm64.tar.xz -c52e7fb0709dbe63a4cbe08ac8af3479188692937a7bd8e776e0eedfa33bb848 node-v20.11.1-darwin-x64.tar.gz -ed69f1f300beb75fb4cad45d96aacd141c3ddca03b6d77c76b42cb258202363d node-v20.11.1-darwin-x64.tar.xz -0aa42c91b441e945ff43bd3a837759c58b436de57dcd033d02e5cbcd2fba1f87 node-v20.11.1-headers.tar.gz -edce238817acf5adce3123366b55304aff2a1f0849231d1b49f42370e454b6f8 node-v20.11.1-headers.tar.xz -e34ab2fc2726b4abd896bcbff0250e9b2da737cbd9d24267518a802ed0606f3b node-v20.11.1-linux-arm64.tar.gz -c957f29eb4e341903520caf362534f0acd1db7be79c502ae8e283994eed07fe1 node-v20.11.1-linux-arm64.tar.xz -e42791f76ece283c7a4b97fbf716da72c5128c54a9779f10f03ae74a4bcfb8f6 node-v20.11.1-linux-armv7l.tar.gz -28e0120d2d150a8f41717899d33167b8b32053778665583d49ff971bfd188d1b node-v20.11.1-linux-armv7l.tar.xz -9823305ac3a66925a9b61d8032f6bbb4c3e33c28e7f957ebb27e49732feffb23 node-v20.11.1-linux-ppc64le.tar.gz -51343cacf5cdf5c4b5e93e919d19dd373d6ef43d5f2c666eae299f26e31d08b5 node-v20.11.1-linux-ppc64le.tar.xz -4c66b2f247fdd8720853321526d7cda483018fcb32014b75c30f3a54ecacaea7 node-v20.11.1-linux-s390x.tar.gz -b32616b705cd0ddbb230b95c693e3d7a37becc2ced9bcadea8dc824cceed6be0 node-v20.11.1-linux-s390x.tar.xz -bf3a779bef19452da90fb88358ec2c57e0d2f882839b20dc6afc297b6aafc0d7 node-v20.11.1-linux-x64.tar.gz -d8dab549b09672b03356aa2257699f3de3b58c96e74eb26a8b495fbdc9cf6fbe node-v20.11.1-linux-x64.tar.xz -f1cd449fcbeb1b948e8498cb8edd9655fa319d109a7f4c5bd96a9b122b91538a node-v20.11.1-win-arm64.7z -e85461ec124956a2853c4ee6e13c4f4889d63c88beb3d530c1ee0c4b51dc10e7 node-v20.11.1-win-arm64.zip -fb9b5348259988a562a48eed7349e7e716c0bec78d98ad0a336b2993a8b3bf34 node-v20.11.1-win-x64.7z -bc032628d77d206ffa7f133518a6225a9c5d6d9210ead30d67e294ff37044bda node-v20.11.1-win-x64.zip -c2b1863d8979546804a39fc63d0a9bc9c6e49cb2f6c9d1e52844a24629b24765 node-v20.11.1-win-x86.7z -b98e95f78416d1359b647cfa09ba2a48b76d41b56a776df822bf36ffe8e76a2d node-v20.11.1-win-x86.zip -c54f5f7e2416e826fd84e878f28e3b53363ae9c3f60a140af4434b2453b5ae89 node-v20.11.1-x64.msi -63e2aed4dabb96eed6903a3974e006d3c29c218472aac60ae3c3c7de00df13b1 node-v20.11.1-x86.msi -c46019a095a1549d000e85da13f17972a448e0be5854a51786ecccde7278a012 node-v20.11.1.pkg -4af1ba6ea848cc05908b8a62b02fb27684dd52b2a7988ee82b0cfa72deb90b94 node-v20.11.1.tar.gz -77813edbf3f7f16d2d35d3353443dee4e61d5ee84d9e3138c7538a3c0ca5209e node-v20.11.1.tar.xz -a5a9d30a8f7d56e00ccb27c1a7d24c8d0bc96a2689ebba8eb7527698793496f1 win-arm64/node.exe -93529170cebe57c0f4830a4cc6a261b6cc9bcf0cd8b3e88ac4995a5015031d79 win-arm64/node.lib -c14c6e927406b8683cbfb8a67ca4c8fd5093ca7812b5b1627e3d6a53d3674565 win-arm64/node_pdb.7z -68034cd09d8dfaa755d1b280da13e20388cc486ac57b037b3e11dfe2d6b74284 win-arm64/node_pdb.zip -bc585910690318aaebe3c57669cb83ca9d1e5791efd63195e238f54686e6c2ec win-x64/node.exe -53a982d490cb9fcc4b231a8b95147de423b36186bc6f4ba5697b20117fdcbd5d win-x64/node.lib -ccac9f2f5219ed858aeddb306d6493478ba9675c7cbf009e83742437d6752c4f win-x64/node_pdb.7z -bec5da4035c84580843978a59ef9bcc1c0eaca881cf9e1c94e63a1862cf14421 win-x64/node_pdb.zip -3829137e062b1e2eb9947ef05e4b717ae578a8fce1c5c60fe4f6ae7ef2ec0240 win-x86/node.exe -c5321bb65dcecb3989f9b8f6ec56369c16627ca4bade0c78afb6b88f7dde50e4 win-x86/node.lib -20ca60ced1fc21f15ea952b4406aec6bde39d20eab11cf042040628841b2249e win-x86/node_pdb.7z -bef05cebedce5949ae35e87e7d4789c16fa73caf478483fcf92e5dbb9ba5d774 win-x86/node_pdb.zip +8d2ce67d19e2eafe7581f5865382f19ce7f6e66c1d19ed451b7290dcb7b74bd9 node-v20.12.0-aix-ppc64.tar.gz +fb834931c0d6f71a8d352c37a0e56be1dc4a93544eba75e8098df02e16b9deb8 node-v20.12.0-arm64.msi +422a74b7ede14b697a8c2ca887ea161fe79898a35f163fdfb98435c5ab25027b node-v20.12.0-darwin-arm64.tar.gz +a45292e27d492ed3d4ede74cc73c6edcf6ff10b61fbf89108adf0df39a3ccbe8 node-v20.12.0-darwin-arm64.tar.xz +5c7d71a1c1cf613037432e0b6c3d913d96604d9293b3397ec70b344730c81daf node-v20.12.0-darwin-x64.tar.gz +81fb96bc67a92624c09998f9566ae5c8d64e916aa3cd8a0c75f868d43566d539 node-v20.12.0-darwin-x64.tar.xz +aa2d7c2734287fbb757d2e64050ad8454b68ea6eda3c870b5cb386daf059e354 node-v20.12.0-headers.tar.gz +c07c342b85b6ae78b00269e7d39c3f65c8680181d4a6bc0dcbd605dc77a1ace4 node-v20.12.0-headers.tar.xz +8e180526df8ad4086a4df7bfaaa14d21eb2a6cf58b1c5493c639022c165c2884 node-v20.12.0-linux-arm64.tar.gz +007ca2699cf6e84290e5bed844ed66ef9d707d23561dfaf117212b7dce216ba7 node-v20.12.0-linux-arm64.tar.xz +259626b4825d9abba3721941d97f56f10ca7c56757a2468835e40b6fe4520757 node-v20.12.0-linux-armv7l.tar.gz +668fb421a24be596c98f00a31049fbf6ada14d221b7382e0f1caa55ab421431a node-v20.12.0-linux-armv7l.tar.xz +767d6150c086fcdeb9f689b9f487194e3fb459a6ec4e5668d51a051fce67a161 node-v20.12.0-linux-ppc64le.tar.gz +78dc3b7ad993c332684802e35c1f0de2b76193d13394bc89e3bab216828587c7 node-v20.12.0-linux-ppc64le.tar.xz +d14fc89595949a6bde905158ad54f77f1be3b3341dc9876699f5fa77a5397e9e node-v20.12.0-linux-s390x.tar.gz +c271eeb99c98e13428b493b5ffc50ab949e1a282bf679fe3667097f86301961e node-v20.12.0-linux-s390x.tar.xz +b6b998947595c9550d6b89c815a68d608f5920275f1b48812f89792de3fdd893 node-v20.12.0-linux-x64.tar.gz +0a126adf5b6a5eb11a37bad76a0c626a18f20b6811322e68aae0e3cf9bf580bd node-v20.12.0-linux-x64.tar.xz +5081a9af0049b7137aa05e43b58dd81dc922ede26301b7e03e89f329f530b34c node-v20.12.0.pkg +6d81620a0d328ec3039184ad2f5a0fc340ed44a59e90947765567346671525e7 node-v20.12.0.tar.gz +76e5346cebfd581528f699f764f4d1a6e87cb818b696708f235ddcb625a0f78d node-v20.12.0.tar.xz +96690fd6580aa8df8883ae7283c5702d7774441d7ba6b761901047d51760017d node-v20.12.0-win-arm64.7z +d4115d4d533998d83aad50e68964e19c25df4d7b413b672e5a602b68c2b37830 node-v20.12.0-win-arm64.zip +2f623dac976071ef7a9cbf26081fd21b07349d234287bc863d690d4cf2adbe01 node-v20.12.0-win-x64.7z +85db3df652459e380edbbc57973c00c1e15626d354a9ae6ddfc45d27cc573584 node-v20.12.0-win-x64.zip +47e57d5409b6dba0ab72868fc6691345ded1a54c3f6b0d724410bfdcb976d383 node-v20.12.0-win-x86.7z +d52d99cabc2656680ff9abb390d4edd4cb3700a2f8542913b2d576c4ad2cec76 node-v20.12.0-win-x86.zip +937432cb688794cd1acb205bb60322dae5da1ff21b07d5f89c3c5218a1814512 node-v20.12.0-x64.msi +7736df30cbf133ab83d134e7feef71716c35cde662155c407c7bc9c709dd99a7 node-v20.12.0-x86.msi +08c6c69177c7fefd129d84ba178a8fd1aeb32416658b1ae469ffcd4d907d0218 win-arm64/node.exe +e780ac993543d4705ba5bffa79a53854fcb5e77b6845464074ca590dab194539 win-arm64/node.lib +d92d73d5cfd55ad8779a0a6003b0d1b6b660e5d863852ef91374afb9defa49dc win-arm64/node_pdb.7z +c38a950487156e304f11855eb677df5d32287857d374134b5315723691439178 win-arm64/node_pdb.zip +17bbe2cf844b2f2e00f1ef1c5fd136590c002ec1c11f9ff2933912845158d44c win-x64/node.exe +caf3833e5f15e703b91ff1720bb3b350c42f6c3dec8820d2b8fa43d7bf06553a win-x64/node.lib +985b712a8bec222e3d352895f16900fa57bd02116092ebf8a8eca1b55be14f04 win-x64/node_pdb.7z +25a372eaba2ad6c3bf4f3c98a4dbdda083609b6df553c1e658284c3f413fdbfd win-x64/node_pdb.zip +cc3b2d8efe6e004938b8a9fe07f9d2de7153b8c6dca4f1d23beec8e15987fd58 win-x86/node.exe +d4c3d7656ef310e538dcb372e99393fdce9bbce783cb03e12bf638c166d994a5 win-x86/node.lib +37f1e21a79655b577a96985df76cb008cb98db74c311998b8831246d4331e2a7 win-x86/node_pdb.7z +12d8fe239dcbdee9aff0bf28b509f5e86873e8de2147f61b2a624c7a6a0267fb win-x86/node_pdb.zip diff --git a/SHASUMS256.txt.sig b/SHASUMS256.txt.sig index 4841c1203f0b5a35fe9f4dfb11060752092e6a129c187de52b05e68a3a841637..6b44a10a46813ea0d361626b3381ba77fb3fe83236e71a645daff093cbbf7059 100644 GIT binary patch literal 566 zcmV-60?GY}0y6{v0SEvc79j-4FQcv;zT9i%Ym;EaJnTimdbvCW0%ijWM*s>55X3y} zMZtQxJjXN-|6a)%hjE)BS(1D^A#e7Agp!x*{#{HARjC1gMnV~MUQFluh6!i{!|~Vh=G9L=-;A)fWowM+yRd8y1dDt4^G1+)- z8!8EaW2>7ICL{W<9#)HcOz$qkU`^jE(m$+%5N0SDR*NaoNqtz7lso*Fxq?+dTBp4Y zlh0h+@LdlF2$nvhq{iDnwZa9W%#WV{QN(IU!?l z1@lZyU#%3WNobkmwVO2Xz85U2pRl_h4i9?j?2w^P$zy?X4`niIjdM_mX^5m!FYeH& zve3U*=r~HU7d-57edm1Ma1Nj-=@>MX*q_UlKL1=$BQtjDcZM2dOzF;8&XRALt-z>C Ee}*3m?EnA( literal 438 zcmV;n0ZIOe0kZ@E0SEvc79j+Q3<%qWc@{734f)%P>a^d_RbKQ30%gqkH~5R2-x z-_KQE^fM$2{TQ2DGMw2*xHG9VZvD3=Fkk2n<3mEMC0bQvXUUF2by#l(M*3&q#aj!~ zzw$17+2bCJYC+Y% z?adD&xn3ziO_z2xcy{ZKfUynR-cK7ZrVd}YpskmvUNEvk}y0P=)<>jE$&nPF&U5^|`dyYUhd#3g8G|3Lsi~s-t diff --git a/c-ares-fixes.patch b/c-ares-fixes.patch deleted file mode 100644 index 6b0054c..0000000 --- a/c-ares-fixes.patch +++ /dev/null @@ -1,46 +0,0 @@ -Index: node-v20.11.0/test/parallel/test-dns-resolveany-bad-ancount.js -=================================================================== ---- node-v20.11.0.orig/test/parallel/test-dns-resolveany-bad-ancount.js -+++ node-v20.11.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 7b795ea..1842812 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-v20.11.0/test/parallel/test-module-loading-globalpaths.js +Index: node-v20.12.0/test/parallel/test-module-loading-globalpaths.js =================================================================== ---- node-v20.11.0.orig/test/parallel/test-module-loading-globalpaths.js -+++ node-v20.11.0/test/parallel/test-module-loading-globalpaths.js +--- node-v20.12.0.orig/test/parallel/test-module-loading-globalpaths.js ++++ node-v20.12.0/test/parallel/test-module-loading-globalpaths.js @@ -11,6 +11,9 @@ const { addLibraryPath } = require('../c addLibraryPath(process.env); @@ -16,10 +16,10 @@ Index: node-v20.11.0/test/parallel/test-module-loading-globalpaths.js if (process.argv[2] === 'child') { console.log(require(pkgName).string); } else { -Index: node-v20.11.0/test/parallel/test-tls-passphrase.js +Index: node-v20.12.0/test/parallel/test-tls-passphrase.js =================================================================== ---- node-v20.11.0.orig/test/parallel/test-tls-passphrase.js -+++ node-v20.11.0/test/parallel/test-tls-passphrase.js +--- node-v20.12.0.orig/test/parallel/test-tls-passphrase.js ++++ node-v20.12.0/test/parallel/test-tls-passphrase.js @@ -223,7 +223,7 @@ server.listen(0, common.mustCall(functio }, onSecureConnect()); })).unref(); @@ -29,10 +29,10 @@ Index: node-v20.11.0/test/parallel/test-tls-passphrase.js // Missing passphrase assert.throws(function() { -Index: node-v20.11.0/test/parallel/test-repl-envvars.js +Index: node-v20.12.0/test/parallel/test-repl-envvars.js =================================================================== ---- node-v20.11.0.orig/test/parallel/test-repl-envvars.js -+++ node-v20.11.0/test/parallel/test-repl-envvars.js +--- node-v20.12.0.orig/test/parallel/test-repl-envvars.js ++++ node-v20.12.0/test/parallel/test-repl-envvars.js @@ -2,7 +2,9 @@ // Flags: --expose-internals @@ -44,11 +44,11 @@ Index: node-v20.11.0/test/parallel/test-repl-envvars.js const stream = require('stream'); const { describe, test } = require('node:test'); const REPL = require('internal/repl'); -Index: node-v20.11.0/Makefile +Index: node-v20.12.0/Makefile =================================================================== ---- node-v20.11.0.orig/Makefile -+++ node-v20.11.0/Makefile -@@ -545,7 +545,8 @@ test-ci-js: | clear-stalled +--- node-v20.12.0.orig/Makefile ++++ node-v20.12.0/Makefile +@@ -560,7 +560,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 @@ -58,7 +58,7 @@ Index: node-v20.11.0/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 +743,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 @@ -68,10 +68,10 @@ Index: node-v20.11.0/Makefile echo "Skipping tools/doc/node_modules (no crypto)"; \ else \ cd tools/doc && $(call available-node,$(run-npm-ci)) \ -Index: node-v20.11.0/tools/test.py +Index: node-v20.12.0/tools/test.py =================================================================== ---- node-v20.11.0.orig/tools/test.py -+++ node-v20.11.0/tools/test.py +--- node-v20.12.0.orig/tools/test.py ++++ node-v20.12.0/tools/test.py @@ -1362,7 +1362,7 @@ def BuildOptions(): result.add_option("-s", "--suite", help="A test suite", default=[], action="append") @@ -81,10 +81,10 @@ Index: node-v20.11.0/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-v20.11.0/test/parallel/test-crypto-dh.js +Index: node-v20.12.0/test/parallel/test-crypto-dh.js =================================================================== ---- node-v20.11.0.orig/test/parallel/test-crypto-dh.js -+++ node-v20.11.0/test/parallel/test-crypto-dh.js +--- node-v20.12.0.orig/test/parallel/test-crypto-dh.js ++++ node-v20.12.0/test/parallel/test-crypto-dh.js @@ -90,9 +90,7 @@ const crypto = require('crypto'); const hasOpenSSL3WithNewErrorMessage = (v >= 0x300000c0 && v <= 0x30100000) || (v >= 0x30100040 && v <= 0x30200000); assert.throws(() => { @@ -96,10 +96,10 @@ Index: node-v20.11.0/test/parallel/test-crypto-dh.js } } -Index: node-v20.11.0/test/parallel/test-node-output-errors.mjs +Index: node-v20.12.0/test/parallel/test-node-output-errors.mjs =================================================================== ---- node-v20.11.0.orig/test/parallel/test-node-output-errors.mjs -+++ node-v20.11.0/test/parallel/test-node-output-errors.mjs +--- node-v20.12.0.orig/test/parallel/test-node-output-errors.mjs ++++ node-v20.12.0/test/parallel/test-node-output-errors.mjs @@ -28,6 +28,7 @@ describe('errors output', { concurrency: .replaceAll(/\/(\w)/g, '*$1') .replaceAll('*test*', '*') @@ -108,10 +108,10 @@ Index: node-v20.11.0/test/parallel/test-node-output-errors.mjs .replaceAll('file:**', 'file:*/'); } -Index: node-v20.11.0/test/parallel/test-crypto-fips.js +Index: node-v20.12.0/test/parallel/test-crypto-fips.js =================================================================== ---- node-v20.11.0.orig/test/parallel/test-crypto-fips.js -+++ node-v20.11.0/test/parallel/test-crypto-fips.js +--- node-v20.12.0.orig/test/parallel/test-crypto-fips.js ++++ node-v20.12.0/test/parallel/test-crypto-fips.js @@ -3,6 +3,8 @@ const common = require('../common'); if (!common.hasCrypto) @@ -121,25 +121,10 @@ Index: node-v20.11.0/test/parallel/test-crypto-fips.js const assert = require('assert'); const spawnSync = require('child_process').spawnSync; -Index: node-v20.11.0/benchmark/misc/startup-cli-version.js +Index: node-v20.12.0/test/parallel/test-node-output-v8-warning.mjs =================================================================== ---- node-v20.11.0.orig/benchmark/misc/startup-cli-version.js -+++ node-v20.11.0/benchmark/misc/startup-cli-version.js -@@ -10,9 +10,9 @@ const path = require('path'); - // indispensible part of the CLI. - const bench = common.createBenchmark(main, { - cli: [ -- 'tools/node_modules/eslint/bin/eslint.js', - 'deps/npm/bin/npm-cli.js', - 'deps/corepack/dist/corepack.js', -+ 'tools/node_modules/eslint/bin/eslint.js', - ], - count: [30], - }); -Index: node-v20.11.0/test/parallel/test-node-output-v8-warning.mjs -=================================================================== ---- node-v20.11.0.orig/test/parallel/test-node-output-v8-warning.mjs -+++ node-v20.11.0/test/parallel/test-node-output-v8-warning.mjs +--- node-v20.12.0.orig/test/parallel/test-node-output-v8-warning.mjs ++++ node-v20.12.0/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 diff --git a/node-v20.11.1.tar.xz b/node-v20.11.1.tar.xz deleted file mode 100644 index 7a95e18..0000000 --- a/node-v20.11.1.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:77813edbf3f7f16d2d35d3353443dee4e61d5ee84d9e3138c7538a3c0ca5209e -size 42159296 diff --git a/node-v20.12.0.tar.xz b/node-v20.12.0.tar.xz new file mode 100644 index 0000000..8a9c864 --- /dev/null +++ b/node-v20.12.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:76e5346cebfd581528f699f764f4d1a6e87cb818b696708f235ddcb625a0f78d +size 41829480 diff --git a/nodejs-libpath.patch b/nodejs-libpath.patch index ed46a24..ceb8732 100644 --- a/nodejs-libpath.patch +++ b/nodejs-libpath.patch @@ -1,16 +1,16 @@ -Index: node-v18.9.0/tools/install.py +Index: node-v21.7.1/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-v21.7.1.orig/tools/install.py ++++ node-v21.7.1/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) @@ -18,32 +18,32 @@ Index: node-v18.9.0/tools/install.py + libdir_fq = sysconfig.get_config_var("LIBDIR") + return re.sub("^" + re.escape(node_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(), '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(), '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-v21.7.1/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-v21.7.1.orig/lib/internal/modules/cjs/loader.js ++++ node-v21.7.1/lib/internal/modules/cjs/loader.js +@@ -1528,7 +1528,7 @@ Module._initPaths = function() { path.resolve(process.execPath, '..') : path.resolve(process.execPath, '..', '..'); diff --git a/nodejs20.changes b/nodejs20.changes index 0a45f5e..87937d3 100644 --- a/nodejs20.changes +++ b/nodejs20.changes @@ -1,3 +1,20 @@ +------------------------------------------------------------------- +Tue Apr 2 14:39:07 UTC 2024 - Adam Majer + +- Update to 20.12.0: + * crypto: implement crypto.hash() + * util: add loading and parsing environment variables + * new connection attempt events: connectionAttempt, + connectionAttemptFailed, connectionAttemptTimeout + * sea: support embedding assets + * support configurable snapshot through --build-snapshot-config flag + * util.styleText(format, text): This function returns a formatted + text considering the format passed. + * vm: support using the default loader to handle dynamic import() + +- c-ares-fixes.patch: removed, upstreamed +- nodejs-libpath.patch, versioned.patch: refreshed + ------------------------------------------------------------------- Fri Feb 16 16:04:46 UTC 2024 - Adam Majer @@ -11,7 +28,7 @@ Fri Feb 16 16:04:46 UTC 2024 - Adam Majer * (CVE-2024-21890, bsc#1219999) - Improper handling of wildcards in --allow-fs-read and --allow-fs-write (Medium) * (CVE-2024-22025, bsc#1220014) - Denial of Service by resource exhaustion in fetch() brotli decoding - (Medium) * undici version 5.28.3 (CVE-2024-24758, bsc#1220017) - * libuv version 1.48.0 (CVE-2024-24806, bsc#1219724) + * libuv version 1.48.0 (CVE-2024-24806, bsc#1220053) ------------------------------------------------------------------- Mon Feb 12 14:27:04 UTC 2024 - Adam Majer diff --git a/nodejs20.spec b/nodejs20.spec index e36639c..35c3d10 100644 --- a/nodejs20.spec +++ b/nodejs20.spec @@ -31,7 +31,7 @@ %endif Name: nodejs20 -Version: 20.11.1 +Version: 20.12.0 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) = 73.2 +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,11 +369,11 @@ ExclusiveArch: not_buildable %endif %endif -Provides: bundled(uvwasi) = 0.0.19 +Provides: bundled(uvwasi) = 0.0.20 Provides: bundled(libuv) = 1.46.0 Provides: bundled(v8) = 11.3.244.8 %if %{with intree_brotli} -Provides: bundled(brotli) = 1.0.9 +Provides: bundled(brotli) = 1.1.0 %else BuildRequires: pkgconfig(libbrotlidec) %endif @@ -382,18 +381,18 @@ BuildRequires: pkgconfig(libbrotlidec) Provides: bundled(llhttp) = 8.1.1 Provides: bundled(ngtcp2) = 0.8.1 -Provides: bundled(base64) = 0.5.1 -Provides: bundled(simdutf) = 4.0.4 -Provides: bundled(simdjson) = {{nothing}} +Provides: bundled(base64) = 0.5.2 +Provides: bundled(simdutf) = 4.0.8 + # 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.2 -Provides: bundled(node-acorn-walk) = 8.2.0 +Provides: bundled(node-acorn) = 8.11.3 +Provides: bundled(node-acorn-walk) = 8.3.2 Provides: bundled(node-busboy) = 1.6.0 Provides: bundled(node-cjs-module-lexer) = 1.2.2 -Provides: bundled(node-corepack) = 0.23.0 +Provides: bundled(node-corepack) = 0.25.2 Provides: bundled(node-minimatch) = 9.0.3 Provides: bundled(node-streamsearch) = 1.1.0 Provides: bundled(node-undici) = 5.28.3 @@ -426,7 +425,7 @@ Requires: nodejs-common Requires: nodejs20 = %{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 @@ -435,7 +434,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 @@ -444,15 +442,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 @@ -472,16 +468,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 @@ -492,19 +485,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 @@ -513,30 +505,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 @@ -556,22 +549,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 @@ -580,25 +572,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 @@ -608,7 +598,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 @@ -714,7 +704,6 @@ popd %patch305 -p1 %patch309 -p1 -%patch311 -p1 %if %{node_version_number} == 12 # minimist security update - patch50 @@ -901,6 +890,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 @@ -919,6 +914,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 @@ -1127,6 +1140,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 3231cee..05cb9b6 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-v20.5.1/Makefile +Index: node-v20.12.0/Makefile =================================================================== ---- node-v20.5.1.orig/Makefile -+++ node-v20.5.1/Makefile +--- node-v20.12.0.orig/Makefile ++++ node-v20.12.0/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 = node20$(EXEEXT) - NODE ?= ./$(NODE_EXE) ++NODE_EXE = node21$(EXEEXT) + # 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-v20.5.1/tools/install.py +Index: node-v20.12.0/tools/install.py =================================================================== ---- node-v20.5.1.orig/tools/install.py -+++ node-v20.5.1/tools/install.py -@@ -86,7 +86,7 @@ def uninstall(paths, dst): - try_remove(path, dst) +--- node-v20.12.0.orig/tools/install.py ++++ node-v20.12.0/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 + '20/' + def package_files(options, action, name, bins): +- target_path = os.path.join(libdir(), 'node_modules', name) ++ target_path = os.path.join(libdir(), 'node_modules', name + '20') # 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 + '20/' + bin_target, link_path) +- try_symlink(options, os.path.join('..', libdir(), 'node_modules', name, bin_target), link_path) ++ try_symlink(options, os.path.join('..', libdir(), 'node_modules', name + '20', 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', + 'npm20': 'bin/npm-cli.js', + 'npx20': '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', + 'corepack20': '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 = 'node20' - output_prefix = 'out/Release/' - - if is_windows: -@@ -189,7 +189,7 @@ def files(action): + def files(options, action): +- node_bin = 'node' ++ node_bin = 'node20' + 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/node20.1') +- action(options, ['doc/node.1'], 'share/man/man1/') ++ action(options, ['doc/node.1'], 'share/man/man1/node20.1') - if 'true' == variables.get('node_install_npm'): - npm_files(action) -@@ -276,28 +276,28 @@ def headers(action): + if 'true' == options.variables.get('node_install_npm'): + npm_files(options, action) +@@ -331,28 +331,28 @@ def headers(options, action): 'src/node_buffer.h', 'src/node_object_wrap.h', 'src/node_version.h', @@ -85,27 +85,26 @@ Index: node-v20.5.1/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/node20/') + action(options, ['out/Release/node.exp'], 'include/node/') -- subdir_files('deps/v8/include', 'include/node/', wanted_v8_headers) -+ subdir_files('deps/v8/include', 'include/node20/', 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/node20/', wanted_v8_headers) - if 'false' == variables.get('node_shared_libuv'): -- subdir_files('deps/uv/include', 'include/node/', action) -+ subdir_files('deps/uv/include', 'include/node20/', 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/node20/', 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/node20/openssl/', action) -+ subdir_files('deps/openssl/config/archs', 'include/node20/openssl/archs', action) -+ subdir_files('deps/openssl/config', 'include/node20/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/node20/openssl/', action) ++ subdir_files(options, 'deps/openssl/config/archs', 'include/node20/openssl/archs', action) ++ subdir_files(options, 'deps/openssl/config', 'include/node20/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 +112,10 @@ Index: node-v20.5.1/tools/install.py if sys.platform == 'zos': zoslibinc = os.environ.get('ZOSLIB_INCLUDES') -Index: node-v20.5.1/doc/node.1 +Index: node-v20.12.0/doc/node.1 =================================================================== ---- node-v20.5.1.orig/doc/node.1 -+++ node-v20.5.1/doc/node.1 +--- node-v20.12.0.orig/doc/node.1 ++++ node-v20.12.0/doc/node.1 @@ -31,24 +31,24 @@ .Dt NODE 1 . @@ -146,10 +145,10 @@ Index: node-v20.5.1/doc/node.1 .Op Fl -v8-options . .\"====================================================================== -Index: node-v20.5.1/src/node_main.cc +Index: node-v20.12.0/src/node_main.cc =================================================================== ---- node-v20.5.1.orig/src/node_main.cc -+++ node-v20.5.1/src/node_main.cc +--- node-v20.12.0.orig/src/node_main.cc ++++ node-v20.12.0/src/node_main.cc @@ -94,6 +94,7 @@ int wmain(int argc, wchar_t* wargv[]) { // UNIX @@ -158,11 +157,11 @@ Index: node-v20.5.1/src/node_main.cc return node::Start(argc, argv); } #endif -Index: node-v20.5.1/tools/test.py +Index: node-v20.12.0/tools/test.py =================================================================== ---- node-v20.5.1.orig/tools/test.py -+++ node-v20.5.1/tools/test.py -@@ -947,7 +947,7 @@ class Context(object): +--- node-v20.12.0.orig/tools/test.py ++++ node-v20.12.0/tools/test.py +@@ -954,7 +954,7 @@ class Context(object): if self.vm is not None: return self.vm if arch == 'none': @@ -171,11 +170,11 @@ Index: node-v20.5.1/tools/test.py else: name = 'out/%s.%s/node' % (arch, mode) -Index: node-v20.5.1/node.gyp +Index: node-v20.12.0/node.gyp =================================================================== ---- node-v20.5.1.orig/node.gyp -+++ node-v20.5.1/node.gyp -@@ -23,8 +23,8 @@ +--- node-v20.12.0.orig/node.gyp ++++ node-v20.12.0/node.gyp +@@ -24,8 +24,8 @@ 'node_shared_openssl%': 'false', 'node_v8_options%': '', 'node_enable_v8_vtunejit%': 'false',