diff --git a/patches/node/build_add_gn_build_files.patch b/patches/node/build_add_gn_build_files.patch index 955765eae9670..1e7caa0f674ad 100644 --- a/patches/node/build_add_gn_build_files.patch +++ b/patches/node/build_add_gn_build_files.patch @@ -7,7 +7,7 @@ This adds GN build files for Node, so we don't have to build with GYP. diff --git a/BUILD.gn b/BUILD.gn new file mode 100644 -index 0000000000000000000000000000000000000000..cf4f9b577010ee1e3122bdc1097dfecdfc063b43 +index 0000000000000000000000000000000000000000..ed74ff4855a4e7869e40eb2e85ba15227abd089c --- /dev/null +++ b/BUILD.gn @@ -0,0 +1,358 @@ @@ -104,7 +104,7 @@ index 0000000000000000000000000000000000000000..cf4f9b577010ee1e3122bdc1097dfecd + ] + + cwd = "$target_gen_dir/js2c_inputs" -+ script = "tools/js2c.py" ++ script = "tools/js2c.cc" + args = library_files + rebase_path(config_gypi) + ["--target"] + rebase_path(outputs) +} + @@ -1134,10 +1134,10 @@ index 0000000000000000000000000000000000000000..2c9d2826c85bdd033f1df1d6188df636 +} diff --git a/filenames.json b/filenames.json new file mode 100644 -index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef24832a7afadb +index 0000000000000000000000000000000000000000..3aa6300b09c3cf67cc782f874e3310ed3ee334ba --- /dev/null +++ b/filenames.json -@@ -0,0 +1,664 @@ +@@ -0,0 +1,729 @@ +// This file is automatically generated by generate_gn_filenames_json.py +// DO NOT EDIT +{ @@ -1170,14 +1170,10 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "//v8/include/v8-exception.h", + "//v8/include/v8-extension.h", + "//v8/include/v8-external.h", -+ "//v8/include/v8-fast-api-calls.h", + "//v8/include/v8-forward.h", + "//v8/include/v8-function-callback.h", + "//v8/include/v8-function.h", -+ "//v8/include/v8-handle-base.h", + "//v8/include/v8-initialization.h", -+ "//v8/include/v8-inspector-protocol.h", -+ "//v8/include/v8-inspector.h", + "//v8/include/v8-internal.h", + "//v8/include/v8-isolate.h", + "//v8/include/v8-json.h", @@ -1186,7 +1182,6 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "//v8/include/v8-maybe.h", + "//v8/include/v8-memory-span.h", + "//v8/include/v8-message.h", -+ "//v8/include/v8-metrics.h", + "//v8/include/v8-microtask-queue.h", + "//v8/include/v8-microtask.h", + "//v8/include/v8-object.h", @@ -1200,21 +1195,14 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "//v8/include/v8-regexp.h", + "//v8/include/v8-script.h", + "//v8/include/v8-snapshot.h", -+ "//v8/include/v8-source-location.h", + "//v8/include/v8-statistics.h", + "//v8/include/v8-template.h", + "//v8/include/v8-traced-handle.h", + "//v8/include/v8-typed-array.h", -+ "//v8/include/v8-unwinder-state.h", + "//v8/include/v8-unwinder.h", -+ "//v8/include/v8-util.h", -+ "//v8/include/v8-value-serializer-version.h", + "//v8/include/v8-value-serializer.h", + "//v8/include/v8-value.h", -+ "//v8/include/v8-version-string.h", + "//v8/include/v8-version.h", -+ "//v8/include/v8-wasm-trap-handler-posix.h", -+ "//v8/include/v8-wasm-trap-handler-win.h", + "//v8/include/v8-wasm.h", + "//v8/include/v8-weak-callback-info.h", + "//v8/include/v8.h", @@ -1232,7 +1220,53 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + { + "dest_dir": "include/node//cppgc/", + "files": [ -+ "//v8/include/cppgc/common.h" ++ "//v8/include/cppgc/allocation.h", ++ "//v8/include/cppgc/common.h", ++ "//v8/include/cppgc/cross-thread-persistent.h", ++ "//v8/include/cppgc/custom-space.h", ++ "//v8/include/cppgc/default-platform.h", ++ "//v8/include/cppgc/ephemeron-pair.h", ++ "//v8/include/cppgc/explicit-management.h", ++ "//v8/include/cppgc/garbage-collected.h", ++ "//v8/include/cppgc/heap-consistency.h", ++ "//v8/include/cppgc/heap-handle.h", ++ "//v8/include/cppgc/heap-state.h", ++ "//v8/include/cppgc/heap-statistics.h", ++ "//v8/include/cppgc/heap.h", ++ "//v8/include/cppgc/liveness-broker.h", ++ "//v8/include/cppgc/macros.h", ++ "//v8/include/cppgc/member.h", ++ "//v8/include/cppgc/name-provider.h", ++ "//v8/include/cppgc/object-size-trait.h", ++ "//v8/include/cppgc/persistent.h", ++ "//v8/include/cppgc/platform.h", ++ "//v8/include/cppgc/prefinalizer.h", ++ "//v8/include/cppgc/process-heap-statistics.h", ++ "//v8/include/cppgc/sentinel-pointer.h", ++ "//v8/include/cppgc/source-location.h", ++ "//v8/include/cppgc/testing.h", ++ "//v8/include/cppgc/trace-trait.h", ++ "//v8/include/cppgc/type-traits.h", ++ "//v8/include/cppgc/visitor.h" ++ ] ++ }, ++ { ++ "dest_dir": "include/node//cppgc/internal/", ++ "files": [ ++ "//v8/include/cppgc/internal/api-constants.h", ++ "//v8/include/cppgc/internal/atomic-entry-flag.h", ++ "//v8/include/cppgc/internal/base-page-handle.h", ++ "//v8/include/cppgc/internal/caged-heap-local-data.h", ++ "//v8/include/cppgc/internal/caged-heap.h", ++ "//v8/include/cppgc/internal/compiler-specific.h", ++ "//v8/include/cppgc/internal/finalizer-trait.h", ++ "//v8/include/cppgc/internal/gc-info.h", ++ "//v8/include/cppgc/internal/logging.h", ++ "//v8/include/cppgc/internal/member-storage.h", ++ "//v8/include/cppgc/internal/name-trait.h", ++ "//v8/include/cppgc/internal/persistent-node.h", ++ "//v8/include/cppgc/internal/pointer-policies.h", ++ "//v8/include/cppgc/internal/write-barrier.h" + ] + }, + { @@ -1251,7 +1285,6 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "deps/uv/include/uv/linux.h", + "deps/uv/include/uv/os390.h", + "deps/uv/include/uv/posix.h", -+ "deps/uv/include/uv/stdint-msvc2008.h", + "deps/uv/include/uv/sunos.h", + "deps/uv/include/uv/threadpool.h", + "deps/uv/include/uv/tree.h", @@ -1297,6 +1330,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/http2.js", + "lib/https.js", + "lib/inspector.js", ++ "lib/inspector/promises.js", + "lib/internal/abort_controller.js", + "lib/internal/assert.js", + "lib/internal/assert/assertion_error.js", @@ -1304,13 +1338,14 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/async_hooks.js", + "lib/internal/blob.js", + "lib/internal/blocklist.js", -+ "lib/internal/bootstrap/browser.js", -+ "lib/internal/bootstrap/loaders.js", + "lib/internal/bootstrap/node.js", ++ "lib/internal/bootstrap/realm.js", + "lib/internal/bootstrap/switches/does_not_own_process_state.js", + "lib/internal/bootstrap/switches/does_own_process_state.js", + "lib/internal/bootstrap/switches/is_main_thread.js", + "lib/internal/bootstrap/switches/is_not_main_thread.js", ++ "lib/internal/bootstrap/web/exposed-wildcard.js", ++ "lib/internal/bootstrap/web/exposed-window-or-worker.js", + "lib/internal/buffer.js", + "lib/internal/child_process.js", + "lib/internal/child_process/serialization.js", @@ -1352,11 +1387,11 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/dns/callback_resolver.js", + "lib/internal/dns/promises.js", + "lib/internal/dns/utils.js", -+ "lib/internal/dtrace.js", + "lib/internal/encoding.js", + "lib/internal/error_serdes.js", + "lib/internal/errors.js", + "lib/internal/event_target.js", ++ "lib/internal/events/symbols.js", + "lib/internal/file.js", + "lib/internal/fixed_queue.js", + "lib/internal/freelist.js", @@ -1365,10 +1400,11 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/fs/cp/cp.js", + "lib/internal/fs/dir.js", + "lib/internal/fs/promises.js", -+ "lib/internal/fs/read_file_context.js", ++ "lib/internal/fs/read/context.js", + "lib/internal/fs/recursive_watch.js", + "lib/internal/fs/rimraf.js", + "lib/internal/fs/streams.js", ++ "lib/internal/fs/sync.js", + "lib/internal/fs/sync_write_stream.js", + "lib/internal/fs/utils.js", + "lib/internal/fs/watchers.js", @@ -1384,7 +1420,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/legacy/processbinding.js", + "lib/internal/linkedlist.js", + "lib/internal/main/check_syntax.js", -+ "lib/internal/main/environment.js", ++ "lib/internal/main/embedding.js", + "lib/internal/main/eval_stdin.js", + "lib/internal/main/eval_string.js", + "lib/internal/main/inspect.js", @@ -1393,12 +1429,10 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/main/prof_process.js", + "lib/internal/main/repl.js", + "lib/internal/main/run_main_module.js", -+ "lib/internal/main/single_executable_application.js", + "lib/internal/main/test_runner.js", + "lib/internal/main/watch_mode.js", + "lib/internal/main/worker_thread.js", + "lib/internal/mime.js", -+ "lib/internal/modules/cjs/helpers.js", + "lib/internal/modules/cjs/loader.js", + "lib/internal/modules/esm/assert.js", + "lib/internal/modules/esm/create_dynamic_module.js", @@ -1406,6 +1440,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/modules/esm/formats.js", + "lib/internal/modules/esm/get_format.js", + "lib/internal/modules/esm/handle_process_exit.js", ++ "lib/internal/modules/esm/hooks.js", + "lib/internal/modules/esm/initialize_import_meta.js", + "lib/internal/modules/esm/load.js", + "lib/internal/modules/esm/loader.js", @@ -1413,8 +1448,11 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/modules/esm/module_map.js", + "lib/internal/modules/esm/package_config.js", + "lib/internal/modules/esm/resolve.js", ++ "lib/internal/modules/esm/shared_constants.js", + "lib/internal/modules/esm/translators.js", + "lib/internal/modules/esm/utils.js", ++ "lib/internal/modules/esm/worker.js", ++ "lib/internal/modules/helpers.js", + "lib/internal/modules/package_json_reader.js", + "lib/internal/modules/run_main.js", + "lib/internal/net.js", @@ -1438,6 +1476,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/process/esm_loader.js", + "lib/internal/process/execution.js", + "lib/internal/process/per_thread.js", ++ "lib/internal/process/permission.js", + "lib/internal/process/policy.js", + "lib/internal/process/pre_execution.js", + "lib/internal/process/promises.js", @@ -1486,8 +1525,10 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/test/transfer.js", + "lib/internal/test_runner/coverage.js", + "lib/internal/test_runner/harness.js", -+ "lib/internal/test_runner/mock.js", ++ "lib/internal/test_runner/mock/mock.js", ++ "lib/internal/test_runner/mock/mock_timers.js", + "lib/internal/test_runner/reporter/dot.js", ++ "lib/internal/test_runner/reporter/junit.js", + "lib/internal/test_runner/reporter/spec.js", + "lib/internal/test_runner/reporter/tap.js", + "lib/internal/test_runner/reporter/v8-serializer.js", @@ -1505,6 +1546,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "lib/internal/util/colors.js", + "lib/internal/util/comparisons.js", + "lib/internal/util/debuglog.js", ++ "lib/internal/util/embedding.js", + "lib/internal/util/inspect.js", + "lib/internal/util/inspector.js", + "lib/internal/util/iterable_weak_map.js", @@ -1600,7 +1642,9 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/cleanup_queue.cc", + "src/connect_wrap.cc", + "src/connection_wrap.cc", ++ "src/dataqueue/queue.cc", + "src/debug_utils.cc", ++ "src/encoding_binding.cc", + "src/env.cc", + "src/fs_event_wrap.cc", + "src/handle_wrap.cc", @@ -1614,6 +1658,8 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/js_stream.cc", + "src/json_utils.cc", + "src/js_udp_wrap.cc", ++ "src/json_parser.h", ++ "src/json_parser.cc", + "src/module_wrap.cc", + "src/node.cc", + "src/node_api.cc", @@ -1626,6 +1672,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/node_contextify.cc", + "src/node_credentials.cc", + "src/node_dir.cc", ++ "src/node_dotenv.cc", + "src/node_env_var.cc", + "src/node_errors.cc", + "src/node_external_reference.cc", @@ -1666,6 +1713,11 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/node_watchdog.cc", + "src/node_worker.cc", + "src/node_zlib.cc", ++ "src/permission/child_process_permission.cc", ++ "src/permission/fs_permission.cc", ++ "src/permission/inspector_permission.cc", ++ "src/permission/permission.cc", ++ "src/permission/worker_permission.cc", + "src/pipe_wrap.cc", + "src/process_wrap.cc", + "src/signal_wrap.cc", @@ -1688,22 +1740,28 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/util.cc", + "src/uv.cc", + "src/aliased_buffer.h", ++ "src/aliased_buffer-inl.h", + "src/aliased_struct.h", + "src/aliased_struct-inl.h", + "src/async_wrap.h", + "src/async_wrap-inl.h", + "src/base_object.h", + "src/base_object-inl.h", ++ "src/base_object_types.h", + "src/base64.h", + "src/base64-inl.h", ++ "src/blob_serializer_deserializer.h", ++ "src/blob_serializer_deserializer-inl.h", + "src/callback_queue.h", + "src/callback_queue-inl.h", + "src/cleanup_queue.h", + "src/cleanup_queue-inl.h", + "src/connect_wrap.h", + "src/connection_wrap.h", ++ "src/dataqueue/queue.h", + "src/debug_utils.h", + "src/debug_utils-inl.h", ++ "src/encoding_binding.h", + "src/env_properties.h", + "src/env.h", + "src/env-inl.h", @@ -1728,7 +1786,9 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/node_context_data.h", + "src/node_contextify.h", + "src/node_dir.h", ++ "src/node_dotenv.h", + "src/node_errors.h", ++ "src/node_exit_code.h", + "src/node_external_reference.h", + "src/node_file.h", + "src/node_file-inl.h", @@ -1766,13 +1826,17 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/node_stat_watcher.h", + "src/node_union_bytes.h", + "src/node_url.h", -+ "src/node_util.h", + "src/node_version.h", + "src/node_v8.h", + "src/node_v8_platform-inl.h", + "src/node_wasi.h", + "src/node_watchdog.h", + "src/node_worker.h", ++ "src/permission/child_process_permission.h", ++ "src/permission/fs_permission.h", ++ "src/permission/inspector_permission.h", ++ "src/permission/permission.h", ++ "src/permission/worker_permission.h", + "src/pipe_wrap.h", + "src/req_wrap.h", + "src/req_wrap-inl.h", @@ -1786,6 +1850,7 @@ index 0000000000000000000000000000000000000000..7d86765bf229275ba55d37a452ef2483 + "src/string_decoder-inl.h", + "src/string_search.h", + "src/tcp_wrap.h", ++ "src/timers.h", + "src/tracing/agent.h", + "src/tracing/node_trace_buffer.h", + "src/tracing/node_trace_writer.h", @@ -2050,10 +2115,10 @@ index 0000000000000000000000000000000000000000..4ab828dcbf322a9e28674e48c4a6868b +} diff --git a/tools/generate_gn_filenames_json.py b/tools/generate_gn_filenames_json.py new file mode 100755 -index 0000000000000000000000000000000000000000..616dc0c61ed4ea1bf2fb9e4768ba2ec566a83e42 +index 0000000000000000000000000000000000000000..7ccec2f2475d70751119309d52bfc9b94b6ac656 --- /dev/null +++ b/tools/generate_gn_filenames_json.py -@@ -0,0 +1,81 @@ +@@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +import json +import os @@ -2095,6 +2160,7 @@ index 0000000000000000000000000000000000000000..616dc0c61ed4ea1bf2fb9e4768ba2ec5 + node_source_blocklist = { + '<@(library_files)', + '<@(deps_files)', ++ '<@(node_sources)', + 'common.gypi', + '<(SHARED_INTERMEDIATE_DIR)/node_javascript.cc', + } @@ -2113,11 +2179,12 @@ index 0000000000000000000000000000000000000000..616dc0c61ed4ea1bf2fb9e4768ba2ec5 + lib_files = SearchFiles('lib', 'js') + out['library_files'] = filter_v8_files(lib_files) + out['library_files'] += filter_v8_files(node_gyp['variables']['deps_files']) ++ out['node_sources'] = node_gyp['variables']['node_sources'] + + blocklisted_sources = [ + f for f in node_lib_target['sources'] + if f not in node_source_blocklist] -+ out['node_sources'] = filter_v8_files(blocklisted_sources) ++ out['node_sources'] += filter_v8_files(blocklisted_sources) + + out['headers'] = [] + def add_headers(files, dest_dir): diff --git a/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch b/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch index 95417603869d1..fdc88a6542038 100644 --- a/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch +++ b/patches/node/build_modify_js2c_py_to_allow_injection_of_original-fs_and_custom_embedder_js.patch @@ -153,7 +153,7 @@ index 904fb6fa44d4f56fb67476e937edcbb797d78fe7..69078f3c2fcaab9f1b22d28c797a7e4c + // std::equal(prefix.begin(), prefix.end(), toCheck.begin())? + std::string original_fs_filename = filename; + std::replace(original_fs_filename.begin(), original_fs_filename.end(), "internal/fs/", "internal/original-fs/"); -+ ++ + std::function(const std::vector&)> ReadFileTransform = [](const char* path, size_t size, int* error) { + std::vector code = ReadFileSync(path, size, &error); + std::replace(code.begin(), code.end(), "require('fs')", "require('original-fs')");