Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package nodejs26 for openSUSE:Factory checked in at 2026-07-02 20:12:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/nodejs26 (Old) and /work/SRC/openSUSE:Factory/.nodejs26.new.1982 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "nodejs26" Thu Jul 2 20:12:25 2026 rev:2 rq:1363512 version:26.4.0 Changes: -------- --- /work/SRC/openSUSE:Factory/nodejs26/nodejs26.changes 2026-06-23 17:41:21.387306194 +0200 +++ /work/SRC/openSUSE:Factory/.nodejs26.new.1982/nodejs26.changes 2026-07-02 20:16:13.227421425 +0200 @@ -1,0 +2,14 @@ +Mon Jun 29 15:17:31 UTC 2026 - Matej Cepl <[email protected]> + +- Update to 26.4.0: + - doc: update blockList stability status to release candidate + - fs: support caller-supplied readFile() buffers + - http: close pre-request sockets in closeIdleConnections + - loader: implement package maps + - net: support TCP_KEEPINTVL and TCP_KEEPCNT in setKeepAlive + - tls: add certificateCompression option + - vfs: dispatch node:fs/promises to mounted VFS instances + - vfs: add minimal node:vfs subsystem +- Run obs-git-init (and add *-build directory to .gitignore) + +------------------------------------------------------------------- Old: ---- node-v26.3.1.tar.xz New: ---- node-v26.4.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ nodejs26.spec ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:15.327494068 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:15.339494482 +0200 @@ -25,7 +25,7 @@ %endif Name: nodejs26 -Version: 26.3.1 +Version: 26.4.0 Release: 0 # Double DWZ memory limits @@ -210,7 +210,7 @@ %else # bundled openssl %if %node_version_number <= 12 && 0%{?suse_version} == 1315 && 0%{?sle_version} < 120400 -Provides: bundled(openssl) = 3.5.5 +Provides: bundled(openssl) = 3.5.7 %else BuildRequires: bundled_openssl_should_not_be_required %endif @@ -234,13 +234,13 @@ %if ! 0%{with intree_icu} BuildRequires: pkgconfig(icu-i18n) >= 71 %else -Provides: bundled(icu) = 78.2 +Provides: bundled(icu) = 78.3 %endif %if ! 0%{with intree_nghttp2} BuildRequires: libnghttp2-devel >= 1.41.0 %else -Provides: bundled(nghttp2) = 1.68.0 +Provides: bundled(nghttp2) = 1.69.0 %endif %if 0%{with valgrind_tests} @@ -768,18 +768,14 @@ # qemu test failures %if %{node_version_number} >= 18 && 0%{?qemu_user_space_build} -# sequential/test-debugger-*: timeout hit? -rm -v test/*/test-debugger-*.js -# parallel tests are not parallel under qemu -rm -v test/parallel/test-*.js test/parallel/test-*.mjs -# RuntimeError: memory access out of bounds -rm -v test/wasi/test-*.js -# ESM import hits assertion, timeout error? -rm -v test/es-module/test-esm-*.js -# AssertionError [ERR_ASSERTION]: Missing expected exception -rm -v test/js-native-api/test_constructor/test*.js -# Too slow for performance tests -rm -v test/sequential/test-perf-*.js test/sequential/test-diagnostic-*.js +# unsupported by qemu emulation +rm -v test/parallel/test-dgram-multicast-set-interface.js +rm -v test/parallel/test-memory-usage.js +rm -v test/parallel/test-memory-usage-emfile.js +rm -v test/parallel/test-setproctitle.js +rm -v test/parallel/test-v8-serialize-leak.js +rm -v test/parallel/test-web-locks.js +rm -v test/parallel/test-worker-memory.js %endif # Run CI tests @@ -787,7 +783,11 @@ # valgrind may have false positives, so do not fail on these by default make test-valgrind ||: %endif -make test-ci + +# Run actual tests. Skip doc generation +make %{?_smp_mflags} build-ffi-tests +make test-ci-js +make test-ci-native %files %defattr(-, root, root) ++++++ SHASUMS256.txt ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:15.479499326 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:15.487499602 +0200 @@ -1,33 +1,33 @@ -8c0ef7465b17c31d6bfaea84d5b8d62944b543dcd2df42933aa0bff4771ebc5c node-v26.3.1-aix-ppc64.tar.gz -bd0c50afcc7140b64b12e24f73f0681d68f84205575893561e6344dc09b71fc7 node-v26.3.1-arm64.msi -3f624ab0d774553c0d28b968e141d8c676a35a2811fb0b7b356ba9cbdce15f74 node-v26.3.1-darwin-arm64.tar.gz -49aca22a8c2992c16688baa512a7b00c41a4608e9675fcaa81534767bf1116ce node-v26.3.1-darwin-arm64.tar.xz -3ec9e5a28c641c088f3d04ad38721bfdedb2f8aa8c031979fa93df08b5a92e58 node-v26.3.1-darwin-x64.tar.gz -dac58e340c721332d331a44c9ee2e126b26632c42d3028eb2ceb5c3f218798fa node-v26.3.1-darwin-x64.tar.xz -a0fbaa7136174fa7533f6178c2331ffbaad5f25e9fd2e610fc3961b57fd5acae node-v26.3.1-headers.tar.gz -e84075cd1296f089ad17bc87d34cea964bad7f1018378656af16d494adf91d1a node-v26.3.1-headers.tar.xz -2f0829b201e9db20996ae15bce62138df1e3d317775b005778b05cf7b19714f1 node-v26.3.1-linux-arm64.tar.gz -c021380e64d1314d1218ab1f31e0f5b0f28f1f54ac779ef72a16c2bda0ca5c30 node-v26.3.1-linux-arm64.tar.xz -276d72c00b4cfedf3bc45bde6d1bd0a18e8c846ed150a5381c528112fa0ccabd node-v26.3.1-linux-ppc64le.tar.gz -ec83deb41569e3896e8c4af4986c76dc0bf4e0eb909643b364d38e8a9f9f9091 node-v26.3.1-linux-ppc64le.tar.xz -740d35affe20683d244e494e0cc9710a91c1c6039ffdd0ed9f7d110c998bd23c node-v26.3.1-linux-s390x.tar.gz -e8aece0730dc3dc808d66f8a8b8a6f87354ac941dfaa3a59a27022b2435abbcd node-v26.3.1-linux-s390x.tar.xz -e892cd615e637edebcf22f9653d80fba63167ad6754d20881fd52cc37be81441 node-v26.3.1-linux-x64.tar.gz -55647180e4ae58ffeaa3294e89aa4abda7c371dfbd64b44cbdb022980177aae0 node-v26.3.1-linux-x64.tar.xz -40e8d2ad0a4f543c5e283ca0074ce8ea327062d448bf84f3cdfda27e736fbde8 node-v26.3.1-win-arm64.7z -021eb7de1d5257b24765f292dfcb469ff1528c29d88f48c875befb28114fb0fb node-v26.3.1-win-arm64.zip -35c2ce21f7b0ea776b139cecc052641653abc31fb438cb17d096af7a9277d706 node-v26.3.1-win-x64.7z -45001b289ebffe7b22260898f3750059183d8246042b88e8ffa4337e65e6763e node-v26.3.1-win-x64.zip -c07b05c3b9e22e1a408e630285f15201b86eaa32f5d9ca8cf35132c9caac0cf0 node-v26.3.1-x64.msi -942790eea681d9fa92b7c67343a2fd862b860546ad62f3a8a12f8ca72b784baf node-v26.3.1.pkg -d38ec1c76d2651d2c597cffa46c8379b29e42baa5b82b7997981e8301b4b3387 node-v26.3.1.tar.gz -979b9b8308a8d2d4a27c662ed50448c85f970c0fd4f5ce8b98e8da78c441f2bc node-v26.3.1.tar.xz -b8ad851e5ac8cbb784633ec905bd86a282697cc73eb1836c503f02968c7d2c41 win-arm64/node.exe -bd474f1ca8c44b2ab10e908c14447c5d91e1bac3f3a4d3141c78b6dbb5d1a253 win-arm64/node.lib -4ae86b1181dea3cf5a39c17600eec672df3b4d728643be91e3f6b3f8b9da6138 win-arm64/node_pdb.7z -8a256841ab4992714d817f8f15722f1db25520555823b4a9a6a6c75f86d44f17 win-arm64/node_pdb.zip -2e5b4362a7ea3478cb408a07189c19c16e487f188ac96db2e9e0f45ad8e21837 win-x64/node.exe -2f71186cc7649a7406b1616566700e397e9dd52bd7267440d78d78a1725bd312 win-x64/node.lib -e56e13c1a622751a9024b3d6e2c8806e992cd7f502bc3b22f47d7a471cdaee20 win-x64/node_pdb.7z -9dd4250f30eaf002777b719af182917c16ebb174b72a15575b5e81a93c1c989b win-x64/node_pdb.zip +60269b7e2f214eb546bddc976d40dba628f63ee440488ebc2594abfc06873258 node-v26.4.0-aix-ppc64.tar.gz +76d6c1b2fee84474374e445606b90cf6f1d8ffa22033f438c5008a21dd54fb35 node-v26.4.0-arm64.msi +4f4fbcacf6b1ff1a95deedba7bd7b2d79efecaa53a8ecb0530546dc9063fefbc node-v26.4.0-darwin-arm64.tar.gz +bef4c7e75087c029835f519a7ba640eba52fa617fadb3a9049828ff3b45b57dd node-v26.4.0-darwin-arm64.tar.xz +eb3bdd8dec3ff2558ee10e284da7d2a3865af0cbda21f06d397b0265837c641e node-v26.4.0-darwin-x64.tar.gz +06607eef24180c3d1299455efe315bfef67b68b271dc307841cb3fb3af39e211 node-v26.4.0-darwin-x64.tar.xz +2caa0b6addb7e63c38ccd2b1d78d78ba4418b35b5daed0bc9daea23e8ab769c5 node-v26.4.0-headers.tar.gz +6eb5714cf9e917c5627f1f4df8ba126080333ddd51bca64bc0d424f82162c434 node-v26.4.0-headers.tar.xz +773d9ec67266838270ddc105c2548ae8aaff28bc8fe6f34c55d1094043c4165e node-v26.4.0-linux-arm64.tar.gz +f6d8eedc52170667d45730ac2f413c4aa1e7cd2165c9cac5746ef3cb0f4ec45a node-v26.4.0-linux-arm64.tar.xz +d550366058fb29aade118fe0552f2fadc694da9ea63aadf4a73d6a523398e139 node-v26.4.0-linux-ppc64le.tar.gz +2feb9010b184e13c17150a81c8e12801a8f166513cccea0a5a1ea9d3e521ff20 node-v26.4.0-linux-ppc64le.tar.xz +70ebd033c50f9083be53d8a0583c215049c63212087835da719c3c06cce4117b node-v26.4.0-linux-s390x.tar.gz +55c161e3ff9bec97fe70e6dce64f5e844457de151f6fe602461c79038ec524b1 node-v26.4.0-linux-s390x.tar.xz +f221dab30d0e9d544332f06fbee2c62186c97d864d5cac8482dba34f1e38b8dc node-v26.4.0-linux-x64.tar.gz +5c4286dcd5bbd5acb1ccc7eb0e088bd5eb1e3affad671ee9364004f8f6a4a431 node-v26.4.0-linux-x64.tar.xz +e810f99f1ed6e4ae719e548b9574bede57a98aadb747d1ad8364a2adcfa5dae9 node-v26.4.0-win-arm64.7z +394cb72e664faaa518ca1877bcc20bb03a3e2f51ed1f6cfce53e1a306e8c97f6 node-v26.4.0-win-arm64.zip +5adb7d769da5384d3ef7c41599b921f2b6e18cbadc487b27b96b35ef018e1497 node-v26.4.0-win-x64.7z +5f87d038c6ec442aa46b9126f8ca170acbd2f3b9b9152ca798cf54596a31e214 node-v26.4.0-win-x64.zip +c9df873c4cf0463c63b79774d96b2e126ca6ba9d9f86529846864d41775101d6 node-v26.4.0-x64.msi +e9cbc19b609a6a919169c8565355c51899ecc82ce0197ba6f687540ca8901b50 node-v26.4.0.pkg +b1d9ebb2f4bea2058f2d105710d8cffbd1af3c0c5c690b1886ce54df098bea16 node-v26.4.0.tar.gz +9eceb3621024069d91035b5471d2ebe86aa04d22dbeba72a782eaf36ff9183ac node-v26.4.0.tar.xz +e9b3ccbbecfe76918bc4e2b931024ae699a0c2753de745c5a34ac1f85728e029 win-arm64/node.exe +c01ce0d5e4e956f0e5e73cdba925d15a6d6f86883aa49f8f0b0de87aa93508ce win-arm64/node.lib +c754877c17bc575185b9968ac3bb5844a9dfe632d1a926e7b1eb0c752ef65d10 win-arm64/node_pdb.7z +4ba7764244218f743e312cfef7ffb090e9d10266121c4b33c10bfebd2b8c1f87 win-arm64/node_pdb.zip +3193d7f751b8a07bd4acc70e81946ae9c6efdee83e07ad1c8d0e4089df7c5cef win-x64/node.exe +56f06350037085fce04930befd98327afc86ee46f52af6f6f8a68a03630e8380 win-x64/node.lib +c9f08aab3593db3469bb7e0d393983edc0af9012e6aaa4f76287119ece3ceaef win-x64/node_pdb.7z +ca8034bca696d38ab4bdf69baabd5d31ae30a0b659f0a1292229dfdea861fe93 win-x64/node_pdb.zip ++++++ SHASUMS256.txt.sig ++++++ Binary files /var/tmp/diff_new_pack.uQJOwW/_old and /var/tmp/diff_new_pack.uQJOwW/_new differ ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:15.647505137 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:15.655505413 +0200 @@ -1,6 +1,6 @@ -mtime: 1782126420 -commit: bfe22750d44bf32756b12576e021525519120ff068ef34b4a40cd94073c67861 +mtime: 1782830699 +commit: 045f4d2f438b9a5bdf2f30a7073d75da769a20fcb15d4f5db332158378643a78 url: https://src.opensuse.org/nodejs/nodejs26 -revision: bfe22750d44bf32756b12576e021525519120ff068ef34b4a40cd94073c67861 +revision: 045f4d2f438b9a5bdf2f30a7073d75da769a20fcb15d4f5db332158378643a78 projectscmsync: https://src.opensuse.org/nodejs/_ObsPrj.git ++++++ build.specials.obscpio ++++++ --- old/.gitignore 2026-06-22 13:07:00.000000000 +0200 +++ new/.gitignore 2026-06-30 16:44:59.000000000 +0200 @@ -2,3 +2,7 @@ *.osc _build.* .pbuild +.assets +*.obsinfo +_service:* +nodejs26-*-build/ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-06-30 16:44:59.000000000 +0200 @@ -0,0 +1,8 @@ +*.obscpio +*.osc +_build.* +.pbuild +.assets +*.obsinfo +_service:* +nodejs26-*-build/ ++++++ maintainer_scripts.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/maintainer_scripts/bundling.sh new/maintainer_scripts/bundling.sh --- old/maintainer_scripts/bundling.sh 2026-06-22 13:07:00.000000000 +0200 +++ new/maintainer_scripts/bundling.sh 2026-06-30 16:44:59.000000000 +0200 @@ -5,7 +5,7 @@ echo "Cannot find spec file in current directory" > /dev/stderr exit 1 fi -NODE_VERSION=$(basename "$SPEC_FILE" .spec | sed 's/nodejs//') +SPEC_NODE_VERSION=$(basename "$SPEC_FILE" .spec | sed 's/nodejs//') # extracts version from a define as, # #define SOME_VERSION "1.2.3" # where @@ -280,6 +280,10 @@ load_bundled_version ngtcp2; NGTCP2_VER=$BUNDLED_VERSION load_bundled_version simdjson; SIMDJSON_VER=$BUNDLED_VERSION load_bundled_version ada; ADA_VER=$BUNDLED_VERSION +load_bundled_version openssl; OPENSSL_VER=$BUNDLED_VERSION +load_bundled_version cares; CARES_VER=$BUNDLED_VERSION +load_bundled_version icu-small; ICU_VER=$BUNDLED_VERSION +load_bundled_version nghttp2; NGHTTP2_VER=$BUNDLED_VERSION NPM_PROVIDES=$(find_npm_packages "node") cat <<INNER_EOF > final_replacement_raw.txt Provides: bundled(uvwasi) = $UVWASI_VER @@ -333,6 +337,11 @@ } ' final_replacement.txt "$SPEC_FILE" > "${SPEC_FILE}.tmp" mv "${SPEC_FILE}.tmp" "$SPEC_FILE" +# Update individual provides outside the BEGIN/END blocks +sed -i -E "s/^(Provides:\s*bundled\(openssl\)\s*=\s*)[0-9.]+(.*)$/\1$OPENSSL_VER\2/" "$SPEC_FILE" +sed -i -E "s/^(Provides:\s*bundled\(libcares2\)\s*=\s*)[0-9.]+(.*)$/\1$CARES_VER\2/" "$SPEC_FILE" +sed -i -E "s/^(Provides:\s*bundled\(icu\)\s*=\s*)[0-9.]+(.*)$/\1$ICU_VER\2/" "$SPEC_FILE" +sed -i -E "s/^(Provides:\s*bundled\(nghttp2\)\s*=\s*)[0-9.]+(.*)$/\1$NGHTTP2_VER\2/" "$SPEC_FILE" rm final_replacement.txt final_replacement_raw.txt echo "Updated $SPEC_FILE with new non-NPM bundled versions." rm -rf $TMP_EXTRACT_DIR ++++++ node-gyp-addon-gypi.patch ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:16.115521326 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:16.123521603 +0200 @@ -1,7 +1,14 @@ -Index: node-v21.7.1/addon-rpm.gypi +--- + addon-rpm.gypi | 35 ++++++++++++++++++++++++ + deps/npm/node_modules/node-gyp/addon.gypi | 1 + deps/npm/node_modules/node-gyp/lib/configure.js | 21 ++++++++++---- + tools/build_addons.py | 2 - + 4 files changed, 52 insertions(+), 7 deletions(-) + +Index: node-v26.4.0/addon-rpm.gypi =================================================================== ---- /dev/null -+++ node-v21.7.1/addon-rpm.gypi +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ node-v26.4.0/addon-rpm.gypi 2026-06-29 17:19:24.073367169 +0200 @@ -0,0 +1,35 @@ +{ + 'target_defaults': { @@ -38,11 +45,23 @@ + ] + } +} -Index: node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js +Index: node-v26.4.0/deps/npm/node_modules/node-gyp/addon.gypi =================================================================== ---- 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) { +--- node-v26.4.0.orig/deps/npm/node_modules/node-gyp/addon.gypi 2026-06-24 09:02:33.000000000 +0200 ++++ node-v26.4.0/deps/npm/node_modules/node-gyp/addon.gypi 2026-06-29 17:19:24.074177668 +0200 +@@ -18,6 +18,7 @@ + ], + + 'include_dirs': [ ++ '<(node_root_dir)/include/node26', + '<(node_root_dir)/include/node', + '<(node_root_dir)/src', + '<(node_root_dir)/deps/openssl/config', +Index: node-v26.4.0/deps/npm/node_modules/node-gyp/lib/configure.js +=================================================================== +--- node-v26.4.0.orig/deps/npm/node_modules/node-gyp/lib/configure.js 2026-06-24 09:02:33.000000000 +0200 ++++ node-v26.4.0/deps/npm/node_modules/node-gyp/lib/configure.js 2026-06-29 17:19:24.073735504 +0200 +@@ -62,10 +62,6 @@ if ('v' + release.version !== process.version) { // if --target was given, then determine a target version to compile for log.verbose('get node dir', 'compiling against --target node version: %s', release.version) @@ -53,7 +72,7 @@ if (!release.semver) { // could not parse the version string with semver -@@ -54,6 +50,11 @@ async function configure (gyp, argv) { +@@ -80,6 +76,11 @@ log.verbose('get node dir', 'target node version installed:', release.versionDir) nodeDir = path.resolve(gyp.devDir, release.versionDir) @@ -65,7 +84,7 @@ } return createBuildDir() -@@ -201,8 +203,16 @@ async function configure (gyp, argv) { +@@ -247,8 +248,16 @@ // this logic ported from the old `gyp_addon` python file const gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py') @@ -84,23 +103,11 @@ 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/node26', - '<(node_root_dir)/include/node', - '<(node_root_dir)/src', - '<(node_root_dir)/deps/openssl/config', -Index: node-v21.7.1/tools/build_addons.py +Index: node-v26.4.0/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 +--- node-v26.4.0.orig/tools/build_addons.py 2026-06-24 09:02:39.000000000 +0200 ++++ node-v26.4.0/tools/build_addons.py 2026-06-29 17:19:24.074560279 +0200 +@@ -27,7 +27,7 @@ def rebuild_addons(args): headers_dir = os.path.abspath(args.headers_dir) out_dir = os.path.abspath(args.out_dir) ++++++ node-v26.3.1.tar.xz -> node-v26.4.0.tar.xz ++++++ /work/SRC/openSUSE:Factory/nodejs26/node-v26.3.1.tar.xz /work/SRC/openSUSE:Factory/.nodejs26.new.1982/node-v26.4.0.tar.xz differ: char 26, line 1 ++++++ node_modules.obscpio ++++++ /work/SRC/openSUSE:Factory/nodejs26/node_modules.obscpio /work/SRC/openSUSE:Factory/.nodejs26.new.1982/node_modules.obscpio differ: char 49, line 1 ++++++ nodejs-libpath.patch ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:16.219524923 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:16.227525200 +0200 @@ -1,8 +1,26 @@ -Index: node-v24.12.0/tools/install.py +--- + lib/internal/modules/cjs/loader.js | 2 +- + tools/install.py | 9 +++++++-- + 2 files changed, 8 insertions(+), 3 deletions(-) + +Index: node-v26.4.0/lib/internal/modules/cjs/loader.js +=================================================================== +--- node-v26.4.0.orig/lib/internal/modules/cjs/loader.js 2026-06-24 09:02:38.000000000 +0200 ++++ node-v26.4.0/lib/internal/modules/cjs/loader.js 2026-06-29 17:19:20.275622852 +0200 +@@ -2200,7 +2200,7 @@ + path.resolve(process.execPath, '..') : + path.resolve(process.execPath, '..', '..'); + +- const paths = [path.resolve(prefixDir, 'lib', 'node')]; ++ const paths = ['/usr/lib/node']; + + if (homeDir) { + ArrayPrototypeUnshift(paths, path.resolve(homeDir, '.node_libraries')); +Index: node-v26.4.0/tools/install.py =================================================================== ---- node-v24.12.0.orig/tools/install.py -+++ node-v24.12.0/tools/install.py -@@ -7,6 +7,7 @@ import os +--- node-v26.4.0.orig/tools/install.py 2026-06-24 09:02:39.000000000 +0200 ++++ node-v26.4.0/tools/install.py 2026-06-29 17:19:20.275004906 +0200 +@@ -7,6 +7,7 @@ import platform import shutil import sys @@ -10,7 +28,7 @@ import re current_system = platform.system() -@@ -72,6 +73,10 @@ def try_copy(options, path, dest): +@@ -72,6 +73,10 @@ try_unlink(target_path) # prevent ETXTBSY errors return shutil.copy2(source_path, target_path) @@ -21,7 +39,7 @@ def try_remove(options, path, dest): _source_path, target_path = mkpaths(options, path, dest) if not options.silent: -@@ -88,7 +93,7 @@ def uninstall(options, paths, dest): +@@ -88,7 +93,7 @@ try_remove(options, path, dest) def package_files(options, action, name, bins): @@ -30,7 +48,7 @@ # don't install npm if the target path is a symlink, it probably means # that a dev version of npm is installed there -@@ -109,7 +114,7 @@ def package_files(options, action, name, +@@ -109,7 +114,7 @@ if action == uninstall: action(options, [link_path], os.path.join('bin', bin_name)) elif action == install: @@ -39,17 +57,4 @@ else: assert 0 # unhandled action type -Index: node-v24.12.0/lib/internal/modules/cjs/loader.js -=================================================================== ---- node-v24.12.0.orig/lib/internal/modules/cjs/loader.js -+++ node-v24.12.0/lib/internal/modules/cjs/loader.js -@@ -2001,7 +2001,7 @@ Module._initPaths = function() { - path.resolve(process.execPath, '..') : - path.resolve(process.execPath, '..', '..'); - -- const paths = [path.resolve(prefixDir, 'lib', 'node')]; -+ const paths = ['/usr/lib/node']; - - if (homeDir) { - ArrayPrototypeUnshift(paths, path.resolve(homeDir, '.node_libraries')); ++++++ npm_search_paths.patch ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:16.279526999 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:16.287527276 +0200 @@ -1,8 +1,13 @@ -Index: node-v22.1.0/deps/npm/lib/commands/help-search.js +--- + deps/npm/lib/commands/help-search.js | 2 +- + deps/npm/lib/npm.js | 8 +++++++- + 2 files changed, 8 insertions(+), 2 deletions(-) + +Index: node-v26.4.0/deps/npm/lib/commands/help-search.js =================================================================== ---- node-v22.1.0.orig/deps/npm/lib/commands/help-search.js -+++ node-v22.1.0/deps/npm/lib/commands/help-search.js -@@ -17,7 +17,7 @@ class HelpSearch extends BaseCommand { +--- node-v26.4.0.orig/deps/npm/lib/commands/help-search.js 2026-06-24 09:02:33.000000000 +0200 ++++ node-v26.4.0/deps/npm/lib/commands/help-search.js 2026-06-29 17:19:27.145704549 +0200 +@@ -17,7 +17,7 @@ throw this.usageError() } @@ -11,11 +16,11 @@ let files = await glob(`${globify(docPath)}/*/*.md`) // preserve glob@8 behavior files = files.sort((a, b) => a.localeCompare(b, 'en')) -Index: node-v22.1.0/deps/npm/lib/npm.js +Index: node-v26.4.0/deps/npm/lib/npm.js =================================================================== ---- node-v22.1.0.orig/deps/npm/lib/npm.js -+++ node-v22.1.0/deps/npm/lib/npm.js -@@ -338,7 +338,13 @@ class Npm { +--- node-v26.4.0.orig/deps/npm/lib/npm.js 2026-06-24 09:02:33.000000000 +0200 ++++ node-v26.4.0/deps/npm/lib/npm.js 2026-06-29 17:19:27.146941702 +0200 +@@ -476,7 +476,13 @@ } get globalPrefix () { ++++++ versioned.patch ++++++ --- /var/tmp/diff_new_pack.uQJOwW/_old 2026-07-02 20:16:16.319528383 +0200 +++ /var/tmp/diff_new_pack.uQJOwW/_new 2026-07-02 20:16:16.323528521 +0200 @@ -8,11 +8,21 @@ This is also important for generation of binary modules for multiple versions of NodeJS -Index: node-v26.2.0/Makefile +--- + Makefile | 2 +- + doc/node.1 | 8 ++++---- + node.gyp | 4 ++-- + src/node_main.cc | 1 + + test/parallel/test-snapshot-warning.js | 8 ++++---- + tools/install.py | 30 +++++++++++++++--------------- + tools/test.py | 2 +- + 7 files changed, 28 insertions(+), 27 deletions(-) + +Index: node-v26.4.0/Makefile =================================================================== ---- node-v26.2.0.orig/Makefile -+++ node-v26.2.0/Makefile -@@ -77,7 +77,7 @@ BUILDTYPE_LOWER := $(shell echo $(BUILDT +--- node-v26.4.0.orig/Makefile 2026-06-29 17:19:15.696302706 +0200 ++++ node-v26.4.0/Makefile 2026-06-29 17:19:33.819512691 +0200 +@@ -77,7 +77,7 @@ EXEEXT := $(shell $(PYTHON) -c \ "import sys; print('.exe' if sys.platform == 'win32' else '')") @@ -21,11 +31,112 @@ NODE_G_EXE = node_g$(EXEEXT) NPM ?= ./deps/npm/bin/npm-cli.js -Index: node-v26.2.0/tools/install.py +Index: node-v26.4.0/doc/node.1 +=================================================================== +--- node-v26.4.0.orig/doc/node.1 2026-06-24 09:02:39.000000000 +0200 ++++ node-v26.4.0/doc/node.1 2026-06-29 17:20:55.538396086 +0200 +@@ -10,22 +10,22 @@ + .Dt NODE 1 + . + .Sh NAME +-.Nm node ++.Nm node26 + .Nd server-side JavaScript runtime + . + .Sh SYNOPSIS +-.Nm node ++.Nm node26 + .Op Ar options + .Op Ar v8 options + .Op Ar <program-entry-point> | Fl e Ar string | Fl - + .Op Ar arguments ... + . +-.Nm node ++.Nm node26 + .Cm inspect, + .Op Ar <program-entry-point> | Fl e Ar string | Ar <host>:<port> + .Ar ... + . +-.Nm node ++.Nm node26 + .Op Fl -v8-options + . + .Sh DESCRIPTION +Index: node-v26.4.0/node.gyp +=================================================================== +--- node-v26.4.0.orig/node.gyp 2026-06-24 09:02:38.000000000 +0200 ++++ node-v26.4.0/node.gyp 2026-06-29 17:21:28.974035930 +0200 +@@ -7,12 +7,12 @@ + 'force_dynamic_crt%': 0, + 'node_builtin_modules_path%': '', + # `node` executable target name. +- 'node_core_target_name%': 'node', ++ 'node_core_target_name%': 'node26', + # `libnode` target type, `static_library` if `node_shared` is false and `shared_library` if `node_shared` is true. + 'node_lib_type%': 'static_library', + # `libnode` target name, can be a `static_library` or `shared_library` based on `node_shared`. + # NOTE: Gyp will prefix this with `lib` if this name does not start with `lib`. +- 'node_lib_target_name%': 'libnode', ++ 'node_lib_target_name%': 'libnode26', + 'node_module_version%': '', + 'node_no_browser_globals%': 'false', + 'node_shared_brotli%': 'false', +Index: node-v26.4.0/src/node_main.cc +=================================================================== +--- node-v26.4.0.orig/src/node_main.cc 2026-06-24 09:02:38.000000000 +0200 ++++ node-v26.4.0/src/node_main.cc 2026-06-29 17:19:33.821512133 +0200 +@@ -94,6 +94,7 @@ + // UNIX + + int main(int argc, char* argv[]) { ++ setenv("NODE_VERSION", "26", 0); + return node::Start(argc, argv); + } + #endif +Index: node-v26.4.0/test/parallel/test-snapshot-warning.js +=================================================================== +--- node-v26.4.0.orig/test/parallel/test-snapshot-warning.js 2026-06-24 09:02:39.000000000 +0200 ++++ node-v26.4.0/test/parallel/test-snapshot-warning.js 2026-06-29 17:19:33.822641133 +0200 +@@ -60,7 +60,7 @@ + stderr(output) { + let match = output.match(/Warning: test warning/g); + assert.strictEqual(match.length, 1); +- match = output.match(/Use `node --trace-warnings/g); ++ match = output.match(/Use `node26 --trace-warnings/g); + assert.strictEqual(match.length, 1); + return true; + } +@@ -79,7 +79,7 @@ + // Warnings should not be handled more than once. + let match = output.match(/Warning: test warning/g); + assert.strictEqual(match.length, 1); +- match = output.match(/Use `node --trace-warnings/g); ++ match = output.match(/Use `node26 --trace-warnings/g); + assert.strictEqual(match.length, 1); + return true; + } +@@ -114,7 +114,7 @@ + console.log(warningFile1, ':', warnings1); + let match = warnings1.match(/Warning: test warning/g); + assert.strictEqual(match.length, 1); +- match = warnings1.match(/Use `node --trace-warnings/g); ++ match = warnings1.match(/Use `node26 --trace-warnings/g); + assert.strictEqual(match.length, 1); + fs.rmSync(warningFile1, { + maxRetries: 3, recursive: false, force: true +@@ -140,6 +140,6 @@ + console.log(warningFile2, ':', warnings1); + match = warnings2.match(/Warning: test warning/g); + assert.strictEqual(match.length, 1); +- match = warnings2.match(/Use `node --trace-warnings/g); ++ match = warnings2.match(/Use `node26 --trace-warnings/g); + assert.strictEqual(match.length, 1); + } +Index: node-v26.4.0/tools/install.py =================================================================== ---- node-v26.2.0.orig/tools/install.py -+++ node-v26.2.0/tools/install.py -@@ -93,7 +93,7 @@ def uninstall(options, paths, dest): +--- node-v26.4.0.orig/tools/install.py 2026-06-29 17:19:20.275004906 +0200 ++++ node-v26.4.0/tools/install.py 2026-06-29 17:19:33.820017142 +0200 +@@ -93,7 +93,7 @@ try_remove(options, path, dest) def package_files(options, action, name, bins): @@ -34,7 +145,7 @@ # don't install npm if the target path is a symlink, it probably means # that a dev version of npm is installed there -@@ -114,19 +114,19 @@ def package_files(options, action, name, +@@ -114,19 +114,19 @@ if action == uninstall: action(options, [link_path], os.path.join('bin', bin_name)) elif action == install: @@ -58,7 +169,7 @@ # Not the default just yet: # 'yarn': 'dist/yarn.js', # 'yarnpkg': 'dist/yarn.js', -@@ -155,7 +155,7 @@ def subdir_files(options, path, dest, ac +@@ -155,7 +155,7 @@ action(options, files_in_path, subdir + os.path.sep) def files(options, action): @@ -67,7 +178,7 @@ if options.is_win: node_bin += '.exe' action(options, [os.path.join(options.build_dir, node_bin)], os.path.join('bin', node_bin)) -@@ -206,7 +206,7 @@ def files(options, action): +@@ -206,7 +206,7 @@ if 'openbsd' in sys.platform: action(options, ['doc/node.1'], 'man/man1/') else: @@ -76,7 +187,7 @@ if 'true' == options.variables.get('node_install_npm'): npm_files(options, action) -@@ -350,28 +350,28 @@ def headers(options, action): +@@ -350,28 +350,28 @@ 'src/node_buffer.h', 'src/node_object_wrap.h', 'src/node_version.h', @@ -113,54 +224,11 @@ if sys.platform == 'zos': zoslibinc = os.environ.get('ZOSLIB_INCLUDES') -Index: node-v26.2.0/doc/node.1 +Index: node-v26.4.0/tools/test.py =================================================================== ---- node-v26.2.0.orig/doc/node.1 -+++ node-v26.2.0/doc/node.1 -@@ -27,22 +27,22 @@ - .Dt NODE 1 - . - .Sh NAME --.Nm node -+.Nm node26 - .Nd server-side JavaScript runtime - . - .Sh SYNOPSIS --.Nm node -+.Nm node26 - .Op Ar options - .Op Ar v8 options - .Op Ar <program-entry-point> | Fl e Ar string | Fl - - .Op Ar arguments ... - . --.Nm node -+.Nm node26 - .Cm inspect - .Op Ar <program-entry-point> | Fl e Ar string | Ar <host>:<port> - .Ar ... - . --.Nm node -+.Nm node26 - .Op Fl -v8-options - . - .Sh DESCRIPTION -Index: node-v26.2.0/src/node_main.cc -=================================================================== ---- node-v26.2.0.orig/src/node_main.cc -+++ node-v26.2.0/src/node_main.cc -@@ -94,6 +94,7 @@ int wmain(int argc, wchar_t* wargv[]) { - // UNIX - - int main(int argc, char* argv[]) { -+ setenv("NODE_VERSION", "26", 0); - return node::Start(argc, argv); - } - #endif -Index: node-v26.2.0/tools/test.py -=================================================================== ---- node-v26.2.0.orig/tools/test.py -+++ node-v26.2.0/tools/test.py -@@ -986,7 +986,7 @@ class Context(object): +--- node-v26.4.0.orig/tools/test.py 2026-06-29 17:19:29.840074939 +0200 ++++ node-v26.4.0/tools/test.py 2026-06-29 17:19:33.821748629 +0200 +@@ -986,7 +986,7 @@ if self.vm is not None: return self.vm if arch == 'none': @@ -169,60 +237,4 @@ else: name = 'out/%s.%s/node' % (arch, mode) -Index: node-v26.2.0/node.gyp -=================================================================== ---- node-v26.2.0.orig/node.gyp -+++ node-v26.2.0/node.gyp -@@ -6,10 +6,10 @@ - 'v8_enable_31bit_smis_on_64bit_arch%': 0, - 'force_dynamic_crt%': 0, - 'node_builtin_modules_path%': '', -- 'node_core_target_name%': 'node', -+ 'node_core_target_name%': 'node26', - 'node_enable_v8_vtunejit%': 'false', - 'node_intermediate_lib_type%': 'static_library', -- 'node_lib_target_name%': 'libnode', -+ 'node_lib_target_name%': 'libnode26', - 'node_module_version%': '', - 'node_no_browser_globals%': 'false', - 'node_shared_brotli%': 'false', -Index: node-v26.2.0/test/parallel/test-snapshot-warning.js -=================================================================== ---- node-v26.2.0.orig/test/parallel/test-snapshot-warning.js -+++ node-v26.2.0/test/parallel/test-snapshot-warning.js -@@ -60,7 +60,7 @@ tmpdir.refresh(); - stderr(output) { - let match = output.match(/Warning: test warning/g); - assert.strictEqual(match.length, 1); -- match = output.match(/Use `node --trace-warnings/g); -+ match = output.match(/Use `node26 --trace-warnings/g); - assert.strictEqual(match.length, 1); - return true; - } -@@ -79,7 +79,7 @@ tmpdir.refresh(); - // Warnings should not be handled more than once. - let match = output.match(/Warning: test warning/g); - assert.strictEqual(match.length, 1); -- match = output.match(/Use `node --trace-warnings/g); -+ match = output.match(/Use `node26 --trace-warnings/g); - assert.strictEqual(match.length, 1); - return true; - } -@@ -114,7 +114,7 @@ tmpdir.refresh(); - console.log(warningFile1, ':', warnings1); - let match = warnings1.match(/Warning: test warning/g); - assert.strictEqual(match.length, 1); -- match = warnings1.match(/Use `node --trace-warnings/g); -+ match = warnings1.match(/Use `node26 --trace-warnings/g); - assert.strictEqual(match.length, 1); - fs.rmSync(warningFile1, { - maxRetries: 3, recursive: false, force: true -@@ -140,6 +140,6 @@ tmpdir.refresh(); - console.log(warningFile2, ':', warnings1); - match = warnings2.match(/Warning: test warning/g); - assert.strictEqual(match.length, 1); -- match = warnings2.match(/Use `node --trace-warnings/g); -+ match = warnings2.match(/Use `node26 --trace-warnings/g); - assert.strictEqual(match.length, 1); - }
