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
1c8a5d94a57b33f27a80a9262593ecdae745079781e53a75cf5aba54d74d761d node-v20.1.0-arm64.msi
fd3bca029883cb84d4f58e7adb1a2c4fc4e616a8297fb08cb5c34465b7c4071a node-v20.1.0-darwin-arm64.tar.gz
e2caf635cbb9dd67c1b528fa8cfbffcb1dac9ae90fcce71f2832488adc474c17 node-v20.1.0-darwin-arm64.tar.xz
770dd45c15cfafa3f945fce173aa84dfed94931923242700718edf6883b74fff node-v20.1.0-darwin-x64.tar.gz
d9a8a7b1b186a983191ddac90adce5be9d5abfb57496be1736024a4afc11a90b node-v20.1.0-darwin-x64.tar.xz
975b642d3c0f1f109abe9a8c3841da5501581e4e834ade1005feee61dbec1476 node-v20.1.0-headers.tar.gz
138570a36f8a90cd57de1f3ff5cffc1be0ac36c8ce528903837a16ce076248ce node-v20.1.0-headers.tar.xz
b3867bda723ad3e4b1319b5584c99dde84b20d4ac557af82b26921ba6c2dc274 node-v20.1.0-linux-arm64.tar.gz
7219e00a19efd5f2f631a639d561fb65149b7602b3a103f9b47d5dd8e9be9527 node-v20.1.0-linux-arm64.tar.xz
12ef1fc0d5f7a6dbb60da74b784ed242ca495cbf6f6f05c568bac8ceb6e6d28e node-v20.1.0-linux-armv7l.tar.gz
591521a4a620ee89fee1afc7f3959fd9b8405027ca07c6903e45239a33a8c54b node-v20.1.0-linux-armv7l.tar.xz
b450e6d07153aa7f0bf6d67c2de788e9c9c42a04172d01ebce08a45247c885b3 node-v20.1.0-linux-ppc64le.tar.gz
07ff534cc8af412b4ad82a16b8099aa99c6491bdbdb6779a73aa8be5a290b5eb node-v20.1.0-linux-ppc64le.tar.xz
ff3e37ee1199f1fd85950b0af4d4ba4ff88b216856b8c573d5046fa541ea627a node-v20.1.0-linux-s390x.tar.gz
8fe597af46c9cf16a1b1d56058318803539d70562f45cff8e5779d75c32652e7 node-v20.1.0-linux-s390x.tar.xz
fbc345638e3fed3b639353b2b3971bddba9e55e93b6e1848be6215787d7f20b8 node-v20.1.0-linux-x64.tar.gz
08e01d4ae29013f965dc8bde52d7f1abf780b5867ff40ade6bdd35bc9cbffd96 node-v20.1.0-linux-x64.tar.xz
e4547515bad012f5552d80db48f7de263e0eff67aeb73ae60dca7dc5d86e22d5 node-v20.1.0.pkg
714d59336dc7e3291aebae4f0acd7938cdefb1c04f0a7d46a26aabe2662fe3cf node-v20.1.0.tar.gz
600f9e11860995814b9122b1ac5318f6ad564274784deed98d8a9206649436b5 node-v20.1.0.tar.xz
95fd2e4aca8417a22135841757dfc2fccaf0bbd7e0cd5ca7d9078650afabbed5 node-v20.1.0-win-arm64.7z
53ddbf4040c9a5170188854b621a8b06b0e48ca2e71c9af004a352931d24b254 node-v20.1.0-win-arm64.zip
528c140b32c95bdaf8a44e4d8f2c856601ae9ea19ee3f5e2e88ea7376154d0e0 node-v20.1.0-win-x64.7z
c26782b513c97b2847f2802d77c99a834f9494e947edccee5b3686762eddc912 node-v20.1.0-win-x64.zip
8949e01dd83d264d63bec75bc5e12d8cc710379288e478c9998af2d8b7f9d0eb node-v20.1.0-win-x86.7z
98b10152f0391b1a6cb9409d6dd035f7b62627d37a5de2d196d8c2dc0ed534dd node-v20.1.0-win-x86.zip
9e26806f7a99ffb5725f4f08e1f51fcd2522d17b180eced25094d5aed75b42f0 node-v20.1.0-x64.msi
abd01a846689cea3821454987f0c5e344d297b83dc6fc2ac182dc87e36ed6431 node-v20.1.0-x86.msi
e6079443ef50b355bc18bc8db96075efde6c1f1a5d42533f81f2fe38be72a0a3 win-arm64/node.exe
caf7a4f2176ca77a98804adfdf4dfebbb4aa10e4372a6596ac663aa090e84c43 win-arm64/node.lib
5260c746e2145848d3fb099a50f993bfeef9f079a66163d550f64f5bf5c0a6f6 win-arm64/node_pdb.7z
3e6fca0ab72256a086d15237d80f5268d314457e859b1008e3c8863bbe18fe5f win-arm64/node_pdb.zip
3f6114ce6f020dc85a7a36851c45e1dd45f69f8d2bb00b7eb55ff4aa16d61f13 win-x64/node.exe
2505c7c453e74be248e47123823642c538f86f3741edb7ef4905a5d8e5ba6c96 win-x64/node.lib
f13407923456a59b6d6b99e3e443e2f289dfc07755fd9a9c2179db04668a5ce7 win-x64/node_pdb.7z
d2539f504a568ddc01a77bc8186b028dca18ebe765dd92dd7f5526cecb16fcba win-x64/node_pdb.zip
a10e18efa8f6af0217c8fc357cc9b872fc08fcd21b520473d890ae2bf32ef9c1 win-x86/node.exe
beac58300d1065f5f716b93d9f0b289fc319f0fa82c1bb046da05723267efcc0 win-x86/node.lib
01a3ea87d4b007cc246ca4a3874bed6b8c6c1282da886a3aa9c2ed4281864d39 win-x86/node_pdb.7z
e89bc87da3003c98d13bb22fe29a91a274813742bcb4431f8179655bed3c1130 win-x86/node_pdb.zip
4ba1a64cd4e2d1bdbc38afbf230c6171ed62fca7c38c83497f839c3911d8d13d node-v20.19.2-aix-ppc64.tar.gz
ceeb1753eb6bdaf0d5dada97e807a88ef29d0ce49fa989a84339bc39987956d4 node-v20.19.2-arm64.msi
5f96c725cd2be1151f08b25c05bf5a21866a2dc7db3803d351a6ea19fcc53665 node-v20.19.2-darwin-arm64.tar.gz
51344f84c3867756a381d1f1ac437b9877ef7ee98683cd38aca32133a33e4986 node-v20.19.2-darwin-arm64.tar.xz
29f91e05992a7d81498ab1d04938a184313cb4aaccab95bb4636e30e6424eae3 node-v20.19.2-darwin-x64.tar.gz
eee1053719e234060c39822cc7defcb9322e14a1e6e5046dbbf48dcf68750aa7 node-v20.19.2-darwin-x64.tar.xz
37e920f860aaa3155bf8a276d20a5473fcea9eefa31f8b09eb18dc5e65c9abd7 node-v20.19.2-headers.tar.gz
398d95ff730743659a596b9753c7e619501571ae2beedbe16077d3213cd91e0e node-v20.19.2-headers.tar.xz
24c3090d4e8c3667cd57482263291ca4f562c2e0773d5e618a0c6ba32d21b39f node-v20.19.2-linux-arm64.tar.gz
0d0c4a1c3a5aa657b76873eaa962936c7dc7a45047bd3957322544967713dc72 node-v20.19.2-linux-arm64.tar.xz
aed2de774737d76a81254cbcd12ae5e9239f24efec0456b9608f150d27d58fe7 node-v20.19.2-linux-armv7l.tar.gz
43adc6c3f57582f0ed206b8401816d1846c39996793f02ccf61e905294bfdc58 node-v20.19.2-linux-armv7l.tar.xz
9fced2e270fb0879709f7fa19b358551244b2d6c8cbf39d6a860221dcc12181b node-v20.19.2-linux-ppc64le.tar.gz
1391fe00183bef0da0b478f636527d8270e43563877312d251a468746d338c74 node-v20.19.2-linux-ppc64le.tar.xz
94023e739c98ce55a057fbf5e86589253458e92af1990a2712dab8c6421cfe2f node-v20.19.2-linux-s390x.tar.gz
ffbf836e20738f283cbe342ce92881d81d3f14651cabd2cf93cdb91152bcae3c node-v20.19.2-linux-s390x.tar.xz
eec2c7b9c6ac72e42885a42edfc0503c0e4ee455f855c4a17a6cbcf026656dd5 node-v20.19.2-linux-x64.tar.gz
cbe59620b21732313774df4428586f7222a84af29e556f848abf624ba41caf90 node-v20.19.2-linux-x64.tar.xz
3a19f4949b422309a2806083580528c2c87e8169755f31fb7521d5f7b5fdba22 node-v20.19.2-win-arm64.7z
b155826b6abe8383b88f7de42bc7c2601cabd3b0d6e52cce1cf4cd4936e6441b node-v20.19.2-win-arm64.zip
eb6bde3d812ee065a94fc81e39dc16a56ec41f3039e6a27022326b3b59ee895b node-v20.19.2-win-x64.7z
8735c9940b97548f6d9d4dda7cf5fd4471c062f15f44c2b890c9b0b430460feb node-v20.19.2-win-x64.zip
6e56ea449e6581e8d7251b1960585d4e4cd53d99df34363483099fe864de1023 node-v20.19.2-win-x86.7z
c052c2b4e7ed147f9714b4e81bef4a1c5e04b33162c7300100c547747a2a34f3 node-v20.19.2-win-x86.zip
fcc217f3af52f8ecab1e5d016df6f543cb2d903d57e26f53ac48f7ea837dfab2 node-v20.19.2-x64.msi
2a5c4f9a2a563ba73b866dbdade0157ab042568b49a8b8ec0efa72150843ed17 node-v20.19.2-x86.msi
87f1d17df2fbbd775a4813d8936ece9120135d942eae6d308d2328616eed3103 node-v20.19.2.pkg
eaf8800608ffbcae7665beb4776d8e9d8484055fbb840ef44e346044f9b08ad5 node-v20.19.2.tar.gz
4a7ff611d5180f4e420204fa6f22f9f9deb2ac5e98619dd9a4de87edf5b03b6e node-v20.19.2.tar.xz
c36cb4961a50d2ac05a72d78b6a5b21cb9ac31ca6545a4a438b287f9d0eea9ba win-arm64/node.exe
db56ef1b250e24a698ee3a21f4f055a1f60319f273fa7bcab84212cdf9498bf1 win-arm64/node.lib
b754b00df640e352b663f7907f0e11240258aa5f5059d9c503ce455d2500d92f win-arm64/node_pdb.7z
2b6f70f82b6bbe178556f0b49290011e83c51e63584488d75e7dd9b94560345c win-arm64/node_pdb.zip
5793a3bf18d75c2bc5cb2b65ba8975b30057d7bf443141db4cf970d54fd8ddc6 win-x64/node.exe
21b9f76d6ec91f6510dc5adb891dbd52893c7d242549b5cf6084803d3be91665 win-x64/node.lib
2b7de888145be4086c70866417a0742a87ec50472d8b04e1850701ca2f7bfe4e win-x64/node_pdb.7z
d5493643b36531bb02591c3f855c77e2070bb972be1a51ea313e6b25f3e29556 win-x64/node_pdb.zip
c5505d7f22b1f6bfc56f4fe16f472c3b6428e74f48062028e6cc2a4b646a72cc win-x86/node.exe
4f7899d5cf286aad56624539952c087088e6e90f010f55d1f9145deb45524152 win-x86/node.lib
3b2de193ae323416b1c340777f9c2ff010f337d6dbdbd711a3de4a485315e1b5 win-x86/node_pdb.7z
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
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-v18.9.0/test/parallel/test-module-loading-globalpaths.js
--- node-v20.19.2.orig/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
addLibraryPath(process.env);
@@ -16,10 +16,10 @@ Index: node-v18.9.0/test/parallel/test-module-loading-globalpaths.js
if (process.argv[2] === 'child') {
console.log(require(pkgName).string);
} 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-v18.9.0/test/parallel/test-tls-passphrase.js
--- node-v20.19.2.orig/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
}, onSecureConnect());
})).unref();
@@ -29,10 +29,10 @@ Index: node-v18.9.0/test/parallel/test-tls-passphrase.js
// Missing passphrase
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-v18.9.0/test/parallel/test-repl-envvars.js
--- node-v20.19.2.orig/test/parallel/test-repl-envvars.js
+++ node-v20.19.2/test/parallel/test-repl-envvars.js
@@ -2,7 +2,9 @@
// 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');
+
const stream = require('stream');
const { describe, test } = require('node:test');
const REPL = require('internal/repl');
const assert = require('assert');
Index: node-v18.9.0/test/common/index.mjs
Index: node-v20.19.2/Makefile
===================================================================
--- node-v18.9.0.orig/test/common/index.mjs
+++ node-v18.9.0/test/common/index.mjs
@@ -45,6 +45,7 @@ const {
expectsError,
skipIfInspectorDisabled,
skipIf32Bits,
+ skipIfWorker,
getArrayBufferViews,
getBufferSources,
getTTYfd,
@@ -94,6 +95,7 @@ export {
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
--- node-v20.19.2.orig/Makefile
+++ node-v20.19.2/Makefile
@@ -396,7 +396,6 @@ ADDONS_HEADERS_PREREQS := tools/install.
$(wildcard deps/uv/include/*/*.h) \
$(wildcard deps/v8/include/*.h) \
$(wildcard deps/v8/include/*/*.h) \
- deps/zlib/zconf.h deps/zlib/zlib.h \
src/node.h src/node_api.h src/js_native_api.h src/js_native_api_types.h \
src/node_api_types.h src/node_buffer.h src/node_object_wrap.h \
src/node_version.h
@@ -568,7 +567,8 @@ test-ci-js: | clear-stalled
.PHONY: test-ci
# Related CI jobs: most CI tests, excluding node-test-commit-arm-fanned
test-ci: LOGLEVEL := info
@@ -78,7 +66,7 @@ Index: node-v18.9.0/Makefile
out/Release/cctest --gtest_output=xml:out/junit/cctest.xml
$(PYTHON) tools/test.py $(PARALLEL_ARGS) -p tap --logfile test.tap \
--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/*)))
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)"; \
else \
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-v18.9.0/test/parallel/test-crypto-dh.js
@@ -167,7 +167,7 @@ assert.throws(() => {
dh3.computeSecret('');
}, { message: common.hasOpenSSL3 ?
'error:02800080:Diffie-Hellman routines::invalid secret' :
- 'Supplied key is too small' });
+ /Supplied key is too small|error:05066066:Diffie-Hellman routines:compute_key:invalid public key/ });
--- node-v20.19.2.orig/tools/test.py
+++ node-v20.19.2/tools/test.py
@@ -1386,7 +1386,7 @@ def BuildOptions():
result.add_option("-s", "--suite", help="A test suite",
default=[], action="append")
result.add_option("-t", "--timeout", help="Timeout in seconds",
- default=120, type="int")
+ 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
assert.throws(
Index: node-v20.19.2/test/parallel/test-crypto-fips.js
===================================================================
--- 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
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-v19.7.0/node.gyp
@@ -951,6 +951,7 @@
--- node-v20.18.1.orig/node.gyp
+++ node-v20.18.1/node.gyp
@@ -1155,6 +1155,7 @@
'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/simdutf/simdutf.gyp:simdutf',
'deps/ada/ada.gyp:ada',
@@ -15,9 +15,9 @@ Index: node-v19.7.0/node.gyp
],
'includes': [
@@ -1047,6 +1048,7 @@
@@ -1229,6 +1230,7 @@
'<(node_lib_target_name)',
'deps/histogram/histogram.gyp:histogram',
'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/ada/ada.gyp:ada',
+ 'cctest'
],

View File

@@ -1,7 +1,7 @@
Index: node-git.b4f0a18b5a/addon-rpm.gypi
Index: node-v21.7.1/addon-rpm.gypi
===================================================================
--- /dev/null
+++ node-git.b4f0a18b5a/addon-rpm.gypi
+++ node-v21.7.1/addon-rpm.gypi
@@ -0,0 +1,35 @@
+{
+ '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-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -46,10 +46,6 @@ function configure (gyp, argv, callback)
--- node-v21.7.1.orig/deps/npm/node_modules/node-gyp/lib/configure.js
+++ node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -36,10 +36,6 @@ async function configure (gyp, argv) {
if ('v' + release.version !== process.version) {
// if --target was given, then determine a target version to compile for
log.verbose('get node dir', 'compiling against --target node version: %s', release.version)
@@ -53,10 +53,10 @@ Index: node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
if (!release.semver) {
// could not parse the version string with semver
@@ -68,6 +64,12 @@ function configure (gyp, argv, callback)
nodeDir = path.resolve(gyp.devDir, release.versionDir)
createBuildDir()
})
@@ -54,6 +50,12 @@ async function configure (gyp, argv) {
log.verbose('get node dir', 'target node version installed:', release.versionDir)
nodeDir = path.resolve(gyp.devDir, release.versionDir)
+ } else {
+ // 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')
@@ -64,16 +64,49 @@ Index: node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
+ 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
var gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- var addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
+ var addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi'
const gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- const addonGypi = path.resolve(__dirname, '..', 'addon.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)
var commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
fs.stat(commonGypi, function (err) {
if (err) {
+ try {
+ await fs.stat(commonGypi)
+ } catch (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-v18.9.0/tools/install.py
@@ -7,6 +7,7 @@ import errno
import os
--- node-v20.19.0.orig/tools/install.py
+++ node-v20.19.0/tools/install.py
@@ -7,6 +7,7 @@ import os
import platform
import shutil
import sys
+from distutils import sysconfig
import re
# set at init time
@@ -66,6 +67,10 @@ def try_copy(path, dst):
current_system = platform.system()
@@ -72,6 +73,10 @@ def try_copy(options, path, dest):
try_unlink(target_path) # prevent ETXTBSY errors
return shutil.copy2(source_path, target_path)
+def libdir():
+def libdir(options):
+ 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):
source_path, target_path = mkpaths(path, dst)
print('removing %s' % target_path)
@@ -81,7 +86,7 @@ def uninstall(paths, dst):
try_remove(path, dst)
def try_remove(options, path, dest):
source_path, target_path = mkpaths(options, path, dest)
if not options.silent:
@@ -88,7 +93,7 @@ def uninstall(options, paths, dest):
try_remove(options, path, dest)
def package_files(action, name, bins):
- target_path = 'lib/node_modules/' + name + '/'
+ target_path = libdir() + '/node_modules/' + name + '/'
def package_files(options, action, name, bins):
- target_path = os.path.join('lib/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
# 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:
action([link_path], 'bin/' + bin_name)
action(options, [link_path], os.path.join('bin', bin_name))
elif action == install:
- try_symlink('../lib/node_modules/' + name + '/' + bin_target, link_path)
+ try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path)
- try_symlink(options, os.path.join('../lib/node_modules', name, bin_target), link_path)
+ try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name, bin_target), link_path)
else:
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-v18.9.0/lib/internal/modules/cjs/loader.js
@@ -1254,7 +1254,7 @@ Module._initPaths = function() {
--- node-v20.19.0.orig/lib/internal/modules/cjs/loader.js
+++ node-v20.19.0/lib/internal/modules/cjs/loader.js
@@ -1730,7 +1730,7 @@ Module._initPaths = function() {
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

View File

@@ -1,7 +1,7 @@
#
# 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
# remain the property of their copyright owners, unless otherwise agreed
@@ -31,7 +31,7 @@
%endif
Name: nodejs20
Version: 20.1.0
Version: 20.19.2
Release: 0
# Double DWZ memory limits
@@ -49,6 +49,11 @@ Release: 0
%bcond_with libalternatives
%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
%define openssl_req_ver 1.1.1
%else
@@ -88,7 +93,7 @@ Release: 0
%bcond_without intree_openssl
%endif
%if 0%{?suse_version} >= 1330 || 0%{?fedora_version} >= 35
%if 0%{?suse_version} >= 1530 || 0%{?fedora_version} >= 35
%bcond_with intree_cares
%else
%bcond_without intree_cares
@@ -141,11 +146,13 @@ Source20: bash_output_helper.bash
## Patches not distribution specific
Patch1: cares_public_headers.patch
Patch3: fix_ci_tests.patch
Patch4: cares_sle12_capabilities.patch
Patch5: sle12_python3_compat.patch
Patch7: manual_configure.patch
Patch13: openssl_binary_detection.patch
Patch82: CVE-2024-21538.patch
## Patches specific to SUSE and openSUSE
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
# instead of /usr
Patch104: npm_search_paths.patch
Patch106: skip_no_console.patch
Patch110: legacy_python.patch
Patch120: flaky_test_rerun.patch
@@ -194,10 +200,10 @@ BuildRequires: config(netcfg)
%if 0%{?suse_version} == 1110
# GCC 5 is only available in the SUSE:SLE-11:SP4:Update repository (SDK).
%if %node_version_number >= 8
BuildRequires: gcc5-c++
BuildRequires: gcc5-c++
%define forced_gcc_version 5
%else
BuildRequires: gcc48-c++
BuildRequires: gcc48-c++
%define forced_gcc_version 4.8
%endif
%endif
@@ -207,15 +213,16 @@ BuildRequires: gcc48-c++
# for SLE-12:Update targets
%if 0%{?suse_version} == 1315
%if %node_version_number >= 17
BuildRequires: gcc12-c++
BuildRequires: gcc12-c++
BuildRequires: gcc12-PIE
%define forced_gcc_version 12
%else
%if %node_version_number >= 14
BuildRequires: gcc9-c++
BuildRequires: gcc9-c++
%define forced_gcc_version 9
%else
%if %node_version_number >= 8
BuildRequires: gcc7-c++
BuildRequires: gcc7-c++
%define forced_gcc_version 7
%endif
%endif
@@ -224,7 +231,8 @@ BuildRequires: gcc7-c++
%if 0%{?suse_version} == 1500
%if %node_version_number >= 17
BuildRequires: gcc12-c++
BuildRequires: gcc12-c++
BuildRequires: gcc12-PIE
%define forced_gcc_version 12
%endif
%endif
@@ -239,11 +247,19 @@ BuildRequires: gcc-c++
# Python dependencies
%if %node_version_number >= 14
%if 0%{?suse_version} && 0%{?suse_version} < 1500
%if 0%{?suse_version}
%if 0%{?suse_version} < 1500
BuildRequires: python36
%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-setuptools
%endif
%endif
%else
@@ -292,7 +308,7 @@ BuildRequires: openssl >= %{openssl_req_ver}
%else
# bundled openssl
%if %node_version_number <= 12 && 0%{?suse_version} == 1315 && 0%{?sle_version} < 120400
Provides: bundled(openssl) = 3.0.8
Provides: bundled(openssl) = 3.0.15
%else
BuildRequires: bundled_openssl_should_not_be_required
%endif
@@ -303,19 +319,23 @@ BuildRequires: bundled_openssl_should_not_be_required
%if ! 0%{with intree_cares}
BuildRequires: pkgconfig(libcares) >= 1.17.0
%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
%if ! 0%{with intree_icu}
BuildRequires: pkgconfig(icu-i18n) >= 71
%else
Provides: bundled(icu) = 72.1
Provides: bundled(icu) = 76.1
%endif
%if ! 0%{with intree_nghttp2}
BuildRequires: libnghttp2-devel >= 1.41.0
%else
Provides: bundled(nghttp2) = 1.52.0
Provides: bundled(nghttp2) = 1.61.0
%endif
%if 0%{with valgrind_tests}
@@ -364,24 +384,30 @@ ExclusiveArch: not_buildable
%endif
%endif
Provides: bundled(uvwasi) = 0.0.16
Provides: bundled(libuv) = 1.44.2
Provides: bundled(v8) = 11.3.244.4
Provides: bundled(uvwasi) = 0.0.21
Provides: bundled(libuv) = 1.46.0
Provides: bundled(v8) = 11.3.244.8
%if %{with intree_brotli}
Provides: bundled(brotli) = 1.0.9
Provides: bundled(brotli) = 1.1.0
%else
BuildRequires: pkgconfig(libbrotlidec)
%endif
Provides: bundled(llhttp) = 8.1.0
Provides: bundled(ngtcp2) = 0.8.1
Provides: bundled(base64) = 0.5.0
Provides: bundled(simdutf) = 3.2.7
Provides: bundled(llhttp) = 9.2.1
Provides: bundled(ngtcp2) = 1.1.0
Provides: bundled(simdutf) = 6.0.3
# 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
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}
Provides: nodejs-npm = %{version}
Obsoletes: nodejs-npm < 4.0.0
Provides: npm(npm) = 9.6.4
Provides: npm(npm) = 10.8.2
Provides: npm = %{version}
%if 0%{?suse_version} >= 1500
%if %{node_version_number} >= 10
@@ -418,122 +444,91 @@ Requires: user(nobody)
Requires: group(nobody)
%endif
%endif
Provides: bundled(node-abbrev) = 1.1.1
Provides: bundled(node-abbrev) = 2.0.0
Provides: bundled(node-abort-controller) = 3.0.0
Provides: bundled(node-agent-base) = 6.0.2
Provides: bundled(node-agentkeepalive) = 4.3.0
Provides: bundled(node-agent-base) = 7.1.1
Provides: bundled(node-aggregate-error) = 3.1.0
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) = 6.2.1
Provides: bundled(node-aproba) = 2.0.0
Provides: bundled(node-archy) = 1.0.0
Provides: bundled(node-are-we-there-yet) = 3.0.1
Provides: bundled(node-are-we-there-yet) = 4.0.0
Provides: bundled(node-balanced-match) = 1.0.2
Provides: bundled(node-base64-js) = 1.5.1
Provides: bundled(node-bin-links) = 4.0.1
Provides: bundled(node-binary-extensions) = 2.2.0
Provides: bundled(node-brace-expansion) = 1.1.11
Provides: bundled(node-bin-links) = 4.0.4
Provides: bundled(node-binary-extensions) = 2.3.0
Provides: bundled(node-brace-expansion) = 2.0.1
Provides: bundled(node-buffer) = 6.0.3
Provides: bundled(node-builtins) = 5.0.1
Provides: bundled(node-cacache) = 16.1.3
Provides: bundled(node-cacache) = 17.0.5
Provides: bundled(node-chalk) = 4.1.2
Provides: bundled(node-cacache) = 18.0.3
Provides: bundled(node-chalk) = 5.3.0
Provides: bundled(node-chownr) = 2.0.0
Provides: bundled(node-ci-info) = 3.8.0
Provides: bundled(node-cidr-regex) = 3.1.1
Provides: bundled(node-ci-info) = 4.0.0
Provides: bundled(node-cidr-regex) = 4.1.1
Provides: bundled(node-clean-stack) = 2.2.0
Provides: bundled(node-cli-columns) = 4.0.0
Provides: bundled(node-cli-table3) = 0.6.3
Provides: bundled(node-clone) = 1.0.4
Provides: bundled(node-cmd-shim) = 6.0.1
Provides: bundled(node-cmd-shim) = 6.0.3
Provides: bundled(node-color-convert) = 2.0.1
Provides: bundled(node-color-name) = 1.1.4
Provides: bundled(node-color-support) = 1.1.3
Provides: bundled(node-columnify) = 1.6.0
Provides: bundled(node-common-ancestor-path) = 1.0.1
Provides: bundled(node-concat-map) = 0.0.1
Provides: bundled(node-console-control-strings) = 1.1.0
Provides: bundled(node-cross-spawn) = 7.0.3
Provides: bundled(node-cssesc) = 3.0.0
Provides: bundled(node-debug) = 4.3.4
Provides: bundled(node-defaults) = 1.0.4
Provides: bundled(node-delegates) = 1.0.0
Provides: bundled(node-depd) = 2.0.0
Provides: bundled(node-diff) = 5.1.0
Provides: bundled(node-debug) = 4.3.5
Provides: bundled(node-diff) = 5.2.0
Provides: bundled(node-eastasianwidth) = 0.2.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-env-paths) = 2.2.1
Provides: bundled(node-err-code) = 2.0.3
Provides: bundled(node-event-target-shim) = 5.0.1
Provides: bundled(node-events) = 3.3.0
Provides: bundled(node-exponential-backoff) = 3.1.1
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) = 3.0.1
Provides: bundled(node-fs.realpath) = 1.0.0
Provides: bundled(node-function-bind) = 1.1.1
Provides: bundled(node-gauge) = 4.0.4
Provides: bundled(node-gauge) = 5.0.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-fs-minipass) = 3.0.3
Provides: bundled(node-glob) = 10.4.2
Provides: bundled(node-graceful-fs) = 4.2.11
Provides: bundled(node-has) = 1.0.3
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-hosted-git-info) = 7.0.2
Provides: bundled(node-http-cache-semantics) = 4.1.1
Provides: bundled(node-http-proxy-agent) = 5.0.0
Provides: bundled(node-https-proxy-agent) = 5.0.1
Provides: bundled(node-humanize-ms) = 1.2.1
Provides: bundled(node-http-proxy-agent) = 7.0.2
Provides: bundled(node-https-proxy-agent) = 7.0.5
Provides: bundled(node-iconv-lite) = 0.6.3
Provides: bundled(node-ieee754) = 1.2.1
Provides: bundled(node-ignore-walk) = 6.0.2
Provides: bundled(node-ignore-walk) = 6.0.5
Provides: bundled(node-imurmurhash) = 0.1.4
Provides: bundled(node-indent-string) = 4.0.0
Provides: bundled(node-infer-owner) = 1.0.4
Provides: bundled(node-inflight) = 1.0.6
Provides: bundled(node-inherits) = 2.0.4
Provides: bundled(node-ini) = 3.0.1
Provides: bundled(node-init-package-json) = 5.0.0
Provides: bundled(node-ip) = 2.0.0
Provides: bundled(node-ip-regex) = 4.3.0
Provides: bundled(node-is-cidr) = 4.0.2
Provides: bundled(node-is-core-module) = 2.11.0
Provides: bundled(node-ini) = 4.1.3
Provides: bundled(node-init-package-json) = 6.0.3
Provides: bundled(node-ip-address) = 9.0.5
Provides: bundled(node-ip-regex) = 5.0.0
Provides: bundled(node-is-cidr) = 5.1.0
Provides: bundled(node-is-fullwidth-code-point) = 3.0.0
Provides: bundled(node-is-lambda) = 1.0.1
Provides: bundled(node-isexe) = 2.0.0
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-jsonparse) = 1.3.1
Provides: bundled(node-just-diff) = 6.0.2
Provides: bundled(node-just-diff-apply) = 5.5.0
Provides: bundled(node-libnpmaccess) = 7.0.2
Provides: bundled(node-libnpmdiff) = 5.0.15
Provides: bundled(node-libnpmexec) = 5.0.15
Provides: bundled(node-libnpmfund) = 4.0.15
Provides: bundled(node-libnpmhook) = 9.0.3
Provides: bundled(node-libnpmorg) = 5.0.3
Provides: bundled(node-libnpmpack) = 5.0.15
Provides: bundled(node-libnpmpublish) = 7.1.3
Provides: bundled(node-libnpmsearch) = 6.0.2
Provides: bundled(node-libnpmteam) = 5.0.3
Provides: bundled(node-libnpmversion) = 4.0.2
Provides: bundled(node-lru-cache) = 6.0.0
Provides: bundled(node-lru-cache) = 7.18.3
Provides: bundled(node-make-fetch-happen) = 10.2.1
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-libnpmaccess) = 8.0.6
Provides: bundled(node-libnpmdiff) = 6.1.4
Provides: bundled(node-libnpmexec) = 8.1.3
Provides: bundled(node-libnpmfund) = 5.0.12
Provides: bundled(node-libnpmhook) = 10.0.5
Provides: bundled(node-libnpmorg) = 6.0.6
Provides: bundled(node-libnpmpack) = 7.0.4
Provides: bundled(node-libnpmpublish) = 9.0.9
Provides: bundled(node-libnpmsearch) = 7.0.6
Provides: bundled(node-libnpmteam) = 6.0.5
Provides: bundled(node-libnpmversion) = 6.0.3
Provides: bundled(node-lru-cache) = 10.2.2
Provides: bundled(node-make-fetch-happen) = 13.0.1
Provides: bundled(node-minimatch) = 9.0.5
Provides: bundled(node-minipass) = 3.3.6
Provides: bundled(node-minipass) = 4.2.5
Provides: bundled(node-minipass-collect) = 1.0.2
Provides: bundled(node-minipass-fetch) = 2.1.2
Provides: bundled(node-minipass-fetch) = 3.0.1
Provides: bundled(node-minipass) = 5.0.0
Provides: bundled(node-minipass) = 7.1.2
Provides: bundled(node-minipass-collect) = 2.0.1
Provides: bundled(node-minipass-fetch) = 3.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-sized) = 1.0.3
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-mute-stream) = 1.0.0
Provides: bundled(node-negotiator) = 0.6.3
Provides: bundled(node-node-gyp) = 9.3.1
Provides: bundled(node-nopt) = 6.0.0
Provides: bundled(node-nopt) = 7.1.0
Provides: bundled(node-normalize-package-data) = 5.0.0
Provides: bundled(node-npm-audit-report) = 4.0.0
Provides: bundled(node-npm-bundled) = 3.0.0
Provides: bundled(node-npm-install-checks) = 6.1.0
Provides: bundled(node-npm-normalize-package-bin) = 3.0.0
Provides: bundled(node-npm-package-arg) = 10.1.0
Provides: bundled(node-npm-packlist) = 7.0.4
Provides: bundled(node-npm-pick-manifest) = 8.0.1
Provides: bundled(node-npm-profile) = 7.0.1
Provides: bundled(node-npm-registry-fetch) = 14.0.3
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-node-gyp) = 10.1.0
Provides: bundled(node-nopt) = 7.2.1
Provides: bundled(node-normalize-package-data) = 6.0.2
Provides: bundled(node-npm-audit-report) = 5.0.0
Provides: bundled(node-npm-bundled) = 3.0.1
Provides: bundled(node-npm-install-checks) = 6.3.0
Provides: bundled(node-npm-normalize-package-bin) = 3.0.1
Provides: bundled(node-npm-package-arg) = 11.0.2
Provides: bundled(node-npm-packlist) = 8.0.2
Provides: bundled(node-npm-pick-manifest) = 9.1.0
Provides: bundled(node-npm-profile) = 10.0.0
Provides: bundled(node-npm-registry-fetch) = 17.1.0
Provides: bundled(node-npm-user-validate) = 2.0.1
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-path-is-absolute) = 1.0.1
Provides: bundled(node-path-scurry) = 1.6.3
Provides: bundled(node-postcss-selector-parser) = 6.0.11
Provides: bundled(node-path-key) = 3.1.1
Provides: bundled(node-path-scurry) = 1.11.1
Provides: bundled(node-postcss-selector-parser) = 6.1.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-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-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-read) = 2.0.0
Provides: bundled(node-read) = 3.0.1
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-readable-stream) = 3.6.2
Provides: bundled(node-readable-stream) = 4.3.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-semver) = 7.3.8
Provides: bundled(node-set-blocking) = 2.0.0
Provides: bundled(node-signal-exit) = 3.0.7
Provides: bundled(node-sigstore) = 1.2.0
Provides: bundled(node-semver) = 7.6.2
Provides: bundled(node-shebang-command) = 2.0.0
Provides: bundled(node-shebang-regex) = 3.0.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-socks) = 2.7.1
Provides: bundled(node-socks-proxy-agent) = 7.0.0
Provides: bundled(node-socks) = 2.8.3
Provides: bundled(node-socks-proxy-agent) = 8.0.4
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-license-ids) = 3.0.13
Provides: bundled(node-ssri) = 10.0.2
Provides: bundled(node-ssri) = 9.0.1
Provides: bundled(node-string_decoder) = 1.1.1
Provides: bundled(node-spdx-expression-parse) = 4.0.0
Provides: bundled(node-spdx-license-ids) = 3.0.18
Provides: bundled(node-sprintf-js) = 1.1.3
Provides: bundled(node-ssri) = 10.0.6
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-supports-color) = 7.2.0
Provides: bundled(node-tar) = 6.1.13
Provides: bundled(node-strip-ansi) = 7.1.0
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-tiny-relative-date) = 1.3.0
Provides: bundled(node-treeverse) = 3.0.0
Provides: bundled(node-tuf-js) = 1.1.2
Provides: bundled(node-unique-filename) = 2.0.1
Provides: bundled(node-tuf-js) = 2.2.1
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-util-deprecate) = 1.0.2
Provides: bundled(node-validate-npm-package-license) = 3.0.4
Provides: bundled(node-validate-npm-package-name) = 5.0.0
Provides: bundled(node-walk-up-path) = 1.0.0
Provides: bundled(node-wcwidth) = 1.0.1
Provides: bundled(node-validate-npm-package-name) = 5.0.1
Provides: bundled(node-walk-up-path) = 3.0.1
Provides: bundled(node-which) = 2.0.2
Provides: bundled(node-which) = 3.0.0
Provides: bundled(node-wide-align) = 1.1.5
Provides: bundled(node-wrappy) = 1.0.2
Provides: bundled(node-write-file-atomic) = 5.0.0
Provides: bundled(node-which) = 4.0.0
Provides: bundled(node-wrap-ansi) = 7.0.0
Provides: bundled(node-wrap-ansi) = 8.1.0
Provides: bundled(node-write-file-atomic) = 5.0.1
Provides: bundled(node-yallist) = 4.0.0
%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}
%endif
%if %{node_version_number} == 16
tar zxf %{S:12}
%endif
%if %{node_version_number} <= 10
rm -r deps/npm/*
pushd deps/npm
@@ -666,7 +658,7 @@ tar Jxf %{SOURCE11}
%endif
# 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
mkdir deps/npm/node_modules/node-gyp
pushd deps/npm/node_modules/node-gyp
@@ -674,36 +666,42 @@ tar Jxf %{SOURCE5}
popd
%if %{node_version_number} >= 19
%patch308 -p1
%patch -P 308 -p1
%else
%endif
%endif
%patch1 -p1
%patch3 -p1
%if %{node_version_number} <= 12 && 0%{?suse_version} < 1500
%patch5 -p1
%patch -P 1 -p1
%patch -P 3 -p1
%if 0%{?suse_version} < 1500
%patch -P 4 -p1
%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}
%endif
%patch13 -p1
%patch100 -p1
%patch101 -p1
%patch102 -p1
%patch -P 13 -p1
%patch -P 82 -p1
%patch -P 100 -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).
%if 0%{?suse_version} == 1110
%endif
%patch104 -p1
%patch106 -p1
%patch110 -p1
%patch120 -p1
%patch132 -p1
%patch -P 104 -p1
%patch -P 110 -p1
%patch -P 120 -p1
%patch -P 132 -p1
%if ! 0%{with openssl_RSA_get0_pss_params}
%endif
%patch200 -p1
%patch -P 200 -p1
%patch305 -p1
%patch309 -p1
%patch -P 305 -p1
%patch -P 309 -p1
%if %{node_version_number} == 12
# minimist security update - patch50
@@ -775,9 +773,6 @@ EOF
. ./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 \
--prefix=%{_prefix} \
%if 0%{?with nodejs_lto}
@@ -792,11 +787,6 @@ EOF
%endif
%if ! 0%{with intree_icu}
--with-intl=system-icu \
%else
%if %{has_small_icu}
--with-intl=small-icu \
--with-icu-source=deps/icu-small \
%endif
%endif
%if ! 0%{with intree_nghttp2}
--shared-nghttp2 \
@@ -810,6 +800,9 @@ EOF
%if %{node_version_number} < 19
--without-dtrace \
%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)
--openssl-default-cipher-list=PROFILE=SYSTEM \
%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 %{_sysconfdir}/alternatives/npx-default %{buildroot}%{_bindir}/npx-default
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
# libalternatives - can always ship
@@ -908,6 +907,13 @@ binary=%{_bindir}/npx%{node_version_number}
man=npx%{node_version_number}.1
group=npm,npx
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
%if 0%{?suse_version} < 1500
@@ -925,17 +931,23 @@ export CI_JS_SUITES=default
export NODE_TEST_NO_INTERNET=1
%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
%if %{node_version_number} >= 20
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
# Update the python3 executable name to point at forced python version
# needed to fix build on SLE12 SP5
%if 0%{?forced_python_version:1}
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
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
# multicast test fail since no socket?
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
# OBS broken /etc/hosts -- https://github.com/openSUSE/open-build-service/issues/13104
@@ -1052,6 +1068,14 @@ make test-ci
%defattr(-, root, root)
%{_bindir}/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
%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 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
%pre
# 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}
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
%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-v19.9.0/deps/npm/lib/commands/help-search.js
@@ -16,7 +16,7 @@ class HelpSearch extends BaseCommand {
--- node-v20.15.1.orig/deps/npm/lib/commands/help-search.js
+++ node-v20.15.1/deps/npm/lib/commands/help-search.js
@@ -17,7 +17,7 @@ class HelpSearch extends BaseCommand {
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`)
// preserve glob@8 behavior
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-v19.9.0/deps/npm/lib/npm.js
@@ -408,7 +408,13 @@ class Npm extends EventEmitter {
--- node-v20.15.1.orig/deps/npm/lib/npm.js
+++ node-v20.15.1/deps/npm/lib/npm.js
@@ -338,7 +338,13 @@ class Npm {
}
get globalPrefix () {
@@ -29,4 +29,4 @@ Index: node-v19.9.0/deps/npm/lib/npm.js
+ 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
tar Jxf node-v*.tar.xz
cd node-v.*/tools/doc
cd node-v*/tools/doc
npm ci
cd ../..
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
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.1.0/Makefile
--- node-v20.13.1.orig/Makefile
+++ node-v20.13.1/Makefile
@@ -76,7 +76,7 @@ BUILDTYPE_LOWER := $(shell echo $(BUILDT
EXEEXT := $(shell $(PYTHON) -c \
"import sys; print('.exe' if sys.platform == 'win32' else '')")
-NODE_EXE = node$(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)
NPM ?= ./deps/npm/bin/npm-cli.js
Index: node-v20.1.0/tools/install.py
Index: node-v20.13.1/tools/install.py
===================================================================
--- node-v20.1.0.orig/tools/install.py
+++ node-v20.1.0/tools/install.py
@@ -86,7 +86,7 @@ def uninstall(paths, dst):
try_remove(path, dst)
--- node-v20.13.1.orig/tools/install.py
+++ node-v20.13.1/tools/install.py
@@ -87,7 +87,7 @@ def uninstall(options, paths, dest):
try_remove(options, path, dest)
def package_files(action, name, bins):
- target_path = libdir() + '/node_modules/' + name + '/'
+ target_path = libdir() + '/node_modules/' + name + '20/'
def package_files(options, action, name, bins):
- target_path = os.path.join(libdir(options), 'node_modules', name)
+ 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
# 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:
action([link_path], 'bin/' + bin_name)
action(options, [link_path], os.path.join('bin', bin_name))
elif action == install:
- try_symlink('../' + libdir() + '/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, bin_target), link_path)
+ try_symlink(options, os.path.join('..', libdir(options), 'node_modules', name + '20', bin_target), link_path)
else:
assert 0 # unhandled action type
def npm_files(action):
package_files(action, 'npm', {
def npm_files(options, action):
package_files(options, action, 'npm', {
- 'npm': 'bin/npm-cli.js',
- 'npx': 'bin/npx-cli.js',
+ 'npm20': 'bin/npm-cli.js',
+ 'npx20': 'bin/npx-cli.js',
})
def corepack_files(action):
package_files(action, 'corepack', {
def corepack_files(options, action):
package_files(options, action, 'corepack', {
- 'corepack': 'dist/corepack.js',
+ 'corepack20': 'dist/corepack.js',
# Not the default just yet:
# 'yarn': '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):
is_windows = sys.platform == 'win32'
- output_file = 'node'
+ output_file = 'node20'
output_prefix = 'out/Release/'
if is_windows:
@@ -189,7 +189,7 @@ def files(action):
if 'freebsd' in sys.platform or 'openbsd' in sys.platform:
action(['doc/node.1'], 'man/man1/')
def files(options, action):
- node_bin = 'node'
+ node_bin = 'node20'
if options.is_win:
node_bin += '.exe'
action(options, [os.path.join(options.build_dir, node_bin)], os.path.join('bin', node_bin))
@@ -190,7 +190,7 @@ def files(options, action):
if 'openbsd' in sys.platform:
action(options, ['doc/node.1'], 'man/man1/')
else:
- action(['doc/node.1'], 'share/man/man1/')
+ action(['doc/node.1'], 'share/man/man1/node20.1')
- action(options, ['doc/node.1'], 'share/man/man1/')
+ action(options, ['doc/node.1'], 'share/man/man1/node20.1')
if 'true' == variables.get('node_install_npm'):
npm_files(action)
@@ -276,28 +276,28 @@ def headers(action):
if 'true' == options.variables.get('node_install_npm'):
npm_files(options, action)
@@ -331,28 +331,28 @@ def headers(options, action):
'src/node_buffer.h',
'src/node_object_wrap.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
if sys.platform.startswith('aix') or sys.platform == "os400":
- action(['out/Release/node.exp'], 'include/node/')
+ action(['out/Release/node.exp'], 'include/node20/')
action(options, ['out/Release/node.exp'], 'include/node/')
- subdir_files('deps/v8/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/node/', 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'):
- subdir_files('deps/uv/include', 'include/node/', action)
+ subdir_files('deps/uv/include', 'include/node20/', action)
if 'false' == options.variables.get('node_shared_libuv'):
- subdir_files(options, 'deps/uv/include', 'include/node/', action)
+ subdir_files(options, 'deps/uv/include', 'include/node20/', action)
if 'true' == variables.get('node_use_openssl') and \
'false' == variables.get('node_shared_openssl'):
- subdir_files('deps/openssl/openssl/include/openssl', 'include/node/openssl/', action)
- subdir_files('deps/openssl/config/archs', 'include/node/openssl/archs', action)
- subdir_files('deps/openssl/config', 'include/node/openssl', action)
+ subdir_files('deps/openssl/openssl/include/openssl', 'include/node20/openssl/', action)
+ subdir_files('deps/openssl/config/archs', 'include/node20/openssl/archs', action)
+ subdir_files('deps/openssl/config', 'include/node20/openssl', action)
if 'true' == options.variables.get('node_use_openssl') and \
'false' == options.variables.get('node_shared_openssl'):
- subdir_files(options, 'deps/openssl/openssl/include/openssl', 'include/node/openssl/', action)
- subdir_files(options, 'deps/openssl/config/archs', 'include/node/openssl/archs', action)
- subdir_files(options, 'deps/openssl/config', 'include/node/openssl', action)
+ subdir_files(options, 'deps/openssl/openssl/include/openssl', 'include/node20/openssl/', action)
+ subdir_files(options, 'deps/openssl/config/archs', 'include/node20/openssl/archs', action)
+ subdir_files(options, 'deps/openssl/config', 'include/node20/openssl', action)
if 'false' == variables.get('node_shared_zlib'):
action([
if 'false' == options.variables.get('node_shared_zlib'):
action(options, [
'deps/zlib/zconf.h',
'deps/zlib/zlib.h',
- ], 'include/node/')
@@ -113,10 +112,10 @@ Index: node-v20.1.0/tools/install.py
if sys.platform == 'zos':
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.1.0/doc/node.1
--- node-v20.13.1.orig/doc/node.1
+++ node-v20.13.1/doc/node.1
@@ -31,24 +31,24 @@
.Dt NODE 1
.
@@ -146,10 +145,10 @@ Index: node-v20.1.0/doc/node.1
.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.1.0/src/node_main.cc
--- node-v20.13.1.orig/src/node_main.cc
+++ node-v20.13.1/src/node_main.cc
@@ -94,6 +94,7 @@ int wmain(int argc, wchar_t* wargv[]) {
// UNIX
@@ -158,11 +157,11 @@ Index: node-v20.1.0/src/node_main.cc
return node::Start(argc, argv);
}
#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.1.0/tools/test.py
@@ -947,7 +947,7 @@ class Context(object):
--- node-v20.13.1.orig/tools/test.py
+++ node-v20.13.1/tools/test.py
@@ -954,7 +954,7 @@ class Context(object):
if self.vm is not None:
return self.vm
if arch == 'none':
@@ -171,11 +170,11 @@ Index: node-v20.1.0/tools/test.py
else:
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.1.0/node.gyp
@@ -23,8 +23,8 @@
--- node-v20.13.1.orig/node.gyp
+++ node-v20.13.1/node.gyp
@@ -24,8 +24,8 @@
'node_shared_openssl%': 'false',
'node_v8_options%': '',
'node_enable_v8_vtunejit%': 'false',
@@ -185,4 +184,4 @@ Index: node-v20.1.0/node.gyp
+ 'node_lib_target_name%': 'libnode20',
'node_intermediate_lib_type%': 'static_library',
'node_builtin_modules_path%': '',
# We list the deps/ files out instead of globbing them in js2c.py since we
'linked_module_files': [