Compare commits

63 Commits

Author SHA256 Message Date
d960b25072 Disable webcrypto testing on s390
z13 and z15 tests differ. We do not have this problem in later
node versions
2026-01-31 11:01:20 +01:00
c9a1f517b8 Update to 20.20.0 2026-01-19 18:38:48 +01:00
c18fa0f1b0 Add missing readme 2025-12-15 16:18:39 +01:00
20fd8dd2a5 Update to 20.19.6 2025-12-15 14:14:48 +01:00
eefa2fb370 update to 20.19.5 2025-10-14 18:49:25 +02:00
fc18908ba6 - fix_ci_tests.patch: refreshed
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=91
2025-06-12 14:48:40 +00:00
217bff4fd8 - Update to 20.19.2:
* fix error handling on async crypto operation (bsc#1243218, CVE-2025-23166)
  * add missing call to uv_fs_req_cleanup (bsc#1243217, CVE-2025-23165)
  * update llhttp to 9.2.0 (bsc#1243220, CVE-2025-23167)
- Changes in 20.19.1:
  * deps: update undici to 6.21.2
  * dns: restore dns query cache ttl

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=90
2025-06-12 14:43:19 +00:00
9f8fcfaa8c - Update to 20.19.0:
* esm: mark import attributes and JSON module as stable
  * module:
    + require(esm) is now enabled by default
    + Module syntax detection is now enabled by default
  * worker: add postMessageToThread
- Build with PIE (bsc#1239949)
- nodejs-libpath.patch: refreshed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=89
2025-04-08 13:23:37 +00:00
157584cc23 - Update to 20.18.2:
* src,loader,permission: throw on InternalWorker use when
    permission model is enabled (bsc#1236251, CVE-2025-23083)
  * src: fix HTTP2 mem leak on premature close and ERR_PROTO
    (bsc#1236250, CVE-2025-23085)
  * deps: Use of Insufficiently Random Values in undici fetch()
    (bsc#1236258, CVE-2025-22150)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=88
2025-01-22 11:28:47 +00:00
b692d3ae42 - nodejs.keyring: sync keys with upstream
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=87
2024-12-05 10:29:50 +00:00
401ab9a1e5 - linker_lto_jobs.patch: refreshed
- fix_ci_tests.patch: fix dns test vs. older c-ares

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=86
2024-12-04 17:51:51 +00:00
6eba4bd4ca - Update to 20.18.1
* Experimental Network Inspection Support in Node.js
  * Exposes X509_V_FLAG_PARTIAL_CHAIN to tls.createSecureContext
  * New option for vm.createContext() to create a context with a
    freezable globalThis
  * buffer: optimize createFromString
- Changes in 20.17.0:
  * module: support require()ing synchronous ESM graphs
  * path: add matchesGlob method
  * stream: expose DuplexPair API
- Changes in 20.16.0:
  * process: add process.getBuiltinModule(id)
  * inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth
  * buffer: add .bytes() method to Blob
- CVE-2024-21538.patch: fixes regular expression denial of service
  (bsc#1233856, CVE-2024-21538)
- linker_lto_jobs.patch, fix_ci_tests.patch: refreshed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=85
2024-12-04 16:58:37 +00:00
2246206db0 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=82 2024-07-12 14:03:07 +00:00
c0f02fd578 - Update to 20.15.1:
* Bypass incomplete fix of CVE-2024-27980 (bsc#1227560, CVE-2024-36138)
  * Bypass network import restriction via data URL (bsc#1227554, CVE-2024-22020)
  * fs.lstat bypasses permission model (bsc#1227562, CVE-2024-22018)
  * fs.fchown/fchmod bypasses permission model (bsc#1227561, CVE-2024-36137)
  * Permission model improperly processes UNC paths (bsc#1227563, CVE-2024-37372)
- Changes in 20.15.0:
  * test_runner: support test plans
  * inspector: introduce the --inspect-wait flag
  * zlib: expose zlib.crc32()
  * cli: allow running wasm in limited vmem with --disable-wasm-trap-handler
- Changes in 20.14.0
  * src,permission: throw async errors on async APIs
  * test_runner: support forced exit
- fix_ci_tests.patch, npm_search_paths.patch: refreshed
- skip_no_console.patch: dropped, upstreamed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=81
2024-07-12 13:38:05 +00:00
c92e14a059 - Update to 20.13.1:
* buffer: improve base64 and base64url performance
  * crypto: deprecate implicitly shortened GCM tags
  * events,doc: mark CustomEvent as stable
  * fs: add stacktrace to fs/promises
  * report: add --report-exclude-network option
  * src: add uv_get_available_memory to report and process
  * stream: support typed arrays
  * util: support array of formats in util.styleText
  * v8: implement v8.queryObjects() for memory leak regression testing
  * watch: mark as stable
- versioned.patch: refreshed
- cares_sle12_capabilities.patch: SLES12 compatibility

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=80
2024-05-28 12:07:56 +00:00
bc4352b576 - fix_ci_tests.patch: add benchmark fix
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=78
2024-04-10 10:58:43 +00:00
955e34d73e + undici version 5.28.4 (bsc#1222530, bsc#1222603,
CVE-2024-30260, CVE-2024-30261)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=77
2024-04-10 10:37:51 +00:00
cd909165be OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=76 2024-04-10 10:31:14 +00:00
a39ab47e30 - Update to 20.12.1:
* CVE-2024-27983 - Assertion failed in node::http2::Http2Session::~Http2Session()
    leads to HTTP/2 server crash- (High) (bsc#1222244)
  * CVE-2024-27982 - HTTP Request Smuggling via Content Length
    Obfuscation- (Medium) (bsc#1222384)
  * updated dependencies:
    + llhttp version 9.2.1
    + undici version 5.28.4 (bsc#1222530, CVE-2024-30260)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=75
2024-04-09 14:43:25 +00:00
81f954475e - node-gyp-addon-gypi.patch: adapted for new unit test layouts
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=74
2024-04-09 13:22:15 +00:00
b696405be7 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=73 2024-04-03 14:50:15 +00:00
e45c109bfc OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=72 2024-04-03 14:34:22 +00:00
05f0ac2ab6 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=71 2024-04-03 14:25:40 +00:00
5a0045e3ae - Update to 20.12.0:
* crypto: implement crypto.hash()
  * util: add loading and parsing environment variables
  * new connection attempt events: connectionAttempt,
    connectionAttemptFailed, connectionAttemptTimeout
  * sea: support embedding assets
  * support configurable snapshot through --build-snapshot-config flag
  * util.styleText(format, text): This function returns a formatted
    text considering the format passed.
  * vm: support using the default loader to handle dynamic import()
- c-ares-fixes.patch: removed, upstreamed
- nodejs-libpath.patch, versioned.patch: refreshed
  * libuv version 1.48.0 (CVE-2024-24806, bsc#1220053)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=70
2024-04-02 14:59:13 +00:00
e02b7ed54f - Update to 20.11.1: (security updates)
* (CVE-2024-21892, bsc#1219992) - Code injection and privilege escalation through Linux capabilities- (High)
  * (CVE-2024-22019, bsc#1219993) - http: Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks- (High)
  * (CVE-2024-21896, bsc#1219994) - Path traversal by monkey-patching Buffer internals- (High)
  * (CVE-2024-22017, bsc#1219995) - setuid() does not drop all privileges due to io_uring - (High)
  * (CVE-2023-46809, bsc#1219997) - Node.js is vulnerable to the Marvin Attack (timing variant of the Bleichenbacher attack against PKCS#1 v1.5 padding) - (Medium)
  * (CVE-2024-21891, bsc#1219998) - Multiple permission model bypasses due to improper path traversal sequence sanitization - (Medium)
  * (CVE-2024-21890, bsc#1219999) - Improper handling of wildcards in --allow-fs-read and --allow-fs-write (Medium)
  * (CVE-2024-22025, bsc#1220014) - Denial of Service by resource exhaustion in fetch() brotli decoding - (Medium)
  * undici version 5.28.3 (CVE-2024-24758, bsc#1220017)
  * libuv version 1.48.0 (CVE-2024-24806, bsc#1219724)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=68
2024-02-16 16:24:14 +00:00
86d88752be - c-ares-fixes.patch, fix_ci_tests.patch: refreshed
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=66
2024-02-13 13:45:22 +00:00
3b2001dfdb OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=65 2024-02-13 13:11:48 +00:00
4f15b0343b - update to 20.11.0:
* esm: add import.meta.dirname and import.meta.filename
  * fs: add c++ fast path for writeFileSync utf8
  * module: remove useCustomLoadersIfPresent flag
  * module: bootstrap module loaders in shadow realm
  * src: add --disable-warning option
  * src: create per isolate proxy env template
  * src: make process binding data weak
  * stream: use Array for Readable buffer
  * stream: 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
- c-ares-fixes.patch: refreshed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=64
2024-02-12 14:47:36 +00:00
52004851a6 to be fixed soon (bsc#1219152)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=62
2024-01-29 10:23:35 +00:00
4ae10259a5 - fix_ci_tests.patch: disable test_crypto_fips for openssl 3.x,
to be fixed soon

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=61
2024-01-29 10:06:21 +00:00
a4a9f3ef59 - c-ares-fixes.patch: add additional backports for unit test fixes
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=59
2024-01-08 15:38:28 +00:00
55ab3d2e25 - c-ares-fixes.patch: fixes unit tests for new c-ares
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=57
2024-01-02 16:16:09 +00:00
45750c214d OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=55 2023-12-18 14:24:34 +00:00
e877916ec2 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=54 2023-12-18 14:22:17 +00:00
210096961b OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=53 2023-12-18 12:58:03 +00:00
591a7dbf72 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=52 2023-12-18 12:54:20 +00:00
a5ad8db48d OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=51 2023-11-23 10:52:12 +00:00
45439a6199 - Update to 20.10.0:
* --experimental-default-type flag to flip module defaults
  * The new flag --experimental-detect-module can be used to
  automatically run ES modules when their syntax can be detected.
  * Added flush option in file system functions for fs.writeFile functions
  * Added experimental WebSocket client
  * vm: fix V8 compilation cache support for vm.Script. This fixes
  performance regression since v16.x when support for
  importModuleDynamically was added to vm.Script
For details, see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.10.0
- nodejs20-zlib-1.3.patch: upstreamed, removed
- fix_ci_tests.patch, node-gyp-addon-gypi.patch: refreshed

- Update to 20.9.0:
  * No changes, just LTS transition

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=50
2023-11-23 10:43:36 +00:00
abe59659fe - fix_ci_tests.patch: adapt for openssl 3.1.4
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=48
2023-10-27 09:19:38 +00:00
e67256f4e5 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=46 2023-10-24 14:36:29 +00:00
e0faf6dcc7 --------------------------------------------------------------------
- Add nodejs20-zlib-1.3.patch: Support zlib version with only
  major.minor versions, like zlib 1.3.
------------------------------------------------------------------

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=45
2023-10-24 14:18:15 +00:00
2e9b502e9e - fix_ci_tests.patch: refreshed
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=43
2023-10-16 13:01:28 +00:00
1b9e508dc7 - Security fixes relase 20.8.1
* (CVE-2023-44487, bsc#1216190): nghttp2 Security Release
  * (CVE-2023-45143, bsc#1216205): undici Security Release
  * (CVE-2023-39332, bsc#1216271): Path traversal through path stored in Uint8Array
  * (CVE-2023-39331, bsc#1216270): Permission model improperly protects against path traversal
  * (CVE-2023-38552, bsc#1216272): Integrity checks according to policies can be circumvented
  * (CVE-2023-39333, bsc#1216273): Code injection via WebAssembly export names

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=42
2023-10-16 10:06:07 +00:00
7e2580e83c OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=40 2023-10-06 13:36:46 +00:00
d419ccb18e - Update to 20.8.0:
* Stream performance improvements
  * Rework of memory management in vm APIs with the importModuleDynamically
    option
  * test_runner:
    + accept testOnly in run
    + add junit reporter
- fix_ci_tests.patch: refreshed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=39
2023-10-05 14:56:50 +00:00
9647f66e0f drop bundled libicu
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=37
2023-09-19 15:51:18 +00:00
05aa34d795 - Update to 20.7.0:
* src: support multiple --env-file declarations
  * deps: upgrade npm to 10.1.0
  * doc: move and rename loaders section
  * lib: add api to detect whether source-maps are enabled
  * src,permission: add multiple allow-fs-* flags
  * test_runner: expose location of tests
- z13.patch: upstreamed

- Update to 20.6.1:
  * f0ff63fbc32ea55f3d92c5c89fdb91ec47786859.patch: removed, upstreamed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=36
2023-09-19 15:37:59 +00:00
c2ca2925fc OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=34 2023-09-08 10:49:49 +00:00
a521ada844 OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=33 2023-09-08 10:49:08 +00:00
5be1703cd5 - f0ff63fbc32ea55f3d92c5c89fdb91ec47786859.patch: fixes issues with
Angular and other software that tries to load ECM modules in
  somewhat circular fashion ending up with multiple executions.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=32
2023-09-08 10:48:07 +00:00
2a9178dd9f - nodejs.keyring: updated to include current upstream releasers
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=30
2023-09-05 11:21:21 +00:00
f7fd71549c - Update to 20.6.0:
* add support for .env files to configure envrionment variables
  * import.meta.resolve unflagged
  * deps: npm updated to 9.8.1

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=29
2023-09-05 09:57:08 +00:00
9ab8b24f3c - Temporarily bundle ICU for SLE15 SP6 (jsc#PED-4819)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=27
2023-08-25 14:46:06 +00:00
a4dc90d7cf https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.5.1
versioned.patch: refreshed

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=25
2023-08-10 14:03:48 +00:00
7182d7ee39 - Update to version 20.5.1:
* (CVE-2023-32002, bsc#1214150): Policies can be bypassed
     via Module._load (High)
  * (CVE-2023-32558, bsc#1214155): process.binding() can bypass
     the permission model through path traversal (High)
  * (CVE-2023-32004, bsc#1214152): Permission model can be bypassed
     by specifying a path traversal sequence in a Buffer (High)
  * (CVE-2023-32006, bsc#1214156): Policies can be bypassed
     by module.constructor.createRequire (Medium)
  * (CVE-2023-32559, bsc#1214154): Policies can be bypassed
     via process.binding (Medium)
  * (CVE-2023-32005, bsc#1214153): fs.statfs can bypass
     the permission model (Low)
  * (CVE-2023-32003, bsc#1214151): fs.mkdtemp() and fs.mkdtempSync()
     can bypass the permission model (Low)
- Changes in 20.5.0:
  * events: allow safely adding listener to abortSignal
  * fs: add a fast-path for readFileSync utf-8
  * test_runner: add shards support
- Changes in 20.4.0:
  * tls: add ALPNCallback server option for dynamic ALPN negotiation
  * adds support for ECMAScript Explicit Resource Management
  * adds Mock Timer support to test module
For details see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.5.1

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=24
2023-08-10 14:02:38 +00:00
1cdf9b4679 - Update to version 20.3.1 (security fixes only). The following
CVEs are fixed in this release:
  * (CVE-2023-30581, bsc#1212574): mainModule.__proto__ Bypass
    Experimental Policy Mechanism (High)
  * (CVE-2023-30584, bsc#1212575): Path Traversal Bypass in
    Experimental Permission Model (High)
  * (CVE-2023-30587, bsc#1212576): Bypass of Experimental
    Permission Model via Node.js Inspector (High)
  * (CVE-2023-30582, bsc#1212577): Inadequate Permission Model
    Allows Unauthorized File Watching (Medium)
  * (CVE-2023-30583, bsc#1212578): Bypass of Experimental
    Permission Model via fs.openAsBlob() (Medium)
  * (CVE-2023-30585, bsc#1212579): Privilege escalation via
    Malicious Registry Key manipulation during Node.js
    installer repair process (Medium)
  * (CVE-2023-30586, bsc#1212580): Bypass of Experimental
    Permission Model via Arbitrary OpenSSL Engines (Medium)
  * (CVE-2023-30588, bsc#1212581): Process interuption due to invalid
    Public Key information in x509 certificates (Medium)
  * (CVE-2023-30589, bsc#1212582): HTTP Request Smuggling via
    Empty headers separated by CR (Medium)
  * (CVE-2023-30590, bsc#1212583): DiffieHellman does not
    generate keys after setting a private key (Medium)

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=22
2023-06-21 12:07:38 +00:00
5b2b61f845 - Update to version 20.3.0:
* deps: upgrade to libuv 1.45.0, including significant performance
    improvements to file system operations on Linux
  * module: change default resolver to not throw on unknown scheme
  * stream: deprecate asIndexedPairs
- versioned.patch, fix_ci_tests.patch: refreshed
- openssl3_1-adapt_tests.patch: upstreamed and removed
For details see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.3.0

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=20
2023-06-15 11:44:48 +00:00
627eb92e1b - Fix build on SLE12SP5
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=18
2023-05-22 14:46:32 +00:00
b7b4ea6812 - Update to version 20.2.0:
* http: prevent writing to the body when not allowed by HTTP spec
  * sea: add option to disable the experimental SEA warning
  * test_runner: add skip, todo, and only shorthands to test
  * url: add value argument to URLSearchParams has and delete methods
For details see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.2.0

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=16
2023-05-19 13:53:28 +00:00
02d0db4631 on some platforms, like s390x in Factory. (bsc#1211407)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=14
2023-05-15 14:34:43 +00:00
12a0128514 - fix_ci_tests.patch: increase default timeout on unit tests
to 20min from 2min. This seems to have lead to build failures
  on some platforms, like s390x in Factory.

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=13
2023-05-15 14:06:14 +00:00
efc950d556 - z13.patch: fixes illegal instruction error on z13 and older s390
OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=11
2023-05-12 07:59:13 +00:00
2394e8ae58 - Adapt tests for OpenSSL 3.1 [bsc#1209430]
* Add openssl3_1-adapt_tests.patch

OBS-URL: https://build.opensuse.org/package/show/devel:languages:nodejs/nodejs20?expand=0&rev=9
2023-05-10 11:13:14 +00:00
18 changed files with 1047 additions and 437 deletions

46
CVE-2024-21538.patch Normal file
View File

@@ -0,0 +1,46 @@
Applied following patches,
From 5ff3a07d9add449021d806e45c4168203aa833ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Cruz?= <andremiguelcruz@msn.com>
Date: Wed, 6 Nov 2024 22:02:49 +0000
Subject: [PATCH] fix: disable regexp backtracking (#160)
---
lib/util/escape.js | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
From 640d391fde65388548601d95abedccc12943374f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andr=C3=A9=20Cruz?= <andre.cruz@uphold.com>
Date: Thu, 7 Nov 2024 12:50:38 +0000
Subject: [PATCH] fix: fix escaping bug introduced by backtracking
---
lib/util/escape.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: node-v18.20.5/deps/npm/node_modules/cross-spawn/lib/util/escape.js
===================================================================
--- node-v18.20.5.orig/deps/npm/node_modules/cross-spawn/lib/util/escape.js
+++ node-v18.20.5/deps/npm/node_modules/cross-spawn/lib/util/escape.js
@@ -15,15 +15,17 @@ function escapeArgument(arg, doubleEscap
arg = `${arg}`;
// Algorithm below is based on https://qntm.org/cmd
+ // It's slightly altered to disable JS backtracking to avoid hanging on specially crafted input
+ // Please see https://github.com/moxystudio/node-cross-spawn/pull/160 for more information
// Sequence of backslashes followed by a double quote:
// double up all the backslashes and escape the double quote
- arg = arg.replace(/(\\*)"/g, '$1$1\\"');
+ arg = arg.replace(/(?=(\\+?)?)\1"/g, '$1$1\\"');
// Sequence of backslashes followed by the end of the string
// (which will become a double quote later):
// double up all the backslashes
- arg = arg.replace(/(\\*)$/, '$1$1');
+ arg = arg.replace(/(?=(\\+?)?)\1$/, '$1$1');
// All other backslashes occur literally

11
README.md Normal file
View File

@@ -0,0 +1,11 @@
NodeJS 20.x
===========
Build results for Factory
![Factory build status](https://br.opensuse.org/status/openSUSE:Factory/nodejs20/standard)
Devel project build status
![Devel build status](https://br.opensuse.org/status/devel:languages:nodejs/nodejs20)

View File

@@ -1,41 +1,41 @@
0974cc4ae791faa7b72fbb828d49cf70d8d76fa4aadfcce9582e6119c00a620c node-v20.1.0-aix-ppc64.tar.gz 7ae62921fc80ee47ae4e2519661e927b3fa7abf75cdb50458490ef2f0da633e5 node-v20.20.0-aix-ppc64.tar.gz
1c8a5d94a57b33f27a80a9262593ecdae745079781e53a75cf5aba54d74d761d node-v20.1.0-arm64.msi 988d0f965918d1ff75b125b36ea5866c1000a48389e0d33875602a58c60b409f node-v20.20.0-arm64.msi
fd3bca029883cb84d4f58e7adb1a2c4fc4e616a8297fb08cb5c34465b7c4071a node-v20.1.0-darwin-arm64.tar.gz 69b98aa4662032ab06bd92216f0aebb2727d7ee4e1eb79ea5787bbbb38af4801 node-v20.20.0-darwin-arm64.tar.gz
e2caf635cbb9dd67c1b528fa8cfbffcb1dac9ae90fcce71f2832488adc474c17 node-v20.1.0-darwin-arm64.tar.xz 2edefda1cdebc210b27d85698354a2a4c247af0a6fb91d9414ce6251a638e364 node-v20.20.0-darwin-arm64.tar.xz
770dd45c15cfafa3f945fce173aa84dfed94931923242700718edf6883b74fff node-v20.1.0-darwin-x64.tar.gz 69bf9b294dc04e3b97c3d5e4f16b3c634201b7f5f617fb65d93a9a9ac4bec0f0 node-v20.20.0-darwin-x64.tar.gz
d9a8a7b1b186a983191ddac90adce5be9d5abfb57496be1736024a4afc11a90b node-v20.1.0-darwin-x64.tar.xz 37f82f0718199626056e3694e9f00a5e30c4d1115c0c8649d04a4924a6b95a6f node-v20.20.0-darwin-x64.tar.xz
975b642d3c0f1f109abe9a8c3841da5501581e4e834ade1005feee61dbec1476 node-v20.1.0-headers.tar.gz fc74b79dcc07df4b9c3ecf8d214aea5908b408f9653e918e6df163683a0e33ce node-v20.20.0-headers.tar.gz
138570a36f8a90cd57de1f3ff5cffc1be0ac36c8ce528903837a16ce076248ce node-v20.1.0-headers.tar.xz 96c31e0a07b37b0af25e5b02f679149fe1f169c153477192a59884a320b943d5 node-v20.20.0-headers.tar.xz
b3867bda723ad3e4b1319b5584c99dde84b20d4ac557af82b26921ba6c2dc274 node-v20.1.0-linux-arm64.tar.gz 2b640b7fc19a1d2f12a226d7dfba9baff2de87cc15db5a3e58bcdb15582ac604 node-v20.20.0-linux-arm64.tar.gz
7219e00a19efd5f2f631a639d561fb65149b7602b3a103f9b47d5dd8e9be9527 node-v20.1.0-linux-arm64.tar.xz 752113754a7dddf0622b3740a2b2bec3dbaf1792a18711b55871d76444d8892a node-v20.20.0-linux-arm64.tar.xz
12ef1fc0d5f7a6dbb60da74b784ed242ca495cbf6f6f05c568bac8ceb6e6d28e node-v20.1.0-linux-armv7l.tar.gz 2fc5f715c05c7a2662044fbfac5edfcb85d419045ecb2dff53b68f3dc4ec81fb node-v20.20.0-linux-armv7l.tar.gz
591521a4a620ee89fee1afc7f3959fd9b8405027ca07c6903e45239a33a8c54b node-v20.1.0-linux-armv7l.tar.xz 68f1945036de7738cb9f46d161ae778a9f96f18f5f5fc2827755f7925d399246 node-v20.20.0-linux-armv7l.tar.xz
b450e6d07153aa7f0bf6d67c2de788e9c9c42a04172d01ebce08a45247c885b3 node-v20.1.0-linux-ppc64le.tar.gz 8b02c9b00b551d59bd550e6d92e8131f23668fcc71b0937ac2256ee0754e39a7 node-v20.20.0-linux-ppc64le.tar.gz
07ff534cc8af412b4ad82a16b8099aa99c6491bdbdb6779a73aa8be5a290b5eb node-v20.1.0-linux-ppc64le.tar.xz 5ec524a988d71f3f265d218f0f1b71d37ddc2864369508e95d32ac7e6c81a781 node-v20.20.0-linux-ppc64le.tar.xz
ff3e37ee1199f1fd85950b0af4d4ba4ff88b216856b8c573d5046fa541ea627a node-v20.1.0-linux-s390x.tar.gz 154dd8885646253a12532099ccf9485660bc42e4a56bb1483f4e161fb7f10bb9 node-v20.20.0-linux-s390x.tar.gz
8fe597af46c9cf16a1b1d56058318803539d70562f45cff8e5779d75c32652e7 node-v20.1.0-linux-s390x.tar.xz 908d4bbeb33eb576a132be6c6cb209ebf0e646da0e71ea42b9d481c778a1117f node-v20.20.0-linux-s390x.tar.xz
fbc345638e3fed3b639353b2b3971bddba9e55e93b6e1848be6215787d7f20b8 node-v20.1.0-linux-x64.tar.gz 92dfd59fb4837230abba5d6dd717b882ca897e22fde2f9268e1aac2c4bde0f5b node-v20.20.0-linux-x64.tar.gz
08e01d4ae29013f965dc8bde52d7f1abf780b5867ff40ade6bdd35bc9cbffd96 node-v20.1.0-linux-x64.tar.xz 4f48b52acf42130844a3a75e94da0e9629009d09e4101b2304895c24f3fbe609 node-v20.20.0-linux-x64.tar.xz
e4547515bad012f5552d80db48f7de263e0eff67aeb73ae60dca7dc5d86e22d5 node-v20.1.0.pkg 8dae9c0d296e86150f9138c0077ef020fb384fd913d1a671baa3663e14367ec0 node-v20.20.0.pkg
714d59336dc7e3291aebae4f0acd7938cdefb1c04f0a7d46a26aabe2662fe3cf node-v20.1.0.tar.gz cafc92e90917c17869d982fdff10104c2eb328437ed9bbf03fdda78ebc0accdd node-v20.20.0.tar.gz
600f9e11860995814b9122b1ac5318f6ad564274784deed98d8a9206649436b5 node-v20.1.0.tar.xz 5294d9d2915620e819e6892fd7e545b98d650bad36dae54e6527eaac482add98 node-v20.20.0.tar.xz
95fd2e4aca8417a22135841757dfc2fccaf0bbd7e0cd5ca7d9078650afabbed5 node-v20.1.0-win-arm64.7z 8eb9846f62581364f877109808c7df953d3393022f33f128f954bc4a857366b2 node-v20.20.0-win-arm64.7z
53ddbf4040c9a5170188854b621a8b06b0e48ca2e71c9af004a352931d24b254 node-v20.1.0-win-arm64.zip 870693b496d152519af14b30fb1adef47e62233b90aea5e887ea728cd29c037d node-v20.20.0-win-arm64.zip
528c140b32c95bdaf8a44e4d8f2c856601ae9ea19ee3f5e2e88ea7376154d0e0 node-v20.1.0-win-x64.7z 5e48cd18cc5dc6cda23b8ad2467223f3f82b0f03b941b7088578ecb7afbda8d4 node-v20.20.0-win-x64.7z
c26782b513c97b2847f2802d77c99a834f9494e947edccee5b3686762eddc912 node-v20.1.0-win-x64.zip 32f24e1405b113d4e01ad2585c92024df673b6156ef6f43a5469a75bf52c0a5a node-v20.20.0-win-x64.zip
8949e01dd83d264d63bec75bc5e12d8cc710379288e478c9998af2d8b7f9d0eb node-v20.1.0-win-x86.7z 0af709b32e1ee7d7ce07c87fc64b216afcee3867cc4982ef95cbfa8010ac0e11 node-v20.20.0-win-x86.7z
98b10152f0391b1a6cb9409d6dd035f7b62627d37a5de2d196d8c2dc0ed534dd node-v20.1.0-win-x86.zip d72d2a5b7d944a28eb59e0477bdc0c40b7b0a817bca057d5e882c0e0013590f3 node-v20.20.0-win-x86.zip
9e26806f7a99ffb5725f4f08e1f51fcd2522d17b180eced25094d5aed75b42f0 node-v20.1.0-x64.msi 8b8f5cbf7f1800c74e19cef0182bb6b9144e154e57fc01dd945bd36edaf32c65 node-v20.20.0-x64.msi
abd01a846689cea3821454987f0c5e344d297b83dc6fc2ac182dc87e36ed6431 node-v20.1.0-x86.msi 93698ab6cca1cbff4ffb545f15078509ae706cfbb9a646449ccfe1c8d7abad4b node-v20.20.0-x86.msi
e6079443ef50b355bc18bc8db96075efde6c1f1a5d42533f81f2fe38be72a0a3 win-arm64/node.exe 9d8337f4cfdfe39383b7eecbda2b84c5997507962d489988fd61f176c14d652c win-arm64/node.exe
caf7a4f2176ca77a98804adfdf4dfebbb4aa10e4372a6596ac663aa090e84c43 win-arm64/node.lib cc64d1a9d5189e05c3f7ca3e3351aa38e0454573d533b636415dacf495f96291 win-arm64/node.lib
5260c746e2145848d3fb099a50f993bfeef9f079a66163d550f64f5bf5c0a6f6 win-arm64/node_pdb.7z 2fa932df38d6f1612154153a9c8c2048596518d5a46c34490f2c3603fc836d94 win-arm64/node_pdb.7z
3e6fca0ab72256a086d15237d80f5268d314457e859b1008e3c8863bbe18fe5f win-arm64/node_pdb.zip cda800fafb789404acbe98548fe1f4e71fbc3889a747eb3fef67155e67b29513 win-arm64/node_pdb.zip
3f6114ce6f020dc85a7a36851c45e1dd45f69f8d2bb00b7eb55ff4aa16d61f13 win-x64/node.exe fda2b2a8857735f7958ba9771a2b24734ff36434e85ae606bcf7744d41d7adc0 win-x64/node.exe
2505c7c453e74be248e47123823642c538f86f3741edb7ef4905a5d8e5ba6c96 win-x64/node.lib 919d900bb9d589ebbcfda17e6f6e8f6b49d8d6a8d782b6f5efd6b6c6c5f0d1b1 win-x64/node.lib
f13407923456a59b6d6b99e3e443e2f289dfc07755fd9a9c2179db04668a5ce7 win-x64/node_pdb.7z 922b251451eb2aeb51848e0e67c5aa6d70c47b86d8ac22afcf4240fd445443a5 win-x64/node_pdb.7z
d2539f504a568ddc01a77bc8186b028dca18ebe765dd92dd7f5526cecb16fcba win-x64/node_pdb.zip d9751fb70d3f7af85c0485e841de3645f43b69fc954cc231d9a16d96690c1ba1 win-x64/node_pdb.zip
a10e18efa8f6af0217c8fc357cc9b872fc08fcd21b520473d890ae2bf32ef9c1 win-x86/node.exe 9ffb141325064dcd1febc09752bc3ab7b407b25a0483ebcb1e3cacb7906f4c7f win-x86/node.exe
beac58300d1065f5f716b93d9f0b289fc319f0fa82c1bb046da05723267efcc0 win-x86/node.lib 4e14d97fd24bf99dc322553d817194cc3b956482ee76e073945e82e5d343740a win-x86/node.lib
01a3ea87d4b007cc246ca4a3874bed6b8c6c1282da886a3aa9c2ed4281864d39 win-x86/node_pdb.7z 06b506294604c0806f09d5aa7b7a10a99d4bf62e2484bba74a7e1fb1499f0944 win-x86/node_pdb.7z
e89bc87da3003c98d13bb22fe29a91a274813742bcb4431f8179655bed3c1130 win-x86/node_pdb.zip 080cbc5ed5800da6e0e3087176525d29c21020e212bda31fe1bedb9b3a325876 win-x86/node_pdb.zip

Binary file not shown.

View File

@@ -0,0 +1,22 @@
Index: node-v18.20.1/deps/cares/config/linux/ares_config.h
===================================================================
--- node-v18.20.1.orig/deps/cares/config/linux/ares_config.h
+++ node-v18.20.1/deps/cares/config/linux/ares_config.h
@@ -116,7 +116,7 @@
#define HAVE_GETNAMEINFO 1
/* Define to 1 if you have `getrandom` */
-#define HAVE_GETRANDOM 1
+/* undef #define HAVE_GETRANDOM 1 */
/* Define to 1 if you have `getservbyport_r` */
#define HAVE_GETSERVBYPORT_R 1
@@ -329,7 +329,7 @@
#define HAVE_SYS_PARAM_H 1
/* Define to 1 if you have the <sys/random.h> header file. */
-#define HAVE_SYS_RANDOM_H 1
+/* undef #define HAVE_SYS_RANDOM_H 1 */
/* Define to 1 if you have the <sys/select.h> header file. */
#define HAVE_SYS_SELECT_H 1

View File

@@ -2,10 +2,10 @@ Author: Adam Majer <amajer@suse.de>
Date: Dec 20 09:18:49 UTC 2017 Date: Dec 20 09:18:49 UTC 2017
Summary: Fix CI unit tests framework for OBS building Summary: Fix CI unit tests framework for OBS building
Index: node-v18.9.0/test/parallel/test-module-loading-globalpaths.js Index: node-v20.19.2/test/parallel/test-module-loading-globalpaths.js
=================================================================== ===================================================================
--- node-v18.9.0.orig/test/parallel/test-module-loading-globalpaths.js --- node-v20.19.2.orig/test/parallel/test-module-loading-globalpaths.js
+++ node-v18.9.0/test/parallel/test-module-loading-globalpaths.js +++ node-v20.19.2/test/parallel/test-module-loading-globalpaths.js
@@ -11,6 +11,9 @@ const { addLibraryPath } = require('../c @@ -11,6 +11,9 @@ const { addLibraryPath } = require('../c
addLibraryPath(process.env); addLibraryPath(process.env);
@@ -16,10 +16,10 @@ Index: node-v18.9.0/test/parallel/test-module-loading-globalpaths.js
if (process.argv[2] === 'child') { if (process.argv[2] === 'child') {
console.log(require(pkgName).string); console.log(require(pkgName).string);
} else { } else {
Index: node-v18.9.0/test/parallel/test-tls-passphrase.js Index: node-v20.19.2/test/parallel/test-tls-passphrase.js
=================================================================== ===================================================================
--- node-v18.9.0.orig/test/parallel/test-tls-passphrase.js --- node-v20.19.2.orig/test/parallel/test-tls-passphrase.js
+++ node-v18.9.0/test/parallel/test-tls-passphrase.js +++ node-v20.19.2/test/parallel/test-tls-passphrase.js
@@ -223,7 +223,7 @@ server.listen(0, common.mustCall(functio @@ -223,7 +223,7 @@ server.listen(0, common.mustCall(functio
}, onSecureConnect()); }, onSecureConnect());
})).unref(); })).unref();
@@ -29,10 +29,10 @@ Index: node-v18.9.0/test/parallel/test-tls-passphrase.js
// Missing passphrase // Missing passphrase
assert.throws(function() { assert.throws(function() {
Index: node-v18.9.0/test/parallel/test-repl-envvars.js Index: node-v20.19.2/test/parallel/test-repl-envvars.js
=================================================================== ===================================================================
--- node-v18.9.0.orig/test/parallel/test-repl-envvars.js --- node-v20.19.2.orig/test/parallel/test-repl-envvars.js
+++ node-v18.9.0/test/parallel/test-repl-envvars.js +++ node-v20.19.2/test/parallel/test-repl-envvars.js
@@ -2,7 +2,9 @@ @@ -2,7 +2,9 @@
// Flags: --expose-internals // Flags: --expose-internals
@@ -42,33 +42,21 @@ Index: node-v18.9.0/test/parallel/test-repl-envvars.js
+common.skip('Not running test in OBS'); +common.skip('Not running test in OBS');
+ +
const stream = require('stream'); const stream = require('stream');
const { describe, test } = require('node:test');
const REPL = require('internal/repl'); const REPL = require('internal/repl');
const assert = require('assert'); Index: node-v20.19.2/Makefile
Index: node-v18.9.0/test/common/index.mjs
=================================================================== ===================================================================
--- node-v18.9.0.orig/test/common/index.mjs --- node-v20.19.2.orig/Makefile
+++ node-v18.9.0/test/common/index.mjs +++ node-v20.19.2/Makefile
@@ -45,6 +45,7 @@ const { @@ -396,7 +396,6 @@ ADDONS_HEADERS_PREREQS := tools/install.
expectsError, $(wildcard deps/uv/include/*/*.h) \
skipIfInspectorDisabled, $(wildcard deps/v8/include/*.h) \
skipIf32Bits, $(wildcard deps/v8/include/*/*.h) \
+ skipIfWorker, - deps/zlib/zconf.h deps/zlib/zlib.h \
getArrayBufferViews, src/node.h src/node_api.h src/js_native_api.h src/js_native_api_types.h \
getBufferSources, src/node_api_types.h src/node_buffer.h src/node_object_wrap.h \
getTTYfd, src/node_version.h
@@ -94,6 +95,7 @@ export { @@ -568,7 +567,8 @@ test-ci-js: | clear-stalled
expectsError,
skipIfInspectorDisabled,
skipIf32Bits,
+ skipIfWorker,
getArrayBufferViews,
getBufferSources,
getTTYfd,
Index: node-v18.9.0/Makefile
===================================================================
--- node-v18.9.0.orig/Makefile
+++ node-v18.9.0/Makefile
@@ -524,7 +524,8 @@ test-ci-js: | clear-stalled
.PHONY: test-ci .PHONY: test-ci
# Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned # Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned
test-ci: LOGLEVEL := info test-ci: LOGLEVEL := info
@@ -78,7 +66,7 @@ Index: node-v18.9.0/Makefile
out/Release/cctest --gtest_output=xml:out/junit/cctest.xml out/Release/cctest --gtest_output=xml:out/junit/cctest.xml
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \ $(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
--mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \ --mode=$(BUILDTYPE_LOWER) --flaky-tests=$(FLAKY_TESTS) \
@@ -717,7 +718,8 @@ apidocs_json = $(addprefix out/,$(apidoc @@ -754,7 +754,8 @@ apidocs_json = $(addprefix out/,$(apidoc
apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*))) apiassets = $(subst api_assets,api/assets,$(addprefix out/,$(wildcard doc/api_assets/*)))
tools/doc/node_modules: tools/doc/package.json tools/doc/node_modules: tools/doc/package.json
@@ -88,16 +76,70 @@ Index: node-v18.9.0/Makefile
echo "Skipping tools/doc/node_modules (no crypto)"; \ echo "Skipping tools/doc/node_modules (no crypto)"; \
else \ else \
cd tools/doc && $(call available-node,$(run-npm-ci)) \ cd tools/doc && $(call available-node,$(run-npm-ci)) \
Index: node-v18.9.0/test/parallel/test-crypto-dh.js Index: node-v20.19.2/tools/test.py
=================================================================== ===================================================================
--- node-v18.9.0.orig/test/parallel/test-crypto-dh.js --- node-v20.19.2.orig/tools/test.py
+++ node-v18.9.0/test/parallel/test-crypto-dh.js +++ node-v20.19.2/tools/test.py
@@ -167,7 +167,7 @@ assert.throws(() => { @@ -1386,7 +1386,7 @@ def BuildOptions():
dh3.computeSecret(''); result.add_option("-s", "--suite", help="A test suite",
}, { message: common.hasOpenSSL3 ? default=[], action="append")
'error:02800080:Diffie-Hellman routines::invalid secret' : result.add_option("-t", "--timeout", help="Timeout in seconds",
- 'Supplied key is too small' }); - default=120, type="int")
+ /Supplied key is too small|error:05066066:Diffie-Hellman routines:compute_key:invalid public key/ }); + default=1200, type="int")
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.19.2/test/parallel/test-crypto-dh.js
===================================================================
--- node-v20.19.2.orig/test/parallel/test-crypto-dh.js
+++ node-v20.19.2/test/parallel/test-crypto-dh.js
@@ -91,9 +91,7 @@ const crypto = require('crypto');
(common.hasOpenSSL(3, 1, 4));
assert.throws(() => {
dh3.computeSecret('');
- }, { message: common.hasOpenSSL3 && !hasOpenSSL3WithNewErrorMessage ?
- '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)/);
}
}
// Invalid test: curve argument is undefined Index: node-v20.19.2/test/parallel/test-crypto-fips.js
assert.throws( ===================================================================
--- node-v20.19.2.orig/test/parallel/test-crypto-fips.js
+++ node-v20.19.2/test/parallel/test-crypto-fips.js
@@ -3,6 +3,8 @@
const common = require('../common');
if (!common.hasCrypto)
common.skip('missing crypto');
+if (common.hasOpenSSL3)
+ common.skip('skipped fips test on openssl 3.x, to be fixed later');
const assert = require('assert');
const spawnSync = require('child_process').spawnSync;
Index: node-v20.19.2/test/parallel/test-node-output-v8-warning.mjs
===================================================================
--- node-v20.19.2.orig/test/parallel/test-node-output-v8-warning.mjs
+++ node-v20.19.2/test/parallel/test-node-output-v8-warning.mjs
@@ -15,7 +15,7 @@ describe('v8 output', { concurrency: tru
.replaceAll('*test*', '*')
.replaceAll(/.*?\*fixtures\*v8\*/g, '(node:*) V8: *') // Replace entire path before fixtures/v8
.replaceAll('*fixtures*v8*', '*')
- .replaceAll('node --', '* --');
+ .replaceAll(/node\d+ --/g, '* --');
}
const common = snapshot
.transform(snapshot.replaceWindowsLineEndings, snapshot.replaceWindowsPaths, replaceNodeVersion);
Index: node-v20.19.2/test/parallel/test-dns.js
===================================================================
--- node-v20.19.2.orig/test/parallel/test-dns.js
+++ node-v20.19.2/test/parallel/test-dns.js
@@ -403,7 +403,7 @@ assert.throws(() => {
const server = dgram.createSocket('udp4');
- server.on('message', common.mustCall((msg, { address, port }) => {
+ server.on('message', common.mustCallAtLeast((msg, { address, port }) => {
const parsed = dnstools.parseDNSPacket(msg);
const domain = parsed.questions[0].domain;
assert.strictEqual(domain, 'example.org');

View File

@@ -3,11 +3,11 @@ is run serially over these binaries instead of in parallel.
OBS workers run out of memory as each executable seems to require OBS workers run out of memory as each executable seems to require
upward of 5G RAM upward of 5G RAM
Index: node-v19.7.0/node.gyp Index: node-v20.18.1/node.gyp
=================================================================== ===================================================================
--- node-v19.7.0.orig/node.gyp --- node-v20.18.1.orig/node.gyp
+++ node-v19.7.0/node.gyp +++ node-v20.18.1/node.gyp
@@ -951,6 +951,7 @@ @@ -1155,6 +1155,7 @@
'deps/uvwasi/uvwasi.gyp:uvwasi', 'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/simdutf/simdutf.gyp:simdutf', 'deps/simdutf/simdutf.gyp:simdutf',
'deps/ada/ada.gyp:ada', 'deps/ada/ada.gyp:ada',
@@ -15,9 +15,9 @@ Index: node-v19.7.0/node.gyp
], ],
'includes': [ 'includes': [
@@ -1047,6 +1048,7 @@ @@ -1229,6 +1230,7 @@
'<(node_lib_target_name)',
'deps/histogram/histogram.gyp:histogram', 'deps/histogram/histogram.gyp:histogram',
'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/ada/ada.gyp:ada', 'deps/ada/ada.gyp:ada',
+ 'cctest' + 'cctest'
], ],

View File

@@ -1,7 +1,7 @@
Index: node-git.b4f0a18b5a/addon-rpm.gypi Index: node-v21.7.1/addon-rpm.gypi
=================================================================== ===================================================================
--- /dev/null --- /dev/null
+++ node-git.b4f0a18b5a/addon-rpm.gypi +++ node-v21.7.1/addon-rpm.gypi
@@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
+{ +{
+ 'target_defaults': { + 'target_defaults': {
@@ -38,11 +38,11 @@ Index: node-git.b4f0a18b5a/addon-rpm.gypi
+ ] + ]
+ } + }
+} +}
Index: node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js Index: node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js
=================================================================== ===================================================================
--- node-git.b4f0a18b5a.orig/deps/npm/node_modules/node-gyp/lib/configure.js --- node-v21.7.1.orig/deps/npm/node_modules/node-gyp/lib/configure.js
+++ node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js +++ node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -46,10 +46,6 @@ function configure (gyp, argv, callback) @@ -36,10 +36,6 @@ async function configure (gyp, argv) {
if ('v' + release.version !== process.version) { if ('v' + release.version !== process.version) {
// if --target was given, then determine a target version to compile for // 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) log.verbose('get node dir', 'compiling against --target node version: %s', release.version)
@@ -53,10 +53,10 @@ Index: node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
if (!release.semver) { if (!release.semver) {
// could not parse the version string with semver // could not parse the version string with semver
@@ -68,6 +64,12 @@ function configure (gyp, argv, callback) @@ -54,6 +50,12 @@ async function configure (gyp, argv) {
nodeDir = path.resolve(gyp.devDir, release.versionDir)
createBuildDir() log.verbose('get node dir', 'target node version installed:', release.versionDir)
}) nodeDir = path.resolve(gyp.devDir, release.versionDir)
+ } else { + } else {
+ // if no --target was specified then use RPM-installed headers + // 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') + log.verbose('get node dir', 'no --target version specified, falling back to RPM installed headers')
@@ -64,16 +64,49 @@ Index: node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
+ createBuildDir() + createBuildDir()
+ } + }
} }
}
@@ -282,7 +284,9 @@ function configure (gyp, argv, callback) return createBuildDir()
@@ -201,8 +203,16 @@ async function configure (gyp, argv) {
// this logic ported from the old `gyp_addon` python file // this logic ported from the old `gyp_addon` python file
var gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py') const gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- var addonGypi = path.resolve(__dirname, '..', 'addon.gypi') - const addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
+ var addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi' - let commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
+ let addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi'
+ let addonGypi = path.resolve(__dirname, '..', addon_gypi_file)
+ let commonGypi = path.resolve(nodeDir, 'include/node20/common.gypi')
+ +
+ var addonGypi = path.resolve(__dirname, '..', addon_gypi_file) + try {
var commonGypi = path.resolve(nodeDir, 'include/node/common.gypi') + await fs.stat(commonGypi)
fs.stat(commonGypi, function (err) { + } catch (err) {
if (err) { + commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
+ }
+
try {
await fs.stat(commonGypi)
} catch (err) {
Index: node-v21.7.1/deps/npm/node_modules/node-gyp/addon.gypi
===================================================================
--- node-v21.7.1.orig/deps/npm/node_modules/node-gyp/addon.gypi
+++ node-v21.7.1/deps/npm/node_modules/node-gyp/addon.gypi
@@ -18,6 +18,7 @@
],
'include_dirs': [
+ '<(node_root_dir)/include/node20',
'<(node_root_dir)/include/node',
'<(node_root_dir)/src',
'<(node_root_dir)/deps/openssl/config',
Index: node-v21.7.1/tools/build_addons.py
===================================================================
--- node-v21.7.1.orig/tools/build_addons.py
+++ node-v21.7.1/tools/build_addons.py
@@ -27,7 +27,7 @@ def generate_headers(headers_dir, instal
def rebuild_addons(args):
headers_dir = os.path.abspath(args.headers_dir)
out_dir = os.path.abspath(args.out_dir)
- node_bin = os.path.join(out_dir, 'node')
+ node_bin = os.path.join(out_dir, 'node20')
if args.is_win:
node_bin += '.exe'

View File

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

BIN
node-v20.20.0.tar.xz LFS Normal file

Binary file not shown.

View File

@@ -1,49 +1,49 @@
Index: node-v18.9.0/tools/install.py Index: node-v20.19.0/tools/install.py
=================================================================== ===================================================================
--- node-v18.9.0.orig/tools/install.py --- node-v20.19.0.orig/tools/install.py
+++ node-v18.9.0/tools/install.py +++ node-v20.19.0/tools/install.py
@@ -7,6 +7,7 @@ import errno @@ -7,6 +7,7 @@ import os
import os import platform
import shutil import shutil
import sys import sys
+from distutils import sysconfig +from distutils import sysconfig
import re import re
# set at init time current_system = platform.system()
@@ -66,6 +67,10 @@ def try_copy(path, dst): @@ -72,6 +73,10 @@ def try_copy(options, path, dest):
try_unlink(target_path) # prevent ETXTBSY errors try_unlink(target_path) # prevent ETXTBSY errors
return shutil.copy2(source_path, target_path) return shutil.copy2(source_path, target_path)
+def libdir(): +def libdir(options):
+ libdir_fq = sysconfig.get_config_var("LIBDIR") + libdir_fq = sysconfig.get_config_var("LIBDIR")
+ return re.sub("^" + re.escape(node_prefix + "/"), "", libdir_fq) + return re.sub("^" + re.escape(options.prefix + "/"), "", libdir_fq)
+ +
def try_remove(path, dst): def try_remove(options, path, dest):
source_path, target_path = mkpaths(path, dst) source_path, target_path = mkpaths(options, path, dest)
print('removing %s' % target_path) if not options.silent:
@@ -81,7 +86,7 @@ def uninstall(paths, dst): @@ -88,7 +93,7 @@ def uninstall(options, paths, dest):
try_remove(path, dst) try_remove(options, path, dest)
def package_files(action, name, bins): def package_files(options, action, name, bins):
- target_path = 'lib/node_modules/' + name + '/' - target_path = os.path.join('lib/node_modules', name)
+ target_path = libdir() + '/node_modules/' + name + '/' + target_path = os.path.join(libdir(options), 'node_modules', name)
# don't install npm if the target path is a symlink, it probably means # don't install npm if the target path is a symlink, it probably means
# that a dev version of npm is installed there # that a dev version of npm is installed there
@@ -101,7 +106,7 @@ def package_files(action, name, bins): @@ -109,7 +114,7 @@ def package_files(options, action, name,
if action == uninstall: if action == uninstall:
action([link_path], 'bin/' + bin_name) action(options, [link_path], os.path.join('bin', bin_name))
elif action == install: elif action == install:
- try_symlink('../lib/node_modules/' + name + '/' + bin_target, link_path) - try_symlink(options, os.path.join('../lib/node_modules', name, bin_target), link_path)
+ try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path) + try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name, bin_target), link_path)
else: else:
assert 0 # unhandled action type assert 0 # unhandled action type
Index: node-v18.9.0/lib/internal/modules/cjs/loader.js Index: node-v20.19.0/lib/internal/modules/cjs/loader.js
=================================================================== ===================================================================
--- node-v18.9.0.orig/lib/internal/modules/cjs/loader.js --- node-v20.19.0.orig/lib/internal/modules/cjs/loader.js
+++ node-v18.9.0/lib/internal/modules/cjs/loader.js +++ node-v20.19.0/lib/internal/modules/cjs/loader.js
@@ -1254,7 +1254,7 @@ Module._initPaths = function() { @@ -1730,7 +1730,7 @@ Module._initPaths = function() {
path.resolve(process.execPath, '..') : path.resolve(process.execPath, '..') :
path.resolve(process.execPath, '..', '..'); path.resolve(process.execPath, '..', '..');

Binary file not shown.

View File

@@ -1,3 +1,430 @@
-------------------------------------------------------------------
Mon Jan 19 17:34:43 UTC 2026 - Adam Majer <adam.majer@suse.de>
- Update to 20.20.0:
* deps: updated undici to 6.23.0 (bsc#1256848, CVE-2026-22036)
* deps: updated bundled c-ares to 1.34.6 (if used)
* add TLSSocket default error handler (bsc#1256573, CVE-2025-59465)
* disable futimes when permission model is enabled (bsc#1256571, CVE-2025-55132)
* require full read and write to symlink APIs (bsc#1256569, CVE-2025-55130)
* rethrow stack overflow exceptions in async_hooks (bsc#1256574, CVE-2025-59466)
* refactor unsafe buffer creation to remove zero-fill toggle (bsc#1256570, CVE-2025-55131)
* route callback exceptions through error handlers (bsc#1256576, CVE-2026-21637)
-------------------------------------------------------------------
Mon Dec 15 13:07:49 UTC 2025 - Adam Majer <adam.majer@suse.de>
- Update to 20.19.6:
* see https://nodejs.org/en/blog/release/v20.19.6
-------------------------------------------------------------------
Tue Oct 14 16:32:22 UTC 2025 - Adam Majer <adam.majer@suse.de>
- Changes in 20.19.5:
* see https://nodejs.org/en/blog/release/v20.19.5
- Changes in 20.19.3:
* crypto: graduate WebCryptoAPI Ed25519 and X25519 algorithms as stable
* crypto: update root certificates to NSS 3.108
* deps: update timezone to 2025b
* doc: add dario-piotrowicz to collaborators
-------------------------------------------------------------------
Thu Jun 12 08:44:09 UTC 2025 - Adam Majer <adam.majer@suse.de>
- Update to 20.19.2:
* fix error handling on async crypto operation (bsc#1243218, CVE-2025-23166)
* add missing call to uv_fs_req_cleanup (bsc#1243217, CVE-2025-23165)
* update llhttp to 9.2.0 (bsc#1243220, CVE-2025-23167)
- Changes in 20.19.1:
* deps: update undici to 6.21.2
* dns: restore dns query cache ttl
- fix_ci_tests.patch: refreshed
-------------------------------------------------------------------
Tue Apr 8 13:11:37 UTC 2025 - Adam Majer <adam.majer@suse.de>
- Update to 20.19.0:
* esm: mark import attributes and JSON module as stable
* module:
+ require(esm) is now enabled by default
+ Module syntax detection is now enabled by default
* worker: add postMessageToThread
- Build with PIE (bsc#1239949)
- nodejs-libpath.patch: refreshed
-------------------------------------------------------------------
Wed Jan 22 11:23:00 UTC 2025 - Adam Majer <adam.majer@suse.de>
- Update to 20.18.2:
* src,loader,permission: throw on InternalWorker use when
permission model is enabled (bsc#1236251, CVE-2025-23083)
* src: fix HTTP2 mem leak on premature close and ERR_PROTO
(bsc#1236250, CVE-2025-23085)
* deps: Use of Insufficiently Random Values in undici fetch()
(bsc#1236258, CVE-2025-22150)
-------------------------------------------------------------------
Wed Dec 4 16:32:55 UTC 2024 - Adam Majer <adam.majer@suse.de>
- Update to 20.18.1
* Experimental Network Inspection Support in Node.js
* Exposes X509_V_FLAG_PARTIAL_CHAIN to tls.createSecureContext
* New option for vm.createContext() to create a context with a
freezable globalThis
* buffer: optimize createFromString
- Changes in 20.17.0:
* module: support require()ing synchronous ESM graphs
* path: add matchesGlob method
* stream: expose DuplexPair API
- Changes in 20.16.0:
* process: add process.getBuiltinModule(id)
* inspector: fix disable async hooks on Debugger.setAsyncCallStackDepth
* buffer: add .bytes() method to Blob
- CVE-2024-21538.patch: fixes regular expression denial of service
(bsc#1233856, CVE-2024-21538)
- linker_lto_jobs.patch: refreshed
- fix_ci_tests.patch: fix dns test vs. older c-ares
- nodejs.keyring: sync keys with upstream
-------------------------------------------------------------------
Fri Jul 12 13:21:02 UTC 2024 - Adam Majer <adam.majer@suse.de>
- Update to 20.15.1:
* Bypass incomplete fix of CVE-2024-27980 (bsc#1227560, CVE-2024-36138)
* Bypass network import restriction via data URL (bsc#1227554, CVE-2024-22020)
* fs.lstat bypasses permission model (bsc#1227562, CVE-2024-22018)
* fs.fchown/fchmod bypasses permission model (bsc#1227561, CVE-2024-36137)
* Permission model improperly processes UNC paths (bsc#1227563, CVE-2024-37372)
- Changes in 20.15.0:
* test_runner: support test plans
* inspector: introduce the --inspect-wait flag
* zlib: expose zlib.crc32()
* cli: allow running wasm in limited vmem with --disable-wasm-trap-handler
- Changes in 20.14.0
* src,permission: throw async errors on async APIs
* test_runner: support forced exit
- fix_ci_tests.patch, npm_search_paths.patch: refreshed
- skip_no_console.patch: dropped, upstreamed
-------------------------------------------------------------------
Tue May 28 11:56:14 UTC 2024 - Adam Majer <adam.majer@suse.de>
- Update to 20.13.1:
* buffer: improve base64 and base64url performance
* crypto: deprecate implicitly shortened GCM tags
* events,doc: mark CustomEvent as stable
* fs: add stacktrace to fs/promises
* report: add --report-exclude-network option
* src: add uv_get_available_memory to report and process
* stream: support typed arrays
* util: support array of formats in util.styleText
* v8: implement v8.queryObjects() for memory leak regression testing
* watch: mark as stable
- versioned.patch: refreshed
- cares_sle12_capabilities.patch: SLES12 compatibility
-------------------------------------------------------------------
Tue Apr 9 12:30:22 UTC 2024 - Adam Majer <adam.majer@suse.de>
- Update to 20.12.1:
* CVE-2024-27983 - Assertion failed in node::http2::Http2Session::~Http2Session()
leads to HTTP/2 server crash- (High) (bsc#1222244)
* CVE-2024-27982 - HTTP Request Smuggling via Content Length
Obfuscation- (Medium) (bsc#1222384)
* updated dependencies:
+ llhttp version 9.2.1
+ undici version 5.28.4 (bsc#1222530, bsc#1222603,
CVE-2024-30260, CVE-2024-30261)
- node-gyp-addon-gypi.patch: adapted for new unit test layouts
- fix_ci_tests.patch: add benchmark fix
-------------------------------------------------------------------
Tue Apr 2 14:39:07 UTC 2024 - Adam Majer <adam.majer@suse.de>
- Update to 20.12.0:
* crypto: implement crypto.hash()
* util: add loading and parsing environment variables
* new connection attempt events: connectionAttempt,
connectionAttemptFailed, connectionAttemptTimeout
* sea: support embedding assets
* support configurable snapshot through --build-snapshot-config flag
* util.styleText(format, text): This function returns a formatted
text considering the format passed.
* vm: support using the default loader to handle dynamic import()
- c-ares-fixes.patch: removed, upstreamed
- nodejs-libpath.patch, versioned.patch: refreshed
-------------------------------------------------------------------
Fri Feb 16 16:04:46 UTC 2024 - Adam Majer <adam.majer@suse.de>
- Update to 20.11.1: (security updates)
* (CVE-2024-21892, bsc#1219992) - Code injection and privilege escalation through Linux capabilities- (High)
* (CVE-2024-22019, bsc#1219993) - http: Reading unprocessed HTTP request with unbounded chunk extension allows DoS attacks- (High)
* (CVE-2024-21896, bsc#1219994) - Path traversal by monkey-patching Buffer internals- (High)
* (CVE-2024-22017, bsc#1219995) - setuid() does not drop all privileges due to io_uring - (High)
* (CVE-2023-46809, bsc#1219997) - Node.js is vulnerable to the Marvin Attack (timing variant of the Bleichenbacher attack against PKCS#1 v1.5 padding) - (Medium)
* (CVE-2024-21891, bsc#1219998) - Multiple permission model bypasses due to improper path traversal sequence sanitization - (Medium)
* (CVE-2024-21890, bsc#1219999) - Improper handling of wildcards in --allow-fs-read and --allow-fs-write (Medium)
* (CVE-2024-22025, bsc#1220014) - Denial of Service by resource exhaustion in fetch() brotli decoding - (Medium)
* undici version 5.28.3 (CVE-2024-24758, bsc#1220017)
* libuv version 1.48.0 (CVE-2024-24806, bsc#1220053)
-------------------------------------------------------------------
Mon Feb 12 14:27:04 UTC 2024 - Adam Majer <adam.majer@suse.de>
- update to 20.11.0:
* esm: add import.meta.dirname and import.meta.filename
* fs: add c++ fast path for writeFileSync utf8
* module: remove useCustomLoadersIfPresent flag
* module: bootstrap module loaders in shadow realm
* src: add --disable-warning option
* src: create per isolate proxy env template
* src: make process binding data weak
* stream: use Array for Readable buffer
* stream: 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
- c-ares-fixes.patch, fix_ci_tests.patch: refreshed
-------------------------------------------------------------------
Mon Jan 29 10:04:22 UTC 2024 - Adam Majer <adam.majer@suse.de>
- fix_ci_tests.patch: disable test_crypto_fips for openssl 3.x,
to be fixed soon (bsc#1219152)
-------------------------------------------------------------------
Mon Jan 8 15:36:04 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares-fixes.patch: add additional backports for unit test fixes
-------------------------------------------------------------------
Tue Jan 2 16:14:58 UTC 2024 - Adam Majer <adam.majer@suse.de>
- c-ares-fixes.patch: fixes unit tests for new c-ares
-------------------------------------------------------------------
Thu Nov 23 08:02:58 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.10.0
- Update to 20.10.0:
* --experimental-default-type flag to flip module defaults
* The new flag --experimental-detect-module can be used to
automatically run ES modules when their syntax can be detected.
* Added flush option in file system functions for fs.writeFile functions
* Added experimental WebSocket client
* vm: fix V8 compilation cache support for vm.Script. This fixes
performance regression since v16.x when support for
importModuleDynamically was added to vm.Script
For details, see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.10.0
- nodejs20-zlib-1.3.patch: upstreamed, removed
- fix_ci_tests.patch, node-gyp-addon-gypi.patch: refreshed
-------------------------------------------------------------------
Thu Nov 9 09:05:33 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to 20.9.0:
* No changes, just LTS transition
-------------------------------------------------------------------
Fri Oct 27 09:10:38 UTC 2023 - Adam Majer <adam.majer@suse.de>
- fix_ci_tests.patch: adapt for openssl 3.1.4
--------------------------------------------------------------------
Tue Oct 24 11:21:41 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
- Add nodejs20-zlib-1.3.patch: Support zlib version with only
major.minor versions, like zlib 1.3.
------------------------------------------------------------------
Mon Oct 16 09:28:06 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.8.1
- Security fixes relase 20.8.1
* (CVE-2023-44487, bsc#1216190): nghttp2 Security Release
* (CVE-2023-45143, bsc#1216205): undici Security Release
* (CVE-2023-39332, bsc#1216271): Path traversal through path stored in Uint8Array
* (CVE-2023-39331, bsc#1216270): Permission model improperly protects against path traversal
* (CVE-2023-38552, bsc#1216272): Integrity checks according to policies can be circumvented
* (CVE-2023-39333, bsc#1216273): Code injection via WebAssembly export names
- fix_ci_tests.patch: refreshed
-------------------------------------------------------------------
Thu Oct 5 13:45:41 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.8.0
- Update to 20.8.0:
* Stream performance improvements
* Rework of memory management in vm APIs with the importModuleDynamically
option
* test_runner:
+ accept testOnly in run
+ add junit reporter
- fix_ci_tests.patch: refreshed
-------------------------------------------------------------------
Tue Sep 19 14:40:13 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.7.0
- Update to 20.7.0:
* src: support multiple --env-file declarations
* deps: upgrade npm to 10.1.0
* doc: move and rename loaders section
* lib: add api to detect whether source-maps are enabled
* src,permission: add multiple allow-fs-* flags
* test_runner: expose location of tests
- z13.patch: upstreamed
-------------------------------------------------------------------
Mon Sep 18 10:08:42 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to 20.6.1:
* f0ff63fbc32ea55f3d92c5c89fdb91ec47786859.patch: removed, upstreamed
-------------------------------------------------------------------
Fri Sep 8 10:46:20 UTC 2023 - Adam Majer <adam.majer@suse.de>
- f0ff63fbc32ea55f3d92c5c89fdb91ec47786859.patch: fixes issues with
Angular and other software that tries to load ECM modules in
somewhat circular fashion ending up with multiple executions.
-------------------------------------------------------------------
Tue Sep 5 09:29:49 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.6.0
- Update to 20.6.0:
* add support for .env files to configure envrionment variables
* import.meta.resolve unflagged
* deps: npm updated to 9.8.1
- nodejs.keyring: updated to include current upstream releasers
-------------------------------------------------------------------
Fri Aug 25 14:34:21 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Temporarily bundle ICU for SLE15 SP6 (jsc#PED-4819)
-------------------------------------------------------------------
Thu Aug 10 13:51:20 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to version 20.5.1:
* (CVE-2023-32002, bsc#1214150): Policies can be bypassed
via Module._load (High)
* (CVE-2023-32558, bsc#1214155): process.binding() can bypass
the permission model through path traversal (High)
* (CVE-2023-32004, bsc#1214152): Permission model can be bypassed
by specifying a path traversal sequence in a Buffer (High)
* (CVE-2023-32006, bsc#1214156): Policies can be bypassed
by module.constructor.createRequire (Medium)
* (CVE-2023-32559, bsc#1214154): Policies can be bypassed
via process.binding (Medium)
* (CVE-2023-32005, bsc#1214153): fs.statfs can bypass
the permission model (Low)
* (CVE-2023-32003, bsc#1214151): fs.mkdtemp() and fs.mkdtempSync()
can bypass the permission model (Low)
- Changes in 20.5.0:
* events: allow safely adding listener to abortSignal
* fs: add a fast-path for readFileSync utf-8
* test_runner: add shards support
- Changes in 20.4.0:
* tls: add ALPNCallback server option for dynamic ALPN negotiation
* adds support for ECMAScript Explicit Resource Management
* adds Mock Timer support to test module
For details see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.5.1
versioned.patch: refreshed
-------------------------------------------------------------------
Wed Jun 21 11:24:39 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to version 20.3.1 (security fixes only). The following
CVEs are fixed in this release:
* (CVE-2023-30581, bsc#1212574): mainModule.__proto__ Bypass
Experimental Policy Mechanism (High)
* (CVE-2023-30584, bsc#1212575): Path Traversal Bypass in
Experimental Permission Model (High)
* (CVE-2023-30587, bsc#1212576): Bypass of Experimental
Permission Model via Node.js Inspector (High)
* (CVE-2023-30582, bsc#1212577): Inadequate Permission Model
Allows Unauthorized File Watching (Medium)
* (CVE-2023-30583, bsc#1212578): Bypass of Experimental
Permission Model via fs.openAsBlob() (Medium)
* (CVE-2023-30585, bsc#1212579): Privilege escalation via
Malicious Registry Key manipulation during Node.js
installer repair process (Medium)
* (CVE-2023-30586, bsc#1212580): Bypass of Experimental
Permission Model via Arbitrary OpenSSL Engines (Medium)
* (CVE-2023-30588, bsc#1212581): Process interuption due to invalid
Public Key information in x509 certificates (Medium)
* (CVE-2023-30589, bsc#1212582): HTTP Request Smuggling via
Empty headers separated by CR (Medium)
* (CVE-2023-30590, bsc#1212583): DiffieHellman does not
generate keys after setting a private key (Medium)
-------------------------------------------------------------------
Thu Jun 15 11:25:18 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to version 20.3.0:
* deps: upgrade to libuv 1.45.0, including significant performance
improvements to file system operations on Linux
* module: change default resolver to not throw on unknown scheme
* stream: deprecate asIndexedPairs
- versioned.patch, fix_ci_tests.patch: refreshed
- openssl3_1-adapt_tests.patch: upstreamed and removed
For details see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.3.0
-------------------------------------------------------------------
Mon May 22 14:45:27 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Fix build on SLE12SP5
-------------------------------------------------------------------
Fri May 19 12:17:15 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to version 20.2.0:
* http: prevent writing to the body when not allowed by HTTP spec
* sea: add option to disable the experimental SEA warning
* test_runner: add skip, todo, and only shorthands to test
* url: add value argument to URLSearchParams has and delete methods
For details see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.2.0
-------------------------------------------------------------------
Mon May 15 14:03:24 UTC 2023 - Adam Majer <adam.majer@suse.de>
- fix_ci_tests.patch: increase default timeout on unit tests
to 20min from 2min. This seems to have lead to build failures
on some platforms, like s390x in Factory. (bsc#1211407)
-------------------------------------------------------------------
Fri May 12 07:52:30 UTC 2023 - Adam Majer <adam.majer@suse.de>
- z13.patch: fixes illegal instruction error on z13 and older s390
-------------------------------------------------------------------
Thu May 10 13:09:58 UTC 2023 - Otto Hollmann <otto.hollmann@suse.com>
- Adapt tests for OpenSSL 3.1 [bsc#1209430]
* Add openssl3_1-adapt_tests.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu May 4 13:26:26 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.1.0 Thu May 4 13:26:26 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.1.0

View File

@@ -1,7 +1,7 @@
# #
# spec file for package nodejs20 # spec file for package nodejs20
# #
# Copyright (c) 2022 SUSE LLC # Copyright (c) 2024 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -31,7 +31,7 @@
%endif %endif
Name: nodejs20 Name: nodejs20
Version: 20.1.0 Version: 20.20.0
Release: 0 Release: 0
# Double DWZ memory limits # Double DWZ memory limits
@@ -49,6 +49,11 @@ Release: 0
%bcond_with libalternatives %bcond_with libalternatives
%endif %endif
# nodejs20+ is not for SLE12
%if %{node_version_number} >= 20 && 0%{?suse_version} > 0 && 0%{?suse_version} < 1500
ExclusiveArch do_not_build
%endif
%if %node_version_number >= 12 %if %node_version_number >= 12
%define openssl_req_ver 1.1.1 %define openssl_req_ver 1.1.1
%else %else
@@ -88,7 +93,7 @@ Release: 0
%bcond_without intree_openssl %bcond_without intree_openssl
%endif %endif
%if 0%{?suse_version} >= 1330 || 0%{?fedora_version} >= 35 %if 0%{?suse_version} >= 1530 || 0%{?fedora_version} >= 35
%bcond_with intree_cares %bcond_with intree_cares
%else %else
%bcond_without intree_cares %bcond_without intree_cares
@@ -137,15 +142,18 @@ Source5: node-gyp_7.1.2.tar.xz
Source10: update_npm_tarball.sh Source10: update_npm_tarball.sh
Source11: node_modules.tar.xz Source11: node_modules.tar.xz
Source20: bash_output_helper.bash Source20: bash_output_helper.bash
Source21: README.md
## Patches not distribution specific ## Patches not distribution specific
Patch1: cares_public_headers.patch Patch1: cares_public_headers.patch
Patch3: fix_ci_tests.patch Patch3: fix_ci_tests.patch
Patch4: cares_sle12_capabilities.patch
Patch5: sle12_python3_compat.patch Patch5: sle12_python3_compat.patch
Patch7: manual_configure.patch Patch7: manual_configure.patch
Patch13: openssl_binary_detection.patch Patch13: openssl_binary_detection.patch
Patch82: CVE-2024-21538.patch
## Patches specific to SUSE and openSUSE ## Patches specific to SUSE and openSUSE
Patch100: linker_lto_jobs.patch Patch100: linker_lto_jobs.patch
@@ -159,7 +167,6 @@ Patch102: node-gyp-addon-gypi.patch
# PATCH-FIX-OPENSUSE -- install user global npm packages to /usr/local # PATCH-FIX-OPENSUSE -- install user global npm packages to /usr/local
# instead of /usr # instead of /usr
Patch104: npm_search_paths.patch Patch104: npm_search_paths.patch
Patch106: skip_no_console.patch
Patch110: legacy_python.patch Patch110: legacy_python.patch
Patch120: flaky_test_rerun.patch Patch120: flaky_test_rerun.patch
@@ -194,10 +201,10 @@ BuildRequires: config(netcfg)
%if 0%{?suse_version} == 1110 %if 0%{?suse_version} == 1110
# GCC 5 is only available in the SUSE:SLE-11:SP4:Update repository (SDK). # GCC 5 is only available in the SUSE:SLE-11:SP4:Update repository (SDK).
%if %node_version_number >= 8 %if %node_version_number >= 8
BuildRequires: gcc5-c++ BuildRequires: gcc5-c++
%define forced_gcc_version 5 %define forced_gcc_version 5
%else %else
BuildRequires: gcc48-c++ BuildRequires: gcc48-c++
%define forced_gcc_version 4.8 %define forced_gcc_version 4.8
%endif %endif
%endif %endif
@@ -207,15 +214,16 @@ BuildRequires: gcc48-c++
# for SLE-12:Update targets # for SLE-12:Update targets
%if 0%{?suse_version} == 1315 %if 0%{?suse_version} == 1315
%if %node_version_number >= 17 %if %node_version_number >= 17
BuildRequires: gcc12-c++ BuildRequires: gcc12-c++
BuildRequires: gcc12-PIE
%define forced_gcc_version 12 %define forced_gcc_version 12
%else %else
%if %node_version_number >= 14 %if %node_version_number >= 14
BuildRequires: gcc9-c++ BuildRequires: gcc9-c++
%define forced_gcc_version 9 %define forced_gcc_version 9
%else %else
%if %node_version_number >= 8 %if %node_version_number >= 8
BuildRequires: gcc7-c++ BuildRequires: gcc7-c++
%define forced_gcc_version 7 %define forced_gcc_version 7
%endif %endif
%endif %endif
@@ -224,7 +232,8 @@ BuildRequires: gcc7-c++
%if 0%{?suse_version} == 1500 %if 0%{?suse_version} == 1500
%if %node_version_number >= 17 %if %node_version_number >= 17
BuildRequires: gcc12-c++ BuildRequires: gcc12-c++
BuildRequires: gcc12-PIE
%define forced_gcc_version 12 %define forced_gcc_version 12
%endif %endif
%endif %endif
@@ -239,11 +248,19 @@ BuildRequires: gcc-c++
# Python dependencies # Python dependencies
%if %node_version_number >= 14 %if %node_version_number >= 14
%if 0%{?suse_version} && 0%{?suse_version} < 1500 %if 0%{?suse_version}
%if 0%{?suse_version} < 1500
BuildRequires: python36 BuildRequires: python36
%define forced_python_version 3.6m %define forced_python_version 3.6m
%else %endif
%if %{?suse_version} == 1500
BuildRequires: python311
%define forced_python_version 3.11
%endif
%if %{?suse_version} > 1500
BuildRequires: python3 BuildRequires: python3
BuildRequires: python3-setuptools
%endif
%endif %endif
%else %else
@@ -292,7 +309,7 @@ BuildRequires: openssl >= %{openssl_req_ver}
%else %else
# bundled openssl # bundled openssl
%if %node_version_number <= 12 && 0%{?suse_version} == 1315 && 0%{?sle_version} < 120400 %if %node_version_number <= 12 && 0%{?suse_version} == 1315 && 0%{?sle_version} < 120400
Provides: bundled(openssl) = 3.0.8 Provides: bundled(openssl) = 3.0.17
%else %else
BuildRequires: bundled_openssl_should_not_be_required BuildRequires: bundled_openssl_should_not_be_required
%endif %endif
@@ -303,19 +320,26 @@ BuildRequires: bundled_openssl_should_not_be_required
%if ! 0%{with intree_cares} %if ! 0%{with intree_cares}
BuildRequires: pkgconfig(libcares) >= 1.17.0 BuildRequires: pkgconfig(libcares) >= 1.17.0
%else %else
Provides: bundled(libcares2) = 1.19.0 Provides: bundled(libcares2) = 1.34.6
%endif
%if %node_version_number >= 22
BuildRequires: libzstd-devel
%if 0%{?suse_version} > 1500
BuildRequires: sqlite3-devel
%endif
%endif %endif
%if ! 0%{with intree_icu} %if ! 0%{with intree_icu}
BuildRequires: pkgconfig(icu-i18n) >= 71 BuildRequires: pkgconfig(icu-i18n) >= 71
%else %else
Provides: bundled(icu) = 72.1 Provides: bundled(icu) = 77.1
%endif %endif
%if ! 0%{with intree_nghttp2} %if ! 0%{with intree_nghttp2}
BuildRequires: libnghttp2-devel >= 1.41.0 BuildRequires: libnghttp2-devel >= 1.41.0
%else %else
Provides: bundled(nghttp2) = 1.52.0 Provides: bundled(nghttp2) = 1.61.0
%endif %endif
%if 0%{with valgrind_tests} %if 0%{with valgrind_tests}
@@ -364,24 +388,30 @@ ExclusiveArch: not_buildable
%endif %endif
%endif %endif
Provides: bundled(uvwasi) = 0.0.16 Provides: bundled(uvwasi) = 0.0.23
Provides: bundled(libuv) = 1.44.2 Provides: bundled(libuv) = 1.46.0
Provides: bundled(v8) = 11.3.244.4 Provides: bundled(v8) = 11.3.244.8
%if %{with intree_brotli} %if %{with intree_brotli}
Provides: bundled(brotli) = 1.0.9 Provides: bundled(brotli) = 1.1.0
%else %else
BuildRequires: pkgconfig(libbrotlidec) BuildRequires: pkgconfig(libbrotlidec)
%endif %endif
Provides: bundled(llhttp) = 8.1.0 Provides: bundled(llhttp) = 9.3.0
Provides: bundled(ngtcp2) = 0.8.1 Provides: bundled(ngtcp2) = 1.1.0
Provides: bundled(base64) = 0.5.0
Provides: bundled(simdutf) = 3.2.7 Provides: bundled(simdutf) = 6.4.2
# bundled url-ada parser, not ada # bundled url-ada parser, not ada
Provides: bundled(ada) = 2.0.0 Provides: bundled(ada) = 2.9.2
Provides: bundled(node-acorn) = 8.15.0
Provides: bundled(node-acorn-walk) = 8.3.4
Provides: bundled(node-cjs-module-lexer) = 2.1.0
Provides: bundled(node-corepack) = 0.34.1
Provides: bundled(node-minimatch) = 10.0.3
Provides: bundled(node-undici) = 6.23.0
%description %description
Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js
@@ -410,7 +440,7 @@ Requires: nodejs-common
Requires: nodejs20 = %{version} Requires: nodejs20 = %{version}
Provides: nodejs-npm = %{version} Provides: nodejs-npm = %{version}
Obsoletes: nodejs-npm < 4.0.0 Obsoletes: nodejs-npm < 4.0.0
Provides: npm(npm) = 9.6.4 Provides: npm(npm) = 10.8.2
Provides: npm = %{version} Provides: npm = %{version}
%if 0%{?suse_version} >= 1500 %if 0%{?suse_version} >= 1500
%if %{node_version_number} >= 10 %if %{node_version_number} >= 10
@@ -418,122 +448,91 @@ Requires: user(nobody)
Requires: group(nobody) Requires: group(nobody)
%endif %endif
%endif %endif
Provides: bundled(node-abbrev) = 1.1.1
Provides: bundled(node-abbrev) = 2.0.0 Provides: bundled(node-abbrev) = 2.0.0
Provides: bundled(node-abort-controller) = 3.0.0 Provides: bundled(node-agent-base) = 7.1.1
Provides: bundled(node-agent-base) = 6.0.2
Provides: bundled(node-agentkeepalive) = 4.3.0
Provides: bundled(node-aggregate-error) = 3.1.0 Provides: bundled(node-aggregate-error) = 3.1.0
Provides: bundled(node-ansi-regex) = 5.0.1 Provides: bundled(node-ansi-regex) = 5.0.1
Provides: bundled(node-ansi-regex) = 6.0.1
Provides: bundled(node-ansi-styles) = 4.3.0 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-aproba) = 2.0.0
Provides: bundled(node-archy) = 1.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-balanced-match) = 1.0.2 Provides: bundled(node-balanced-match) = 1.0.2
Provides: bundled(node-base64-js) = 1.5.1 Provides: bundled(node-bin-links) = 4.0.4
Provides: bundled(node-bin-links) = 4.0.1 Provides: bundled(node-binary-extensions) = 2.3.0
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-brace-expansion) = 2.0.1
Provides: bundled(node-buffer) = 6.0.3 Provides: bundled(node-cacache) = 18.0.3
Provides: bundled(node-builtins) = 5.0.1 Provides: bundled(node-chalk) = 5.3.0
Provides: bundled(node-cacache) = 16.1.3
Provides: bundled(node-cacache) = 17.0.5
Provides: bundled(node-chalk) = 4.1.2
Provides: bundled(node-chownr) = 2.0.0 Provides: bundled(node-chownr) = 2.0.0
Provides: bundled(node-ci-info) = 3.8.0 Provides: bundled(node-ci-info) = 4.0.0
Provides: bundled(node-cidr-regex) = 3.1.1 Provides: bundled(node-cidr-regex) = 4.1.1
Provides: bundled(node-clean-stack) = 2.2.0 Provides: bundled(node-clean-stack) = 2.2.0
Provides: bundled(node-cli-columns) = 4.0.0 Provides: bundled(node-cli-columns) = 4.0.0
Provides: bundled(node-cli-table3) = 0.6.3 Provides: bundled(node-cmd-shim) = 6.0.3
Provides: bundled(node-clone) = 1.0.4
Provides: bundled(node-cmd-shim) = 6.0.1
Provides: bundled(node-color-convert) = 2.0.1 Provides: bundled(node-color-convert) = 2.0.1
Provides: bundled(node-color-name) = 1.1.4 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-common-ancestor-path) = 1.0.1
Provides: bundled(node-concat-map) = 0.0.1 Provides: bundled(node-cross-spawn) = 7.0.3
Provides: bundled(node-console-control-strings) = 1.1.0
Provides: bundled(node-cssesc) = 3.0.0 Provides: bundled(node-cssesc) = 3.0.0
Provides: bundled(node-debug) = 4.3.4 Provides: bundled(node-debug) = 4.3.5
Provides: bundled(node-defaults) = 1.0.4 Provides: bundled(node-diff) = 5.2.0
Provides: bundled(node-delegates) = 1.0.0 Provides: bundled(node-eastasianwidth) = 0.2.0
Provides: bundled(node-depd) = 2.0.0
Provides: bundled(node-diff) = 5.1.0
Provides: bundled(node-emoji-regex) = 8.0.0 Provides: bundled(node-emoji-regex) = 8.0.0
Provides: bundled(node-emoji-regex) = 9.2.2
Provides: bundled(node-encoding) = 0.1.13 Provides: bundled(node-encoding) = 0.1.13
Provides: bundled(node-env-paths) = 2.2.1 Provides: bundled(node-env-paths) = 2.2.1
Provides: bundled(node-err-code) = 2.0.3 Provides: bundled(node-err-code) = 2.0.3
Provides: bundled(node-event-target-shim) = 5.0.1 Provides: bundled(node-exponential-backoff) = 3.1.1
Provides: bundled(node-events) = 3.3.0
Provides: bundled(node-fastest-levenshtein) = 1.0.16 Provides: bundled(node-fastest-levenshtein) = 1.0.16
Provides: bundled(node-foreground-child) = 3.2.1
Provides: bundled(node-fs-minipass) = 2.1.0 Provides: bundled(node-fs-minipass) = 2.1.0
Provides: bundled(node-fs-minipass) = 3.0.1 Provides: bundled(node-fs-minipass) = 3.0.3
Provides: bundled(node-fs.realpath) = 1.0.0 Provides: bundled(node-glob) = 10.4.2
Provides: bundled(node-function-bind) = 1.1.1
Provides: bundled(node-gauge) = 4.0.4
Provides: bundled(node-gauge) = 5.0.0
Provides: bundled(node-glob) = 7.2.3
Provides: bundled(node-glob) = 8.1.0
Provides: bundled(node-glob) = 9.3.2
Provides: bundled(node-graceful-fs) = 4.2.11 Provides: bundled(node-graceful-fs) = 4.2.11
Provides: bundled(node-has) = 1.0.3 Provides: bundled(node-hosted-git-info) = 7.0.2
Provides: bundled(node-has-flag) = 4.0.0
Provides: bundled(node-has-unicode) = 2.0.1
Provides: bundled(node-hosted-git-info) = 6.1.1
Provides: bundled(node-http-cache-semantics) = 4.1.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.2
Provides: bundled(node-https-proxy-agent) = 5.0.1 Provides: bundled(node-https-proxy-agent) = 7.0.5
Provides: bundled(node-humanize-ms) = 1.2.1
Provides: bundled(node-iconv-lite) = 0.6.3 Provides: bundled(node-iconv-lite) = 0.6.3
Provides: bundled(node-ieee754) = 1.2.1 Provides: bundled(node-ignore-walk) = 6.0.5
Provides: bundled(node-ignore-walk) = 6.0.2
Provides: bundled(node-imurmurhash) = 0.1.4 Provides: bundled(node-imurmurhash) = 0.1.4
Provides: bundled(node-indent-string) = 4.0.0 Provides: bundled(node-indent-string) = 4.0.0
Provides: bundled(node-infer-owner) = 1.0.4 Provides: bundled(node-ini) = 4.1.3
Provides: bundled(node-inflight) = 1.0.6 Provides: bundled(node-init-package-json) = 6.0.3
Provides: bundled(node-inherits) = 2.0.4 Provides: bundled(node-ip-address) = 9.0.5
Provides: bundled(node-ini) = 3.0.1 Provides: bundled(node-ip-regex) = 5.0.0
Provides: bundled(node-init-package-json) = 5.0.0 Provides: bundled(node-is-cidr) = 5.1.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.11.0
Provides: bundled(node-is-fullwidth-code-point) = 3.0.0 Provides: bundled(node-is-fullwidth-code-point) = 3.0.0
Provides: bundled(node-is-lambda) = 1.0.1 Provides: bundled(node-is-lambda) = 1.0.1
Provides: bundled(node-isexe) = 2.0.0 Provides: bundled(node-isexe) = 2.0.0
Provides: bundled(node-json-parse-even-better-errors) = 3.0.0 Provides: bundled(node-isexe) = 3.1.1
Provides: bundled(node-jackspeak) = 3.4.0
Provides: bundled(node-jsbn) = 1.1.0
Provides: bundled(node-json-parse-even-better-errors) = 3.0.2
Provides: bundled(node-json-stringify-nice) = 1.1.4 Provides: bundled(node-json-stringify-nice) = 1.1.4
Provides: bundled(node-jsonparse) = 1.3.1 Provides: bundled(node-jsonparse) = 1.3.1
Provides: bundled(node-just-diff) = 6.0.2 Provides: bundled(node-just-diff) = 6.0.2
Provides: bundled(node-just-diff-apply) = 5.5.0 Provides: bundled(node-just-diff-apply) = 5.5.0
Provides: bundled(node-libnpmaccess) = 7.0.2 Provides: bundled(node-libnpmaccess) = 8.0.6
Provides: bundled(node-libnpmdiff) = 5.0.15 Provides: bundled(node-libnpmdiff) = 6.1.4
Provides: bundled(node-libnpmexec) = 5.0.15 Provides: bundled(node-libnpmexec) = 8.1.3
Provides: bundled(node-libnpmfund) = 4.0.15 Provides: bundled(node-libnpmfund) = 5.0.12
Provides: bundled(node-libnpmhook) = 9.0.3 Provides: bundled(node-libnpmhook) = 10.0.5
Provides: bundled(node-libnpmorg) = 5.0.3 Provides: bundled(node-libnpmorg) = 6.0.6
Provides: bundled(node-libnpmpack) = 5.0.15 Provides: bundled(node-libnpmpack) = 7.0.4
Provides: bundled(node-libnpmpublish) = 7.1.3 Provides: bundled(node-libnpmpublish) = 9.0.9
Provides: bundled(node-libnpmsearch) = 6.0.2 Provides: bundled(node-libnpmsearch) = 7.0.6
Provides: bundled(node-libnpmteam) = 5.0.3 Provides: bundled(node-libnpmteam) = 6.0.5
Provides: bundled(node-libnpmversion) = 4.0.2 Provides: bundled(node-libnpmversion) = 6.0.3
Provides: bundled(node-lru-cache) = 6.0.0 Provides: bundled(node-lru-cache) = 10.2.2
Provides: bundled(node-lru-cache) = 7.18.3 Provides: bundled(node-make-fetch-happen) = 13.0.1
Provides: bundled(node-make-fetch-happen) = 10.2.1 Provides: bundled(node-minimatch) = 9.0.5
Provides: bundled(node-make-fetch-happen) = 11.0.3
Provides: bundled(node-minimatch) = 3.1.2
Provides: bundled(node-minimatch) = 5.1.6
Provides: bundled(node-minimatch) = 7.4.3
Provides: bundled(node-minipass) = 3.3.6 Provides: bundled(node-minipass) = 3.3.6
Provides: bundled(node-minipass) = 4.2.5 Provides: bundled(node-minipass) = 5.0.0
Provides: bundled(node-minipass-collect) = 1.0.2 Provides: bundled(node-minipass) = 7.1.2
Provides: bundled(node-minipass-fetch) = 2.1.2 Provides: bundled(node-minipass-collect) = 2.0.1
Provides: bundled(node-minipass-fetch) = 3.0.1 Provides: bundled(node-minipass-fetch) = 3.0.5
Provides: bundled(node-minipass-flush) = 1.0.5 Provides: bundled(node-minipass-flush) = 1.0.5
Provides: bundled(node-minipass-json-stream) = 1.0.1
Provides: bundled(node-minipass-pipeline) = 1.2.4 Provides: bundled(node-minipass-pipeline) = 1.2.4
Provides: bundled(node-minipass-sized) = 1.0.3 Provides: bundled(node-minipass-sized) = 1.0.3
Provides: bundled(node-minizlib) = 2.1.2 Provides: bundled(node-minizlib) = 2.1.2
@@ -542,83 +541,76 @@ Provides: bundled(node-ms) = 2.1.2
Provides: bundled(node-ms) = 2.1.3 Provides: bundled(node-ms) = 2.1.3
Provides: bundled(node-mute-stream) = 1.0.0 Provides: bundled(node-mute-stream) = 1.0.0
Provides: bundled(node-negotiator) = 0.6.3 Provides: bundled(node-negotiator) = 0.6.3
Provides: bundled(node-node-gyp) = 9.3.1 Provides: bundled(node-node-gyp) = 10.1.0
Provides: bundled(node-nopt) = 6.0.0 Provides: bundled(node-nopt) = 7.2.1
Provides: bundled(node-nopt) = 7.1.0 Provides: bundled(node-normalize-package-data) = 6.0.2
Provides: bundled(node-normalize-package-data) = 5.0.0 Provides: bundled(node-npm-audit-report) = 5.0.0
Provides: bundled(node-npm-audit-report) = 4.0.0 Provides: bundled(node-npm-bundled) = 3.0.1
Provides: bundled(node-npm-bundled) = 3.0.0 Provides: bundled(node-npm-install-checks) = 6.3.0
Provides: bundled(node-npm-install-checks) = 6.1.0 Provides: bundled(node-npm-normalize-package-bin) = 3.0.1
Provides: bundled(node-npm-normalize-package-bin) = 3.0.0 Provides: bundled(node-npm-package-arg) = 11.0.2
Provides: bundled(node-npm-package-arg) = 10.1.0 Provides: bundled(node-npm-packlist) = 8.0.2
Provides: bundled(node-npm-packlist) = 7.0.4 Provides: bundled(node-npm-pick-manifest) = 9.1.0
Provides: bundled(node-npm-pick-manifest) = 8.0.1 Provides: bundled(node-npm-profile) = 10.0.0
Provides: bundled(node-npm-profile) = 7.0.1 Provides: bundled(node-npm-registry-fetch) = 17.1.0
Provides: bundled(node-npm-registry-fetch) = 14.0.3 Provides: bundled(node-npm-user-validate) = 2.0.1
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-p-map) = 4.0.0
Provides: bundled(node-pacote) = 15.1.1 Provides: bundled(node-package-json-from-dist) = 1.0.0
Provides: bundled(node-pacote) = 18.0.6
Provides: bundled(node-parse-conflict-json) = 3.0.1 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.6.3 Provides: bundled(node-path-scurry) = 1.11.1
Provides: bundled(node-postcss-selector-parser) = 6.0.11 Provides: bundled(node-postcss-selector-parser) = 6.1.0
Provides: bundled(node-proc-log) = 3.0.0 Provides: bundled(node-proc-log) = 3.0.0
Provides: bundled(node-process) = 0.11.10 Provides: bundled(node-proc-log) = 4.2.0
Provides: bundled(node-proggy) = 2.0.0
Provides: bundled(node-promise-all-reject-late) = 1.0.1 Provides: bundled(node-promise-all-reject-late) = 1.0.1
Provides: bundled(node-promise-call-limit) = 1.0.2 Provides: bundled(node-promise-call-limit) = 3.0.1
Provides: bundled(node-promise-inflight) = 1.0.1 Provides: bundled(node-promise-inflight) = 1.0.1
Provides: bundled(node-promise-retry) = 2.0.1 Provides: bundled(node-promise-retry) = 2.0.1
Provides: bundled(node-promzard) = 1.0.0 Provides: bundled(node-promzard) = 1.0.2
Provides: bundled(node-qrcode-terminal) = 0.12.0 Provides: bundled(node-qrcode-terminal) = 0.12.0
Provides: bundled(node-read) = 2.0.0 Provides: bundled(node-read) = 3.0.1
Provides: bundled(node-read-cmd-shim) = 4.0.0 Provides: bundled(node-read-cmd-shim) = 4.0.0
Provides: bundled(node-read-package-json) = 6.0.1
Provides: bundled(node-read-package-json-fast) = 3.0.2 Provides: bundled(node-read-package-json-fast) = 3.0.2
Provides: bundled(node-readable-stream) = 3.6.2
Provides: bundled(node-readable-stream) = 4.3.0
Provides: bundled(node-retry) = 0.12.0 Provides: bundled(node-retry) = 0.12.0
Provides: bundled(node-rimraf) = 3.0.2
Provides: bundled(node-safe-buffer) = 5.1.2
Provides: bundled(node-safer-buffer) = 2.1.2 Provides: bundled(node-safer-buffer) = 2.1.2
Provides: bundled(node-semver) = 7.3.8 Provides: bundled(node-semver) = 7.6.2
Provides: bundled(node-set-blocking) = 2.0.0 Provides: bundled(node-shebang-command) = 2.0.0
Provides: bundled(node-signal-exit) = 3.0.7 Provides: bundled(node-shebang-regex) = 3.0.0
Provides: bundled(node-sigstore) = 1.2.0 Provides: bundled(node-signal-exit) = 4.1.0
Provides: bundled(node-sigstore) = 2.3.1
Provides: bundled(node-smart-buffer) = 4.2.0 Provides: bundled(node-smart-buffer) = 4.2.0
Provides: bundled(node-socks) = 2.7.1 Provides: bundled(node-socks) = 2.8.3
Provides: bundled(node-socks-proxy-agent) = 7.0.0 Provides: bundled(node-socks-proxy-agent) = 8.0.4
Provides: bundled(node-spdx-correct) = 3.2.0 Provides: bundled(node-spdx-correct) = 3.2.0
Provides: bundled(node-spdx-exceptions) = 2.3.0 Provides: bundled(node-spdx-exceptions) = 2.5.0
Provides: bundled(node-spdx-expression-parse) = 3.0.1 Provides: bundled(node-spdx-expression-parse) = 3.0.1
Provides: bundled(node-spdx-license-ids) = 3.0.13 Provides: bundled(node-spdx-expression-parse) = 4.0.0
Provides: bundled(node-ssri) = 10.0.2 Provides: bundled(node-spdx-license-ids) = 3.0.18
Provides: bundled(node-ssri) = 9.0.1 Provides: bundled(node-sprintf-js) = 1.1.3
Provides: bundled(node-string_decoder) = 1.1.1 Provides: bundled(node-ssri) = 10.0.6
Provides: bundled(node-string-width) = 4.2.3 Provides: bundled(node-string-width) = 4.2.3
Provides: bundled(node-string-width) = 5.1.2
Provides: bundled(node-strip-ansi) = 6.0.1 Provides: bundled(node-strip-ansi) = 6.0.1
Provides: bundled(node-supports-color) = 7.2.0 Provides: bundled(node-strip-ansi) = 7.1.0
Provides: bundled(node-tar) = 6.1.13 Provides: bundled(node-supports-color) = 9.4.0
Provides: bundled(node-tar) = 6.2.1
Provides: bundled(node-text-table) = 0.2.0 Provides: bundled(node-text-table) = 0.2.0
Provides: bundled(node-tiny-relative-date) = 1.3.0 Provides: bundled(node-tiny-relative-date) = 1.3.0
Provides: bundled(node-treeverse) = 3.0.0 Provides: bundled(node-treeverse) = 3.0.0
Provides: bundled(node-tuf-js) = 1.1.2 Provides: bundled(node-tuf-js) = 2.2.1
Provides: bundled(node-unique-filename) = 2.0.1
Provides: bundled(node-unique-filename) = 3.0.0 Provides: bundled(node-unique-filename) = 3.0.0
Provides: bundled(node-unique-slug) = 3.0.0
Provides: bundled(node-unique-slug) = 4.0.0 Provides: bundled(node-unique-slug) = 4.0.0
Provides: bundled(node-util-deprecate) = 1.0.2 Provides: bundled(node-util-deprecate) = 1.0.2
Provides: bundled(node-validate-npm-package-license) = 3.0.4 Provides: bundled(node-validate-npm-package-license) = 3.0.4
Provides: bundled(node-validate-npm-package-name) = 5.0.0 Provides: bundled(node-validate-npm-package-name) = 5.0.1
Provides: bundled(node-walk-up-path) = 1.0.0 Provides: bundled(node-walk-up-path) = 3.0.1
Provides: bundled(node-wcwidth) = 1.0.1
Provides: bundled(node-which) = 2.0.2 Provides: bundled(node-which) = 2.0.2
Provides: bundled(node-which) = 3.0.0 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-wrappy) = 1.0.2 Provides: bundled(node-wrap-ansi) = 8.1.0
Provides: bundled(node-write-file-atomic) = 5.0.0 Provides: bundled(node-write-file-atomic) = 5.0.1
Provides: bundled(node-yallist) = 4.0.0 Provides: bundled(node-yallist) = 4.0.0
%description -n npm20 %description -n npm20
@@ -653,6 +645,10 @@ echo "`grep node-v%{version}.tar.xz %{S:1} | head -n1 | cut -c1-64` %{S:0}" | s
%setup -q -n node-%{version} %setup -q -n node-%{version}
%endif %endif
%if %{node_version_number} == 16
tar zxf %{S:12}
%endif
%if %{node_version_number} <= 10 %if %{node_version_number} <= 10
rm -r deps/npm/* rm -r deps/npm/*
pushd deps/npm pushd deps/npm
@@ -666,7 +662,7 @@ tar Jxf %{SOURCE11}
%endif %endif
# downgrade node-gyp to last version that supports python 3.4 for SLE12 # downgrade node-gyp to last version that supports python 3.4 for SLE12
%if 0%{?suse_version} && 0%{?suse_version} < 1500 && %{node_version_number} >= 16 %if 0%{?suse_version} && 0%{?suse_version} < 1500 && %{node_version_number} >= 16 && %{node_version_number} < 22
rm -r deps/npm/node_modules/node-gyp rm -r deps/npm/node_modules/node-gyp
mkdir deps/npm/node_modules/node-gyp mkdir deps/npm/node_modules/node-gyp
pushd deps/npm/node_modules/node-gyp pushd deps/npm/node_modules/node-gyp
@@ -674,36 +670,42 @@ tar Jxf %{SOURCE5}
popd popd
%if %{node_version_number} >= 19 %if %{node_version_number} >= 19
%patch308 -p1 %patch -P 308 -p1
%else
%endif %endif
%endif %endif
%patch1 -p1 %patch -P 1 -p1
%patch3 -p1 %patch -P 3 -p1
%if %{node_version_number} <= 12 && 0%{?suse_version} < 1500 %if 0%{?suse_version} < 1500
%patch5 -p1 %patch -P 4 -p1
%endif %endif
%patch7 -p1 %if %{node_version_number} <= 12 && 0%{?suse_version} < 1500
%patch -P 5 -p1
%endif
%patch -P 7 -p1
%if 0%{with valgrind_tests} %if 0%{with valgrind_tests}
%endif %endif
%patch13 -p1 %patch -P 13 -p1
%patch100 -p1 %patch -P 82 -p1
%patch101 -p1 %patch -P 100 -p1
%patch102 -p1 %patch -P 101 -p1
%if 0%{?suse_version} >= 1500 || 0%{?suse_version} == 0
%patch -P 102 -p1
%endif
# Add check_output to configure script (not part of Python 2.6 in SLE11). # Add check_output to configure script (not part of Python 2.6 in SLE11).
%if 0%{?suse_version} == 1110 %if 0%{?suse_version} == 1110
%endif %endif
%patch104 -p1 %patch -P 104 -p1
%patch106 -p1 %patch -P 110 -p1
%patch110 -p1 %patch -P 120 -p1
%patch120 -p1 %patch -P 132 -p1
%patch132 -p1
%if ! 0%{with openssl_RSA_get0_pss_params} %if ! 0%{with openssl_RSA_get0_pss_params}
%endif %endif
%patch200 -p1 %patch -P 200 -p1
%patch305 -p1 %patch -P 305 -p1
%patch309 -p1 %patch -P 309 -p1
%if %{node_version_number} == 12 %if %{node_version_number} == 12
# minimist security update - patch50 # minimist security update - patch50
@@ -775,9 +777,6 @@ EOF
. ./spec.build.config . ./spec.build.config
# Node.js 4.x does not include the ICU database in the source tarball.
%define has_small_icu %(test -d "deps/icu-small" && echo 1 || echo 0)
./configure \ ./configure \
--prefix=%{_prefix} \ --prefix=%{_prefix} \
%if 0%{?with nodejs_lto} %if 0%{?with nodejs_lto}
@@ -792,11 +791,6 @@ EOF
%endif %endif
%if ! 0%{with intree_icu} %if ! 0%{with intree_icu}
--with-intl=system-icu \ --with-intl=system-icu \
%else
%if %{has_small_icu}
--with-intl=small-icu \
--with-icu-source=deps/icu-small \
%endif
%endif %endif
%if ! 0%{with intree_nghttp2} %if ! 0%{with intree_nghttp2}
--shared-nghttp2 \ --shared-nghttp2 \
@@ -810,6 +804,12 @@ EOF
%if %{node_version_number} < 19 %if %{node_version_number} < 19
--without-dtrace \ --without-dtrace \
%endif %endif
%if %{node_version_number} >= 22 && 0%{?suse_version} > 1500
--shared-sqlite \
%endif
%if %{node_version_number} >= 22
--shared-zstd \
%endif
%if %{node_version_number} >= 16 && (0%{?suse_version} > 1550 || 0%{?sle_version} >= 150400) %if %{node_version_number} >= 16 && (0%{?suse_version} > 1550 || 0%{?sle_version} >= 150400)
--openssl-default-cipher-list=PROFILE=SYSTEM \ --openssl-default-cipher-list=PROFILE=SYSTEM \
%endif %endif
@@ -890,6 +890,12 @@ ln -s -f npx-default %{buildroot}%{_sysconfdir}/alternatives/npx-default
ln -s -f npx.1%{ext_man} %{buildroot}%{_sysconfdir}/alternatives/npx.1%{ext_man} ln -s -f npx.1%{ext_man} %{buildroot}%{_sysconfdir}/alternatives/npx.1%{ext_man}
ln -s %{_sysconfdir}/alternatives/npx-default %{buildroot}%{_bindir}/npx-default ln -s %{_sysconfdir}/alternatives/npx-default %{buildroot}%{_bindir}/npx-default
ln -s %{_sysconfdir}/alternatives/npx.1%{ext_man} %{buildroot}%{_mandir}/man1/npx.1%{ext_man} ln -s %{_sysconfdir}/alternatives/npx.1%{ext_man} %{buildroot}%{_mandir}/man1/npx.1%{ext_man}
%if %{node_version_number} >= 14
ln -s -f corepack-default %{buildroot}%{_sysconfdir}/alternatives/corepack-default
ln -s -f corepack.1%{ext_man} %{buildroot}%{_sysconfdir}/alternatives/corepack.1%{ext_man}
ln -s %{_sysconfdir}/alternatives/corepack-default %{buildroot}%{_bindir}/corepack-default
ln -s %{_sysconfdir}/alternatives/corepack.1%{ext_man} %{buildroot}%{_mandir}/man1/corepack.1%{ext_man}
%endif
%endif %endif
# libalternatives - can always ship # libalternatives - can always ship
@@ -908,6 +914,13 @@ binary=%{_bindir}/npx%{node_version_number}
man=npx%{node_version_number}.1 man=npx%{node_version_number}.1
group=npm,npx group=npm,npx
EOF EOF
%if %{node_version_number} >= 14
mkdir -p %{buildroot}%{_datadir}/libalternatives/corepack;
cat > %{buildroot}%{_datadir}/libalternatives/corepack/%{node_version_number}.conf <<EOF
binary=%{_bindir}/corepack%{node_version_number}
man=corepack%{node_version_number}.1
EOF
%endif
# We need to own license directory on old versions of SLE # We need to own license directory on old versions of SLE
%if 0%{?suse_version} < 1500 %if 0%{?suse_version} < 1500
@@ -924,18 +937,29 @@ export OPENSSL_CONF=''
export CI_JS_SUITES=default export CI_JS_SUITES=default
export NODE_TEST_NO_INTERNET=1 export NODE_TEST_NO_INTERNET=1
%ifarch s390x
# webcrypto is unreliable with nodejs20 and behaviour can differ between z13 and z15
rm test/wpt/test-webcrypto.js
%endif
%if %{node_version_number} >= 12 %if %{node_version_number} >= 12
find test \( -name \*.out -or -name \*.js \) -exec sed -i 's,Use `node ,Use `node%{node_version_number} ,' {} \; find test \( -name \*.out -or -name \*.js -or -name \*.snapshot \) -exec sed -i 's,Use `node ,Use `node%{node_version_number} ,' {} \;
%endif %endif
%if %{node_version_number} >= 20 %if %{node_version_number} >= 20
rm test/parallel/test-strace-openat-openssl.js rm test/parallel/test-strace-openat-openssl.js
# https://github.com/nodejs/node/pull/57269 -- nghttp2 dropped priority support
rm test/parallel/test-http2-client-set-priority.js
rm test/parallel/test-http2-priority-event.js
%endif %endif
# Update the python3 executable name to point at forced python version # Update the python3 executable name to point at forced python version
# needed to fix build on SLE12 SP5 # needed to fix build on SLE12 SP5
%if 0%{?forced_python_version:1} %if 0%{?forced_python_version:1}
sed -i -e "s,'python3','python%{forced_python_version}'," test/parallel/test-child-process-set-blocking.js sed -i -e "s,'python3','python%{forced_python_version}'," test/parallel/test-child-process-set-blocking.js
test -e tools/pseudo-tty.py && sed -i -e "s,^#!/usr/bin/env python3$,#!/usr/bin/python%{forced_python_version}," tools/pseudo-tty.py ||:
export PYTHON="/usr/bin/python%{forced_python_version}"
%endif %endif
ln addon-rpm.gypi deps/npm/node_modules/node-gyp/addon-rpm.gypi ln addon-rpm.gypi deps/npm/node_modules/node-gyp/addon-rpm.gypi
@@ -950,6 +974,10 @@ rm test/parallel/test-dns-cancel-reverse-lookup.js \
test/parallel/test-dns-resolveany.js test/parallel/test-dns-resolveany.js
# multicast test fail since no socket? # multicast test fail since no socket?
rm test/parallel/test-dgram-membership.js rm test/parallel/test-dgram-membership.js
%if %{node_version_number} > 20
# missing ICU test data for 15.6/15.7/SLFO
ln test/fixtures/icu/localizationData-v74.2.json test/fixtures/icu/localizationData-v73.2.json
%endif
%if %{node_version_number} >= 18 %if %{node_version_number} >= 18
# OBS broken /etc/hosts -- https://github.com/openSUSE/open-build-service/issues/13104 # OBS broken /etc/hosts -- https://github.com/openSUSE/open-build-service/issues/13104
@@ -1052,6 +1080,14 @@ make test-ci
%defattr(-, root, root) %defattr(-, root, root)
%{_bindir}/corepack%{node_version_number} %{_bindir}/corepack%{node_version_number}
%{_libdir}/node_modules/corepack%{node_version_number} %{_libdir}/node_modules/corepack%{node_version_number}
%dir %{_datadir}/libalternatives/corepack
%{_datadir}/libalternatives/corepack/%{node_version_number}.conf
%if ! %{with libalternatives}
%ghost %{_bindir}/corepack-default
%ghost %{_mandir}/man1/corepack.1%{ext_man}
%ghost %{_sysconfdir}/alternatives/corepack-default
%ghost %{_sysconfdir}/alternatives/corepack.1%{ext_man}
%endif
%endif %endif
%files devel %files devel
@@ -1076,6 +1112,11 @@ update-alternatives --remove node-default %{_bindir}/node%{node_version_number}
update-alternatives --remove npm-default %{_bindir}/npm%{node_version_number} update-alternatives --remove npm-default %{_bindir}/npm%{node_version_number}
update-alternatives --remove npx-default %{_bindir}/npx%{node_version_number} update-alternatives --remove npx-default %{_bindir}/npx%{node_version_number}
%if %{node_version_number} >= 14
%post -n corepack%{node_version_number}
update-alternatives --remove corepack-default %{_bindir}/corepack%{node_version_number}
%endif
%else %else
%pre %pre
# remove files that are no longer owned but provided by update-alternatives # remove files that are no longer owned but provided by update-alternatives
@@ -1115,6 +1156,24 @@ if [ ! -f %{_bindir}/npx%{node_version_number} ] ; then
update-alternatives --remove npx-default %{_bindir}/npx%{node_version_number} update-alternatives --remove npx-default %{_bindir}/npx%{node_version_number}
fi fi
%if %{node_version_number} >= 14
%pre -n corepack%{node_version_number}
# remove files that are no longer owned but provided by update-alternatives
if ! [ -L %{_mandir}/man1/corepack.1%{ext_man} ]; then
rm -f %{_mandir}/man1/corepack.1%{ext_man}
fi
%post -n corepack%{node_version_number}
update-alternatives \
--install %{_bindir}/corepack-default corepack-default %{_bindir}/corepack%{node_version_number} %{node_version_number} \
--slave %{_mandir}/man1/corepack.1%{ext_man} corepack.1%{ext_man} %{_mandir}/man1/corepack%{node_version_number}.1%{ext_man}
%postun -n corepack%{node_version_number}
if [ ! -f %{_bindir}/corepack%{node_version_number} ] ; then
update-alternatives --remove corepack-default %{_bindir}/corepack%{node_version_number}
fi
%endif
%endif %endif
%changelog %changelog

View File

@@ -1,8 +1,8 @@
Index: node-v19.9.0/deps/npm/lib/commands/help-search.js Index: node-v20.15.1/deps/npm/lib/commands/help-search.js
=================================================================== ===================================================================
--- node-v19.9.0.orig/deps/npm/lib/commands/help-search.js --- node-v20.15.1.orig/deps/npm/lib/commands/help-search.js
+++ node-v19.9.0/deps/npm/lib/commands/help-search.js +++ node-v20.15.1/deps/npm/lib/commands/help-search.js
@@ -16,7 +16,7 @@ class HelpSearch extends BaseCommand { @@ -17,7 +17,7 @@ class HelpSearch extends BaseCommand {
throw this.usageError() throw this.usageError()
} }
@@ -11,11 +11,11 @@ Index: node-v19.9.0/deps/npm/lib/commands/help-search.js
let files = await glob(`${globify(docPath)}/*/*.md`) let files = await glob(`${globify(docPath)}/*/*.md`)
// preserve glob@8 behavior // preserve glob@8 behavior
files = files.sort((a, b) => a.localeCompare(b, 'en')) files = files.sort((a, b) => a.localeCompare(b, 'en'))
Index: node-v19.9.0/deps/npm/lib/npm.js Index: node-v20.15.1/deps/npm/lib/npm.js
=================================================================== ===================================================================
--- node-v19.9.0.orig/deps/npm/lib/npm.js --- node-v20.15.1.orig/deps/npm/lib/npm.js
+++ node-v19.9.0/deps/npm/lib/npm.js +++ node-v20.15.1/deps/npm/lib/npm.js
@@ -408,7 +408,13 @@ class Npm extends EventEmitter { @@ -338,7 +338,13 @@ class Npm {
} }
get globalPrefix () { get globalPrefix () {
@@ -29,4 +29,4 @@ Index: node-v19.9.0/deps/npm/lib/npm.js
+ return prefix; + return prefix;
} }
set globalPrefix (r) { get localPrefix () {

View File

@@ -1,29 +0,0 @@
Index: node-v14.3.0/test/parallel/test-repl-mode.js
===================================================================
--- node-v14.3.0.orig/test/parallel/test-repl-mode.js
+++ node-v14.3.0/test/parallel/test-repl-mode.js
@@ -1,9 +1,11 @@
'use strict';
-require('../common');
+const common = require('../common');
const assert = require('assert');
const Stream = require('stream');
const repl = require('repl');
+common.skipIfDumbTerminal();
+
const tests = [
testSloppyMode,
testStrictMode,
Index: node-v14.3.0/test/parallel/test-repl-strict-mode-previews.js
===================================================================
--- node-v14.3.0.orig/test/parallel/test-repl-strict-mode-previews.js
+++ node-v14.3.0/test/parallel/test-repl-strict-mode-previews.js
@@ -5,6 +5,7 @@
const common = require('../common');
common.skipIfInspectorDisabled();
+common.skipIfDumbTerminal();
if (process.argv[2] === 'child') {
const stream = require('stream');

View File

@@ -7,7 +7,7 @@
set -e set -e
tar Jxf node-v*.tar.xz tar Jxf node-v*.tar.xz
cd node-v.*/tools/doc cd node-v*/tools/doc
npm ci npm ci
cd ../.. cd ../..
exec tar Jcf ../node_modules.tar.xz tools/doc/node_modules exec tar Jcf ../node_modules.tar.xz tools/doc/node_modules

View File

@@ -8,75 +8,75 @@ management via update_alternatives.
This is also important for generation of binary This is also important for generation of binary
modules for multiple versions of NodeJS modules for multiple versions of NodeJS
Index: node-v20.1.0/Makefile Index: node-v20.13.1/Makefile
=================================================================== ===================================================================
--- node-v20.1.0.orig/Makefile --- node-v20.13.1.orig/Makefile
+++ node-v20.1.0/Makefile +++ node-v20.13.1/Makefile
@@ -76,7 +76,7 @@ BUILDTYPE_LOWER := $(shell echo $(BUILDT @@ -76,7 +76,7 @@ BUILDTYPE_LOWER := $(shell echo $(BUILDT
EXEEXT := $(shell $(PYTHON) -c \ EXEEXT := $(shell $(PYTHON) -c \
"import sys; print('.exe' if sys.platform == 'win32' else '')") "import sys; print('.exe' if sys.platform == 'win32' else '')")
-NODE_EXE = node$(EXEEXT) -NODE_EXE = node$(EXEEXT)
+NODE_EXE = node20$(EXEEXT) +NODE_EXE = node20$(EXEEXT)
NODE ?= ./$(NODE_EXE) # Use $(PWD) so we can cd to anywhere before calling this
NODE ?= "$(PWD)/$(NODE_EXE)"
NODE_G_EXE = node_g$(EXEEXT) NODE_G_EXE = node_g$(EXEEXT)
NPM ?= ./deps/npm/bin/npm-cli.js Index: node-v20.13.1/tools/install.py
Index: node-v20.1.0/tools/install.py
=================================================================== ===================================================================
--- node-v20.1.0.orig/tools/install.py --- node-v20.13.1.orig/tools/install.py
+++ node-v20.1.0/tools/install.py +++ node-v20.13.1/tools/install.py
@@ -86,7 +86,7 @@ def uninstall(paths, dst): @@ -87,7 +87,7 @@ def uninstall(options, paths, dest):
try_remove(path, dst) try_remove(options, path, dest)
def package_files(action, name, bins): def package_files(options, action, name, bins):
- target_path = libdir() + '/node_modules/' + name + '/' - target_path = os.path.join(libdir(options), 'node_modules', name)
+ target_path = libdir() + '/node_modules/' + name + '20/' + target_path = os.path.join(libdir(options), 'node_modules', name + '20')
# don't install npm if the target path is a symlink, it probably means # don't install npm if the target path is a symlink, it probably means
# that a dev version of npm is installed there # that a dev version of npm is installed there
@@ -106,19 +106,19 @@ def package_files(action, name, bins): @@ -108,19 +108,19 @@ def package_files(options, action, name,
if action == uninstall: if action == uninstall:
action([link_path], 'bin/' + bin_name) action(options, [link_path], os.path.join('bin', bin_name))
elif action == install: elif action == install:
- try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path) - try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name, bin_target), link_path)
+ try_symlink('../' + libdir() + '/node_modules/' + name + '20/' + bin_target, link_path) + try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name + '20', bin_target), link_path)
else: else:
assert 0 # unhandled action type assert 0 # unhandled action type
def npm_files(action): def npm_files(options, action):
package_files(action, 'npm', { package_files(options, action, 'npm', {
- 'npm': 'bin/npm-cli.js', - 'npm': 'bin/npm-cli.js',
- 'npx': 'bin/npx-cli.js', - 'npx': 'bin/npx-cli.js',
+ 'npm20': 'bin/npm-cli.js', + 'npm20': 'bin/npm-cli.js',
+ 'npx20': 'bin/npx-cli.js', + 'npx20': 'bin/npx-cli.js',
}) })
def corepack_files(action): def corepack_files(options, action):
package_files(action, 'corepack', { package_files(options, action, 'corepack', {
- 'corepack': 'dist/corepack.js', - 'corepack': 'dist/corepack.js',
+ 'corepack20': 'dist/corepack.js', + 'corepack20': 'dist/corepack.js',
# Not the default just yet: # Not the default just yet:
# 'yarn': 'dist/yarn.js', # 'yarn': 'dist/yarn.js',
# 'yarnpkg': 'dist/yarn.js', # 'yarnpkg': 'dist/yarn.js',
@@ -147,7 +147,7 @@ def subdir_files(path, dest, action): @@ -149,7 +149,7 @@ def subdir_files(options, path, dest, ac
action(options, files_in_path, subdir + os.path.sep)
def files(action): def files(options, action):
is_windows = sys.platform == 'win32' - node_bin = 'node'
- output_file = 'node' + node_bin = 'node20'
+ output_file = 'node20' if options.is_win:
output_prefix = 'out/Release/' node_bin += '.exe'
action(options, [os.path.join(options.build_dir, node_bin)], os.path.join('bin', node_bin))
if is_windows: @@ -190,7 +190,7 @@ def files(options, action):
@@ -189,7 +189,7 @@ def files(action): if 'openbsd' in sys.platform:
if 'freebsd' in sys.platform or 'openbsd' in sys.platform: action(options, ['doc/node.1'], 'man/man1/')
action(['doc/node.1'], 'man/man1/')
else: else:
- action(['doc/node.1'], 'share/man/man1/') - action(options, ['doc/node.1'], 'share/man/man1/')
+ action(['doc/node.1'], 'share/man/man1/node20.1') + action(options, ['doc/node.1'], 'share/man/man1/node20.1')
if 'true' == variables.get('node_install_npm'): if 'true' == options.variables.get('node_install_npm'):
npm_files(action) npm_files(options, action)
@@ -276,28 +276,28 @@ def headers(action): @@ -331,28 +331,28 @@ def headers(options, action):
'src/node_buffer.h', 'src/node_buffer.h',
'src/node_object_wrap.h', 'src/node_object_wrap.h',
'src/node_version.h', 'src/node_version.h',
@@ -85,27 +85,26 @@ Index: node-v20.1.0/tools/install.py
# Add the expfile that is created on AIX # Add the expfile that is created on AIX
if sys.platform.startswith('aix') or sys.platform == "os400": if sys.platform.startswith('aix') or sys.platform == "os400":
- action(['out/Release/node.exp'], 'include/node/') action(options, ['out/Release/node.exp'], 'include/node/')
+ action(['out/Release/node.exp'], 'include/node20/')
- subdir_files('deps/v8/include', 'include/node/', wanted_v8_headers) - subdir_files(options, os.path.join(options.v8_dir, 'include'), 'include/node/', wanted_v8_headers)
+ subdir_files('deps/v8/include', 'include/node20/', wanted_v8_headers) + subdir_files(options, os.path.join(options.v8_dir, 'include'), 'include/node20/', wanted_v8_headers)
if 'false' == variables.get('node_shared_libuv'): if 'false' == options.variables.get('node_shared_libuv'):
- subdir_files('deps/uv/include', 'include/node/', action) - subdir_files(options, 'deps/uv/include', 'include/node/', action)
+ subdir_files('deps/uv/include', 'include/node20/', action) + subdir_files(options, 'deps/uv/include', 'include/node20/', action)
if 'true' == variables.get('node_use_openssl') and \ if 'true' == options.variables.get('node_use_openssl') and \
'false' == variables.get('node_shared_openssl'): 'false' == options.variables.get('node_shared_openssl'):
- subdir_files('deps/openssl/openssl/include/openssl', 'include/node/openssl/', action) - subdir_files(options, 'deps/openssl/openssl/include/openssl', 'include/node/openssl/', action)
- subdir_files('deps/openssl/config/archs', 'include/node/openssl/archs', action) - subdir_files(options, 'deps/openssl/config/archs', 'include/node/openssl/archs', action)
- subdir_files('deps/openssl/config', 'include/node/openssl', action) - subdir_files(options, 'deps/openssl/config', 'include/node/openssl', action)
+ subdir_files('deps/openssl/openssl/include/openssl', 'include/node20/openssl/', action) + subdir_files(options, 'deps/openssl/openssl/include/openssl', 'include/node20/openssl/', action)
+ subdir_files('deps/openssl/config/archs', 'include/node20/openssl/archs', action) + subdir_files(options, 'deps/openssl/config/archs', 'include/node20/openssl/archs', action)
+ subdir_files('deps/openssl/config', 'include/node20/openssl', action) + subdir_files(options, 'deps/openssl/config', 'include/node20/openssl', action)
if 'false' == variables.get('node_shared_zlib'): if 'false' == options.variables.get('node_shared_zlib'):
action([ action(options, [
'deps/zlib/zconf.h', 'deps/zlib/zconf.h',
'deps/zlib/zlib.h', 'deps/zlib/zlib.h',
- ], 'include/node/') - ], 'include/node/')
@@ -113,10 +112,10 @@ Index: node-v20.1.0/tools/install.py
if sys.platform == 'zos': if sys.platform == 'zos':
zoslibinc = os.environ.get('ZOSLIB_INCLUDES') zoslibinc = os.environ.get('ZOSLIB_INCLUDES')
Index: node-v20.1.0/doc/node.1 Index: node-v20.13.1/doc/node.1
=================================================================== ===================================================================
--- node-v20.1.0.orig/doc/node.1 --- node-v20.13.1.orig/doc/node.1
+++ node-v20.1.0/doc/node.1 +++ node-v20.13.1/doc/node.1
@@ -31,24 +31,24 @@ @@ -31,24 +31,24 @@
.Dt NODE 1 .Dt NODE 1
. .
@@ -146,10 +145,10 @@ Index: node-v20.1.0/doc/node.1
.Op Fl -v8-options .Op Fl -v8-options
. .
.\"====================================================================== .\"======================================================================
Index: node-v20.1.0/src/node_main.cc Index: node-v20.13.1/src/node_main.cc
=================================================================== ===================================================================
--- node-v20.1.0.orig/src/node_main.cc --- node-v20.13.1.orig/src/node_main.cc
+++ node-v20.1.0/src/node_main.cc +++ node-v20.13.1/src/node_main.cc
@@ -94,6 +94,7 @@ int wmain(int argc, wchar_t* wargv[]) { @@ -94,6 +94,7 @@ int wmain(int argc, wchar_t* wargv[]) {
// UNIX // UNIX
@@ -158,11 +157,11 @@ Index: node-v20.1.0/src/node_main.cc
return node::Start(argc, argv); return node::Start(argc, argv);
} }
#endif #endif
Index: node-v20.1.0/tools/test.py Index: node-v20.13.1/tools/test.py
=================================================================== ===================================================================
--- node-v20.1.0.orig/tools/test.py --- node-v20.13.1.orig/tools/test.py
+++ node-v20.1.0/tools/test.py +++ node-v20.13.1/tools/test.py
@@ -947,7 +947,7 @@ class Context(object): @@ -954,7 +954,7 @@ class Context(object):
if self.vm is not None: if self.vm is not None:
return self.vm return self.vm
if arch == 'none': if arch == 'none':
@@ -171,11 +170,11 @@ Index: node-v20.1.0/tools/test.py
else: else:
name = 'out/%s.%s/node' % (arch, mode) name = 'out/%s.%s/node' % (arch, mode)
Index: node-v20.1.0/node.gyp Index: node-v20.13.1/node.gyp
=================================================================== ===================================================================
--- node-v20.1.0.orig/node.gyp --- node-v20.13.1.orig/node.gyp
+++ node-v20.1.0/node.gyp +++ node-v20.13.1/node.gyp
@@ -23,8 +23,8 @@ @@ -24,8 +24,8 @@
'node_shared_openssl%': 'false', 'node_shared_openssl%': 'false',
'node_v8_options%': '', 'node_v8_options%': '',
'node_enable_v8_vtunejit%': 'false', 'node_enable_v8_vtunejit%': 'false',
@@ -185,4 +184,4 @@ Index: node-v20.1.0/node.gyp
+ 'node_lib_target_name%': 'libnode20', + 'node_lib_target_name%': 'libnode20',
'node_intermediate_lib_type%': 'static_library', 'node_intermediate_lib_type%': 'static_library',
'node_builtin_modules_path%': '', 'node_builtin_modules_path%': '',
# We list the deps/ files out instead of globbing them in js2c.py since we 'linked_module_files': [