summaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-devtools/nodejs
diff options
context:
space:
mode:
authorArchana Polampalli <archana.polampalli@windriver.com>2022-11-18 18:25:27 +0000
committerKhem Raj <raj.khem@gmail.com>2022-11-18 11:10:25 -0800
commitc4829fa338dae008c75cfffd4a712813a99c33c4 (patch)
tree79ce2164360d3b9a5321b428734e020b2816e45b /meta-oe/recipes-devtools/nodejs
parent172c707251fd1a646b8e63854b5f4c04ff044ce3 (diff)
downloadmeta-openembedded-c4829fa338dae008c75cfffd4a712813a99c33c4.tar.gz
Nodejs - Upgrade to 16.18.1
* Drop Openssl legacy provider patch and install both binaries patch which are already available in 16.x * Refresh native binaries patch against 16.x base Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-devtools/nodejs')
-rwxr-xr-xmeta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.18/oe-npm-cache (renamed from meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.14/oe-npm-cache)0
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.18.bb (renamed from meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.14.bb)0
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch (renamed from meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch)40
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch96
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch151
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_16.18.1.bb (renamed from meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb)8
6 files changed, 27 insertions, 268 deletions
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.14/oe-npm-cache b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.18/oe-npm-cache
index f59620764..f59620764 100755
--- a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.14/oe-npm-cache
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-16.18/oe-npm-cache
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.14.bb b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.18.bb
index a61dd5018..a61dd5018 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.14.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_16.18.bb
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
index 8db1f1dd5..445aaf839 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Using-native-binaries.patch
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
@@ -3,14 +3,17 @@ From: Guillaume Burel <guillaume.burel@stormshield.eu>
3Date: Fri, 3 Jan 2020 11:25:54 +0100 3Date: Fri, 3 Jan 2020 11:25:54 +0100
4Subject: [PATCH] Using native binaries 4Subject: [PATCH] Using native binaries
5 5
6Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
6--- 7---
7 node.gyp | 4 ++-- 8 node.gyp | 2 ++
8 tools/v8_gypfiles/v8.gyp | 11 ++++------- 9 tools/v8_gypfiles/v8.gyp | 5 +++++
9 2 files changed, 6 insertions(+), 9 deletions(-) 10 2 files changed, 7 insertions(+)
10 11
12diff --git a/node.gyp b/node.gyp
13index 24505da7ba..7d41bd52db 100644
11--- a/node.gyp 14--- a/node.gyp
12+++ b/node.gyp 15+++ b/node.gyp
13@@ -294,6 +294,7 @@ 16@@ -319,6 +319,7 @@
14 'action_name': 'run_mkcodecache', 17 'action_name': 'run_mkcodecache',
15 'process_outputs_as_sources': 1, 18 'process_outputs_as_sources': 1,
16 'inputs': [ 19 'inputs': [
@@ -18,14 +21,16 @@ Subject: [PATCH] Using native binaries
18 '<(mkcodecache_exec)', 21 '<(mkcodecache_exec)',
19 ], 22 ],
20 'outputs': [ 23 'outputs': [
21@@ -319,6 +320,7 @@ 24@@ -366,6 +367,7 @@
22 'action_name': 'node_mksnapshot', 25 'action_name': 'node_mksnapshot',
23 'process_outputs_as_sources': 1, 26 'process_outputs_as_sources': 1,
24 'inputs': [ 27 'inputs': [
25+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', 28+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
26 '<(node_mksnapshot_exec)', 29 '<(node_mksnapshot_exec)',
27 ], 30 ],
28 'outputs': [ 31 'outputs': [
32diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp
33index ed042f8829..371b8e02c2 100644
29--- a/tools/v8_gypfiles/v8.gyp 34--- a/tools/v8_gypfiles/v8.gyp
30+++ b/tools/v8_gypfiles/v8.gyp 35+++ b/tools/v8_gypfiles/v8.gyp
31@@ -68,6 +68,7 @@ 36@@ -68,6 +68,7 @@
@@ -40,11 +45,11 @@ Subject: [PATCH] Using native binaries
40 '<@(torque_outputs_inc)', 45 '<@(torque_outputs_inc)',
41 ], 46 ],
42 'action': [ 47 'action': [
43+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh', 48+ '<(PRODUCT_DIR)/v8-qemu-wrapper.sh',
44 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', 49 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)',
45 '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated', 50 '-o', '<(SHARED_INTERMEDIATE_DIR)/torque-generated',
46 '-v8-root', '<(V8_ROOT)', 51 '-v8-root', '<(V8_ROOT)',
47@@ -225,6 +227,7 @@ 52@@ -211,6 +213,7 @@
48 { 53 {
49 'action_name': 'generate_bytecode_builtins_list_action', 54 'action_name': 'generate_bytecode_builtins_list_action',
50 'inputs': [ 55 'inputs': [
@@ -52,7 +57,7 @@ Subject: [PATCH] Using native binaries
52 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', 57 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)',
53 ], 58 ],
54 'outputs': [ 59 'outputs': [
55@@ -415,6 +418,7 @@ 60@@ -395,6 +398,7 @@
56 ], 61 ],
57 }, 62 },
58 'inputs': [ 63 'inputs': [
@@ -60,7 +65,7 @@ Subject: [PATCH] Using native binaries
60 '<(mksnapshot_exec)', 65 '<(mksnapshot_exec)',
61 ], 66 ],
62 'outputs': [ 67 'outputs': [
63@@ -1548,6 +1552,7 @@ 68@@ -1513,6 +1517,7 @@
64 { 69 {
65 'action_name': 'run_gen-regexp-special-case_action', 70 'action_name': 'run_gen-regexp-special-case_action',
66 'inputs': [ 71 'inputs': [
@@ -68,3 +73,6 @@ Subject: [PATCH] Using native binaries
68 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)', 73 '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen-regexp-special-case<(EXECUTABLE_SUFFIX)',
69 ], 74 ],
70 'outputs': [ 75 'outputs': [
76--
772.34.1
78
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch
deleted file mode 100644
index 5cb2e9701..000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0002-Install-both-binaries-and-use-libdir.patch
+++ /dev/null
@@ -1,96 +0,0 @@
1From 62ddf8499747fb1e366477d666c0634ad50039a9 Mon Sep 17 00:00:00 2001
2From: Elliott Sales de Andrade <quantum.analyst@gmail.com>
3Date: Tue, 19 Mar 2019 23:22:40 -0400
4Subject: [PATCH 2/2] Install both binaries and use libdir.
5
6This allows us to build with a shared library for other users while
7still providing the normal executable.
8
9Taken from - https://src.fedoraproject.org/rpms/nodejs/raw/rawhide/f/0002-Install-both-binaries-and-use-libdir.patch
10
11Upstream-Status: Pending
12
13Signed-off-by: Elliott Sales de Andrade <quantum.analyst@gmail.com>
14Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16---
17 configure.py | 7 +++++++
18 tools/install.py | 21 +++++++++------------
19 2 files changed, 16 insertions(+), 12 deletions(-)
20
21diff --git a/configure.py b/configure.py
22index 6efb98c2316f089f3167e486282593245373af3f..a6d2ec939e4480dfae703f3978067537abf9f0f0 100755
23--- a/configure.py
24+++ b/configure.py
25@@ -721,10 +721,16 @@ parser.add_argument('--shared',
26 dest='shared',
27 default=None,
28 help='compile shared library for embedding node in another project. ' +
29 '(This mode is not officially supported for regular applications)')
30
31+parser.add_argument('--libdir',
32+ action='store',
33+ dest='libdir',
34+ default='lib',
35+ help='a directory to install the shared library into')
36+
37 parser.add_argument('--without-v8-platform',
38 action='store_true',
39 dest='without_v8_platform',
40 default=False,
41 help='do not initialize v8 platform during node.js startup. ' +
42@@ -1305,10 +1311,11 @@ def configure_node(o):
43 o['variables']['debug_nghttp2'] = 'false'
44
45 o['variables']['node_no_browser_globals'] = b(options.no_browser_globals)
46
47 o['variables']['node_shared'] = b(options.shared)
48+ o['variables']['libdir'] = options.libdir
49 node_module_version = getmoduleversion.get_version()
50
51 if options.dest_os == 'android':
52 shlib_suffix = 'so'
53 elif sys.platform == 'darwin':
54diff --git a/tools/install.py b/tools/install.py
55index 41cc1cbc60a9480cc08df3aa0ebe582c2becc3a2..11208f9e7166ab60da46d5ace2257c239a7e9263 100755
56--- a/tools/install.py
57+++ b/tools/install.py
58@@ -128,26 +128,23 @@ def subdir_files(path, dest, action):
59 for subdir, files_in_path in ret.items():
60 action(files_in_path, subdir + '/')
61
62 def files(action):
63 is_windows = sys.platform == 'win32'
64- output_file = 'node'
65 output_prefix = 'out/Release/'
66+ output_libprefix = output_prefix
67
68- if 'false' == variables.get('node_shared'):
69- if is_windows:
70- output_file += '.exe'
71+ if is_windows:
72+ output_bin = 'node.exe'
73+ output_lib = 'node.dll'
74 else:
75- if is_windows:
76- output_file += '.dll'
77- else:
78- output_file = 'lib' + output_file + '.' + variables.get('shlib_suffix')
79+ output_bin = 'node'
80+ output_lib = 'libnode.' + variables.get('shlib_suffix')
81
82- if 'false' == variables.get('node_shared'):
83- action([output_prefix + output_file], 'bin/' + output_file)
84- else:
85- action([output_prefix + output_file], 'lib/' + output_file)
86+ action([output_prefix + output_bin], 'bin/' + output_bin)
87+ if 'true' == variables.get('node_shared'):
88+ action([output_libprefix + output_lib], variables.get('libdir') + '/' + output_lib)
89
90 if 'true' == variables.get('node_use_dtrace'):
91 action(['out/Release/node.d'], 'lib/dtrace/node.d')
92
93 # behave similarly for systemtap
94--
952.33.0
96
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch
deleted file mode 100644
index 4d238c03f..000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs/0005-add-openssl-legacy-provider-option.patch
+++ /dev/null
@@ -1,151 +0,0 @@
1From 86d1c0cc6a5dcf57e413a1cc1c29203e87cf9a14 Mon Sep 17 00:00:00 2001
2From: Daniel Bevenius <daniel.bevenius@gmail.com>
3Date: Sat, 16 Oct 2021 08:50:16 +0200
4Subject: [PATCH] src: add --openssl-legacy-provider option
5
6This commit adds an option to Node.js named --openssl-legacy-provider
7and if specified will load OpenSSL 3.0 Legacy provider.
8
9$ ./node --help
10...
11--openssl-legacy-provider enable OpenSSL 3.0 legacy provider
12
13Example usage:
14
15$ ./node --openssl-legacy-provider -p 'crypto.createHash("md4")'
16Hash {
17 _options: undefined,
18 [Symbol(kHandle)]: Hash {},
19 [Symbol(kState)]: { [Symbol(kFinalized)]: false }
20}
21
22Co-authored-by: Richard Lau <rlau@redhat.com>
23Signed-off-by: Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
24Upstream-Status: Backport [https://github.com/nodejs/node/issues/40455]
25---
26 doc/api/cli.md | 10 ++++++++++
27 src/crypto/crypto_util.cc | 10 ++++++++++
28 src/node_options.cc | 10 ++++++++++
29 src/node_options.h | 7 +++++++
30 .../test-process-env-allowed-flags-are-documented.js | 5 +++++
31 5 files changed, 42 insertions(+)
32
33diff --git a/doc/api/cli.md b/doc/api/cli.md
34index 74057706bf8d..608b9cdeddf1 100644
35--- a/doc/api/cli.md
36+++ b/doc/api/cli.md
37@@ -687,6 +687,14 @@ Load an OpenSSL configuration file on startup. Among other uses, this can be
38 used to enable FIPS-compliant crypto if Node.js is built
39 against FIPS-enabled OpenSSL.
40
41+### `--openssl-legacy-provider`
42+<!-- YAML
43+added: REPLACEME
44+-->
45+
46+Enable OpenSSL 3.0 legacy provider. For more information please see
47+[providers readme][].
48+
49 ### `--pending-deprecation`
50
51 <!-- YAML
52@@ -1544,6 +1552,7 @@ Node.js options that are allowed are:
53 * `--no-warnings`
54 * `--node-memory-debug`
55 * `--openssl-config`
56+* `--openssl-legacy-provider`
57 * `--pending-deprecation`
58 * `--policy-integrity`
59 * `--preserve-symlinks-main`
60@@ -1933,6 +1942,7 @@ $ node --max-old-space-size=1536 index.js
61 [emit_warning]: process.md#processemitwarningwarning-options
62 [jitless]: https://v8.dev/blog/jitless
63 [libuv threadpool documentation]: https://docs.libuv.org/en/latest/threadpool.html
64+[providers readme]: https://github.com/openssl/openssl/blob/openssl-3.0.0/README-PROVIDERS.md
65 [remote code execution]: https://www.owasp.org/index.php/Code_Injection
66 [security warning]: #warning-binding-inspector-to-a-public-ipport-combination-is-insecure
67 [timezone IDs]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
68diff --git a/src/crypto/crypto_util.cc b/src/crypto/crypto_util.cc
69index 7e0c8ba3eb60..796ea3025e41 100644
70--- a/src/crypto/crypto_util.cc
71+++ b/src/crypto/crypto_util.cc
72@@ -148,6 +148,16 @@ void InitCryptoOnce() {
73 }
74 #endif
75
76+#if OPENSSL_VERSION_MAJOR >= 3
77+ // --openssl-legacy-provider
78+ if (per_process::cli_options->openssl_legacy_provider) {
79+ OSSL_PROVIDER* legacy_provider = OSSL_PROVIDER_load(nullptr, "legacy");
80+ if (legacy_provider == nullptr) {
81+ fprintf(stderr, "Unable to load legacy provider.\n");
82+ }
83+ }
84+#endif
85+
86 OPENSSL_init_ssl(0, settings);
87 OPENSSL_INIT_free(settings);
88 settings = nullptr;
89diff --git a/src/node_options.cc b/src/node_options.cc
90index 00bdc6688a4c..3363860919a9 100644
91--- a/src/node_options.cc
92+++ b/src/node_options.cc
93@@ -4,6 +4,9 @@
94 #include "env-inl.h"
95 #include "node_binding.h"
96 #include "node_internals.h"
97+#if HAVE_OPENSSL
98+#include "openssl/opensslv.h"
99+#endif
100
101 #include <errno.h>
102 #include <sstream>
103diff --git a/src/node_options.h b/src/node_options.h
104index fd772478d04d..1c0e018ab16f 100644
105--- a/src/node_options.h
106+++ b/src/node_options.h
107@@ -11,6 +11,10 @@
108 #include "node_mutex.h"
109 #include "util.h"
110
111+#if HAVE_OPENSSL
112+#include "openssl/opensslv.h"
113+#endif
114+
115 namespace node {
116
117 class HostPort {
118@@ -251,6 +255,9 @@ class PerProcessOptions : public Options {
119 bool enable_fips_crypto = false;
120 bool force_fips_crypto = false;
121 #endif
122+#if OPENSSL_VERSION_MAJOR >= 3
123+ bool openssl_legacy_provider = false;
124+#endif
125
126 // Per-process because reports can be triggered outside a known V8 context.
127 bool report_on_fatalerror = false;
128diff --git a/test/parallel/test-process-env-allowed-flags-are-documented.js b/test/parallel/test-process-env-allowed-flags-are-documented.js
129index 64626b71f019..8a4e35997907 100644
130--- a/test/parallel/test-process-env-allowed-flags-are-documented.js
131+++ b/test/parallel/test-process-env-allowed-flags-are-documented.js
132@@ -43,6 +43,10 @@ for (const line of [...nodeOptionsLines, ...v8OptionsLines]) {
133 }
134 }
135
136+if (!common.hasOpenSSL3) {
137+ documented.delete('--openssl-legacy-provider');
138+}
139+
140 // Filter out options that are conditionally present.
141 const conditionalOpts = [
142 {
143@@ -50,6 +54,7 @@ const conditionalOpts = [
144 filter: (opt) => {
145 return [
146 '--openssl-config',
147+ common.hasOpenSSL3 ? '--openssl-legacy-provider' : '',
148 '--tls-cipher-list',
149 '--use-bundled-ca',
150 '--use-openssl-ca',
151
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb b/meta-oe/recipes-devtools/nodejs/nodejs_16.18.1.bb
index 62188f94a..a67948320 100644
--- a/meta-oe/recipes-devtools/nodejs/nodejs_16.14.2.bb
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_16.18.1.bb
@@ -1,7 +1,7 @@
1DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" 1DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
2HOMEPAGE = "http://nodejs.org" 2HOMEPAGE = "http://nodejs.org"
3LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0" 3LICENSE = "MIT & ISC & BSD-2-Clause & BSD-3-Clause & Artistic-2.0"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=6ba5b21ac7a505195ca69344d3d7a94a" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=6e54852cd826c41e80c6d80f6db00a85"
5 5
6DEPENDS = "openssl" 6DEPENDS = "openssl"
7DEPENDS:append:class-target = " qemu-native" 7DEPENDS:append:class-target = " qemu-native"
@@ -19,9 +19,7 @@ COMPATIBLE_HOST:powerpc = "null"
19 19
20SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \ 20SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
21 file://0001-Disable-running-gyp-files-for-bundled-deps.patch \ 21 file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
22 file://0002-Install-both-binaries-and-use-libdir.patch \
23 file://0004-v8-don-t-override-ARM-CFLAGS.patch \ 22 file://0004-v8-don-t-override-ARM-CFLAGS.patch \
24 file://0005-add-openssl-legacy-provider-option.patch \
25 file://big-endian.patch \ 23 file://big-endian.patch \
26 file://mips-less-memory.patch \ 24 file://mips-less-memory.patch \
27 file://system-c-ares.patch \ 25 file://system-c-ares.patch \
@@ -29,7 +27,7 @@ SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
29 file://0001-mips-Use-32bit-cast-for-operand-on-mips32.patch \ 27 file://0001-mips-Use-32bit-cast-for-operand-on-mips32.patch \
30 " 28 "
31SRC_URI:append:class-target = " \ 29SRC_URI:append:class-target = " \
32 file://0002-Using-native-binaries.patch \ 30 file://0001-Using-native-binaries.patch \
33 " 31 "
34SRC_URI:append:toolchain-clang:x86 = " \ 32SRC_URI:append:toolchain-clang:x86 = " \
35 file://libatomic.patch \ 33 file://libatomic.patch \
@@ -37,7 +35,7 @@ SRC_URI:append:toolchain-clang:x86 = " \
37SRC_URI:append:toolchain-clang:powerpc64le = " \ 35SRC_URI:append:toolchain-clang:powerpc64le = " \
38 file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \ 36 file://0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch \
39 " 37 "
40SRC_URI[sha256sum] = "e922e215cc68eb5f94d33e8a0b61e2c863b7731cc8600ab955d3822da90ff8d1" 38SRC_URI[sha256sum] = "1f8051a88f86f42064f4415fe7a980e59b0a502ecc8def583f6303bc4d445238"
41 39
42S = "${WORKDIR}/node-v${PV}" 40S = "${WORKDIR}/node-v${PV}"
43 41