Sync from SUSE:ALP:Source:Standard:1.0 nodejs18 revision 4da017ae2ec3ff2f14abf19673a44563

This commit is contained in:
Adrian Schröter 2023-06-07 09:12:45 +02:00
commit b3457b0435
28 changed files with 2873 additions and 0 deletions

23
.gitattributes vendored Normal file
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

34
SHASUMS256.txt Normal file
View File

@ -0,0 +1,34 @@
a65bd3fe91ffeb31d12a208e811943e3ebba4706553a4845a03d857beaeec51e node-v18.16.0-aix-ppc64.tar.gz
82c7bb4869419ce7338669e6739a786dfc7e72f276ffbed663f85ffc905dcdb4 node-v18.16.0-darwin-arm64.tar.gz
b23cdf4fa0e9f77273720ab18eabdd7691edbb69e08ec3b65afd69bef23fe209 node-v18.16.0-darwin-arm64.tar.xz
cd520da6e2e89fab881c66a3e9aff02cb0d61d68104b1d6a571dd71bef920870 node-v18.16.0-darwin-x64.tar.gz
2c8aa0333111c2411564bfb85be44186aeb581392f73c4be5912cbb125d99043 node-v18.16.0-darwin-x64.tar.xz
effeb73616e5297922ed89a1b94d2664390040a83184504c1cc1305b0c0c853f node-v18.16.0-headers.tar.gz
0eb9823c2cc72792c2d4413f57b5a36232e173d7edefb1909c37e364a823f9c7 node-v18.16.0-headers.tar.xz
dc3dfaee899ed21682e47eaf15525f85aff29013c392490e9b25219cd95b1c35 node-v18.16.0-linux-arm64.tar.gz
c81dfa0bada232cb4583c44d171ea207934f7356f85f9184b32d0dde69e2e0ea node-v18.16.0-linux-arm64.tar.xz
a3968db44e5ae17243d126ff79b1756016b198f7cc94c6fad8522aac481b4ff3 node-v18.16.0-linux-armv7l.tar.gz
57ba6b71eb039fa896c329e68669b21f6717622c560c6f61a0c97d18ca866b2d node-v18.16.0-linux-armv7l.tar.xz
b4e66dcda5ba4a3697be3fded122dabb6a677deee3d7f4d3c7c13ebb5a13844c node-v18.16.0-linux-ppc64le.tar.gz
c43142fb9ef30658620ed095f8203beca92f469c1121eeb724df9a48bf0e59a5 node-v18.16.0-linux-ppc64le.tar.xz
a8b607c3c06f585c4fe9ba45be6dc76ce9459238c91b3f43533aa30344caed87 node-v18.16.0-linux-s390x.tar.gz
39b15c16347000b0be97133437bde0317dd2307d3fdfce15ddd8680b07a963ef node-v18.16.0-linux-s390x.tar.xz
fc83046a93d2189d919005a348db3b2372b598a145d84eb9781a3a4b0f032e95 node-v18.16.0-linux-x64.tar.gz
44d93d9b4627fe5ae343012d855491d62c7381b236c347f7666a7ad070f26548 node-v18.16.0-linux-x64.tar.xz
156aa5b9580288fb0b3c6134eb8fac64e50745d78d33eebe9e29eb7ff87b8e1e node-v18.16.0.pkg
6a4f5c5d76e5c50cef673099e56f19bc3266ae363f56ca0ab77dd2f3c5088c6d node-v18.16.0.tar.gz
33d81a233e235a509adda4a4f2209008d04591979de6b3f0f67c1c906093f118 node-v18.16.0.tar.xz
007848640ba414f32d968d303e75d9841ecd2cd95d6fdd81f80bc3dcbd74ae44 node-v18.16.0-win-x64.7z
4b3bd4cb5570cc217490639e93a7e1b7a7a341981366661e514ce61941824a85 node-v18.16.0-win-x64.zip
681be28e0acd057b4798f357d21eec5f49e21bc803bbbefeb1072bb4f166025a node-v18.16.0-win-x86.7z
2a7e0fb22e1a36144ee8183c80ef2705cd9754c1d894f94bb6c94a681de47924 node-v18.16.0-win-x86.zip
5bfb6f3ab89e198539408f7e0e8ec0b0bd5efe8898573ec05b381228efb45a5d node-v18.16.0-x64.msi
09534d1949c795c3e49d257fb72a9fd865ee28955673b87d569d4aec541333e7 node-v18.16.0-x86.msi
b548a55c2b5ef5de34f4636610bab27077fb9313d34f52280b9ec11dd25e9dd1 win-x64/node.exe
72b7fab9381af8f4958c8212f3d4cdfff8c7c5b1e33eaad0e7d5888293568cd5 win-x64/node.lib
3b9474e18a1bbb38b05b1876b4b37056063c2af82212d356a8a5cf91c1a3acf3 win-x64/node_pdb.7z
6b506b1fe654ca7161373916c7ba7e38f62545236698342fa97fd2faf39ebc4e win-x64/node_pdb.zip
36bf0f0a364ca8edc176776764831f9e88bef6d1e8056f6edc474a37b652a794 win-x86/node.exe
6a85c15a69238f0902b9a734d262bf36d211b273a46d5e3249857d4bb7f6d9b7 win-x86/node.lib
9256bdefae4491acfd523ca06d4f4344ddc4f1a28aac868b5efb6a72d8023e2a win-x86/node_pdb.7z
53c6b29afd58904e5143d9f3298b55695b8ecb2b6c08a9612ed30e9b0ed9589a win-x86/node_pdb.zip

BIN
SHASUMS256.txt.sig Normal file

Binary file not shown.

32
_constraints Normal file
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>

16
bash_output_helper.bash Normal file
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 $!
}

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 {

103
fix_ci_tests.patch Normal file
View File

@ -0,0 +1,103 @@
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
===================================================================
--- node-v18.9.0.orig/test/parallel/test-module-loading-globalpaths.js
+++ node-v18.9.0/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-v18.9.0/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
@@ -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-v18.9.0/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
@@ -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 REPL = require('internal/repl');
const assert = require('assert');
Index: node-v18.9.0/test/common/index.mjs
===================================================================
--- 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
.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) \
@@ -717,7 +718,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-v18.9.0/test/parallel/test-crypto-dh.js
===================================================================
--- 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/ });
// Invalid test: curve argument is undefined
assert.throws(

21
flaky_test_rerun.patch Normal file
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,

26
legacy_python.patch Normal file
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
linker_lto_jobs.patch Normal file
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-v18.16.0/node.gyp
===================================================================
--- node-v18.16.0.orig/node.gyp
+++ node-v18.16.0/node.gyp
@@ -1220,6 +1220,7 @@
'node_dtrace_provider',
'deps/simdutf/simdutf.gyp:simdutf',
'deps/ada/ada.gyp:ada',
+ 'fuzz_env'
],
'includes': [
@@ -1389,6 +1390,7 @@
'deps/histogram/histogram.gyp:histogram',
'deps/uvwasi/uvwasi.gyp:uvwasi',
'deps/ada/ada.gyp:ada',
+ 'cctest'
],
'includes': [

20
manual_configure.patch Normal file
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 */

79
node-gyp-addon-gypi.patch Normal file
View File

@ -0,0 +1,79 @@
Index: node-git.b4f0a18b5a/addon-rpm.gypi
===================================================================
--- /dev/null
+++ node-git.b4f0a18b5a/addon-rpm.gypi
@@ -0,0 +1,35 @@
+{
+ 'target_defaults': {
+ 'type': 'loadable_module',
+ 'product_prefix': '',
+ 'include_dirs': [
+ '/usr/include/node18/',
+ '/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-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
===================================================================
--- node-git.b4f0a18b5a.orig/deps/npm/node_modules/node-gyp/lib/configure.js
+++ node-git.b4f0a18b5a/deps/npm/node_modules/node-gyp/lib/configure.js
@@ -46,10 +46,6 @@ function configure (gyp, argv, callback)
if ('v' + release.version !== process.version) {
// if --target was given, then determine a target version to compile for
log.verbose('get node dir', 'compiling against --target node version: %s', release.version)
- } else {
- // if no --target was specified then use the current host node version
- log.verbose('get node dir', 'no --target version specified, falling back to host node version: %s', release.version)
- }
if (!release.semver) {
// could not parse the version string with semver
@@ -68,6 +64,12 @@ function configure (gyp, argv, callback)
nodeDir = path.resolve(gyp.devDir, release.versionDir)
createBuildDir()
})
+ } else {
+ // if 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/node18'
+ createBuildDir()
+ }
}
}
@@ -282,7 +284,9 @@ function configure (gyp, argv, callback)
// this logic ported from the old `gyp_addon` python file
var gypScript = path.resolve(__dirname, '..', 'gyp', 'gyp_main.py')
- var addonGypi = path.resolve(__dirname, '..', 'addon.gypi')
+ var addon_gypi_file = gyp.opts.target || gyp.opts.nodedir ? 'addon.gypi' : 'addon-rpm.gypi'
+
+ var addonGypi = path.resolve(__dirname, '..', addon_gypi_file)
var commonGypi = path.resolve(nodeDir, 'include/node/common.gypi')
fs.stat(commonGypi, function (err) {
if (err) {

BIN
node-gyp_7.1.2.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
node-v18.16.0.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

BIN
node_modules.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

54
nodejs-libpath.patch Normal file
View File

@ -0,0 +1,54 @@
Index: node-v18.9.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
import shutil
import sys
+from distutils import sysconfig
import re
# set at init time
@@ -66,6 +67,10 @@ def try_copy(path, dst):
try_unlink(target_path) # prevent ETXTBSY errors
return shutil.copy2(source_path, target_path)
+def libdir():
+ libdir_fq = sysconfig.get_config_var("LIBDIR")
+ return re.sub("^" + re.escape(node_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 package_files(action, name, bins):
- target_path = 'lib/node_modules/' + name + '/'
+ target_path = libdir() + '/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):
if action == uninstall:
action([link_path], '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)
else:
assert 0 # unhandled action type
Index: node-v18.9.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() {
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
nodejs.keyring Normal file

Binary file not shown.

299
nodejs18.changes Normal file
View File

@ -0,0 +1,299 @@
-------------------------------------------------------------------
Thu Apr 13 13:49:59 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.16.0 LTS version
* Add initial support for single executable applications
* Replace url parser with Ada
* buffer: add Buffer.copyBytesFrom
- refreshed patches: versioned.patch linker_lto_jobs.patch
-------------------------------------------------------------------
Mon Mar 13 16:43:33 UTC 2023 - Adam Majer <adam.majer@suse.de>
- relax Requires to Suggests for alts on TW
-------------------------------------------------------------------
Wed Mar 8 13:01:06 UTC 2023 - Adam Majer <adam.majer@suse.de> - 18.15.0
- Update to NodeJS 18.15.0 LTS version:
* test_runner:
+ add initial code coverate support
+ add reporters
* fs: add statfs()
* buffer: add isAscii()
- s390.patch, sysctl.patch: upstreamed and removed
-------------------------------------------------------------------
Thu Feb 23 10:41:38 UTC 2023 - Adam Majer <adam.majer@suse.de>
- node-gyp_7.1.2.tar.xz: added dependencies so they don't conflict with
npm dependencies.
-------------------------------------------------------------------
Wed Feb 22 13:59:45 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.14.2 LTS:
* deps: upgrade npm to 9.5.0 (bsc#1208744, CVE-2022-25881)
* deps: update undici to 5.20.0
- Changes in version 18.14.1:
* fixes permissions policies can be bypassed via process.mainModule
(bsc#1208481, CVE-2023-23918)
* fixes insecure loading of ICU data through ICU_DATA environment
variable (bsc#1208487, CVE-2023-23920)
* fixes OpenSSL error handling issues in nodejs crypto library
(bsc#1208483, CVE-2023-23919)
* updates undici to v5.19.1
+ Fetch API in Node.js did not protect against CRLF injection in host headers
+ Regular Expression Denial of Service in Headers in Node.js fetch API
(bsc#1208413, bsc#1208485, CVE-2023-24807, CVE-2023-23936)
- versioned.patch: refreshed
- sysctl.patch: unit test fixes
-------------------------------------------------------------------
Fri Feb 3 11:43:02 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.14.0 LTS:
* deps:
+ update npm to 9.2.0
* http:
+ join authorization headers
+ improved timeout defaults handling
* stream:
+ implement finished() for ReadableStream and WritableStream
- refreshed patches: linker_lto_jobs.patch, npm_search_paths.patch,
versioned.patch
-------------------------------------------------------------------
Wed Feb 1 07:58:26 UTC 2023 - Dominique Leuenberger <dimstar@opensuse.org>
- Do not use pkg_vcmp to decide BuildDependencies: this works based
on 'installed packages' which is not interpreted correctly by the
scheduler. Rather switch to boolean dependencies.
------------------------------------------------------------------
Wed Jan 25 12:01:18 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Again use openssl-3, if available.
- _constraints: reset aarch64 memory requirements back to original
otherwise some unit tests can fail
- s390.patch: fix unit test on s390 with patched zlib
-------------------------------------------------------------------
Mon Jan 16 14:57:58 UTC 2023 - Adam Majer <adam.majer@suse.de>
- Update to NodejJS 18.13.0 LTS:
* build: disable v8 snapshot compression by default
* crypto: update root certificates
* deps: update ICU to 72.1
* doc:
+ add doc-only deprecation for headers/trailers setters
+ add Rafael to the tsc
+ deprecate use of invalid ports in url.parse
+ deprecate url.parse()
* lib: drop fetch experimental warning
* net: add autoSelectFamily and autoSelectFamilyAttemptTimeout options
* src:
+ add uvwasi version
+ add initial shadow realm support
* test_runner:
+ add t.after() hook
+ don't use a symbol for runHook()
* tls:
+ add "ca" property to certificate object
* util:
+ add fast path for utf8 encoding
+ improve textdecoder decode performance
+ add MIME utilities
- new_python3.patch, icu721_fixes.patch: upstreamed, removed
-------------------------------------------------------------------
Fri Dec 23 11:31:12 UTC 2022 - Guillaume GARDET <guillaume.gardet@opensuse.org>
- Update _constraints:
* Less RAM for aarch64 and 32-bit arm
* Use 'asimdrdm' cpu flag to use aarch64 workers where tests
are more stable
-------------------------------------------------------------------
Thu Nov 10 08:18:42 UTC 2022 - Adam Majer <adam.majer@suse.de>
- icu721_fixes.patch: fixes compatibility with ICU 72.1 (bsc#1205236)
-------------------------------------------------------------------
Mon Nov 7 14:00:54 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Fix migration to openssl-3 (bsc#1205042)
-------------------------------------------------------------------
Mon Nov 7 09:05:07 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.12.1 LTS:
* inspector: DNS rebinding in --inspect via invalid octal IP
(bsc#1205119, CVE-2022-43548)
-------------------------------------------------------------------
Fri Oct 28 10:31:50 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.12.0 LTS:
* Running in 'watch' mode using node --watch restarts the process
when an imported file is changed.
* fs: add FileHandle.prototype.readLines
* http: add writeEarlyHints function to ServerResponse
* http2: make early hints generic
* util: add default value option to parsearg
-------------------------------------------------------------------
Mon Oct 17 13:02:52 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.11.0:
* added experimental watch mode -- running in 'watch' mode using
node --watch restarts the process when an imported file is changed
* fs: add FileHandle.prototype.readLines
* http: add writeEarlyHints function to ServerResponse
* http2: make early hints generic
* lib: refactor transferable AbortSignal
* src: add detailed embedder process initialization API
* util: add default value option to parsearg
- legacy_python.patch, versioned.patch: updated
-------------------------------------------------------------------
Wed Oct 12 08:14:29 UTC 2022 - Adam Majer <adam.majer@suse.de>
- qemu_timeouts_arches.patch: set timeouts on riscv5 to 7x normal
-------------------------------------------------------------------
Fri Oct 7 08:05:59 UTC 2022 - Dirk Müller <dmueller@suse.com>
- skip more tests for riscv64/qemu emulation
-------------------------------------------------------------------
Thu Sep 29 13:58:09 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to NodeJS 18.10.0:
* deps: upgrade npm to 8.19.2
* http: throw error on content-length mismatch
* stream: add ReadableByteStream.tee()
- openssl3_fixups.patch: upstreamed and removed
-------------------------------------------------------------------
Mon Sep 26 13:13:39 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to Nodejs 18.9.1:
* deps: llhttp updated to 6.0.10
+ CVE-2022-32213 bypass via obs-fold mechanic (bsc#1201325)
+ Incorrect Parsing of Multi-line Transfer-Encoding
(CVE-2022-32215, bsc#1201327)
+ Incorrect Parsing of Header Fields (CVE-2022-35256, bsc#1203832)
* crypto: fix weak randomness in WebCrypto keygen
(CVE-2022-35255, bsc#1203831)
-------------------------------------------------------------------
Sat Sep 17 10:35:31 UTC 2022 - Bruno Pitrus <brunopitrus@hotmail.com>
- Skip test-fs-utimes-y2K38.js on armv6hl as well as armv7hl.
-------------------------------------------------------------------
Thu Sep 15 15:00:25 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to Nodejs 18.9.0:
* lib - add diagnostics channel for process and worker
* os - add machine method
* report - expose report public native apis
* src - expose environment RequestInterrupt api
* vm - include vm context in the embedded snapshot
- Changes in 18.8.0:
* bootstrap: implement run-time user-land snapshots via
--build-snapshot and --snapshot-blob. See
* crypto:
+ allow zero-length IKM in HKDF and in webcrypto PBKDF2
+ allow zero-length secret KeyObject
* deps: upgrade npm to 8.18.0
* http: make idle http parser count configurable
* net: add local family
* src: print source map error source on demand
* tls: pass a valid socket on tlsClientError
- dns.patch: upstreamed, removed
- nodejs-libpath.patch, versioned.patch: refreshed
- fix_ci_tests.patch: partially upstreamed
- openssl3_fixups.patch: fix unit tests with openssl 1.1.1
- new_python3.patch: enable python 3.11 as valid interpreter
-------------------------------------------------------------------
Thu Aug 18 10:41:57 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to Nodejs 18.7.0:
* events: add CustomEvent
* http: add drop request event for http server
* lib: improved diagnostics_channel subscribe/unsubscribe
* util: add tokens to parseArgs
- enable crypto policy ciphers for TW and SLE15 SP4+ (bsc#1200303)
-------------------------------------------------------------------
Sun Jul 31 15:37:05 UTC 2022 - Adam Majer <adam.majer@suse.de>
- dns.patch: fix regression
https://github.com/nodejs/node/issues/44003
-------------------------------------------------------------------
Sun Jul 24 09:47:19 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to Nodejs 18.6.0:
* Experimental ESM Loader Hooks API. For details see,
https://nodejs.org/api/esm.html
* dns: export error code constants from dns/promises
* esm: add chaining to loaders
* http: add diagnostics channel for http client
* http: add perf_hooks detail for http request and client
* module: add isBuiltIn method
* net: add drop event for net server
* test_runner: expose describe and it
* v8: add v8.startupSnapshot utils
For details, see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V18.md#18.6.0
-------------------------------------------------------------------
Mon Jul 11 12:00:48 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to Nodejs 18.5.0:
* http: stricter Transfer-Encoding and header separator parsing
(bsc#1201325, bsc#1201326, bsc#1201327,
CVE-2022-32213, CVE-2022-32214, CVE-2022-32215)
* src: fix IPv4 validation in inspector_socket
(bsc#1201328, CVE-2022-32212)
For details, see
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V18.md#18.5.0
-------------------------------------------------------------------
Tue Jun 28 13:06:23 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Update to Nodejs 18.4.0. For detailed changes see,
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V18.md#18.4.0
- refreshed: versioned.patch, linker_lto_jobs.patch, nodejs-libpath.patch
-------------------------------------------------------------------
Thu May 19 15:01:09 UTC 2022 - Adam Majer <adam.majer@suse.de>
- Initial packaging of Nodejs 18.2.0. For detailed changes
since previous versions, see
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V18.md#18.2.0
Patches carried over from nodejs17:
legacy_python.patch node-gyp-addon-gypi.patch openssl_binary_detection.patch
test-skip-y2038-on-32bit-time_t.patch cares_public_headers.patch
rsa-pss-revert.patch linker_lto_jobs.patch versioned.patch fix_ci_tests.patch
manual_configure.patch npm_search_paths.patch skip_no_console.patch
flaky_test_rerun.patch nodejs-libpath.patch sle12_python3_compat.patch

1118
nodejs18.spec Normal file

File diff suppressed because it is too large Load Diff

32
npm_search_paths.patch Normal file
View File

@ -0,0 +1,32 @@
Index: node-v19.5.0/deps/npm/lib/commands/help-search.js
===================================================================
--- node-v19.5.0.orig/deps/npm/lib/commands/help-search.js
+++ node-v19.5.0/deps/npm/lib/commands/help-search.js
@@ -19,7 +19,7 @@ class HelpSearch extends BaseCommand {
throw this.usageError()
}
- const docPath = path.resolve(this.npm.npmRoot, 'docs/content')
+ const docPath = '/usr/share/doc/packages/nodejs'
const files = await glob(`${globify(docPath)}/*/*.md`)
const data = await this.readFiles(files)
const results = await this.searchFiles(args, data, files)
Index: node-v19.5.0/deps/npm/lib/npm.js
===================================================================
--- node-v19.5.0.orig/deps/npm/lib/npm.js
+++ node-v19.5.0/deps/npm/lib/npm.js
@@ -381,7 +381,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) {

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;
},

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;
}

443
rsa-pss-revert.patch Normal file
View File

@ -0,0 +1,443 @@
Index: node-v17.3.0/doc/api/crypto.md
===================================================================
--- node-v17.3.0.orig/doc/api/crypto.md
+++ node-v17.3.0/doc/api/crypto.md
@@ -1959,20 +1959,11 @@ const {
<!-- YAML
added: v15.7.0
-changes:
- - version: v16.9.0
- pr-url: https://github.com/nodejs/node/pull/39851
- description: Expose `RSASSA-PSS-params` sequence parameters
- for RSA-PSS keys.
-->
* {Object}
* `modulusLength`: {number} Key size in bits (RSA, DSA).
* `publicExponent`: {bigint} Public exponent (RSA).
- * `hashAlgorithm`: {string} Name of the message digest (RSA-PSS).
- * `mgf1HashAlgorithm`: {string} Name of the message digest used by
- MGF1 (RSA-PSS).
- * `saltLength`: {number} Minimal salt length in bytes (RSA-PSS).
* `divisorLength`: {number} Size of `q` in bits (DSA).
* `namedCurve`: {string} Name of the curve (EC).
@@ -1981,11 +1972,8 @@ this object contains information about t
through this property can be used to uniquely identify a key or to compromise
the security of the key.
-For RSA-PSS keys, if the key material contains a `RSASSA-PSS-params` sequence,
-the `hashAlgorithm`, `mgf1HashAlgorithm`, and `saltLength` properties will be
-set.
-
-Other key details might be exposed via this API using additional attributes.
+RSA-PSS parameters, DH, or any future key type details might be exposed via this
+API using additional attributes.
### `keyObject.asymmetricKeyType`
Index: node-v17.3.0/src/crypto/crypto_rsa.cc
===================================================================
--- node-v17.3.0.orig/src/crypto/crypto_rsa.cc
+++ node-v17.3.0/src/crypto/crypto_rsa.cc
@@ -561,84 +561,10 @@ Maybe<bool> GetRsaKeyDetail(
reinterpret_cast<unsigned char*>(public_exponent.data());
CHECK_EQ(BN_bn2binpad(e, data, len), len);
- if (target
- ->Set(
- env->context(),
- env->public_exponent_string(),
- public_exponent.ToArrayBuffer())
- .IsNothing()) {
- return Nothing<bool>();
- }
-
- if (type == EVP_PKEY_RSA_PSS) {
- // Due to the way ASN.1 encoding works, default values are omitted when
- // encoding the data structure. However, there are also RSA-PSS keys for
- // which no parameters are set. In that case, the ASN.1 RSASSA-PSS-params
- // sequence will be missing entirely and RSA_get0_pss_params will return
- // nullptr. If parameters are present but all parameters are set to their
- // default values, an empty sequence will be stored in the ASN.1 structure.
- // In that case, RSA_get0_pss_params does not return nullptr but all fields
- // of the returned RSA_PSS_PARAMS will be set to nullptr.
-
- const RSA_PSS_PARAMS* params = RSA_get0_pss_params(rsa);
- if (params != nullptr) {
- int hash_nid = NID_sha1;
- int mgf_nid = NID_mgf1;
- int mgf1_hash_nid = NID_sha1;
- int64_t salt_length = 20;
-
- if (params->hashAlgorithm != nullptr) {
- hash_nid = OBJ_obj2nid(params->hashAlgorithm->algorithm);
- }
-
- if (target
- ->Set(
- env->context(),
- env->hash_algorithm_string(),
- OneByteString(env->isolate(), OBJ_nid2ln(hash_nid)))
- .IsNothing()) {
- return Nothing<bool>();
- }
-
- if (params->maskGenAlgorithm != nullptr) {
- mgf_nid = OBJ_obj2nid(params->maskGenAlgorithm->algorithm);
- if (mgf_nid == NID_mgf1) {
- mgf1_hash_nid = OBJ_obj2nid(params->maskHash->algorithm);
- }
- }
-
- // If, for some reason, the MGF is not MGF1, then the MGF1 hash function
- // is intentionally not added to the object.
- if (mgf_nid == NID_mgf1) {
- if (target
- ->Set(
- env->context(),
- env->mgf1_hash_algorithm_string(),
- OneByteString(env->isolate(), OBJ_nid2ln(mgf1_hash_nid)))
- .IsNothing()) {
- return Nothing<bool>();
- }
- }
-
- if (params->saltLength != nullptr) {
- if (ASN1_INTEGER_get_int64(&salt_length, params->saltLength) != 1) {
- ThrowCryptoError(env, ERR_get_error(), "ASN1_INTEGER_get_in64 error");
- return Nothing<bool>();
- }
- }
-
- if (target
- ->Set(
- env->context(),
- env->salt_length_string(),
- Number::New(env->isolate(), static_cast<double>(salt_length)))
- .IsNothing()) {
- return Nothing<bool>();
- }
- }
- }
-
- return Just<bool>(true);
+ return target->Set(
+ env->context(),
+ env->public_exponent_string(),
+ public_exponent.ToArrayBuffer());
}
namespace RSAAlg {
Index: node-v17.3.0/src/env.h
===================================================================
--- node-v17.3.0.orig/src/env.h
+++ node-v17.3.0/src/env.h
@@ -271,7 +271,6 @@ constexpr size_t kFsStatsBufferLength =
V(gid_string, "gid") \
V(h2_string, "h2") \
V(handle_string, "handle") \
- V(hash_algorithm_string, "hashAlgorithm") \
V(help_text_string, "helpText") \
V(homedir_string, "homedir") \
V(host_string, "host") \
@@ -320,7 +319,6 @@ constexpr size_t kFsStatsBufferLength =
V(message_port_string, "messagePort") \
V(message_string, "message") \
V(messageerror_string, "messageerror") \
- V(mgf1_hash_algorithm_string, "mgf1HashAlgorithm") \
V(minttl_string, "minttl") \
V(module_string, "module") \
V(modulus_string, "modulus") \
@@ -390,7 +388,6 @@ constexpr size_t kFsStatsBufferLength =
V(replacement_string, "replacement") \
V(require_string, "require") \
V(retry_string, "retry") \
- V(salt_length_string, "saltLength") \
V(scheme_string, "scheme") \
V(scopeid_string, "scopeid") \
V(serial_number_string, "serialNumber") \
Index: node-v17.3.0/test/fixtures/keys/Makefile
===================================================================
--- node-v17.3.0.orig/test/fixtures/keys/Makefile
+++ node-v17.3.0/test/fixtures/keys/Makefile
@@ -64,11 +64,9 @@ all: \
rsa_pss_private_2048.pem \
rsa_pss_private_2048_sha256_sha256_16.pem \
rsa_pss_private_2048_sha512_sha256_20.pem \
- rsa_pss_private_2048_sha1_sha1_20.pem \
rsa_pss_public_2048.pem \
rsa_pss_public_2048_sha256_sha256_16.pem \
rsa_pss_public_2048_sha512_sha256_20.pem \
- rsa_pss_public_2048_sha1_sha1_20.pem \
ed25519_private.pem \
ed25519_public.pem \
x25519_private.pem \
@@ -710,9 +708,6 @@ rsa_pss_private_2048_sha256_sha256_16.pe
rsa_pss_private_2048_sha512_sha256_20.pem:
openssl genpkey -algorithm RSA-PSS -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 -pkeyopt rsa_pss_keygen_md:sha512 -pkeyopt rsa_pss_keygen_mgf1_md:sha256 -pkeyopt rsa_pss_keygen_saltlen:20 -out rsa_pss_private_2048_sha512_sha256_20.pem
-rsa_pss_private_2048_sha1_sha1_20.pem:
- openssl genpkey -algorithm RSA-PSS -pkeyopt rsa_keygen_bits:2048 -pkeyopt rsa_keygen_pubexp:65537 -pkeyopt rsa_pss_keygen_md:sha1 -pkeyopt rsa_pss_keygen_mgf1_md:sha1 -pkeyopt rsa_pss_keygen_saltlen:20 -out rsa_pss_private_2048_sha1_sha1_20.pem
-
rsa_pss_public_2048.pem: rsa_pss_private_2048.pem
openssl pkey -in rsa_pss_private_2048.pem -pubout -out rsa_pss_public_2048.pem
@@ -722,9 +717,6 @@ rsa_pss_public_2048_sha256_sha256_16.pem
rsa_pss_public_2048_sha512_sha256_20.pem: rsa_pss_private_2048_sha512_sha256_20.pem
openssl pkey -in rsa_pss_private_2048_sha512_sha256_20.pem -pubout -out rsa_pss_public_2048_sha512_sha256_20.pem
-rsa_pss_public_2048_sha1_sha1_20.pem: rsa_pss_private_2048_sha1_sha1_20.pem
- openssl pkey -in rsa_pss_private_2048_sha1_sha1_20.pem -pubout -out rsa_pss_public_2048_sha1_sha1_20.pem
-
ed25519_private.pem:
openssl genpkey -algorithm ED25519 -out ed25519_private.pem
Index: node-v17.3.0/test/fixtures/keys/rsa_pss_private_2048_sha1_sha1_20.pem
===================================================================
--- node-v17.3.0.orig/test/fixtures/keys/rsa_pss_private_2048_sha1_sha1_20.pem
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN PRIVATE KEY-----
-MIIEvQIBADANBgkqhkiG9w0BAQowAASCBKcwggSjAgEAAoIBAQCpdutzsPFQ1100
-ouR5aAwYry8aAtG0c+zX9UqNXGCpRDWzPPpXHUZSB1BmTTL4EhK2tkAfblYNqzRu
-CAYlKHbFpFLs2zLEorfp0WsFNPaBHE9JHpLIM4oXxPCUypZ7JAn56ZYonYCZ8Il5
-8SzD9aoF41RTEmpcx3XkL2RQa022RiSccYZKx/yzskUUAdTvTvYyujH1MkvsfVP+
-Ns5bRL6IVqowFd3xv6ctvfQMxz0rltgTC+wOm3CFtn+G63y6P/Z0U2DRdacsNkN6
-PFGXAIB0kSvKzs8gVocEBiSwMkcT/KD3R68PY18b2auqaGcm8gA+gaVJ36KAW4dO
-AjbY+YitAgMBAAECggEAfPvfFXln0Ra1gE+vMDdjzITPuWBg57Uj9fbMIEwEYnKT
-JHmRrNRDe9Y3HuxK7hjuQmFSE5xdzUD6rzgtyBP63TOfkV7tJ4dXGxS/2JxCPeDy
-PNxWp18Ttwoh4as0pudikDYN8DCRm3eC/TO5r2EtH6CVHZuUZI8bTMsDMiihrQ8F
-B8+KucBG5DDy/OlDeieAZxZA4Y0/c+W0DNZ/LIPGwaqMzYCSZJXyV0t33HytUwM2
-QZ+RbWqcUcrCI3lFAO8IyEULCi+RnSByZeJ0xwUkdQTI5jT6+G8BrO70Oiab8g+Q
-Rx2s7PxWpIMVS7/JD1PsL4hLrVh3uqh8PZl3/FG9IQKBgQDZWkOR2LA+ixmD6XJb
-Q+7zW2guHnK6wDrQFKmBGLaDdAER64WL1Unt6Umu7FPxth2niYMEgRexBgnj5hQN
-LfPYTiIeXs5ErrU96fVQABsV0Hra1M2Rhve5nynjFFpbHjDXtizzLpE30MsC7YkN
-EqD4YYzjWHrbk/UlQ7tx3eAvtQKBgQDHmNM4TRuyH2yaYxDqnho6fgJv7Z4KgbM0
-1wcUxi5kPDQsFtaVOzFhNserzsWvotQjLkC2+CK5qlCdm59ZlpUqszF6+YyUs5Gq
-WmHdqryduT1VxSV/pd6wGEQo27fxFV7LsT1JhVMh9Iri8MK0b1BD6+kVUf5NcKDB
-Od2o8A1gGQKBgA5Y3Pj1mrymJesFL91CYLWDpR7WN7CIG9m8Y2v4G6QVtjRenZQb
-YiPoMErxoqDj6pUyiIl1lADFa0W13ED6dYwjrDDhBTCXb7NEjELZnvATsOhc/6zJ
-gfSowvUQVN6K4aJ7jgAHZOKQT7ZDw7YvMpzyo4AmSQXRgG8TR34+rRu5AoGACApP
-9+SjSPmbFl0HQWw9Aj4xOvEHfMTcwzQmRN/23nLOZzhETJ6lzpS2VmVt8TVN9lzW
-nohAXdpOhQrP0HwQZjfxtlJ3J0ZUh9g8OQG3t2LO5bWbXRkBb3aKyFqRflSuDOaG
-4X9NagC/14R7U2loglPuf71d0SDIWQBLvZJt94ECgYEAnY7aKHnWdLszcB8uyEkJ
-EJkUEaa+K/nTqOzqffZ01cTWJmUG7a2KuvQ+UQM2BHk2+wBmUo45Iz/dyePOJY0B
-Fu2agiV4+R4z2XVQnIvXgY5HaPxvLz0THksY/pD58gBmFaLMx4ADEwQ+s4Y2g12H
-ABsKNRHfSnKTwOm/dYvcVqs=
------END PRIVATE KEY-----
Index: node-v17.3.0/test/fixtures/keys/rsa_pss_public_2048_sha1_sha1_20.pem
===================================================================
--- node-v17.3.0.orig/test/fixtures/keys/rsa_pss_public_2048_sha1_sha1_20.pem
+++ /dev/null
@@ -1,9 +0,0 @@
------BEGIN PUBLIC KEY-----
-MIIBIjANBgkqhkiG9w0BAQowAAOCAQ8AMIIBCgKCAQEAqXbrc7DxUNddNKLkeWgM
-GK8vGgLRtHPs1/VKjVxgqUQ1szz6Vx1GUgdQZk0y+BIStrZAH25WDas0bggGJSh2
-xaRS7NsyxKK36dFrBTT2gRxPSR6SyDOKF8TwlMqWeyQJ+emWKJ2AmfCJefEsw/Wq
-BeNUUxJqXMd15C9kUGtNtkYknHGGSsf8s7JFFAHU7072Mrox9TJL7H1T/jbOW0S+
-iFaqMBXd8b+nLb30DMc9K5bYEwvsDptwhbZ/hut8uj/2dFNg0XWnLDZDejxRlwCA
-dJErys7PIFaHBAYksDJHE/yg90evD2NfG9mrqmhnJvIAPoGlSd+igFuHTgI22PmI
-rQIDAQAB
------END PUBLIC KEY-----
Index: node-v17.3.0/test/parallel/test-crypto-key-objects.js
===================================================================
--- node-v17.3.0.orig/test/parallel/test-crypto-key-objects.js
+++ node-v17.3.0/test/parallel/test-crypto-key-objects.js
@@ -582,21 +582,11 @@ const privateDsa = fixtures.readKey('dsa
const publicKey = createPublicKey(publicPem);
const privateKey = createPrivateKey(privatePem);
- // Because no RSASSA-PSS-params appears in the PEM, no defaults should be
- // added for the PSS parameters. This is different from an empty
- // RSASSA-PSS-params sequence (see test below).
- const expectedKeyDetails = {
- modulusLength: 2048,
- publicExponent: 65537n
- };
-
assert.strictEqual(publicKey.type, 'public');
assert.strictEqual(publicKey.asymmetricKeyType, 'rsa-pss');
- assert.deepStrictEqual(publicKey.asymmetricKeyDetails, expectedKeyDetails);
assert.strictEqual(privateKey.type, 'private');
assert.strictEqual(privateKey.asymmetricKeyType, 'rsa-pss');
- assert.deepStrictEqual(privateKey.asymmetricKeyDetails, expectedKeyDetails);
assert.throws(
() => publicKey.export({ format: 'jwk' }),
@@ -635,38 +625,6 @@ const privateDsa = fixtures.readKey('dsa
}
{
- // This key pair enforces sha1 as the message digest and the MGF1
- // message digest and a salt length of 20 bytes.
-
- const publicPem = fixtures.readKey('rsa_pss_public_2048_sha1_sha1_20.pem');
- const privatePem =
- fixtures.readKey('rsa_pss_private_2048_sha1_sha1_20.pem');
-
- const publicKey = createPublicKey(publicPem);
- const privateKey = createPrivateKey(privatePem);
-
- // Unlike the previous key pair, this key pair contains an RSASSA-PSS-params
- // sequence. However, because all values in the RSASSA-PSS-params are set to
- // their defaults (see RFC 3447), the ASN.1 structure contains an empty
- // sequence. Node.js should add the default values to the key details.
- const expectedKeyDetails = {
- modulusLength: 2048,
- publicExponent: 65537n,
- hashAlgorithm: 'sha1',
- mgf1HashAlgorithm: 'sha1',
- saltLength: 20
- };
-
- assert.strictEqual(publicKey.type, 'public');
- assert.strictEqual(publicKey.asymmetricKeyType, 'rsa-pss');
- assert.deepStrictEqual(publicKey.asymmetricKeyDetails, expectedKeyDetails);
-
- assert.strictEqual(privateKey.type, 'private');
- assert.strictEqual(privateKey.asymmetricKeyType, 'rsa-pss');
- assert.deepStrictEqual(privateKey.asymmetricKeyDetails, expectedKeyDetails);
- }
-
- {
// This key pair enforces sha256 as the message digest and the MGF1
// message digest and a salt length of at least 16 bytes.
const publicPem =
@@ -724,21 +682,11 @@ const privateDsa = fixtures.readKey('dsa
const publicKey = createPublicKey(publicPem);
const privateKey = createPrivateKey(privatePem);
- const expectedKeyDetails = {
- modulusLength: 2048,
- publicExponent: 65537n,
- hashAlgorithm: 'sha512',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 20
- };
-
assert.strictEqual(publicKey.type, 'public');
assert.strictEqual(publicKey.asymmetricKeyType, 'rsa-pss');
- assert.deepStrictEqual(publicKey.asymmetricKeyDetails, expectedKeyDetails);
assert.strictEqual(privateKey.type, 'private');
assert.strictEqual(privateKey.asymmetricKeyType, 'rsa-pss');
- assert.deepStrictEqual(privateKey.asymmetricKeyDetails, expectedKeyDetails);
// Node.js usually uses the same hash function for the message and for MGF1.
// However, when a different MGF1 message digest algorithm has been
Index: node-v17.3.0/test/parallel/test-crypto-keygen.js
===================================================================
--- node-v17.3.0.orig/test/parallel/test-crypto-keygen.js
+++ node-v17.3.0/test/parallel/test-crypto-keygen.js
@@ -309,20 +309,14 @@ const sec1EncExp = (cipher) => getRegExp
assert.strictEqual(publicKey.asymmetricKeyType, 'rsa-pss');
assert.deepStrictEqual(publicKey.asymmetricKeyDetails, {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
});
assert.strictEqual(privateKey.type, 'private');
assert.strictEqual(privateKey.asymmetricKeyType, 'rsa-pss');
assert.deepStrictEqual(privateKey.asymmetricKeyDetails, {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
});
// Unlike RSA, RSA-PSS does not allow encryption.
@@ -381,10 +375,7 @@ const sec1EncExp = (cipher) => getRegExp
}, common.mustSucceed((publicKey, privateKey) => {
const expectedKeyDetails = {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
};
assert.deepStrictEqual(publicKey.asymmetricKeyDetails, expectedKeyDetails);
assert.deepStrictEqual(privateKey.asymmetricKeyDetails, expectedKeyDetails);
@@ -401,10 +392,7 @@ const sec1EncExp = (cipher) => getRegExp
}, common.mustSucceed((publicKey, privateKey) => {
const expectedKeyDetails = {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha512',
- mgf1HashAlgorithm: 'sha512',
- saltLength: 64
+ publicExponent: 65537n
};
assert.deepStrictEqual(publicKey.asymmetricKeyDetails, expectedKeyDetails);
assert.deepStrictEqual(privateKey.asymmetricKeyDetails, expectedKeyDetails);
@@ -418,10 +406,7 @@ const sec1EncExp = (cipher) => getRegExp
}, common.mustSucceed((publicKey, privateKey) => {
const expectedKeyDetails = {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha512',
- mgf1HashAlgorithm: 'sha512',
- saltLength: 0
+ publicExponent: 65537n
};
assert.deepStrictEqual(publicKey.asymmetricKeyDetails, expectedKeyDetails);
assert.deepStrictEqual(privateKey.asymmetricKeyDetails, expectedKeyDetails);
@@ -1646,20 +1631,14 @@ if (!common.hasOpenSSL3) {
assert.strictEqual(publicKey.asymmetricKeyType, 'rsa-pss');
assert.deepStrictEqual(publicKey.asymmetricKeyDetails, {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
});
assert.strictEqual(privateKey.type, 'private');
assert.strictEqual(privateKey.asymmetricKeyType, 'rsa-pss');
assert.deepStrictEqual(privateKey.asymmetricKeyDetails, {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
});
}));
}
Index: node-v17.3.0/test/parallel/test-crypto-keygen-deprecation.js
===================================================================
--- node-v17.3.0.orig/test/parallel/test-crypto-keygen-deprecation.js
+++ node-v17.3.0/test/parallel/test-crypto-keygen-deprecation.js
@@ -32,20 +32,14 @@ const { generateKeyPair } = require('cry
assert.strictEqual(publicKey.asymmetricKeyType, 'rsa-pss');
assert.deepStrictEqual(publicKey.asymmetricKeyDetails, {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
});
assert.strictEqual(privateKey.type, 'private');
assert.strictEqual(privateKey.asymmetricKeyType, 'rsa-pss');
assert.deepStrictEqual(privateKey.asymmetricKeyDetails, {
modulusLength: 512,
- publicExponent: 65537n,
- hashAlgorithm: 'sha256',
- mgf1HashAlgorithm: 'sha256',
- saltLength: 16
+ publicExponent: 65537n
});
}));
}

29
skip_no_console.patch Normal file
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');

View File

@ -0,0 +1,35 @@
Index: node-v16.13.0/configure
===================================================================
--- node-v16.13.0.orig/configure
+++ node-v16.13.0/configure
@@ -22,7 +22,7 @@ except ImportError:
from distutils.spawn import find_executable as which
print('Node.js configure: Found Python {}.{}.{}...'.format(*sys.version_info))
-acceptable_pythons = ((3, 10), (3, 9), (3, 8), (3, 7), (3, 6))
+acceptable_pythons = ((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-v16.13.0/deps/npm/node_modules/node-gyp/lib/find-python.js
===================================================================
--- node-v16.13.0.orig/deps/npm/node_modules/node-gyp/lib/find-python.js
+++ node-v16.13.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,

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
update_npm_tarball.sh Normal file
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

348
versioned.patch Normal file
View File

@ -0,0 +1,348 @@
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-v18.16.0/Makefile
===================================================================
--- node-v18.16.0.orig/Makefile
+++ node-v18.16.0/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 = node18$(EXEEXT)
NODE ?= ./$(NODE_EXE)
NODE_G_EXE = node_g$(EXEEXT)
NPM ?= ./deps/npm/bin/npm-cli.js
Index: node-v18.16.0/tools/install.py
===================================================================
--- node-v18.16.0.orig/tools/install.py
+++ node-v18.16.0/tools/install.py
@@ -86,7 +86,7 @@ def uninstall(paths, dst):
try_remove(path, dst)
def package_files(action, name, bins):
- target_path = libdir() + '/node_modules/' + name + '/'
+ target_path = libdir() + '/node_modules/' + name + '18/'
# 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):
if action == uninstall:
action([link_path], 'bin/' + bin_name)
elif action == install:
- try_symlink('../' + libdir() + '/node_modules/' + name + '/' + bin_target, link_path)
+ try_symlink('../' + libdir() + '/node_modules/' + name + '18/' + bin_target, link_path)
else:
assert 0 # unhandled action type
def npm_files(action):
package_files(action, 'npm', {
- 'npm': 'bin/npm-cli.js',
- 'npx': 'bin/npx-cli.js',
+ 'npm18': 'bin/npm-cli.js',
+ 'npx18': 'bin/npx-cli.js',
})
def corepack_files(action):
package_files(action, 'corepack', {
- 'corepack': 'dist/corepack.js',
+ 'corepack18': '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):
def files(action):
is_windows = sys.platform == 'win32'
- output_file = 'node'
+ output_file = 'node18'
output_prefix = 'out/Release/'
if is_windows:
@@ -186,7 +186,7 @@ def files(action):
action(['out/Release/node.d'], 'lib/dtrace/node.d')
# behave similarly for systemtap
- action(['src/node.stp'], 'share/systemtap/tapset/')
+ action(['src/node.stp'], 'share/systemtap/tapset/node18.stp')
action(['deps/v8/tools/gdbinit'], 'share/doc/node/')
action(['deps/v8/tools/lldb_commands.py'], 'share/doc/node/')
@@ -194,7 +194,7 @@ def files(action):
if 'freebsd' in sys.platform or 'openbsd' in sys.platform:
action(['doc/node.1'], 'man/man1/')
else:
- action(['doc/node.1'], 'share/man/man1/')
+ action(['doc/node.1'], 'share/man/man1/node18.1')
if 'true' == variables.get('node_install_npm'):
npm_files(action)
@@ -281,28 +281,28 @@ def headers(action):
'src/node_buffer.h',
'src/node_object_wrap.h',
'src/node_version.h',
- ], 'include/node/')
+ ], 'include/node18/')
# 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/node18/')
- subdir_files('deps/v8/include', 'include/node/', wanted_v8_headers)
+ subdir_files('deps/v8/include', 'include/node18/', wanted_v8_headers)
if 'false' == variables.get('node_shared_libuv'):
- subdir_files('deps/uv/include', 'include/node/', action)
+ subdir_files('deps/uv/include', 'include/node18/', 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/node18/openssl/', action)
+ subdir_files('deps/openssl/config/archs', 'include/node18/openssl/archs', action)
+ subdir_files('deps/openssl/config', 'include/node18/openssl', action)
if 'false' == variables.get('node_shared_zlib'):
action([
'deps/zlib/zconf.h',
'deps/zlib/zlib.h',
- ], 'include/node/')
+ ], 'include/node18/')
if sys.platform == 'zos':
zoslibinc = os.environ.get('ZOSLIB_INCLUDES')
Index: node-v18.16.0/doc/node.1
===================================================================
--- node-v18.16.0.orig/doc/node.1
+++ node-v18.16.0/doc/node.1
@@ -31,24 +31,24 @@
.Dt NODE 1
.
.Sh NAME
-.Nm node
+.Nm node18
.Nd server-side JavaScript runtime
.
.\"======================================================================
.Sh SYNOPSIS
-.Nm node
+.Nm node18
.Op Ar options
.Op Ar v8-options
.Op Fl e Ar string | Ar script.js | Fl
.Op Fl -
.Op Ar arguments ...
.
-.Nm node
+.Nm node18
.Cm inspect
.Op Fl e Ar string | Ar script.js | Fl | Ar <host>:<port>
.Ar ...
.
-.Nm node
+.Nm node18
.Op Fl -v8-options
.
.\"======================================================================
Index: node-v18.16.0/src/node.stp
===================================================================
--- node-v18.16.0.orig/src/node.stp
+++ node-v18.16.0/src/node.stp
@@ -19,7 +19,7 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.
-probe node_net_server_connection = process("node").mark("net__server__connection")
+probe node_net_server_connection = process("node18").mark("net__server__connection")
{
remote = user_string($arg2);
port = $arg3;
@@ -32,7 +32,7 @@ probe node_net_server_connection = proce
fd);
}
-probe node_net_stream_end = process("node").mark("net__stream__end")
+probe node_net_stream_end = process("node18").mark("net__stream__end")
{
remote = user_string($arg2);
port = $arg3;
@@ -45,7 +45,7 @@ probe node_net_stream_end = process("nod
fd);
}
-probe node_http_server_request = process("node").mark("http__server__request")
+probe node_http_server_request = process("node18").mark("http__server__request")
{
remote = user_string($arg3);
port = $arg4;
@@ -62,7 +62,7 @@ probe node_http_server_request = process
fd);
}
-probe node_http_server_response = process("node").mark("http__server__response")
+probe node_http_server_response = process("node18").mark("http__server__response")
{
remote = user_string($arg2);
port = $arg3;
@@ -75,7 +75,7 @@ probe node_http_server_response = proces
fd);
}
-probe node_http_client_request = process("node").mark("http__client__request")
+probe node_http_client_request = process("node18").mark("http__client__request")
{
remote = user_string($arg3);
port = $arg4;
@@ -92,7 +92,7 @@ probe node_http_client_request = process
fd);
}
-probe node_http_client_response = process("node").mark("http__client__response")
+probe node_http_client_response = process("node18").mark("http__client__response")
{
remote = user_string($arg2);
port = $arg3;
@@ -105,7 +105,7 @@ probe node_http_client_response = proces
fd);
}
-probe node_gc_start = process("node").mark("gc__start")
+probe node_gc_start = process("node18").mark("gc__start")
{
scavenge = 1 << 0;
compact = 1 << 1;
@@ -125,7 +125,7 @@ probe node_gc_start = process("node").ma
flags);
}
-probe node_gc_stop = process("node").mark("gc__done")
+probe node_gc_stop = process("node18").mark("gc__done")
{
scavenge = 1 << 0;
compact = 1 << 1;
Index: node-v18.16.0/deps/npm/man/man1/npm.1
===================================================================
--- node-v18.16.0.orig/deps/npm/man/man1/npm.1
+++ node-v18.16.0/deps/npm/man/man1/npm.1
@@ -1,11 +1,11 @@
.TH "NPM" "1" "February 2023" "" ""
.SH "NAME"
-\fBnpm\fR - javascript package manager
+\fBnpm18\fR - javascript package manager
.SS "Synopsis"
.P
.RS 2
.nf
-npm
+npm18
.fi
.RE
.P
@@ -19,7 +19,7 @@ npm is the package manager for the Node
.P
It is extremely configurable to support a variety of use cases. Most commonly, you use it to publish, discover, install, and develop node programs.
.P
-Run \fBnpm help\fR to get a list of available commands.
+Run \fBnpm18 help\fR to get a list of available commands.
.SS "Important"
.P
npm comes preconfigured to use npm's public registry at https://registry.npmjs.org by default. Use of the npm public registry is subject to terms of use available at https://docs.npmjs.com/policies/terms.
@@ -115,17 +115,17 @@ Or suggest formal RFC proposals:
.SS "See Also"
.RS 0
.IP \(bu 4
-npm help help
+npm18 help help
.IP \(bu 4
\fBpackage.json\fR \fI\(la/configuring-npm/package-json\(ra\fR
.IP \(bu 4
-npm help npmrc
+npm18 help npmrc
.IP \(bu 4
-npm help config
+npm18 help config
.IP \(bu 4
-npm help install
+npm18 help install
.IP \(bu 4
-npm help prefix
+npm18 help prefix
.IP \(bu 4
-npm help publish
+npm18 help publish
.RE 0
Index: node-v18.16.0/src/node_main.cc
===================================================================
--- node-v18.16.0.orig/src/node_main.cc
+++ node-v18.16.0/src/node_main.cc
@@ -90,6 +90,7 @@ int wmain(int argc, wchar_t* wargv[]) {
// UNIX
int main(int argc, char* argv[]) {
+ setenv("NODE_VERSION", "18", 0);
return node::Start(argc, argv);
}
#endif
Index: node-v18.16.0/tools/test.py
===================================================================
--- node-v18.16.0.orig/tools/test.py
+++ node-v18.16.0/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/node18'
else:
name = 'out/%s.%s/node' % (arch, mode)
Index: node-v18.16.0/node.gyp
===================================================================
--- node-v18.16.0.orig/node.gyp
+++ node-v18.16.0/node.gyp
@@ -25,8 +25,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%': 'node18',
+ 'node_lib_target_name%': 'libnode18',
'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
Index: node-v18.16.0/deps/npm/man/man1/npx.1
===================================================================
--- node-v18.16.0.orig/deps/npm/man/man1/npx.1
+++ node-v18.16.0/deps/npm/man/man1/npx.1
@@ -1,14 +1,14 @@
.TH "NPX" "1" "February 2023" "" ""
.SH "NAME"
-\fBnpx\fR - Run a command from a local or remote npm package
+\fBnpx18\fR - Run a command from a local or remote npm package
.SS "Synopsis"
.P
.RS 2
.nf
-npx -- <pkg>\[lB]@<version>\[rB] \[lB]args...\[rB]
-npx --package=<pkg>\[lB]@<version>\[rB] -- <cmd> \[lB]args...\[rB]
-npx -c '<cmd> \[lB]args...\[rB]'
-npx --package=foo -c '<cmd> \[lB]args...\[rB]'
+npx18 -- <pkg>\[lB]@<version>\[rB] \[lB]args...\[rB]
+npx18 --package=<pkg>\[lB]@<version>\[rB] -- <cmd> \[lB]args...\[rB]
+npx18 -c '<cmd> \[lB]args...\[rB]'
+npx18 --package=foo -c '<cmd> \[lB]args...\[rB]'
.fi
.RE
.SS "Description"