Accepting request 1126795 from devel:languages:nodejs

- Update to 21.2.0
  * esm: add import.meta.dirname and import.meta.filename
  * fs: add stacktrace to fs/promises
  * lib:
    +  add --no-experimental-global-navigator CLI flag
    +  add navigator.language & navigator.languages
    +  add navigator.platform
  * stream:
    + add support for deflate-raw format to webstreams compression
    + use Array for Readable buffer
    + optimize creation
  * test_runner:
    + adds built in lcov reporter
    + test_runner: add Date to the supported mock APIs
    + test_runner, cli: add --test-timeout flag
For details see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V21.md#21.2.0
- nodejs20-zlib-1.3.patch: upstreamed, dropped
- node-gyp-addon-gypi.patch: rebased
- fix_ci_tests.patch: partially upstreamed

OBS-URL: https://build.opensuse.org/request/show/1126795
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/nodejs21?expand=0&rev=2
This commit is contained in:
Ana Guerrero 2023-11-17 19:48:15 +00:00 committed by Git OBS Bridge
commit b8ebd289d7
9 changed files with 169 additions and 209 deletions

View File

@ -1,41 +1,41 @@
691672195af440401e4957d9d5e148d361e686aa26c9e529505edf89bab4b089 node-v21.1.0-aix-ppc64.tar.gz
75f28378c09fba7c5ecd6add07ac64f4983f23a847987e0a2097d753b0dcb30c node-v21.1.0-arm64.msi
4872463830381785b91d13a7fbb9b6f4a9c7658e10d964f6c421951cec8833ad node-v21.1.0-darwin-arm64.tar.gz
ecd3f51874892a8a56abf4b96424236647f26f64da6139a930557c044c48f73b node-v21.1.0-darwin-arm64.tar.xz
6b526c08320fcf41ced0ceee7588828ea2cb07ba826af4ff82b0ec53958fd8a4 node-v21.1.0-darwin-x64.tar.gz
f33382175ab49d0c9bd176401e746a041db1c7c31c85b7b91344e188945c3ba1 node-v21.1.0-darwin-x64.tar.xz
ceb2ecd7ed6049778403c0baa49844ba9495c1218b55bb73dea42a87e6a57253 node-v21.1.0-headers.tar.gz
c1ab3d18209f1331b9f14cdea0aeb2f7fdce4583aceee001856a42e44cfe1b35 node-v21.1.0-headers.tar.xz
5480f438703049f55f19fc3247f6aa1e8059b2f47cf08e9adfdcb7ce7aedff70 node-v21.1.0-linux-arm64.tar.gz
ff487ad68d898a6eebbf02e15fe5c5a885991828732163501fdf21af7a7bef36 node-v21.1.0-linux-arm64.tar.xz
0d51fe055599c17b2e3389d15868d4fd5ca07b408f8c15c325874595310a9382 node-v21.1.0-linux-armv7l.tar.gz
a8de516f50e6f4a7325d115a7cf398ac15440d495672f5d0118296b5d593fee9 node-v21.1.0-linux-armv7l.tar.xz
ed90f74545cd44474bbb947544679d3dfb44403200f7d2faa49402bebf26e52f node-v21.1.0-linux-ppc64le.tar.gz
8c932a1259291e8db9874981886d17993ab82ecf1ecaeda2c102b5f44ef94593 node-v21.1.0-linux-ppc64le.tar.xz
b45b87d21dada54999ef8d80957a6e700d0d29dd1b7f23502223c4a67d9d0a10 node-v21.1.0-linux-s390x.tar.gz
a8d04ae7a2b401e469a2c7e1e579d985126d3ec1a024bcc5220a059fcf861c17 node-v21.1.0-linux-s390x.tar.xz
b919cad4e8a5abbd7e6a4433c4f8a7cdc1a78c1e526c6c1aa4a5fcf74011ad2b node-v21.1.0-linux-x64.tar.gz
6a1020b5605ba4b4a89b08147e5fd124bd9d1fd5bfe5301fe0567af67bf0e335 node-v21.1.0-linux-x64.tar.xz
5fcb23725fa760ebe059cc5d957e9214f22ba623b20ee20301089a89d33bc06f node-v21.1.0.pkg
86e2fbfa8a9977656a82bb1a15208e7d45bd7a05dec331d0abf6fcf938a97cc3 node-v21.1.0.tar.gz
91ac72e4444c5e5ab4b448030a61ffa95acd35d34a9d31d2d220ee2bed01b925 node-v21.1.0.tar.xz
8a0f2c3abea32eb1706772d741ed8ea05de8f0b170561b37088cb2412de5cb2b node-v21.1.0-win-arm64.7z
fe660ef5ff0a1cf09207a1d83dbac5cfa0495870717aa397b584ce0c3e5cfcfb node-v21.1.0-win-arm64.zip
20ad766d8576e0c651dcbd6cbafaf803a51110613304224820c38936858af774 node-v21.1.0-win-x64.7z
6ee3e74ecceb27f388d75a94d6782df670bad37a4d10ff2d28a7c7bcb75bdb49 node-v21.1.0-win-x64.zip
3247272d574287ea798a34bd5a393671d44d0f608434f06eb97696754ee0257f node-v21.1.0-win-x86.7z
d4c3834a00cf0d74ca80d5e9992acb98f7d703293a18eb1716d596148ff855a8 node-v21.1.0-win-x86.zip
9890aaf7b9387a6d15890735b8facfe9eb072aebfd30e38cbeaf3426a1eabdc0 node-v21.1.0-x64.msi
53f8248e82282552f9fe5709a771801c4adb174f6dc35e2610077edc758d2bcf node-v21.1.0-x86.msi
69d61ca95c2a81f2a8f535446a2bfdd8b905d1b1783d18ae82b92017a637ab61 win-arm64/node.exe
fbe1a66068e0ca1900d9795e3b8da027c62073062f78040d453aed9d86189001 node-v21.2.0-aix-ppc64.tar.gz
787c0692ece8182e1da728bb740e05aae2c7240d8cb913c5755859a12ce49a5e node-v21.2.0-arm64.msi
e085e9e695a5fc715c24d0d2ee73a2cebfc2a2b456a28b58f31077609591f4a0 node-v21.2.0-darwin-arm64.tar.gz
9d63f505d2cbeadd55c8bb77a9d1b347d373fa524881fcce658fa0219f872588 node-v21.2.0-darwin-arm64.tar.xz
ff6483bdf4f9817d9915f5fdf1b9154c7689f47ef310eac5ab3c40f6a6e4b700 node-v21.2.0-darwin-x64.tar.gz
85bd145cbe462e9d5fd7a136deb03e8fcc4a008f05e81c70fd23dfcc932c5e2b node-v21.2.0-darwin-x64.tar.xz
14375ca00bff112be41d6f1d5c9f8e693f7f530b44dbeea2a61daea5a2dcefa3 node-v21.2.0-headers.tar.gz
92ea7cc1bac61b1375a6d4aeb94b6ed454f6ddb481af4efaf359cb6a09b3ccc4 node-v21.2.0-headers.tar.xz
d202d583e5cf3b0a8ba4f8e242467fd7bdea57c94a81c63cfa78aa224bdec7e1 node-v21.2.0-linux-arm64.tar.gz
14130fcfa4a34460627a192e116d0fa74017080e7b8e7222a36cbe4ecb78a9af node-v21.2.0-linux-arm64.tar.xz
ed8364dc4a43f9d5f4ab407d3ad5fa6469f89417b6d8a62ad3611677b2b0d7a0 node-v21.2.0-linux-armv7l.tar.gz
062bd75ac1334223417816ae1147aa89bda9f96101bdf4df0e2bc24d14893f6c node-v21.2.0-linux-armv7l.tar.xz
43b157d3d7ddf6cdc9097f1e3d2cb6e271ea749807d07465c3cc52abf24e0252 node-v21.2.0-linux-ppc64le.tar.gz
f9e0059cf70b3245baa316fa49068bcfefbbabd4ed46da482540658729ce2ce0 node-v21.2.0-linux-ppc64le.tar.xz
e27b04945661a8319ad5ce2ee6b1bad1188a6f70f10029d1a9ae4d8a74d55ea7 node-v21.2.0-linux-s390x.tar.gz
01ba9ea65acec0fa7b42303839a62da71438ea6326e27e3207c32941d79c294f node-v21.2.0-linux-s390x.tar.xz
2600d1103d9963ca194aa52b5610ea28f1e4c2df81e525799fba9b7b530c6e54 node-v21.2.0-linux-x64.tar.gz
828da17da3278ff7a0c89b176f1945259808939ce6b713254dc9e9a67a51e307 node-v21.2.0-linux-x64.tar.xz
0eaf9b337339b78a25dc3671b802684a267c58c081f8bec14e13b34aa50d614b node-v21.2.0.pkg
ce5e44838a18d96a8e5d2e835e38785c885acbcfc661d59ff0454298c716e8d6 node-v21.2.0.tar.gz
d57c9cea394764fa1d9af51e52c7449f71193e9d44c4a81fbedec653ec827707 node-v21.2.0.tar.xz
e94a6a0d041be5b4e5ea1a8b529ec180bec012fe7ff34d5e2bd2c8db99026926 node-v21.2.0-win-arm64.7z
fe94b0afe65795f43f136884b785b386364e5987006c848bd8126d72c16f5517 node-v21.2.0-win-arm64.zip
1e3a43166133c752a0fd0b2bc3709145cfc004f7f7c31e1877326e93ceaeeb4c node-v21.2.0-win-x64.7z
718cf5e6264026b40b26fd6aa7cb54ca95866a202b9555f643556aea9ce73adb node-v21.2.0-win-x64.zip
dc31d74348d73bb3013827bf8f1848029bbc05036f4f5907d31a574502b60d3b node-v21.2.0-win-x86.7z
0eb9ee7c2df90a3d4db54ed16f2c96b85dc86eddb24ee0aade7e635078f0cb32 node-v21.2.0-win-x86.zip
4d91b9e830054d447418ea3d2bce5dc445f593d4c8a66694fb34191a4cea1e57 node-v21.2.0-x64.msi
f3ac006fa46ee4c64e42a607c7f6ba5b66a48f4d78b306e27c8e31dc6a394417 node-v21.2.0-x86.msi
91667a7578ad7c30ab5218c98dba4f4e814ea806775b9be2a1ecd7af9e87eaf5 win-arm64/node.exe
aa149ab68ccab472beea201d39283390547c8e0a12b099797a0cfb6d9ffefb7b win-arm64/node.lib
085701532872fa03f7c29148b6b880245a765ee5f2c51593fc97a848730f9a57 win-arm64/node_pdb.7z
97580ce603887840a19f314a7eeaede4e18b72de0dfda060ea5ac4e747fc6465 win-arm64/node_pdb.zip
1cbbd083f79c51c6ca4d3ccffc944895d4e04e182849fd49855d93b66c0bb411 win-x64/node.exe
1d56ecf7649df7e4846fc013c0e0c00d5f16ef82c20d004ab3044249dad7580f win-arm64/node_pdb.7z
e995543912c081c14403c082b6d95975bb7f259be75a0248f2bcb03bcea4021c win-arm64/node_pdb.zip
74a391b0a9429bf0f5f0afb80d21dbcd93ccd8da2841644b4b253fb1d2b242a2 win-x64/node.exe
2f88106acb54a105e7beda077ab9eda04d98c202db9c1477ea48d7dd9e58151a win-x64/node.lib
f100227a3a7351c7340ef440a6b7dc2a4c2ab9786d0d3f8f603fb5658c423946 win-x64/node_pdb.7z
7b29f3242e0eaffb8990d8cd375a6a9d48079708e3dbc676c7a30d67895e052f win-x64/node_pdb.zip
2374196fac3d6b3611a411a6c413f1a78f47e47f7d5a86e861e774bf8203bc10 win-x86/node.exe
65896cfbaa4ea12534a15ba35d96f06a5e10786eb8b2714005d691a99acb10d4 win-x64/node_pdb.7z
f22a5c10cdc45cb37cf191a607a6829a7fb22dd2dece54101f67ac8b658d4563 win-x64/node_pdb.zip
41ec18166b1ef9dc6bc488d10829052d0861ba440e38ba906c741df983855230 win-x86/node.exe
6825637ae988424a72f049ba92264be2956881875ee264cb71441bfbff5bcd85 win-x86/node.lib
842afb550c8821b82a1136dc29a3d0a0c862a045bea2c9940148569305a867c3 win-x86/node_pdb.7z
3e5357d128e79924866b1ed039458f43af377676c2d3b0fbba751986be14a833 win-x86/node_pdb.zip
862b9cb0e86cfcb2438eeb45134c2def8bb8a4980392d2470d56434e3e6345a3 win-x86/node_pdb.7z
664b62eaf1f34c4a482f5e1de26a52a98fe0bf05390d1b2a3ab58a943bcb6b15 win-x86/node_pdb.zip

Binary file not shown.

View File

@ -2,10 +2,10 @@ Author: Adam Majer <amajer@suse.de>
Date: Dec 20 09:18:49 UTC 2017
Summary: Fix CI unit tests framework for OBS building
Index: node-v20.8.1/test/parallel/test-module-loading-globalpaths.js
Index: node-v21.2.0/test/parallel/test-module-loading-globalpaths.js
===================================================================
--- node-v20.8.1.orig/test/parallel/test-module-loading-globalpaths.js
+++ node-v20.8.1/test/parallel/test-module-loading-globalpaths.js
--- node-v21.2.0.orig/test/parallel/test-module-loading-globalpaths.js
+++ node-v21.2.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.8.1/test/parallel/test-module-loading-globalpaths.js
if (process.argv[2] === 'child') {
console.log(require(pkgName).string);
} else {
Index: node-v20.8.1/test/parallel/test-tls-passphrase.js
Index: node-v21.2.0/test/parallel/test-tls-passphrase.js
===================================================================
--- node-v20.8.1.orig/test/parallel/test-tls-passphrase.js
+++ node-v20.8.1/test/parallel/test-tls-passphrase.js
--- node-v21.2.0.orig/test/parallel/test-tls-passphrase.js
+++ node-v21.2.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.8.1/test/parallel/test-tls-passphrase.js
// Missing passphrase
assert.throws(function() {
Index: node-v20.8.1/test/parallel/test-repl-envvars.js
Index: node-v21.2.0/test/parallel/test-repl-envvars.js
===================================================================
--- node-v20.8.1.orig/test/parallel/test-repl-envvars.js
+++ node-v20.8.1/test/parallel/test-repl-envvars.js
--- node-v21.2.0.orig/test/parallel/test-repl-envvars.js
+++ node-v21.2.0/test/parallel/test-repl-envvars.js
@@ -2,7 +2,9 @@
// Flags: --expose-internals
@ -44,10 +44,10 @@ Index: node-v20.8.1/test/parallel/test-repl-envvars.js
const stream = require('stream');
const { describe, test } = require('node:test');
const REPL = require('internal/repl');
Index: node-v20.8.1/Makefile
Index: node-v21.2.0/Makefile
===================================================================
--- node-v20.8.1.orig/Makefile
+++ node-v20.8.1/Makefile
--- node-v21.2.0.orig/Makefile
+++ node-v21.2.0/Makefile
@@ -545,7 +545,8 @@ test-ci-js: | clear-stalled
.PHONY: test-ci
# Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned
@ -68,11 +68,11 @@ Index: node-v20.8.1/Makefile
echo "Skipping tools/doc/node_modules (no crypto)"; \
else \
cd tools/doc && $(call available-node,$(run-npm-ci)) \
Index: node-v20.8.1/tools/test.py
Index: node-v21.2.0/tools/test.py
===================================================================
--- node-v20.8.1.orig/tools/test.py
+++ node-v20.8.1/tools/test.py
@@ -1361,7 +1361,7 @@ def BuildOptions():
--- node-v21.2.0.orig/tools/test.py
+++ node-v21.2.0/tools/test.py
@@ -1362,7 +1362,7 @@ def BuildOptions():
result.add_option("-s", "--suite", help="A test suite",
default=[], action="append")
result.add_option("-t", "--timeout", help="Timeout in seconds",
@ -81,18 +81,3 @@ Index: node-v20.8.1/tools/test.py
result.add_option("--arch", help='The architecture to run tests for',
default='none')
result.add_option("--snapshot", help="Run the tests with snapshot turned on",
Index: node-v20.8.1/test/parallel/test-crypto-dh.js
===================================================================
--- node-v20.8.1.orig/test/parallel/test-crypto-dh.js
+++ node-v20.8.1/test/parallel/test-crypto-dh.js
@@ -87,9 +87,7 @@ const crypto = require('crypto');
assert.throws(() => {
dh3.computeSecret('');
- }, { message: common.hasOpenSSL3 ?
- 'error:02800080:Diffie-Hellman routines::invalid secret' :
- 'Supplied key is too small' });
+ }, /(error:02800080:Diffie-Hellman routines::invalid secret|error:05066066:Diffie-Hellman routines:compute_key:invalid public key|Supplied key is too small)/);
}
// Through a fluke of history, g=0 defaults to DH_GENERATOR (2).

View File

@ -1,7 +1,7 @@
Index: node-git.b4f0a18b5a/addon-rpm.gypi
Index: node-v21.2.0/addon-rpm.gypi
===================================================================
--- /dev/null
+++ node-git.b4f0a18b5a/addon-rpm.gypi
+++ node-v21.2.0/addon-rpm.gypi
@@ -0,0 +1,35 @@
+{
+ 'target_defaults': {
@ -38,42 +38,51 @@ Index: node-git.b4f0a18b5a/addon-rpm.gypi
+ ]
+ }
+}
Index: node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
Index: node-v21.2.0/deps/npm/node_modules/node-gyp/lib/configure.js
===================================================================
--- node-git.b4f0a18b5a.orig/deps/npm/node_modules/node-gyp/lib/configure.js
+++ node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -46,10 +46,6 @@ function configure (gyp, argv, callback)
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)
--- node-v21.2.0.orig/deps/npm/node_modules/node-gyp/lib/configure.js
+++ node-v21.2.0/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -32,28 +32,11 @@ async function configure (gyp, argv) {
nodeDir = gyp.opts.nodedir.replace(/^~/, os.homedir())
log.verbose('get node dir', 'compiling against specified --nodedir dev files: %s', nodeDir)
} else {
- // if no --nodedir specified, ensure node dependencies are installed
- 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)
- } else {
- // if no --target was specified then use the current host node version
- log.verbose('get node dir', 'no --target version specified, falling back to host node version: %s', release.version)
- }
if (!release.semver) {
// could not parse the version string with semver
@@ -68,6 +64,12 @@ function configure (gyp, argv, callback)
nodeDir = path.resolve(gyp.devDir, release.versionDir)
createBuildDir()
})
+ } else {
-
- if (!release.semver) {
- // could not parse the version string with semver
- throw new Error('Invalid version number: ' + release.version)
- }
-
- // If the tarball option is set, always remove and reinstall the headers
- // into devdir. Otherwise only install if they're not already there.
- gyp.opts.ensure = !gyp.opts.tarball
-
- await gyp.commands.install([release.version])
-
- log.verbose('get node dir', 'target node version installed:', release.versionDir)
- nodeDir = path.resolve(gyp.devDir, release.versionDir)
+ // if no --target was specified then use RPM-installed headers
+ log.verbose('get node dir', 'no --target version specified, falling back to RPM installed headers')
+ nodeDir = '/usr/include/node21'
+ createBuildDir()
+ }
+
}
}
@@ -282,7 +284,9 @@ function configure (gyp, argv, callback)
return createBuildDir()
@@ -201,7 +184,8 @@ async function configure (gyp, argv) {
// this logic ported from the old `gyp_addon` python file
var gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- var addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
+ var addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi'
+
+ var addonGypi = path.resolve(__dirname, '..', addon_gypi_file)
var commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
fs.stat(commonGypi, function (err) {
if (err) {
const gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- const addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
+ const addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi'
+ let addonGypi = path.resolve(__dirname, '..', addon_gypi_file)
let commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
try {
await fs.stat(commonGypi)

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:91ac72e4444c5e5ab4b448030a61ffa95acd35d34a9d31d2d220ee2bed01b925
size 42651096

3
node-v21.2.0.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d57c9cea394764fa1d9af51e52c7449f71193e9d44c4a81fbedec653ec827707
size 42642416

View File

@ -1,13 +0,0 @@
Index: node-v20.8.1/test/parallel/test-process-versions.js
===================================================================
--- node-v20.8.1.orig/test/parallel/test-process-versions.js
+++ node-v20.8.1/test/parallel/test-process-versions.js
@@ -61,7 +61,7 @@ assert.match(process.versions.brotli, co
assert.match(process.versions.llhttp, commonTemplate);
assert.match(process.versions.node, commonTemplate);
assert.match(process.versions.uv, commonTemplate);
-assert.match(process.versions.zlib, /^\d+(?:\.\d+){2,3}(?:-.*)?$/);
+assert.match(process.versions.zlib, /^\d+(?:\.\d+){1,3}(?:-.*)?$/);
if (hasUndici) {
assert.match(process.versions.undici, commonTemplate);

View File

@ -1,3 +1,29 @@
-------------------------------------------------------------------
Wed Nov 15 15:18:00 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to 21.2.0
* esm: add import.meta.dirname and import.meta.filename
* fs: add stacktrace to fs/promises
* lib:
+ add --no-experimental-global-navigator CLI flag
+ add navigator.language & navigator.languages
+ add navigator.platform
* stream:
+ add support for deflate-raw format to webstreams compression
+ use Array for Readable buffer
+ optimize creation
* test_runner:
+ adds built in lcov reporter
+ test_runner: add Date to the supported mock APIs
+ test_runner, cli: add --test-timeout flag
For details see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V21.md#21.2.0
- nodejs20-zlib-1.3.patch: upstreamed, dropped
- node-gyp-addon-gypi.patch: rebased
- fix_ci_tests.patch: partially upstreamed
-------------------------------------------------------------------
Tue Nov 7 09:18:37 UTC 2023 - Adam Majer <adam.majer@suse.de>

View File

@ -1,7 +1,7 @@
#
# spec file for package nodejs21
#
# Copyright (c) 2022 SUSE LLC
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -15,23 +15,13 @@
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
###########################################################
#
# WARNING! WARNING! WARNING! WARNING! WARNING! WARNING!
#
# This spec file is generated from a template hosted at
# https://github.com/AdamMajer/nodejs-packaging
#
###########################################################
# Fedora doesn't have rpm-config-SUSE which provides
# ext_man in /usr/lib/rpm/macros.d/macros.obs
%if 0%{?fedora_version}
%define ext_man .gz
%endif
Name: nodejs21
Version: 21.1.0
Version: 21.2.0
Release: 0
# Double DWZ memory limits
@ -129,12 +119,12 @@ Source1: https://nodejs.org/dist/v%{version}/SHASUMS256.txt
Source2: https://nodejs.org/dist/v%{version}/SHASUMS256.txt.sig
Source3: nodejs.keyring
# Python 3.4 compatible node-gyp
### https://github.com/nodejs/node-gyp.git
### git archive v7.1.2 | xz > node-gyp_7.1.2.tar.xz
Source5: node-gyp_7.1.2.tar.xz
# Only required to run unit tests in NodeJS 10+
Source10: update_npm_tarball.sh
# Python 3.4 compatible node-gyp
### https://github.com/nodejs/node-gyp.git
### git archive v7.1.2 | xz > node-gyp_7.1.2.tar.xz
Source5: node-gyp_7.1.2.tar.xz
# Only required to run unit tests in NodeJS 10+
Source10: update_npm_tarball.sh
Source11: node_modules.tar.xz
Source20: bash_output_helper.bash
@ -145,8 +135,6 @@ Patch5: sle12_python3_compat.patch
Patch7: manual_configure.patch
Patch13: openssl_binary_detection.patch
## Patches specific to SUSE and openSUSE
Patch100: linker_lto_jobs.patch
# PATCH-FIX-OPENSUSE -- set correct path for dtrace if it is built
@ -172,10 +160,9 @@ Patch200: versioned.patch
Patch305: qemu_timeouts_arches.patch
Patch308: node-gyp-config.patch
Patch309: gcc13.patch
Patch311: nodejs20-zlib-1.3.patch
BuildRequires: pkg-config
BuildRequires: fdupes
BuildRequires: pkg-config
BuildRequires: procps
BuildRequires: xz
BuildRequires: zlib-devel
@ -195,10 +182,10 @@ BuildRequires: config(netcfg)
%if 0%{?suse_version} == 1110
# GCC 5 is only available in the SUSE:SLE-11:SP4:Update repository (SDK).
%if %node_version_number >= 8
BuildRequires: gcc5-c++
BuildRequires: gcc5-c++
%define forced_gcc_version 5
%else
BuildRequires: gcc48-c++
BuildRequires: gcc48-c++
%define forced_gcc_version 4.8
%endif
%endif
@ -208,15 +195,15 @@ BuildRequires: gcc48-c++
# for SLE-12:Update targets
%if 0%{?suse_version} == 1315
%if %node_version_number >= 17
BuildRequires: gcc12-c++
BuildRequires: gcc12-c++
%define forced_gcc_version 12
%else
%if %node_version_number >= 14
BuildRequires: gcc9-c++
BuildRequires: gcc9-c++
%define forced_gcc_version 9
%else
%if %node_version_number >= 8
BuildRequires: gcc7-c++
BuildRequires: gcc7-c++
%define forced_gcc_version 7
%endif
%endif
@ -225,7 +212,7 @@ BuildRequires: gcc7-c++
%if 0%{?suse_version} == 1500
%if %node_version_number >= 17
BuildRequires: gcc12-c++
BuildRequires: gcc12-c++
%define forced_gcc_version 12
%endif
%endif
@ -236,7 +223,6 @@ BuildRequires: gcc12-c++
BuildRequires: gcc-c++
%endif
# Python dependencies
%if %node_version_number >= 14
@ -262,8 +248,8 @@ BuildRequires: python
%endif
%if 0%{?suse_version} >= 1500 && %{node_version_number} >= 10
BuildRequires: user(nobody)
BuildRequires: group(nobody)
BuildRequires: user(nobody)
%endif
# shared openssl
@ -278,11 +264,10 @@ BuildRequires: openssl >= %{openssl_req_ver}
BuildRequires: (libopenssl1_1-hmac if libopenssl-1_1-devel)
BuildRequires: (libopenssl3-hmac if libopenssl-3-devel)
%else
BuildRequires: openssl-1_1 >= %{openssl_req_ver}
BuildRequires: libopenssl1_1-hmac
BuildRequires: openssl-1_1 >= %{openssl_req_ver}
%endif
# /suse_version
%endif
@ -293,7 +278,7 @@ BuildRequires: openssl >= %{openssl_req_ver}
%else
# bundled openssl
%if %node_version_number <= 12 && 0%{?suse_version} == 1315 && 0%{?sle_version} < 120400
Provides: bundled(openssl) = 3.0.10
Provides: bundled(openssl) = 3.0.12
%else
BuildRequires: bundled_openssl_should_not_be_required
%endif
@ -316,7 +301,7 @@ Provides: bundled(icu) = 73.2
%if ! 0%{with intree_nghttp2}
BuildRequires: libnghttp2-devel >= 1.41.0
%else
Provides: bundled(nghttp2) = 1.57.0
Provides: bundled(nghttp2) = 1.58.0
%endif
%if 0%{with valgrind_tests}
@ -326,7 +311,7 @@ BuildRequires: valgrind
%if %{with libalternatives}
Suggests: alts
%else
Requires(postun): %{_sbindir}/update-alternatives
Requires(postun):%{_sbindir}/update-alternatives
%endif
# either for update-alternatives, or their removal
Requires(post): %{_sbindir}/update-alternatives
@ -365,32 +350,31 @@ ExclusiveArch: not_buildable
%endif
%endif
Provides: bundled(uvwasi) = 0.0.19
Provides: bundled(libuv) = 1.46.0
Provides: bundled(v8) = 11.8.172.15
Provides: bundled(uvwasi) = 0.0.19
Provides: bundled(v8) = 11.8.172.17
%if %{with intree_brotli}
Provides: bundled(brotli) = 1.0.9
%else
BuildRequires: pkgconfig(libbrotlidec)
%endif
Provides: bundled(llhttp) = 9.1.2
Provides: bundled(base64) = 0.5.1
Provides: bundled(llhttp) = 9.1.3
Provides: bundled(ngtcp2) = 0.8.1
Provides: bundled(base64) = 0.5.0
Provides: bundled(simdutf) = 3.2.18
# bundled url-ada parser, not ada
Provides: bundled(ada) = 2.7.2
Provides: bundled(node-@fastify/busboy) = 2.0.0
Provides: bundled(node-acorn) = 8.10.0
Provides: bundled(node-acorn) = 8.11.2
Provides: bundled(node-acorn-walk) = 8.2.0
Provides: bundled(node-balanced-match) = 1.0.2
Provides: bundled(node-brace-expansion) = 2.0.1
Provides: bundled(node-cjs-module-lexer) = 1.2.2
Provides: bundled(node-corepack) = 0.22.0
Provides: bundled(node-corepack) = 0.23.0
Provides: bundled(node-minimatch) = 9.0.3
Provides: bundled(node-undici) = 5.26.4
Provides: bundled(node-undici) = 5.27.0
%description
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js
@ -401,8 +385,8 @@ provided by npm.
Summary: Development headers for NodeJS 21.x
Group: Development/Languages/NodeJS
Provides: nodejs-devel = %{version}
Requires: npm21 = %{version}
Requires: %{name} = %{version}
Requires: npm21 = %{version}
%description devel
This package provides development headers for Node.js needed for creation
@ -419,20 +403,17 @@ Requires: nodejs-common
Requires: nodejs21 = %{version}
Provides: nodejs-npm = %{version}
Obsoletes: nodejs-npm < 4.0.0
Provides: npm(npm) = 10.2.0
Provides: npm = %{version}
Provides: npm(npm) = 10.2.3
%if 0%{?suse_version} >= 1500
%if %{node_version_number} >= 10
Requires: user(nobody)
Requires: group(nobody)
Requires: user(nobody)
%endif
%endif
Provides: bundled(node-abbrev) = 1.1.1
Provides: bundled(node-abbrev) = 2.0.0
Provides: bundled(node-abort-controller) = 3.0.0
Provides: bundled(node-agent-base) = 6.0.2
Provides: bundled(node-agent-base) = 7.1.0
Provides: bundled(node-agentkeepalive) = 4.5.0
Provides: bundled(node-aggregate-error) = 3.1.0
Provides: bundled(node-ansi-regex) = 5.0.1
Provides: bundled(node-ansi-regex) = 6.0.1
@ -440,33 +421,29 @@ 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) = 3.0.1
Provides: bundled(node-are-we-there-yet) = 4.0.0
Provides: bundled(node-are-we-there-yet) = 4.0.1
Provides: bundled(node-balanced-match) = 1.0.2
Provides: bundled(node-base64-js) = 1.5.1
Provides: bundled(node-bin-links) = 4.0.2
Provides: bundled(node-bin-links) = 4.0.3
Provides: bundled(node-binary-extensions) = 2.2.0
Provides: bundled(node-brace-expansion) = 1.1.11
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) = 17.1.4
Provides: bundled(node-cacache) = 18.0.0
Provides: bundled(node-chalk) = 5.3.0
Provides: bundled(node-chownr) = 2.0.0
Provides: bundled(node-ci-info) = 3.8.0
Provides: bundled(node-ci-info) = 3.9.0
Provides: bundled(node-cidr-regex) = 3.1.1
Provides: bundled(node-clean-stack) = 2.2.0
Provides: bundled(node-cli-columns) = 4.0.0
Provides: bundled(node-cli-table3) = 0.6.3
Provides: bundled(node-clone) = 1.0.4
Provides: bundled(node-cmd-shim) = 6.0.1
Provides: bundled(node-cmd-shim) = 6.0.2
Provides: bundled(node-color-convert) = 2.0.1
Provides: bundled(node-color-name) = 1.1.4
Provides: bundled(node-color-support) = 1.1.3
Provides: bundled(node-columnify) = 1.6.0
Provides: bundled(node-common-ancestor-path) = 1.0.1
Provides: bundled(node-concat-map) = 0.0.1
Provides: bundled(node-console-control-strings) = 1.1.0
Provides: bundled(node-cross-spawn) = 7.0.3
Provides: bundled(node-cssesc) = 3.0.0
@ -487,36 +464,27 @@ Provides: bundled(node-fastest-levenshtein) = 1.0.16
Provides: bundled(node-foreground-child) = 3.1.1
Provides: bundled(node-fs-minipass) = 2.1.0
Provides: bundled(node-fs-minipass) = 3.0.3
Provides: bundled(node-fs.realpath) = 1.0.0
Provides: bundled(node-function-bind) = 1.1.1
Provides: bundled(node-gauge) = 4.0.4
Provides: bundled(node-gauge) = 5.0.1
Provides: bundled(node-glob) = 10.3.10
Provides: bundled(node-glob) = 10.3.3
Provides: bundled(node-glob) = 7.2.3
Provides: bundled(node-graceful-fs) = 4.2.11
Provides: bundled(node-has) = 1.0.3
Provides: bundled(node-has-unicode) = 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) = 5.0.0
Provides: bundled(node-http-proxy-agent) = 7.0.0
Provides: bundled(node-https-proxy-agent) = 5.0.1
Provides: bundled(node-https-proxy-agent) = 7.0.1
Provides: bundled(node-humanize-ms) = 1.2.1
Provides: bundled(node-https-proxy-agent) = 7.0.2
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-imurmurhash) = 0.1.4
Provides: bundled(node-indent-string) = 4.0.0
Provides: bundled(node-inflight) = 1.0.6
Provides: bundled(node-inherits) = 2.0.4
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-regex) = 4.3.0
Provides: bundled(node-is-cidr) = 4.0.2
Provides: bundled(node-is-core-module) = 2.12.1
Provides: bundled(node-is-core-module) = 2.13.0
Provides: bundled(node-is-fullwidth-code-point) = 3.0.0
Provides: bundled(node-is-lambda) = 1.0.1
Provides: bundled(node-isexe) = 2.0.0
@ -528,26 +496,22 @@ 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.2
Provides: bundled(node-libnpmexec) = 7.0.2
Provides: bundled(node-libnpmfund) = 5.0.0
Provides: bundled(node-libnpmdiff) = 6.0.3
Provides: bundled(node-libnpmexec) = 7.0.3
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.2
Provides: bundled(node-libnpmpack) = 6.0.3
Provides: bundled(node-libnpmpublish) = 9.0.1
Provides: bundled(node-libnpmsearch) = 7.0.0
Provides: bundled(node-libnpmteam) = 6.0.0
Provides: bundled(node-libnpmversion) = 5.0.0
Provides: bundled(node-libnpmversion) = 5.0.1
Provides: bundled(node-lru-cache) = 10.0.1
Provides: bundled(node-lru-cache) = 6.0.0
Provides: bundled(node-lru-cache) = 7.18.3
Provides: bundled(node-make-fetch-happen) = 11.1.1
Provides: bundled(node-make-fetch-happen) = 13.0.0
Provides: bundled(node-minimatch) = 3.1.2
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.3
Provides: bundled(node-minipass) = 7.0.4
Provides: bundled(node-minipass-collect) = 1.0.2
Provides: bundled(node-minipass-fetch) = 3.0.4
@ -561,27 +525,23 @@ Provides: bundled(node-ms) = 2.1.2
Provides: bundled(node-ms) = 2.1.3
Provides: bundled(node-mute-stream) = 1.0.0
Provides: bundled(node-negotiator) = 0.6.3
Provides: bundled(node-node-gyp) = 9.4.0
Provides: bundled(node-nopt) = 6.0.0
Provides: bundled(node-node-gyp) = 10.0.1
Provides: bundled(node-nopt) = 7.2.0
Provides: bundled(node-normalize-package-data) = 6.0.0
Provides: bundled(node-npm-audit-report) = 5.0.0
Provides: bundled(node-npm-bundled) = 3.0.0
Provides: bundled(node-npm-install-checks) = 6.2.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-pick-manifest) = 9.0.0
Provides: bundled(node-npm-profile) = 9.0.0
Provides: bundled(node-npm-registry-fetch) = 16.0.0
Provides: bundled(node-npm-registry-fetch) = 16.1.0
Provides: bundled(node-npm-user-validate) = 2.0.0
Provides: bundled(node-npmlog) = 6.0.2
Provides: bundled(node-npmlog) = 7.0.1
Provides: bundled(node-once) = 1.4.0
Provides: bundled(node-p-map) = 4.0.0
Provides: bundled(node-pacote) = 17.0.4
Provides: bundled(node-parse-conflict-json) = 3.0.1
Provides: bundled(node-path-is-absolute) = 1.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
@ -597,31 +557,27 @@ 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) = 3.6.2
Provides: bundled(node-readable-stream) = 4.4.0
Provides: bundled(node-readable-stream) = 4.4.2
Provides: bundled(node-retry) = 0.12.0
Provides: bundled(node-rimraf) = 3.0.2
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-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) = 3.0.7
Provides: bundled(node-signal-exit) = 4.0.2
Provides: bundled(node-sigstore) = 2.1.0
Provides: bundled(node-smart-buffer) = 4.2.0
Provides: bundled(node-socks) = 2.7.1
Provides: bundled(node-socks-proxy-agent) = 7.0.0
Provides: bundled(node-socks-proxy-agent) = 8.0.1
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-expression-parse) = 3.0.1
Provides: bundled(node-spdx-license-ids) = 3.0.13
Provides: bundled(node-spdx-license-ids) = 3.0.16
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-string_decoder) = 1.3.0
Provides: bundled(node-strip-ansi) = 6.0.1
Provides: bundled(node-strip-ansi) = 7.1.0
Provides: bundled(node-supports-color) = 9.4.0
@ -642,7 +598,6 @@ Provides: bundled(node-which) = 4.0.0
Provides: bundled(node-wide-align) = 1.1.5
Provides: bundled(node-wrap-ansi) = 7.0.0
Provides: bundled(node-wrap-ansi) = 8.1.0
Provides: bundled(node-wrappy) = 1.0.2
Provides: bundled(node-write-file-atomic) = 5.0.1
Provides: bundled(node-yallist) = 4.0.0
@ -733,7 +688,6 @@ popd
%patch305 -p1
%patch309 -p1
%patch311 -p1
%if %{node_version_number} == 12
# minimist security update - patch50
@ -747,8 +701,6 @@ find -name \*~ -print0 -delete
# abnormalities from patching
find \( -name \*.js.orig -or -name \*.md.orig -or -name \*.1.orig \) -delete
%build
# normalize shebang
%if %{node_version_number} >= 12
@ -1108,6 +1060,7 @@ update-alternatives --remove npm-default %{_bindir}/npm%{node_version_number}
update-alternatives --remove npx-default %{_bindir}/npx%{node_version_number}
%else
%pre
# remove files that are no longer owned but provided by update-alternatives
if ! [ -L %{_mandir}/man1/node.1%{ext_man} ]; then