Compare commits

58 Commits

Author SHA256 Message Date
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
17 changed files with 993 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

View File

@@ -1,41 +1,41 @@
0974cc4ae791faa7b72fbb828d49cf70d8d76fa4aadfcce9582e6119c00a620c node-v20.1.0-aix-ppc64.tar.gz 4ba1a64cd4e2d1bdbc38afbf230c6171ed62fca7c38c83497f839c3911d8d13d node-v20.19.2-aix-ppc64.tar.gz
1c8a5d94a57b33f27a80a9262593ecdae745079781e53a75cf5aba54d74d761d node-v20.1.0-arm64.msi ceeb1753eb6bdaf0d5dada97e807a88ef29d0ce49fa989a84339bc39987956d4 node-v20.19.2-arm64.msi
fd3bca029883cb84d4f58e7adb1a2c4fc4e616a8297fb08cb5c34465b7c4071a node-v20.1.0-darwin-arm64.tar.gz 5f96c725cd2be1151f08b25c05bf5a21866a2dc7db3803d351a6ea19fcc53665 node-v20.19.2-darwin-arm64.tar.gz
e2caf635cbb9dd67c1b528fa8cfbffcb1dac9ae90fcce71f2832488adc474c17 node-v20.1.0-darwin-arm64.tar.xz 51344f84c3867756a381d1f1ac437b9877ef7ee98683cd38aca32133a33e4986 node-v20.19.2-darwin-arm64.tar.xz
770dd45c15cfafa3f945fce173aa84dfed94931923242700718edf6883b74fff node-v20.1.0-darwin-x64.tar.gz 29f91e05992a7d81498ab1d04938a184313cb4aaccab95bb4636e30e6424eae3 node-v20.19.2-darwin-x64.tar.gz
d9a8a7b1b186a983191ddac90adce5be9d5abfb57496be1736024a4afc11a90b node-v20.1.0-darwin-x64.tar.xz eee1053719e234060c39822cc7defcb9322e14a1e6e5046dbbf48dcf68750aa7 node-v20.19.2-darwin-x64.tar.xz
975b642d3c0f1f109abe9a8c3841da5501581e4e834ade1005feee61dbec1476 node-v20.1.0-headers.tar.gz 37e920f860aaa3155bf8a276d20a5473fcea9eefa31f8b09eb18dc5e65c9abd7 node-v20.19.2-headers.tar.gz
138570a36f8a90cd57de1f3ff5cffc1be0ac36c8ce528903837a16ce076248ce node-v20.1.0-headers.tar.xz 398d95ff730743659a596b9753c7e619501571ae2beedbe16077d3213cd91e0e node-v20.19.2-headers.tar.xz
b3867bda723ad3e4b1319b5584c99dde84b20d4ac557af82b26921ba6c2dc274 node-v20.1.0-linux-arm64.tar.gz 24c3090d4e8c3667cd57482263291ca4f562c2e0773d5e618a0c6ba32d21b39f node-v20.19.2-linux-arm64.tar.gz
7219e00a19efd5f2f631a639d561fb65149b7602b3a103f9b47d5dd8e9be9527 node-v20.1.0-linux-arm64.tar.xz 0d0c4a1c3a5aa657b76873eaa962936c7dc7a45047bd3957322544967713dc72 node-v20.19.2-linux-arm64.tar.xz
12ef1fc0d5f7a6dbb60da74b784ed242ca495cbf6f6f05c568bac8ceb6e6d28e node-v20.1.0-linux-armv7l.tar.gz aed2de774737d76a81254cbcd12ae5e9239f24efec0456b9608f150d27d58fe7 node-v20.19.2-linux-armv7l.tar.gz
591521a4a620ee89fee1afc7f3959fd9b8405027ca07c6903e45239a33a8c54b node-v20.1.0-linux-armv7l.tar.xz 43adc6c3f57582f0ed206b8401816d1846c39996793f02ccf61e905294bfdc58 node-v20.19.2-linux-armv7l.tar.xz
b450e6d07153aa7f0bf6d67c2de788e9c9c42a04172d01ebce08a45247c885b3 node-v20.1.0-linux-ppc64le.tar.gz 9fced2e270fb0879709f7fa19b358551244b2d6c8cbf39d6a860221dcc12181b node-v20.19.2-linux-ppc64le.tar.gz
07ff534cc8af412b4ad82a16b8099aa99c6491bdbdb6779a73aa8be5a290b5eb node-v20.1.0-linux-ppc64le.tar.xz 1391fe00183bef0da0b478f636527d8270e43563877312d251a468746d338c74 node-v20.19.2-linux-ppc64le.tar.xz
ff3e37ee1199f1fd85950b0af4d4ba4ff88b216856b8c573d5046fa541ea627a node-v20.1.0-linux-s390x.tar.gz 94023e739c98ce55a057fbf5e86589253458e92af1990a2712dab8c6421cfe2f node-v20.19.2-linux-s390x.tar.gz
8fe597af46c9cf16a1b1d56058318803539d70562f45cff8e5779d75c32652e7 node-v20.1.0-linux-s390x.tar.xz ffbf836e20738f283cbe342ce92881d81d3f14651cabd2cf93cdb91152bcae3c node-v20.19.2-linux-s390x.tar.xz
fbc345638e3fed3b639353b2b3971bddba9e55e93b6e1848be6215787d7f20b8 node-v20.1.0-linux-x64.tar.gz eec2c7b9c6ac72e42885a42edfc0503c0e4ee455f855c4a17a6cbcf026656dd5 node-v20.19.2-linux-x64.tar.gz
08e01d4ae29013f965dc8bde52d7f1abf780b5867ff40ade6bdd35bc9cbffd96 node-v20.1.0-linux-x64.tar.xz cbe59620b21732313774df4428586f7222a84af29e556f848abf624ba41caf90 node-v20.19.2-linux-x64.tar.xz
e4547515bad012f5552d80db48f7de263e0eff67aeb73ae60dca7dc5d86e22d5 node-v20.1.0.pkg 3a19f4949b422309a2806083580528c2c87e8169755f31fb7521d5f7b5fdba22 node-v20.19.2-win-arm64.7z
714d59336dc7e3291aebae4f0acd7938cdefb1c04f0a7d46a26aabe2662fe3cf node-v20.1.0.tar.gz b155826b6abe8383b88f7de42bc7c2601cabd3b0d6e52cce1cf4cd4936e6441b node-v20.19.2-win-arm64.zip
600f9e11860995814b9122b1ac5318f6ad564274784deed98d8a9206649436b5 node-v20.1.0.tar.xz eb6bde3d812ee065a94fc81e39dc16a56ec41f3039e6a27022326b3b59ee895b node-v20.19.2-win-x64.7z
95fd2e4aca8417a22135841757dfc2fccaf0bbd7e0cd5ca7d9078650afabbed5 node-v20.1.0-win-arm64.7z 8735c9940b97548f6d9d4dda7cf5fd4471c062f15f44c2b890c9b0b430460feb node-v20.19.2-win-x64.zip
53ddbf4040c9a5170188854b621a8b06b0e48ca2e71c9af004a352931d24b254 node-v20.1.0-win-arm64.zip 6e56ea449e6581e8d7251b1960585d4e4cd53d99df34363483099fe864de1023 node-v20.19.2-win-x86.7z
528c140b32c95bdaf8a44e4d8f2c856601ae9ea19ee3f5e2e88ea7376154d0e0 node-v20.1.0-win-x64.7z c052c2b4e7ed147f9714b4e81bef4a1c5e04b33162c7300100c547747a2a34f3 node-v20.19.2-win-x86.zip
c26782b513c97b2847f2802d77c99a834f9494e947edccee5b3686762eddc912 node-v20.1.0-win-x64.zip fcc217f3af52f8ecab1e5d016df6f543cb2d903d57e26f53ac48f7ea837dfab2 node-v20.19.2-x64.msi
8949e01dd83d264d63bec75bc5e12d8cc710379288e478c9998af2d8b7f9d0eb node-v20.1.0-win-x86.7z 2a5c4f9a2a563ba73b866dbdade0157ab042568b49a8b8ec0efa72150843ed17 node-v20.19.2-x86.msi
98b10152f0391b1a6cb9409d6dd035f7b62627d37a5de2d196d8c2dc0ed534dd node-v20.1.0-win-x86.zip 87f1d17df2fbbd775a4813d8936ece9120135d942eae6d308d2328616eed3103 node-v20.19.2.pkg
9e26806f7a99ffb5725f4f08e1f51fcd2522d17b180eced25094d5aed75b42f0 node-v20.1.0-x64.msi eaf8800608ffbcae7665beb4776d8e9d8484055fbb840ef44e346044f9b08ad5 node-v20.19.2.tar.gz
abd01a846689cea3821454987f0c5e344d297b83dc6fc2ac182dc87e36ed6431 node-v20.1.0-x86.msi 4a7ff611d5180f4e420204fa6f22f9f9deb2ac5e98619dd9a4de87edf5b03b6e node-v20.19.2.tar.xz
e6079443ef50b355bc18bc8db96075efde6c1f1a5d42533f81f2fe38be72a0a3 win-arm64/node.exe c36cb4961a50d2ac05a72d78b6a5b21cb9ac31ca6545a4a438b287f9d0eea9ba win-arm64/node.exe
caf7a4f2176ca77a98804adfdf4dfebbb4aa10e4372a6596ac663aa090e84c43 win-arm64/node.lib db56ef1b250e24a698ee3a21f4f055a1f60319f273fa7bcab84212cdf9498bf1 win-arm64/node.lib
5260c746e2145848d3fb099a50f993bfeef9f079a66163d550f64f5bf5c0a6f6 win-arm64/node_pdb.7z b754b00df640e352b663f7907f0e11240258aa5f5059d9c503ce455d2500d92f win-arm64/node_pdb.7z
3e6fca0ab72256a086d15237d80f5268d314457e859b1008e3c8863bbe18fe5f win-arm64/node_pdb.zip 2b6f70f82b6bbe178556f0b49290011e83c51e63584488d75e7dd9b94560345c win-arm64/node_pdb.zip
3f6114ce6f020dc85a7a36851c45e1dd45f69f8d2bb00b7eb55ff4aa16d61f13 win-x64/node.exe 5793a3bf18d75c2bc5cb2b65ba8975b30057d7bf443141db4cf970d54fd8ddc6 win-x64/node.exe
2505c7c453e74be248e47123823642c538f86f3741edb7ef4905a5d8e5ba6c96 win-x64/node.lib 21b9f76d6ec91f6510dc5adb891dbd52893c7d242549b5cf6084803d3be91665 win-x64/node.lib
f13407923456a59b6d6b99e3e443e2f289dfc07755fd9a9c2179db04668a5ce7 win-x64/node_pdb.7z 2b7de888145be4086c70866417a0742a87ec50472d8b04e1850701ca2f7bfe4e win-x64/node_pdb.7z
d2539f504a568ddc01a77bc8186b028dca18ebe765dd92dd7f5526cecb16fcba win-x64/node_pdb.zip d5493643b36531bb02591c3f855c77e2070bb972be1a51ea313e6b25f3e29556 win-x64/node_pdb.zip
a10e18efa8f6af0217c8fc357cc9b872fc08fcd21b520473d890ae2bf32ef9c1 win-x86/node.exe c5505d7f22b1f6bfc56f4fe16f472c3b6428e74f48062028e6cc2a4b646a72cc win-x86/node.exe
beac58300d1065f5f716b93d9f0b289fc319f0fa82c1bb046da05723267efcc0 win-x86/node.lib 4f7899d5cf286aad56624539952c087088e6e90f010f55d1f9145deb45524152 win-x86/node.lib
01a3ea87d4b007cc246ca4a3874bed6b8c6c1282da886a3aa9c2ed4281864d39 win-x86/node_pdb.7z 3b2de193ae323416b1c340777f9c2ff010f337d6dbdbd711a3de4a485315e1b5 win-x86/node_pdb.7z
e89bc87da3003c98d13bb22fe29a91a274813742bcb4431f8179655bed3c1130 win-x86/node_pdb.zip 79647764e20eb5002ca2a27e5d2f115cd5db462661521722a002a1eb0f79cd76 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

3
node-v20.19.2.tar.xz Normal file
View File

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

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,399 @@
-------------------------------------------------------------------
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.19.2
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
@@ -141,11 +146,13 @@ Source20: bash_output_helper.bash
## 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 +166,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 +200,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 +213,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 +231,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 +247,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 +308,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.15
%else %else
BuildRequires: bundled_openssl_should_not_be_required BuildRequires: bundled_openssl_should_not_be_required
%endif %endif
@@ -303,19 +319,23 @@ 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.5
%endif
%if %node_version_number >= 22 && 0%{?suse_version} > 1500
BuildRequires: sqlite3-devel
%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) = 76.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 +384,30 @@ ExclusiveArch: not_buildable
%endif %endif
%endif %endif
Provides: bundled(uvwasi) = 0.0.16 Provides: bundled(uvwasi) = 0.0.21
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.2.1
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.0.3
# 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.14.0
Provides: bundled(node-acorn-walk) = 8.3.4
Provides: bundled(node-cjs-module-lexer) = 1.4.1
Provides: bundled(node-corepack) = 0.31.0
Provides: bundled(node-minimatch) = 10.0.1
Provides: bundled(node-undici) = 6.21.2
%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 +436,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 +444,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 +537,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 +641,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 +658,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 +666,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 +773,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 +787,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 +800,9 @@ 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} >= 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 +883,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 +907,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
@@ -925,17 +931,23 @@ export CI_JS_SUITES=default
export NODE_TEST_NO_INTERNET=1 export NODE_TEST_NO_INTERNET=1
%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 +962,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 +1068,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 +1100,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 +1144,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': [