- 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
This commit is contained in:
2024-05-28 12:07:56 +00:00
committed by Git OBS Bridge
commit 410742a23a
32 changed files with 2532 additions and 0 deletions
+354
View File
@@ -0,0 +1,354 @@
-------------------------------------------------------------------
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
- Update to version 20.1.0
assert: deprecate CallTracker
dns: expose getDefaultResultOrder
doc: add KhafraDev to collaborators
fs: add recursive option to readdir and opendir
fs: add support for mode flag to specify the copy behavior
of the cp methods
http: add highWaterMark option http.createServer
stream: preserve object mode in compose
test_runner: add testNamePatterns to run API
test_runner: execute before hook on test
test_runner: support combining coverage reports
wasi: make returnOnExit true by default
-------------------------------------------------------------------
Wed Apr 19 13:16:54 UTC 2023 - Adam Majer <adam.majer@suse.de> - 20.0.0
- Package new version 20.0.0
For overview of changes and details since 19.x and earlier see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V20.md#20.0.0
- imported the following patches from prior patches:
+ cares_public_headers.patch
+ fix_ci_tests.patch
+ flaky_test_rerun.patch
+ legacy_python.patch
+ linker_lto_jobs.patch
+ manual_configure.patch
+ node-gyp-addon-gypi.patch
+ node-gyp-config.patch
+ nodejs-libpath.patch
+ npm_search_paths.patch
+ openssl_binary_detection.patch
+ qemu_timeouts_arches.patch
+ skip_no_console.patch
+ sle12_python3_compat.patch
+ test-skip-y2038-on-32bit-time_t.patch
+ versioned.patch
+1158
View File
File diff suppressed because it is too large Load Diff
+32
View File
@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<constraints>
<hardware>
<disk>
<size unit="G">8</size>
</disk>
<physicalmemory>
<size unit="M">10000</size>
</physicalmemory>
</hardware>
<overwrite>
<conditions>
<arch>aarch64</arch>
</conditions>
<hardware>
<cpu>
<flag>asimdrdm</flag>
</cpu>
</hardware>
</overwrite>
<overwrite>
<conditions>
<arch>armv6l</arch>
<arch>armv7l</arch>
</conditions>
<hardware>
<physicalmemory>
<size unit="G">5</size>
</physicalmemory>
</hardware>
</overwrite>
</constraints>
+23
View File
@@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text
+1
View File
@@ -0,0 +1 @@
.osc
+41
View File
@@ -0,0 +1,41 @@
941d645cc804274934a06813c87b0b7cee7a6c3f5a3c82e62e1f6f8dc7f0030c node-v20.13.1-aix-ppc64.tar.gz
adee910ad7603adfc198bbcf114fbe38635e305d29b0ea36435d8c1c2f2da275 node-v20.13.1-arm64.msi
c30fe595f59dcd2c5158da6bf8bc251ffc85ca37304afa89db150fb3c62c4507 node-v20.13.1-darwin-arm64.tar.gz
e8a8e78b91485bc95d20f2aa86201485593685c828ee609245ce21c5680d07ce node-v20.13.1-darwin-arm64.tar.xz
80bde95dc976b84db5ca566738c07305087ae578f5f3b05191e0e6ff54aaeaf2 node-v20.13.1-darwin-x64.tar.gz
c83bffeb4eb793da6cb61a44c422b399048a73d7a9c5eb735d9c7f5b0e8659b6 node-v20.13.1-darwin-x64.tar.xz
f81607966d511276eec291231a2329e2b626d5ed73e8cb5a13616a6a320f60b2 node-v20.13.1-headers.tar.gz
3a9b24eb11175c71e50f1eea40156df622ddb7f93b9616f639b4e6cffb2ba1a9 node-v20.13.1-headers.tar.xz
4f9c2ffb116855d6fa4b6654e453f403e31b53284b81c789b73d1d2e20c6f710 node-v20.13.1-linux-arm64.tar.gz
d251cda3ee0a539d8aea4ea2327e98998cb23487569073902e35efb0526d574b node-v20.13.1-linux-arm64.tar.xz
0f65dddc797ce7f76976e3720b7a1bca67d1465b113daf82878b66c541ae649f node-v20.13.1-linux-armv7l.tar.gz
af16f17ce87a0d51d0003ea60437d6c323c6514d187d5c3bd52a887bf0b4adf4 node-v20.13.1-linux-armv7l.tar.xz
d964b4ebc4f6fb2255dfb259f2e2489318c712a3b12ec2f5a1cb36a9ca208180 node-v20.13.1-linux-ppc64le.tar.gz
05f85b05d2aa1c0a2e0e7531fa54664fe47622cb346d18983908f100de8805fb node-v20.13.1-linux-ppc64le.tar.xz
efabff9fc928821325139b853c8edcd25a828b8f2fdc1e227cc282655424cf90 node-v20.13.1-linux-s390x.tar.gz
0bbe63d4ba09527e40ba59e606ea31fdc44f9552b9e726bf2817ac7fe986961e node-v20.13.1-linux-s390x.tar.xz
80b978a9fe544b1892e73a4bf89e0b3792b1d459b621874efdc2ddd2270c03fe node-v20.13.1-linux-x64.tar.gz
efc0f295dd878e510ab12ea36bbadc3db03c687ab30c07e86c7cdba7eed879a9 node-v20.13.1-linux-x64.tar.xz
e22c5087b64cb6e4e8ea43aa68147b0b12025f2d53fe8f8da826c874348a268c node-v20.13.1.pkg
a85ee53aa0a5c2f5ca94fa414cdbceb91eb7d18a77fc498358512c14cc6c6991 node-v20.13.1.tar.gz
791786a09023241cb7e4f7d65ec90aa924bb39141ff7bb6d5a1dedf7def4b4e7 node-v20.13.1.tar.xz
acd05435cba201ed43dace61750d2ce65ef3fab0a0752cedd614085e93806992 node-v20.13.1-win-arm64.7z
d6d3019fb03c9918dfb4ba9dbdadb701b781a661283689f95053849c3afc70c8 node-v20.13.1-win-arm64.zip
a3aacbadf432c03b13428b55d33e5a6af238c30c340d97d47cc9ce0b57bfa3b8 node-v20.13.1-win-x64.7z
555a55c0c7441cb90e441115c81f610fca712dd5b192034d5eaafd7c29924425 node-v20.13.1-win-x64.zip
20df3d7b90876aff5a952d6613c629707b0d04e7d03e0a86ff2d1524f0906969 node-v20.13.1-win-x86.7z
d9e6a4c0b72d63ae2c6e71fab868392bc394238f2027f9603500eb2edf571495 node-v20.13.1-win-x86.zip
695eb534992f0d4aa10ab024aef596664493e19e0e1581c41eefe33050811c52 node-v20.13.1-x64.msi
7d14bdc418e77f74b75ae424047039e73e004d2ebf917f491e481d4cb1c4676a node-v20.13.1-x86.msi
6e7ec3dc7b8874eec281e8ea1a44c9a1f1034784853aacba47531ebc4bed6ceb win-arm64/node.exe
4935c9a662de9421bc69e3e8a2146f6dabed40a7fd486ca46e697df30378b89f win-arm64/node.lib
8264792d2db82c78dcc2d52bcbbb37ce199f7b1730dfe6998bf6ef6d5c0d4a18 win-arm64/node_pdb.7z
204c4fd540f44ab4e52b80d2277c97092af8a67a38ee883abf1e44dc4fa86d34 win-arm64/node_pdb.zip
11dfd8204bf09a95574ae69c524792f47bc61c693a53cca8a0185f831130740f win-x64/node.exe
bd5890fac4571d1cdfaca31d74ae791feef1edad3b70421969de2aa83f330797 win-x64/node.lib
a77be6d0f8142f9c01a0d3312289b949703f262759ce5bd1843fb2f2773c7eed win-x64/node_pdb.7z
688602fd42def373fb4bf4f9f5ae2badd846b1faec6c77eea0bd0e1b5ed0b379 win-x64/node_pdb.zip
7d3f344bb628d331563723dbb5855a118ba26484c96f9d5cc007d1d2aa74f3f0 win-x86/node.exe
f82b299d4498b58e549a11cdcb5ce9efa2162f7efa20f527903f5ac5a0387ca0 win-x86/node.lib
df200297b0a6b860a7fae8ee6b0eea1e0ca83bae168dd51cc93372454353bdcd win-x86/node_pdb.7z
f48664ea50da26bc2f42c157be2b89412d105f5124d5fcc847eb91c4f14cfd00 win-x86/node_pdb.zip
Binary file not shown.
+16
View File
@@ -0,0 +1,16 @@
#
# Node can break stdin/stdout/stderr by setting them O_NONBLOCK
# and then not resetting it back to blocking mode on exit
# This function redirects stdio descriptors via new logging pipe
#
function decoupled_cmd
{
mkfifo _log
($@) < /dev/null > _log 2>_log &
cat _log
rm _log
wait $!
}
+13
View File
@@ -0,0 +1,13 @@
Index: node-v14.17.5/src/cares_wrap.h
===================================================================
--- node-v14.17.5.orig/src/cares_wrap.h
+++ node-v14.17.5/src/cares_wrap.h
@@ -22,7 +22,7 @@
# include <netdb.h>
#endif // __POSIX__
-# include <ares_nameser.h>
+#include <arpa/nameser.h>
namespace node {
namespace cares_wrap {
+22
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
+156
View File
@@ -0,0 +1,156 @@
Author: Adam Majer <amajer@suse.de>
Date: Dec 20 09:18:49 UTC 2017
Summary: Fix CI unit tests framework for OBS building
Index: node-v20.12.1/test/parallel/test-module-loading-globalpaths.js
===================================================================
--- node-v20.12.1.orig/test/parallel/test-module-loading-globalpaths.js
+++ node-v20.12.1/test/parallel/test-module-loading-globalpaths.js
@@ -11,6 +11,9 @@ const { addLibraryPath } = require('../c
addLibraryPath(process.env);
+common.skip('hardcoded global paths');
+return;
+
if (process.argv[2] === 'child') {
console.log(require(pkgName).string);
} else {
Index: node-v20.12.1/test/parallel/test-tls-passphrase.js
===================================================================
--- node-v20.12.1.orig/test/parallel/test-tls-passphrase.js
+++ node-v20.12.1/test/parallel/test-tls-passphrase.js
@@ -223,7 +223,7 @@ server.listen(0, common.mustCall(functio
}, onSecureConnect());
})).unref();
-const errMessageDecrypt = /bad decrypt/;
+const errMessageDecrypt = /bad (decrypt|password read)/;
// Missing passphrase
assert.throws(function() {
Index: node-v20.12.1/test/parallel/test-repl-envvars.js
===================================================================
--- node-v20.12.1.orig/test/parallel/test-repl-envvars.js
+++ node-v20.12.1/test/parallel/test-repl-envvars.js
@@ -2,7 +2,9 @@
// Flags: --expose-internals
-require('../common');
+const common = require('../common');
+common.skip('Not running test in OBS');
+
const stream = require('stream');
const { describe, test } = require('node:test');
const REPL = require('internal/repl');
Index: node-v20.12.1/Makefile
===================================================================
--- node-v20.12.1.orig/Makefile
+++ node-v20.12.1/Makefile
@@ -389,7 +389,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
@@ -560,7 +559,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
-test-ci: | clear-stalled bench-addons-build build-addons build-js-native-api-tests build-node-api-tests doc-only
+test-ci: | clear-stalled bench-addons-build build-addons build-js-native-api-tests build-node-api-tests
+ strip $(NODE_EXE)
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) \
@@ -742,7 +742,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
- @if [ "$(shell $(node_use_openssl))" != "true" ]; then \
+ echo "Skipping tools/doc/node_modules"
+# @if [ "$(shell $(node_use_openssl))" != "true" ]; then \
echo "Skipping tools/doc/node_modules (no crypto)"; \
else \
cd tools/doc && $(call available-node,$(run-npm-ci)) \
Index: node-v20.12.1/tools/test.py
===================================================================
--- node-v20.12.1.orig/tools/test.py
+++ node-v20.12.1/tools/test.py
@@ -1362,7 +1362,7 @@ def BuildOptions():
result.add_option("-s", "--suite", help="A test suite",
default=[], action="append")
result.add_option("-t", "--timeout", help="Timeout in seconds",
- 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.12.1/test/parallel/test-crypto-dh.js
===================================================================
--- node-v20.12.1.orig/test/parallel/test-crypto-dh.js
+++ node-v20.12.1/test/parallel/test-crypto-dh.js
@@ -90,9 +90,7 @@ const crypto = require('crypto');
const hasOpenSSL3WithNewErrorMessage = (v >= 0x300000c0 && v <= 0x30100000) || (v >= 0x30100040 && v <= 0x30200000);
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)/);
}
}
Index: node-v20.12.1/test/parallel/test-node-output-errors.mjs
===================================================================
--- node-v20.12.1.orig/test/parallel/test-node-output-errors.mjs
+++ node-v20.12.1/test/parallel/test-node-output-errors.mjs
@@ -28,6 +28,7 @@ describe('errors output', { concurrency:
.replaceAll(/\/(\w)/g, '*$1')
.replaceAll('*test*', '*')
.replaceAll('*fixtures*errors*', '*')
+ .replace(/`node\d+ --/, '`node --')
.replaceAll('file:**', 'file:*/');
}
Index: node-v20.12.1/test/parallel/test-crypto-fips.js
===================================================================
--- node-v20.12.1.orig/test/parallel/test-crypto-fips.js
+++ node-v20.12.1/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.12.1/test/parallel/test-node-output-v8-warning.mjs
===================================================================
--- node-v20.12.1.orig/test/parallel/test-node-output-v8-warning.mjs
+++ node-v20.12.1/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.12.1/benchmark/misc/startup-cli-version.js
===================================================================
--- node-v20.12.1.orig/benchmark/misc/startup-cli-version.js
+++ node-v20.12.1/benchmark/misc/startup-cli-version.js
@@ -11,7 +11,6 @@ const path = require('path');
// indispensible part of the CLI.
const bench = common.createBenchmark(main, {
cli: [
- 'tools/node_modules/eslint/bin/eslint.js',
'deps/npm/bin/npx-cli.js',
'deps/npm/bin/npm-cli.js',
'deps/corepack/dist/corepack.js',
+21
View File
@@ -0,0 +1,21 @@
Index: node-v16.13.0/tools/test.py
===================================================================
--- node-v16.13.0.orig/tools/test.py
+++ node-v16.13.0/tools/test.py
@@ -586,6 +586,16 @@ class TestCase(object):
self.context.store_unexpected_output)
def Run(self):
+ reruns = 0
+ while (reruns < 5):
+ reruns += 1
+ result = self.OriginalRun()
+ if (not result.HasFailed()):
+ break
+ print("FLAKY TEST rerun: ", self.GetCommand())
+ return result
+
+ def OriginalRun(self):
try:
result = self.RunCommand(self.GetCommand(), {
"TEST_SERIAL_ID": "%d" % self.serial_id,
+36
View File
@@ -0,0 +1,36 @@
Index: node-v20.0.0/deps/v8/src/builtins/builtins-array-gen.cc
===================================================================
--- node-v20.0.0.orig/deps/v8/src/builtins/builtins-array-gen.cc
+++ node-v20.0.0/deps/v8/src/builtins/builtins-array-gen.cc
@@ -18,6 +18,7 @@
#include "src/objects/arguments-inl.h"
#include "src/objects/elements-kind.h"
#include "src/objects/property-cell.h"
+#include "src/wasm/wasm-objects.h"
namespace v8 {
namespace internal {
Index: node-v20.0.0/deps/v8/src/builtins/builtins-array.cc
===================================================================
--- node-v20.0.0.orig/deps/v8/src/builtins/builtins-array.cc
+++ node-v20.0.0/deps/v8/src/builtins/builtins-array.cc
@@ -22,6 +22,7 @@
#include "src/objects/objects-inl.h"
#include "src/objects/prototype.h"
#include "src/objects/smi.h"
+#include "src/wasm/wasm-objects.h"
namespace v8 {
namespace internal {
Index: node-v20.0.0/deps/v8/src/codegen/tnode.h
===================================================================
--- node-v20.0.0.orig/deps/v8/src/codegen/tnode.h
+++ node-v20.0.0/deps/v8/src/codegen/tnode.h
@@ -6,6 +6,7 @@
#define V8_CODEGEN_TNODE_H_
#include "src/codegen/machine-type.h"
+#include "src/wasm/wasm-objects.h"
namespace v8 {
namespace internal {
+26
View File
@@ -0,0 +1,26 @@
Index: node-v18.11.0/tools/utils.py
===================================================================
--- node-v18.11.0.orig/tools/utils.py
+++ node-v18.11.0/tools/utils.py
@@ -26,10 +26,10 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-import glob
import platform
import re
import sys
+from pathlib import Path
# Reads a .list file into an array of strings
@@ -109,7 +109,8 @@ def IsWindows():
def SearchFiles(dir, ext):
- list = glob.glob(dir+ '/**/*.' + ext, recursive=True)
+ list = Path(dir).glob('**/*.' + ext)
+ list = [ str(x) for x in list ]
if sys.platform == 'win32':
list = [ x.replace('\\', '/')for x in list]
return sorted(list)
+25
View File
@@ -0,0 +1,25 @@
Purpose of these dependencies is to make sure that the linker
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
===================================================================
--- node-v19.7.0.orig/node.gyp
+++ node-v19.7.0/node.gyp
@@ -951,6 +951,7 @@
'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/simdutf/simdutf.gyp:simdutf',
'deps/ada/ada.gyp:ada',
+ 'fuzz_env'
],
'includes': [
@@ -1047,6 +1048,7 @@
'deps/histogram/histogram.gyp:histogram',
'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/ada/ada.gyp:ada',
+ 'cctest'
],
'includes': [
+20
View File
@@ -0,0 +1,20 @@
Author: Adam Majer <amajer@suse.de>
Date: Wed May 23 14:13:33 CEST 2018
Summary: This config.h is defined by hand
Gyp doesn't run autotools, so this config is not quite correct.
Update to prevent implicit defines to be used.
Index: node-git.8dae89b396/deps/nghttp2/lib/includes/config.h
===================================================================
--- node-git.8dae89b396.orig/deps/nghttp2/lib/includes/config.h
+++ node-git.8dae89b396/deps/nghttp2/lib/includes/config.h
@@ -71,7 +71,7 @@ typedef intptr_t ssize_t;
/* #undef HAVE_NETDB_H */
/* Define to 1 if you have the <netinet/in.h> header file. */
-/* #undef HAVE_NETINET_IN_H */
+#define HAVE_NETINET_IN_H 1
/* Define to 1 if you have the <pwd.h> header file. */
/* #undef HAVE_PWD_H */
+112
View File
@@ -0,0 +1,112 @@
Index: node-v21.7.1/addon-rpm.gypi
===================================================================
--- /dev/null
+++ node-v21.7.1/addon-rpm.gypi
@@ -0,0 +1,35 @@
+{
+ 'target_defaults': {
+ 'type': 'loadable_module',
+ 'product_prefix': '',
+ 'include_dirs': [
+ '/usr/include/node20/',
+ '/usr/include/'
+ ],
+
+ 'target_conditions': [
+ ['_type=="loadable_module"', {
+ 'product_extension': 'node',
+ 'defines': [ 'BUILDING_NODE_EXTENSION' ],
+ }]
+ ],
+
+ 'conditions': [
+ [ 'OS=="mac"', {
+ 'libraries': [ '-undefined dynamic_lookup' ],
+ 'xcode_settings': {
+ 'DYLIB_INSTALL_NAME_BASE': '@rpath'
+ },
+ }],
+ [ 'OS=="win"', {
+ 'libraries': [ '-l<(node_root_dir)/$(Configuration)/node.lib' ],
+ # warning C4251: 'node::ObjectWrap::handle_' : class 'v8::Persistent<T>'
+ # needs to have dll-interface to be used by clients of class 'node::ObjectWrap'
+ 'msvs_disabled_warnings': [ 4251 ],
+ }],
+ [ 'OS=="freebsd" or OS=="openbsd" or OS=="solaris" or (OS=="linux" and target_arch!="ia32")', {
+ 'cflags': [ '-fPIC' ],
+ }]
+ ]
+ }
+}
Index: node-v21.7.1/deps/npm/node_modules/node-gyp/lib/configure.js
===================================================================
--- 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)
- } else {
- // if no --target was specified then use the current host node version
- log.verbose('get node dir', 'no --target version specified, falling back to host node version: %s', release.version)
- }
if (!release.semver) {
// could not parse the version string with semver
@@ -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')
+ nodeDir = '/usr/include/node20'
+ createBuildDir()
+ }
}
return createBuildDir()
@@ -201,8 +203,16 @@ async function configure (gyp, argv) {
// this logic ported from the old `gyp_addon` python file
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')
+
+ 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'
+13
View File
@@ -0,0 +1,13 @@
Index: node-v19.1.0/deps/npm/node_modules/node-gyp/lib/configure.js
===================================================================
--- node-v19.1.0.orig/deps/npm/node_modules/node-gyp/lib/configure.js
+++ node-v19.1.0/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -96,7 +96,7 @@ function configure (gyp, argv, callback)
log.verbose('build/' + configFilename, 'creating config file')
- var config = process.config || {}
+ var config = JSON.parse(JSON.stringify(process.config || {}))
var defaults = config.target_defaults
var variables = config.variables
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
+3
View File
@@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:791786a09023241cb7e4f7d65ec90aa924bb39141ff7bb6d5a1dedf7def4b4e7
size 41770976
BIN
View File
Binary file not shown.
+54
View File
@@ -0,0 +1,54 @@
Index: node-v20.12.0/tools/install.py
===================================================================
--- node-v20.12.0.orig/tools/install.py
+++ node-v20.12.0/tools/install.py
@@ -6,6 +6,7 @@ import errno
import os
import shutil
import sys
+from distutils import sysconfig
import re
def abspath(*args):
@@ -66,6 +67,10 @@ def try_copy(options, path, dest):
try_unlink(target_path) # prevent ETXTBSY errors
return shutil.copy2(source_path, target_path)
+def libdir(options):
+ libdir_fq = sysconfig.get_config_var("LIBDIR")
+ return re.sub("^" + re.escape(options.prefix + "/"), "", libdir_fq)
+
def try_remove(options, path, dest):
source_path, target_path = mkpaths(options, path, dest)
if not options.silent:
@@ -82,7 +87,7 @@ def uninstall(options, paths, dest):
try_remove(options, path, dest)
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
@@ -103,7 +108,7 @@ def package_files(options, action, name,
if action == uninstall:
action(options, [link_path], os.path.join('bin', bin_name))
elif action == install:
- 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-v20.12.0/lib/internal/modules/cjs/loader.js
===================================================================
--- node-v20.12.0.orig/lib/internal/modules/cjs/loader.js
+++ node-v20.12.0/lib/internal/modules/cjs/loader.js
@@ -1529,7 +1529,7 @@ Module._initPaths = function() {
path.resolve(process.execPath, '..') :
path.resolve(process.execPath, '..', '..');
- const paths = [path.resolve(prefixDir, 'lib', 'node')];
+ const paths = ['/usr/lib/node'];
if (homeDir) {
ArrayPrototypeUnshift(paths, path.resolve(homeDir, '.node_libraries'));
BIN
View File
Binary file not shown.
+32
View File
@@ -0,0 +1,32 @@
Index: node-v19.9.0/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 {
throw this.usageError()
}
- const docPath = path.resolve(this.npm.npmRoot, 'docs/content')
+ const docPath = '/usr/share/doc/packages/nodejs'
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
===================================================================
--- 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 {
}
get globalPrefix () {
- return this.config.globalPrefix
+ let prefix = this.config.globalPrefix
+
+ // don't poop all over distro territory - use /usr/local instead
+ if (prefix === '/usr')
+ return '/usr/local'
+
+ return prefix;
}
set globalPrefix (r) {
+42
View File
@@ -0,0 +1,42 @@
Allow non-standard openssl binary names
Index: node-v14.15.1/test/common/index.js
===================================================================
--- node-v14.15.1.orig/test/common/index.js
+++ node-v14.15.1/test/common/index.js
@@ -797,20 +797,28 @@ const common = {
get opensslCli() {
if (opensslCli !== null) return opensslCli;
+ let cli_candidates = [];
+
if (process.config.variables.node_shared_openssl) {
// Use external command
- opensslCli = 'openssl';
+ cli_candidates = cli_candidates.concat(['openssl-1_1', 'openssl']);
} else {
// Use command built from sources included in Node.js repository
- opensslCli = path.join(path.dirname(process.execPath), 'openssl-cli');
+ cli_candidates.push(path.join(path.dirname(process.execPath), 'openssl-cli'));
}
- if (exports.isWindows) opensslCli += '.exe';
+ let checkOpensslCli = function(opensslCli) {
+ if (exports.isWindows) opensslCli += '.exe';
+ const opensslCmd = spawnSync(opensslCli, ['version']);
+ if (opensslCmd.status !== 0 || opensslCmd.error !== undefined) {
+ // OpenSSL command cannot be executed
+ opensslCli = false;
+ }
+ return opensslCli;
+ };
- const opensslCmd = spawnSync(opensslCli, ['version']);
- if (opensslCmd.status !== 0 || opensslCmd.error !== undefined) {
- // OpenSSL command cannot be executed
- opensslCli = false;
+ for (let i=0; i<cli_candidates.length && !opensslCli; i=i+1) {
+ opensslCli = checkOpensslCli(cli_candidates[i]);
}
return opensslCli;
},
+14
View File
@@ -0,0 +1,14 @@
Index: node-v18.10.0/test/common/index.js
===================================================================
--- node-v18.10.0.orig/test/common/index.js
+++ node-v18.10.0/test/common/index.js
@@ -260,6 +260,9 @@ function platformTimeout(ms) {
if (isPi)
return multipliers.two * ms; // Raspberry Pi devices
+ if (process.arch === 'riscv64') // usermode qemu slow
+ return multipliers.seven * ms;
+
return ms;
}
+29
View File
@@ -0,0 +1,29 @@
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');
+35
View File
@@ -0,0 +1,35 @@
Index: node-v19.1.0/configure
===================================================================
--- node-v19.1.0.orig/configure
+++ node-v19.1.0/configure
@@ -23,7 +23,7 @@ except ImportError:
from distutils.spawn import find_executable as which
print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info))
-acceptable_pythons = ((3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6))
+acceptable_pythons = ((3, 11), (3, 10), (3, 9), (3, 8), (3, 7), (3, 6), (3, 4))
if sys.version_info[:2] in acceptable_pythons:
import configure
else:
Index: node-v19.1.0/deps/npm/node_modules/node-gyp/lib/find-python.js
===================================================================
--- node-v19.1.0.orig/deps/npm/node_modules/node-gyp/lib/find-python.js
+++ node-v19.1.0/deps/npm/node_modules/node-gyp/lib/find-python.js
@@ -15,7 +15,7 @@ const programFiles = process.env.Program
const programFilesX86 = process.env['ProgramFiles(x86)'] || `${programFiles} (x86)`
const winDefaultLocationsArray = []
-for (const majorMinor of ['39', '38', '37', '36']) {
+for (const majorMinor of ['39', '38', '37', '36', '34']) {
if (foundLocalAppData) {
winDefaultLocationsArray.push(
`${localAppData}\\Programs\\Python\\Python${majorMinor}\\python.exe`,
@@ -49,7 +49,7 @@ PythonFinder.prototype = {
log: logWithPrefix(log, 'find Python'),
argsExecutable: ['-c', 'import sys; print(sys.executable);'],
argsVersion: ['-c', 'import sys; print("%s.%s.%s" % sys.version_info[:3]);'],
- semverRange: '>=3.6.0',
+ semverRange: '>=3.4.0',
// These can be overridden for testing:
execFile: cp.execFile,
+45
View File
@@ -0,0 +1,45 @@
Skip 'test/parallel/test-fs-utimes-y2K38.js' on some platforms.
This test fails if coreutils' touch was built with 64-bit time_t,
while nodejs was built with 32-bit time_t. This is currently the case
on i586, ppc and arm. Skip the failing last command on those
platforms.
The failure was seen since coreutils-9.0.
Remove this patch once nodejs(1) also builds with 64-bit time_t.
---
test/parallel/test-fs-utimes-y2K38.js | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
Index: node-v16.6.2/test/parallel/test-fs-utimes-y2K38.js
===================================================================
--- node-v16.6.2.orig/test/parallel/test-fs-utimes-y2K38.js
+++ node-v16.6.2/test/parallel/test-fs-utimes-y2K38.js
@@ -20,6 +20,26 @@ if (!common.isWindows) {
common.skip('File system appears to lack Y2K38 support (touch failed)');
}
+ // SUSE: touch-9.0 may succeed on platforms with 32-bit time_t,
+ // but the test would fail. Skip on those platforms for now.
+ const unameResult = spawnSync('uname',
+ ['-m'],
+ { encoding: 'utf8' });
+ if (unameResult.status === 0) {
+ if (unameResult.stdout.trim() === 'i686') {
+ common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+ }
+ if (unameResult.stdout.trim() === 'ppc') {
+ common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+ }
+ if (unameResult.stdout.trim() === 'armv6l') {
+ common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+ }
+ if (unameResult.stdout.trim() === 'armv7l') {
+ common.skip('SUSE: test skipped on platforms with 32-bit time_t');
+ }
+ }
+
// On some file systems that lack Y2K38 support, `touch` will succeed but
// the time will be incorrect.
const dateResult = spawnSync('date',
+13
View File
@@ -0,0 +1,13 @@
#!/bin/bash
#
# Fetch npm module tarball that is required to run unit tests
# which are not provided by upstream tarball
#
set -e
tar Jxf node-v*.tar.xz
cd node-v*/tools/doc
npm ci
cd ../..
exec tar Jcf ../node_modules.tar.xz tools/doc/node_modules
+187
View File
@@ -0,0 +1,187 @@
Author: Adam Majer <amajer@suse.de>
Date: Fri May 11 16:10:16 CEST 2018
Summary: Generate versioned binaries
Generate versioned binaries and install paths
so we can allow concurrent installations and
management via update_alternatives.
This is also important for generation of binary
modules for multiple versions of NodeJS
Index: node-v20.13.1/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)
# Use $(PWD) so we can cd to anywhere before calling this
NODE ?= "$(PWD)/$(NODE_EXE)"
NODE_G_EXE = node_g$(EXEEXT)
Index: node-v20.13.1/tools/install.py
===================================================================
--- 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(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
@@ -108,19 +108,19 @@ def package_files(options, action, name,
if action == uninstall:
action(options, [link_path], os.path.join('bin', bin_name))
elif action == install:
- 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(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(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',
@@ -149,7 +149,7 @@ def subdir_files(options, path, dest, ac
action(options, files_in_path, subdir + os.path.sep)
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(options, ['doc/node.1'], 'share/man/man1/')
+ action(options, ['doc/node.1'], 'share/man/man1/node20.1')
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',
- ], 'include/node/')
+ ], 'include/node20/')
# Add the expfile that is created on AIX
if sys.platform.startswith('aix') or sys.platform == "os400":
action(options, ['out/Release/node.exp'], 'include/node/')
- 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' == 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' == 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' == options.variables.get('node_shared_zlib'):
action(options, [
'deps/zlib/zconf.h',
'deps/zlib/zlib.h',
- ], 'include/node/')
+ ], 'include/node20/')
if sys.platform == 'zos':
zoslibinc = os.environ.get('ZOSLIB_INCLUDES')
Index: node-v20.13.1/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
.
.Sh NAME
-.Nm node
+.Nm node20
.Nd server-side JavaScript runtime
.
.\"======================================================================
.Sh SYNOPSIS
-.Nm node
+.Nm node20
.Op Ar options
.Op Ar v8-options
.Op Fl e Ar string | Ar script.js | Fl
.Op Fl -
.Op Ar arguments ...
.
-.Nm node
+.Nm node20
.Cm inspect
.Op Fl e Ar string | Ar script.js | Fl | Ar <host>:<port>
.Ar ...
.
-.Nm node
+.Nm node20
.Op Fl -v8-options
.
.\"======================================================================
Index: node-v20.13.1/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
int main(int argc, char* argv[]) {
+ setenv("NODE_VERSION", "20", 0);
return node::Start(argc, argv);
}
#endif
Index: node-v20.13.1/tools/test.py
===================================================================
--- 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':
- name = 'out/Debug/node' if mode == 'debug' else 'out/Release/node'
+ name = 'out/Debug/node' if mode == 'debug' else 'out/Release/node20'
else:
name = 'out/%s.%s/node' % (arch, mode)
Index: node-v20.13.1/node.gyp
===================================================================
--- 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',
- 'node_core_target_name%': 'node',
- 'node_lib_target_name%': 'libnode',
+ 'node_core_target_name%': 'node20',
+ 'node_lib_target_name%': 'libnode20',
'node_intermediate_lib_type%': 'static_library',
'node_builtin_modules_path%': '',
'linked_module_files': [