pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

electron43: rebase on 43.8.0



Module Name:	pkgsrc-wip
Committed By:	kikadf <kikadf.01%gmail.com@localhost>
Pushed By:	kikadf
Date:		Tue Oct 20 10:27:08 2026 +0200
Changeset:	877fc060553d98911ee8bd0556f95f13c3e293f5

Modified Files:
	electron43/Makefile
	electron43/distinfo
	electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
	electron43/patches/patch-chrome_browser_process__singleton__posix.cc
	electron43/patches/patch-content_browser_child__process__launcher__helper__linux.cc
	electron43/patches/patch-electron_BUILD.gn
	electron43/patches/patch-electron_build_args_all.gn
	electron43/patches/patch-electron_default__app_default__app.ts
	electron43/patches/patch-electron_filenames.gni
	electron43/patches/patch-electron_lib_browser_api_app.ts
	electron43/patches/patch-electron_lib_browser_api_dialog.ts
	electron43/patches/patch-electron_lib_browser_api_menu-item-roles.ts
	electron43/patches/patch-electron_lib_browser_api_power-monitor.ts
	electron43/patches/patch-electron_lib_browser_rpc-server.ts
	electron43/patches/patch-electron_lib_renderer_api_clipboard.ts
	electron43/patches/patch-electron_node__modules_@sentry_cli_scripts_install.js
	electron43/patches/patch-electron_script_lib_config.py
	electron43/patches/patch-electron_script_lib_utils.js
	electron43/patches/patch-electron_script_pgo_collect-profile.js
	electron43/patches/patch-electron_script_spec-runner.js
	electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.cc
	electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.h
	electron43/patches/patch-electron_shell_app_electron__main__delegate.cc
	electron43/patches/patch-electron_shell_app_node__main.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__app.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.h
	electron43/patches/patch-electron_shell_browser_api_electron__api__crash__reporter.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.h
	electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.h
	electron43/patches/patch-electron_shell_browser_api_electron__api__screen.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.h
	electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.cc
	electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.h
	electron43/patches/patch-electron_shell_browser_api_process__metric.h
	electron43/patches/patch-electron_shell_browser_browser.cc
	electron43/patches/patch-electron_shell_browser_browser.h
	electron43/patches/patch-electron_shell_browser_browser__linux.cc
	electron43/patches/patch-electron_shell_browser_browser__process__impl.cc
	electron43/patches/patch-electron_shell_browser_browser__process__impl.h
	electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.cc
	electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.h
	electron43/patches/patch-electron_shell_browser_electron__browser__main__parts__posix.cc
	electron43/patches/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc
	electron43/patches/patch-electron_shell_browser_feature__list.cc
	electron43/patches/patch-electron_shell_browser_linux_x11__util.cc
	electron43/patches/patch-electron_shell_browser_native__window.cc
	electron43/patches/patch-electron_shell_browser_native__window__views.cc
	electron43/patches/patch-electron_shell_browser_native__window__views.h
	electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.cc
	electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.h
	electron43/patches/patch-electron_shell_browser_osr_osr__paint__event.h
	electron43/patches/patch-electron_shell_browser_osr_osr__video__consumer.cc
	electron43/patches/patch-electron_shell_browser_printing_printing__utils.cc
	electron43/patches/patch-electron_shell_browser_relauncher__linux.cc
	electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents.cc
	electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
	electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h
	electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
	electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.h
	electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.cc
	electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.h
	electron43/patches/patch-electron_shell_browser_ui_views_submenu__button.cc
	electron43/patches/patch-electron_shell_common_api_electron__api__clipboard.cc
	electron43/patches/patch-electron_shell_common_api_electron__api__native__image.cc
	electron43/patches/patch-electron_shell_common_api_electron__api__native__image.h
	electron43/patches/patch-electron_shell_common_api_electron__api__shared__texture.cc
	electron43/patches/patch-electron_shell_common_api_electron__api__testing.cc
	electron43/patches/patch-electron_shell_common_api_electron__bindings.cc
	electron43/patches/patch-electron_shell_common_electron__command__line.cc
	electron43/patches/patch-electron_shell_common_electron__command__line.h
	electron43/patches/patch-electron_shell_common_electron__paths.cc
	electron43/patches/patch-electron_shell_common_electron__paths.h
	electron43/patches/patch-electron_shell_common_gin__converters_osr__converter.cc
	electron43/patches/patch-electron_shell_common_gin__converters_std__converter.h
	electron43/patches/patch-electron_shell_common_node__bindings.cc
	electron43/patches/patch-electron_shell_common_node__bindings__linux.cc
	electron43/patches/patch-electron_shell_common_platform__util.h
	electron43/patches/patch-electron_shell_common_v8__oom__diagnostics.cc
	electron43/patches/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc
	electron43/patches/patch-electron_shell_services_node_node__service.cc
	electron43/patches/patch-electron_spec_api-app.spec.ts
	electron43/patches/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts
	electron43/patches/patch-electron_spec_api-browser-window.spec.ts
	electron43/patches/patch-electron_spec_api-clipboard.spec.ts
	electron43/patches/patch-electron_spec_api-content-tracing.spec.ts
	electron43/patches/patch-electron_spec_api-crash-reporter.spec.ts
	electron43/patches/patch-electron_spec_api-desktop-capturer.spec.ts
	electron43/patches/patch-electron_spec_api-dialog.spec.ts
	electron43/patches/patch-electron_spec_api-media-handler.spec.ts
	electron43/patches/patch-electron_spec_api-menu.spec.ts
	electron43/patches/patch-electron_spec_api-native-image.spec.ts
	electron43/patches/patch-electron_spec_api-net-log.spec.ts
	electron43/patches/patch-electron_spec_api-notification-dbus.spec.ts
	electron43/patches/patch-electron_spec_api-power-monitor.spec.ts
	electron43/patches/patch-electron_spec_api-process.spec.ts
	electron43/patches/patch-electron_spec_api-safe-storage.spec.ts
	electron43/patches/patch-electron_spec_api-screen.spec.ts
	electron43/patches/patch-electron_spec_api-shell.spec.ts
	electron43/patches/patch-electron_spec_api-subframe.spec.ts
	electron43/patches/patch-electron_spec_api-system-preferences.spec.ts
	electron43/patches/patch-electron_spec_api-tray.spec.ts
	electron43/patches/patch-electron_spec_api-utility-process.spec.ts
	electron43/patches/patch-electron_spec_api-web-contents.spec.ts
	electron43/patches/patch-electron_spec_chromium.spec.ts
	electron43/patches/patch-electron_spec_crash.spec.ts
	electron43/patches/patch-electron_spec_desktop-name.spec.ts
	electron43/patches/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js
	electron43/patches/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js
	electron43/patches/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js
	electron43/patches/patch-electron_spec_lib_spec-helpers.ts
	electron43/patches/patch-electron_spec_node.spec.ts
	electron43/patches/patch-electron_spec_spellchecker.spec.ts
	electron43/patches/patch-electron_spec_visibility-state.spec.ts
	electron43/patches/patch-electron_spec_webview.spec.ts
	electron43/patches/patch-net_dns_dns__config__service__posix.cc
	electron43/patches/patch-rollup_rust_bindings__napi_Cargo.toml
	electron43/patches/patch-rollup_rust_bindings__napi_src_lib.rs
	electron43/patches/patch-third__party_electron__node_deps_cares_unofficial.gni
	electron43/patches/patch-third__party_electron__node_deps_histogram_unofficial.gni
	electron43/patches/patch-third__party_electron__node_deps_openssl_unofficial.gni
	electron43/patches/patch-third__party_electron__node_deps_uv_src_unix_pipe.c
	electron43/patches/patch-third__party_electron__node_deps_uv_unofficial.gni
	electron43/patches/patch-third__party_electron__node_tools_generate__config__gypi.py
	electron43/patches/patch-ui_gfx_font__util.cc
	electron43/patches/patch-ui_gtk_gtk__compat.cc
	electron43/platform.mk
Added Files:
	electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h
	electron43/patches/patch-electron_lib_renderer_security-warnings.ts
	electron43/patches/patch-electron_npm_install.js
	electron43/patches/patch-third__party_electron__node_common.gypi
	electron43/patches/patch-third__party_electron__node_deps_cares_cares.gyp
	electron43/patches/patch-third__party_electron__node_deps_cares_config_netbsd_ares__config.h
	electron43/patches/patch-third__party_electron__node_deps_histogram_src_hdr__histogram.c
	electron43/patches/patch-third__party_electron__node_deps_uv_common.gypi
	electron43/patches/patch-third__party_electron__node_deps_uvwasi_include_wasi__serdes.h
	electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_memory.h
	electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-freebsd.cc
	electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-openbsd.cc
	electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-posix.cc
	electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_semaphore.cc
	electron43/patches/patch-third__party_electron__node_deps_v8_src_base_strings.h
	electron43/patches/patch-third__party_electron__node_deps_v8_src_codegen_arm_cpu-arm.cc
	electron43/patches/patch-third__party_electron__node_deps_v8_src_common_globals.h
	electron43/patches/patch-third__party_electron__node_deps_v8_src_compiler_turboshaft_int64-lowering-reducer.h
	electron43/patches/patch-third__party_electron__node_deps_v8_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc
	electron43/patches/patch-third__party_electron__node_deps_v8_tools_profiling_run-llprof.sh
	electron43/patches/patch-third__party_electron__node_node.gypi
	electron43/patches/patch-third__party_electron__node_src_compile__cache.cc
	electron43/patches/patch-third__party_electron__node_src_crypto_crypto__rsa.cc
	electron43/patches/patch-third__party_electron__node_src_inspector__agent.cc
	electron43/patches/patch-third__party_electron__node_src_node__platform.cc
	electron43/patches/patch-third__party_electron__node_src_node__platform.h
	electron43/patches/patch-third__party_electron__node_src_node__postmortem__metadata.cc
	electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_generator_make.py
	electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_xcode__emulation.py
	electron43/patches/patch-third__party_electron__node_tools_install.py
	electron43/patches/patch-third__party_electron__node_tools_v8__gypfiles_v8.gyp
	electron43/patches/patch-ui_shell__dialogs_select__file__dialog.h

Log Message:
electron43: rebase on 43.8.0

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=877fc060553d98911ee8bd0556f95f13c3e293f5

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 electron43/Makefile                                |   8 +-
 electron43/distinfo                                | 309 +++++++++++----------
 ...e__file__system__access__permission__context.cc |   6 +-
 ...me__file__system__access__permission__context.h |  17 ++
 ...tch-chrome_browser_process__singleton__posix.cc |   6 +-
 ...wser_child__process__launcher__helper__linux.cc |   6 +-
 electron43/patches/patch-electron_BUILD.gn         |  18 +-
 .../patches/patch-electron_build_args_all.gn       |   6 +-
 .../patch-electron_default__app_default__app.ts    |   6 +-
 electron43/patches/patch-electron_filenames.gni    |   6 +-
 .../patches/patch-electron_lib_browser_api_app.ts  |   6 +-
 .../patch-electron_lib_browser_api_dialog.ts       |   6 +-
 ...tch-electron_lib_browser_api_menu-item-roles.ts |   6 +-
 ...patch-electron_lib_browser_api_power-monitor.ts |   6 +-
 .../patch-electron_lib_browser_rpc-server.ts       |   6 +-
 .../patch-electron_lib_renderer_api_clipboard.ts   |   6 +-
 ...atch-electron_lib_renderer_security-warnings.ts |  16 ++
 ...on_node__modules_@sentry_cli_scripts_install.js |   6 +-
 electron43/patches/patch-electron_npm_install.js   |  16 ++
 .../patches/patch-electron_script_lib_config.py    |   6 +-
 .../patches/patch-electron_script_lib_utils.js     |   6 +-
 .../patch-electron_script_pgo_collect-profile.js   |   6 +-
 .../patches/patch-electron_script_spec-runner.js   |  12 +-
 ..._shell_app_electron__crash__reporter__client.cc |   6 +-
 ...n_shell_app_electron__crash__reporter__client.h |   6 +-
 ...-electron_shell_app_electron__main__delegate.cc |   6 +-
 .../patches/patch-electron_shell_app_node__main.cc |   8 +-
 ...lectron_shell_browser_api_electron__api__app.cc |   6 +-
 ...hell_browser_api_electron__api__base__window.cc |   6 +-
 ...shell_browser_api_electron__api__base__window.h |   6 +-
 ...l_browser_api_electron__api__crash__reporter.cc |   6 +-
 ...browser_api_electron__api__desktop__capturer.cc |   6 +-
 ...ll_browser_api_electron__api__power__monitor.cc |   6 +-
 ...ell_browser_api_electron__api__power__monitor.h |   6 +-
 ...ell_browser_api_electron__api__safe__storage.cc |   6 +-
 ...hell_browser_api_electron__api__safe__storage.h |   6 +-
 ...tron_shell_browser_api_electron__api__screen.cc |   6 +-
 ...owser_api_electron__api__system__preferences.cc |   6 +-
 ...rowser_api_electron__api__system__preferences.h |   6 +-
 ...ell_browser_api_electron__api__web__contents.cc |   6 +-
 ...hell_browser_api_electron__api__web__contents.h |   6 +-
 ...ch-electron_shell_browser_api_process__metric.h |   6 +-
 .../patch-electron_shell_browser_browser.cc        |   6 +-
 .../patches/patch-electron_shell_browser_browser.h |   6 +-
 .../patch-electron_shell_browser_browser__linux.cc |   8 +-
 ...lectron_shell_browser_browser__process__impl.cc |   6 +-
 ...electron_shell_browser_browser__process__impl.h |   6 +-
 ...shell_browser_electron__browser__main__parts.cc |   6 +-
 ..._shell_browser_electron__browser__main__parts.h |   6 +-
 ...rowser_electron__browser__main__parts__posix.cc |   6 +-
 ...api_runtime_electron__runtime__api__delegate.cc |   6 +-
 .../patch-electron_shell_browser_feature__list.cc  |   6 +-
 ...patch-electron_shell_browser_linux_x11__util.cc |   6 +-
 .../patch-electron_shell_browser_native__window.cc |   6 +-
 ...electron_shell_browser_native__window__views.cc |  58 ++--
 ...-electron_shell_browser_native__window__views.h |   6 +-
 ...shell_browser_osr_osr__host__display__client.cc |   6 +-
 ..._shell_browser_osr_osr__host__display__client.h |   6 +-
 ...-electron_shell_browser_osr_osr__paint__event.h |   6 +-
 ...ctron_shell_browser_osr_osr__video__consumer.cc |   6 +-
 ...ctron_shell_browser_printing_printing__utils.cc |   6 +-
 ...tch-electron_shell_browser_relauncher__linux.cc |   6 +-
 ..._shell_browser_ui_inspectable__web__contents.cc |   6 +-
 ..._browser_ui_inspectable__web__contents__view.cc |   6 +-
 ...ui_inspectable__web__contents__view__delegate.h |   6 +-
 ...l_browser_ui_views_electron__views__delegate.cc |   6 +-
 ...ll_browser_ui_views_electron__views__delegate.h |   6 +-
 ...ch-electron_shell_browser_ui_views_menu__bar.cc |  22 +-
 ...tch-electron_shell_browser_ui_views_menu__bar.h |   6 +-
 ...ctron_shell_browser_ui_views_submenu__button.cc |   6 +-
 ...on_shell_common_api_electron__api__clipboard.cc |   6 +-
 ...hell_common_api_electron__api__native__image.cc |   6 +-
 ...shell_common_api_electron__api__native__image.h |   6 +-
 ...ll_common_api_electron__api__shared__texture.cc |   6 +-
 ...tron_shell_common_api_electron__api__testing.cc |   6 +-
 ...electron_shell_common_api_electron__bindings.cc |   6 +-
 ...lectron_shell_common_electron__command__line.cc |   6 +-
 ...electron_shell_common_electron__command__line.h |   6 +-
 .../patch-electron_shell_common_electron__paths.cc |   6 +-
 .../patch-electron_shell_common_electron__paths.h  |   6 +-
 ..._shell_common_gin__converters_osr__converter.cc |   6 +-
 ...n_shell_common_gin__converters_std__converter.h |   6 +-
 .../patch-electron_shell_common_node__bindings.cc  |   6 +-
 ...-electron_shell_common_node__bindings__linux.cc |   6 +-
 .../patch-electron_shell_common_platform__util.h   |   6 +-
 ...h-electron_shell_common_v8__oom__diagnostics.cc |   6 +-
 ...api_electron__api__crash__reporter__renderer.cc |   6 +-
 ...h-electron_shell_services_node_node__service.cc |   6 +-
 .../patches/patch-electron_spec_api-app.spec.ts    |  93 ++++---
 ..._api-browser-window-ignore-mouse-events.spec.ts |   6 +-
 .../patch-electron_spec_api-browser-window.spec.ts |  68 ++---
 .../patch-electron_spec_api-clipboard.spec.ts      |  10 +-
 ...patch-electron_spec_api-content-tracing.spec.ts |  22 +-
 .../patch-electron_spec_api-crash-reporter.spec.ts |  74 ++---
 ...atch-electron_spec_api-desktop-capturer.spec.ts |  46 +--
 .../patches/patch-electron_spec_api-dialog.spec.ts |   6 +-
 .../patch-electron_spec_api-media-handler.spec.ts  |   8 +-
 .../patches/patch-electron_spec_api-menu.spec.ts   |  18 +-
 .../patch-electron_spec_api-native-image.spec.ts   |   8 +-
 .../patch-electron_spec_api-net-log.spec.ts        |  14 +-
 ...tch-electron_spec_api-notification-dbus.spec.ts |   6 +-
 .../patch-electron_spec_api-power-monitor.spec.ts  |   8 +-
 .../patch-electron_spec_api-process.spec.ts        |  26 +-
 .../patch-electron_spec_api-safe-storage.spec.ts   |  14 +-
 .../patches/patch-electron_spec_api-screen.spec.ts |  28 +-
 .../patches/patch-electron_spec_api-shell.spec.ts  |   6 +-
 .../patch-electron_spec_api-subframe.spec.ts       |   6 +-
 ...ch-electron_spec_api-system-preferences.spec.ts |   8 +-
 .../patches/patch-electron_spec_api-tray.spec.ts   |  20 +-
 ...patch-electron_spec_api-utility-process.spec.ts |  12 +-
 .../patch-electron_spec_api-web-contents.spec.ts   |  14 +-
 .../patches/patch-electron_spec_chromium.spec.ts   |  30 +-
 .../patches/patch-electron_spec_crash.spec.ts      |   8 +-
 .../patch-electron_spec_desktop-name.spec.ts       |   6 +-
 ...c_fixtures_api_safe-storage_decrypt-app_main.js |   6 +-
 ...c_fixtures_api_safe-storage_encrypt-app_main.js |   6 +-
 ...n_spec_fixtures_native-addon_uv-dlopen_index.js |   6 +-
 .../patch-electron_spec_lib_spec-helpers.ts        |  10 +-
 .../patches/patch-electron_spec_node.spec.ts       |   8 +-
 .../patch-electron_spec_spellchecker.spec.ts       |  10 +-
 .../patch-electron_spec_visibility-state.spec.ts   |   8 +-
 .../patches/patch-electron_spec_webview.spec.ts    |   8 +-
 .../patch-net_dns_dns__config__service__posix.cc   |   6 +-
 .../patch-rollup_rust_bindings__napi_Cargo.toml    |   4 +-
 .../patch-rollup_rust_bindings__napi_src_lib.rs    |   4 +-
 .../patch-third__party_electron__node_common.gypi  |  22 ++
 ...hird__party_electron__node_deps_cares_cares.gyp |  19 ++
 ...n__node_deps_cares_config_netbsd_ares__config.h |  24 ++
 ..._party_electron__node_deps_cares_unofficial.gni |  62 ++---
 ...ctron__node_deps_histogram_src_hdr__histogram.c |  19 ++
 ...ty_electron__node_deps_histogram_unofficial.gni |  22 +-
 ...arty_electron__node_deps_openssl_unofficial.gni |   6 +-
 ...third__party_electron__node_deps_uv_common.gypi |  17 ++
 ...d__party_electron__node_deps_uv_src_unix_pipe.c |   6 +-
 ...rd__party_electron__node_deps_uv_unofficial.gni |  93 ++++---
 ...ectron__node_deps_uvwasi_include_wasi__serdes.h |  22 ++
 ...ectron__node_deps_v8_src_base_platform_memory.h |  17 ++
 ...e_deps_v8_src_base_platform_platform-freebsd.cc |  35 +++
 ...e_deps_v8_src_base_platform_platform-openbsd.cc |  57 ++++
 ...ode_deps_v8_src_base_platform_platform-posix.cc |  66 +++++
 ...on__node_deps_v8_src_base_platform_semaphore.cc |  19 ++
 ...party_electron__node_deps_v8_src_base_strings.h |  16 ++
 ...ectron__node_deps_v8_src_codegen_arm_cpu-arm.cc |  28 ++
 ...rty_electron__node_deps_v8_src_common_globals.h |  16 ++
 ...rc_compiler_turboshaft_int64-lowering-reducer.h |  26 ++
 ...-cpp_absl_debugging_internal_elf__mem__image.cc |  17 ++
 ...ron__node_deps_v8_tools_profiling_run-llprof.sh |  17 ++
 .../patch-third__party_electron__node_node.gypi    |  16 ++
 ...ird__party_electron__node_src_compile__cache.cc |  15 +
 ..._party_electron__node_src_crypto_crypto__rsa.cc |  39 +++
 ...d__party_electron__node_src_inspector__agent.cc |  17 ++
 ...ird__party_electron__node_src_node__platform.cc |  47 ++++
 ...hird__party_electron__node_src_node__platform.h |  16 ++
 ...lectron__node_src_node__postmortem__metadata.cc |  19 ++
 ..._electron__node_tools_generate__config__gypi.py |   6 +-
 ...ron__node_tools_gyp_pylib_gyp_generator_make.py |  26 ++
 ...n__node_tools_gyp_pylib_gyp_xcode__emulation.py |  26 ++
 ...ch-third__party_electron__node_tools_install.py |  20 ++
 ..._party_electron__node_tools_v8__gypfiles_v8.gyp |  21 ++
 electron43/patches/patch-ui_gfx_font__util.cc      |   6 +-
 electron43/patches/patch-ui_gtk_gtk__compat.cc     |   6 +-
 .../patch-ui_shell__dialogs_select__file__dialog.h |  17 ++
 electron43/platform.mk                             |   2 +-
 163 files changed, 1661 insertions(+), 859 deletions(-)

diffs:
diff --git a/electron43/Makefile b/electron43/Makefile
index a5904777be..64b74128a0 100644
--- a/electron43/Makefile
+++ b/electron43/Makefile
@@ -21,12 +21,12 @@ AUDIOIO_VERSION=		150.0
 ROLLUP_VERSION=			4.60.4
 EB_DISTNAME=			${MAKE} -C ../../www/esbuild -V DISTNAME
 ESBUILD_VERSION=		${EB_DISTNAME:sh:C/^.*-//}
-NODE_VERSION=			24.21.0
+NODE_VERSION=			24.22.0
 NAN_VERSION=			675cefebca42410733da8a454c8d9391fcebfbc2
 SQUIRREL_VERSION=		0e5d146ba13101a1302d59ea6e6e0b3cace4ae38
 REACTIVEOBJC_VERSION=		74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76
 MANTLE_VERSION=			2a8e2123a3931038179ee06105c9e6ec336b12ea
-ENGFLOW_VERSION=		955335c30a752e9ef7bff375baab5e0819b6c00d
+#ENGFLOW_VERSION=		955335c30a752e9ef7bff375baab5e0819b6c00d
 LLVM_MV=			21
 
 GITHUB_SUBMODULES=		kikadf chromium-nb v${AUDIOIO_VERSION} pkgsrc/chromium-nb
@@ -35,7 +35,7 @@ GITHUB_SUBMODULES+=		nodejs nan ${NAN_VERSION} pkgsrc/nan
 GITHUB_SUBMODULES+=		Squirrel Squirrel.Mac ${SQUIRREL_VERSION} pkgsrc/squirrel.mac
 GITHUB_SUBMODULES+=		ReactiveCocoa ReactiveObjC ${REACTIVEOBJC_VERSION} pkgsrc/squirrel.mac/vendor/ReactiveObjC
 GITHUB_SUBMODULES+=		Mantle Mantle ${MANTLE_VERSION} pkgsrc/squirrel.mac/vendor/Mantle
-GITHUB_SUBMODULES+=		EngFlow reclient-configs ${ENGFLOW_VERSION} pkgsrc/engflow-reclient-configs
+#GITHUB_SUBMODULES+=		EngFlow reclient-configs ${ENGFLOW_VERSION} pkgsrc/engflow-reclient-configs
 GITHUB_SUBMODULES+=		evanw esbuild v${ESBUILD_VERSION} pkgsrc/esbuild
 GITHUB_SUBMODULES+=		rollup rollup v${ROLLUP_VERSION} pkgsrc/rollup
 CARGO_WRKSRC=			${WRKSRC}/rollup/rust
@@ -276,7 +276,7 @@ post-extract:
 	${MV} ${WRKDIR}/temp/pkgsrc/electron_node ${WRKSRC}/third_party/electron_node
 	${MV} ${WRKDIR}/temp/pkgsrc/nan ${WRKSRC}/third_party/nan
 	${MV} ${WRKDIR}/temp/pkgsrc/squirrel.mac ${WRKSRC}/third_party/squirrel.mac
-	${MV} ${WRKDIR}/temp/pkgsrc/engflow-reclient-configs ${WRKSRC}/third_party/engflow-reclient-configs
+#	${MV} ${WRKDIR}/temp/pkgsrc/engflow-reclient-configs ${WRKSRC}/third_party/engflow-reclient-configs
 	${MV} ${WRKDIR}/temp/pkgsrc/rollup ${WRKSRC}/rollup
 	${MV} ${WRKDIR}/temp/pkgsrc/esbuild ${WRKSRC}/esbuild
 	${MV} ${WRKDIR}/temp ${WRKSRC}/electron
diff --git a/electron43/distinfo b/electron43/distinfo
index cc5b96e3d7..5fbb57bf52 100644
--- a/electron43/distinfo
+++ b/electron43/distinfo
@@ -1,8 +1,5 @@
 $NetBSD$
 
-BLAKE2s (EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d.tar.gz) = 7d5feed48130ce5af89388957b252ff1d20eb0e94097d06a7de9cc206315a146
-SHA512 (EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d.tar.gz) = f01a5718c33196ffbb0089c16a7729360533be8953643879a4af9fde08bcea9acc6bc65c249875c708277564ad4f5b1b488f3ad333d299a6c69db6aff84de220
-Size (EngFlow-reclient-configs-955335c30a752e9ef7bff375baab5e0819b6c00d.tar.gz) = 13014 bytes
 BLAKE2s (Mantle-Mantle-2a8e2123a3931038179ee06105c9e6ec336b12ea.tar.gz) = 6a72ade2488aa0e55cafd31c980dea215c930a45618a7727c9e194356b378b1a
 SHA512 (Mantle-Mantle-2a8e2123a3931038179ee06105c9e6ec336b12ea.tar.gz) = b6e4ba3749c90163922ccbcac741fccc08004816f185c65c8462678ed7041fc57bb6537d12d020c714a72c5c9832674bf771b899b57aaefbadd697329b55adc8
 Size (Mantle-Mantle-2a8e2123a3931038179ee06105c9e6ec336b12ea.tar.gz) = 81605 bytes
@@ -114,12 +111,12 @@ Size (dragonbox_ecma-0.1.12.crate) = 46796 bytes
 BLAKE2s (either-1.15.0.crate) = 7c84d6a0e5f2b2ab835c6a5a557e2b80af4b533e6d792d546a42ac2f5b846e22
 SHA512 (either-1.15.0.crate) = d70c34d903e8e5088fd065a6da6673eadb569a20af183fa9bd6418940b37c8c2a777c44dbdab1b9960890cba5cb7464b805667ac42f4e05499ddcd4277d24e3f
 Size (either-1.15.0.crate) = 20114 bytes
-BLAKE2s (electron43-43.7.9.tar.gz) = 1ed0df484b7830f882b9951e391295ac755c24c9c33dd450ed1c7a88d93097b3
-SHA512 (electron43-43.7.9.tar.gz) = 6896477671bd228dd8de40e011f2621b7d8464e3471217661d7c2fc6a5417689a11bddc2148a5fc385e72b444c2cef9357ffe0d1070f42c83af7f5e6eb054e36
-Size (electron43-43.7.9.tar.gz) = 20782800 bytes
-BLAKE2s (electron43-node_modules-43.7.9.tar.gz) = b2ccea82ffbd0a522e333ac115a7f11781a1985f1a920e5a4ca3e6577e31366b
-SHA512 (electron43-node_modules-43.7.9.tar.gz) = 9774cf96a211ff3689e51fdcf3d394ff032f5530f2b79904b3cf2782dd25b4d09a7ae7bd561652e7cba2a14e08fca83701cfec9de78aedce53100cf0a39059d1
-Size (electron43-node_modules-43.7.9.tar.gz) = 59447409 bytes
+BLAKE2s (electron43-43.8.0.tar.gz) = d6269c91ba4f0a8f7e29aa6aedd7c0f02d857fbcf8ec4fc4cb78dd7a5e93f94c
+SHA512 (electron43-43.8.0.tar.gz) = d98f59192974108f8b2438f7b6887d20d01f35be66f519df66c709031ef848622948ec34d926f75c80e270d32d94fd254bd0e5009046839c8fba2f702a5c4a34
+Size (electron43-43.8.0.tar.gz) = 20880984 bytes
+BLAKE2s (electron43-node_modules-43.8.0.tar.gz) = 9d21eae518df06013b399b0f6bc1bc3dcf5a4869e25d13462497e238ab0f9e40
+SHA512 (electron43-node_modules-43.8.0.tar.gz) = 8a16d8a48d5ca0c100a0b332b897d36c147a9179993fbb0d3048afd5f3733a41bce3edba6dff9e1c01cad075eefa1132287fca36fe1600b8ee6460e960f396d0
+Size (electron43-node_modules-43.8.0.tar.gz) = 59246465 bytes
 BLAKE2s (equivalent-1.0.2.crate) = ecc976834a05d886b02d4691be4fa79ccdc19070d8548d36b740fe8f3f137bd6
 SHA512 (equivalent-1.0.2.crate) = 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
 Size (equivalent-1.0.2.crate) = 7419 bytes
@@ -279,9 +276,9 @@ Size (new_debug_unreachable-1.0.6.crate) = 2582 bytes
 BLAKE2s (nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2.tar.gz) = a0b2f536757207f66940b0257c5f0ee6e2178d70dd12dfb8d20320e1273b76bc
 SHA512 (nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2.tar.gz) = dc611da5992e5e203d60ff224cd8b694485755a4bd9f1cb21e039ef2065bbcb1bd4b61b4f2bf609fb45b953c0a40f53585c6541db1418331dfb75661eac25294
 Size (nodejs-nan-675cefebca42410733da8a454c8d9391fcebfbc2.tar.gz) = 111323 bytes
-BLAKE2s (nodejs-node-v24.21.0.tar.gz) = e4048b43bde589efa47a29afe1839583190b02c82afd7ab9d2868350f8ebb21c
-SHA512 (nodejs-node-v24.21.0.tar.gz) = 7542ba1d1f14fa488c46477c048c621c2d38a79c9b2a4efaba2be9bf7b4d929541107a4de40b68da3b86efc5a31bb25878ebb707372614402ee7ee41183b7a62
-Size (nodejs-node-v24.21.0.tar.gz) = 129712318 bytes
+BLAKE2s (nodejs-node-v24.22.0.tar.gz) = 7eb4d4da4f1f7db0f53678e62e4f782ce1d00abce1fe5eb4e009ec8b5680062e
+SHA512 (nodejs-node-v24.22.0.tar.gz) = 378d06d131ff2bb10c08b71e55a1544c927ece007670babe906e2fe856ec13205b0d1ddf17afb0e65cb6a26faf8f4052243409a45715be9f8dacdadb385bd48f
+Size (nodejs-node-v24.22.0.tar.gz) = 130023957 bytes
 BLAKE2s (nohash-hasher-0.2.0.crate) = 48e61ae7c7a2c7cc641828b9833364b6227180d0cb0b1463b33b4152ca374b9b
 SHA512 (nohash-hasher-0.2.0.crate) = b1b754262471ac1fb074559c264321f8f08c46c55752187f51a93cdc73509551b43008751ff9db4aa5b47fbfdda783904f5492349546ad14856fe485ccec55d8
 Size (nohash-hasher-0.2.0.crate) = 8051 bytes
@@ -648,131 +645,163 @@ Size (zerovec-derive-0.11.3.crate) = 22115 bytes
 BLAKE2s (zmij-1.0.21.crate) = a2d1e7214230c8f4e8c946d28215765c131da3aac89f1001daf534335307648e
 SHA512 (zmij-1.0.21.crate) = a488f11ec8721ddfe42e61d028a128818551de8fccd69d7824504e4ae2efccdc38f716fa5a10ef4de07a8a087e75e819c4a1e0790817e8539b5db697bde14585
 Size (zmij-1.0.21.crate) = 26665 bytes
-SHA1 (patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc) = cb3a369e8f3a301c471c21c5bea79927fb6b8f1e
-SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 36547d0d5e402d024e8fb747914e3f182cc43946
-SHA1 (patch-content_browser_child__process__launcher__helper__linux.cc) = a4d9c366e1f332360b82bfee2ad94bbc5570966d
-SHA1 (patch-electron_BUILD.gn) = f9db129abbe651507986f7694ec8d8a0111cde6c
-SHA1 (patch-electron_build_args_all.gn) = 2714d4d17f1398e75979e79b89a039002013e673
-SHA1 (patch-electron_default__app_default__app.ts) = 7e563358dcac2757faf00251a3bcc1c1df6e419f
-SHA1 (patch-electron_filenames.gni) = c764c1ed68bb8a14d68e3cc7511067c812beca4e
-SHA1 (patch-electron_lib_browser_api_app.ts) = 009f9a0326bf6ede95a00aabb6653c4433425a79
-SHA1 (patch-electron_lib_browser_api_dialog.ts) = 22d9c5d428347487f1168b4f000848afc7d3e544
-SHA1 (patch-electron_lib_browser_api_menu-item-roles.ts) = 479901d4e00efa5946a3106c46555bb31574938a
-SHA1 (patch-electron_lib_browser_api_power-monitor.ts) = 7d6da66672964cac7cdb77e28a2eecb563212fcd
-SHA1 (patch-electron_lib_browser_rpc-server.ts) = 350a5627419fa959069a6735a97048cd76e5a70f
-SHA1 (patch-electron_lib_renderer_api_clipboard.ts) = ebeae1a1631d98e0303d71f536a0c3a4f3704de0
-SHA1 (patch-electron_node__modules_@sentry_cli_scripts_install.js) = 4dca0832ae346d25b063bc66dc9c8b6e948f75d2
-SHA1 (patch-electron_script_lib_config.py) = 2f5721bdfd25689de2deef98f28ac440117f79d8
-SHA1 (patch-electron_script_lib_utils.js) = 360e4b8d5c44d6eabbe6cf66f24bde41d27b0495
-SHA1 (patch-electron_script_pgo_collect-profile.js) = 5471131b2915f56274c394dd6439541845f87ba5
-SHA1 (patch-electron_script_spec-runner.js) = 368c3b96a0f6806e9886fdd9c42d0816b5a0c876
-SHA1 (patch-electron_shell_app_electron__crash__reporter__client.cc) = 82b02c525baccb7a130613c915ebdb008e6ca6b1
-SHA1 (patch-electron_shell_app_electron__crash__reporter__client.h) = 410f7f3da291ccabaf3789f0628d0c7b54e99e3f
-SHA1 (patch-electron_shell_app_electron__main__delegate.cc) = 63f4edb201f20fc771de5e4656bb76cf0547d441
-SHA1 (patch-electron_shell_app_node__main.cc) = f720e1c4dbb5ad181118f81e820f0703fca5c790
-SHA1 (patch-electron_shell_browser_api_electron__api__app.cc) = 83758327ee6b70439ce3ac85293cba479f3d5546
-SHA1 (patch-electron_shell_browser_api_electron__api__base__window.cc) = 91bed83d921559d7d76b95185ddb392ab974086f
-SHA1 (patch-electron_shell_browser_api_electron__api__base__window.h) = 67bd3c01f2b5763c04b9961b97f928fb6bffbf15
-SHA1 (patch-electron_shell_browser_api_electron__api__crash__reporter.cc) = b4191ad5792611104bb58d20fc5a46eb00cd0e5e
-SHA1 (patch-electron_shell_browser_api_electron__api__desktop__capturer.cc) = a4464c1cd8cede3c0bbceeab525f1e6d31887115
-SHA1 (patch-electron_shell_browser_api_electron__api__power__monitor.cc) = 49e383f93eac12a34180e8816d1c799f7fe31467
-SHA1 (patch-electron_shell_browser_api_electron__api__power__monitor.h) = 759f893bc31230282a6498d39a2ca3152b51499b
-SHA1 (patch-electron_shell_browser_api_electron__api__safe__storage.cc) = 7ef3749836c497a507ca91d9efa6b6ca1175d0b6
-SHA1 (patch-electron_shell_browser_api_electron__api__safe__storage.h) = 9b27e9ae8f16590741cff2214bde7fb7926a6ff9
-SHA1 (patch-electron_shell_browser_api_electron__api__screen.cc) = 929a5dd128cd8a52b69d06b8d28a9b5108c1f6f7
-SHA1 (patch-electron_shell_browser_api_electron__api__system__preferences.cc) = 5f144246fc5b9d1fa8eb12003eb58b77c4b650b9
-SHA1 (patch-electron_shell_browser_api_electron__api__system__preferences.h) = fe2a51afca0ed771ede03e4ecb6944bad0f390c8
-SHA1 (patch-electron_shell_browser_api_electron__api__web__contents.cc) = 6d3cfc3474697fd5ade9fe1e572864820fd9d7fc
-SHA1 (patch-electron_shell_browser_api_electron__api__web__contents.h) = 13b392206b66d3913ca6a7de66d72b13537dd712
-SHA1 (patch-electron_shell_browser_api_process__metric.h) = ea310ec0533a4f6f727831f272208ef8fe6fa8c9
-SHA1 (patch-electron_shell_browser_browser.cc) = 72b47af283474c4d7e7f985347b0dd9f446e5db9
-SHA1 (patch-electron_shell_browser_browser.h) = 8a0fb48ee6e6a76833ecf46d7c30e9886044e994
-SHA1 (patch-electron_shell_browser_browser__linux.cc) = c1a6555f68dd11ba4f5bbb244cec075cd7fccfa1
-SHA1 (patch-electron_shell_browser_browser__process__impl.cc) = 109ee353256b7fdfdf4f98300b75f9fd68637d70
-SHA1 (patch-electron_shell_browser_browser__process__impl.h) = 85bffae588144338987610d36446394529efa6bf
-SHA1 (patch-electron_shell_browser_electron__browser__main__parts.cc) = 93706f91e465e06bb4f9c4523638132fd7481507
-SHA1 (patch-electron_shell_browser_electron__browser__main__parts.h) = bb6c9b288d5e1dd92cb21f2b93e33f1f5f925f7c
-SHA1 (patch-electron_shell_browser_electron__browser__main__parts__posix.cc) = 1b3d7dcb10bb3cbd4a64bdf3c6603cf3b7e5be31
-SHA1 (patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc) = db4a16e4b11c133e16a5704802cbce0cd67b613d
-SHA1 (patch-electron_shell_browser_feature__list.cc) = f39fac6b671a92fad80e4a3617cd0ee2769e544f
-SHA1 (patch-electron_shell_browser_linux_x11__util.cc) = 12dc0b71ea5ab4299a948ae02d63cdab53b09856
-SHA1 (patch-electron_shell_browser_native__window.cc) = 8ae6b9615dd672c5481b17769d50bc490553e846
-SHA1 (patch-electron_shell_browser_native__window__views.cc) = 713eecf9cf058d088ebb30938e0c4702b6908557
-SHA1 (patch-electron_shell_browser_native__window__views.h) = 982a80d064b912ffd06ce14ce08039ebeb0583c2
-SHA1 (patch-electron_shell_browser_osr_osr__host__display__client.cc) = 8b1b5609255ddf34447c0231bd0be25e3a7c416c
-SHA1 (patch-electron_shell_browser_osr_osr__host__display__client.h) = 2a6fed08bb15fee8d865585c968c7bd81434478a
-SHA1 (patch-electron_shell_browser_osr_osr__paint__event.h) = 61387e0e0d56229f8e1377ad990513843eb44282
-SHA1 (patch-electron_shell_browser_osr_osr__video__consumer.cc) = a6b2f1a8fe112308823099d9ae4cd96abba8fc61
-SHA1 (patch-electron_shell_browser_printing_printing__utils.cc) = a754040bfbc439e94ae362b13880a8455a681fa6
-SHA1 (patch-electron_shell_browser_relauncher__linux.cc) = 6f0be5ce6e11614b343c710df2b06704a326477a
-SHA1 (patch-electron_shell_browser_ui_inspectable__web__contents.cc) = 578cb448e5c36568848545b1f30aa1dfcad09008
-SHA1 (patch-electron_shell_browser_ui_inspectable__web__contents__view.cc) = 862d54cf62ab96d42001a27deab20fb01c5ac038
-SHA1 (patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h) = 6c9f026da7caf093ad076a27da45314914678701
-SHA1 (patch-electron_shell_browser_ui_views_electron__views__delegate.cc) = 678f52adf72bbdb665906d1f6d4a7f3a6122cb7f
-SHA1 (patch-electron_shell_browser_ui_views_electron__views__delegate.h) = 68b4d3709f97797989c665724746e46584a2fc2e
-SHA1 (patch-electron_shell_browser_ui_views_menu__bar.cc) = 2e5485f89c19f30cb49f98aefd07fe956857161d
-SHA1 (patch-electron_shell_browser_ui_views_menu__bar.h) = 54e2c50285caa3c552a2bdfb499a61d447f24f2c
-SHA1 (patch-electron_shell_browser_ui_views_submenu__button.cc) = 08d4ea77fc07081112ab15a06347e106df32a511
-SHA1 (patch-electron_shell_common_api_electron__api__clipboard.cc) = d45484cce5737eaac904d847af964bd962232a4e
-SHA1 (patch-electron_shell_common_api_electron__api__native__image.cc) = 5e7f53d0ba1bae862ddfa669577fb73b0b834a51
-SHA1 (patch-electron_shell_common_api_electron__api__native__image.h) = b5bad04a0fa76a16ae63244d0fa3985ce6cb657a
-SHA1 (patch-electron_shell_common_api_electron__api__shared__texture.cc) = cee194138203d7684acb715ea6a7721a3fd33aa0
-SHA1 (patch-electron_shell_common_api_electron__api__testing.cc) = ab512242650a1083ee12c5be38bfbe35eb18e142
-SHA1 (patch-electron_shell_common_api_electron__bindings.cc) = a43484adbd0c3fa5d998e2ab2718b95a6772ce08
-SHA1 (patch-electron_shell_common_electron__command__line.cc) = 79f09959bf366d8ab7e95dd73567eddce2701990
-SHA1 (patch-electron_shell_common_electron__command__line.h) = cca9455db2fcee0e004f3ba910e1c387880cde08
-SHA1 (patch-electron_shell_common_electron__paths.cc) = 72eb3fcad8369660cb173e4b52aa368fc17ab8cb
-SHA1 (patch-electron_shell_common_electron__paths.h) = 45ed66b6043d8db4bdd9dd277d56522824a14a78
-SHA1 (patch-electron_shell_common_gin__converters_osr__converter.cc) = 1304c38463091f05e41bf7194a0cae6986ea3efc
-SHA1 (patch-electron_shell_common_gin__converters_std__converter.h) = 0bd3e4107ae4151a75b13d06612c417009e5415b
-SHA1 (patch-electron_shell_common_node__bindings.cc) = ad39325c6d7ad250235a2fbabf1e24d650e6f6c6
-SHA1 (patch-electron_shell_common_node__bindings__linux.cc) = be1bec475a6eb195cd1523650e1a13cc5e055ad7
-SHA1 (patch-electron_shell_common_platform__util.h) = 43547360c538b5d5fad4679f81d98486fd397a85
-SHA1 (patch-electron_shell_common_v8__oom__diagnostics.cc) = a6f6ec7a448b27ae23acc6239245f64c54098678
-SHA1 (patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc) = 09fa5ebc3622735f6e91827c7e9b2a9a23d02ea4
-SHA1 (patch-electron_shell_services_node_node__service.cc) = 32637da9ac950e127b2b7c1f10cc37b23f0c7390
-SHA1 (patch-electron_spec_api-app.spec.ts) = 21e26cdc3b93d320c3f8cf5303a194d951e66b58
-SHA1 (patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts) = 3da69e5e5c51c99781098730f2ee366edd3affba
-SHA1 (patch-electron_spec_api-browser-window.spec.ts) = 6a307c7ac9abae1beee2cadd54118e615ee8cfc0
-SHA1 (patch-electron_spec_api-clipboard.spec.ts) = a9a223347d9c479c0377cb1d8d6e960de8f35091
-SHA1 (patch-electron_spec_api-content-tracing.spec.ts) = e8d229bb2b1174ff38c5a45812446b6f48a1baa2
-SHA1 (patch-electron_spec_api-crash-reporter.spec.ts) = 886af94b906f60fc0f4b64f0f410d5c4365d7650
-SHA1 (patch-electron_spec_api-desktop-capturer.spec.ts) = 464bfe18138594b875e8869c9d403bd34b600c79
-SHA1 (patch-electron_spec_api-dialog.spec.ts) = 8ade6543a7139cdf18e57efcc8db2f0546723999
-SHA1 (patch-electron_spec_api-media-handler.spec.ts) = 2690d9f913567a51a241d22deec8dd92458379c3
-SHA1 (patch-electron_spec_api-menu.spec.ts) = 243775463bc2023c6b99ef6268e6f7df59242179
-SHA1 (patch-electron_spec_api-native-image.spec.ts) = 2002257d327da4385cb8ba2be1d1470e7870e0f0
-SHA1 (patch-electron_spec_api-net-log.spec.ts) = 18ee508ea93525ae1cf29fdcca6c6acc9662a692
-SHA1 (patch-electron_spec_api-notification-dbus.spec.ts) = eaf8464f730ccbdc7c79749fc3f7c44f077c9b3e
-SHA1 (patch-electron_spec_api-power-monitor.spec.ts) = 15cd50dd379deb238e543e9638fab0e92564fac3
-SHA1 (patch-electron_spec_api-process.spec.ts) = a5350d6d273381aa767f80e038b4eaf6dd42a513
-SHA1 (patch-electron_spec_api-safe-storage.spec.ts) = 42db5c5d8dbcccd9461963492fe5746451ed2731
-SHA1 (patch-electron_spec_api-screen.spec.ts) = 89521380f1aaa49628c43cb05a33398640879768
-SHA1 (patch-electron_spec_api-shell.spec.ts) = ed6f873aa9bced5f19c2b2b743d82c134d6e98e7
-SHA1 (patch-electron_spec_api-subframe.spec.ts) = 6efba409400b8a047ef31e727a2fc1561da6115a
-SHA1 (patch-electron_spec_api-system-preferences.spec.ts) = 52aa82010d19d7b0ab3c176a943e2197e311e575
-SHA1 (patch-electron_spec_api-tray.spec.ts) = 2fbc782c1fd916fc1b529c0eaf473acfeb88520d
-SHA1 (patch-electron_spec_api-utility-process.spec.ts) = 17f2b99def7aa2f4da3d007538c0bbca0bb7d74c
-SHA1 (patch-electron_spec_api-web-contents.spec.ts) = 03ea289ce64a33da9ea13ef20b90dd2cb14c574e
-SHA1 (patch-electron_spec_chromium.spec.ts) = c5de4e0691af45fbf1167a32cbe272ef94e95864
-SHA1 (patch-electron_spec_crash.spec.ts) = bd9bc090fd797cf87c60bb7c9691c42b00da91a6
-SHA1 (patch-electron_spec_desktop-name.spec.ts) = 7d092578da42b311a6c1690610a98a982ddd9d65
-SHA1 (patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js) = b895bd7fb0232a83aaa15d41e5e3d92e53a99782
-SHA1 (patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js) = 30a5ec6cd6c2b72174a452d81d1ba1a62937572c
-SHA1 (patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js) = 1d9e5cdad5467d9e5e48c792fb5744a65e84330c
-SHA1 (patch-electron_spec_lib_spec-helpers.ts) = 62fd6b6b013360e5104e0482fff0ba54ae190cb9
-SHA1 (patch-electron_spec_node.spec.ts) = e668d63219c7fd8296d9472ca26bc109b162ab75
-SHA1 (patch-electron_spec_spellchecker.spec.ts) = 17ccb155ec0498edbc530da089c3427dc0fc21e4
-SHA1 (patch-electron_spec_visibility-state.spec.ts) = 1a11ae6f9d2ebe5e78b62f58840f4a0cb87207c2
-SHA1 (patch-electron_spec_webview.spec.ts) = e63a886b4624c37cf14250dd525731003cb11ed8
-SHA1 (patch-net_dns_dns__config__service__posix.cc) = 76de643a3421c0954265e5afa4dddded3bc47540
-SHA1 (patch-rollup_rust_bindings__napi_Cargo.toml) = 6a5074ac4cb3c094b5721bcdcee47fc75bc19423
-SHA1 (patch-rollup_rust_bindings__napi_src_lib.rs) = 064e4c9c76b33a88907d3ee2229ce4bcb07f1a8c
-SHA1 (patch-third__party_electron__node_deps_cares_unofficial.gni) = e79c6ad50d841ffac4c814ce1a950d35f1dbd966
-SHA1 (patch-third__party_electron__node_deps_histogram_unofficial.gni) = e59cfb4a409789f73e1480c87f3b126397a9e934
-SHA1 (patch-third__party_electron__node_deps_openssl_unofficial.gni) = d8e39606897dd307ce6f6aaad1809812c5d42a42
-SHA1 (patch-third__party_electron__node_deps_uv_src_unix_pipe.c) = 222820401799a208cbeeb323e446ee578fa58e02
-SHA1 (patch-third__party_electron__node_deps_uv_unofficial.gni) = 4b84a766b7dc912f985e2a9089f29eda3df3e884
-SHA1 (patch-third__party_electron__node_tools_generate__config__gypi.py) = 4a7fe62b07b69104e7cc215bcada3d013ed0fc3c
-SHA1 (patch-ui_gfx_font__util.cc) = cbec735158349cd0a81e167c2a3fa4151f032a1b
-SHA1 (patch-ui_gtk_gtk__compat.cc) = 0d0afa082c866f40434463a193ff7bfd938b09f1
+SHA1 (patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc) = 91cb2e3091d1ed01ca166dbb90d412eef8d21b83
+SHA1 (patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h) = def95b9e162055a15b65347d599e7a5384aad054
+SHA1 (patch-chrome_browser_process__singleton__posix.cc) = 7ff612beb2433d445e33ffcda970dc962a513778
+SHA1 (patch-content_browser_child__process__launcher__helper__linux.cc) = 5171c62ce1f241f087b9caa9fbf27831a8808d48
+SHA1 (patch-electron_BUILD.gn) = 0db727c26a49940598733519c70fa00fea25b3c1
+SHA1 (patch-electron_build_args_all.gn) = 2197c9876b57caf67ea135a30e043c231d2a9ee0
+SHA1 (patch-electron_default__app_default__app.ts) = 08456d42b4739416b389a065cf8ab88d9321b10a
+SHA1 (patch-electron_filenames.gni) = 8407ac036c52111fac6e754aa276e21c51c34e13
+SHA1 (patch-electron_lib_browser_api_app.ts) = 9eccb166333805515cda1254ed73885a6992da11
+SHA1 (patch-electron_lib_browser_api_dialog.ts) = 5021b1bd7c5c4de13e73c0e9b3f66df50834bb56
+SHA1 (patch-electron_lib_browser_api_menu-item-roles.ts) = dd5ad5fb3923fd25847a1802af11573e4f1b1db4
+SHA1 (patch-electron_lib_browser_api_power-monitor.ts) = 0d26e8df4e8a99577018a9d12da5008ac8adb46e
+SHA1 (patch-electron_lib_browser_rpc-server.ts) = 787b839203ced50116e64eea789675b19cdd2f67
+SHA1 (patch-electron_lib_renderer_api_clipboard.ts) = 65754745d6d225d4857a84f864c567e2d2941b6f
+SHA1 (patch-electron_lib_renderer_security-warnings.ts) = d7840d9f309ee8b0f763ea0f653e637fa29a9d54
+SHA1 (patch-electron_node__modules_@sentry_cli_scripts_install.js) = 4e3162acc3127d7aa86a05aaab345a74155ead3c
+SHA1 (patch-electron_npm_install.js) = e4bf5313bed11bbe7f341d072226b8bf47fd50af
+SHA1 (patch-electron_script_lib_config.py) = 02d947664e4d9a3696cf6d3b128d3c0ad25a184e
+SHA1 (patch-electron_script_lib_utils.js) = 950f6f20f4b802b662d75f8d7bb5139a395615c1
+SHA1 (patch-electron_script_pgo_collect-profile.js) = 5db864cf9889172d58074cfc603f9de84e8c09b5
+SHA1 (patch-electron_script_spec-runner.js) = e2a95f651a6b501d1b058a05958af29be663fd11
+SHA1 (patch-electron_shell_app_electron__crash__reporter__client.cc) = 3be7c72d7adb395b25a9a2628e1a4d2cac35faba
+SHA1 (patch-electron_shell_app_electron__crash__reporter__client.h) = 7cf2acf1662de6fabb439832d58d7a3b364ee3c7
+SHA1 (patch-electron_shell_app_electron__main__delegate.cc) = ea6a6425b78f3d956a617747e535cd124995d5ad
+SHA1 (patch-electron_shell_app_node__main.cc) = baaa71ada2fec494c720e62460503d6fa627239d
+SHA1 (patch-electron_shell_browser_api_electron__api__app.cc) = 889e40b2267af801f8e6fc02a7b335f2c02c3c6d
+SHA1 (patch-electron_shell_browser_api_electron__api__base__window.cc) = 1ac869a219dbfe30d54c49970a3e53d1a6026eb2
+SHA1 (patch-electron_shell_browser_api_electron__api__base__window.h) = c841f5f5106b591a777b4d0301a6d18f803115e4
+SHA1 (patch-electron_shell_browser_api_electron__api__crash__reporter.cc) = 72ecc7e038b5b5b25f637560d5122d8a83a5503a
+SHA1 (patch-electron_shell_browser_api_electron__api__desktop__capturer.cc) = 9b55a8fda267c8afd03336179bdfec9947c09bd5
+SHA1 (patch-electron_shell_browser_api_electron__api__power__monitor.cc) = 185351a7ff334df1e49ba29a30e149cfb304a4cd
+SHA1 (patch-electron_shell_browser_api_electron__api__power__monitor.h) = 0c794cb7f03e3d7c8ff6df98182faedd08d5b502
+SHA1 (patch-electron_shell_browser_api_electron__api__safe__storage.cc) = 0c3f7aa0dae3b631787ca4b7185c356c8ce9abb5
+SHA1 (patch-electron_shell_browser_api_electron__api__safe__storage.h) = ceb5a01c5e8d7ac5af20c9b5ac02c8e8665ada70
+SHA1 (patch-electron_shell_browser_api_electron__api__screen.cc) = a903b23114ef0d433a2f7e160363ef7137396c7a
+SHA1 (patch-electron_shell_browser_api_electron__api__system__preferences.cc) = ffd6fd439d5e90cac7304045b9e3e8eda3ff2e1c
+SHA1 (patch-electron_shell_browser_api_electron__api__system__preferences.h) = c57d3fbff6c680eb1b56ff91350f6c4ce34be778
+SHA1 (patch-electron_shell_browser_api_electron__api__web__contents.cc) = 54049ca2eea75ba7275b08ae84c13aecadae299e
+SHA1 (patch-electron_shell_browser_api_electron__api__web__contents.h) = 25980e2995d9e012a1930ba750403655ea17ba37
+SHA1 (patch-electron_shell_browser_api_process__metric.h) = 64a77baaf58bf3ec83531c091ccc017a8007d3e0
+SHA1 (patch-electron_shell_browser_browser.cc) = 2caa3cee054ce80721ecba2134b1a90fb7ad5031
+SHA1 (patch-electron_shell_browser_browser.h) = 7b0e55d36e99ac382c026b03805364e052b90e48
+SHA1 (patch-electron_shell_browser_browser__linux.cc) = bba0706ca2bc94269a77c9171b656628b929cf17
+SHA1 (patch-electron_shell_browser_browser__process__impl.cc) = ef273a3b9a19781a6b42d3bb214c5055bb58a681
+SHA1 (patch-electron_shell_browser_browser__process__impl.h) = c5a12ad79c1a76fa5d827187452e185b60477c4a
+SHA1 (patch-electron_shell_browser_electron__browser__main__parts.cc) = 8f4bcc3351726ff97e13b863dde07723319e66ba
+SHA1 (patch-electron_shell_browser_electron__browser__main__parts.h) = b1d2372a2e074fab92b118a99fef0aaa415b6255
+SHA1 (patch-electron_shell_browser_electron__browser__main__parts__posix.cc) = 01db7e884364445f3c09827884d21c54f07457e9
+SHA1 (patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc) = 4f486f0482a0a216c59233abe95b94eac9c43fdc
+SHA1 (patch-electron_shell_browser_feature__list.cc) = ce88a8b5a313b42974d1d72dda3fbe890ff7e2aa
+SHA1 (patch-electron_shell_browser_linux_x11__util.cc) = a210c44d006dee66f5593a46480bb2e2beb6b45a
+SHA1 (patch-electron_shell_browser_native__window.cc) = 3cfd9a23ce997bb358993aafcd82e7c60ec8747a
+SHA1 (patch-electron_shell_browser_native__window__views.cc) = 2f5cd9c32c38b8e35d2964c468193d73bff87b9e
+SHA1 (patch-electron_shell_browser_native__window__views.h) = 0b69582971cc49f4906f81afd9bd92f4cb804cfd
+SHA1 (patch-electron_shell_browser_osr_osr__host__display__client.cc) = a951aad4f022f99db05c02dba3a9b0e3f6583968
+SHA1 (patch-electron_shell_browser_osr_osr__host__display__client.h) = 935ca09645079d910b617840f63cf5f356707d9c
+SHA1 (patch-electron_shell_browser_osr_osr__paint__event.h) = d036822dd26132eb2e6c871bcf92c9a76d6eaf93
+SHA1 (patch-electron_shell_browser_osr_osr__video__consumer.cc) = 490c579cf05e6d585e9def0fbf416d91eafd7a54
+SHA1 (patch-electron_shell_browser_printing_printing__utils.cc) = 032fe233508bca0a7a83c2a191c4af9160319476
+SHA1 (patch-electron_shell_browser_relauncher__linux.cc) = aa357fb7711df14916e365984f334c1d27c9adeb
+SHA1 (patch-electron_shell_browser_ui_inspectable__web__contents.cc) = 7a5fedf2b6cc8fd5a4db336d78a6542e3ba7bcd7
+SHA1 (patch-electron_shell_browser_ui_inspectable__web__contents__view.cc) = 7fc8ddb36a64e1b7949fd8354db29f2606cfe559
+SHA1 (patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h) = 9210d0cf55f179ebcd611a88d3c9bf64aadaec4e
+SHA1 (patch-electron_shell_browser_ui_views_electron__views__delegate.cc) = b6a5f4fc8e985daae9b2316aa96555839a276999
+SHA1 (patch-electron_shell_browser_ui_views_electron__views__delegate.h) = d7452777b4c05714671cf38b96d012bc6b078ca5
+SHA1 (patch-electron_shell_browser_ui_views_menu__bar.cc) = 55af1053d1904ea6256babc213fcb223c780c14e
+SHA1 (patch-electron_shell_browser_ui_views_menu__bar.h) = 3d587b7d358a27f16995f948db2d6896d9ccf61c
+SHA1 (patch-electron_shell_browser_ui_views_submenu__button.cc) = fba5cf45b020244290032d95f311f0d44181905b
+SHA1 (patch-electron_shell_common_api_electron__api__clipboard.cc) = 0d1d9dfb98f0b90cf700fb70040eb483de592c70
+SHA1 (patch-electron_shell_common_api_electron__api__native__image.cc) = 91dbfb3a29d73689d5ab3ba92348aa0e827b8e61
+SHA1 (patch-electron_shell_common_api_electron__api__native__image.h) = b3b2a71cf6891d9562d0997dacef928391ea2bad
+SHA1 (patch-electron_shell_common_api_electron__api__shared__texture.cc) = 24a9c3710bb61fca03ecdcfb34a99195caa67b69
+SHA1 (patch-electron_shell_common_api_electron__api__testing.cc) = 9c7d417c046d78ede9eedc931980b053611d1806
+SHA1 (patch-electron_shell_common_api_electron__bindings.cc) = ff246c945d642a13bd65e879926b6fd6282dfa7f
+SHA1 (patch-electron_shell_common_electron__command__line.cc) = a493b36457108ef9ddc4810dbcac5bdd49390da1
+SHA1 (patch-electron_shell_common_electron__command__line.h) = c111e61ef7cc267ca69cf037b0123102a2de269d
+SHA1 (patch-electron_shell_common_electron__paths.cc) = acd329a2e08235c57b110c88a53a5b889385de39
+SHA1 (patch-electron_shell_common_electron__paths.h) = 86d5f18293968043fd6557a11098b1a44b8c975f
+SHA1 (patch-electron_shell_common_gin__converters_osr__converter.cc) = 56bead3bf1bd7cf18695781bd52f321807bb6a89
+SHA1 (patch-electron_shell_common_gin__converters_std__converter.h) = c8891ed56a7751d2dc78780c7fdddb52cec1eeb6
+SHA1 (patch-electron_shell_common_node__bindings.cc) = 2848a351442b0f5d0966144bd720162aa5b9f269
+SHA1 (patch-electron_shell_common_node__bindings__linux.cc) = 5b8e2729352b743595087957f5b1427e8bd57531
+SHA1 (patch-electron_shell_common_platform__util.h) = d341b6dd88cb1fa5cc53e5500b2417842d6fbdbe
+SHA1 (patch-electron_shell_common_v8__oom__diagnostics.cc) = b531ed0f0ae72356c4b897b2e97625a3c836e079
+SHA1 (patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc) = 855d9757a60142ea29a40a3ac828f568c4649f10
+SHA1 (patch-electron_shell_services_node_node__service.cc) = 70b0e1dbbfd7e1db44d98a8a27f3d8941aa2aa6a
+SHA1 (patch-electron_spec_api-app.spec.ts) = 26ee970e90d5e14a5f0403964e0ee1d1c72603df
+SHA1 (patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts) = 6b0b3b5ad529212808d4435f7c5e05f611fda888
+SHA1 (patch-electron_spec_api-browser-window.spec.ts) = 5ebdf83d45b21c688cb35626c70c1b9ea92ad36c
+SHA1 (patch-electron_spec_api-clipboard.spec.ts) = 6aa26f6f2b44d31733c4c8eabb677f8ffaec833f
+SHA1 (patch-electron_spec_api-content-tracing.spec.ts) = 7ff6cef68a92c671a2dc4290b9e756bf1b744acd
+SHA1 (patch-electron_spec_api-crash-reporter.spec.ts) = dcf19572664256cb9885b2b4b1fd202ec74b3ee7
+SHA1 (patch-electron_spec_api-desktop-capturer.spec.ts) = f8956db8e75d35c7fa6de293b2c3a82b22f938cb
+SHA1 (patch-electron_spec_api-dialog.spec.ts) = c507868361216a5628c9a1acf2336fa7607c1f29
+SHA1 (patch-electron_spec_api-media-handler.spec.ts) = cb86109349e74453d803e37b04703c73c6e8e8fd
+SHA1 (patch-electron_spec_api-menu.spec.ts) = b829ea3a90b37efb1da048f04c483599fa06c963
+SHA1 (patch-electron_spec_api-native-image.spec.ts) = 7a94061e3a083ce87e866fa127c01ecfef4a70cc
+SHA1 (patch-electron_spec_api-net-log.spec.ts) = 1da15d38167559181e4ce93e98c942e9cc848f24
+SHA1 (patch-electron_spec_api-notification-dbus.spec.ts) = b201d6c67c0ce44b0581bd3fc380d425ef083556
+SHA1 (patch-electron_spec_api-power-monitor.spec.ts) = 085b7afc09d1052dbf49f48986f8639eeea95df0
+SHA1 (patch-electron_spec_api-process.spec.ts) = 14cc5ec75b63de9c6429b7d9ee93802a9a6defb1
+SHA1 (patch-electron_spec_api-safe-storage.spec.ts) = dd71e1dcd2adbefa29d927798c56d8ef4d5e5d3e
+SHA1 (patch-electron_spec_api-screen.spec.ts) = 49394ad4d46c9c54f8d5de530531131083463ce9
+SHA1 (patch-electron_spec_api-shell.spec.ts) = d5cfde28deb6722d4f1421baa67c226784acfded
+SHA1 (patch-electron_spec_api-subframe.spec.ts) = 70808282513c28b93ddc60b63d96a94f2da9bacf
+SHA1 (patch-electron_spec_api-system-preferences.spec.ts) = da5ddf8992a38d8e1c09565c8ef203045f101d5d
+SHA1 (patch-electron_spec_api-tray.spec.ts) = eba862326e92430522180dd0605ee6d148dde2c4
+SHA1 (patch-electron_spec_api-utility-process.spec.ts) = f8147e3e1a007dc9a499330366030fa16c5bd484
+SHA1 (patch-electron_spec_api-web-contents.spec.ts) = a64c6794052e220fdbd8a2a8943f9620d23b8691
+SHA1 (patch-electron_spec_chromium.spec.ts) = 219413682d8ce710769b9c0f97ed0a85ef85cc17
+SHA1 (patch-electron_spec_crash.spec.ts) = c3f83ede55ca04879a711d5d52401a8640185866
+SHA1 (patch-electron_spec_desktop-name.spec.ts) = 3df72d1d59905c6816999ed168006a5de0ba36e1
+SHA1 (patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js) = 50c41cad7f9f02f52eed44604648cd5247dcfb90
+SHA1 (patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js) = af4ca65ca693f128cea2a9b88a659af3319ba38c
+SHA1 (patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js) = 725a4e82fa24793ccceec4ce3229a7b95528d389
+SHA1 (patch-electron_spec_lib_spec-helpers.ts) = f93bac4992af5be376d37a0e62fa52a74aec2131
+SHA1 (patch-electron_spec_node.spec.ts) = 94ec5f7df50c3700b727a27f58310d67de179aa2
+SHA1 (patch-electron_spec_spellchecker.spec.ts) = e2e609589fb6395c0c06d7d3c09f9957eb3f7571
+SHA1 (patch-electron_spec_visibility-state.spec.ts) = 5e74bc31025492a344d9b6c9376540180535e9e5
+SHA1 (patch-electron_spec_webview.spec.ts) = 300175cb61eefa6007999f275667a5f4368a45cc
+SHA1 (patch-net_dns_dns__config__service__posix.cc) = ceccfc2cf95271553f98e56778d57b3a35c862f0
+SHA1 (patch-rollup_rust_bindings__napi_Cargo.toml) = 6a6367bdded501fc2cce3a2bac675a752dfe868b
+SHA1 (patch-rollup_rust_bindings__napi_src_lib.rs) = 942cef5d4df9bfa6539225711362d3a39fa76875
+SHA1 (patch-third__party_electron__node_common.gypi) = 42b068edb64cd9d99991efb49a17cdb255c9e399
+SHA1 (patch-third__party_electron__node_deps_cares_cares.gyp) = 5bebf1c2efd6eda50907e79414833eb81837bc7c
+SHA1 (patch-third__party_electron__node_deps_cares_config_netbsd_ares__config.h) = 8b7eab3496cc8c71f981dbb7eb5190ee0c81508b
+SHA1 (patch-third__party_electron__node_deps_cares_unofficial.gni) = 7a077493b6628d01b5b6fab58aec0f5ea065be52
+SHA1 (patch-third__party_electron__node_deps_histogram_src_hdr__histogram.c) = 0f2157cfd1a73b5702c4994cdb268cd3653eea13
+SHA1 (patch-third__party_electron__node_deps_histogram_unofficial.gni) = 79ea62454346324d1cf515f719f3887bff102faf
+SHA1 (patch-third__party_electron__node_deps_openssl_unofficial.gni) = 10d0480b651fe2a016f70e4ee55a4453be22314a
+SHA1 (patch-third__party_electron__node_deps_uv_common.gypi) = fda3577a83f5a3c4678be9f75f25e51f86498703
+SHA1 (patch-third__party_electron__node_deps_uv_src_unix_pipe.c) = bc014fd017d88d0ac95d3118a4e001f38b730bf0
+SHA1 (patch-third__party_electron__node_deps_uv_unofficial.gni) = 630997a1303098ea07c9fe8f27a75f1ab5dae27c
+SHA1 (patch-third__party_electron__node_deps_uvwasi_include_wasi__serdes.h) = bc1c8bcf92eb26144554aadd8b432a67a69b7e72
+SHA1 (patch-third__party_electron__node_deps_v8_src_base_platform_memory.h) = 059b159935f30822a16ee362a1f88fa4984cf7ce
+SHA1 (patch-third__party_electron__node_deps_v8_src_base_platform_platform-freebsd.cc) = cca95c6ac76a290d4595d6d731d4d2b71b66e911
+SHA1 (patch-third__party_electron__node_deps_v8_src_base_platform_platform-openbsd.cc) = b4dc470045dfcda2b1ecd83b13e751018cd8a74b
+SHA1 (patch-third__party_electron__node_deps_v8_src_base_platform_platform-posix.cc) = 0972471d1eabc4c5621897672688d6ac2eef6b5e
+SHA1 (patch-third__party_electron__node_deps_v8_src_base_platform_semaphore.cc) = 50267c57a8a49fda8e5171e37eadca76c91ed3ae
+SHA1 (patch-third__party_electron__node_deps_v8_src_base_strings.h) = 5f3074cbb609cc0519ba76ff2fc61adfb601c94e
+SHA1 (patch-third__party_electron__node_deps_v8_src_codegen_arm_cpu-arm.cc) = 9a007f7e2371ec5a0e6c243202256bd052c8e90b
+SHA1 (patch-third__party_electron__node_deps_v8_src_common_globals.h) = a6c98aedb6d15b92146902f72d201646ac261942
+SHA1 (patch-third__party_electron__node_deps_v8_src_compiler_turboshaft_int64-lowering-reducer.h) = 2329c45b53aa6fa95a45303756e602f30c659652
+SHA1 (patch-third__party_electron__node_deps_v8_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc) = 6eb669438bb90f151af523cd41fa37a3310f5bd4
+SHA1 (patch-third__party_electron__node_deps_v8_tools_profiling_run-llprof.sh) = 2b727adf1cc2ecddbb188dbc755d39dbc8edd45c
+SHA1 (patch-third__party_electron__node_node.gypi) = 5b83f235896fcbe6ace9e73f2482505511465dc8
+SHA1 (patch-third__party_electron__node_src_compile__cache.cc) = 9c7306af10ba00d329cc838c79be676d4c3c51c7
+SHA1 (patch-third__party_electron__node_src_crypto_crypto__rsa.cc) = 54c73fd400fdd8c6a6d051bd299127fb475cbfb6
+SHA1 (patch-third__party_electron__node_src_inspector__agent.cc) = 984b905368d6a240c8b137b8432fd549f6f96d30
+SHA1 (patch-third__party_electron__node_src_node__platform.cc) = 2c2a708f9c75d4dae9bee749bd1941801b6f3d95
+SHA1 (patch-third__party_electron__node_src_node__platform.h) = 8faa067126607f3edc0582b60dad1813c947dc50
+SHA1 (patch-third__party_electron__node_src_node__postmortem__metadata.cc) = 87a801060cfa8641e571fa18c0f781b91ad9c90f
+SHA1 (patch-third__party_electron__node_tools_generate__config__gypi.py) = 94e52b10c2dc29bf6b49c01ed6f827a1fe3c37d6
+SHA1 (patch-third__party_electron__node_tools_gyp_pylib_gyp_generator_make.py) = 71f073dd8927b87d6e194e35ca9639aef375c8bc
+SHA1 (patch-third__party_electron__node_tools_gyp_pylib_gyp_xcode__emulation.py) = 15859f4e04a10a581a28b16d3d9e6bed30ada6b9
+SHA1 (patch-third__party_electron__node_tools_install.py) = 1ca4742711d6eb3598ad1c4e68e40a080e768dcb
+SHA1 (patch-third__party_electron__node_tools_v8__gypfiles_v8.gyp) = e501d2a719556522a7b260939cc38365d240955e
+SHA1 (patch-ui_gfx_font__util.cc) = 6e78cecddd7e790302006382206b26af1111b921
+SHA1 (patch-ui_gtk_gtk__compat.cc) = 3477b71373b98bd9aca8b124d940a458d92f3d19
+SHA1 (patch-ui_shell__dialogs_select__file__dialog.h) = 885592637c8913f1126d046e9d4815e48919a418
diff --git a/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc b/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
index 9541da2d9a..d0132a3ad0 100644
--- a/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
+++ b/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig	2026-10-13 15:23:13.173208718 +0000
+--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc.orig	2026-10-20 08:24:51.838664114 +0000
 +++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.cc
 @@ -291,214 +291,10 @@ bool MaybeIsLocalUNCPath(const base::Fil
  }
diff --git a/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h b/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h
new file mode 100644
index 0000000000..f7781f9a07
--- /dev/null
+++ b/electron43/patches/patch-chrome_browser_file__system__access_chrome__file__system__access__permission__context.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- chrome/browser/file_system_access/chrome_file_system_access_permission_context.h.orig	2026-10-20 08:24:51.838879290 +0000
++++ chrome/browser/file_system_access/chrome_file_system_access_permission_context.h
+@@ -603,7 +603,7 @@ class ChromeFileSystemAccessPermissionCo
+             FILE_PATH_LITERAL("Library/Mobile Documents/com~apple~CloudDocs"),
+             BlockType::kDontBlockChildren),
+   #endif
+-  #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID)
++  #if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_CHROMEOS) || BUILDFLAG(IS_ANDROID) || BUILDFLAG(IS_BSD)
+         // On Linux also block access to devices via /dev.
+         BlockPath::CreateAbsolute(FILE_PATH_LITERAL("/dev"),
+                                   BlockType::kBlockAllChildren),
diff --git a/electron43/patches/patch-chrome_browser_process__singleton__posix.cc b/electron43/patches/patch-chrome_browser_process__singleton__posix.cc
index e3c76b8e96..e14da4741f 100644
--- a/electron43/patches/patch-chrome_browser_process__singleton__posix.cc
+++ b/electron43/patches/patch-chrome_browser_process__singleton__posix.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- chrome/browser/process_singleton_posix.cc.orig	2026-10-13 15:23:13.063642925 +0000
+--- chrome/browser/process_singleton_posix.cc.orig	2026-10-20 08:24:51.695835326 +0000
 +++ chrome/browser/process_singleton_posix.cc
 @@ -105,7 +105,7 @@
  #include "ui/base/l10n/l10n_util.h"
diff --git a/electron43/patches/patch-content_browser_child__process__launcher__helper__linux.cc b/electron43/patches/patch-content_browser_child__process__launcher__helper__linux.cc
index 4b90c4f410..396c2b0451 100644
--- a/electron43/patches/patch-content_browser_child__process__launcher__helper__linux.cc
+++ b/electron43/patches/patch-content_browser_child__process__launcher__helper__linux.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- content/browser/child_process_launcher_helper_linux.cc.orig	2026-10-13 15:23:13.100904163 +0000
+--- content/browser/child_process_launcher_helper_linux.cc.orig	2026-10-20 08:24:51.747940026 +0000
 +++ content/browser/child_process_launcher_helper_linux.cc
 @@ -73,7 +73,25 @@ bool ChildProcessLauncherHelper::BeforeL
        options->fds_to_remap.emplace_back(sandbox_fd, GetSandboxFD());
diff --git a/electron43/patches/patch-electron_BUILD.gn b/electron43/patches/patch-electron_BUILD.gn
index da6642e668..f802408100 100644
--- a/electron43/patches/patch-electron_BUILD.gn
+++ b/electron43/patches/patch-electron_BUILD.gn
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/BUILD.gn.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/BUILD.gn.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/BUILD.gn
 @@ -629,7 +629,7 @@ source_set("electron_lib") {
      defines += [ "GDK_DISABLE_DEPRECATION_WARNINGS" ]
@@ -15,7 +15,7 @@ $NetBSD$
      deps += [
        "//components/crash/core/app",
        "//components/crash/core/browser",
-@@ -743,6 +743,12 @@ source_set("electron_lib") {
+@@ -736,6 +736,12 @@ source_set("electron_lib") {
        cflags_objcc = [ "-fobjc-weak" ]
      }
    }
@@ -28,7 +28,7 @@ $NetBSD$
    if (is_linux) {
      libs = [ "xshmfence" ]
      deps += [
-@@ -1555,7 +1561,7 @@ if (is_mac) {
+@@ -1548,7 +1554,7 @@ if (is_mac) {
      } else if (is_linux) {
        sources = [
          "shell/app/electron_main_linux.cc",
@@ -37,7 +37,7 @@ $NetBSD$
          "shell/app/uv_stdio_fix.cc",
          "shell/app/uv_stdio_fix.h",
        ]
-@@ -1567,7 +1573,7 @@ if (is_mac) {
+@@ -1560,7 +1566,7 @@ if (is_mac) {
        ":electron_lib",
        ":electron_win32_resources",
        ":packed_resources",
@@ -46,7 +46,7 @@ $NetBSD$
        "//content:sandbox_helper_win",
        "//electron/buildflags",
        "//third_party/electron_node:libnode",
-@@ -1594,7 +1600,7 @@ if (is_mac) {
+@@ -1587,7 +1593,7 @@ if (is_mac) {
        public_deps = [ "//tools/v8_context_snapshot" ]
      }
  
@@ -55,7 +55,7 @@ $NetBSD$
        data_deps += [ "//components/crash/core/app:chrome_crashpad_handler" ]
      }
  
-@@ -1661,7 +1667,7 @@ if (is_mac) {
+@@ -1654,7 +1660,7 @@ if (is_mac) {
          configs += [ "//build/config/gcc:rpath_for_built_shared_libraries" ]
        }
  
@@ -64,7 +64,7 @@ $NetBSD$
          deps += [ "//sandbox/linux:chrome_sandbox" ]
        }
      }
-@@ -1782,7 +1788,9 @@ dist_zip("electron_dist_zip") {
+@@ -1775,7 +1781,9 @@ dist_zip("electron_dist_zip") {
        ]
      }
  
diff --git a/electron43/patches/patch-electron_build_args_all.gn b/electron43/patches/patch-electron_build_args_all.gn
index 6d45ff1283..f4fbd8ab44 100644
--- a/electron43/patches/patch-electron_build_args_all.gn
+++ b/electron43/patches/patch-electron_build_args_all.gn
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/build/args/all.gn.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/build/args/all.gn.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/build/args/all.gn
 @@ -31,8 +31,8 @@ v8_enable_snapshot_native_code_counters 
  v8_enable_javascript_promise_hooks = true
diff --git a/electron43/patches/patch-electron_default__app_default__app.ts b/electron43/patches/patch-electron_default__app_default__app.ts
index afccc64770..9fb2035cc9 100644
--- a/electron43/patches/patch-electron_default__app_default__app.ts
+++ b/electron43/patches/patch-electron_default__app_default__app.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/default_app/default_app.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/default_app/default_app.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/default_app/default_app.ts
 @@ -94,7 +94,7 @@ async function createWindow(backgroundCo
      show: false
diff --git a/electron43/patches/patch-electron_filenames.gni b/electron43/patches/patch-electron_filenames.gni
index b1a4ea077d..6a67e3c198 100644
--- a/electron43/patches/patch-electron_filenames.gni
+++ b/electron43/patches/patch-electron_filenames.gni
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/filenames.gni.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/filenames.gni.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/filenames.gni
 @@ -245,8 +245,8 @@ filenames = {
      "shell/app/command_line_args.h",
diff --git a/electron43/patches/patch-electron_lib_browser_api_app.ts b/electron43/patches/patch-electron_lib_browser_api_app.ts
index 646fb16b81..664ade90f0 100644
--- a/electron43/patches/patch-electron_lib_browser_api_app.ts
+++ b/electron43/patches/patch-electron_lib_browser_api_app.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/lib/browser/api/app.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/lib/browser/api/app.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/lib/browser/api/app.ts
 @@ -71,7 +71,7 @@ if (process.platform === 'darwin') {
    app.dock!.getMenu = () => dockMenu;
diff --git a/electron43/patches/patch-electron_lib_browser_api_dialog.ts b/electron43/patches/patch-electron_lib_browser_api_dialog.ts
index 0d10f8c7d4..9bb697d2bf 100644
--- a/electron43/patches/patch-electron_lib_browser_api_dialog.ts
+++ b/electron43/patches/patch-electron_lib_browser_api_dialog.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/lib/browser/api/dialog.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/lib/browser/api/dialog.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/lib/browser/api/dialog.ts
 @@ -49,7 +49,7 @@ const normalizeAccessKey = (text: string
    // existing single underscores with a second underscore, replace double
diff --git a/electron43/patches/patch-electron_lib_browser_api_menu-item-roles.ts b/electron43/patches/patch-electron_lib_browser_api_menu-item-roles.ts
index 12fe558460..dca951f6aa 100644
--- a/electron43/patches/patch-electron_lib_browser_api_menu-item-roles.ts
+++ b/electron43/patches/patch-electron_lib_browser_api_menu-item-roles.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/lib/browser/api/menu-item-roles.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/lib/browser/api/menu-item-roles.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/lib/browser/api/menu-item-roles.ts
 @@ -3,7 +3,7 @@ import type { WebContents, MenuItemConst
  
diff --git a/electron43/patches/patch-electron_lib_browser_api_power-monitor.ts b/electron43/patches/patch-electron_lib_browser_api_power-monitor.ts
index 0890aa966a..60bd3aa32b 100644
--- a/electron43/patches/patch-electron_lib_browser_api_power-monitor.ts
+++ b/electron43/patches/patch-electron_lib_browser_api_power-monitor.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/lib/browser/api/power-monitor.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/lib/browser/api/power-monitor.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/lib/browser/api/power-monitor.ts
 @@ -18,7 +18,7 @@ class PowerMonitor extends EventEmitter 
        pm = createPowerMonitor();
diff --git a/electron43/patches/patch-electron_lib_browser_rpc-server.ts b/electron43/patches/patch-electron_lib_browser_rpc-server.ts
index 67cd041423..57e894ddc4 100644
--- a/electron43/patches/patch-electron_lib_browser_rpc-server.ts
+++ b/electron43/patches/patch-electron_lib_browser_rpc-server.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/lib/browser/rpc-server.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/lib/browser/rpc-server.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/lib/browser/rpc-server.ts
 @@ -36,7 +36,7 @@ const allowedClipboardMethods = (() => {
    switch (process.platform) {
diff --git a/electron43/patches/patch-electron_lib_renderer_api_clipboard.ts b/electron43/patches/patch-electron_lib_renderer_api_clipboard.ts
index e1f77695de..78e74e2c46 100644
--- a/electron43/patches/patch-electron_lib_renderer_api_clipboard.ts
+++ b/electron43/patches/patch-electron_lib_renderer_api_clipboard.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/lib/renderer/api/clipboard.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/lib/renderer/api/clipboard.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/lib/renderer/api/clipboard.ts
 @@ -27,7 +27,7 @@ const makeRemoteMethod = function (metho
    };
diff --git a/electron43/patches/patch-electron_lib_renderer_security-warnings.ts b/electron43/patches/patch-electron_lib_renderer_security-warnings.ts
new file mode 100644
index 0000000000..3f1feb6dbf
--- /dev/null
+++ b/electron43/patches/patch-electron_lib_renderer_security-warnings.ts
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- electron/lib/renderer/security-warnings.ts.orig	2026-10-16 03:32:58.000000000 +0000
++++ electron/lib/renderer/security-warnings.ts
+@@ -25,6 +25,7 @@ const shouldLogSecurityWarnings = functi
+       shouldLog = execPath.endsWith('MacOS/Electron') || execPath.includes('Electron.app/Contents/Frameworks/');
+       break;
+     case 'freebsd':
++    case 'netbsd':
+     case 'linux':
+       shouldLog = execPath.endsWith('/electron');
+       break;
diff --git a/electron43/patches/patch-electron_node__modules_@sentry_cli_scripts_install.js b/electron43/patches/patch-electron_node__modules_@sentry_cli_scripts_install.js
index bf21f56f5c..8f932a238a 100644
--- a/electron43/patches/patch-electron_node__modules_@sentry_cli_scripts_install.js
+++ b/electron43/patches/patch-electron_node__modules_@sentry_cli_scripts_install.js
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/node_modules/@sentry/cli/scripts/install.js.orig	2026-10-13 15:23:07.411766406 +0000
+--- electron/node_modules/@sentry/cli/scripts/install.js.orig	2026-10-20 08:24:45.591280725 +0000
 +++ electron/node_modules/@sentry/cli/scripts/install.js
 @@ -79,6 +79,7 @@ function getDownloadUrl(platform, arch) 
        return `${releasesUrl}-Windows-${archString}.exe`;
diff --git a/electron43/patches/patch-electron_npm_install.js b/electron43/patches/patch-electron_npm_install.js
new file mode 100644
index 0000000000..5b8e1f6c6c
--- /dev/null
+++ b/electron43/patches/patch-electron_npm_install.js
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- electron/npm/install.js.orig	2026-10-16 03:32:58.000000000 +0000
++++ electron/npm/install.js
+@@ -107,6 +107,7 @@ function getPlatformPath() {
+     case 'darwin':
+       return 'Electron.app/Contents/MacOS/Electron';
+     case 'freebsd':
++    case 'netbsd':
+     case 'openbsd':
+     case 'linux':
+       return 'electron';
diff --git a/electron43/patches/patch-electron_script_lib_config.py b/electron43/patches/patch-electron_script_lib_config.py
index eb216483df..d54b78a3bf 100644
--- a/electron43/patches/patch-electron_script_lib_config.py
+++ b/electron43/patches/patch-electron_script_lib_config.py
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/script/lib/config.py.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/script/lib/config.py.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/script/lib/config.py
 @@ -7,6 +7,11 @@ PLATFORM = {
    'cygwin': 'win32',
diff --git a/electron43/patches/patch-electron_script_lib_utils.js b/electron43/patches/patch-electron_script_lib_utils.js
index 001c909651..3b78d481d0 100644
--- a/electron43/patches/patch-electron_script_lib_utils.js
+++ b/electron43/patches/patch-electron_script_lib_utils.js
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/script/lib/utils.js.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/script/lib/utils.js.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/script/lib/utils.js
 @@ -20,7 +20,7 @@ function getElectronExec() {
        return `out/${OUT_DIR}/Electron.app/Contents/MacOS/Electron`;
diff --git a/electron43/patches/patch-electron_script_pgo_collect-profile.js b/electron43/patches/patch-electron_script_pgo_collect-profile.js
index ba97d29e3b..237708bfad 100644
--- a/electron43/patches/patch-electron_script_pgo_collect-profile.js
+++ b/electron43/patches/patch-electron_script_pgo_collect-profile.js
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/script/pgo/collect-profile.js.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/script/pgo/collect-profile.js.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/script/pgo/collect-profile.js
 @@ -75,7 +75,7 @@ function log(...args) {
  // network workload coverage degrades but collection still succeeds.
diff --git a/electron43/patches/patch-electron_script_spec-runner.js b/electron43/patches/patch-electron_script_spec-runner.js
index a5b6b70482..471000e710 100644
--- a/electron43/patches/patch-electron_script_spec-runner.js
+++ b/electron43/patches/patch-electron_script_spec-runner.js
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/script/spec-runner.js.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/script/spec-runner.js.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/script/spec-runner.js
-@@ -586,7 +586,7 @@ function toVitestInvocation(exe, specDir
+@@ -584,7 +584,7 @@ function toVitestInvocation(exe, specDir
    };
    let command = process.execPath;
    let commandArgs = vitestArgs;
@@ -15,7 +15,7 @@ $NetBSD$
      // The mock D-Bus services are started once around the whole run; every
      // Electron worker inherits the bus addresses from the CLI's environment.
      commandArgs = [path.resolve(__dirname, 'dbus_mock.py'), command, ...commandArgs];
-@@ -689,7 +689,7 @@ async function installSpecModules(dir) {
+@@ -687,7 +687,7 @@ async function installSpecModules(dir) {
      process.exit(1);
    }
  
@@ -24,7 +24,7 @@ $NetBSD$
      const { status: rebuildStatus } = childProcess.spawnSync('npm', ['rebuild', 'abstract-socket'], {
        env,
        cwd: dir,
-@@ -767,7 +767,7 @@ async function installSpecModules(dir) {
+@@ -765,7 +765,7 @@ async function installSpecModules(dir) {
  // the same GCC that rejects the headers, so nothing on that host can build
  // the fixtures.
  function getNativeAddonToolchainEnv() {
diff --git a/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.cc b/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.cc
index a7c57d0cff..33eee3c9b7 100644
--- a/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.cc
+++ b/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/app/electron_crash_reporter_client.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/app/electron_crash_reporter_client.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/app/electron_crash_reporter_client.cc
 @@ -91,7 +91,7 @@ ElectronCrashReporterClient::ElectronCra
  
diff --git a/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.h b/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.h
index 916ddca0a3..a3731ff678 100644
--- a/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.h
+++ b/electron43/patches/patch-electron_shell_app_electron__crash__reporter__client.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/app/electron_crash_reporter_client.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/app/electron_crash_reporter_client.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/app/electron_crash_reporter_client.h
 @@ -30,7 +30,7 @@ class ElectronCrashReporterClient : publ
        const std::map<std::string, std::string>& annotations);
diff --git a/electron43/patches/patch-electron_shell_app_electron__main__delegate.cc b/electron43/patches/patch-electron_shell_app_electron__main__delegate.cc
index 99d1107988..e38b991164 100644
--- a/electron43/patches/patch-electron_shell_app_electron__main__delegate.cc
+++ b/electron43/patches/patch-electron_shell_app_electron__main__delegate.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/app/electron_main_delegate.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/app/electron_main_delegate.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/app/electron_main_delegate.cc
 @@ -67,7 +67,7 @@
  #include "chrome/child/v8_crashpad_support_win.h"
diff --git a/electron43/patches/patch-electron_shell_app_node__main.cc b/electron43/patches/patch-electron_shell_app_node__main.cc
index addb94d945..9b3a6cf3f9 100644
--- a/electron43/patches/patch-electron_shell_app_node__main.cc
+++ b/electron43/patches/patch-electron_shell_app_node__main.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/app/node_main.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/app/node_main.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/app/node_main.cc
 @@ -54,7 +54,7 @@
  #include "shell/common/mac/codesign_util.h"
@@ -32,7 +32,7 @@ $NetBSD$
    electron::crash_keys::GetCrashKeys(&keys);
  #endif
    return gin::ConvertToV8(isolate, keys);
-@@ -329,7 +329,7 @@ int NodeMain() {
+@@ -323,7 +323,7 @@ int NodeMain() {
        // Setup process.crashReporter in child node processes
        auto reporter = gin_helper::Dictionary::CreateEmpty(isolate);
        reporter.SetMethod("getParameters", &GetParameters);
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__app.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__app.cc
index 0d43695213..a7a515456d 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__app.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__app.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_app.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_app.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_app.cc
 @@ -110,7 +110,7 @@
  #include "ui/base/resource/resource_bundle.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.cc
index 87bca2b0c0..baf9f2c34c 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_base_window.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_base_window.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_base_window.cc
 @@ -43,7 +43,7 @@
  #include "shell/browser/ui/views/win_frame_view.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.h b/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.h
index b7d4c39b97..c9c79194f5 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.h
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__base__window.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_base_window.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_base_window.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_base_window.h
 @@ -265,7 +265,7 @@ class BaseWindow : public gin_helper::Tr
    v8::Local<v8::Value> GetAccentColor() const;
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__crash__reporter.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__crash__reporter.cc
index b396d8c8ef..b0dab19510 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__crash__reporter.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__crash__reporter.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_crash_reporter.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_crash_reporter.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_crash_reporter.cc
 @@ -31,7 +31,7 @@
  #include "shell/common/process_util.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc
index 692d3dc148..eb5f744b3a 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__desktop__capturer.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_desktop_capturer.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_desktop_capturer.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_desktop_capturer.cc
 @@ -55,7 +55,7 @@
  #endif
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.cc
index 01f7a16ebb..8f4667776c 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_power_monitor.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_power_monitor.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_power_monitor.cc
 @@ -137,6 +137,11 @@ void PowerMonitor::OnSpeedLimitChange(in
        gin::DataObjectBuilder(isolate).Set("limit", speed_limit).Build());
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.h b/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.h
index df24118e06..cc03c5f8d3 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.h
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__power__monitor.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_power_monitor.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_power_monitor.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_power_monitor.h
 @@ -44,7 +44,7 @@ class PowerMonitor final : public gin::W
    PowerMonitor& operator=(const PowerMonitor&) = delete;
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.cc
index be61cdb384..5dea6582fc 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_safe_storage.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_safe_storage.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_safe_storage.cc
 @@ -70,7 +70,7 @@ gin::ObjectTemplateBuilder SafeStorage::
        .SetMethod("decryptString", &SafeStorage::DecryptString)
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.h b/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.h
index 04064b9fd6..b43a0df452 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.h
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__safe__storage.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_safe_storage.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_safe_storage.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_safe_storage.h
 @@ -78,7 +78,7 @@ class SafeStorage final : public gin_hel
    v8::Local<v8::Promise> decryptStringAsync(v8::Isolate* isolate,
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__screen.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__screen.cc
index ff3505bc00..9fb1583418 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__screen.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__screen.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_screen.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_screen.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_screen.cc
 @@ -29,7 +29,7 @@
  #include "ui/display/win/screen_win.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.cc
index a0b8f35e4e..dda07708da 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_system_preferences.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_system_preferences.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_system_preferences.cc
 @@ -10,7 +10,7 @@
  #include "shell/common/gin_helper/handle.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.h b/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.h
index 0478d29301..74cd274f1f 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.h
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__system__preferences.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_system_preferences.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_system_preferences.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_system_preferences.h
 @@ -18,7 +18,7 @@
  #include "shell/browser/browser.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.cc b/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.cc
index 3f6257aca8..f6fc635f42 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.cc
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_web_contents.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_web_contents.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_web_contents.cc
 @@ -188,11 +188,11 @@
  #include "ui/base/cocoa/defaults_utils.h"
diff --git a/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.h b/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.h
index 8603951dde..6d482e366a 100644
--- a/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.h
+++ b/electron43/patches/patch-electron_shell_browser_api_electron__api__web__contents.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/electron_api_web_contents.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/electron_api_web_contents.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/electron_api_web_contents.h
 @@ -794,7 +794,7 @@ class WebContents final : public Exclusi
  #if defined(TOOLKIT_VIEWS) && !BUILDFLAG(IS_MAC)
diff --git a/electron43/patches/patch-electron_shell_browser_api_process__metric.h b/electron43/patches/patch-electron_shell_browser_api_process__metric.h
index ce273ee857..80c1a8559d 100644
--- a/electron43/patches/patch-electron_shell_browser_api_process__metric.h
+++ b/electron43/patches/patch-electron_shell_browser_api_process__metric.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/api/process_metric.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/api/process_metric.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/api/process_metric.h
 @@ -14,7 +14,7 @@
  
diff --git a/electron43/patches/patch-electron_shell_browser_browser.cc b/electron43/patches/patch-electron_shell_browser_browser.cc
index 0064f45ccc..59c060eb2b 100644
--- a/electron43/patches/patch-electron_shell_browser_browser.cc
+++ b/electron43/patches/patch-electron_shell_browser_browser.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/browser.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/browser.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/browser.cc
 @@ -105,7 +105,7 @@ bool Browser::IsValidProtocolScheme(cons
    return true;
diff --git a/electron43/patches/patch-electron_shell_browser_browser.h b/electron43/patches/patch-electron_shell_browser_browser.h
index ee0870fa14..3fcf490d11 100644
--- a/electron43/patches/patch-electron_shell_browser_browser.h
+++ b/electron43/patches/patch-electron_shell_browser_browser.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/browser.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/browser.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/browser.h
 @@ -295,10 +295,10 @@ class Browser : private WindowListObserv
    PCWSTR GetAppUserModelID();
diff --git a/electron43/patches/patch-electron_shell_browser_browser__linux.cc b/electron43/patches/patch-electron_shell_browser_browser__linux.cc
index bb1e6097c0..f3a85e47b0 100644
--- a/electron43/patches/patch-electron_shell_browser_browser__linux.cc
+++ b/electron43/patches/patch-electron_shell_browser_browser__linux.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/browser_linux.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/browser_linux.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/browser_linux.cc
 @@ -9,7 +9,7 @@
  
@@ -15,7 +15,7 @@ $NetBSD$
  #include <gio/gdesktopappinfo.h>
  #include <gio/gio.h>
  #include <gtk/gtk.h>
-@@ -37,7 +37,7 @@
+@@ -38,7 +38,7 @@
  #include "ui/gtk/gtk_compat.h"  // nogncheck
  #include "ui/gtk/gtk_util.h"    // nogncheck
  
diff --git a/electron43/patches/patch-electron_shell_browser_browser__process__impl.cc b/electron43/patches/patch-electron_shell_browser_browser__process__impl.cc
index 10be5e13d9..b6f2afad40 100644
--- a/electron43/patches/patch-electron_shell_browser_browser__process__impl.cc
+++ b/electron43/patches/patch-electron_shell_browser_browser__process__impl.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/browser_process_impl.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/browser_process_impl.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/browser_process_impl.cc
 @@ -50,7 +50,7 @@
  #include "chrome/browser/printing/print_job_manager.h"
diff --git a/electron43/patches/patch-electron_shell_browser_browser__process__impl.h b/electron43/patches/patch-electron_shell_browser_browser__process__impl.h
index 79b4ad9496..13306d5f0c 100644
--- a/electron43/patches/patch-electron_shell_browser_browser__process__impl.h
+++ b/electron43/patches/patch-electron_shell_browser_browser__process__impl.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/browser_process_impl.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/browser_process_impl.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/browser_process_impl.h
 @@ -22,7 +22,7 @@
  #include "shell/browser/net/system_network_context_manager.h"
diff --git a/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.cc b/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.cc
index 329faa2fbf..e9000f9453 100644
--- a/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.cc
+++ b/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/electron_browser_main_parts.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/electron_browser_main_parts.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/electron_browser_main_parts.cc
 @@ -81,7 +81,7 @@
  #include "ui/wm/core/wm_state.h"
diff --git a/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.h b/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.h
index 09b635c79f..185049cf8c 100644
--- a/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.h
+++ b/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/electron_browser_main_parts.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/electron_browser_main_parts.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/electron_browser_main_parts.h
 @@ -144,7 +144,7 @@ class ElectronBrowserMainParts : public 
    std::unique_ptr<display::Screen> screen_;
diff --git a/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts__posix.cc b/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts__posix.cc
index eface94d9f..879fba35cc 100644
--- a/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts__posix.cc
+++ b/electron43/patches/patch-electron_shell_browser_electron__browser__main__parts__posix.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/electron_browser_main_parts_posix.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/electron_browser_main_parts_posix.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/electron_browser_main_parts_posix.cc
 @@ -191,6 +191,9 @@ void ElectronBrowserMainParts::InstallSh
    g_pipe_pid = getpid();
diff --git a/electron43/patches/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc b/electron43/patches/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc
index 795210c5ca..4d57894ce6 100644
--- a/electron43/patches/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc
+++ b/electron43/patches/patch-electron_shell_browser_extensions_api_runtime_electron__runtime__api__delegate.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/extensions/api/runtime/electron_runtime_api_delegate.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/extensions/api/runtime/electron_runtime_api_delegate.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/extensions/api/runtime/electron_runtime_api_delegate.cc
 @@ -56,6 +56,10 @@ bool ElectronRuntimeAPIDelegate::GetPlat
      info->os = extensions::api::runtime::PlatformOs::kLinux;
diff --git a/electron43/patches/patch-electron_shell_browser_feature__list.cc b/electron43/patches/patch-electron_shell_browser_feature__list.cc
index e92d804280..622d88dd59 100644
--- a/electron43/patches/patch-electron_shell_browser_feature__list.cc
+++ b/electron43/patches/patch-electron_shell_browser_feature__list.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/feature_list.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/feature_list.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/feature_list.cc
 @@ -30,7 +30,7 @@
  #include "pdf/pdf_features.h"
diff --git a/electron43/patches/patch-electron_shell_browser_linux_x11__util.cc b/electron43/patches/patch-electron_shell_browser_linux_x11__util.cc
index c3d1aa745b..994a359471 100644
--- a/electron43/patches/patch-electron_shell_browser_linux_x11__util.cc
+++ b/electron43/patches/patch-electron_shell_browser_linux_x11__util.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/linux/x11_util.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/linux/x11_util.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/linux/x11_util.cc
 @@ -10,7 +10,7 @@
  namespace x11_util {
diff --git a/electron43/patches/patch-electron_shell_browser_native__window.cc b/electron43/patches/patch-electron_shell_browser_native__window.cc
index b7f11c036b..02cda51cba 100644
--- a/electron43/patches/patch-electron_shell_browser_native__window.cc
+++ b/electron43/patches/patch-electron_shell_browser_native__window.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/native_window.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/native_window.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/native_window.cc
 @@ -33,7 +33,7 @@
  
diff --git a/electron43/patches/patch-electron_shell_browser_native__window__views.cc b/electron43/patches/patch-electron_shell_browser_native__window__views.cc
index 13a748947a..3015aba7bc 100644
--- a/electron43/patches/patch-electron_shell_browser_native__window__views.cc
+++ b/electron43/patches/patch-electron_shell_browser_native__window__views.cc
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/native_window_views.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/native_window_views.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/native_window_views.cc
-@@ -57,7 +57,7 @@
+@@ -58,7 +58,7 @@
  #include "ui/views/window/non_client_view.h"
  #include "ui/wm/core/window_util.h"
  
@@ -15,7 +15,7 @@ $NetBSD$
  #include "base/notimplemented.h"
  #include "shell/browser/browser.h"
  #include "shell/browser/linux/unity_service.h"
-@@ -294,7 +294,7 @@ NativeWindowViews::NativeWindowViews(con
+@@ -295,7 +295,7 @@ NativeWindowViews::NativeWindowViews(con
    // If a client frame, we need to draw our own shadows.
    if (transparent() || has_client_frame())
      params.opacity = InitParams::WindowOpacity::kTranslucent;
@@ -24,7 +24,7 @@ $NetBSD$
    // Resize handles and shadows on frameless windows need translucent insets.
    if (!has_frame())
      params.opacity = InitParams::WindowOpacity::kTranslucent;
-@@ -313,7 +313,7 @@ NativeWindowViews::NativeWindowViews(con
+@@ -314,7 +314,7 @@ NativeWindowViews::NativeWindowViews(con
      params.parent = parent->GetNativeWindow();
  
    params.native_widget = new ElectronDesktopNativeWidgetAura{this, widget()};
@@ -33,7 +33,7 @@ $NetBSD$
    // Set the WM_CLASS and XDG App ID to the same value
    // for best compatibility with both X11 and Wayland.
    const auto app_id = platform_util::GetXdgAppId();
-@@ -343,7 +343,7 @@ NativeWindowViews::NativeWindowViews(con
+@@ -344,7 +344,7 @@ NativeWindowViews::NativeWindowViews(con
    std::string window_type;
    options.Get(options::kType, &window_type);
  
@@ -42,7 +42,7 @@ $NetBSD$
    // Set _GTK_THEME_VARIANT to dark if we have "dark-theme" option set.
    if (options.ValueOrDefault(options::kDarkTheme, false))
      SetGTKDarkThemeEnabled(true);
-@@ -415,7 +415,7 @@ NativeWindowViews::NativeWindowViews(con
+@@ -416,7 +416,7 @@ NativeWindowViews::NativeWindowViews(con
    ::SetWindowLong(GetAcceleratedWidget(), GWL_EXSTYLE, ex_style);
  #endif
  
@@ -51,7 +51,7 @@ $NetBSD$
    options.Get(options::kRoundedCorners, &rounded_corner_);
  #endif
  
-@@ -535,7 +535,7 @@ void NativeWindowViews::SetTitleBarOverl
+@@ -536,7 +536,7 @@ void NativeWindowViews::SetTitleBarOverl
      auto* fv = widget()->non_client_view()->frame_view();
      if (auto* frameless = views::AsViewClass<FramelessView>(fv)) {
        frameless->InvalidateCaptionButtons();
@@ -60,7 +60,7 @@ $NetBSD$
      } else if (auto* fvl = views::AsViewClass<views::FrameViewLinux>(fv)) {
        fvl->InvalidateLayout();
        fvl->SchedulePaint();
-@@ -545,7 +545,7 @@ void NativeWindowViews::SetTitleBarOverl
+@@ -546,7 +546,7 @@ void NativeWindowViews::SetTitleBarOverl
  }
  
  void NativeWindowViews::SetGTKDarkThemeEnabled(bool use_dark_theme) {
@@ -69,7 +69,7 @@ $NetBSD$
    if (x11_util::IsX11()) {
      const std::string color = use_dark_theme ? "dark" : "light";
      auto* connection = x11::Connection::Get();
-@@ -611,7 +611,7 @@ void NativeWindowViews::Show() {
+@@ -612,7 +612,7 @@ void NativeWindowViews::Show() {
  
    NotifyWindowShow();
  
@@ -78,7 +78,7 @@ $NetBSD$
    if (global_menu_bar_)
      global_menu_bar_->OnWindowMapped();
  
-@@ -627,7 +627,7 @@ void NativeWindowViews::ShowInactive() {
+@@ -628,7 +628,7 @@ void NativeWindowViews::ShowInactive() {
  
    NotifyWindowShow();
  
@@ -87,7 +87,7 @@ $NetBSD$
    if (global_menu_bar_)
      global_menu_bar_->OnWindowMapped();
  
-@@ -646,7 +646,7 @@ void NativeWindowViews::Hide() {
+@@ -647,7 +647,7 @@ void NativeWindowViews::Hide() {
  
    NotifyWindowHide();
  
@@ -96,7 +96,7 @@ $NetBSD$
    if (global_menu_bar_)
      global_menu_bar_->OnWindowUnmapped();
  #endif
-@@ -677,7 +677,7 @@ bool NativeWindowViews::IsVisible() cons
+@@ -678,7 +678,7 @@ bool NativeWindowViews::IsVisible() cons
  bool NativeWindowViews::IsEnabled() const {
  #if BUILDFLAG(IS_WIN)
    return ::IsWindowEnabled(GetAcceleratedWidget());
@@ -105,7 +105,7 @@ $NetBSD$
    return !enable_event_listening_;
  #endif
  }
-@@ -894,7 +894,7 @@ void NativeWindowViews::SetBounds(const 
+@@ -895,7 +895,7 @@ void NativeWindowViews::SetBounds(const 
    }
  #endif
  
@@ -114,7 +114,7 @@ $NetBSD$
    // On Linux and Windows the minimum and maximum size should be updated with
    // window size when window is not resizable.
    if (!CanResize()) {
-@@ -949,7 +949,7 @@ void NativeWindowViews::SetContentSizeCo
+@@ -950,7 +950,7 @@ void NativeWindowViews::SetContentSizeCo
    // of this to determine whether native widget has initialized.
    if (widget() && widget()->widget_delegate())
      widget()->OnSizeConstraintsChanged();
@@ -123,7 +123,7 @@ $NetBSD$
    if (resizable_)
      old_size_constraints_ = GetSizeConstraints();
  #endif
-@@ -1169,7 +1169,7 @@ bool NativeWindowViews::IsClosable() con
+@@ -1170,7 +1170,7 @@ bool NativeWindowViews::IsClosable() con
      return false;
    }
    return !(info.fState & MFS_DISABLED);
@@ -132,7 +132,7 @@ $NetBSD$
    return true;
  #endif
  }
-@@ -1309,7 +1309,7 @@ void NativeWindowViews::SetBackgroundCol
+@@ -1310,7 +1310,7 @@ void NativeWindowViews::SetBackgroundCol
    InvalidateRect(GetAcceleratedWidget(), nullptr, 1);
  #endif
  
@@ -141,7 +141,7 @@ $NetBSD$
    // Widget and root view need to be transparent for CSD to draw shadow regions
    // and custom edges and corners. The web contents view will still be
    // painted with the true background color, which is cached in state.
-@@ -1332,7 +1332,7 @@ void NativeWindowViews::SetHasShadow(boo
+@@ -1333,7 +1333,7 @@ void NativeWindowViews::SetHasShadow(boo
    // so we no longer call wm::SetShadowElevation and similar to avoid
    // artifacts. https://github.com/electron/electron/issues/51456.
  
@@ -150,7 +150,7 @@ $NetBSD$
    auto* efvl = views::AsViewClass<ElectronFrameViewLinux>(
        widget()->non_client_view()->frame_view());
    if (efvl) {
-@@ -1456,7 +1456,7 @@ bool NativeWindowViews::IsFocusable() co
+@@ -1457,7 +1457,7 @@ bool NativeWindowViews::IsFocusable() co
  }
  
  void NativeWindowViews::SetMenu(ElectronMenuModel* menu_model) {
@@ -159,7 +159,7 @@ $NetBSD$
    // Remove global menu bar.
    if (global_menu_bar_ && menu_model == nullptr) {
      global_menu_bar_.reset();
-@@ -1512,7 +1512,7 @@ void NativeWindowViews::SetMenu(Electron
+@@ -1513,7 +1513,7 @@ void NativeWindowViews::SetMenu(Electron
  void NativeWindowViews::SetParentWindow(NativeWindow* parent) {
    NativeWindow::SetParentWindow(parent);
  
@@ -168,7 +168,7 @@ $NetBSD$
    if (x11_util::IsX11()) {
      auto* connection = x11::Connection::Get();
      connection->SetProperty(
-@@ -1566,7 +1566,7 @@ gfx::Insets NativeWindowViews::GetRestor
+@@ -1567,7 +1567,7 @@ gfx::Insets NativeWindowViews::GetRestor
    if (auto* frameless = views::AsViewClass<FramelessView>(frame_view))
      return frameless->RestoredFrameBorderInsets();
  
@@ -177,7 +177,7 @@ $NetBSD$
    if (auto* fvl = views::AsViewClass<views::FrameViewLinux>(frame_view))
      return fvl->GetRestoredFrameBorderInsets();
  #endif
-@@ -1578,7 +1578,7 @@ void NativeWindowViews::SetProgressBar(d
+@@ -1579,7 +1579,7 @@ void NativeWindowViews::SetProgressBar(d
                                         NativeWindow::ProgressState state) {
  #if BUILDFLAG(IS_WIN)
    taskbar_host_.SetProgressBar(GetAcceleratedWidget(), progress, state);
@@ -186,7 +186,7 @@ $NetBSD$
    if (unity::IsRunning()) {
      unity::SetProgressFraction(progress);
    }
-@@ -1704,7 +1704,7 @@ content::DesktopMediaID NativeWindowView
+@@ -1705,7 +1705,7 @@ content::DesktopMediaID NativeWindowView
  #if BUILDFLAG(IS_WIN)
    window_handle =
        reinterpret_cast<content::DesktopMediaID::Id>(accelerated_widget);
@@ -195,7 +195,7 @@ $NetBSD$
    window_handle = static_cast<uint32_t>(accelerated_widget);
  #endif
    aura::WindowTreeHost* const host =
-@@ -1834,7 +1834,7 @@ void NativeWindowViews::SetIcon(HICON wi
+@@ -1835,7 +1835,7 @@ void NativeWindowViews::SetIcon(HICON wi
    SendMessage(hwnd, WM_SETICON, ICON_BIG,
                reinterpret_cast<LPARAM>(app_icon_.get()));
  }
@@ -204,7 +204,7 @@ $NetBSD$
  void NativeWindowViews::SetIcon(const gfx::ImageSkia& icon) {
    auto* tree_host = views::DesktopWindowTreeHostLinux::GetHostForWidget(
        GetAcceleratedWidget());
-@@ -1955,7 +1955,7 @@ bool NativeWindowViews::CanMaximize() co
+@@ -1956,7 +1956,7 @@ bool NativeWindowViews::CanMaximize() co
  bool NativeWindowViews::CanMinimize() const {
  #if BUILDFLAG(IS_WIN)
    return minimizable_;
@@ -213,7 +213,7 @@ $NetBSD$
    return true;
  #endif
  }
-@@ -2002,7 +2002,7 @@ std::unique_ptr<views::FrameView> Native
+@@ -2008,7 +2008,7 @@ std::unique_ptr<views::FrameView> Native
  #endif
  }
  
@@ -222,7 +222,7 @@ $NetBSD$
  views::FrameViewLinux* NativeWindowViews::GetFrameViewLinux() const {
    auto* ncv = widget()->non_client_view();
    if (!ncv)
-@@ -2021,7 +2021,7 @@ void NativeWindowViews::HandleKeyboardEv
+@@ -2027,7 +2027,7 @@ void NativeWindowViews::HandleKeyboardEv
    if (widget_destroyed_)
      return;
  
@@ -231,7 +231,7 @@ $NetBSD$
    if (event.windows_key_code == ui::VKEY_BROWSER_BACK)
      NotifyWindowExecuteAppCommand(kBrowserBackward);
    else if (event.windows_key_code == ui::VKEY_BROWSER_FORWARD)
-@@ -2040,7 +2040,7 @@ void NativeWindowViews::OnMouseEvent(ui:
+@@ -2046,7 +2046,7 @@ void NativeWindowViews::OnMouseEvent(ui:
    // Alt+Click should not toggle menu bar.
    root_view_.ResetAltState();
  
diff --git a/electron43/patches/patch-electron_shell_browser_native__window__views.h b/electron43/patches/patch-electron_shell_browser_native__window__views.h
index 6338efaef3..5895da2674 100644
--- a/electron43/patches/patch-electron_shell_browser_native__window__views.h
+++ b/electron43/patches/patch-electron_shell_browser_native__window__views.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/native_window_views.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/native_window_views.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/native_window_views.h
 @@ -31,7 +31,7 @@ namespace gin {
  class Arguments;
diff --git a/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.cc b/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.cc
index 7ade7ad1e4..08ac542e60 100644
--- a/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.cc
+++ b/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/osr/osr_host_display_client.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/osr/osr_host_display_client.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/osr/osr_host_display_client.cc
 @@ -102,7 +102,7 @@ void OffScreenHostDisplayClient::CreateL
    layered_window_updater_->SetActive(active_);
diff --git a/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.h b/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.h
index f5bc7477e9..e81c5ed9bb 100644
--- a/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.h
+++ b/electron43/patches/patch-electron_shell_browser_osr_osr__host__display__client.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/osr/osr_host_display_client.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/osr/osr_host_display_client.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/osr/osr_host_display_client.h
 @@ -74,7 +74,7 @@ class OffScreenHostDisplayClient : publi
        mojo::PendingReceiver<viz::mojom::LayeredWindowUpdater> receiver)
diff --git a/electron43/patches/patch-electron_shell_browser_osr_osr__paint__event.h b/electron43/patches/patch-electron_shell_browser_osr_osr__paint__event.h
index 5aa4280d86..23948cb08e 100644
--- a/electron43/patches/patch-electron_shell_browser_osr_osr__paint__event.h
+++ b/electron43/patches/patch-electron_shell_browser_osr_osr__paint__event.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/osr/osr_paint_event.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/osr/osr_paint_event.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/osr/osr_paint_event.h
 @@ -99,7 +99,7 @@ struct OffscreenSharedTextureValue {
    // On Windows it is a HANDLE to the shared D3D11 texture.
diff --git a/electron43/patches/patch-electron_shell_browser_osr_osr__video__consumer.cc b/electron43/patches/patch-electron_shell_browser_osr_osr__video__consumer.cc
index 7aace06a35..c2d83a36b7 100644
--- a/electron43/patches/patch-electron_shell_browser_osr_osr__video__consumer.cc
+++ b/electron43/patches/patch-electron_shell_browser_osr_osr__video__consumer.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/osr/osr_video_consumer.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/osr/osr_video_consumer.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/osr/osr_video_consumer.cc
 @@ -49,7 +49,7 @@ bool IsPlatformSharedTextureHandle(const
    return handle.type == gfx::DXGI_SHARED_HANDLE;
diff --git a/electron43/patches/patch-electron_shell_browser_printing_printing__utils.cc b/electron43/patches/patch-electron_shell_browser_printing_printing__utils.cc
index d65b69a027..a501401976 100644
--- a/electron43/patches/patch-electron_shell_browser_printing_printing__utils.cc
+++ b/electron43/patches/patch-electron_shell_browser_printing_printing__utils.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/printing/printing_utils.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/printing/printing_utils.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/printing/printing_utils.cc
 @@ -31,7 +31,7 @@
  #include <ApplicationServices/ApplicationServices.h>
diff --git a/electron43/patches/patch-electron_shell_browser_relauncher__linux.cc b/electron43/patches/patch-electron_shell_browser_relauncher__linux.cc
index 4abbb548f9..f272152543 100644
--- a/electron43/patches/patch-electron_shell_browser_relauncher__linux.cc
+++ b/electron43/patches/patch-electron_shell_browser_relauncher__linux.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/relauncher_linux.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/relauncher_linux.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/relauncher_linux.cc
 @@ -6,8 +6,10 @@
  
diff --git a/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents.cc b/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents.cc
index 0af4d67d03..bf581334ca 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents.cc
+++ b/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/inspectable_web_contents.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/inspectable_web_contents.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/inspectable_web_contents.cc
 @@ -619,7 +619,7 @@ void InspectableWebContents::LoadComplet
            dock_state_ = "right";
diff --git a/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc b/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
index 5bf1abdd53..9ab621677e 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
+++ b/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/inspectable_web_contents_view.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/inspectable_web_contents_view.cc
 @@ -236,7 +236,7 @@ void InspectableWebContentsView::SetIsDo
      params.delegate = devtools_window_delegate_;
diff --git a/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h b/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h
index 93156ac401..83c84cbcdb 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h
+++ b/electron43/patches/patch-electron_shell_browser_ui_inspectable__web__contents__view__delegate.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/inspectable_web_contents_view_delegate.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/inspectable_web_contents_view_delegate.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/inspectable_web_contents_view_delegate.h
 @@ -24,7 +24,7 @@ class InspectableWebContentsViewDelegate
    // Returns the icon of devtools window.
diff --git a/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.cc b/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
index 786e253b43..c7ab7533c5 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
+++ b/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/views/electron_views_delegate.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/views/electron_views_delegate.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/views/electron_views_delegate.cc
 @@ -10,7 +10,7 @@
  #include "ui/views/widget/native_widget_aura.h"
diff --git a/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.h b/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.h
index ae98900986..df5d29d16a 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.h
+++ b/electron43/patches/patch-electron_shell_browser_ui_views_electron__views__delegate.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/views/electron_views_delegate.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/views/electron_views_delegate.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/views/electron_views_delegate.h
 @@ -44,7 +44,7 @@ class ViewsDelegate : public views::View
    HICON GetSmallWindowIcon() const override;
diff --git a/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.cc b/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.cc
index ac3f7da303..a8218bb383 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.cc
+++ b/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.cc
@@ -1,30 +1,30 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/views/menu_bar.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/views/menu_bar.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/views/menu_bar.cc
-@@ -14,7 +14,7 @@
+@@ -16,7 +16,7 @@
  #include "ui/views/background.h"
  #include "ui/views/layout/box_layout.h"
  
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+ #include "shell/browser/ui/gtk_util.h"
  #include "ui/gtk/gtk_util.h"  // nogncheck
  #endif
- 
-@@ -215,7 +215,7 @@ void MenuBar::ViewHierarchyChanged(
+@@ -218,7 +218,7 @@ void MenuBar::ViewHierarchyChanged(
  
  void MenuBar::RefreshColorCache(const ui::NativeTheme* theme) {
    if (theme) {
 -#if BUILDFLAG(IS_LINUX)
 +#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
-     background_color_ = gtk::GetBgColor("GtkMenuBar#menubar");
-     enabled_color_ =
-         gtk::GetFgColor("GtkMenuBar#menubar GtkMenuItem#menuitem GtkLabel");
-@@ -241,7 +241,7 @@ void MenuBar::RebuildChildren() {
+     if (gtk_util::IsGtkAvailable()) {
+       background_color_ = gtk::GetBgColor("GtkMenuBar#menubar");
+       enabled_color_ =
+@@ -254,7 +254,7 @@ void MenuBar::RebuildChildren() {
  }
  
  void MenuBar::UpdateViewColors() {
@@ -33,7 +33,7 @@ $NetBSD$
    // set menubar background color
    SetBackground(views::CreateSolidBackground(background_color_));
  #endif
-@@ -249,7 +249,7 @@ void MenuBar::UpdateViewColors() {
+@@ -262,7 +262,7 @@ void MenuBar::UpdateViewColors() {
    // set child colors
    if (menu_model_ == nullptr)
      return;
diff --git a/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.h b/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.h
index ac8a57c4aa..7efa6ecf3a 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.h
+++ b/electron43/patches/patch-electron_shell_browser_ui_views_menu__bar.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/views/menu_bar.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/views/menu_bar.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/views/menu_bar.h
 @@ -81,7 +81,7 @@ class MenuBar : public views::Accessible
    View* FindAccelChild(char16_t key);
diff --git a/electron43/patches/patch-electron_shell_browser_ui_views_submenu__button.cc b/electron43/patches/patch-electron_shell_browser_ui_views_submenu__button.cc
index d9fb3bf82b..b3d7b5b536 100644
--- a/electron43/patches/patch-electron_shell_browser_ui_views_submenu__button.cc
+++ b/electron43/patches/patch-electron_shell_browser_ui_views_submenu__button.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/browser/ui/views/submenu_button.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/browser/ui/views/submenu_button.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/browser/ui/views/submenu_button.cc
 @@ -23,7 +23,7 @@ SubmenuButton::SubmenuButton(PressedCall
                               const SkColor& background_color)
diff --git a/electron43/patches/patch-electron_shell_common_api_electron__api__clipboard.cc b/electron43/patches/patch-electron_shell_common_api_electron__api__clipboard.cc
index 27d337b23c..d738edd1e2 100644
--- a/electron43/patches/patch-electron_shell_common_api_electron__api__clipboard.cc
+++ b/electron43/patches/patch-electron_shell_common_api_electron__api__clipboard.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/api/electron_api_clipboard.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/api/electron_api_clipboard.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/api/electron_api_clipboard.cc
 @@ -95,7 +95,7 @@ std::string Clipboard::Read(const std::s
        ui::ClipboardFormatType::CustomPlatformType(format_string));
diff --git a/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.cc b/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.cc
index b3e45875cb..d04b2cc667 100644
--- a/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.cc
+++ b/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/api/electron_api_native_image.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/api/electron_api_native_image.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/api/electron_api_native_image.cc
 @@ -676,7 +676,7 @@ void Initialize(v8::Local<v8::Object> ex
    native_image.SetMethod("createFromNamedImage",
diff --git a/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.h b/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.h
index 8da72f9db1..910285978b 100644
--- a/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.h
+++ b/electron43/patches/patch-electron_shell_common_api_electron__api__native__image.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/api/electron_api_native_image.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/api/electron_api_native_image.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/api/electron_api_native_image.h
 @@ -73,7 +73,7 @@ class NativeImage final : public gin::Wr
    static NativeImage* CreateFromNamedImage(gin::Arguments* args,
diff --git a/electron43/patches/patch-electron_shell_common_api_electron__api__shared__texture.cc b/electron43/patches/patch-electron_shell_common_api_electron__api__shared__texture.cc
index ab4e6b650b..c804f4a24b 100644
--- a/electron43/patches/patch-electron_shell_common_api_electron__api__shared__texture.cc
+++ b/electron43/patches/patch-electron_shell_common_api_electron__api__shared__texture.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/api/electron_api_shared_texture.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/api/electron_api_shared_texture.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/api/electron_api_shared_texture.cc
 @@ -27,7 +27,7 @@
  #include "third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.h"  // nogncheck
diff --git a/electron43/patches/patch-electron_shell_common_api_electron__api__testing.cc b/electron43/patches/patch-electron_shell_common_api_electron__api__testing.cc
index 0805446ab5..e11c720e29 100644
--- a/electron43/patches/patch-electron_shell_common_api_electron__api__testing.cc
+++ b/electron43/patches/patch-electron_shell_common_api_electron__api__testing.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/api/electron_api_testing.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/api/electron_api_testing.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/api/electron_api_testing.cc
 @@ -27,7 +27,7 @@
  #include "ui/accessibility/platform/ax_platform.h"
diff --git a/electron43/patches/patch-electron_shell_common_api_electron__bindings.cc b/electron43/patches/patch-electron_shell_common_api_electron__bindings.cc
index 7f5b601fd9..3807b2745b 100644
--- a/electron43/patches/patch-electron_shell_common_api_electron__bindings.cc
+++ b/electron43/patches/patch-electron_shell_common_api_electron__bindings.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/api/electron_bindings.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/api/electron_bindings.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/api/electron_bindings.cc
 @@ -185,7 +185,7 @@ v8::Local<v8::Value> ElectronBindings::G
  #endif
diff --git a/electron43/patches/patch-electron_shell_common_electron__command__line.cc b/electron43/patches/patch-electron_shell_common_electron__command__line.cc
index b2e620e47e..43875fd5bf 100644
--- a/electron43/patches/patch-electron_shell_common_electron__command__line.cc
+++ b/electron43/patches/patch-electron_shell_common_electron__command__line.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/electron_command_line.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/electron_command_line.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/electron_command_line.cc
 @@ -39,7 +39,7 @@ std::vector<std::string> ElectronCommand
  #endif
diff --git a/electron43/patches/patch-electron_shell_common_electron__command__line.h b/electron43/patches/patch-electron_shell_common_electron__command__line.h
index 0f7202568a..837bbe49dd 100644
--- a/electron43/patches/patch-electron_shell_common_electron__command__line.h
+++ b/electron43/patches/patch-electron_shell_common_electron__command__line.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/electron_command_line.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/electron_command_line.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/electron_command_line.h
 @@ -24,7 +24,7 @@ class ElectronCommandLine {
  
diff --git a/electron43/patches/patch-electron_shell_common_electron__paths.cc b/electron43/patches/patch-electron_shell_common_electron__paths.cc
index e6c690fff9..7510534a2d 100644
--- a/electron43/patches/patch-electron_shell_common_electron__paths.cc
+++ b/electron43/patches/patch-electron_shell_common_electron__paths.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/electron_paths.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/electron_paths.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/electron_paths.cc
 @@ -12,7 +12,7 @@
  #include "shell/common/platform_util.h"
diff --git a/electron43/patches/patch-electron_shell_common_electron__paths.h b/electron43/patches/patch-electron_shell_common_electron__paths.h
index b22e04d13b..d7cb50a75b 100644
--- a/electron43/patches/patch-electron_shell_common_electron__paths.h
+++ b/electron43/patches/patch-electron_shell_common_electron__paths.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/electron_paths.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/electron_paths.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/electron_paths.h
 @@ -31,7 +31,7 @@ enum {
    DIR_RECENT,  // Directory where recent files live
diff --git a/electron43/patches/patch-electron_shell_common_gin__converters_osr__converter.cc b/electron43/patches/patch-electron_shell_common_gin__converters_osr__converter.cc
index 6960257261..516a1509fd 100644
--- a/electron43/patches/patch-electron_shell_common_gin__converters_osr__converter.cc
+++ b/electron43/patches/patch-electron_shell_common_gin__converters_osr__converter.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/gin_converters/osr_converter.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/gin_converters/osr_converter.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/gin_converters/osr_converter.cc
 @@ -12,7 +12,7 @@
  
diff --git a/electron43/patches/patch-electron_shell_common_gin__converters_std__converter.h b/electron43/patches/patch-electron_shell_common_gin__converters_std__converter.h
index 2ad412e777..34e2af6700 100644
--- a/electron43/patches/patch-electron_shell_common_gin__converters_std__converter.h
+++ b/electron43/patches/patch-electron_shell_common_gin__converters_std__converter.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/gin_converters/std_converter.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/gin_converters/std_converter.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/gin_converters/std_converter.h
 @@ -57,7 +57,7 @@ struct Converter<std::array<T, N>> {
    }
diff --git a/electron43/patches/patch-electron_shell_common_node__bindings.cc b/electron43/patches/patch-electron_shell_common_node__bindings.cc
index 8b3d3062e6..1e51dac7ed 100644
--- a/electron43/patches/patch-electron_shell_common_node__bindings.cc
+++ b/electron43/patches/patch-electron_shell_common_node__bindings.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/node_bindings.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/node_bindings.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/node_bindings.cc
 @@ -57,7 +57,7 @@
  #include "third_party/electron_node/src/node_snapshot_builder.h"
diff --git a/electron43/patches/patch-electron_shell_common_node__bindings__linux.cc b/electron43/patches/patch-electron_shell_common_node__bindings__linux.cc
index 560211426a..af68c07aa9 100644
--- a/electron43/patches/patch-electron_shell_common_node__bindings__linux.cc
+++ b/electron43/patches/patch-electron_shell_common_node__bindings__linux.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/node_bindings_linux.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/node_bindings_linux.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/node_bindings_linux.cc
 @@ -4,13 +4,26 @@
  
diff --git a/electron43/patches/patch-electron_shell_common_platform__util.h b/electron43/patches/patch-electron_shell_common_platform__util.h
index 0f08c2533c..2e238a6bdb 100644
--- a/electron43/patches/patch-electron_shell_common_platform__util.h
+++ b/electron43/patches/patch-electron_shell_common_platform__util.h
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/platform_util.h.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/platform_util.h.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/platform_util.h
 @@ -60,7 +60,7 @@ bool SetLoginItemEnabled(const std::stri
                           bool enabled);
diff --git a/electron43/patches/patch-electron_shell_common_v8__oom__diagnostics.cc b/electron43/patches/patch-electron_shell_common_v8__oom__diagnostics.cc
index ceacd37f5f..d88e2f52c0 100644
--- a/electron43/patches/patch-electron_shell_common_v8__oom__diagnostics.cc
+++ b/electron43/patches/patch-electron_shell_common_v8__oom__diagnostics.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/common/v8_oom_diagnostics.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/common/v8_oom_diagnostics.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/common/v8_oom_diagnostics.cc
 @@ -15,7 +15,7 @@
  
diff --git a/electron43/patches/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc b/electron43/patches/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc
index c67c5af591..4d9d5d78b9 100644
--- a/electron43/patches/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc
+++ b/electron43/patches/patch-electron_shell_renderer_api_electron__api__crash__reporter__renderer.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/renderer/api/electron_api_crash_reporter_renderer.cc
 @@ -6,7 +6,7 @@
  #include "shell/common/gin_helper/dictionary.h"
diff --git a/electron43/patches/patch-electron_shell_services_node_node__service.cc b/electron43/patches/patch-electron_shell_services_node_node__service.cc
index 53799595b4..e84d6385f9 100644
--- a/electron43/patches/patch-electron_shell_services_node_node__service.cc
+++ b/electron43/patches/patch-electron_shell_services_node_node__service.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/shell/services/node/node_service.cc.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/shell/services/node/node_service.cc.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/shell/services/node/node_service.cc
 @@ -26,7 +26,7 @@
  #include "shell/common/v8_util.h"
diff --git a/electron43/patches/patch-electron_spec_api-app.spec.ts b/electron43/patches/patch-electron_spec_api-app.spec.ts
index 1593d99a51..bbf6c825ba 100644
--- a/electron43/patches/patch-electron_spec_api-app.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-app.spec.ts
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-app.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-app.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-app.spec.ts
-@@ -127,7 +127,7 @@ describe('app module', () => {
+@@ -131,7 +131,7 @@ describe('app module', () => {
      });
    });
  
@@ -15,21 +15,21 @@ $NetBSD$
      it('sets the desktop name to the CHROME_DESKTOP environment variable', () => {
        const original = process.env.CHROME_DESKTOP;
        defer(() => {
-@@ -156,11 +156,11 @@ describe('app module', () => {
+@@ -160,11 +160,11 @@ describe('app module', () => {
    });
  
    describe('app.getPreferredSystemLanguages()', () => {
 -    ifit(process.platform !== 'linux')('should not be empty', () => {
 +    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('should not be empty', () => {
-       expect(app.getPreferredSystemLanguages().length).to.not.equal(0);
+       expect(app.getPreferredSystemLanguages().length).not.toBe(0);
      });
  
 -    ifit(process.platform === 'linux')('should be empty or contain C entry', () => {
 +    ifit(process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')('should be empty or contain C entry', () => {
        const languages = app.getPreferredSystemLanguages();
        if (languages.length) {
-         expect(languages).to.not.include('C');
-@@ -202,7 +202,7 @@ describe('app module', () => {
+         expect(languages).not.toContain('C');
+@@ -206,7 +206,7 @@ describe('app module', () => {
      });
    });
  
@@ -38,16 +38,25 @@ $NetBSD$
      'when a D-Bus bus goes away',
      () => {
        it('exits cleanly instead of crashing', async () => {
-@@ -293,7 +293,7 @@ describe('app module', () => {
+@@ -300,7 +300,7 @@ describe('app module', () => {
+     // A missing display makes toolkit initialisation fail before the main loop
+     // runs; that early return must still tear the JS environment down cleanly.
+     // Skipped under ASan for the same reason as the test above.
+-    ifit(process.platform === 'linux' && !process.env.IS_ASAN)(
++    ifit((process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') && !process.env.IS_ASAN)(
+       'exits with code 1 when no display is available',
+       async () => {
+         const appPath = path.join(fixturesPath, 'api', 'no-display');
+@@ -321,7 +321,7 @@ describe('app module', () => {
        }
-     });
+     );
  
--    ifit(['darwin', 'linux'].includes(process.platform))('exits gracefully', async function () {
-+    ifit(['darwin', 'linux', 'freebsd', 'netbsd'].includes(process.platform))('exits gracefully', async function () {
+-    ifit(['darwin', 'linux'].includes(process.platform))('exits gracefully', async () => {
++    ifit(['darwin', 'linux', 'freebsd', 'netbsd'].includes(process.platform))('exits gracefully', async () => {
        const electronPath = process.execPath;
        const appPath = path.join(fixturesPath, 'api', 'singleton');
        appProcess = cp.spawn(electronPath, [appPath]);
-@@ -491,7 +491,7 @@ describe('app module', () => {
+@@ -554,7 +554,7 @@ describe('app module', () => {
    });
  
    // GitHub Actions macOS-13 runners used for x64 seem to have a problem with this test.
@@ -56,7 +65,7 @@ $NetBSD$
      const tempFiles = [
        path.join(fixturesPath, 'foo.txt'),
        path.join(fixturesPath, 'bar.txt'),
-@@ -620,7 +620,7 @@ describe('app module', () => {
+@@ -691,7 +691,7 @@ describe('app module', () => {
    //   let w = null
  
    //   before(function () {
@@ -65,7 +74,7 @@ $NetBSD$
    //       this.skip()
    //     }
    //   })
-@@ -733,7 +733,7 @@ describe('app module', () => {
+@@ -804,7 +804,7 @@ describe('app module', () => {
  
    describe('app.badgeCount', () => {
      const platformIsNotSupported =
@@ -74,16 +83,16 @@ $NetBSD$
  
      const expectedBadgeCount = 42;
  
-@@ -780,7 +780,7 @@ describe('app module', () => {
+@@ -851,7 +851,7 @@ describe('app module', () => {
    });
  
    ifdescribe(
 -    process.platform !== 'linux' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64')
 +    process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd' && !process.mas && (process.platform !== 'darwin' || process.arch === 'arm64')
-   )('app.get/setLoginItemSettings API', function () {
+   )('app.get/setLoginItemSettings API', () => {
      const isMac = process.platform === 'darwin';
      const isWin = process.platform === 'win32';
-@@ -1207,7 +1207,7 @@ describe('app module', () => {
+@@ -1278,7 +1278,7 @@ describe('app module', () => {
      });
    });
  
@@ -92,7 +101,7 @@ $NetBSD$
      // These tests toggle a process-wide AXMode. Turn it back off so the rest of
      // the suite doesn't run with renderer accessibility enabled.
      afterEach(() => {
-@@ -1483,7 +1483,7 @@ describe('app module', () => {
+@@ -1561,7 +1561,7 @@ describe('app module', () => {
      });
    });
  
@@ -100,18 +109,18 @@ $NetBSD$
 +  ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('select-client-certificate event', () => {
      let w: BrowserWindow;
  
-     before(function () {
-@@ -1626,7 +1626,7 @@ describe('app module', () => {
+     beforeAll(() => {
+@@ -1707,7 +1707,7 @@ describe('app module', () => {
  
    describe('getApplicationNameForProtocol()', () => {
      // TODO: Linux CI doesn't have registered http & https handlers
 -    ifit(!(process.env.CI && process.platform === 'linux') && !isWayland)(
 +    ifit(!(process.env.CI && (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')) && !isWayland)(
        'returns application names for common protocols',
-       function () {
+       () => {
          // We can't expect particular app names here, but these protocols should
-@@ -1643,7 +1643,7 @@ describe('app module', () => {
-       expect(app.getApplicationNameForProtocol('bogus-protocol://')).to.equal('');
+@@ -1724,7 +1724,7 @@ describe('app module', () => {
+       expect(app.getApplicationNameForProtocol('bogus-protocol://')).toBe('');
      });
  
 -    ifdescribe(process.platform === 'linux')('on Linux with mocked XDG dirs', () => {
@@ -119,35 +128,35 @@ $NetBSD$
        const desktopFileId = 'mock-browser.desktop';
        const mockDisplayName = 'Mock Browser';
        const mockScheme = 'mockproto';
-@@ -1693,7 +1693,7 @@ describe('app module', () => {
+@@ -1774,7 +1774,7 @@ describe('app module', () => {
      let xdgBinDir: string;
  
-     before(() => {
+     beforeAll(() => {
 -      if (process.platform !== 'linux') {
 +      if (process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd') {
          return;
        }
  
-@@ -1710,7 +1710,7 @@ describe('app module', () => {
+@@ -1791,7 +1791,7 @@ describe('app module', () => {
      });
  
-     after(() => {
+     afterAll(() => {
 -      if (process.platform === 'linux') {
 +      if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
          fs.rmSync(xdgDir, { recursive: true, force: true });
        }
      });
-@@ -1722,7 +1722,7 @@ describe('app module', () => {
+@@ -1803,7 +1803,7 @@ describe('app module', () => {
      });
  
-     it('returns resolved promise with appPath, displayName and icon', async function () {
+     it('returns resolved promise with appPath, displayName and icon', async () => {
 -      if (process.platform === 'linux') {
 +      if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
          const appInfo = await spawnProtocolInfoWithXdgMock(`${mockScheme}://`, xdgDataHome, xdgConfigHome);
-         expect(appInfo.name).to.equal(mockDisplayName);
-         expect(appInfo.path).to.equal('/usr/bin/true');
-@@ -1736,7 +1736,7 @@ describe('app module', () => {
-       expect(appInfo.icon).not.to.be.undefined();
+         expect(appInfo.name).toBe(mockDisplayName);
+         expect(appInfo.path).toBe('/usr/bin/true');
+@@ -1817,7 +1817,7 @@ describe('app module', () => {
+       expect(appInfo.icon).not.toBeUndefined();
      });
  
 -    ifit(process.platform === 'linux')('resolves an executable name via PATH', async () => {
@@ -155,7 +164,7 @@ $NetBSD$
        const pathLookupExecutable = 'mock-browser';
        const pathLookupExecutablePath = path.join(xdgBinDir, pathLookupExecutable);
        const pathLookupDisplayName = 'Mock Browser PATH';
-@@ -1770,7 +1770,7 @@ describe('app module', () => {
+@@ -1851,7 +1851,7 @@ describe('app module', () => {
      });
    });
  
@@ -164,7 +173,7 @@ $NetBSD$
      const protocol = 'electron-test-linux';
      const desktopFileId = 'electron-test.desktop';
      const protocolMimeType = `x-scheme-handler/${protocol}`;
-@@ -1887,7 +1887,7 @@ describe('app module', () => {
+@@ -1968,7 +1968,7 @@ describe('app module', () => {
    });
  
    // FIXME Get these specs running on Linux CI
@@ -173,16 +182,16 @@ $NetBSD$
      const iconPath = path.join(import.meta.dirname, 'fixtures/assets/icon.ico');
      const sizes = {
        small: 16,
-@@ -1969,7 +1969,7 @@ describe('app module', () => {
-           expect(entry.memory).to.have.property('privateBytes').that.is.greaterThan(0);
+@@ -2057,7 +2057,7 @@ describe('app module', () => {
+           expect(entry.memory.privateBytes).toBeGreaterThan(0);
          }
  
 -        if (process.platform !== 'linux') {
 +        if (process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd') {
-           expect(entry.sandboxed).to.be.a('boolean');
+           expect(entry.sandboxed).toBeTypeOf('boolean');
          }
  
-@@ -1986,7 +1986,7 @@ describe('app module', () => {
+@@ -2074,7 +2074,7 @@ describe('app module', () => {
      });
    });
  
@@ -191,7 +200,7 @@ $NetBSD$
      const fixture = path.join(fixturesPath, 'apps', 'gdk-backend');
      const run = async (env: NodeJS.ProcessEnv) => {
        const child = cp.spawn(process.execPath, [fixture], { env, stdio: ['ignore', 'pipe', 'ignore'] });
-@@ -2063,7 +2063,7 @@ describe('app module', () => {
+@@ -2156,7 +2156,7 @@ describe('app module', () => {
  
      it('succeeds with complete GPUInfo', async () => {
        const completeInfo = await getGPUInfo('complete');
@@ -200,7 +209,7 @@ $NetBSD$
          // For linux and macOS complete info is same as basic info
          await verifyBasicGPUInfo(completeInfo);
          const basicInfo = await getGPUInfo('basic');
-@@ -2087,7 +2087,7 @@ describe('app module', () => {
+@@ -2179,7 +2179,7 @@ describe('app module', () => {
      });
    });
  
diff --git a/electron43/patches/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts b/electron43/patches/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts
index 061c562024..8c9d416e7d 100644
--- a/electron43/patches/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-browser-window-ignore-mouse-events.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-browser-window-ignore-mouse-events.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-browser-window-ignore-mouse-events.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-browser-window-ignore-mouse-events.spec.ts
 @@ -41,11 +41,11 @@ type PageEvent = { type: string; x?: num
  // Nothing can inject input into a Wayland compositor from a client, so only
diff --git a/electron43/patches/patch-electron_spec_api-browser-window.spec.ts b/electron43/patches/patch-electron_spec_api-browser-window.spec.ts
index 30313bca65..a9af02b8d7 100644
--- a/electron43/patches/patch-electron_spec_api-browser-window.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-browser-window.spec.ts
@@ -1,13 +1,13 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-browser-window.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-browser-window.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-browser-window.spec.ts
 @@ -105,7 +105,7 @@ describe('BrowserWindow module', () => {
-       }).not.to.throw();
+       }).not.toThrow();
      });
  
 -    ifit(process.platform === 'linux')('does not crash when setting large window icons', async () => {
@@ -24,7 +24,7 @@ $NetBSD$
      afterEach(closeAllWindows);
      it('can set content protection', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -1397,7 +1397,7 @@ describe('BrowserWindow module', () => {
+@@ -1406,7 +1406,7 @@ describe('BrowserWindow module', () => {
  
      describe('BrowserWindow.minimize()', () => {
        // TODO(codebytere): Enable for Linux once maximize/minimize events work in CI.
@@ -33,7 +33,7 @@ $NetBSD$
          const minimize = once(w, 'minimize');
          w.minimize();
          await minimize;
-@@ -1414,7 +1414,7 @@ describe('BrowserWindow module', () => {
+@@ -1423,7 +1423,7 @@ describe('BrowserWindow module', () => {
        });
  
        // TODO(dsanders11): Enable for Linux once CI plays nice with these kinds of tests
@@ -42,7 +42,7 @@ $NetBSD$
          const maximize = once(w, 'maximize');
          const shown = once(w, 'show');
          w.maximize();
-@@ -1511,7 +1511,7 @@ describe('BrowserWindow module', () => {
+@@ -1520,7 +1520,7 @@ describe('BrowserWindow module', () => {
          }
        );
  
@@ -51,8 +51,8 @@ $NetBSD$
          const w1 = new BrowserWindow({ show: false });
          const w2 = new BrowserWindow({ show: false });
          const w3 = new BrowserWindow({ show: false });
-@@ -1616,7 +1616,7 @@ describe('BrowserWindow module', () => {
-         expect(w.isFocused()).to.equal(false);
+@@ -1625,7 +1625,7 @@ describe('BrowserWindow module', () => {
+         expect(w.isFocused()).toBe(false);
        });
  
 -      ifit(process.platform !== 'linux')('transfers focus status to the next window', async () => {
@@ -60,7 +60,7 @@ $NetBSD$
          const w1 = new BrowserWindow({ show: false });
          const w2 = new BrowserWindow({ show: false });
          const w3 = new BrowserWindow({ show: false });
-@@ -2170,7 +2170,7 @@ describe('BrowserWindow module', () => {
+@@ -2179,7 +2179,7 @@ describe('BrowserWindow module', () => {
          });
        });
  
@@ -69,7 +69,7 @@ $NetBSD$
          it('checks normal bounds when maximized', async () => {
            const bounds = w.getBounds();
            const maximize = once(w, 'maximize');
-@@ -2388,7 +2388,7 @@ describe('BrowserWindow module', () => {
+@@ -2398,7 +2398,7 @@ describe('BrowserWindow module', () => {
          });
        });
  
@@ -78,7 +78,7 @@ $NetBSD$
          it('checks normal bounds when minimized', async () => {
            const bounds = w.getBounds();
            const minimize = once(w, 'minimize');
-@@ -3497,7 +3497,7 @@ describe('BrowserWindow module', () => {
+@@ -3507,7 +3507,7 @@ describe('BrowserWindow module', () => {
    describe('BrowserWindow.setOpacity(opacity)', () => {
      afterEach(closeAllWindows);
  
@@ -86,8 +86,8 @@ $NetBSD$
 +    ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('Windows and Mac', () => {
        it('make window with initial opacity', () => {
          const w = new BrowserWindow({ show: false, opacity: 0.5 });
-         expect(w.getOpacity()).to.equal(0.5);
-@@ -3523,7 +3523,7 @@ describe('BrowserWindow module', () => {
+         expect(w.getOpacity()).toBe(0.5);
+@@ -3533,7 +3533,7 @@ describe('BrowserWindow module', () => {
        });
      });
  
@@ -96,8 +96,8 @@ $NetBSD$
        it('sets 1 regardless of parameter', () => {
          const w = new BrowserWindow({ show: false });
          w.setOpacity(0);
-@@ -3753,7 +3753,7 @@ describe('BrowserWindow module', () => {
-       expect(overlayRectPreMax.height).to.equal(size);
+@@ -3763,7 +3763,7 @@ describe('BrowserWindow module', () => {
+       expect(overlayRectPreMax.height).toBe(size);
  
        // 'maximize' event is not emitted on Linux in CI.
 -      if (process.platform !== 'linux' && !w.isMaximized()) {
@@ -105,8 +105,8 @@ $NetBSD$
          const maximize = once(w, 'maximize');
          w.show();
          w.maximize();
-@@ -3883,7 +3883,7 @@ describe('BrowserWindow module', () => {
-         expect(preMaxHeight).to.equal(size);
+@@ -3885,7 +3885,7 @@ describe('BrowserWindow module', () => {
+         expect(preMaxHeight).toBe(size);
  
          // 'maximize' event is not emitted on Linux in CI.
 -        if (process.platform !== 'linux' && !w.isMaximized()) {
@@ -114,16 +114,16 @@ $NetBSD$
            const maximize = once(w, 'maximize');
            w.show();
            w.maximize();
-@@ -5071,7 +5071,7 @@ describe('BrowserWindow module', () => {
-         expect(test.nodeTimers).to.equal(true);
-         expect(test.nodeUrl).to.equal(true);
+@@ -5084,7 +5084,7 @@ describe('BrowserWindow module', () => {
+         expect(test.nodeTimers).toBe(true);
+         expect(test.nodeUrl).toBe(true);
  
 -        if (process.platform === 'linux' && test.osSandbox) {
 +        if ((process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') && test.osSandbox) {
-           expect(test.creationTime).to.be.null('creation time');
-           expect(test.systemMemoryInfo).to.be.null('system memory info');
+           expect(test.creationTime, 'creation time').toBeNull();
+           expect(test.systemMemoryInfo, 'system memory info').toBeNull();
          } else {
-@@ -5587,7 +5587,7 @@ describe('BrowserWindow module', () => {
+@@ -5602,7 +5602,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -132,7 +132,7 @@ $NetBSD$
      afterEach(closeAllWindows);
      it('emits an event when window is maximized', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -5863,7 +5863,7 @@ describe('BrowserWindow module', () => {
+@@ -5878,7 +5878,7 @@ describe('BrowserWindow module', () => {
      // TODO(zcbenz):
      // This test does not run on Linux CI. See:
      // https://github.com/electron/electron/issues/28699
@@ -141,16 +141,16 @@ $NetBSD$
        'should bring a minimized maximized window back to maximized state',
        async () => {
          const w = new BrowserWindow({});
-@@ -5881,7 +5881,7 @@ describe('BrowserWindow module', () => {
+@@ -5896,7 +5896,7 @@ describe('BrowserWindow module', () => {
        }
      );
  
--    ifit(process.platform !== 'linux')('should not break fullscreen state', async () => {
-+    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('should not break fullscreen state', async () => {
+-    ifit(process.platform !== 'linux')('should not break fullscreen state', { tags: ['serial'] }, async () => {
++    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('should not break fullscreen state', { tags: ['serial'] }, async () => {
        const w = new BrowserWindow({ show: false });
        w.show();
  
-@@ -5904,7 +5904,7 @@ describe('BrowserWindow module', () => {
+@@ -5919,7 +5919,7 @@ describe('BrowserWindow module', () => {
    });
  
    // TODO(dsanders11): Enable once maximize event works on Linux again on CI
@@ -159,7 +159,7 @@ $NetBSD$
      afterEach(closeAllWindows);
      it('should show the window if it is not currently shown', async () => {
        const w = new BrowserWindow({ show: false });
-@@ -5941,7 +5941,7 @@ describe('BrowserWindow module', () => {
+@@ -5956,7 +5956,7 @@ describe('BrowserWindow module', () => {
  
      // TODO(dsanders11): Enable once minimize event works on Linux again.
      //                   See https://github.com/electron/electron/issues/28699
@@ -168,16 +168,16 @@ $NetBSD$
        const w = new BrowserWindow();
        const minimize = once(w, 'minimize');
        w.minimize();
-@@ -6456,7 +6456,7 @@ describe('BrowserWindow module', () => {
+@@ -6476,7 +6476,7 @@ describe('BrowserWindow module', () => {
        });
  
        // On Linux there is no "resizable" property of a window.
 -      ifit(process.platform !== 'linux')('does affect maximizability when disabled and enabled', () => {
 +      ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('does affect maximizability when disabled and enabled', () => {
          const w = new BrowserWindow({ show: false });
-         expect(w.resizable).to.be.true('resizable');
+         expect(w.resizable, 'resizable').toBe(true);
  
-@@ -6697,7 +6697,7 @@ describe('BrowserWindow module', () => {
+@@ -6717,7 +6717,7 @@ describe('BrowserWindow module', () => {
      });
    });
  
@@ -186,7 +186,7 @@ $NetBSD$
      // Not implemented on Linux.
      afterEach(closeAllWindows);
  
-@@ -8060,7 +8060,7 @@ describe('BrowserWindow module', () => {
+@@ -8084,7 +8084,7 @@ describe('BrowserWindow module', () => {
    describe('"transparent" option', { tags: ['serial'] }, () => {
      afterEach(closeAllWindows);
  
diff --git a/electron43/patches/patch-electron_spec_api-clipboard.spec.ts b/electron43/patches/patch-electron_spec_api-clipboard.spec.ts
index c6ba15051b..4cc04e5f5f 100644
--- a/electron43/patches/patch-electron_spec_api-clipboard.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-clipboard.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-clipboard.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-clipboard.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-clipboard.spec.ts
 @@ -54,7 +54,7 @@ ifdescribe(process.platform !== 'win32' 
      });
@@ -26,10 +26,10 @@ $NetBSD$
        expect(() => {
 @@ -114,7 +114,7 @@ ifdescribe(process.platform !== 'win32' 
        const readImage = clipboard.readImage();
-       expect(readImage.toDataURL()).to.equal(i.toDataURL());
+       expect(readImage.toDataURL()).toBe(i.toDataURL());
  
 -      if (process.platform !== 'linux') {
 +      if (process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd') {
          if (process.platform !== 'win32') {
-           expect(clipboard.readBookmark()).to.deep.equal(bookmark);
+           expect(clipboard.readBookmark()).toEqual(bookmark);
          } else {
diff --git a/electron43/patches/patch-electron_spec_api-content-tracing.spec.ts b/electron43/patches/patch-electron_spec_api-content-tracing.spec.ts
index 35d70744db..55c18956c0 100644
--- a/electron43/patches/patch-electron_spec_api-content-tracing.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-content-tracing.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-content-tracing.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-content-tracing.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-content-tracing.spec.ts
 @@ -23,7 +23,7 @@ const isCI = !!process.env.CI;
  const fixturesPath = path.resolve(import.meta.dirname, 'fixtures');
@@ -12,15 +12,15 @@ $NetBSD$
  // FIXME: The tests are skipped on linux arm/arm64
 -ifdescribe(!['arm', 'arm64'].includes(process.arch) || process.platform !== 'linux')('contentTracing', () => {
 +ifdescribe(!['arm', 'arm64'].includes(process.arch) || (process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd'))('contentTracing', () => {
-   const record = async (
+   let pendingRecording: Promise<string> | undefined;
+   const record = (
      options: TraceConfig | TraceCategoriesAndOptions,
-     outputFilePath: string | undefined,
-@@ -114,7 +114,7 @@ ifdescribe(!['arm', 'arm64'].includes(pr
+@@ -118,7 +118,7 @@ ifdescribe(!['arm', 'arm64'].includes(pr
      });
    });
  
--  ifdescribe(process.platform !== 'linux')('stopRecording', function () {
-+  ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('stopRecording', function () {
-     if (process.platform === 'win32' && process.arch === 'arm64') {
-       // WOA needs more time
-       this.timeout(10e3);
+-  ifdescribe(process.platform !== 'linux')('stopRecording', { timeout: recordingTimeout }, () => {
++  ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('stopRecording', { timeout: recordingTimeout }, () => {
+     // FIXME(samuelmaddock): this test regularly flakes
+     it.skip('does not crash on empty string', async () => {
+       const options = {
diff --git a/electron43/patches/patch-electron_spec_api-crash-reporter.spec.ts b/electron43/patches/patch-electron_spec_api-crash-reporter.spec.ts
index f9c206b4cf..67373b6bd4 100644
--- a/electron43/patches/patch-electron_spec_api-crash-reporter.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-crash-reporter.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-crash-reporter.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-crash-reporter.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-crash-reporter.spec.ts
 @@ -14,7 +14,7 @@ import { setTimeout } from 'node:timers/
  import { ifdescribe, ifit, defer, startRemoteControlApp, repeatedly, listen } from './lib/spec-helpers.ts';
@@ -21,42 +21,42 @@ $NetBSD$
    // 32-bit Linux.  Figure out why.
 -  if (!(process.platform === 'linux' && process.arch === 'ia32')) {
 +  if (!((process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') && process.arch === 'ia32')) {
-     expect(fields.upload_file_minidump.length).to.be.greaterThan(0);
+     expect(fields.upload_file_minidump.length).toBeGreaterThan(0);
    }
  }
-@@ -193,7 +193,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
+@@ -191,7 +191,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
  
-       // Ensures that passing in crashpadHandlerPID flag for Linx child processes
-       // does not affect child process args.
--      ifit(process.platform === 'linux')('ensure linux child process args are not modified', async () => {
-+      ifit(process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')('ensure linux child process args are not modified', async () => {
-         const { port, waitForCrash } = await startServer();
-         let exitCode: number | null = null;
-         const appPath = path.join(import.meta.dirname, 'fixtures', 'apps', 'crash');
-@@ -660,7 +660,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
-       }
+     // Ensures that passing in crashpadHandlerPID flag for Linx child processes
+     // does not affect child process args.
+-    ifit(process.platform === 'linux')('ensure linux child process args are not modified', async () => {
++    ifit(process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')('ensure linux child process args are not modified', async () => {
+       const { port, waitForCrash } = await startServer();
+       let exitCode: number | null = null;
+       const appPath = path.join(import.meta.dirname, 'fixtures', 'apps', 'crash');
+@@ -653,7 +653,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
+     }
  
-       const processList =
--        process.platform === 'linux'
-+        (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')
-           ? ['main', 'renderer', 'sandboxed-renderer']
-           : ['main', 'renderer', 'sandboxed-renderer', 'node'];
-       for (const crashingProcess of processList) {
-@@ -677,7 +677,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
-               return app.getPath('crashDumps');
-             });
-             let reportsDir = crashesDir;
--            if (process.platform === 'darwin' || process.platform === 'linux') {
-+            if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-               reportsDir = path.join(crashesDir, 'completed');
-             } else if (process.platform === 'win32') {
-               reportsDir = path.join(crashesDir, 'reports');
-@@ -705,7 +705,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
-             expect(remoteCrashesDir).to.equal(crashesDir);
+     const processList =
+-      process.platform === 'linux'
++      process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd'
+         ? ['main', 'renderer', 'sandboxed-renderer']
+         : ['main', 'renderer', 'sandboxed-renderer', 'node'];
+     for (const crashingProcess of processList) {
+@@ -670,7 +670,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
+             return app.getPath('crashDumps');
+           });
+           let reportsDir = crashesDir;
+-          if (process.platform === 'darwin' || process.platform === 'linux') {
++          if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
+             reportsDir = path.join(crashesDir, 'completed');
+           } else if (process.platform === 'win32') {
+             reportsDir = path.join(crashesDir, 'reports');
+@@ -698,7 +698,7 @@ ifdescribe(!isLinuxOnArm && !process.mas
+           expect(remoteCrashesDir).toBe(crashesDir);
  
-             let reportsDir = crashesDir;
--            if (process.platform === 'darwin' || process.platform === 'linux') {
-+            if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-               reportsDir = path.join(crashesDir, 'completed');
-             } else if (process.platform === 'win32') {
-               reportsDir = path.join(crashesDir, 'reports');
+           let reportsDir = crashesDir;
+-          if (process.platform === 'darwin' || process.platform === 'linux') {
++          if (process.platform === 'darwin' || process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
+             reportsDir = path.join(crashesDir, 'completed');
+           } else if (process.platform === 'win32') {
+             reportsDir = path.join(crashesDir, 'reports');
diff --git a/electron43/patches/patch-electron_spec_api-desktop-capturer.spec.ts b/electron43/patches/patch-electron_spec_api-desktop-capturer.spec.ts
index c25aff32a8..4bbc758954 100644
--- a/electron43/patches/patch-electron_spec_api-desktop-capturer.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-desktop-capturer.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-desktop-capturer.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-desktop-capturer.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-desktop-capturer.spec.ts
 @@ -9,7 +9,7 @@ import { ifdescribe, ifit } from './lib/
  import { closeAllWindows } from './lib/window-helpers.ts';
@@ -15,16 +15,16 @@ $NetBSD$
      return ['screen'];
    }
    return ['window', 'screen'];
-@@ -35,7 +35,7 @@ describe('desktopCapturer', { tags: ['se
+@@ -38,7 +38,7 @@ describe('desktopCapturer', { tags: ['se
    });
  
    // Linux doesn't return any window sources.
 -  ifit(process.platform !== 'linux')('responds to subsequent calls of different options', async () => {
 +  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('responds to subsequent calls of different options', async () => {
      const promise1 = desktopCapturer.getSources({ types: ['window'] });
-     await expect(promise1).to.eventually.be.fulfilled();
+     await promise1;
  
-@@ -44,7 +44,7 @@ describe('desktopCapturer', { tags: ['se
+@@ -47,7 +47,7 @@ describe('desktopCapturer', { tags: ['se
    });
  
    // Linux doesn't return any window sources.
@@ -33,7 +33,7 @@ $NetBSD$
      const w2 = new BrowserWindow({ width: 200, height: 200 });
      await w2.loadURL('about:blank');
  
-@@ -56,7 +56,7 @@ describe('desktopCapturer', { tags: ['se
+@@ -61,7 +61,7 @@ describe('desktopCapturer', { tags: ['se
      }
    });
  
@@ -41,40 +41,40 @@ $NetBSD$
 +  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('returns display_ids matching the Screen API', async () => {
      const displays = screen.getAllDisplays();
      const sources = await desktopCapturer.getSources({ types: ['screen'] });
-     expect(sources).to.be.an('array').of.length(displays.length);
-@@ -103,7 +103,7 @@ describe('desktopCapturer', { tags: ['se
+     expect(sources).toBeInstanceOf(Array);
+@@ -111,7 +111,7 @@ describe('desktopCapturer', { tags: ['se
    });
  
    // Linux doesn't return any window sources.
--  ifit(process.platform !== 'linux')('getMediaSourceId should match DesktopCapturerSource.id', async function () {
-+  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('getMediaSourceId should match DesktopCapturerSource.id', async function () {
+-  ifit(process.platform !== 'linux')('getMediaSourceId should match DesktopCapturerSource.id', async () => {
++  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('getMediaSourceId should match DesktopCapturerSource.id', async () => {
      const w2 = new BrowserWindow({ show: false, width: 100, height: 100, webPreferences: { contextIsolation: false } });
      const wShown = once(w2, 'show');
      const wFocused = once(w2, 'focus');
-@@ -127,7 +127,7 @@ describe('desktopCapturer', { tags: ['se
+@@ -136,7 +136,7 @@ describe('desktopCapturer', { tags: ['se
    });
  
    // Linux doesn't return any window sources.
--  ifit(process.platform !== 'linux')('getSources should not incorrectly duplicate window_id', async function () {
-+  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('getSources should not incorrectly duplicate window_id', async function () {
+-  ifit(process.platform !== 'linux')('getSources should not incorrectly duplicate window_id', async () => {
++  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('getSources should not incorrectly duplicate window_id', async () => {
      const w2 = new BrowserWindow({ show: false, width: 100, height: 100, webPreferences: { contextIsolation: false } });
      const wShown = once(w2, 'show');
      const wFocused = once(w2, 'focus');
-@@ -173,7 +173,7 @@ describe('desktopCapturer', { tags: ['se
+@@ -184,7 +184,7 @@ describe('desktopCapturer', { tags: ['se
    });
  
    // Linux doesn't return any window sources.
--  ifit(process.platform !== 'linux')('moveAbove should move the window at the requested place', async function () {
-+  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('moveAbove should move the window at the requested place', async function () {
+-  ifit(process.platform !== 'linux')('moveAbove should move the window at the requested place', async () => {
++  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('moveAbove should move the window at the requested place', async () => {
      // DesktopCapturer.getSources() is guaranteed to return in the correct
      // z-order from foreground to background.
      const MAX_WIN = 4;
-@@ -259,7 +259,7 @@ describe('desktopCapturer', { tags: ['se
-   });
+@@ -272,7 +272,7 @@ describe('desktopCapturer', { tags: ['se
  
    // Linux doesn't return any window sources.
--  ifdescribe(process.platform !== 'linux')('fetchWindowIcons', function () {
-+  ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('fetchWindowIcons', function () {
-     // Tests are sequentially dependent
-     this.bail(true);
+   // Tests are sequentially dependent.
+-  ifdescribe(process.platform !== 'linux')('fetchWindowIcons', () => {
++  ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('fetchWindowIcons', () => {
      let w: BrowserWindow;
+     let testSource: Electron.DesktopCapturerSource | undefined;
+     let appIcon: Electron.NativeImage | undefined;
diff --git a/electron43/patches/patch-electron_spec_api-dialog.spec.ts b/electron43/patches/patch-electron_spec_api-dialog.spec.ts
index 1622586153..04308b0cfe 100644
--- a/electron43/patches/patch-electron_spec_api-dialog.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-dialog.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-dialog.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-dialog.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-dialog.spec.ts
 @@ -1046,7 +1046,7 @@ describe('dialog module', () => {
    // FileChooser that script/dbus_mock.py hosts on the fake session bus. The
diff --git a/electron43/patches/patch-electron_spec_api-media-handler.spec.ts b/electron43/patches/patch-electron_spec_api-media-handler.spec.ts
index f6f82a8bbf..841a5171ec 100644
--- a/electron43/patches/patch-electron_spec_api-media-handler.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-media-handler.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-media-handler.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-media-handler.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-media-handler.spec.ts
 @@ -64,7 +64,7 @@ describe('setDisplayMediaRequestHandler'
  
@@ -13,5 +13,5 @@ $NetBSD$
 -  ifit(process.platform !== 'linux')(
 +  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')(
      'honors the restrictOwnAudio constraint when granted loopback audio',
-     async function () {
+     async (ctx) => {
        if ((await desktopCapturer.getSources({ types: ['screen'] })).length === 0) {
diff --git a/electron43/patches/patch-electron_spec_api-menu.spec.ts b/electron43/patches/patch-electron_spec_api-menu.spec.ts
index c04715ae54..ef343f0865 100644
--- a/electron43/patches/patch-electron_spec_api-menu.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-menu.spec.ts
@@ -1,17 +1,17 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-menu.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-menu.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-menu.spec.ts
-@@ -955,7 +955,7 @@ describe('Menu module', function () {
+@@ -959,7 +959,7 @@ describe('Menu module', () => {
      // https://github.com/electron/electron/issues/35724
      // Maximizing window is enough to trigger the bug
      // FIXME(dsanders11): Test always passes on CI, even pre-fix
--    ifit(process.platform === 'linux' && !process.env.CI)('does not trigger issue #35724', (done) => {
-+    ifit((process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') && !process.env.CI)('does not trigger issue #35724', (done) => {
-       const showAndCloseMenu = async () => {
-         await setTimeout(1000);
-         menu.popup({ window: w, x: 50, y: 50 });
+-    ifit(process.platform === 'linux' && !process.env.CI)(
++    ifit((process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') && !process.env.CI)(
+       'does not trigger issue #35724',
+       () =>
+         new Promise<void>((resolve, reject) => {
diff --git a/electron43/patches/patch-electron_spec_api-native-image.spec.ts b/electron43/patches/patch-electron_spec_api-native-image.spec.ts
index 2503dfad7c..cdfd73004a 100644
--- a/electron43/patches/patch-electron_spec_api-native-image.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-native-image.spec.ts
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-native-image.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-native-image.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-native-image.spec.ts
-@@ -570,7 +570,7 @@ describe('nativeImage module', () => {
+@@ -569,7 +569,7 @@ describe('nativeImage module', () => {
      });
    });
  
diff --git a/electron43/patches/patch-electron_spec_api-net-log.spec.ts b/electron43/patches/patch-electron_spec_api-net-log.spec.ts
index 8b2b4a494b..cfa4b5b8a7 100644
--- a/electron43/patches/patch-electron_spec_api-net-log.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-net-log.spec.ts
@@ -1,13 +1,13 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-net-log.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-net-log.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-net-log.spec.ts
-@@ -129,7 +129,7 @@ describe('netLog module', () => {
-     ).to.be.true('uuid present in dump');
+@@ -137,7 +137,7 @@ describe('netLog module', () => {
+     ).toBe(true);
    });
  
 -  ifit(process.platform !== 'linux')(
@@ -15,7 +15,7 @@ $NetBSD$
      'should begin and end logging automatically when --log-net-log is passed',
      async () => {
        const appProcess = ChildProcess.spawn(process.execPath, [appPath], {
-@@ -144,7 +144,7 @@ describe('netLog module', () => {
+@@ -152,7 +152,7 @@ describe('netLog module', () => {
      }
    );
  
@@ -24,7 +24,7 @@ $NetBSD$
      'should begin and end logging automatically when --log-net-log is passed, and behave correctly when .startLogging() and .stopLogging() is called',
      async () => {
        const appProcess = ChildProcess.spawn(process.execPath, [appPath], {
-@@ -162,7 +162,7 @@ describe('netLog module', () => {
+@@ -170,7 +170,7 @@ describe('netLog module', () => {
      }
    );
  
diff --git a/electron43/patches/patch-electron_spec_api-notification-dbus.spec.ts b/electron43/patches/patch-electron_spec_api-notification-dbus.spec.ts
index ba4ee8f903..3a124bff9e 100644
--- a/electron43/patches/patch-electron_spec_api-notification-dbus.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-notification-dbus.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-notification-dbus.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-notification-dbus.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-notification-dbus.spec.ts
 @@ -24,7 +24,7 @@ const require = createRequire(import.met
  const fixturesPath = path.join(import.meta.dirname, 'fixtures');
diff --git a/electron43/patches/patch-electron_spec_api-power-monitor.spec.ts b/electron43/patches/patch-electron_spec_api-power-monitor.spec.ts
index d723e38d21..e1309fc041 100644
--- a/electron43/patches/patch-electron_spec_api-power-monitor.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-power-monitor.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-power-monitor.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-power-monitor.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-power-monitor.spec.ts
 @@ -21,7 +21,7 @@ const require = createRequire(import.met
  describe('powerMonitor', { tags: ['serial'] }, () => {
@@ -14,4 +14,4 @@ $NetBSD$
 +  ifdescribe((process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') && process.env.DBUS_SYSTEM_BUS_ADDRESS != null)(
      'when powerMonitor module is loaded with dbus mock',
      () => {
-       before(async () => {
+       beforeAll(async () => {
diff --git a/electron43/patches/patch-electron_spec_api-process.spec.ts b/electron43/patches/patch-electron_spec_api-process.spec.ts
index 26c3b835c8..22885c82b1 100644
--- a/electron43/patches/patch-electron_spec_api-process.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-process.spec.ts
@@ -1,30 +1,30 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-process.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-process.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-process.spec.ts
-@@ -43,7 +43,7 @@ describe('process module', () => {
+@@ -44,7 +44,7 @@ describe('process module', () => {
        it('resolves promise successfully with valid data', async () => {
          const memoryInfo = await invoke(() => process.getProcessMemoryInfo());
-         expect(memoryInfo).to.be.an('object');
+         expect(memoryInfo).toBeTypeOf('object');
 -        if (process.platform === 'linux' || process.platform === 'win32') {
 +        if (process.platform === 'linux' || process.platform === 'win32' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-           expect(memoryInfo.residentSet).to.be.a('number').greaterThan(0);
+           expect(memoryInfo.residentSet).toBeTypeOf('number');
+           expect(memoryInfo.residentSet).toBeGreaterThan(0);
          }
-         expect(memoryInfo.private).to.be.a('number').greaterThan(0);
-@@ -57,7 +57,7 @@ describe('process module', () => {
+@@ -61,7 +61,7 @@ describe('process module', () => {
          const systemMemoryInfo = await invoke(() => process.getSystemMemoryInfo());
-         expect(systemMemoryInfo.free).to.be.a('number');
-         expect(systemMemoryInfo.total).to.be.a('number');
+         expect(systemMemoryInfo.free).toBeTypeOf('number');
+         expect(systemMemoryInfo.total).toBeTypeOf('number');
 -        if (process.platform === 'linux') {
 +        if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-           expect(systemMemoryInfo.available).to.be.a('number').greaterThan(0);
+           expect(systemMemoryInfo.available).toBeTypeOf('number');
+           expect(systemMemoryInfo.available).toBeGreaterThan(0);
          }
-       });
-@@ -136,7 +136,7 @@ describe('process module', () => {
+@@ -141,7 +141,7 @@ describe('process module', () => {
      generateSpecs((fn, ...args) => fn(...args));
    });
  
diff --git a/electron43/patches/patch-electron_spec_api-safe-storage.spec.ts b/electron43/patches/patch-electron_spec_api-safe-storage.spec.ts
index ec9a76e106..7daf334f89 100644
--- a/electron43/patches/patch-electron_spec_api-safe-storage.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-safe-storage.spec.ts
@@ -1,26 +1,26 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-safe-storage.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-safe-storage.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-safe-storage.spec.ts
-@@ -15,7 +15,7 @@ chai.use(chaiAsPromised);
+@@ -11,7 +11,7 @@ import { ifdescribe } from './lib/spec-h
  
  describe('safeStorage module', () => {
-   before(() => {
+   beforeAll(() => {
 -    if (process.platform === 'linux') {
 +    if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
        safeStorage.setUsePlainTextEncryption(true);
      }
    });
-@@ -33,7 +33,7 @@ describe('safeStorage module', () => {
+@@ -29,7 +29,7 @@ describe('safeStorage module', () => {
      });
    });
  
 -  ifdescribe(process.platform === 'linux')('SafeStorage.getSelectedStorageBackend()', () => {
 +  ifdescribe(process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')('SafeStorage.getSelectedStorageBackend()', () => {
      it('should return a valid backend', () => {
-       expect(safeStorage.getSelectedStorageBackend()).to.equal('basic_text');
+       expect(safeStorage.getSelectedStorageBackend()).toBe('basic_text');
      });
diff --git a/electron43/patches/patch-electron_spec_api-screen.spec.ts b/electron43/patches/patch-electron_spec_api-screen.spec.ts
index 1a45c1a85b..d73eb9e33f 100644
--- a/electron43/patches/patch-electron_spec_api-screen.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-screen.spec.ts
@@ -1,35 +1,35 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-screen.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-screen.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-screen.spec.ts
-@@ -95,7 +95,7 @@ describe('screen module', { tags: ['seri
+@@ -97,7 +97,7 @@ describe('screen module', { tags: ['seri
  
        const { size } = display!;
  
 -      if (process.platform === 'linux') {
 +      if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-         expect(size).to.have.property('width').that.is.a('number');
-         expect(size).to.have.property('height').that.is.a('number');
+         expect(size).toHaveProperty('width', expect.any(Number));
+         expect(size).toHaveProperty('height', expect.any(Number));
        } else {
-@@ -109,7 +109,7 @@ describe('screen module', { tags: ['seri
+@@ -113,7 +113,7 @@ describe('screen module', { tags: ['seri
  
        const { workAreaSize } = display!;
  
 -      if (process.platform === 'linux') {
 +      if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-         expect(workAreaSize).to.have.property('width').that.is.a('number');
-         expect(workAreaSize).to.have.property('height').that.is.a('number');
+         expect(workAreaSize).toHaveProperty('width', expect.any(Number));
+         expect(workAreaSize).toHaveProperty('height', expect.any(Number));
        } else {
-@@ -125,7 +125,7 @@ describe('screen module', { tags: ['seri
-       expect(bounds).to.have.property('x').that.is.a('number');
-       expect(bounds).to.have.property('y').that.is.a('number');
+@@ -131,7 +131,7 @@ describe('screen module', { tags: ['seri
+       expect(bounds).toHaveProperty('x', expect.any(Number));
+       expect(bounds).toHaveProperty('y', expect.any(Number));
  
 -      if (process.platform === 'linux') {
 +      if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-         expect(bounds).to.have.property('width').that.is.a('number');
-         expect(bounds).to.have.property('height').that.is.a('number');
+         expect(bounds).toHaveProperty('width', expect.any(Number));
+         expect(bounds).toHaveProperty('height', expect.any(Number));
        } else {
diff --git a/electron43/patches/patch-electron_spec_api-shell.spec.ts b/electron43/patches/patch-electron_spec_api-shell.spec.ts
index 2a8ebe69a6..14d34d82ff 100644
--- a/electron43/patches/patch-electron_spec_api-shell.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-shell.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-shell.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-shell.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-shell.spec.ts
 @@ -37,7 +37,7 @@ describe('shell module', () => {
  
diff --git a/electron43/patches/patch-electron_spec_api-subframe.spec.ts b/electron43/patches/patch-electron_spec_api-subframe.spec.ts
index 6ea16de4e4..7f6d1aa5b4 100644
--- a/electron43/patches/patch-electron_spec_api-subframe.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-subframe.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-subframe.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-subframe.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-subframe.spec.ts
 @@ -254,7 +254,7 @@ describe('subframe with non-standard sch
  });
diff --git a/electron43/patches/patch-electron_spec_api-system-preferences.spec.ts b/electron43/patches/patch-electron_spec_api-system-preferences.spec.ts
index d0f63b1b59..82985586f5 100644
--- a/electron43/patches/patch-electron_spec_api-system-preferences.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-system-preferences.spec.ts
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-system-preferences.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-system-preferences.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-system-preferences.spec.ts
-@@ -5,8 +5,8 @@ import { expect } from 'chai';
+@@ -5,8 +5,8 @@ import { describe, expect, it } from 'vi
  import { ifdescribe, ifit } from './lib/spec-helpers.ts';
  
  describe('systemPreferences module', () => {
diff --git a/electron43/patches/patch-electron_spec_api-tray.spec.ts b/electron43/patches/patch-electron_spec_api-tray.spec.ts
index 15bf033955..f42283e61f 100644
--- a/electron43/patches/patch-electron_spec_api-tray.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-tray.spec.ts
@@ -1,33 +1,33 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-tray.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-tray.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-tray.spec.ts
 @@ -32,13 +32,13 @@ describe('tray module', { tags: ['serial
-       }).to.throw(/Failed to load image from path (.+)/);
+       }).toThrow(/Failed to load image from path (.+)/);
      });
  
 -    ifit(process.platform !== 'linux')('throws a descriptive error if an invalid guid is given', () => {
 +    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('throws a descriptive error if an invalid guid is given', () => {
        expect(() => {
          tray = new Tray(nativeImage.createEmpty(), 'I am not a guid');
-       }).to.throw('Invalid GUID format');
+       }).toThrow('Invalid GUID format');
      });
  
 -    ifit(process.platform !== 'linux')('accepts a valid guid', () => {
 +    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('accepts a valid guid', () => {
        expect(() => {
          tray = new Tray(nativeImage.createEmpty(), '0019A433-3526-48BA-A66C-676742C0FEFB');
-       }).to.not.throw();
+       }).not.toThrow();
 @@ -139,7 +139,7 @@ describe('tray module', { tags: ['serial
        tray.destroy();
      });
  
--    ifit(process.platform !== 'linux')('returns a bounds object', function () {
-+    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('returns a bounds object', function () {
+-    ifit(process.platform !== 'linux')('returns a bounds object', () => {
++    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('returns a bounds object', () => {
        const bounds = tray.getBounds();
-       expect(bounds).to.be.an('object').and.to.have.all.keys('x', 'y', 'width', 'height');
-     });
+       expect(bounds).toBeTypeOf('object');
+       expect(Object.keys(bounds).sort()).toEqual(['height', 'width', 'x', 'y']);
diff --git a/electron43/patches/patch-electron_spec_api-utility-process.spec.ts b/electron43/patches/patch-electron_spec_api-utility-process.spec.ts
index 4e196016b0..9b6c1b828a 100644
--- a/electron43/patches/patch-electron_spec_api-utility-process.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-utility-process.spec.ts
@@ -1,13 +1,13 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-utility-process.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-utility-process.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-utility-process.spec.ts
-@@ -618,7 +618,7 @@ describe('utilityProcess module', () => 
-       expect(output).to.include(result);
+@@ -638,7 +638,7 @@ describe('utilityProcess module', () => 
+       expect(output).toContain(result);
      });
  
 -    ifit(process.platform !== 'linux')('can access exposed main process modules from the utility process', async () => {
@@ -15,7 +15,7 @@ $NetBSD$
        const message = 'Message from utility process';
        const child = utilityProcess.fork(path.join(fixturesPath, 'expose-main-process-module.js'));
        await once(child, 'spawn');
-@@ -655,7 +655,7 @@ describe('utilityProcess module', () => 
+@@ -675,7 +675,7 @@ describe('utilityProcess module', () => 
        await closeWindow(w);
      });
  
diff --git a/electron43/patches/patch-electron_spec_api-web-contents.spec.ts b/electron43/patches/patch-electron_spec_api-web-contents.spec.ts
index 9dc9cf2e27..526550822e 100644
--- a/electron43/patches/patch-electron_spec_api-web-contents.spec.ts
+++ b/electron43/patches/patch-electron_spec_api-web-contents.spec.ts
@@ -1,21 +1,21 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/api-web-contents.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/api-web-contents.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/api-web-contents.spec.ts
-@@ -1643,7 +1643,7 @@ describe('webContents module', () => {
+@@ -1631,7 +1631,7 @@ describe('webContents module', () => {
      // back to OpenFolder() which does a blocking DirectoryExists() on the UI
      // thread (pre-existing behavior). Workspace-gating is covered by the test
      // above.
 -    ifit(process.platform !== 'linux')(
 +    ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')(
        'reveals paths under a registered workspace folder without executing them',
-       async () => {
-         const w = new BrowserWindow({ show: false });
-@@ -4301,7 +4301,7 @@ describe('webContents module', () => {
+       // Opens a real Finder/Explorer window, which takes focus and stays open.
+       { tags: ['serial'] },
+@@ -4309,7 +4309,7 @@ describe('webContents module', () => {
      });
  
      // TODO(codebytere): OOPIF printing is disabled on Linux at the moment due to crashes.
diff --git a/electron43/patches/patch-electron_spec_chromium.spec.ts b/electron43/patches/patch-electron_spec_chromium.spec.ts
index 9d3208f3ea..a6d9ea9281 100644
--- a/electron43/patches/patch-electron_spec_chromium.spec.ts
+++ b/electron43/patches/patch-electron_spec_chromium.spec.ts
@@ -1,19 +1,19 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/chromium.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/chromium.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/chromium.spec.ts
-@@ -608,15 +608,15 @@ describe('command line switches', () => 
+@@ -611,15 +611,15 @@ describe('command line switches', () => 
        testLocale('asdfkl', `${currentLocale}|${currentSystemLocale}|${currentPreferredLanguages}`));
  
      const lcAll = String(process.env.LC_ALL);
 -    ifit(process.platform === 'linux')('current process has a valid LC_ALL env', async () => {
 +    ifit(process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd')('current process has a valid LC_ALL env', async () => {
        // The LC_ALL env should not be set to DOM locale string.
-       expect(lcAll).to.not.equal(app.getLocale());
+       expect(lcAll).not.toBe(app.getLocale());
      });
 -    ifit(process.platform === 'linux')('should not change LC_ALL', async () => testLocale('fr', lcAll, true));
 -    ifit(process.platform === 'linux')('should not change LC_ALL when setting invalid locale', async () =>
@@ -26,22 +26,22 @@ $NetBSD$
        testLocale('', lcAll, true)
      );
    });
-@@ -4259,12 +4259,12 @@ describe('font fallback', () => {
-       expect(fonts[0].familyName).to.equal('Arial');
+@@ -4267,12 +4267,12 @@ describe('font fallback', () => {
+       expect(fonts[0].familyName).toBe('Arial');
      } else if (process.platform === 'darwin') {
-       expect(fonts[0].familyName).to.equal('Helvetica');
+       expect(fonts[0].familyName).toBe('Helvetica');
 -    } else if (process.platform === 'linux') {
 +    } else if (process.platform === 'linux' || process.platform === 'freebsd' || process.platform === 'netbsd') {
-       expect(fonts[0].familyName).to.equal('DejaVu Sans');
+       expect(fonts[0].familyName).toBe('DejaVu Sans');
      } // I think this depends on the distro? We don't specify a default.
    });
  
--  ifit(process.platform !== 'linux')(
-+  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')(
-     'should fall back to Japanese font for sans-serif Japanese script',
-     async function () {
-       const html = `
-@@ -5010,7 +5010,7 @@ describe('paste execCommand', { tags: ['
+-  ifit(process.platform !== 'linux')('should fall back to Japanese font for sans-serif Japanese script', async () => {
++  ifit(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('should fall back to Japanese font for sans-serif Japanese script', async () => {
+     const html = `
+     <html lang="ja-JP">
+       <head>
+@@ -5000,7 +5000,7 @@ describe('paste execCommand', { tags: ['
    });
  });
  
diff --git a/electron43/patches/patch-electron_spec_crash.spec.ts b/electron43/patches/patch-electron_spec_crash.spec.ts
index 4fae5fc01c..16d7d508c8 100644
--- a/electron43/patches/patch-electron_spec_crash.spec.ts
+++ b/electron43/patches/patch-electron_spec_crash.spec.ts
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/crash.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/crash.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/crash.spec.ts
-@@ -53,7 +53,7 @@ const shouldRunCase = (crashCase: string
+@@ -54,7 +54,7 @@ const shouldRunCase = (crashCase: string
        if (process.platform === 'win32') {
          return process.arch !== 'ia32';
        } else {
diff --git a/electron43/patches/patch-electron_spec_desktop-name.spec.ts b/electron43/patches/patch-electron_spec_desktop-name.spec.ts
index 65e45d1eef..3a372bb40d 100644
--- a/electron43/patches/patch-electron_spec_desktop-name.spec.ts
+++ b/electron43/patches/patch-electron_spec_desktop-name.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/desktop-name.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/desktop-name.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/desktop-name.spec.ts
 @@ -10,7 +10,7 @@ const { defaultDesktopName }: typeof imp
    '../lib/browser/desktop-name.ts'
diff --git a/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js b/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js
index 25c1777d52..02252c14b3 100644
--- a/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js
+++ b/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_decrypt-app_main.js
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/fixtures/api/safe-storage/decrypt-app/main.js.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/fixtures/api/safe-storage/decrypt-app/main.js.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/fixtures/api/safe-storage/decrypt-app/main.js
 @@ -7,7 +7,7 @@ const pathToEncryptedString = path.resol
  const readFile = fs.readFile;
diff --git a/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js b/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js
index d3a4a10461..9a024b2fcb 100644
--- a/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js
+++ b/electron43/patches/patch-electron_spec_fixtures_api_safe-storage_encrypt-app_main.js
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/fixtures/api/safe-storage/encrypt-app/main.js.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/fixtures/api/safe-storage/encrypt-app/main.js.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/fixtures/api/safe-storage/encrypt-app/main.js
 @@ -7,7 +7,7 @@ const pathToEncryptedString = path.resol
  const writeFile = fs.writeFile;
diff --git a/electron43/patches/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js b/electron43/patches/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js
index 6646581691..6b1007cdca 100644
--- a/electron43/patches/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js
+++ b/electron43/patches/patch-electron_spec_fixtures_native-addon_uv-dlopen_index.js
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/fixtures/native-addon/uv-dlopen/index.js.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/fixtures/native-addon/uv-dlopen/index.js.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/fixtures/native-addon/uv-dlopen/index.js
 @@ -4,7 +4,7 @@ const testLoadLibrary = require('./build
  
diff --git a/electron43/patches/patch-electron_spec_lib_spec-helpers.ts b/electron43/patches/patch-electron_spec_lib_spec-helpers.ts
index fce34ca12f..21930097a2 100644
--- a/electron43/patches/patch-electron_spec_lib_spec-helpers.ts
+++ b/electron43/patches/patch-electron_spec_lib_spec-helpers.ts
@@ -1,13 +1,13 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/lib/spec-helpers.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/lib/spec-helpers.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/lib/spec-helpers.ts
-@@ -29,7 +29,7 @@ export const ifit = (condition: boolean)
- export const ifdescribe = (condition: boolean) => (condition ? describe : addOnly<SuiteFunction>(describe.skip));
+@@ -19,7 +19,7 @@ export const ifit = (condition: boolean)
+ export const ifdescribe = (condition: boolean) => (condition ? describe : describe.skip);
  
  export const isWayland =
 -  process.platform === 'linux' &&
diff --git a/electron43/patches/patch-electron_spec_node.spec.ts b/electron43/patches/patch-electron_spec_node.spec.ts
index d77526b94e..00e1886c6a 100644
--- a/electron43/patches/patch-electron_spec_node.spec.ts
+++ b/electron43/patches/patch-electron_spec_node.spec.ts
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/node.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/node.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/node.spec.ts
-@@ -221,7 +221,7 @@ describe('node feature', () => {
+@@ -224,7 +224,7 @@ describe('node feature', () => {
      });
  
      describe('child_process.exec', () => {
diff --git a/electron43/patches/patch-electron_spec_spellchecker.spec.ts b/electron43/patches/patch-electron_spec_spellchecker.spec.ts
index 68902db62e..b3cfbe8b6e 100644
--- a/electron43/patches/patch-electron_spec_spellchecker.spec.ts
+++ b/electron43/patches/patch-electron_spec_spellchecker.spec.ts
@@ -1,13 +1,13 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/spellchecker.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/spellchecker.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/spellchecker.spec.ts
-@@ -91,7 +91,7 @@ ifdescribe(features.isBuiltinSpellChecke
-       });
+@@ -92,7 +92,7 @@ ifdescribe(features.isBuiltinSpellChecke
+       }, timeout);
  
        // Context menu test can not run on Windows or Linux (https://github.com/electron/electron/pull/48657 broke linux).
 -      const shouldRun = process.platform !== 'win32' && process.platform !== 'linux';
diff --git a/electron43/patches/patch-electron_spec_visibility-state.spec.ts b/electron43/patches/patch-electron_spec_visibility-state.spec.ts
index 80b14b2e3c..b212998a26 100644
--- a/electron43/patches/patch-electron_spec_visibility-state.spec.ts
+++ b/electron43/patches/patch-electron_spec_visibility-state.spec.ts
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/visibility-state.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/visibility-state.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/visibility-state.spec.ts
 @@ -19,7 +19,7 @@ import { closeAllWindows } from './lib/w
  
@@ -14,4 +14,4 @@ $NetBSD$
 +ifdescribe(process.platform !== 'linux' && process.platform !== 'freebsd' && process.platform !== 'netbsd')('document.visibilityState', () => {
    let w: BaseWindow & { webContents: WebContents };
  
-   before(() => {
+   beforeAll(() => {
diff --git a/electron43/patches/patch-electron_spec_webview.spec.ts b/electron43/patches/patch-electron_spec_webview.spec.ts
index 75b8951fcd..38cfc7329c 100644
--- a/electron43/patches/patch-electron_spec_webview.spec.ts
+++ b/electron43/patches/patch-electron_spec_webview.spec.ts
@@ -1,12 +1,12 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- electron/spec/webview.spec.ts.orig	2026-10-06 22:48:58.000000000 +0000
+--- electron/spec/webview.spec.ts.orig	2026-10-16 03:32:58.000000000 +0000
 +++ electron/spec/webview.spec.ts
-@@ -617,7 +617,7 @@ describe('<webview> tag', function () {
+@@ -626,7 +626,7 @@ describe('<webview> tag', () => {
      });
  
      // FIXME(zcbenz): Fullscreen events do not work on Linux.
diff --git a/electron43/patches/patch-net_dns_dns__config__service__posix.cc b/electron43/patches/patch-net_dns_dns__config__service__posix.cc
index 914e3fca02..d1d4576694 100644
--- a/electron43/patches/patch-net_dns_dns__config__service__posix.cc
+++ b/electron43/patches/patch-net_dns_dns__config__service__posix.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- net/dns/dns_config_service_posix.cc.orig	2026-10-13 15:23:12.816437074 +0000
+--- net/dns/dns_config_service_posix.cc.orig	2026-10-20 08:24:51.527578577 +0000
 +++ net/dns/dns_config_service_posix.cc
 @@ -146,6 +146,7 @@ class DnsConfigServicePosix::Watcher : p
  #endif
diff --git a/electron43/patches/patch-rollup_rust_bindings__napi_Cargo.toml b/electron43/patches/patch-rollup_rust_bindings__napi_Cargo.toml
index 62239a62cb..8e5d95cf7d 100644
--- a/electron43/patches/patch-rollup_rust_bindings__napi_Cargo.toml
+++ b/electron43/patches/patch-rollup_rust_bindings__napi_Cargo.toml
@@ -1,8 +1,8 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
 --- rollup/rust/bindings_napi/Cargo.toml.orig	2026-05-14 17:17:51.000000000 +0000
 +++ rollup/rust/bindings_napi/Cargo.toml
diff --git a/electron43/patches/patch-rollup_rust_bindings__napi_src_lib.rs b/electron43/patches/patch-rollup_rust_bindings__napi_src_lib.rs
index c404fa526c..764e3dcb07 100644
--- a/electron43/patches/patch-rollup_rust_bindings__napi_src_lib.rs
+++ b/electron43/patches/patch-rollup_rust_bindings__napi_src_lib.rs
@@ -1,8 +1,8 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
 --- rollup/rust/bindings_napi/src/lib.rs.orig	2026-05-14 17:17:51.000000000 +0000
 +++ rollup/rust/bindings_napi/src/lib.rs
diff --git a/electron43/patches/patch-third__party_electron__node_common.gypi b/electron43/patches/patch-third__party_electron__node_common.gypi
new file mode 100644
index 0000000000..3e279a02ea
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_common.gypi
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/common.gypi.orig	2026-10-20 08:24:53.471242259 +0000
++++ third_party/electron_node/common.gypi
+@@ -602,11 +602,11 @@
+           'NOMINMAX',
+         ],
+       }],
+-      [ 'OS in "linux freebsd openbsd solaris aix os400 openharmony"', {
++      [ 'OS in "linux freebsd netbsd openbsd solaris aix os400 openharmony"', {
+         'cflags': [ '-pthread' ],
+         'ldflags': [ '-pthread' ],
+       }],
+-      [ 'OS in "linux freebsd openbsd solaris android aix os400 cloudabi openharmony"', {
++      [ 'OS in "linux freebsd netbsd openbsd solaris android aix os400 cloudabi openharmony"', {
+         'cflags': [ '-Wall', '-Wextra', '-Wno-unused-parameter', ],
+         'cflags_cc': [
+           '-fno-rtti',
diff --git a/electron43/patches/patch-third__party_electron__node_deps_cares_cares.gyp b/electron43/patches/patch-third__party_electron__node_deps_cares_cares.gyp
new file mode 100644
index 0000000000..05a65686b3
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_cares_cares.gyp
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/cares/cares.gyp.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/cares/cares.gyp
+@@ -231,6 +231,10 @@
+           'include_dirs': [ 'config/freebsd' ],
+           'sources': [ 'config/freebsd/ares_config.h' ]
+         }],
++        [ 'OS=="netbsd"', {
++          'include_dirs': [ 'config/netbsd' ],
++          'sources': [ 'config/netbsd/ares_config.h' ]
++        }],
+         [ 'OS=="openbsd"', {
+           'include_dirs': [ 'config/openbsd' ],
+           'sources': [ 'config/openbsd/ares_config.h' ]
diff --git a/electron43/patches/patch-third__party_electron__node_deps_cares_config_netbsd_ares__config.h b/electron43/patches/patch-third__party_electron__node_deps_cares_config_netbsd_ares__config.h
new file mode 100644
index 0000000000..e68fd803f9
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_cares_config_netbsd_ares__config.h
@@ -0,0 +1,24 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/cares/config/netbsd/ares_config.h.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/cares/config/netbsd/ares_config.h
+@@ -119,7 +119,7 @@
+ /* #undef HAVE_GETRANDOM */
+ 
+ /* Define to 1 if you have `getservbyport_r` */
+-#define HAVE_GETSERVBYPORT_R 1
++/*#define HAVE_GETSERVBYPORT_R 1*/
+ 
+ /* Define to 1 if you have `gettimeofday` */
+ #define HAVE_GETTIMEOFDAY 1
+@@ -580,4 +580,4 @@
+ /* #undef __MINGW_USE_VC2005_COMPAT */
+ 
+ /* Define as 'unsigned int' if <stddef.h> doesn't define. */
+-/* #undef size_t */
+\ No newline at end of file
++/* #undef size_t */
diff --git a/electron43/patches/patch-third__party_electron__node_deps_cares_unofficial.gni b/electron43/patches/patch-third__party_electron__node_deps_cares_unofficial.gni
index 3ba22a6e21..3810957899 100644
--- a/electron43/patches/patch-third__party_electron__node_deps_cares_unofficial.gni
+++ b/electron43/patches/patch-third__party_electron__node_deps_cares_unofficial.gni
@@ -1,44 +1,32 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- third_party/electron_node/deps/cares/unofficial.gni.orig	2026-09-07 09:57:40.000000000 +0000
+--- third_party/electron_node/deps/cares/unofficial.gni.orig	2026-10-13 14:09:48.000000000 +0000
 +++ third_party/electron_node/deps/cares/unofficial.gni
-@@ -44,10 +44,14 @@ template("cares_gn_build") {
-     ]
-     if (is_win) {
-       include_dirs += [ "config/win32" ]
--    } else if (is_linux) {
-+    } else if (is_linux && !is_bsd) {
-       include_dirs += [ "config/linux" ]
-     } else if (is_mac) {
-       include_dirs += [ "config/darwin" ]
-+    } else if (is_freebsd) {
-+      include_dirs += [ "config/freebsd" ]
-+    } else if (is_netbsd) {
-+      include_dirs += [ "config/netbsd" ]
-     }
+@@ -60,6 +60,10 @@ template("cares_gn_build") {
+         include_dirs += [ "config/linux" ]
+       } else if (is_mac) {
+         include_dirs += [ "config/darwin" ]
++      } else if (is_freebsd) {
++        include_dirs += [ "config/freebsd" ]
++      } else if (is_netbsd) {
++        include_dirs += [ "config/netbsd" ]
+       }
  
-     if (is_win) {
-@@ -58,12 +62,18 @@ template("cares_gn_build") {
-     }
- 
-     sources = gypi_values.cares_sources_common
--    if (is_linux) {
-+    if (is_linux && !is_bsd) {
-       sources += [ "config/linux/ares_config.h" ]
-     }
-     if (is_mac) {
-       sources += gypi_values.cares_sources_mac
-     }
-+    if (is_freebsd) {
-+      sources += [ "config/freebsd/ares_config.h" ]
-+    }
-+    if (is_netbsd) {
-+      sources += [ "config/netbsd/ares_config.h" ]
-+    }
- 
-     if (is_clang) {
        if (is_win) {
+@@ -76,6 +80,12 @@ template("cares_gn_build") {
+       if (is_mac) {
+         sources += gypi_values.cares_sources_mac
+       }
++      if (is_freebsd) {
++        sources += [ "config/freebsd/ares_config.h" ]
++      }
++      if (is_netbsd) {
++        sources += [ "config/netbsd/ares_config.h" ]
++      }
+ 
+       if (is_clang) {
+         if (is_win) {
diff --git a/electron43/patches/patch-third__party_electron__node_deps_histogram_src_hdr__histogram.c b/electron43/patches/patch-third__party_electron__node_deps_histogram_src_hdr__histogram.c
new file mode 100644
index 0000000000..96a6e2a02c
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_histogram_src_hdr__histogram.c
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/histogram/src/hdr_histogram.c.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/histogram/src/hdr_histogram.c
+@@ -36,8 +36,8 @@
+ 
+ /* Runtime-dispatched AVX2 path: keep the rest of this TU at the project's
+    baseline ISA so the shipped binary does not silently require AVX2. */
+-#if (defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)) \
+-    && (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) && !defined(_MSC_VER)
++#if (defined(__x86_64__) || defined(_M_X64) || defined(_M_IX86)) \
++     && (defined(__GNUC__) || defined(__clang__)) && !defined(__INTEL_COMPILER) && !defined(_MSC_VER)
+ #  define HDR_HAS_AVX2_DISPATCH 1
+ #  include <immintrin.h>
+ #endif
diff --git a/electron43/patches/patch-third__party_electron__node_deps_histogram_unofficial.gni b/electron43/patches/patch-third__party_electron__node_deps_histogram_unofficial.gni
index f4ae3f84bd..9c94f5658c 100644
--- a/electron43/patches/patch-third__party_electron__node_deps_histogram_unofficial.gni
+++ b/electron43/patches/patch-third__party_electron__node_deps_histogram_unofficial.gni
@@ -1,17 +1,17 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- third_party/electron_node/deps/histogram/unofficial.gni.orig	2026-09-07 09:57:40.000000000 +0000
+--- third_party/electron_node/deps/histogram/unofficial.gni.orig	2026-10-13 14:09:48.000000000 +0000
 +++ third_party/electron_node/deps/histogram/unofficial.gni
-@@ -25,7 +25,7 @@ template("histogram_gn_build") {
-         "-Wno-unused-function",
-       ]
+@@ -37,7 +37,7 @@ template("histogram_gn_build") {
+           "-Wno-unused-function",
+         ]
+       }
+-      if (is_linux) {
++      if (is_linux && !is_bsd) {
+         libs = [ "atomic" ]
+       }
      }
--    if (is_linux) {
-+    if (is_linux && !is_bsd) {
-       libs = [ "atomic" ]
-     }
-   }
diff --git a/electron43/patches/patch-third__party_electron__node_deps_openssl_unofficial.gni b/electron43/patches/patch-third__party_electron__node_deps_openssl_unofficial.gni
index c97e46867b..8e56b7d810 100644
--- a/electron43/patches/patch-third__party_electron__node_deps_openssl_unofficial.gni
+++ b/electron43/patches/patch-third__party_electron__node_deps_openssl_unofficial.gni
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- third_party/electron_node/deps/openssl/unofficial.gni.orig	2026-09-07 09:57:40.000000000 +0000
+--- third_party/electron_node/deps/openssl/unofficial.gni.orig	2026-10-13 14:09:48.000000000 +0000
 +++ third_party/electron_node/deps/openssl/unofficial.gni
 @@ -71,7 +71,7 @@ template("openssl_gn_build") {
      }
diff --git a/electron43/patches/patch-third__party_electron__node_deps_uv_common.gypi b/electron43/patches/patch-third__party_electron__node_deps_uv_common.gypi
new file mode 100644
index 0000000000..084fed56b3
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_uv_common.gypi
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/uv/common.gypi.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/uv/common.gypi
+@@ -135,7 +135,7 @@
+           }]
+         ]
+       }],
+-      ['OS in "freebsd dragonflybsd linux openbsd solaris android aix os400"', {
++      ['OS in "freebsd dragonflybsd linux netbsd openbsd solaris android aix os400"', {
+         'cflags': [ '-Wall' ],
+         'cflags_cc': [ '-fno-rtti', '-fno-exceptions' ],
+         'target_conditions': [
diff --git a/electron43/patches/patch-third__party_electron__node_deps_uv_src_unix_pipe.c b/electron43/patches/patch-third__party_electron__node_deps_uv_src_unix_pipe.c
index 3e0c5c4a09..40b413908c 100644
--- a/electron43/patches/patch-third__party_electron__node_deps_uv_src_unix_pipe.c
+++ b/electron43/patches/patch-third__party_electron__node_deps_uv_src_unix_pipe.c
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- third_party/electron_node/deps/uv/src/unix/pipe.c.orig	2026-09-07 09:57:40.000000000 +0000
+--- third_party/electron_node/deps/uv/src/unix/pipe.c.orig	2026-10-13 14:09:48.000000000 +0000
 +++ third_party/electron_node/deps/uv/src/unix/pipe.c
 @@ -208,9 +208,13 @@ int uv_pipe_open(uv_pipe_t* handle, uv_f
    if (mode == -1)
diff --git a/electron43/patches/patch-third__party_electron__node_deps_uv_unofficial.gni b/electron43/patches/patch-third__party_electron__node_deps_uv_unofficial.gni
index 2fe66665f5..609ad7e6f1 100644
--- a/electron43/patches/patch-third__party_electron__node_deps_uv_unofficial.gni
+++ b/electron43/patches/patch-third__party_electron__node_deps_uv_unofficial.gni
@@ -1,49 +1,60 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- third_party/electron_node/deps/uv/unofficial.gni.orig	2026-09-07 09:57:40.000000000 +0000
+--- third_party/electron_node/deps/uv/unofficial.gni.orig	2026-10-13 14:09:48.000000000 +0000
 +++ third_party/electron_node/deps/uv/unofficial.gni
-@@ -27,7 +27,7 @@ template("uv_gn_build") {
-         "_FILE_OFFSET_BITS=64",
-       ]
+@@ -39,7 +39,7 @@ template("uv_gn_build") {
+           "_FILE_OFFSET_BITS=64",
+         ]
+       }
+-      if (is_linux) {
++      if (is_linux && !is_bsd) {
+         defines += [
+           "_POSIX_C_SOURCE=200112",
+           "_GNU_SOURCE",
+@@ -108,6 +108,9 @@ template("uv_gn_build") {
+           "rt",
+         ]
+       }
++      if (is_netbsd) {
++        libs += [ "kvm" ]
++      }
+ 
+       sources = gypi_values.uv_sources_common
+       if (is_win) {
+@@ -117,13 +120,31 @@ template("uv_gn_build") {
+         sources += gypi_values.uv_sources_posix +
+                    [ "src/unix/proctitle.c" ]
+       }
+-      if (is_linux) {
++      if (is_linux && !is_bsd) {
+         sources += gypi_values.uv_sources_linux
+       }
+       if (is_apple) {
+         sources += gypi_values.uv_sources_apple +
+                    gypi_values.uv_sources_bsd_common
+       }
++      if (is_freebsd) {
++        sources += gypi_values.uv_sources_bsd_common + [
++                  "src/unix/freebsd.c",
++                  "src/unix/random-getrandom.c",
++                  "src/unix/posix-hrtime.c",
++                  "src/unix/bsd-proctitle.c",
++        ]
++        sources -= [ "src/unix/proctitle.c" ]
++      }
++      if (is_netbsd) {
++        sources += gypi_values.uv_sources_bsd_common + [
++                  "src/unix/netbsd.c",
++                  "src/unix/random-getrandom.c",
++                  "src/unix/posix-hrtime.c",
++                  "src/unix/bsd-proctitle.c",
++        ]
++        sources -= [ "src/unix/proctitle.c" ]
++      }
      }
--    if (is_linux) {
-+    if (is_linux && !is_bsd) {
-       defines += [
-         "_POSIX_C_SOURCE=200112",
-         "_GNU_SOURCE",
-@@ -105,12 +105,30 @@ template("uv_gn_build") {
-       sources += gypi_values.uv_sources_posix +
-                  [ "src/unix/proctitle.c" ]
-     }
--    if (is_linux) {
-+    if (is_linux && !is_bsd) {
-       sources += gypi_values.uv_sources_linux
-     }
-     if (is_apple) {
-       sources += gypi_values.uv_sources_apple +
-                  gypi_values.uv_sources_bsd_common
-     }
-+    if (is_freebsd) {
-+      sources += gypi_values.uv_sources_bsd_common + [
-+        "src/unix/freebsd.c",
-+        "src/unix/random-getrandom.c",
-+        "src/unix/posix-hrtime.c",
-+        "src/unix/bsd-proctitle.c",
-+      ]
-+      sources -= [ "src/unix/proctitle.c" ]
-+    }
-+    if (is_netbsd) {
-+      sources += gypi_values.uv_sources_bsd_common + [
-+        "src/unix/netbsd.c",
-+        "src/unix/random-getrandom.c",
-+        "src/unix/posix-hrtime.c",
-+        "src/unix/bsd-proctitle.c",
-+      ]
-+      sources -= [ "src/unix/proctitle.c" ]
-+    }
    }
  }
diff --git a/electron43/patches/patch-third__party_electron__node_deps_uvwasi_include_wasi__serdes.h b/electron43/patches/patch-third__party_electron__node_deps_uvwasi_include_wasi__serdes.h
new file mode 100644
index 0000000000..44dd92be83
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_uvwasi_include_wasi__serdes.h
@@ -0,0 +1,22 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/uvwasi/include/wasi_serdes.h.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/uvwasi/include/wasi_serdes.h
+@@ -3,6 +3,13 @@
+ 
+ #include "wasi_types.h"
+ 
++#ifdef __NetBSD__
++#undef uint8_t
++#undef uint16_t
++#undef uint32_t
++#undef uint64_t
++#endif
++
+ /* Basic uint{8,16,32,64}_t read/write functions. */
+ 
+ #define BASIC_TYPE(name, type)                                                \
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_memory.h b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_memory.h
new file mode 100644
index 0000000000..23d849a9a5
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_memory.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/base/platform/memory.h.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/base/platform/memory.h
+@@ -27,7 +27,7 @@
+ #include <malloc.h>
+ #endif
+ 
+-#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_ZOS && !V8_OS_OPENBSD) || V8_OS_WIN
++#if (V8_OS_POSIX && !V8_OS_AIX && !V8_OS_SOLARIS && !V8_OS_ZOS && !V8_OS_OPENBSD && !V8_OS_NETBSD) || V8_OS_WIN
+ #define V8_HAS_MALLOC_USABLE_SIZE 1
+ #endif
+ 
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-freebsd.cc b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-freebsd.cc
new file mode 100644
index 0000000000..37541f5524
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-freebsd.cc
@@ -0,0 +1,35 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/base/platform/platform-freebsd.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/base/platform/platform-freebsd.cc
+@@ -48,7 +48,7 @@ static unsigned StringToLong(char* buffe
+ }
+ 
+ std::vector<OS::SharedLibraryAddress> OS::GetSharedLibraryAddresses() {
+-  std::vector<SharedLibraryAddress> result;
++  std::vector<SharedLibraryAddress> address_result;
+   int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_VMMAP, getpid()};
+   size_t miblen = sizeof(mib) / sizeof(mib[0]);
+   size_t buffer_size;
+@@ -81,7 +81,7 @@ std::vector<OS::SharedLibraryAddress> OS
+           } else {
+             lib_name = std::string(path);
+           }
+-          result.push_back(SharedLibraryAddress(
++          address_result.push_back(SharedLibraryAddress(
+               lib_name, reinterpret_cast<uintptr_t>(map->kve_start),
+               reinterpret_cast<uintptr_t>(map->kve_end)));
+         }
+@@ -90,7 +90,7 @@ std::vector<OS::SharedLibraryAddress> OS
+       }
+     }
+   }
+-  return result;
++  return address_result;
+ }
+ 
+ void OS::SignalCodeMovingGC() {}
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-openbsd.cc b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-openbsd.cc
new file mode 100644
index 0000000000..f4548f3f30
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-openbsd.cc
@@ -0,0 +1,57 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/base/platform/platform-openbsd.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/base/platform/platform-openbsd.cc
+@@ -34,6 +34,48 @@
+ namespace v8 {
+ namespace base {
+ 
++#ifdef __arm__
++
++bool OS::ArmUsingHardFloat() {
++  // GCC versions 4.6 and above define __ARM_PCS or __ARM_PCS_VFP to specify
++  // the Floating Point ABI used (PCS stands for Procedure Call Standard).
++  // We use these as well as a couple of other defines to statically determine
++  // what FP ABI used.
++  // GCC versions 4.4 and below don't support hard-fp.
++  // GCC versions 4.5 may support hard-fp without defining __ARM_PCS or
++  // __ARM_PCS_VFP.
++
++#define GCC_VERSION (__GNUC__ * 10000                                          \
++                     + __GNUC_MINOR__ * 100                                    \
++                     + __GNUC_PATCHLEVEL__)
++#if GCC_VERSION >= 40600
++#if defined(__ARM_PCS_VFP)
++  return true;
++#else
++  return false;
++#endif
++
++#elif GCC_VERSION < 40500
++  return false;
++
++#else
++#if defined(__ARM_PCS_VFP)
++  return true;
++#elif defined(__ARM_PCS) || defined(__SOFTFP__) || defined(__SOFTFP) || \
++      !defined(__VFP_FP__)
++  return false;
++#else
++#error "Your version of GCC does not report the FP ABI compiled for."          \
++       "Please report it on this issue"                                        \
++       "http://code.google.com/p/v8/issues/detail?id=2140";
++
++#endif
++#endif
++#undef GCC_VERSION
++}
++
++#endif  // def __arm__
++
+ TimezoneCache* OS::CreateTimezoneCache() {
+   return new PosixDefaultTimezoneCache();
+ }
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-posix.cc b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-posix.cc
new file mode 100644
index 0000000000..e0ab99aa69
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_platform-posix.cc
@@ -0,0 +1,66 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/base/platform/platform-posix.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/base/platform/platform-posix.cc
+@@ -423,6 +423,10 @@ void* OS::GetRandomMmapAddr() {
+ #endif
+ #endif
+ #endif
++
++#if V8_OS_NETBSD
++  raw_addr = 0;
++#endif
+   return reinterpret_cast<void*>(raw_addr);
+ }
+ 
+@@ -588,14 +592,11 @@ bool OS::DiscardSystemPages(void* addres
+     // MADV_FREE_REUSABLE sometimes fails, so fall back to MADV_DONTNEED.
+     ret = madvise(address, size, MADV_DONTNEED);
+   }
+-#elif defined(_AIX) || defined(V8_OS_SOLARIS)
+-  int ret = madvise(reinterpret_cast<caddr_t>(address), size, MADV_FREE);
++#elif defined(POSIX_MADV_DONTNEED)
++  int ret = posix_madvise(address, size, POSIX_MADV_DONTNEED);
+   if (ret != 0 && errno == ENOSYS) {
+     return true;  // madvise is not available on all systems.
+   }
+-  if (ret != 0 && errno == EINVAL) {
+-    ret = madvise(reinterpret_cast<caddr_t>(address), size, MADV_DONTNEED);
+-  }
+ #else
+   int ret = madvise(address, size, MADV_DONTNEED);
+ #endif
+@@ -863,6 +864,8 @@ int OS::GetCurrentThreadIdInternal() {
+   return static_cast<int>(syscall(__NR_gettid));
+ #elif V8_OS_ANDROID
+   return static_cast<int>(gettid());
++#elif V8_OS_NETBSD || V8_OS_FREEBSD
++  return static_cast<int>(reinterpret_cast<intptr_t>(pthread_self()));
+ #elif V8_OS_AIX
+   return static_cast<int>(thread_self());
+ #elif V8_OS_FUCHSIA
+@@ -1168,7 +1171,11 @@ Thread::Thread(const Options& options)
+       stack_size_(options.stack_size()),
+       priority_(options.priority()),
+       start_semaphore_(nullptr) {
++#if V8_OS_NETBSD
++  const int min_stack_size = sysconf(_SC_THREAD_STACK_MIN);
++#else
+   const int min_stack_size = static_cast<int>(PTHREAD_STACK_MIN);
++#endif
+   if (stack_size_ > 0) stack_size_ = std::max(stack_size_, min_stack_size);
+   set_name(options.name());
+ }
+@@ -1183,7 +1190,7 @@ static void SetThreadName(const char* na
+   pthread_set_name_np(pthread_self(), name);
+ #elif V8_OS_NETBSD
+   static_assert(Thread::kMaxThreadNameLength <= PTHREAD_MAX_NAMELEN_NP);
+-  pthread_setname_np(pthread_self(), "%s", name);
++  pthread_setname_np(pthread_self(), "%s", (void *)name);
+ #elif V8_OS_DARWIN
+   // pthread_setname_np is only available in 10.6 or later, so test
+   // for it at runtime.
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_semaphore.cc b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_semaphore.cc
new file mode 100644
index 0000000000..4e2c7e2728
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_platform_semaphore.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/base/platform/semaphore.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/base/platform/semaphore.cc
+@@ -12,6 +12,10 @@
+ 
+ #include <errno.h>
+ 
++#if V8_OS_NETBSD
++#include <sys/param.h>	// for __NetBSD_Version__
++#endif
++
+ #include "src/base/logging.h"
+ #include "src/base/platform/elapsed-timer.h"
+ #include "src/base/platform/time.h"
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_strings.h b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_strings.h
new file mode 100644
index 0000000000..47eb8ba5b7
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_base_strings.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/base/strings.h.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/base/strings.h
+@@ -8,6 +8,7 @@
+ #include "src/base/base-export.h"
+ #include "src/base/macros.h"
+ #include "src/base/vector.h"
++#include <stdarg.h>
+ 
+ namespace v8 {
+ namespace base {
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_codegen_arm_cpu-arm.cc b/electron43/patches/patch-third__party_electron__node_deps_v8_src_codegen_arm_cpu-arm.cc
new file mode 100644
index 0000000000..812f34c85e
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_codegen_arm_cpu-arm.cc
@@ -0,0 +1,28 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/codegen/arm/cpu-arm.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/codegen/arm/cpu-arm.cc
+@@ -21,6 +21,10 @@
+ 
+ #include "src/codegen/cpu-features.h"
+ 
++#if V8_OS_NETBSD
++#include <machine/sysarch.h>
++#endif
++
+ namespace v8 {
+ namespace internal {
+ 
+@@ -34,6 +38,8 @@ V8_NOINLINE void CpuFeatures::FlushICach
+   struct arm_sync_icache_args args = {
+       .addr = reinterpret_cast<uintptr_t>(start), .len = size};
+   sysarch(ARM_SYNC_ICACHE, reinterpret_cast<void*>(&args));
++#elif V8_OS_NETBSD
++  arm_sync_icache(reinterpret_cast<uintptr_t>(start), size);
+ #else
+   register uint32_t beg asm("r0") = reinterpret_cast<uint32_t>(start);
+   register uint32_t end asm("r1") = beg + size;
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_common_globals.h b/electron43/patches/patch-third__party_electron__node_deps_v8_src_common_globals.h
new file mode 100644
index 0000000000..a9cf4d3072
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_common_globals.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/common/globals.h.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/common/globals.h
+@@ -7,6 +7,7 @@
+ 
+ #include <stddef.h>
+ #include <stdint.h>
++#include <stdarg.h>
+ 
+ #include <limits>
+ #include <ostream>
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_src_compiler_turboshaft_int64-lowering-reducer.h b/electron43/patches/patch-third__party_electron__node_deps_v8_src_compiler_turboshaft_int64-lowering-reducer.h
new file mode 100644
index 0000000000..1956333c7e
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_src_compiler_turboshaft_int64-lowering-reducer.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/src/compiler/turboshaft/int64-lowering-reducer.h.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/src/compiler/turboshaft/int64-lowering-reducer.h
+@@ -637,7 +637,7 @@ class Int64LoweringReducer : public Next
+       result = __ Word32CountLeadingZeros(high);
+     }
+ 
+-    return __ Tuple<Word32, Word32>(result, __ Word32Constant(0));
++    return __ template Tuple<Word32, Word32>(result, __ Word32Constant(0));
+   }
+ 
+   V<Word32Pair> LowerCtz(V<Word32Pair> input) {
+@@ -650,7 +650,7 @@ class Int64LoweringReducer : public Next
+       result = __ Word32CountTrailingZeros(low);
+     }
+ 
+-    return __ Tuple<Word32, Word32>(result, __ Word32Constant(0));
++    return __ template Tuple<Word32, Word32>(result, __ Word32Constant(0));
+   }
+ 
+   V<Word32Pair> LowerPopCount(V<Word32Pair> input) {
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc b/electron43/patches/patch-third__party_electron__node_deps_v8_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc
new file mode 100644
index 0000000000..6e1a36972d
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/third_party/abseil-cpp/absl/debugging/internal/elf_mem_image.cc
+@@ -377,7 +377,7 @@ void ElfMemImage::SymbolIterator::Update
+   const ElfW(Versym) *version_symbol = image->GetVersym(index_);
+   ABSL_RAW_CHECK(symbol && version_symbol, "");
+   const char *const symbol_name = image->GetDynstr(symbol->st_name);
+-#if defined(__NetBSD__)
++#if defined(__NetBSD__) && ((_SYS_EXEC_ELF_H_ + 0) < 2)
+   const int version_index = version_symbol->vs_vers & VERSYM_VERSION;
+ #else
+   const ElfW(Versym) version_index = version_symbol[0] & VERSYM_VERSION;
diff --git a/electron43/patches/patch-third__party_electron__node_deps_v8_tools_profiling_run-llprof.sh b/electron43/patches/patch-third__party_electron__node_deps_v8_tools_profiling_run-llprof.sh
new file mode 100644
index 0000000000..f91d9bb703
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_deps_v8_tools_profiling_run-llprof.sh
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/deps/v8/tools/profiling/run-llprof.sh.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/deps/v8/tools/profiling/run-llprof.sh
+@@ -46,7 +46,7 @@ framework, then calls the low level tick
+ EOF
+ }
+ 
+-if [ $# -eq 0 ] || [ "$1" == "-h" ]  || [ "$1" == "--help" ] ; then
++if [ $# -eq 0 ] || [ "$1" = "-h" ]  || [ "$1" = "--help" ] ; then
+   usage
+   exit 1
+ fi
diff --git a/electron43/patches/patch-third__party_electron__node_node.gypi b/electron43/patches/patch-third__party_electron__node_node.gypi
new file mode 100644
index 0000000000..9d40cd846f
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_node.gypi
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/node.gypi.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/node.gypi
+@@ -306,6 +306,7 @@
+     [ 'OS=="solaris"', {
+       'libraries': [
+         '-lkstat',
++        '-lsocket',
+         '-lumem',
+       ],
+       'defines!': [
diff --git a/electron43/patches/patch-third__party_electron__node_src_compile__cache.cc b/electron43/patches/patch-third__party_electron__node_src_compile__cache.cc
new file mode 100644
index 0000000000..e865f66cb6
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_src_compile__cache.cc
@@ -0,0 +1,15 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/src/compile_cache.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/src/compile_cache.cc
+@@ -1,5 +1,6 @@
+ #include "compile_cache.h"
+ #include <string>
++#include <unistd.h>
+ #include "debug_utils-inl.h"
+ #include "env-inl.h"
+ #include "node_file.h"
diff --git a/electron43/patches/patch-third__party_electron__node_src_crypto_crypto__rsa.cc b/electron43/patches/patch-third__party_electron__node_src_crypto_crypto__rsa.cc
new file mode 100644
index 0000000000..b536618c1a
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_src_crypto_crypto__rsa.cc
@@ -0,0 +1,39 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/src/crypto/crypto_rsa.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/src/crypto/crypto_rsa.cc
+@@ -12,6 +12,30 @@
+ #include <openssl/bn.h>
+ #include <openssl/rsa.h>
+ 
++#if defined(OPENSSL_VERSION_NUMBER) && OPENSSL_VERSION_NUMBER <0x1010105fL
++struct rsa_st {
++  int pad;
++  int32_t version;
++  void *meth;
++  void *engine;
++  void *n;
++  void *e;
++  void *d;
++  void *p;
++  void *q;
++  void *dmp1;
++  void *dmq1;
++  void *iqmp;
++  void *prime_infos;
++  RSA_PSS_PARAMS *pss;
++};
++
++static const RSA_PSS_PARAMS *RSA_get0_pss_params(const RSA *r)
++{
++  return r->pss;
++}
++#endif
++
+ namespace node {
+ 
+ using ncrypto::BignumPointer;
diff --git a/electron43/patches/patch-third__party_electron__node_src_inspector__agent.cc b/electron43/patches/patch-third__party_electron__node_src_inspector__agent.cc
new file mode 100644
index 0000000000..6a3d175f8d
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_src_inspector__agent.cc
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/src/inspector_agent.cc.orig	2026-10-20 08:24:53.480577440 +0000
++++ third_party/electron_node/src/inspector_agent.cc
+@@ -104,7 +104,7 @@ static int StartWatchdogThread() {
+   CHECK_EQ(0, uv_sem_init(&start_io_thread_semaphore, 0));
+   pthread_attr_t attr;
+   CHECK_EQ(0, pthread_attr_init(&attr));
+-#if defined(PTHREAD_STACK_MIN) && !defined(__FreeBSD__)
++#if defined(PTHREAD_STACK_MIN) && !defined(__FreeBSD__) && !defined(__NetBSD__)
+   // PTHREAD_STACK_MIN is 2 KiB with musl libc, which is too small to safely
+   // receive signals. PTHREAD_STACK_MIN + MINSIGSTKSZ is 8 KiB on arm64, which
+   // is the musl architecture with the biggest MINSIGSTKSZ so let's use that
diff --git a/electron43/patches/patch-third__party_electron__node_src_node__platform.cc b/electron43/patches/patch-third__party_electron__node_src_node__platform.cc
new file mode 100644
index 0000000000..b1154001ad
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_src_node__platform.cc
@@ -0,0 +1,47 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/src/node_platform.cc.orig	2026-10-20 08:24:53.480699448 +0000
++++ third_party/electron_node/src/node_platform.cc
+@@ -548,6 +548,12 @@ void NodePlatform::AddIsolateFinishedCal
+ void NodePlatform::Shutdown() {
+   if (has_shut_down_) return;
+   has_shut_down_ = true;
++
++  // V8 background tasks may be parked waiting for foreground GC work before
++  // they can return from the worker thread task.
++  while (FlushForegroundTasksForAllIsolates()) {
++  }
++
+   worker_thread_task_runner_->Shutdown();
+ 
+   {
+@@ -739,6 +745,25 @@ bool NodePlatform::FlushForegroundTasks(
+   return per_isolate->FlushForegroundTasksInternal();
+ }
+ 
++bool NodePlatform::FlushForegroundTasksForAllIsolates() {
++  std::vector<std::shared_ptr<PerIsolatePlatformData>> per_isolates;
++  {
++    Mutex::ScopedLock lock(per_isolate_mutex_);
++    per_isolates.reserve(per_isolate_.size());
++    for (const auto& entry : per_isolate_) {
++      if (entry.second.second) {
++        per_isolates.push_back(entry.second.second);
++      }
++    }
++  }
++
++  bool did_work = false;
++  for (const auto& per_isolate : per_isolates) {
++    did_work |= per_isolate->FlushForegroundTasksInternal();
++  }
++  return did_work;
++}
++
+ std::unique_ptr<v8::JobHandle> NodePlatform::CreateJobImpl(
+     v8::TaskPriority priority,
+     std::unique_ptr<v8::JobTask> job_task,
diff --git a/electron43/patches/patch-third__party_electron__node_src_node__platform.h b/electron43/patches/patch-third__party_electron__node_src_node__platform.h
new file mode 100644
index 0000000000..7eb79c59ae
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_src_node__platform.h
@@ -0,0 +1,16 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/src/node_platform.h.orig	2026-10-20 08:24:53.480736383 +0000
++++ third_party/electron_node/src/node_platform.h
+@@ -266,6 +266,7 @@ class NodePlatform : public MultiIsolate
+  private:
+   IsolatePlatformDelegate* ForIsolate(v8::Isolate* isolate);
+   std::shared_ptr<PerIsolatePlatformData> ForNodeIsolate(v8::Isolate* isolate);
++  bool FlushForegroundTasksForAllIsolates();
+ 
+   Mutex per_isolate_mutex_;
+   using DelegatePair = std::pair<IsolatePlatformDelegate*,
diff --git a/electron43/patches/patch-third__party_electron__node_src_node__postmortem__metadata.cc b/electron43/patches/patch-third__party_electron__node_src_node__postmortem__metadata.cc
new file mode 100644
index 0000000000..911c5f0b45
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_src_node__postmortem__metadata.cc
@@ -0,0 +1,19 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/src/node_postmortem_metadata.cc.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/src/node_postmortem_metadata.cc
+@@ -13,6 +13,10 @@
+ #define NODEDBG_OFFSET(Class, Member, Type) \
+     NODEDBG_SYMBOL(offset_ ## Class ## __ ## Member ## __ ## Type)
+ 
++// Some systems provide macros for the types as well, which get expanded
++// by the nested macros here.
++#undef uintptr_t
++
+ // These are the constants describing Node internal structures. Every constant
+ // should use the format described above.  These constants are declared as
+ // global integers so that they'll be present in the generated node binary. They
diff --git a/electron43/patches/patch-third__party_electron__node_tools_generate__config__gypi.py b/electron43/patches/patch-third__party_electron__node_tools_generate__config__gypi.py
index 2d515e17b4..74b72d7da8 100644
--- a/electron43/patches/patch-third__party_electron__node_tools_generate__config__gypi.py
+++ b/electron43/patches/patch-third__party_electron__node_tools_generate__config__gypi.py
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- third_party/electron_node/tools/generate_config_gypi.py.orig	2026-09-07 09:57:40.000000000 +0000
+--- third_party/electron_node/tools/generate_config_gypi.py.orig	2026-10-13 14:09:48.000000000 +0000
 +++ third_party/electron_node/tools/generate_config_gypi.py
 @@ -19,7 +19,7 @@ import getnapibuildversion
  
diff --git a/electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_generator_make.py b/electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_generator_make.py
new file mode 100644
index 0000000000..6cd72206e7
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_generator_make.py
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/tools/gyp/pylib/gyp/generator/make.py.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/tools/gyp/pylib/gyp/generator/make.py
+@@ -208,7 +208,7 @@ cmd_solink_module = $(LINK.$(TOOLSET)) -
+ 
+ LINK_COMMANDS_MAC = """\
+ quiet_cmd_alink = LIBTOOL-STATIC $@
+-cmd_alink = rm -f $@ && %(python)s gyp-mac-tool filter-libtool libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %%.o,$^)
++cmd_alink = rm -f $@ && %(python)s gyp-mac-tool filter-libtool /usr/bin/libtool $(GYP_LIBTOOLFLAGS) -static -o $@ $(filter %%.o,$^)
+ 
+ quiet_cmd_link = LINK($(TOOLSET)) $@
+ cmd_link = $(LINK.$(TOOLSET)) $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -o "$@" $(LD_INPUTS) $(LIBS)
+@@ -2562,7 +2562,7 @@ def GenerateOutput(target_list, target_d
+                 "flock_index": 2,
+             }
+         )
+-    elif flavor == "freebsd":
++    elif flavor == "freebsd" or flavor == 'dragonflybsd' or flavor == 'netbsd':
+         # Note: OpenBSD has sysutils/flock. lockf seems to be FreeBSD specific.
+         header_params.update({"flock": "lockf"})
+     elif flavor == "openbsd":
diff --git a/electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_xcode__emulation.py b/electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_xcode__emulation.py
new file mode 100644
index 0000000000..71601dd8ac
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_tools_gyp_pylib_gyp_xcode__emulation.py
@@ -0,0 +1,26 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/tools/gyp/pylib/gyp/xcode_emulation.py.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/tools/gyp/pylib/gyp/xcode_emulation.py
+@@ -605,7 +605,7 @@ class XcodeSettings:
+ 
+         self._Appendf(cflags, "GCC_OPTIMIZATION_LEVEL", "-O%s", default="s")
+ 
+-        if self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="YES"):
++        if self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="NO"):
+             dbg_format = self._Settings().get("DEBUG_INFORMATION_FORMAT", "dwarf")
+             if dbg_format == "dwarf":
+                 cflags.append("-gdwarf-2")
+@@ -1097,7 +1097,7 @@ class XcodeSettings:
+         # For static libraries, no dSYMs are created.
+         result = []
+         if (
+-            self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="YES")
++            self._Test("GCC_GENERATE_DEBUGGING_SYMBOLS", "YES", default="NO")
+             and self._Test(
+                 "DEBUG_INFORMATION_FORMAT", "dwarf-with-dsym", default="dwarf"
+             )
diff --git a/electron43/patches/patch-third__party_electron__node_tools_install.py b/electron43/patches/patch-third__party_electron__node_tools_install.py
new file mode 100644
index 0000000000..60cba17935
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_tools_install.py
@@ -0,0 +1,20 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/tools/install.py.orig	2026-10-13 14:09:48.000000000 +0000
++++ third_party/electron_node/tools/install.py
+@@ -198,10 +198,7 @@ def files(options, action):
+   action(options, [os.path.join(options.v8_dir, 'tools/gdbinit')], 'share/doc/node/')
+   action(options, [os.path.join(options.v8_dir, 'tools/lldb_commands.py')], 'share/doc/node/')
+ 
+-  if 'openbsd' in sys.platform:
+-    action(options, ['doc/node.1'], 'man/man1/')
+-  else:
+-    action(options, ['doc/node.1'], 'share/man/man1/')
++  action(options, ['doc/node.1'], os.environ.get('PKGMANDIR') + '/man1/')
+ 
+   if 'true' == options.variables.get('node_install_npm'):
+     npm_files(options, action)
diff --git a/electron43/patches/patch-third__party_electron__node_tools_v8__gypfiles_v8.gyp b/electron43/patches/patch-third__party_electron__node_tools_v8__gypfiles_v8.gyp
new file mode 100644
index 0000000000..08d7a57ccf
--- /dev/null
+++ b/electron43/patches/patch-third__party_electron__node_tools_v8__gypfiles_v8.gyp
@@ -0,0 +1,21 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- third_party/electron_node/tools/v8_gypfiles/v8.gyp.orig	2026-10-20 08:24:53.471443968 +0000
++++ third_party/electron_node/tools/v8_gypfiles/v8.gyp
+@@ -1365,6 +1365,12 @@
+         }],
+         # Platforms that don't have Compare-And-Swap (CAS) support need to link atomic library
+         # to implement atomic memory access.
++        # NetBSD/arm also needs -larm.
++        ['OS=="netbsd" and v8_current_cpu in ["arm"]', {
++          'link_settings': {
++            'libraries': ['-larm', ],
++          },
++        }],
+         # Clang needs it for some atomic operations (https://clang.llvm.org/docs/Toolchain.html#atomics-library).
+         ['(OS=="linux" and clang==1) or (v8_current_cpu in ["mips64", "mips64el", "arm", "riscv64", "loong64"])', {
+           'link_settings': {
diff --git a/electron43/patches/patch-ui_gfx_font__util.cc b/electron43/patches/patch-ui_gfx_font__util.cc
index c3cc0d2641..683c3add22 100644
--- a/electron43/patches/patch-ui_gfx_font__util.cc
+++ b/electron43/patches/patch-ui_gfx_font__util.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- ui/gfx/font_util.cc.orig	2026-10-13 15:23:13.892834818 +0000
+--- ui/gfx/font_util.cc.orig	2026-10-20 08:24:52.584887527 +0000
 +++ ui/gfx/font_util.cc
 @@ -26,8 +26,11 @@ void InitializeFonts() {
    // the long delay the user would have seen on first rendering.
diff --git a/electron43/patches/patch-ui_gtk_gtk__compat.cc b/electron43/patches/patch-ui_gtk_gtk__compat.cc
index c309196aef..596eaca0e1 100644
--- a/electron43/patches/patch-ui_gtk_gtk__compat.cc
+++ b/electron43/patches/patch-ui_gtk_gtk__compat.cc
@@ -1,10 +1,10 @@
 $NetBSD$
 
 * Part of patchset to build electron on NetBSD
-* Based on OpenBSD's chromium patches, and
-  FreeBSD's electron patches
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
 
---- ui/gtk/gtk_compat.cc.orig	2026-10-13 15:23:13.076754965 +0000
+--- ui/gtk/gtk_compat.cc.orig	2026-10-20 08:24:51.707205642 +0000
 +++ ui/gtk/gtk_compat.cc
 @@ -82,15 +82,6 @@ void* GetLibGio() {
    return libgio;
diff --git a/electron43/patches/patch-ui_shell__dialogs_select__file__dialog.h b/electron43/patches/patch-ui_shell__dialogs_select__file__dialog.h
new file mode 100644
index 0000000000..51bec82b49
--- /dev/null
+++ b/electron43/patches/patch-ui_shell__dialogs_select__file__dialog.h
@@ -0,0 +1,17 @@
+$NetBSD$
+
+* Part of patchset to build electron on NetBSD
+* Based on OpenBSD's chromium patches, 
+  FreeBSD's electron patches, and pkgsrc's nodejs patches
+
+--- ui/shell_dialogs/select_file_dialog.h.orig	2026-10-20 08:24:51.841463779 +0000
++++ ui/shell_dialogs/select_file_dialog.h
+@@ -224,7 +224,7 @@ class SHELL_DIALOGS_EXPORT SelectFileDia
+                   const GURL* caller = nullptr);
+   bool HasMultipleFileTypeChoices();
+ 
+-#if BUILDFLAG(IS_LINUX)
++#if BUILDFLAG(IS_LINUX) || BUILDFLAG(IS_BSD)
+   // Set the label used for the file select button.
+   virtual void SetButtonLabel(const std::string& label) = 0;
+ 
diff --git a/electron43/platform.mk b/electron43/platform.mk
index 76f2d2df23..cab34bd14c 100644
--- a/electron43/platform.mk
+++ b/electron43/platform.mk
@@ -4,7 +4,7 @@
 #	Absolute path for node-gyp.
 #
 
-ELECTRON_VER=		43.7.9
+ELECTRON_VER=		43.8.0
 ELECTRON_MAJOR=		${ELECTRON_VER:tu:C/\\.[[:digit:]\.]*//}
 NODE_VERSIONS_ACCEPTED=	24
 ELECTRON=		electron${ELECTRON_MAJOR}


Home | Main Index | Thread Index | Old Index