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);
- }
 

Reply via email to