pkgsrc-WIP-changes archive

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

wip/librewolf: update to librewolf-158.0-1



Module Name:	pkgsrc-wip
Committed By:	Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By:	yhardy
Date:		Tue Oct 20 20:46:02 2026 +0000
Changeset:	64f32d76a85498554a4f1dea4b6f61410a16e45a

Modified Files:
	librewolf/DESCR
	librewolf/Makefile
	librewolf/PLIST
	librewolf/PLIST.Linux
	librewolf/distinfo
	librewolf/files/node-wrapper.sh
	librewolf/mozilla-common.mk
	librewolf/options.mk
	librewolf/patches/patch-browser_app_profile_firefox.js
	librewolf/patches/patch-build_gn__processor.py
	librewolf/patches/patch-config_gcc-stl-wrapper.template.h
	librewolf/patches/patch-config_makefiles_rust.mk
	librewolf/patches/patch-config_system-headers.mozbuild
	librewolf/patches/patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp
	librewolf/patches/patch-ipc_glue_ForkServer.cpp
	librewolf/patches/patch-mozconfig
	librewolf/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c
	librewolf/patches/patch-third__party_sqlite3_ext_moz.build
	librewolf/patches/patch-toolkit_components_terminator_nsTerminator.cpp
Added Files:
	librewolf/patches/patch-dom_canvas_WebGLMethodDispatcher.h
	librewolf/patches/patch-gfx_wr_swgl_src_gl.cc
	librewolf/patches/patch-gfx_wr_swgl_src_glsl.h
	librewolf/patches/patch-gfx_wr_swgl_src_rasterize.h
	librewolf/patches/patch-gfx_wr_swgl_src_swgl__ext.h
	librewolf/patches/patch-js_src_intgemm_moz.build
	librewolf/patches/patch-js_src_jit_arm64_vixl_Registers-vixl.h
	librewolf/patches/patch-mozglue_misc_Now.cpp
	librewolf/patches/patch-python_mozbuild_mozbuild_backend_recursivemake.py
	librewolf/patches/patch-python_sites_build.txt
	librewolf/patches/patch-python_sites_mach.txt
	librewolf/patches/patch-third__party_angle_angle__common__gn_moz.build
	librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in
	librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_moz.build
	librewolf/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
	librewolf/patches/patch-third__party_rust_mtu_src_bindings_netbsd.rs
	librewolf/patches/patch-widget_gtk_nsAppShell.cpp
Removed Files:
	librewolf/patches/patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp
	librewolf/patches/patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h
	librewolf/patches/patch-js_moz.configure
	librewolf/patches/patch-third__party_pipewire_spa_utils_string.h
	librewolf/patches/patch-third__party_wasm2c_src_c-writer.cc

Log Message:
wip/librewolf: update to librewolf-158.0-1

Upstream changes:

 LibreWolf development has moved from codeberg.org to librewolf.dev.


Release notes:

LibreWolf bsys6 Release v158.0-1

  * Upstream release, see the Firefox 158.0 Release Notes

 Notable Changes:

  * Fixed Start menu shortcut creation, which is needed to open new
    windows from the taskbar when the app isn't pinned (Windows)
  * Removed the JXL UI setting now that JXL is enabled by default


LibreWolf bsys6 Release v157.0.1-1

  * Upstream release, see the Firefox 157.0.1 Release Notes

 Notable Changes:

  * Added a per-site JIT permission to reduce the attack surface. See
      https://librewolf.net/docs/faq/#how-do-i-toggle-jit-per-site
    for information on how to use this feature
  * Fixed settings search on macOS


LibreWolf bsys6 Release v157.0-1

  * Upstream release, see the Firefox 157.0 Release Notes

 Notable Changes:

  * Delete the Alt‑Svc cache at session end due to fingerprinting concerns
  * Remove Mullvad DNS from our default DNS options and inform users
    of the discontinuation of the service
  * Update our icons for the Nova redesign (by https://waby.ink)
  * Add a UI toggle to disable the Nova redesign
  * Allow disabling of the built‑in updater


LibreWolf bsys6 Release v156.0.1-1

  * Upstream release, see the Firefox 156.0.1 Release Notes

 Notable Changes:

  * Fix ExperimentAPI.ready() waiting indefinitely when Nimbus is disabled
    (Upstreamed)


LibreWolf bsys6 Release v156.0-1

  * Upstream release, see the Firefox 156.0 Release Notes

 Notable Changes (a bit belated):

  * macOS releases now have the built‑in updater enabled
  * Added a setting toggle to enable usage of the OpenH264 plugin
    (required for screen‑sharing on e.g., Discord)
  * Fixed UserInteraction errors when telemetry is disabled (Upstreamed)
  * Avoid showing settings entries for Labs/AI via urlbar suggestions
    when they are disabled (Upstreamed)
  * Avoid hard‑coding “Firefox” to enable using profile refresh on forks
    (Upstreamed)
  * The canvas permission in the settings now also appears when FPP uses
    the CanvasImageExtractionPrompt RFPTarget


LibreWolf bsys6 Release v155.0.1-1

  * Upstream release, see the Firefox 155.0.1 Release Notes

 No notable changes from LibreWolf's end.


LibreWolf bsys6 Release v155.0-1

  * Upstream release, see the Firefox 155.0 Release Notes

 No notable changes from LibreWolf's end.


LibreWolf bsys6 Release v154.0.1-3

 Notable Changes:

  * Fixed the upstream language packs not being included in our build
  * Fixed an upstream PiP regression which prevented background playback
    when PiP tab switching was on
  * Added a button to the PiP player for background playback


LibreWolf bsys6 Release v154.0.1-2

  * Upstream release, see the Firefox 154.0.1 Release Notes

 Notable Changes:

  * Our macOS builds are now signed, which removes the warning that they
    are broken/unsafe and eliminates the need to remove the quarantine.
  * The Canvas permission has been added to the settings. This allows
    changing allowed or blocked site settings without having to visit
    the affected sites.
  * The Canvas permission while RFP is disabled has been fixed.


LibreWolf bsys6 Release v154.0-2

 Instructions: https://librewolf.net/installation/

  * See Firefox 154.0 Release Notes for upstream changes. They may not
    be available yet, as we are releasing this version earlier than
    Mozilla. In the meantime, we refer you to the beta releases.

 Notable Changes:

  * Disable fetching of external wallpapers by default, while still
    allowing to set custom ones. External wallpapers can be enabled
    under Home and startup > Homepage.
  * Exempting a site from being cleared on shutdown is now a separate
    permission, which can be managed in the History section, while the
    "cookies" permission, from which this was split off, remains in
    the Browsing data section. They can be managed via their respective
    Manage exceptions menus.
  * The convenience toggle in the address bar has been updated to use
    the new shutdown permission.


LibreWolf bsys6 Release v153.0.4-1

  * Upstream release, see the Firefox 153.0.4 Release Notes

 Notable Changes:

  * Search engines have moved away from using policies and instead use
    the bundled remote-settings dump. This included an overhaul of the
    search engines we ship and this might cause the default engine for
    some users to reset to the DuckDuckGo No-AI default.
  * The slow startup that some users experienced on session start has
    been fixed

 Notes about infrastructure changes:

  We have started the migration to our own forgejo instance
    https://librewolf.dev
  but will dual release to the Codeberg locations to allow adequate
  time for downstream packagers to update to the new location. As a
  part of this move, the signing key for the RPM releases has been
  changed to our repo signing key. Information on what needs to be
  done to use the new key can be found here
    https://librewolf.net/installation/rhel/#updating-the-gpg-signing-key


LibreWolf bsys6 Release v153.0.3-1

  * Upstream release, see the Firefox 153.0.3 Release Notes


LibreWolf bsys6 Release v153.0.1-1

  * Upstream release, see the Firefox 153.0.1 Release Notes


LibreWolf bsys6 Release v153.0-3


LibreWolf bsys6 Release v153.0-1

  * Upstream release, see the Firefox 153.0 Release Notes

 Notable Changes:

  * This release now includes the newly redesigned settings, with a
    convenience button to switch between the old and new version
  * Various fixes related to branding
  * Fix the profile manager not working on macOS


LibreWolf bsys6 Release v152.0.6-1

  * Upstream release, see the Firefox 152.0.6 Release Notes


LibreWolf bsys6 Release v152.0.5-1

  * Upstream release, see the Firefox 152.0.5 Release Notes


LibreWolf bsys6 Release v152.0.4-1

  * Upstream release, see the Firefox 152.0.4 Release Notes


LibreWolf bsys6 Release v152.0.2-1

  * Upstream release, see the Firefox 152.0.2 Release Notes


LibreWolf bsys6 Release v152.0.1-2


LibreWolf bsys6 Release v152.0-1

  * Upstream release, see the Firefox 152.0 Release Notes

 Notable changes:

  * The AppImages are now built on Codeberg along with the other releases
  * We have decided to wait a bit longer to enable the settings redesign,
    due to use being aware of multiple upstream issues


LibreWolf bsys6 Release v151.0.4-1

  * Upstream release, see the Firefox 151.0.4 Release Notes

 Notable changes:

  * DRM now uses a per-site permission, instead of allowing all requested
    sites access, when DRM is enabled
      https://librewolf.net/docs/faq/#how-do-i-allow-playback-of-drm-controlled-content-when-should-i-allow-it


LibreWolf bsys6 Release v151.0.3-1

  * Upstream release, see the Firefox 151.0.3 Release Notes

 Notable changes:

  * Clears the preference toolkit.winRegisterApplicationRestart, which
    may otherwise trigger an upstream bug on Windows


LibreWolf bsys6 Release v151.0.2-1

  * Upstream release, see the Firefox 151.0.2 Release Notes


LibreWolf bsys6 Release v151.0-1

  * Upstream release, see the Firefox 151.0 Release Notes


LibreWolf bsys6 Release v151.0.1-1

  * Upstream release, see the Firefox 151.0.1 Release Notes

 Notable changes:

  * Right click menu now has the option to translate the page
  * Fix the WebGL prompt being recreated when already shown
  * Use PGO for all builds to increase performance


LibreWolf bsys6 Release v151.0.1-2

 Notable changes:

  * Fix a regression in the settings privacy pane

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

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

diffstat:
 librewolf/DESCR                                    |  20 +-
 librewolf/Makefile                                 |  24 +-
 librewolf/PLIST                                    |  81 +-
 librewolf/PLIST.Linux                              |   2 +-
 librewolf/distinfo                                 |  56 +-
 librewolf/files/node-wrapper.sh                    |   2 +-
 librewolf/mozilla-common.mk                        |  65 +-
 librewolf/options.mk                               |   4 +-
 .../patches/patch-browser_app_profile_firefox.js   |  13 +-
 librewolf/patches/patch-build_gn__processor.py     |  20 +-
 .../patch-config_gcc-stl-wrapper.template.h        |  17 +-
 librewolf/patches/patch-config_makefiles_rust.mk   |  28 +-
 .../patches/patch-config_system-headers.mozbuild   |  30 +-
 .../patch-dom_canvas_WebGLMethodDispatcher.h       |  26 +
 ...diacapabilities_MediaCapabilitiesValidation.cpp |   8 +-
 ...c_common_third__party_smhasher_src_PMurHash.cpp |  17 -
 ...gle_checkout_src_compiler_translator_InfoSink.h |  16 -
 librewolf/patches/patch-gfx_wr_swgl_src_gl.cc      |  15 +
 librewolf/patches/patch-gfx_wr_swgl_src_glsl.h     |  14 +
 .../patches/patch-gfx_wr_swgl_src_rasterize.h      |  13 +
 .../patches/patch-gfx_wr_swgl_src_swgl__ext.h      |  13 +
 librewolf/patches/patch-ipc_glue_ForkServer.cpp    |  16 +-
 librewolf/patches/patch-js_moz.configure           |  17 -
 librewolf/patches/patch-js_src_intgemm_moz.build   |  49 ++
 .../patch-js_src_jit_arm64_vixl_Registers-vixl.h   |  20 +
 librewolf/patches/patch-mozconfig                  |  14 +-
 librewolf/patches/patch-mozglue_misc_Now.cpp       |  27 +
 .../patch-nsprpub_pr_src_pthreads_ptsynch.c        | 156 ++--
 ...thon_mozbuild_mozbuild_backend_recursivemake.py |  27 +
 librewolf/patches/patch-python_sites_build.txt     |  15 +
 librewolf/patches/patch-python_sites_mach.txt      |  28 +
 ...-third__party_angle_angle__common__gn_moz.build |  40 +
 ...EShaderProgramVersion.h-22c710649c380411.rsp.in | 860 +++++++++++++++++++++
 ...angle_angle__program__version__id__gn_moz.build |  31 +
 ...party_angle_src_common_system__utils__linux.cpp |  15 +
 .../patch-third__party_pipewire_spa_utils_string.h |  17 -
 ...ch-third__party_rust_mtu_src_bindings_netbsd.rs |  69 ++
 .../patch-third__party_sqlite3_ext_moz.build       |  10 +-
 .../patch-third__party_wasm2c_src_c-writer.cc      |  13 -
 ...-toolkit_components_terminator_nsTerminator.cpp |  10 +-
 librewolf/patches/patch-widget_gtk_nsAppShell.cpp  |  16 +
 41 files changed, 1565 insertions(+), 369 deletions(-)

diffs:
diff --git a/librewolf/DESCR b/librewolf/DESCR
index 6bfb590d10..2ed17b481f 100644
--- a/librewolf/DESCR
+++ b/librewolf/DESCR
@@ -1,13 +1,9 @@
-Mozilla Firefox is a free, open-source and cross-platform web browser
-for Windows, Linux, MacOS X and many other operating systems.
+This project is a custom and independent version of Firefox, with
+the primary goals of privacy, security and user freedom.
 
-It is fast and easy to use, and offers many advantages over other web
-browsers, such as tabbed browsing and the ability to block pop-up
-windows.
-
-Firefox also offers excellent bookmark and history management, and it
-can be extended by developers using industry standards such as XML,
-CSS, JavaScript, C++, etc. Many extensions are available.
-
-Note: Due to upstream's trademark policies, this package identifies as
-"Nightly" rather than "Firefox" by default.
+LibreWolf is designed to increase protection against tracking and
+fingerprinting techniques, while also including a few security
+improvements. This is achieved through our privacy and security
+oriented settings and patches. LibreWolf also aims to remove all
+the telemetry, data collection and annoyances, as well as disabling
+anti-freedom features like DRM.
diff --git a/librewolf/Makefile b/librewolf/Makefile
index e0f95772cb..fe58d2372b 100644
--- a/librewolf/Makefile
+++ b/librewolf/Makefile
@@ -1,22 +1,22 @@
 # $NetBSD: Makefile,v 1.650 2025/11/14 17:17:18 ryoon Exp $
 
 FIREFOX_VER=		${MOZ_BRANCH}${MOZ_BRANCH_MINOR}
-MOZ_BRANCH=		151.0
-MOZ_BRANCH_MINOR=	.1
-MOZ_BRANCH_HYPHEN=	  2
+MOZ_BRANCH=		158.0
+#MOZ_BRANCH_MINOR=	.1
+MOZ_BRANCH_HYPHEN=	1
 
 DISTNAME=	librewolf-${FIREFOX_VER}-${MOZ_BRANCH_HYPHEN}.source
 PKGNAME=	${DISTNAME:S/.source//:S/-${MOZ_BRANCH_HYPHEN}$//}
 CATEGORIES=	www
-MASTER_SITES=	https://codeberg.org/api/packages/librewolf/generic/librewolf-source/${FIREFOX_VER}-${MOZ_BRANCH_HYPHEN}/
+MASTER_SITES=	https://librewolf.dev/api/packages/librewolf/generic/librewolf-source/${FIREFOX_VER}-${MOZ_BRANCH_HYPHEN}/
 EXTRACT_SUFX=	.tar.gz
 
-NODEJSKIT=		nodejs-output-149.0.tgz
+NODEJSKIT=		nodejs-output-156.0.1.tgz
 DISTFILES=		${DEFAULT_DISTFILES} ${NODEJSKIT}
 SITES.${NODEJSKIT}=	${MASTER_SITE_LOCAL}
 
 MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
-HOMEPAGE=	https://www.mozilla.org/en-US/firefox/
+HOMEPAGE=	https://librewolf.dev
 COMMENT=	Web browser with support for extensions (version ${FIREFOX_VER:tu:C/\\.[[:digit:]\.]*//})
 LICENSE=	mpl-1.1
 
@@ -45,6 +45,9 @@ LICENSE=	mpl-1.1
 #
 # -----------------------------------------------------------------------
 
+# see comment in www/firefox/Makefile
+# make maintainer-files does not work at the moment
+FIREFOX_MAINTAINER=yes
 WRKSRC=		${WRKDIR}/${DISTNAME:S/.source//}
 
 MOZILLA_DIR=	# empty
@@ -100,19 +103,14 @@ CHECK_INTERPRETER_SKIP+=	lib/firefox-sdk/sdk/bin/header.py
 CHECK_INTERPRETER_SKIP+=	lib/firefox-sdk/sdk/bin/typelib.py
 CHECK_INTERPRETER_SKIP+=	lib/firefox-sdk/sdk/bin/xpidl.py
 CHECK_INTERPRETER_SKIP+=	lib/firefox-sdk/sdk/bin/xpt.py
-CHECK_PORTABILITY_SKIP+=	third_party/rust/dogear/.github/workflows/upload-to-codecov.sh
 
 CHECK_WRKREF_SKIP+=	lib/${MOZILLA}/omni.ja
 
 MOZILLA=	${PKGBASE}
 
-.if !empty(PKG_OPTIONS:Mofficial-mozilla-branding)
-MOZILLA_NAME=		Firefox
-MOZILLA_BRANDING=	official
-.else
-MOZILLA_NAME=		Browser
+# Librewolf takes care of this anyway
+MOZILLA_NAME=		Librewolf
 MOZILLA_BRANDING=	unofficial
-.endif
 
 pre-configure:
 # As of 106.0, .in template files are not patched.
diff --git a/librewolf/PLIST b/librewolf/PLIST
index 0e0aac26a0..541ee30d7d 100644
--- a/librewolf/PLIST
+++ b/librewolf/PLIST
@@ -1,42 +1,41 @@
 @comment $NetBSD: PLIST,v 1.191 2025/10/27 14:24:32 ryoon Exp $
-bin/librewolf
-lib/librewolf/application.ini
-lib/librewolf/browser/chrome/icons/default/default128.png
-lib/librewolf/browser/chrome/icons/default/default16.png
-lib/librewolf/browser/chrome/icons/default/default32.png
-lib/librewolf/browser/chrome/icons/default/default48.png
-lib/librewolf/browser/chrome/icons/default/default64.png
-lib/librewolf/browser/omni.ja
-lib/librewolf/defaults/pref/channel-prefs.js
-lib/librewolf/dependentlibs.list
-lib/librewolf/distribution/policies.json
-lib/librewolf/librewolf
-lib/librewolf/librewolf-bin
-lib/librewolf/librewolf.cfg
-lib/librewolf/fonts/TwemojiMozilla.ttf
-lib/librewolf/glxtest
-lib/librewolf/gmp-clearkey/0.1/libclearkey.so
-lib/librewolf/gmp-clearkey/0.1/manifest.json
-lib/librewolf/libgkcodecs.so
-lib/librewolf/liblgpllibs.so
-${PLIST.ffvpx}lib/librewolf/libmozavcodec.so
-${PLIST.ffvpx}lib/librewolf/libmozavutil.so
-lib/librewolf/libmozgtk.so
-lib/librewolf/libmozinference.so
-lib/librewolf/libmozsqlite3.so
-${PLIST.wayland}lib/librewolf/libmozwayland.so
-lib/librewolf/libxul.so
-lib/librewolf/omni.ja
-lib/librewolf/platform.ini
-lib/librewolf/removed-files
-${PLIST.v4l2_decode}lib/librewolf/v4l2test
-lib/librewolf/vaapitest
-share/applications/librewolf.desktop
-share/icons/hicolor/128x128/apps/librewolf.png
-share/icons/hicolor/16x16/apps/librewolf.png
-share/icons/hicolor/22x22/apps/librewolf.png
-share/icons/hicolor/24x24/apps/librewolf.png
-share/icons/hicolor/256x256/apps/librewolf.png
-share/icons/hicolor/32x32/apps/librewolf.png
-share/icons/hicolor/48x48/apps/librewolf.png
-share/icons/hicolor/64x64/apps/librewolf.png
+bin/${MOZILLA}
+lib/${MOZILLA}/application.ini
+lib/${MOZILLA}/browser/chrome/icons/default/default128.png
+lib/${MOZILLA}/browser/chrome/icons/default/default16.png
+lib/${MOZILLA}/browser/chrome/icons/default/default32.png
+lib/${MOZILLA}/browser/chrome/icons/default/default48.png
+lib/${MOZILLA}/browser/chrome/icons/default/default64.png
+lib/${MOZILLA}/browser/omni.ja
+lib/${MOZILLA}/defaults/pref/channel-prefs.js
+lib/${MOZILLA}/dependentlibs.list
+lib/${MOZILLA}/distribution/policies.json
+lib/${MOZILLA}/${MOZILLA}
+lib/${MOZILLA}/${MOZILLA}-bin
+lib/${MOZILLA}/${MOZILLA}.cfg
+lib/${MOZILLA}/fonts/TwemojiMozilla.ttf
+lib/${MOZILLA}/gfxtest
+lib/${MOZILLA}/gmp-clearkey/0.1/libclearkey.so
+lib/${MOZILLA}/gmp-clearkey/0.1/manifest.json
+lib/${MOZILLA}/libgkcodecs.so
+lib/${MOZILLA}/liblgpllibs.so
+${PLIST.ffvpx}lib/${MOZILLA}/libmozavcodec.so
+${PLIST.ffvpx}lib/${MOZILLA}/libmozavutil.so
+lib/${MOZILLA}/libmozgtk.so
+lib/${MOZILLA}/libmozinference.so
+lib/${MOZILLA}/libmozsqlite3.so
+${PLIST.wayland}lib/${MOZILLA}/libmozwayland.so
+lib/${MOZILLA}/libxul.so
+lib/${MOZILLA}/omni.ja
+lib/${MOZILLA}/platform.ini
+lib/${MOZILLA}/removed-files
+${PLIST.v4l2_decode}lib/${MOZILLA}/v4l2test
+share/applications/${MOZILLA}.desktop
+share/icons/hicolor/128x128/apps/${MOZILLA}.png
+share/icons/hicolor/16x16/apps/${MOZILLA}.png
+share/icons/hicolor/22x22/apps/${MOZILLA}.png
+share/icons/hicolor/24x24/apps/${MOZILLA}.png
+share/icons/hicolor/256x256/apps/${MOZILLA}.png
+share/icons/hicolor/32x32/apps/${MOZILLA}.png
+share/icons/hicolor/48x48/apps/${MOZILLA}.png
+share/icons/hicolor/64x64/apps/${MOZILLA}.png
diff --git a/librewolf/PLIST.Linux b/librewolf/PLIST.Linux
index 5bf6fb813c..3f0f69d95a 100644
--- a/librewolf/PLIST.Linux
+++ b/librewolf/PLIST.Linux
@@ -1,2 +1,2 @@
 @comment $NetBSD: PLIST.Linux,v 1.4 2021/08/21 22:53:00 mcf Exp $
-lib/firefox/libmozsandbox.so
+lib/${MOZILLA}/libmozsandbox.so
diff --git a/librewolf/distinfo b/librewolf/distinfo
index 776fc501c7..0be130cd37 100644
--- a/librewolf/distinfo
+++ b/librewolf/distinfo
@@ -1,45 +1,57 @@
 $NetBSD: distinfo,v 1.569 2025/11/14 17:17:18 ryoon Exp $
 
-BLAKE2s (librewolf-151.0.1-2.source.tar.gz) = f80f80641ae135634757b7ef819a5c139b88bac55e0552b73ed83443656fad2b
-SHA512 (librewolf-151.0.1-2.source.tar.gz) = 0cb52807e7b19ae85beaf146aa0203b71879bba88b439171f469aa0e2596fcbb76664c23ab5170870348e93ab030ff48a4c1d5b3f739ed4d1231dbfd7a7bcf90
-Size (librewolf-151.0.1-2.source.tar.gz) = 1132988415 bytes
-BLAKE2s (nodejs-output-149.0.tgz) = 01166fb4cb652505925e4697b2b6574768bc8b8af4f97de3c8ac3478a6c9562b
-SHA512 (nodejs-output-149.0.tgz) = f8cf9daf454849fad48f0def830929c306d76a088d17aa10aa20675c186a2ce3e1087ed9e8a4e309901305a9395561028c8751b822a29316474e9eade1394e94
-Size (nodejs-output-149.0.tgz) = 249417 bytes
-SHA1 (patch-browser_app_profile_firefox.js) = 1eaa674c0aa8279e2f9dc2eda582650a08156d65
-SHA1 (patch-build_gn__processor.py) = 078f773104bf4c1b30584564aefe365db6ba6daf
+BLAKE2s (librewolf-158.0-1.source.tar.gz) = 452c1c6fe927368d5ff04c615f80674528df54b0d721e9bf1046ee2e350af0f0
+SHA512 (librewolf-158.0-1.source.tar.gz) = 7ed1d815623cdc5a34d4a49711033edda1a97538efbb6a4a48e9105fa059d380cfbab54d290deebdc8d88f52866bd011f8ca3af2e4923d21fee893232469e41b
+Size (librewolf-158.0-1.source.tar.gz) = 1181473241 bytes
+BLAKE2s (nodejs-output-156.0.1.tgz) = 26aa0e33c007e8c08ebbe87dd1004c0cee01d9bed8a3b96ed5ccdc4062324e8d
+SHA512 (nodejs-output-156.0.1.tgz) = 6b6bc87f4dacc2f77bb525aa484ac7cb5035502033dc37f8b46d047659a516631281e332515ca450cd5cce4d01d7102d7fc011771a9bc0ea15633b233a0ffe31
+Size (nodejs-output-156.0.1.tgz) = 251380 bytes
+SHA1 (patch-browser_app_profile_firefox.js) = 1fe46a0bb3d29520d19755a8786457b3259a6c96
+SHA1 (patch-build_gn__processor.py) = c9b2f31787704c3fec466711010ef632199ae385
 SHA1 (patch-build_moz.configure_init.configure) = 65deb3c233df0aab81eb1fca05d708e5a4ed169a
 SHA1 (patch-build_moz.configure_rust.configure) = 25ddfacd29cebbc6db005dbe61a2a7446d480678
-SHA1 (patch-config_gcc-stl-wrapper.template.h) = 9d1f15ff487efa9202114d19ed5668b4e7aa032a
-SHA1 (patch-config_makefiles_rust.mk) = 25eb2d4c99ace2b215917490f28ceb90ab90145f
-SHA1 (patch-config_system-headers.mozbuild) = 8a628765291085efe6a22da28c0ff99fbc3c5e6f
+SHA1 (patch-config_gcc-stl-wrapper.template.h) = b5b4f2aef747836b09584b77d6332a7010963b0b
+SHA1 (patch-config_makefiles_rust.mk) = 74c18ac9c37ff268428961275df3e77a7b1ed537
+SHA1 (patch-config_system-headers.mozbuild) = 227a2a8c3ed38b4599895069e2c599881ec723b8
 SHA1 (patch-dom_base_nsAttrName.h) = ac7ba441a3b27df2855cf2673eea36b1cb44ad49
-SHA1 (patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp) = b7f8d8b82e4545b97643fbbea7fa72a4cc2ecaf8
+SHA1 (patch-dom_canvas_WebGLMethodDispatcher.h) = 78f6e44116a939615523339fb73ac93f40777749
+SHA1 (patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp) = 2f471067387bb63d530ba1299f0542d3b3a785b6
 SHA1 (patch-dom_media_webrtc_libwebrtc__overrides_moz.build) = a2ff7cf1e6aaf888ee78581d89c7e658f46c3fcd
 SHA1 (patch-dom_webtransport_api_WebTransportDatagramDuplexStream.cpp) = b93b4c6367bd2fb3d1868ab7d97ca56c100be414
-SHA1 (patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp) = e458c9c8dc66edc69c1874734af28a77fc5e3993
-SHA1 (patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h) = b2adce9e65662283a11b6dcff40e95523e940045
 SHA1 (patch-gfx_ots_src_name.cc) = 35ae5b2689eae8fab1ea351612f3628c14001f9e
 SHA1 (patch-gfx_skia_skia_src_sksl_codegen_SkSLSPIRVCodeGenerator.cpp) = 3eb9855e20fe8b7784a9620fce4ffb96f4736f82
+SHA1 (patch-gfx_wr_swgl_src_gl.cc) = bfd63e477f695af2cc070e22a54a6dfc7db85b5f
+SHA1 (patch-gfx_wr_swgl_src_glsl.h) = ee08102822bdc1aef5c3cd3d3bb054fb486d2e12
+SHA1 (patch-gfx_wr_swgl_src_rasterize.h) = aee4ed07cc8acacc42164226618757eeeb35d7d1
+SHA1 (patch-gfx_wr_swgl_src_swgl__ext.h) = 14915b93b10cb2a7a495c9188bb0194935d06a2a
 SHA1 (patch-ipc_chromium_src_base_message__pump__libevent.cc) = 298642a3527804115b398fb7904a3596962932e3
 SHA1 (patch-ipc_chromium_src_base_platform__thread__posix.cc) = ee40764b100728d8fb73b8c6f1251456e368bd53
-SHA1 (patch-ipc_glue_ForkServer.cpp) = 238890a8f274a562c562862dd501baf2ebdf692b
+SHA1 (patch-ipc_glue_ForkServer.cpp) = 91d3141795ba19c27c6e46fc205f97bfef1fdd6c
 SHA1 (patch-ipc_glue_GeckoChildProcessHost.cpp) = 00bd08bb68b9aad3c4478c8849b53341da4a0d29
 SHA1 (patch-js-src-jit-arm64-vixl-MozCpu-vixl.cpp) = d90fca47d79551fd74214d47f8184670b901b792
-SHA1 (patch-js_moz.configure) = 55f435ffd38aba3e6bc453e93e58580006bd7810
 SHA1 (patch-js_public_Utility.h) = bb5464a0398b91693ab362e6b9b06d48429b9e7d
 SHA1 (patch-js_src_editline_editline.c) = ba44a33cc19d19aeaa777548ac74fc7144ea7d70
+SHA1 (patch-js_src_intgemm_moz.build) = 460d64d188e145dae2a917cef116e0483d86552e
 SHA1 (patch-js_src_jit_FlushICache.cpp) = f5d1fcb391c36a29fb71a78dbf731ee6a1cb17b6
+SHA1 (patch-js_src_jit_arm64_vixl_Registers-vixl.h) = 0e64f5b7ebc92ba12949181f78f716d88adcb67e
 SHA1 (patch-js_src_util_NativeStack.cpp) = a0a16d8d8d78d3cc3f4d2a508586f1a7821f7dba
 SHA1 (patch-js_src_vm_TypedArrayObject-inl.h) = e7913c8d4b2b05b67040baa64dae62d6ba40390e
 SHA1 (patch-media_ffvpx_libavutil_arm_bswap.h) = d0bdc30d23447bd56185eb9dc5c86de591f9cc02
 SHA1 (patch-media_libpng_pngpriv.h) = ee952a703ee08e8ff2269c7178e55e00b12faa29
 SHA1 (patch-memory_build_mozjemalloc__types.h) = af87ef935653cb845a6b702af2f5645a6ada27db
-SHA1 (patch-mozconfig) = f19ca510341e62d1115adde18dc181e75c135749
+SHA1 (patch-mozconfig) = dcd189c945f7642c1810b63a1de0cb482c561330
+SHA1 (patch-mozglue_misc_Now.cpp) = 760724be1bdc4ca6e19edaf2c8df6dd84192d93f
 SHA1 (patch-netwerk_protocol_http_nsHttpHandler.cpp) = 67493b4635041d21ff9fbfda80b3197fed542a26
-SHA1 (patch-nsprpub_pr_src_pthreads_ptsynch.c) = 753fd4d62088c870aefe7c4b739286259848446e
+SHA1 (patch-nsprpub_pr_src_pthreads_ptsynch.c) = c99c3ce679f4196fc3baaf65051471a13d6fe8cd
+SHA1 (patch-python_mozbuild_mozbuild_backend_recursivemake.py) = 5be4183d9075f5a3a3c6b3e0338473af185fb50e
+SHA1 (patch-python_sites_build.txt) = 2f716b67b47d8d0f648f466aabdc1c4e90d0f024
+SHA1 (patch-python_sites_mach.txt) = 481a2f8daaaee8efc41e67054e044920d8c8b3ad
 SHA1 (patch-third__party_abseil-cpp_absl_debugging_internal_elf__mem__image.cc) = b1067a6804470f7e365f347683b7d505853fd799
 SHA1 (patch-third__party_abseil-cpp_absl_debugging_internal_vdso__support.cc) = f9c44d0d6fd952296f23c24f56053958b30d8e5c
+SHA1 (patch-third__party_angle_angle__common__gn_moz.build) = 836c33a87239f69c9bcf0efedcdfef2094de1467
+SHA1 (patch-third__party_angle_angle__program__version__id__gn_ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in) = 5cd224ceac5a03ff38acb9a07c8958669f10e168
+SHA1 (patch-third__party_angle_angle__program__version__id__gn_moz.build) = b367cb16b059627a6033bdce664ba591ca3527e6
+SHA1 (patch-third__party_angle_src_common_system__utils__linux.cpp) = ed9936b0fa5807cdc8df871183589130784b6bc1
 SHA1 (patch-third__party_js_cfworker_build.sh) = 46cdf97b99cf01080f290ae8d9a33b5f869fc3e4
 SHA1 (patch-third__party_libwebrtc_modules_audio__device_audio__device__impl.cc) = 127284a1a9b6e12581d325f5a5aadae443b0e57b
 SHA1 (patch-third__party_libwebrtc_modules_desktop__capture_desktop__capture__gn_moz.build) = da85f4a3e22c4a346f1f8e87ecdc62bf8c0bddd7
@@ -52,14 +64,14 @@ SHA1 (patch-third__party_libwebrtc_modules_video__capture_video__capture__option
 SHA1 (patch-third__party_libwebrtc_rtc__base_memory__usage.cc) = a831145ba15b30d30c6e6e216b574d416253ed4a
 SHA1 (patch-third__party_libwebrtc_rtc__base_physical__socket__server.cc) = 6909c4da9e7b3785252e5bce9be0ff47ebb87e01
 SHA1 (patch-third__party_libwebrtc_rtc__base_platform__thread__types.cc) = 8ae75100775037347008d168eedc151e0e993b0f
-SHA1 (patch-third__party_pipewire_spa_utils_string.h) = 8426a6f0ef59855d1a64c79586d21c70391762e5
 SHA1 (patch-third__party_python_dlmanager_check.py) = 69054522d8ced8cb47e65e5a8b1a87ed5ce6708e
-SHA1 (patch-third__party_sqlite3_ext_moz.build) = 026483e9cdc61eda80b699978b1677e1b6d3ff6d
+SHA1 (patch-third__party_rust_mtu_src_bindings_netbsd.rs) = dc28ab3a4b6a5bee76ea6fd2485e34b9d6f1b195
+SHA1 (patch-third__party_sqlite3_ext_moz.build) = 4d94ea324617a20b3524016dd02fb717e518ece1
 SHA1 (patch-third__party_sqlite3_src_moz.build) = b26856a4b87aa12211575d9982f62dc899474b52
-SHA1 (patch-third__party_wasm2c_src_c-writer.cc) = 38eb2ee0e00722aa1380540b83648b43723719aa
 SHA1 (patch-third__party_wasm2c_src_prebuilt_wasm2c__source__includes.cc) = 99d0db944f0c2d0c623460991efd423d9127c988
-SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = e905e38ef1b88d764c695c019f15609350c1c43b
+SHA1 (patch-toolkit_components_terminator_nsTerminator.cpp) = a222742a8a496033bd53e88f4f28fe8dde1e4e7f
 SHA1 (patch-toolkit_moz.configure) = 1306e7ac3c3939886aff38a58dd3162e6517409b
 SHA1 (patch-toolkit_mozapps_installer_packager.mk) = c77481a1f8fe1e237b7fe87e3e586ca886ac1d3d
+SHA1 (patch-widget_gtk_nsAppShell.cpp) = 69034ac3b176b56c93cbc7e075c484d56d61ca6a
 SHA1 (patch-xpcom_base_nscore.h) = 1ac4d34d3c9e80bc1ac966c6c84cb320bc0fa1ec
 SHA1 (patch-xpcom_reflect_xptcall_md_unix_moz.build) = 8980398051fa16c7283acb6d323419993cce1420
diff --git a/librewolf/files/node-wrapper.sh b/librewolf/files/node-wrapper.sh
index 9d1b215a65..71ce73e76f 100755
--- a/librewolf/files/node-wrapper.sh
+++ b/librewolf/files/node-wrapper.sh
@@ -1,6 +1,6 @@
 #! /bin/sh
 
-VERS=v24.10.0
+VERS=v26.10.0
 
 if [ "$1" = "-v" ] || [ "$1" = "--version" ]; then
 	printf "${VERS}\n"
diff --git a/librewolf/mozilla-common.mk b/librewolf/mozilla-common.mk
index 12f211616f..f0e983a127 100644
--- a/librewolf/mozilla-common.mk
+++ b/librewolf/mozilla-common.mk
@@ -1,4 +1,4 @@
-# $NetBSD: mozilla-common.mk,v 1.304 2025/11/14 20:47:01 tsutsui Exp $
+# $NetBSD: mozilla-common.mk,v 1.326 2026/09/23 08:39:50 ryoon Exp $
 #
 # common Makefile fragment for mozilla packages based on gecko 2.0.
 #
@@ -21,14 +21,16 @@ OVERRIDE_GNU_CONFIG_SCRIPTS=	yes
 OVERRIDE_DIRDEPTH=		4
 
 USE_LANGUAGES+=		c c++
+USE_CXX_FEATURES+=	c++20
 
 # XXX: As of 145.0
 GCC_REQD+=		10
 
-TOOL_DEPENDS+=		cbindgen>=0.28.0:../../devel/cbindgen
+TOOL_DEPENDS+=		cbindgen>=0.29.4:../../devel/cbindgen
 
 .if defined(FIREFOX_MAINTAINER) && !defined(MAINTAINER_INTERNAL)
-TOOL_DEPENDS+=		nodejs-[0-9]*:../../lang/nodejs
+BUILDLINK_DEPMETHOD.nodejs=	build
+.include "../../lang/nodejs/nodeversion.mk"
 USE_TOOLS+=		diff
 .else
 CONFIGURE_ENV+=		NODEJS="${FILESDIR}/node-wrapper.sh"
@@ -40,19 +42,19 @@ TOOL_DEPENDS+=		yasm>=1.1:../../devel/yasm
 CFLAGS+=		-msse2
 .endif
 
-#CKSUM_CRATES+=	third_party/rust/quinn-udp
-#
-#CKSUMS+=	b8e595499055115d15bfb95259c0c585934adf55f61e365bcc9fc47ab8fa9cdd
-#CKSUMS+=	7be04be65b1606fd2560d572ba5a6238a645075555085d5e9cef15d10b0b8024
-#
-#SUBST_CLASSES+=		cksum
-#SUBST_STAGE.cksum=	pre-configure
-#.for crate in ${CKSUM_CRATES}
-#SUBST_FILES.cksum+=	${crate}/.cargo-checksum.json
-#.endfor
-#.for from to in ${CKSUMS}
-#SUBST_SED.cksum+=	-e 's,${from},${to},g'
-#.endfor
+CKSUM_CRATES+=		third_party/rust/mtu
+
+CKSUMS+=		9fbb89ab042627182477b35adc61eed71cffada9d3d5d522766d6d369ad02d80
+CKSUMS+=		986f84f01a44521224c7a7c1b1883cc6a4f89cbcb24b36844bfffea5f285747e
+
+SUBST_CLASSES+=		cksum
+SUBST_STAGE.cksum=	pre-configure
+.for crate in ${CKSUM_CRATES}
+SUBST_FILES.cksum+=	${crate}/.cargo-checksum.json
+.endfor
+.for from to in ${CKSUMS}
+SUBST_SED.cksum+=	-e 's,${from},${to},g'
+.endfor
 
 # This is to work around build failures where an upstream configuration script
 # is confused by having more than one approximate match to MACHINE_GNU_PLATFORM
@@ -94,6 +96,7 @@ CHECK_PORTABILITY_SKIP+=	${MOZILLA_DIR}intl/icu/source/configure
 CHECK_PORTABILITY_SKIP+=	${MOZILLA_DIR}browser/components/loop/run-all-loop-tests.sh
 CHECK_PORTABILITY_SKIP+=	${MOZILLA_DIR}browser/extensions/loop/run-all-loop-tests.sh
 CHECK_PORTABILITY_SKIP+=	${MOZILLA_DIR}third_party/libwebrtc/tools_webrtc/iwyu/apply-iwyu
+CHECK_PORTABILITY_SKIP+=	${MOZILLA_DIR}third_party/rust/dogear/.github/workflows/upload-to-codecov.sh
 
 CONFIGURE_ARGS+=	--enable-release
 # Disable Rust SIMD option to fix build with lang/rust-1.33.0
@@ -147,7 +150,7 @@ CONFIGURE_ARGS+=	--without-wasm-sandboxed-libraries
 SUBST_CLASSES+=				fix-libpci-soname
 SUBST_STAGE.fix-libpci-soname=		pre-configure
 SUBST_MESSAGE.fix-libpci-soname=	Fixing libpci soname
-SUBST_FILES.fix-libpci-soname+=		${MOZILLA_DIR}toolkit/xre/glxtest/glxtest.cpp
+SUBST_FILES.fix-libpci-soname+=		${MOZILLA_DIR}toolkit/xre/gfxtest/glxtest.cpp
 SUBST_SED.fix-libpci-soname+=		-e 's,"libpci.so, "lib${PCIUTILS_LIBNAME}.so,'
 
 .if ${MACHINE_PLATFORM:MNetBSD-*-i386}
@@ -161,15 +164,6 @@ SUBST_MESSAGE.sqlite3-opt=	Fixing segfault in libmozsqlite3.so
 SUBST_FILES.sqlite3-opt+=	${MOZILLA_DIR}third_party/sqlite3/src/moz.build
 SUBST_VARS.sqlite3-opt+=	SQLITE3OPTFLAG
 
-.if ${OPSYS} == "NetBSD" && ${MACHINE_ARCH} == "aarch64"
-SUBST_CLASSES+=                 sve2
-SUBST_STAGE.sve2=               pre-configure
-SUBST_FILES.sve2=               media/libyuv/libyuv/source/convert.cc
-SUBST_FILES.sve2+=              media/libyuv/libyuv/source/scale_argb.cc
-SUBST_FILES.sve2+=              media/libyuv/libyuv/source/convert_argb.cc
-SUBST_SED.sve2=                 -e 's/_SVE2/_NEON/g'
-.endif
-
 # Do not pass '-j1 -j1' for MAKE_JOBS=1 for NetBSD 9.3 or earlier.
 RUST_MAKE_JOBS=		# empty by default
 .if ${OPSYS} == "NetBSD" && ${OPSYS_VERSION} < 090400
@@ -216,7 +210,6 @@ CONFIGURE_SCRIPT=	${WRKSRC}/configure
 
 PLIST_VARS+=	v4l2_decode ffvpx
 
-PLIST_VARS+=		v4l2_decode
 .if ${MACHINE_ARCH} == "aarch64" || \
     ${MACHINE_ARCH:M*arm*} || \
     ${MACHINE_ARCH} == riscv64
@@ -235,6 +228,13 @@ PLIST.ffvpx=	yes	# see media/ffvpx/ffvpxcommon.mozbuild
 CONFIGURE_ARGS.Darwin+=	--disable-sandbox
 CONFIGURE_ARGS.NetBSD+=	--disable-sandbox
 
+PRINT_PLIST_AWK+=	/\/${MOZILLA}\// { gsub(/\/${MOZILLA}\//, "/$${MOZILLA}/") }
+PRINT_PLIST_AWK+=	/\/${MOZILLA}.png$$/ { gsub(/\/${MOZILLA}.png$$/, "/$${MOZILLA}.png") }
+PRINT_PLIST_AWK+=	/\/${MOZILLA}.desktop$$/ { gsub(/\/${MOZILLA}.desktop$$/, "/$${MOZILLA}.desktop") }
+PRINT_PLIST_AWK+=	/\/${MOZILLA}$$/ { gsub(/\/${MOZILLA}$$/, "/$${MOZILLA}") }
+PRINT_PLIST_AWK+=	/\/${MOZILLA}-bin$$/ { gsub(/\/${MOZILLA}-bin$$/, "/$${MOZILLA}-bin") }
+PLIST_SUBST+=		MOZILLA=${MOZILLA}
+
 # Makefiles sometimes call "rm -f" without more arguments. Kludge around ...
 .PHONY: create-rm-wrapper
 pre-configure: create-rm-wrapper
@@ -257,10 +257,10 @@ BUILDLINK_API_DEPENDS.libevent+=	libevent>=1.1
 # See build/moz.configure/nspr.configure
 BUILDLINK_API_DEPENDS.nspr+=	nspr>=4.34
 .include "../../devel/nspr/buildlink3.mk"
-BUILDLINK_API_DEPENDS.icu+=	icu>=76.1
+BUILDLINK_API_DEPENDS.icu+=	icu>=78.1
 .include "../../textproc/icu/buildlink3.mk"
 # See build/moz.configure/nss.configure
-BUILDLINK_API_DEPENDS.nss+=	nss>=3.117
+BUILDLINK_API_DEPENDS.nss+=	nss>=3.126.1
 .include "../../devel/nss/buildlink3.mk"
 .include "../../devel/zlib/buildlink3.mk"
 #.include "../../mk/jpeg.buildlink3.mk"
@@ -271,14 +271,11 @@ BUILDLINK_API_DEPENDS.libwebp+=	libwebp>=1.0.2
 .include "../../graphics/libwebp/buildlink3.mk"
 BUILDLINK_DEPMETHOD.clang=	build
 .include "../../lang/clang/buildlink3.mk"
-RUST_REQ=	1.82.0
+RUST_REQ=	1.90.0
 .include "../../lang/rust/rust.mk"
 .include "../../multimedia/libvpx/buildlink3.mk"
 .include "../../net/libIDL/buildlink3.mk"
-# TODO: check again, pkgsrc has hunspell 1.7
-# was: textproc/hunspell 1.3 is too old
-#.include "../../textproc/hunspell/buildlink3.mk"
-.include "../../multimedia/ffmpeg7/buildlink3.mk"
+.include "../../multimedia/ffmpeg9/buildlink3.mk"
 .include "../../x11/libXt/buildlink3.mk"
 .include "../../x11/libXtst/buildlink3.mk"
 BUILDLINK_API_DEPENDS.pixman+= pixman>=0.40
diff --git a/librewolf/options.mk b/librewolf/options.mk
index f3f9725b60..95e72055a2 100644
--- a/librewolf/options.mk
+++ b/librewolf/options.mk
@@ -1,6 +1,6 @@
 # $NetBSD: options.mk,v 1.77 2025/10/27 14:24:32 ryoon Exp $
 
-PKG_OPTIONS_VAR=	PKG_OPTIONS.firefox
+PKG_OPTIONS_VAR=	PKG_OPTIONS.librewolf
 
 PKG_SUPPORTED_OPTIONS=	official-mozilla-branding
 PKG_SUPPORTED_OPTIONS+=	debug debug-info mozilla-jemalloc webrtc
@@ -29,7 +29,7 @@ AUDIO_BACKENDS+=	alsa
 
 .if !empty(PKG_OPTIONS:Mmozilla-jemalloc)
 CONFIGURE_ARGS+=	--enable-jemalloc
-#CONFIGURE_ARGS+=	--enable-replace-malloc
+CONFIGURE_ARGS+=	--enable-replace-malloc
 .else
 CONFIGURE_ARGS+=	--disable-jemalloc
 #.include "../../devel/jemalloc/buildlink3.mk"
diff --git a/librewolf/patches/patch-browser_app_profile_firefox.js b/librewolf/patches/patch-browser_app_profile_firefox.js
index 625b54cc2d..556b77da3b 100644
--- a/librewolf/patches/patch-browser_app_profile_firefox.js
+++ b/librewolf/patches/patch-browser_app_profile_firefox.js
@@ -1,11 +1,11 @@
-$NetBSD: patch-browser_app_profile_firefox.js,v 1.24 2025/10/27 14:24:33 ryoon Exp $
+$NetBSD: patch-browser_app_profile_firefox.js,v 1.28 2026/10/16 16:28:47 ryoon Exp $
 
 This patch modifies default Firefox settings - see the comments above
 each one.
 
---- browser/app/profile/firefox.js.orig	2025-10-03 13:17:55.000000000 +0000
+--- browser/app/profile/firefox.js.orig	2026-09-24 10:45:34.000000000 +0000
 +++ browser/app/profile/firefox.js
-@@ -2842,6 +2842,39 @@ pref("app.normandy.onsync_skew_sec", 600
+@@ -3055,6 +3055,36 @@ pref("toolkit.coverage.endpoint.base", "https://covera
  pref("toolkit.coverage.enabled", false);
  pref("toolkit.coverage.endpoint.base", "https://coverage.mozilla.org";);
  
@@ -30,9 +30,6 @@ each one.
 +pref("midi.prompt.testing", true);
 +pref("media.navigator.permission.disabled", true);
 +
-+// Avoid runtime error from WebGL for NetBSD systems
-+pref("webgl.out-of-process", false);
-+
 +// Avoid unfunctional video and audio codecs
 +pref("media.allow-audio-non-utility", true);
 +
@@ -42,6 +39,6 @@ each one.
 +// The root cause of this should be investigated.
 +pref("dom.serviceWorkers.enabled", false);
 +
- // Discovery prefs
+ // Enable personalized extension recommendations
  pref("browser.discovery.enabled", true);
- pref("browser.discovery.containers.enabled", true);
+ 
diff --git a/librewolf/patches/patch-build_gn__processor.py b/librewolf/patches/patch-build_gn__processor.py
index e9a290b367..79b802b0c6 100644
--- a/librewolf/patches/patch-build_gn__processor.py
+++ b/librewolf/patches/patch-build_gn__processor.py
@@ -1,9 +1,9 @@
-$NetBSD: patch-build_gn__processor.py,v 1.1 2025/10/27 14:24:33 ryoon Exp $
+$NetBSD: patch-build_gn__processor.py,v 1.2 2026/09/23 08:39:50 ryoon Exp $
 
---- build/gn_processor.py.orig	2025-10-03 13:17:56.000000000 +0000
+--- build/gn_processor.py.orig	2026-09-09 20:41:32.000000000 +0000
 +++ build/gn_processor.py
-@@ -190,6 +190,8 @@ def filter_gn_config(path, gn_result, sa
-         "mac": "Darwin",
+@@ -220,6 +220,8 @@ def filter_gn_config(path, gn_result, sandbox_vars, in
+         "ios": "Darwin",
          "openbsd": "OpenBSD",
          "win": "WINNT",
 +        "freebsd": "FreeBSD",
@@ -11,15 +11,15 @@ $NetBSD: patch-build_gn__processor.py,v 1.1 2025/10/27 14:24:33 ryoon Exp $
      }
  
      mozbuild_args = {
-@@ -810,17 +812,17 @@ def main():
+@@ -1063,17 +1065,17 @@ def generate_gn_configs(topsrcdir, config):
  
      vars_set = []
      for is_debug in (True, False):
--        for target_os in ("android", "linux", "mac", "openbsd", "win"):
-+        for target_os in ("android", "linux", "mac", "openbsd", "win", "freebsd", "netbsd"):
+-        for target_os in ("android", "ios", "linux", "mac", "openbsd", "win"):
++        for target_os in ("android", "ios", "linux", "mac", "openbsd", "win", "freebsd", "netbsd"):
              target_cpus = ["x64"]
--            if target_os in ("android", "linux", "mac", "win", "openbsd"):
-+            if target_os in ("android", "linux", "mac", "win", "openbsd", "freebsd", "netbsd"):
+-            if target_os in ("android", "ios", "linux", "mac", "win", "openbsd"):
++            if target_os in ("android", "ios", "linux", "mac", "win", "openbsd", "freebsd", "netbsd"):
                  target_cpus.append("arm64")
 -            if target_os in ("android", "linux"):
 +            if target_os in ("android", "linux", "freebsd", "netbsd"):
@@ -35,7 +35,7 @@ $NetBSD: patch-build_gn__processor.py,v 1.1 2025/10/27 14:24:33 ryoon Exp $
                  target_cpus.extend(["loong64", "ppc64", "mipsel", "mips64el"])
              for target_cpu in target_cpus:
                  vars = {
-@@ -834,7 +836,7 @@ def main():
+@@ -1092,7 +1094,7 @@ def generate_gn_configs(topsrcdir, config):
                          vars["ozone_platform_x11"] = enable_x11
                          vars_set.append(vars.copy())
                  else:
diff --git a/librewolf/patches/patch-config_gcc-stl-wrapper.template.h b/librewolf/patches/patch-config_gcc-stl-wrapper.template.h
index 42cf75a664..49ab340e07 100644
--- a/librewolf/patches/patch-config_gcc-stl-wrapper.template.h
+++ b/librewolf/patches/patch-config_gcc-stl-wrapper.template.h
@@ -1,8 +1,8 @@
-$NetBSD: patch-config_gcc-stl-wrapper.template.h,v 1.4 2021/09/30 14:18:28 ryoon Exp $
+$NetBSD: patch-config_gcc-stl-wrapper.template.h,v 1.7 2026/08/24 12:51:47 ryoon Exp $
 
---- config/gcc-stl-wrapper.template.h.orig	2021-09-04 13:24:51.000000000 +0000
+--- config/gcc-stl-wrapper.template.h.orig	2026-04-15 13:12:19.000000000 +0000
 +++ config/gcc-stl-wrapper.template.h
-@@ -32,8 +32,8 @@
+@@ -27,8 +27,8 @@
  // limits) and bug 1694575 (iosfwd).
  // Please be careful when adding more exceptions, especially regarding
  // the header not directly or indirectly including <new>.
@@ -13,19 +13,20 @@ $NetBSD: patch-config_gcc-stl-wrapper.template.h,v 1.4 2021/09/30 14:18:28 ryoon
  #endif
  
  #ifndef moz_dont_include_mozalloc_for_cmath
-@@ -55,7 +55,7 @@
+@@ -50,7 +50,7 @@
  // Include mozalloc after the STL header and all other headers it includes
  // have been preprocessed.
  #if !defined(MOZ_INCLUDE_MOZALLOC_H) && \
 -    !defined(moz_dont_include_mozalloc_for_${HEADER})
-+    !defined(moz_dont_include_mozalloc_for_cstdlib)
++    !defined(moz_dont_include_mozalloc_for_${HEADER})
  #  define MOZ_INCLUDE_MOZALLOC_H
  #  define MOZ_INCLUDE_MOZALLOC_H_FROM_${HEADER}
  #endif
-@@ -84,4 +84,6 @@
+@@ -78,5 +78,7 @@
+ #ifndef mozilla_throw_gcc_h
  #  include "mozilla/throw_gcc.h"
  #endif
- 
-+#undef moz_dont_include_mzalloc_for_${HEADER}
 +
++#undef moz_dont_include_mzalloc_for_${HEADER}
+ 
  #endif  // if mozilla_${HEADER}_h
diff --git a/librewolf/patches/patch-config_makefiles_rust.mk b/librewolf/patches/patch-config_makefiles_rust.mk
index 4bd5a1298b..5fc9853ca4 100644
--- a/librewolf/patches/patch-config_makefiles_rust.mk
+++ b/librewolf/patches/patch-config_makefiles_rust.mk
@@ -1,4 +1,4 @@
-$NetBSD: patch-config_makefiles_rust.mk,v 1.15 2025/10/27 14:24:33 ryoon Exp $
+$NetBSD: patch-config_makefiles_rust.mk,v 1.17 2026/10/16 16:28:47 ryoon Exp $
 
 NetBSD doesn't get along with parallel rust builds (it causes issues
 with ld.so) which are the default. Force -j1.
@@ -6,25 +6,25 @@ with ld.so) which are the default. Force -j1.
 Use less memory to fix build under NetBSD/i386.
 From: https://bugzilla.mozilla.org/show_bug.cgi?id=1644409
 
---- config/makefiles/rust.mk.orig	2025-10-03 13:17:55.000000000 +0000
+--- config/makefiles/rust.mk.orig	2026-10-08 02:23:59.000000000 +0000
 +++ config/makefiles/rust.mk
-@@ -60,6 +60,9 @@ ifdef MOZ_TSAN
- cargo_build_flags += -Zbuild-std=std,panic_abort
- RUSTFLAGS += -Zsanitizer=thread
+@@ -45,6 +45,9 @@ endif
+ endif
+ endif
  endif
 +ifeq ($(OS_ARCH),NetBSD)
 +cargo_build_flags += @RUST_MAKE_JOBS@
 +endif
  
- rustflags_sancov =
- ifndef MOZ_TSAN
-@@ -101,7 +104,8 @@ ifndef rustflags_sancov
- # Never enable when coverage is enabled to work around https://github.com/rust-lang/rust/issues/90045.
- ifndef MOZ_CODE_COVERAGE
- ifeq (,$(findstring gkrust_gtest,$(RUST_LIBRARY_FILE)))
--cargo_rustc_flags += -Clto$(if $(filter full,$(MOZ_LTO_RUST_CROSS)),=fat)
+ # Without -j > 1, make will not pass jobserver info down to cargo. Force
+ # one job when requested as a special case.
+@@ -56,7 +59,8 @@ ifdef RUST_LIBRARY_LTO
+ cargo_rustc_flags = $(CARGO_RUSTCFLAGS)
+ # Enable link-time optimization for release builds.
+ ifdef RUST_LIBRARY_LTO
+-cargo_rustc_flags += -Clto
 +cargo_rustc_flags += -Clto=thin
 +export CARGO_PROFILE_RELEASE_LTO=thin
  endif
- # We need -Cembed-bitcode=yes for all crates when using -Clto.
- RUSTFLAGS += -Cembed-bitcode=yes
+ 
+ ifdef CARGO_INCREMENTAL
diff --git a/librewolf/patches/patch-config_system-headers.mozbuild b/librewolf/patches/patch-config_system-headers.mozbuild
index ca5b1740bb..926f5ae02c 100644
--- a/librewolf/patches/patch-config_system-headers.mozbuild
+++ b/librewolf/patches/patch-config_system-headers.mozbuild
@@ -1,22 +1,12 @@
-$NetBSD: patch-config_system-headers.mozbuild,v 1.3 2025/10/27 14:24:33 ryoon Exp $
+$NetBSD: patch-config_system-headers.mozbuild,v 1.5 2026/10/16 16:28:47 ryoon Exp $
 
-* sys/single_threaded.h is only for Linux.
-
---- config/system-headers.mozbuild.orig	2025-10-06 13:27:29.080303273 +0000
+--- config/system-headers.mozbuild.orig	2026-10-09 17:18:07.601740057 +0000
 +++ config/system-headers.mozbuild
-@@ -865,7 +865,6 @@ system_headers = [
-     "sys/shm.h",
-     "sys/siginfo.h",
-     "sys/signal.h",
--    "sys/single_threaded.h",
-     "sys/socket.h",
-     "sys/sockio.h",
-     "sys/sparc/frame.h",
-@@ -1377,6 +1376,7 @@ if CONFIG["MOZ_WAYLAND"]:
- if CONFIG["OS_TARGET"] in ("Android", "Linux", "FreeBSD"):
-     system_headers += [
-         "sys/auxv.h",
-+        "sys/single_threaded.h",
-     ]
- 
- if CONFIG["OS_TARGET"] == "Linux" and CONFIG["TARGET_CPU"].startswith("mips"):
+@@ -761,6 +761,7 @@ system_headers = [
+     "size_t.h",
+     "smime.h",
+     "someincludefile.h",
++    "source_location",
+     "soundcard.h",
+     "Sound.h",
+     "soundtouch/SoundTouchFactory.h",
diff --git a/librewolf/patches/patch-dom_canvas_WebGLMethodDispatcher.h b/librewolf/patches/patch-dom_canvas_WebGLMethodDispatcher.h
new file mode 100644
index 0000000000..09d8560653
--- /dev/null
+++ b/librewolf/patches/patch-dom_canvas_WebGLMethodDispatcher.h
@@ -0,0 +1,26 @@
+$NetBSD: patch-dom_canvas_WebGLMethodDispatcher.h,v 1.1 2026/08/14 12:26:11 ryoon Exp $
+
+- Work around broken WebGL method dispatch on NetBSD.
+  From PR pkg/60579: www/firefox: WebGL does not work on NetBSD
+
+--- dom/canvas/WebGLMethodDispatcher.h.orig	2026-07-27 13:13:11.000000000 +0000
++++ dom/canvas/WebGLMethodDispatcher.h
+@@ -31,7 +31,18 @@ class WebGLMethodDispatcher
+ 
+ // Defines each method the WebGLMethodDispatcher handles.  The COUNTER value
+ // is used as a cross-process ID for each of the methods.
++#ifdef __NetBSD__
++// XXX: NetBSD system headers use __COUNTER__ in __CTASSERT(), so
++//      __COUNTER__ may already have been incremented when this header is
++//      included.  Normalize the method IDs so that they start at zero.
++constexpr size_t kWebGLMethodDispatcherCounterBase = __COUNTER__ + 1;
++
++#define DEFINE_ASYNC(_METHOD)                                      \
++  DEFINE_METHOD_DISPATCHER(                                        \
++      __COUNTER__ - kWebGLMethodDispatcherCounterBase, _METHOD, 0)
++#else
+ #define DEFINE_ASYNC(_METHOD) DEFINE_METHOD_DISPATCHER(__COUNTER__, _METHOD, 0)
++#endif
+ 
+ DEFINE_ASYNC(HostWebGLContext::CreateBuffer)
+ DEFINE_ASYNC(HostWebGLContext::CreateFramebuffer)
diff --git a/librewolf/patches/patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp b/librewolf/patches/patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp
index 20997e4c32..e7c4ec93f5 100644
--- a/librewolf/patches/patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp
+++ b/librewolf/patches/patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp
@@ -1,13 +1,13 @@
-$NetBSD: patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp,v 1.1 2026/01/19 12:06:04 ryoon Exp $
+$NetBSD: patch-dom_media_mediacapabilities_MediaCapabilitiesValidation.cpp,v 1.2 2026/07/21 15:25:01 ryoon Exp $
 
---- dom/media/mediacapabilities/MediaCapabilitiesValidation.cpp.orig	2026-01-03 09:52:49.089840762 +0000
+--- dom/media/mediacapabilities/MediaCapabilitiesValidation.cpp.orig	2026-07-13 13:09:12.000000000 +0000
 +++ dom/media/mediacapabilities/MediaCapabilitiesValidation.cpp
-@@ -199,7 +199,7 @@ ValidationResult IsValidVideoConfiguration(const Video
+@@ -263,7 +263,7 @@ ValidationResult IsValidVideoConfiguration(const Video
  
    // Step 1: If framerate is not finite or is not greater than 0,
    // return false and abort these steps.
 -  if (!isfinite(aConfig.mFramerate) || !(aConfig.mFramerate > 0)) {
 +  if (!std::isfinite(aConfig.mFramerate) || !(aConfig.mFramerate > 0)) {
      ValidationResult err = Err(ValidationError::FramerateInvalid);
-     LOG(("[Invalid VideoConfiguration (Framerate, %s) #1] Rejecting '%s'\n",
+     LOG(("[Invalid VideoConfiguration (Framerate, {}) #1] Rejecting '{}'\n",
           EnumValueToString(err.unwrapErr()),
diff --git a/librewolf/patches/patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp b/librewolf/patches/patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp
deleted file mode 100644
index ecc30d6251..0000000000
--- a/librewolf/patches/patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD: patch-gfx_angle_checkout_src_common_third__party_smhasher_src_PMurHash.cpp,v 1.4 2019/07/11 11:32:40 ryoon Exp $
-
-Fix build where _LITTLE_ENDIAN is not an integer.
-
---- gfx/angle/checkout/src/common/third_party/smhasher/src/PMurHash.cpp.orig	2019-07-06 01:48:31.000000000 +0000
-+++ gfx/angle/checkout/src/common/third_party/smhasher/src/PMurHash.cpp
-@@ -91,8 +91,8 @@ on big endian machines, or a byte-by-byt
- /* gcc 'may' define __LITTLE_ENDIAN__ or __BIG_ENDIAN__ to 1 (Note the trailing __),
-  * or even _LITTLE_ENDIAN or _BIG_ENDIAN (Note the single _ prefix) */
- #if !defined(__BYTE_ORDER)
--#    if defined(__LITTLE_ENDIAN__) && __LITTLE_ENDIAN__ == 1 || \
--        defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN == 1
-+#    if defined(__LITTLE_ENDIAN__) && __LITTLE_ENDIAN__-0 == 1 || \
-+        defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN-0 == 1
- #        define __BYTE_ORDER __LITTLE_ENDIAN
- #    elif defined(__BIG_ENDIAN__) && __BIG_ENDIAN__ == 1 || defined(_BIG_ENDIAN) && _BIG_ENDIAN == 1
- #        define __BYTE_ORDER __BIG_ENDIAN
diff --git a/librewolf/patches/patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h b/librewolf/patches/patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h
deleted file mode 100644
index 25cc3ee4f9..0000000000
--- a/librewolf/patches/patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h
+++ /dev/null
@@ -1,16 +0,0 @@
-$NetBSD: patch-gfx_angle_checkout_src_compiler_translator_InfoSink.h,v 1.3 2021/11/11 16:48:04 ryoon Exp $
-
-* isinf/isnan in make.h is defined as macro. Use non-macro version
-  to fix build.
-
---- gfx/angle/checkout/src/compiler/translator/InfoSink.h.orig	2021-10-28 18:03:11.000000000 +0000
-+++ gfx/angle/checkout/src/compiler/translator/InfoSink.h
-@@ -7,7 +7,7 @@
- #ifndef COMPILER_TRANSLATOR_INFOSINK_H_
- #define COMPILER_TRANSLATOR_INFOSINK_H_
- 
--#include <math.h>
-+#include <cmath>
- #include <stdlib.h>
- #include "GLSLANG/ShaderLang.h"
- #include "compiler/translator/Common.h"
diff --git a/librewolf/patches/patch-gfx_wr_swgl_src_gl.cc b/librewolf/patches/patch-gfx_wr_swgl_src_gl.cc
new file mode 100644
index 0000000000..03fa6b2634
--- /dev/null
+++ b/librewolf/patches/patch-gfx_wr_swgl_src_gl.cc
@@ -0,0 +1,15 @@
+$NetBSD: patch-gfx_wr_swgl_src_gl.cc,v 1.1 2026/08/24 12:51:47 ryoon Exp $
+
+* Use cmath for C++ to avoid errors under NetBSD.
+
+--- gfx/wr/swgl/src/gl.cc.orig	2026-08-14 14:46:45.531876235 +0000
++++ gfx/wr/swgl/src/gl.cc
+@@ -7,7 +7,7 @@
+ #include <string.h>
+ #include <assert.h>
+ #include <stdio.h>
+-#include <math.h>
++#include <cmath>
+ 
+ #ifdef __MACH__
+ #  include <mach/mach.h>
diff --git a/librewolf/patches/patch-gfx_wr_swgl_src_glsl.h b/librewolf/patches/patch-gfx_wr_swgl_src_glsl.h
new file mode 100644
index 0000000000..24e6ded905
--- /dev/null
+++ b/librewolf/patches/patch-gfx_wr_swgl_src_glsl.h
@@ -0,0 +1,14 @@
+$NetBSD: patch-gfx_wr_swgl_src_glsl.h,v 1.1 2026/08/24 12:51:47 ryoon Exp $
+
+--- gfx/wr/swgl/src/glsl.h.orig	2026-08-12 13:09:03.000000000 +0000
++++ gfx/wr/swgl/src/glsl.h
+@@ -2,6 +2,9 @@
+  * License, v. 2.0. If a copy of the MPL was not distributed with this
+  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ 
++#include <cmath>
++using std::fpclassify;
++
+ #define SI ALWAYS_INLINE static
+ 
+ #include "vector_type.h"
diff --git a/librewolf/patches/patch-gfx_wr_swgl_src_rasterize.h b/librewolf/patches/patch-gfx_wr_swgl_src_rasterize.h
new file mode 100644
index 0000000000..a85399af26
--- /dev/null
+++ b/librewolf/patches/patch-gfx_wr_swgl_src_rasterize.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-gfx_wr_swgl_src_rasterize.h,v 1.1 2026/08/24 12:51:47 ryoon Exp $
+
+--- gfx/wr/swgl/src/rasterize.h.orig	2026-08-12 13:09:04.000000000 +0000
++++ gfx/wr/swgl/src/rasterize.h
+@@ -32,6 +32,8 @@
+ // a given row, the row will be converted to the flattened representation to
+ // support it, after which it will only ever revert back to runs if the depth
+ // buffer is cleared.
++#include <cmath>
++using std::isfinite;
+ 
+ // The largest 24-bit depth value supported.
+ constexpr uint32_t MAX_DEPTH_VALUE = 0xFFFFFF;
diff --git a/librewolf/patches/patch-gfx_wr_swgl_src_swgl__ext.h b/librewolf/patches/patch-gfx_wr_swgl_src_swgl__ext.h
new file mode 100644
index 0000000000..c2e168b2ef
--- /dev/null
+++ b/librewolf/patches/patch-gfx_wr_swgl_src_swgl__ext.h
@@ -0,0 +1,13 @@
+$NetBSD: patch-gfx_wr_swgl_src_swgl__ext.h,v 1.1 2026/08/24 12:51:47 ryoon Exp $
+
+--- gfx/wr/swgl/src/swgl_ext.h.orig	2026-08-12 13:09:04.000000000 +0000
++++ gfx/wr/swgl/src/swgl_ext.h
+@@ -8,6 +8,8 @@
+ // efficiently process it and modulate it with color without incurring blend
+ // stage overheads.
+ #include <cstdint>
++#include <cmath>
++using std::isfinite;
+ 
+ template <typename P, typename C>
+ static void commit_masked_solid_span(P* buf, C color, int len) {
diff --git a/librewolf/patches/patch-ipc_glue_ForkServer.cpp b/librewolf/patches/patch-ipc_glue_ForkServer.cpp
index 2e7c366c82..1834d17df8 100644
--- a/librewolf/patches/patch-ipc_glue_ForkServer.cpp
+++ b/librewolf/patches/patch-ipc_glue_ForkServer.cpp
@@ -1,12 +1,14 @@
-$NetBSD$
+$NetBSD: patch-ipc_glue_ForkServer.cpp,v 1.2 2026/05/30 17:06:09 ryoon Exp $
 
---- ipc/glue/ForkServer.cpp.orig	2026-05-08 19:59:09.495174425 +0000
+* Fix build for signal(3).
+
+--- ipc/glue/ForkServer.cpp.orig	2026-04-20 09:24:23.315338652 +0000
 +++ ipc/glue/ForkServer.cpp
-@@ -22,6 +22,7 @@
+@@ -19,6 +19,7 @@
+ #include "nsTraceRefcnt.h"
+ 
+ #include <fcntl.h>
++#include <signal.h>
  #include <string.h>
  #include <sys/wait.h>
  #include <unistd.h>
-+#include <signal.h>
- 
- #if defined(XP_LINUX) && defined(MOZ_SANDBOX)
- #  include "mozilla/SandboxLaunch.h"
diff --git a/librewolf/patches/patch-js_moz.configure b/librewolf/patches/patch-js_moz.configure
deleted file mode 100644
index bd0297be44..0000000000
--- a/librewolf/patches/patch-js_moz.configure
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- js/moz.configure.orig	2026-04-15 21:48:04.000000000 +0000
-+++ js/moz.configure
-@@ -1430,8 +1430,11 @@ set_config("MOZ_OPTIMIZE_FLAGS", moz_js_optimize_flags
- @depends(
-     target_is_android | target_is_windows | target_is_darwin,
-     js_standalone & ~depends(when="--enable-jemalloc")(True),
-+    target,
- )
--def moz_glue_in_program(is_excluded_target, is_js_without_jemalloc):
-+def moz_glue_in_program(is_excluded_target, is_js_without_jemalloc, target):
-+    if target.os == "NetBSD":
-+      return False
-     return not is_excluded_target and not is_js_without_jemalloc
- 
- 
diff --git a/librewolf/patches/patch-js_src_intgemm_moz.build b/librewolf/patches/patch-js_src_intgemm_moz.build
new file mode 100644
index 0000000000..9a80e48ad3
--- /dev/null
+++ b/librewolf/patches/patch-js_src_intgemm_moz.build
@@ -0,0 +1,49 @@
+$NetBSD: patch-js_src_intgemm_moz.build,v 1.2 2026/05/30 17:06:09 ryoon Exp $
+
+* Disable AVX512.
+
+--- js/src/intgemm/moz.build.orig	2025-11-12 23:22:51.000000000 +0000
++++ js/src/intgemm/moz.build
+@@ -37,24 +37,24 @@ if CONFIG["INTEL_ARCHITECTURE"]:
+         SOURCES[
+             "/third_party/gemmology/kernels/GemmologyEngineAVX2.cpp"
+         ].flags += CONFIG["AVX2_FLAGS"]
+-    if CONFIG["AVXVNNI_FLAGS"]:
+-        DEFINES["USE_AVXVNNI"] = True
+-        SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVXVNNI.cpp"]
+-        SOURCES[
+-            "/third_party/gemmology/kernels/GemmologyEngineAVXVNNI.cpp"
+-        ].flags += CONFIG["AVXVNNI_FLAGS"]
+-    if CONFIG["AVX512BW_FLAGS"]:
+-        DEFINES["USE_AVX512BW"] = True
+-        SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX512BW.cpp"]
+-        SOURCES[
+-            "/third_party/gemmology/kernels/GemmologyEngineAVX512BW.cpp"
+-        ].flags += CONFIG["AVX512BW_FLAGS"]
+-    if CONFIG["AVX512VNNI_FLAGS"]:
+-        DEFINES["USE_AVX512VNNI"] = True
+-        SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX512VNNI.cpp"]
+-        SOURCES[
+-            "/third_party/gemmology/kernels/GemmologyEngineAVX512VNNI.cpp"
+-        ].flags += CONFIG["AVX512VNNI_FLAGS"]
++#    if CONFIG["AVXVNNI_FLAGS"]:
++#        DEFINES["USE_AVXVNNI"] = True
++#        SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVXVNNI.cpp"]
++#        SOURCES[
++#            "/third_party/gemmology/kernels/GemmologyEngineAVXVNNI.cpp"
++#        ].flags += CONFIG["AVXVNNI_FLAGS"]
++#    if CONFIG["AVX512BW_FLAGS"]:
++#        DEFINES["USE_AVX512BW"] = True
++#        SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX512BW.cpp"]
++#        SOURCES[
++#            "/third_party/gemmology/kernels/GemmologyEngineAVX512BW.cpp"
++#        ].flags += CONFIG["AVX512BW_FLAGS"]
++#    if CONFIG["AVX512VNNI_FLAGS"]:
++#        DEFINES["USE_AVX512VNNI"] = True
++#        SOURCES += ["/third_party/gemmology/kernels/GemmologyEngineAVX512VNNI.cpp"]
++#        SOURCES[
++#            "/third_party/gemmology/kernels/GemmologyEngineAVX512VNNI.cpp"
++#        ].flags += CONFIG["AVX512VNNI_FLAGS"]
+ 
+ 
+ if CONFIG["TARGET_CPU"] == "aarch64":
diff --git a/librewolf/patches/patch-js_src_jit_arm64_vixl_Registers-vixl.h b/librewolf/patches/patch-js_src_jit_arm64_vixl_Registers-vixl.h
new file mode 100644
index 0000000000..e648c792e3
--- /dev/null
+++ b/librewolf/patches/patch-js_src_jit_arm64_vixl_Registers-vixl.h
@@ -0,0 +1,20 @@
+$NetBSD: patch-js_src_jit_arm64_vixl_Registers-vixl.h,v 1.1 2026/07/09 20:07:10 jklos Exp $
+
+--- js/src/jit/arm64/vixl/Registers-vixl.h.orig	2026-07-09 17:58:16.713975290 +0000
++++ js/src/jit/arm64/vixl/Registers-vixl.h
+@@ -188,13 +188,13 @@ class CPURegister {
+   bool IsRegister() const { return GetType() == kRegister; }
+   bool IsVRegister() const { return GetType() == kVRegister; }
+   bool IsZRegister() const { return GetType() == kZRegister; }
+-  bool IsPRegister() const { return GetType() == kPRegister; }
++  constexpr bool IsPRegister() const { return GetType() == kPRegister; }
+ 
+   bool IsNone() const { return GetType() == kNoRegister; }
+ 
+   // `GetType() == kNoRegister` implies IsNone(), and vice-versa.
+   // `GetType() == k<Foo>Register` implies Is<Foo>Register(), and vice-versa.
+-  RegisterType GetType() const {
++  constexpr RegisterType GetType() const {
+     switch (bank_) {
+       case kNoRegisterBank:
+         return kNoRegister;
diff --git a/librewolf/patches/patch-mozconfig b/librewolf/patches/patch-mozconfig
index 8535152e78..80090e2be8 100644
--- a/librewolf/patches/patch-mozconfig
+++ b/librewolf/patches/patch-mozconfig
@@ -1,13 +1,19 @@
 $NetBSD$
 
---- mozconfig.orig	2026-04-21 20:18:16.000000000 +0000
+Avoid linking errors due to C and C++ linkage. Something seems
+to be broken in the librewolf build (or C++ linkage is always
+on for the development team's compilers).
+
+--- mozconfig.orig	2026-10-11 19:21:15.398384407 +0000
 +++ mozconfig
-@@ -14,7 +14,7 @@ ac_add_options --enable-rust-simd
- ac_add_options --enable-rust-simd
+@@ -14,8 +14,8 @@ ac_add_options --enable-proxy-bypass-protection
+ ac_add_options --enable-proxy-bypass-protection
  # allow replacing malloc manually, will not affect regular systems
  # not compatible with ac_add_options --disable-jemalloc, which only works when preloading custom malloc
 -ac_add_options --enable-replace-malloc
+-ac_add_options --enable-jemalloc
 +# ac_add_options --enable-replace-malloc
- ac_add_options --enable-jemalloc
++# ac_add_options --enable-jemalloc
  
  ac_add_options --with-app-name=librewolf
+ ac_add_options --with-branding=browser/branding/librewolf
diff --git a/librewolf/patches/patch-mozglue_misc_Now.cpp b/librewolf/patches/patch-mozglue_misc_Now.cpp
new file mode 100644
index 0000000000..9ad3d3a6f9
--- /dev/null
+++ b/librewolf/patches/patch-mozglue_misc_Now.cpp
@@ -0,0 +1,27 @@
+$NetBSD: patch-mozglue_misc_Now.cpp,v 1.1 2026/07/23 13:33:41 ryoon Exp $
+
+* If CLOCK_BOOTTIME is not available, return 0 instead of Nothing().
+  This fixes incorrect assert at AudioSessionManager.cpp:57 introduced
+  in 153.0.
+
+--- mozglue/misc/Now.cpp.orig	2026-07-23 01:36:06.678846874 +0000
++++ mozglue/misc/Now.cpp
+@@ -89,16 +89,13 @@ Maybe<uint64_t> NowIncludingSuspendMs() {
+ }
+ 
+ Maybe<uint64_t> NowIncludingSuspendMs() {
+-#  ifndef CLOCK_BOOTTIME
+-  return Nothing();
+-#  else
+   struct timespec ts = {0};
+-
++#  ifdef CLOCK_BOOTTIME
+   if (clock_gettime(CLOCK_BOOTTIME, &ts)) {
+     return Nothing();
+   }
+-  return Some(TimespecToMilliseconds(ts));
+ #  endif
++  return Some(TimespecToMilliseconds(ts));
+ }
+ 
+ #else  // catch all
diff --git a/librewolf/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c b/librewolf/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c
index 37e3d6c39a..0e02b8c6df 100644
--- a/librewolf/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c
+++ b/librewolf/patches/patch-nsprpub_pr_src_pthreads_ptsynch.c
@@ -1,4 +1,4 @@
-$NetBSD: patch-nsprpub_pr_src_pthreads_ptsynch.c,v 1.3 2024/12/25 13:30:11 ryoon Exp $
+$NetBSD: patch-nsprpub_pr_src_pthreads_ptsynch.c,v 1.4 2026/09/23 08:39:50 ryoon Exp $
 
 firefox: Workaround broken pthread_equal() usage
 
@@ -8,105 +8,105 @@ Problems detected on NetBSD 9.99.46.
 
 https://bugzilla.mozilla.org/show_bug.cgi?id=1718838
 
---- nsprpub/pr/src/pthreads/ptsynch.c.orig	2024-11-25 14:49:12.865195781 +0000
+--- nsprpub/pr/src/pthreads/ptsynch.c.orig	2026-08-26 21:11:48.000000000 +0000
 +++ nsprpub/pr/src/pthreads/ptsynch.c
-@@ -25,6 +25,13 @@ static pthread_condattr_t _pt_cvar_attr;
+@@ -24,6 +24,13 @@ extern PTDebug pt_debug; /* this is shared between sev
  extern PTDebug pt_debug; /* this is shared between several modules */
- #  endif                 /* defined(DEBUG) */
+ #endif                   /* defined(DEBUG) */
  
-+/* XXX, pthread_equal() is misused to compare non-valid thread pointers */
++/* XXX, pt_pthread_equal() is misused to compare non-valid thread pointers */
 +static int
-+pt_pthread_equal(pthread_t t1, pthread_t t2)
++pt_pt_pthread_equal(pthread_t t1, pthread_t t2)
 +{
 +	return t1 == t2;
 +}
 +
- #  if defined(FREEBSD)
+ #if defined(FREEBSD)
  /*
   * On older versions of FreeBSD, pthread_mutex_trylock returns EDEADLK.
-@@ -181,9 +188,9 @@ PR_IMPLEMENT(PRStatus) PR_Unlock(PRLock*
-   PR_ASSERT(lock != NULL);
-   PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
-   PR_ASSERT(PR_TRUE == lock->locked);
--  PR_ASSERT(pthread_equal(lock->owner, self));
-+  PR_ASSERT(pt_pthread_equal(lock->owner, self));
+@@ -194,9 +201,9 @@ PR_Unlock(PRLock* lock)
+     PR_ASSERT(lock != NULL);
+     PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
+     PR_ASSERT(PR_TRUE == lock->locked);
+-    PR_ASSERT(pthread_equal(lock->owner, self));
++    PR_ASSERT(pt_pthread_equal(lock->owner, self));
  
--  if (!lock->locked || !pthread_equal(lock->owner, self)) {
-+  if (!lock->locked || !pt_pthread_equal(lock->owner, self)) {
-     return PR_FAILURE;
-   }
+-    if (!lock->locked || !pthread_equal(lock->owner, self)) {
++    if (!lock->locked || !pt_pthread_equal(lock->owner, self)) {
+         return PR_FAILURE;
+     }
  
-@@ -207,7 +214,7 @@ PR_IMPLEMENT(void) PR_AssertCurrentThrea
-    * to the correctness of PR_AssertCurrentThreadOwnsLock(), but
-    * this particular order makes the assertion more likely to
-    * catch errors. */
--  PR_ASSERT(lock->locked && pthread_equal(lock->owner, pthread_self()));
-+  PR_ASSERT(lock->locked && pt_pthread_equal(lock->owner, pthread_self()));
+@@ -222,7 +229,7 @@ PR_AssertCurrentThreadOwnsLock(PRLock* lock)
+      * to the correctness of PR_AssertCurrentThreadOwnsLock(), but
+      * this particular order makes the assertion more likely to
+      * catch errors. */
+-    PR_ASSERT(lock->locked && pthread_equal(lock->owner, pthread_self()));
++    PR_ASSERT(lock->locked && pt_pthread_equal(lock->owner, pthread_self()));
  }
  
  /**************************************************************/
-@@ -260,7 +267,7 @@ static void pt_PostNotifyToCvar(PRCondVa
-   _PT_Notified* notified = &cvar->lock->notified;
- 
-   PR_ASSERT(PR_TRUE == cvar->lock->locked);
--  PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
-+  PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
-   PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
+@@ -279,7 +286,7 @@ pt_PostNotifyToCvar(PRCondVar* cvar, PRBool broadcast)
+     _PT_Notified* notified = &cvar->lock->notified;
  
-   while (1) {
-@@ -336,7 +343,7 @@ PR_IMPLEMENT(PRStatus) PR_WaitCondVar(PR
-   PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
-   PR_ASSERT(PR_TRUE == cvar->lock->locked);
-   /* and it better be by us */
--  PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
-+  PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
+     PR_ASSERT(PR_TRUE == cvar->lock->locked);
+-    PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
++    PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
+     PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
  
-   if (_PT_THREAD_INTERRUPTED(thred)) {
-     goto aborted;
-@@ -535,7 +542,7 @@ PR_IMPLEMENT(PRIntn) PR_GetMonitorEntryC
+     while (1) {
+@@ -361,7 +368,7 @@ PR_WaitCondVar(PRCondVar* cvar, PRIntervalTime timeout
+     PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(cvar->lock->mutex));
+     PR_ASSERT(PR_TRUE == cvar->lock->locked);
+     /* and it better be by us */
+-    PR_ASSERT(pthread_equal(cvar->lock->owner, pthread_self()));
++    PR_ASSERT(pt_pthread_equal(cvar->lock->owner, pthread_self()));
  
-   rv = pthread_mutex_lock(&mon->lock);
-   PR_ASSERT(0 == rv);
--  if (pthread_equal(mon->owner, self)) {
-+  if (pt_pthread_equal(mon->owner, self)) {
-     count = mon->entryCount;
-   }
-   rv = pthread_mutex_unlock(&mon->lock);
-@@ -549,7 +556,7 @@ PR_IMPLEMENT(void) PR_AssertCurrentThrea
+     if (_PT_THREAD_INTERRUPTED(thred)) {
+         goto aborted;
+@@ -576,7 +583,7 @@ PR_GetMonitorEntryCount(PRMonitor* mon)
  
-   rv = pthread_mutex_lock(&mon->lock);
-   PR_ASSERT(0 == rv);
--  PR_ASSERT(mon->entryCount != 0 && pthread_equal(mon->owner, pthread_self()));
-+  PR_ASSERT(mon->entryCount != 0 && pt_pthread_equal(mon->owner, pthread_self()));
-   rv = pthread_mutex_unlock(&mon->lock);
-   PR_ASSERT(0 == rv);
- #  endif
-@@ -563,7 +570,7 @@ PR_IMPLEMENT(void) PR_EnterMonitor(PRMon
-   rv = pthread_mutex_lock(&mon->lock);
-   PR_ASSERT(0 == rv);
-   if (mon->entryCount != 0) {
+     rv = pthread_mutex_lock(&mon->lock);
+     PR_ASSERT(0 == rv);
 -    if (pthread_equal(mon->owner, self)) {
 +    if (pt_pthread_equal(mon->owner, self)) {
-       goto done;
+         count = mon->entryCount;
      }
-     while (mon->entryCount != 0) {
-@@ -593,8 +600,8 @@ PR_IMPLEMENT(PRStatus) PR_ExitMonitor(PR
-   PR_ASSERT(0 == rv);
-   /* the entries should be > 0 and we'd better be the owner */
-   PR_ASSERT(mon->entryCount > 0);
--  PR_ASSERT(pthread_equal(mon->owner, self));
--  if (mon->entryCount == 0 || !pthread_equal(mon->owner, self)) {
-+  PR_ASSERT(pt_pthread_equal(mon->owner, self));
-+  if (mon->entryCount == 0 || !pt_pthread_equal(mon->owner, self)) {
      rv = pthread_mutex_unlock(&mon->lock);
+@@ -592,7 +599,7 @@ PR_AssertCurrentThreadInMonitor(PRMonitor* mon)
+ 
+     rv = pthread_mutex_lock(&mon->lock);
+     PR_ASSERT(0 == rv);
+-    PR_ASSERT(mon->entryCount != 0 && pthread_equal(mon->owner, pthread_self()));
++    PR_ASSERT(mon->entryCount != 0 && pt_pthread_equal(mon->owner, pthread_self()));
+     rv = pthread_mutex_unlock(&mon->lock);
+     PR_ASSERT(0 == rv);
+ #endif
+@@ -608,7 +615,7 @@ PR_EnterMonitor(PRMonitor* mon)
+     rv = pthread_mutex_lock(&mon->lock);
+     PR_ASSERT(0 == rv);
+     if (mon->entryCount != 0) {
+-        if (pthread_equal(mon->owner, self)) {
++        if (pt_pthread_equal(mon->owner, self)) {
+             goto done;
+         }
+         while (mon->entryCount != 0) {
+@@ -640,8 +647,8 @@ PR_ExitMonitor(PRMonitor* mon)
      PR_ASSERT(0 == rv);
-     return PR_FAILURE;
-@@ -638,7 +645,7 @@ PR_IMPLEMENT(PRStatus) PR_Wait(PRMonitor
-   /* the entries better be positive */
-   PR_ASSERT(mon->entryCount > 0);
-   /* and it better be owned by us */
--  PR_ASSERT(pthread_equal(mon->owner, pthread_self()));
-+  PR_ASSERT(pt_pthread_equal(mon->owner, pthread_self()));
+     /* the entries should be > 0 and we'd better be the owner */
+     PR_ASSERT(mon->entryCount > 0);
+-    PR_ASSERT(pthread_equal(mon->owner, self));
+-    if (mon->entryCount == 0 || !pthread_equal(mon->owner, self)) {
++    PR_ASSERT(pt_pthread_equal(mon->owner, self));
++    if (mon->entryCount == 0 || !pt_pthread_equal(mon->owner, self)) {
+         rv = pthread_mutex_unlock(&mon->lock);
+         PR_ASSERT(0 == rv);
+         return PR_FAILURE;
+@@ -687,7 +694,7 @@ PR_Wait(PRMonitor* mon, PRIntervalTime timeout)
+     /* the entries better be positive */
+     PR_ASSERT(mon->entryCount > 0);
+     /* and it better be owned by us */
+-    PR_ASSERT(pthread_equal(mon->owner, pthread_self()));
++    PR_ASSERT(pt_pthread_equal(mon->owner, pthread_self()));
  
-   /* tuck these away 'till later */
-   saved_entries = mon->entryCount;
+     /* tuck these away 'till later */
+     saved_entries = mon->entryCount;
diff --git a/librewolf/patches/patch-python_mozbuild_mozbuild_backend_recursivemake.py b/librewolf/patches/patch-python_mozbuild_mozbuild_backend_recursivemake.py
new file mode 100644
index 0000000000..62f7822f79
--- /dev/null
+++ b/librewolf/patches/patch-python_mozbuild_mozbuild_backend_recursivemake.py
@@ -0,0 +1,27 @@
+$NetBSD: patch-python_mozbuild_mozbuild_backend_recursivemake.py,v 1.2 2024/10/01 12:47:19 ryoon Exp $
+
+* As of 129.0, libxul.so is built with -Wl,-z,defs (no undefined references).
+  Supply memalign() from fallback.cpp (Unified_cpp_memory_build0) for NetBSD.
+  This approach is completely incorrect, however I do not find the correct
+  way to include Unified_cpp_memory_build0.o to objs yet.
+
+--- python/mozbuild/mozbuild/backend/recursivemake.py.orig	2024-08-23 12:51:15.000000000 +0000
++++ python/mozbuild/mozbuild/backend/recursivemake.py
+@@ -73,6 +73,8 @@ from ..util import FileAvoidWrite, ensur
+ from .common import CommonBackend
+ from .make import MakeBackend
+ 
++import buildconfig
++
+ # To protect against accidentally adding logic to Makefiles that belong in moz.build,
+ # we check if moz.build-like variables are defined in Makefiles. If they are, we throw
+ # an error to encourage the usage of moz.build instead.
+@@ -1426,6 +1428,8 @@ class RecursiveMakeBackend(MakeBackend):
+ 
+     def _process_linked_libraries(self, obj, backend_file):
+         objs, shared_libs, os_libs, static_libs = self._expand_libs(obj)
++        if buildconfig.substs["OS_ARCH"] == "NetBSD" and obj.name == "libxul.so":
++            objs.append("memory/build/Unified_cpp_memory_build0.o")
+ 
+         obj_target = obj.name
+         if isinstance(obj, (Program, SharedLibrary)):
diff --git a/librewolf/patches/patch-python_sites_build.txt b/librewolf/patches/patch-python_sites_build.txt
new file mode 100644
index 0000000000..3b129ae253
--- /dev/null
+++ b/librewolf/patches/patch-python_sites_build.txt
@@ -0,0 +1,15 @@
+$NetBSD: patch-python_sites_build.txt,v 1.5 2026/10/16 16:28:47 ryoon Exp $
+
+* We are offline, so do not try to download from pypi.
+  No need to wait a timeout.
+
+--- python/sites/build.txt.orig	2026-09-24 10:45:43.000000000 +0000
++++ python/sites/build.txt
+@@ -1,6 +1,6 @@ pth:third_party/python/vsdownload
+ requires-python:>=3.10
+ pth:third_party/python/vsdownload
+-pypi-optional:taskcluster-taskgraph==24.1.1:toolchain artifacts will not be bootstrapped
++#pypi-optional:taskcluster-taskgraph==24.1.1:toolchain artifacts will not be bootstrapped
+ vendored:testing/web-platform/tests/tools/third_party/h2/src
+ vendored:testing/web-platform/tests/tools/third_party/hpack/src
+ vendored:testing/web-platform/tests/tools/third_party/html5lib
diff --git a/librewolf/patches/patch-python_sites_mach.txt b/librewolf/patches/patch-python_sites_mach.txt
new file mode 100644
index 0000000000..9593f1f789
--- /dev/null
+++ b/librewolf/patches/patch-python_sites_mach.txt
@@ -0,0 +1,28 @@
+$NetBSD: patch-python_sites_mach.txt,v 1.5 2026/10/16 16:28:47 ryoon Exp $
+
+* We are offline, so do not try to download from pypi.
+  No need to wait a timeout.
+* Use pyyaml from vendored unconditionally.
+
+--- python/sites/mach.txt.orig	2026-10-08 02:24:09.000000000 +0000
++++ python/sites/mach.txt
+@@ -59,14 +59,14 @@ pth:xpcom/idl-parser
+ # glean-sdk may not be installable if a wheel isn't available
+ # and it has to be built from source.
+ # pypi-optional:glean-sdk==70.2.0:telemetry will not be collected
+-pypi-optional:orjson>=3.10:json operations will be slower in various tools
++# pypi-optional:orjson>=3.10:json operations will be slower in various tools
+ # Mach gracefully handles the case where `psutil` is unavailable.
+ # We aren't (yet) able to pin packages in automation, so we have to
+ # support down to the oldest locally-installed version (5.4.2).
+-pypi-optional:psutil>=5.4.2:telemetry will be missing some data
+-pypi-optional:rtoml>=0.11.0:toml operations will be slower in various tools
+-pypi-optional:zstandard>=0.11.1,<=0.25.0:zstd archives will not be possible to extract
+-vendored-fallback:pyyaml:third_party/python/pyyaml/lib/:faster native loading is disabled
++# pypi-optional:psutil>=5.4.2:telemetry will be missing some data
++# pypi-optional:rtoml>=0.11.0:toml operations will be slower in various tools
++# pypi-optional:zstandard>=0.11.1,<=0.25.0:zstd archives will not be possible to extract
++vendored:third_party/python/pyyaml/lib/
+ vendored:third_party/python/ansicon
+ vendored:third_party/python/appdirs
+ vendored:third_party/python/async_timeout
diff --git a/librewolf/patches/patch-third__party_angle_angle__common__gn_moz.build b/librewolf/patches/patch-third__party_angle_angle__common__gn_moz.build
new file mode 100644
index 0000000000..92a6225633
--- /dev/null
+++ b/librewolf/patches/patch-third__party_angle_angle__common__gn_moz.build
@@ -0,0 +1,40 @@
+$NetBSD: patch-third__party_angle_angle__common__gn_moz.build,v 1.2 2026/09/23 08:39:50 ryoon Exp $
+
+--- third_party/angle/angle_common_gn/moz.build.orig	2026-09-09 20:41:52.000000000 +0000
++++ third_party/angle/angle_common_gn/moz.build
+@@ -136,7 +136,7 @@ if CONFIG["OS_TARGET"] == "Linux":
+         "/third_party/angle/src/common/system_utils_posix.cpp"
+     ]
+ 
+-if CONFIG["OS_TARGET"] == "OpenBSD":
++if CONFIG["OS_TARGET"] == "OpenBSD" or CONFIG["OS_TARGET"] == "FreeBSD" or CONFIG["OS_TARGET"] == "NetBSD":
+ 
+     DEFINES["EGL_NO_X11"] = True
+     DEFINES["USE_GLIB"] = "1"
+@@ -147,6 +147,17 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
+     DEFINES["__STDC_CONSTANT_MACROS"] = True
+     DEFINES["__STDC_FORMAT_MACROS"] = True
+ 
++    if CONFIG["OS_TARGET"] == "FreeBSD":
++        OS_LIBS += {
++            "dl"
++        }
++
++    UNIFIED_SOURCES += [
++        "/third_party/angle/src/common/system_utils_linux.cpp",
++        "/third_party/angle/src/common/system_utils_posix.cpp"
++    ]
++
++
+ if CONFIG["OS_TARGET"] == "WINNT":
+ 
+     DEFINES["ANGLE_IS_WIN"] = True
+@@ -212,7 +223,7 @@ if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] 
+ 
+     DEFINES["_DEBUG"] = True
+ 
+-if CONFIG["MOZ_DEBUG"] == "1" and CONFIG["OS_TARGET"] == "OpenBSD":
++if CONFIG["MOZ_DEBUG"] == "1" and (CONFIG["OS_TARGET"] == "OpenBSD" or CONFIG["OS_TARGET"] == "FreeBSD" or CONFIG["OS_TARGET"] == "NetBSD"):
+ 
+     DEFINES["_DEBUG"] = True
+ 
diff --git a/librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in b/librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in
new file mode 100644
index 0000000000..64fb9f3a6b
--- /dev/null
+++ b/librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in
@@ -0,0 +1,860 @@
+$NetBSD: patch-third__party_angle_angle__program__version__id__gn_ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in,v 1.2 2026/09/23 08:39:50 ryoon Exp $
+
+--- third_party/angle/angle_program_version_id_gn/ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in.orig	2026-09-11 15:06:30.611350505 +0000
++++ third_party/angle/angle_program_version_id_gn/ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in
+@@ -0,0 +1,855 @@
++/third_party/angle/src/common/BinaryStream.h
++/third_party/angle/src/common/CircularBuffer.h
++/third_party/angle/src/common/Color.h
++/third_party/angle/src/common/Color.inc
++/third_party/angle/src/common/CompiledShaderState.h
++/third_party/angle/src/common/FastVector.h
++/third_party/angle/src/common/FixedQueue.h
++/third_party/angle/src/common/FixedVector.h
++/third_party/angle/src/common/MemoryBuffer.h
++/third_party/angle/src/common/Optional.h
++/third_party/angle/src/common/PackedEGLEnums_autogen.h
++/third_party/angle/src/common/PackedEnums.h
++/third_party/angle/src/common/PackedGLEnums_autogen.h
++/third_party/angle/src/common/PackedCLEnums_autogen.h
++/third_party/angle/src/common/PoolAlloc.h
++/third_party/angle/src/common/SimpleMutex.h
++/third_party/angle/src/common/SynchronizedValue.h
++/third_party/angle/src/common/WorkerThread.h
++/third_party/angle/src/common/aligned_memory.h
++/third_party/angle/src/common/android_util.h
++/third_party/angle/src/common/angleutils.h
++/third_party/angle/src/common/apple_platform_utils.h
++/third_party/angle/src/common/backtrace_utils.h
++/third_party/angle/src/common/base/anglebase/base_export.h
++/third_party/angle/src/common/base/anglebase/containers/mru_cache.h
++/third_party/angle/src/common/base/anglebase/logging.h
++/third_party/angle/src/common/base/anglebase/macros.h
++/third_party/angle/src/common/base/anglebase/no_destructor.h
++/third_party/angle/src/common/base/anglebase/numerics/checked_math.h
++/third_party/angle/src/common/base/anglebase/numerics/checked_math_impl.h
++/third_party/angle/src/common/base/anglebase/numerics/clamped_math.h
++/third_party/angle/src/common/base/anglebase/numerics/clamped_math_impl.h
++/third_party/angle/src/common/base/anglebase/numerics/math_constants.h
++/third_party/angle/src/common/base/anglebase/numerics/ranges.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_conversions.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_conversions_arm_impl.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_conversions_impl.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_math.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_math_arm_impl.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_math_clang_gcc_impl.h
++/third_party/angle/src/common/base/anglebase/numerics/safe_math_shared_impl.h
++/third_party/angle/src/common/base/anglebase/sha1.h
++/third_party/angle/src/common/base/anglebase/sys_byteorder.h
++/third_party/angle/src/common/bitset_utils.h
++/third_party/angle/src/common/debug.h
++/third_party/angle/src/common/entry_points_enum_autogen.h
++/third_party/angle/src/common/event_tracer.h
++/third_party/angle/src/common/hash_containers.h
++/third_party/angle/src/common/hash_utils.h
++/third_party/angle/src/common/log_utils.h
++/third_party/angle/src/common/mathutil.h
++/third_party/angle/src/common/matrix_utils.h
++/third_party/angle/src/common/platform.h
++/third_party/angle/src/common/platform_helpers.h
++/third_party/angle/src/common/span.h
++/third_party/angle/src/common/span_util.h
++/third_party/angle/src/common/string_utils.h
++/third_party/angle/src/common/system_utils.h
++/third_party/angle/src/common/tls.h
++/third_party/angle/src/common/uniform_type_info_autogen.h
++/third_party/angle/src/common/unsafe_buffers.h
++/third_party/angle/src/common/utilities.h
++/third_party/angle/src/common/vector_utils.h
++/third_party/angle/src/libANGLE/CLBitField.h
++/third_party/angle/src/common/Float16ToFloat32.cpp
++/third_party/angle/src/common/MemoryBuffer.cpp
++/third_party/angle/src/common/PackedEGLEnums_autogen.cpp
++/third_party/angle/src/common/PackedEnums.cpp
++/third_party/angle/src/common/PackedGLEnums_autogen.cpp
++/third_party/angle/src/common/PoolAlloc.cpp
++/third_party/angle/src/common/SimpleMutex.cpp
++/third_party/angle/src/common/WorkerThread.cpp
++/third_party/angle/src/common/aligned_memory.cpp
++/third_party/angle/src/common/android_util.cpp
++/third_party/angle/src/common/angleutils.cpp
++/third_party/angle/src/common/base/anglebase/sha1.cc
++/third_party/angle/src/common/debug.cpp
++/third_party/angle/src/common/entry_points_enum_autogen.cpp
++/third_party/angle/src/common/event_tracer.cpp
++/third_party/angle/src/common/mathutil.cpp
++/third_party/angle/src/common/matrix_utils.cpp
++/third_party/angle/src/common/platform_helpers.cpp
++/third_party/angle/src/common/string_utils.cpp
++/third_party/angle/src/common/system_utils.cpp
++/third_party/angle/src/common/tls.cpp
++/third_party/angle/src/common/uniform_type_info_autogen.cpp
++/third_party/angle/src/common/utilities.cpp
++/third_party/angle/src/common/backtrace_utils_noop.cpp
++/third_party/angle/src/common/system_utils_posix.cpp
++/third_party/angle/src/libANGLE/AttributeMap.h
++/third_party/angle/src/libANGLE/BlobCache.h
++/third_party/angle/src/libANGLE/Buffer.h
++/third_party/angle/src/libANGLE/Caps.h
++/third_party/angle/src/libANGLE/CLBitField.h
++/third_party/angle/src/libANGLE/CLRefPointer.h
++/third_party/angle/src/libANGLE/Compiler.h
++/third_party/angle/src/libANGLE/Config.h
++/third_party/angle/src/libANGLE/Constants.h
++/third_party/angle/src/libANGLE/Context.h
++/third_party/angle/src/libANGLE/Context.inl.h
++/third_party/angle/src/libANGLE/Context_gles_1_0_autogen.h
++/third_party/angle/src/libANGLE/Context_gles_2_0_autogen.h
++/third_party/angle/src/libANGLE/Context_gles_3_0_autogen.h
++/third_party/angle/src/libANGLE/Context_gles_3_1_autogen.h
++/third_party/angle/src/libANGLE/Context_gles_3_2_autogen.h
++/third_party/angle/src/libANGLE/Context_gles_ext_autogen.h
++/third_party/angle/src/libANGLE/Debug.h
++/third_party/angle/src/libANGLE/Device.h
++/third_party/angle/src/libANGLE/Display.h
++/third_party/angle/src/libANGLE/EGLSync.h
++/third_party/angle/src/libANGLE/Error.h
++/third_party/angle/src/libANGLE/Error.inc
++/third_party/angle/src/libANGLE/ErrorStrings.h
++/third_party/angle/src/libANGLE/Fence.h
++/third_party/angle/src/libANGLE/Framebuffer.h
++/third_party/angle/src/libANGLE/FramebufferAttachment.h
++/third_party/angle/src/libANGLE/GLES1Renderer.h
++/third_party/angle/src/libANGLE/GLES1Shaders.inc
++/third_party/angle/src/libANGLE/GLES1State.h
++/third_party/angle/src/libANGLE/GlobalMutex.h
++/third_party/angle/src/libANGLE/HandleAllocator.h
++/third_party/angle/src/libANGLE/Image.h
++/third_party/angle/src/libANGLE/ImageIndex.h
++/third_party/angle/src/libANGLE/IndexRangeCache.h
++/third_party/angle/src/libANGLE/InfoLog.h
++/third_party/angle/src/libANGLE/LoggingAnnotator.h
++/third_party/angle/src/libANGLE/MemoryObject.h
++/third_party/angle/src/libANGLE/MemoryProgramCache.h
++/third_party/angle/src/libANGLE/MemoryShaderCache.h
++/third_party/angle/src/libANGLE/Observer.h
++/third_party/angle/src/libANGLE/PixelLocalStorage.h
++/third_party/angle/src/libANGLE/Program.h
++/third_party/angle/src/libANGLE/ProgramExecutable.h
++/third_party/angle/src/libANGLE/ProgramLinkedResources.h
++/third_party/angle/src/libANGLE/ProgramPipeline.h
++/third_party/angle/src/libANGLE/Query.h
++/third_party/angle/src/libANGLE/RefCountObject.h
++/third_party/angle/src/libANGLE/Renderbuffer.h
++/third_party/angle/src/libANGLE/ResourceManager.h
++/third_party/angle/src/libANGLE/ResourceMap.h
++/third_party/angle/src/libANGLE/Sampler.h
++/third_party/angle/src/libANGLE/Semaphore.h
++/third_party/angle/src/libANGLE/Shader.h
++/third_party/angle/src/libANGLE/ShareGroup.h
++/third_party/angle/src/libANGLE/ContextMutex.h
++/third_party/angle/src/libANGLE/SizedMRUCache.h
++/third_party/angle/src/libANGLE/State.h
++/third_party/angle/src/libANGLE/Stream.h
++/third_party/angle/src/libANGLE/Surface.h
++/third_party/angle/src/libANGLE/Texture.h
++/third_party/angle/src/libANGLE/Thread.h
++/third_party/angle/src/libANGLE/TransformFeedback.h
++/third_party/angle/src/libANGLE/Uniform.h
++/third_party/angle/src/libANGLE/VaryingPacking.h
++/third_party/angle/src/libANGLE/Version.h
++/third_party/angle/src/libANGLE/VertexArray.h
++/third_party/angle/src/libANGLE/VertexAttribute.h
++/third_party/angle/src/libANGLE/VertexAttribute.inc
++/third_party/angle/src/libANGLE/angletypes.h
++/third_party/angle/src/libANGLE/angletypes.inc
++/third_party/angle/src/libANGLE/cl_types.h
++/third_party/angle/src/libANGLE/context_private_call.inl.h
++/third_party/angle/src/libANGLE/context_private_call_autogen.h
++/third_party/angle/src/libANGLE/entry_points_utils.h
++/third_party/angle/src/libANGLE/features.h
++/third_party/angle/src/libANGLE/formatutils.h
++/third_party/angle/src/libANGLE/gles_extensions_autogen.h
++/third_party/angle/src/libANGLE/histogram_macros.h
++/third_party/angle/src/libANGLE/queryconversions.h
++/third_party/angle/src/libANGLE/queryutils.h
++/third_party/angle/src/libANGLE/trace.h
++/third_party/angle/src/libANGLE/renderer/BufferImpl.h
++/third_party/angle/src/libANGLE/renderer/CompilerImpl.h
++/third_party/angle/src/libANGLE/renderer/ContextImpl.h
++/third_party/angle/src/libANGLE/renderer/driver_utils.h
++/third_party/angle/src/libANGLE/renderer/DeviceImpl.h
++/third_party/angle/src/libANGLE/renderer/DisplayImpl.h
++/third_party/angle/src/libANGLE/renderer/EGLImplFactory.h
++/third_party/angle/src/libANGLE/renderer/EGLReusableSync.h
++/third_party/angle/src/libANGLE/renderer/EGLSyncImpl.h
++/third_party/angle/src/libANGLE/renderer/FenceNVImpl.h
++/third_party/angle/src/libANGLE/renderer/FormatID_autogen.h
++/third_party/angle/src/libANGLE/renderer/Format.h
++/third_party/angle/src/libANGLE/renderer/FramebufferAttachmentObjectImpl.h
++/third_party/angle/src/libANGLE/renderer/FramebufferImpl.h
++/third_party/angle/src/libANGLE/renderer/GLImplFactory.h
++/third_party/angle/src/libANGLE/renderer/gl/functionsgl_enums.h
++/third_party/angle/src/libANGLE/renderer/ImageImpl.h
++/third_party/angle/src/libANGLE/renderer/MemoryObjectImpl.h
++/third_party/angle/src/libANGLE/renderer/ProgramImpl.h
++/third_party/angle/src/libANGLE/renderer/ProgramExecutableImpl.h
++/third_party/angle/src/libANGLE/renderer/ProgramPipelineImpl.h
++/third_party/angle/src/libANGLE/renderer/QueryImpl.h
++/third_party/angle/src/libANGLE/renderer/RenderbufferImpl.h
++/third_party/angle/src/libANGLE/renderer/RenderTargetCache.h
++/third_party/angle/src/libANGLE/renderer/SamplerImpl.h
++/third_party/angle/src/libANGLE/renderer/SemaphoreImpl.h
++/third_party/angle/src/libANGLE/renderer/ShaderImpl.h
++/third_party/angle/src/libANGLE/renderer/ShareGroupImpl.h
++/third_party/angle/src/libANGLE/renderer/StreamProducerImpl.h
++/third_party/angle/src/libANGLE/renderer/SurfaceImpl.h
++/third_party/angle/src/libANGLE/renderer/SyncImpl.h
++/third_party/angle/src/libANGLE/renderer/TextureImpl.h
++/third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl.h
++/third_party/angle/src/libANGLE/renderer/VertexArrayImpl.h
++/third_party/angle/src/libANGLE/renderer/vulkan/DisplayVk_api.h
++/third_party/angle/src/libANGLE/renderer/copyvertex.h
++/third_party/angle/src/libANGLE/renderer/copyvertex.inc.h
++/third_party/angle/src/libANGLE/renderer/load_functions_table.h
++/third_party/angle/src/libANGLE/renderer/renderer_utils.h
++/third_party/angle/src/libANGLE/renderer/serial_utils.h
++/third_party/angle/src/libANGLE/validationEGL.h
++/third_party/angle/src/libANGLE/validationEGL_autogen.h
++/third_party/angle/src/libANGLE/validationES.h
++/third_party/angle/src/libANGLE/validationES1.h
++/third_party/angle/src/libANGLE/validationES1_autogen.h
++/third_party/angle/src/libANGLE/validationES2.h
++/third_party/angle/src/libANGLE/validationES2_autogen.h
++/third_party/angle/src/libANGLE/validationES3.h
++/third_party/angle/src/libANGLE/validationES31.h
++/third_party/angle/src/libANGLE/validationES31_autogen.h
++/third_party/angle/src/libANGLE/validationES32.h
++/third_party/angle/src/libANGLE/validationES32_autogen.h
++/third_party/angle/src/libANGLE/validationES3_autogen.h
++/third_party/angle/src/libANGLE/validationESEXT.h
++/third_party/angle/src/libANGLE/validationESEXT_autogen.h
++/third_party/angle/src/common/base/anglebase/trace_event/trace_event.h
++/third_party/angle/src/libANGLE/CLPlatform.h
++/third_party/angle/src/libANGLE/renderer/CLPlatformImpl.h
++/third_party/angle/src/libANGLE/CLObject.h
++/third_party/angle/src/libANGLE/renderer/CLContextImpl.h
++/third_party/angle/src/libANGLE/renderer/CLDeviceImpl.h
++/third_party/angle/src/libANGLE/renderer/CLExtensions.h
++/third_party/angle/src/libANGLE/renderer/CLCommandQueueImpl.h
++/third_party/angle/src/libANGLE/renderer/CLEventImpl.h
++/third_party/angle/src/libANGLE/renderer/CLMemoryImpl.h
++/third_party/angle/src/libANGLE/renderer/CLProgramImpl.h
++/third_party/angle/src/libANGLE/renderer/CLSamplerImpl.h
++/third_party/angle/src/libANGLE/renderer/CLKernelImpl.h
++/third_party/angle/src/libANGLE/AttributeMap.cpp
++/third_party/angle/src/libANGLE/BlobCache.cpp
++/third_party/angle/src/libANGLE/Buffer.cpp
++/third_party/angle/src/libANGLE/Caps.cpp
++/third_party/angle/src/libANGLE/Compiler.cpp
++/third_party/angle/src/libANGLE/Config.cpp
++/third_party/angle/src/libANGLE/Context.cpp
++/third_party/angle/src/libANGLE/ContextMutex.cpp
++/third_party/angle/src/libANGLE/Context_gles_1_0.cpp
++/third_party/angle/src/libANGLE/Debug.cpp
++/third_party/angle/src/libANGLE/Device.cpp
++/third_party/angle/src/libANGLE/Display.cpp
++/third_party/angle/src/libANGLE/EGLSync.cpp
++/third_party/angle/src/libANGLE/Error.cpp
++/third_party/angle/src/libANGLE/Fence.cpp
++/third_party/angle/src/libANGLE/Framebuffer.cpp
++/third_party/angle/src/libANGLE/FramebufferAttachment.cpp
++/third_party/angle/src/libANGLE/GLES1Renderer.cpp
++/third_party/angle/src/libANGLE/GLES1State.cpp
++/third_party/angle/src/libANGLE/GlobalMutex.cpp
++/third_party/angle/src/libANGLE/HandleAllocator.cpp
++/third_party/angle/src/libANGLE/Image.cpp
++/third_party/angle/src/libANGLE/ImageIndex.cpp
++/third_party/angle/src/libANGLE/IndexRangeCache.cpp
++/third_party/angle/src/libANGLE/LoggingAnnotator.cpp
++/third_party/angle/src/libANGLE/MemoryObject.cpp
++/third_party/angle/src/libANGLE/MemoryProgramCache.cpp
++/third_party/angle/src/libANGLE/MemoryShaderCache.cpp
++/third_party/angle/src/libANGLE/Observer.cpp
++/third_party/angle/src/libANGLE/PixelLocalStorage.cpp
++/third_party/angle/src/libANGLE/Platform.cpp
++/third_party/angle/src/libANGLE/Program.cpp
++/third_party/angle/src/libANGLE/ProgramExecutable.cpp
++/third_party/angle/src/libANGLE/ProgramLinkedResources.cpp
++/third_party/angle/src/libANGLE/ProgramPipeline.cpp
++/third_party/angle/src/libANGLE/Query.cpp
++/third_party/angle/src/libANGLE/Renderbuffer.cpp
++/third_party/angle/src/libANGLE/ResourceManager.cpp
++/third_party/angle/src/libANGLE/Sampler.cpp
++/third_party/angle/src/libANGLE/Semaphore.cpp
++/third_party/angle/src/libANGLE/Shader.cpp
++/third_party/angle/src/libANGLE/ShareGroup.cpp
++/third_party/angle/src/libANGLE/State.cpp
++/third_party/angle/src/libANGLE/Stream.cpp
++/third_party/angle/src/libANGLE/Surface.cpp
++/third_party/angle/src/libANGLE/Texture.cpp
++/third_party/angle/src/libANGLE/Thread.cpp
++/third_party/angle/src/libANGLE/TransformFeedback.cpp
++/third_party/angle/src/libANGLE/Uniform.cpp
++/third_party/angle/src/libANGLE/VaryingPacking.cpp
++/third_party/angle/src/libANGLE/VertexArray.cpp
++/third_party/angle/src/libANGLE/VertexAttribute.cpp
++/third_party/angle/src/libANGLE/angletypes.cpp
++/third_party/angle/src/libANGLE/es3_copy_conversion_table_autogen.cpp
++/third_party/angle/src/libANGLE/format_map_autogen.cpp
++/third_party/angle/src/libANGLE/formatutils.cpp
++/third_party/angle/src/libANGLE/gles_extensions_autogen.cpp
++/third_party/angle/src/libANGLE/queryconversions.cpp
++/third_party/angle/src/libANGLE/queryutils.cpp
++/third_party/angle/src/libANGLE/renderer/BufferImpl.cpp
++/third_party/angle/src/libANGLE/renderer/ContextImpl.cpp
++/third_party/angle/src/libANGLE/renderer/DeviceImpl.cpp
++/third_party/angle/src/libANGLE/renderer/DisplayImpl.cpp
++/third_party/angle/src/libANGLE/renderer/EGLReusableSync.cpp
++/third_party/angle/src/libANGLE/renderer/EGLSyncImpl.cpp
++/third_party/angle/src/libANGLE/renderer/Format_table_autogen.cpp
++/third_party/angle/src/libANGLE/renderer/FramebufferImpl.cpp
++/third_party/angle/src/libANGLE/renderer/ImageImpl.cpp
++/third_party/angle/src/libANGLE/renderer/ProgramImpl.cpp
++/third_party/angle/src/libANGLE/renderer/ProgramPipelineImpl.cpp
++/third_party/angle/src/libANGLE/renderer/QueryImpl.cpp
++/third_party/angle/src/libANGLE/renderer/RenderbufferImpl.cpp
++/third_party/angle/src/libANGLE/renderer/ShaderImpl.cpp
++/third_party/angle/src/libANGLE/renderer/SurfaceImpl.cpp
++/third_party/angle/src/libANGLE/renderer/TextureImpl.cpp
++/third_party/angle/src/libANGLE/renderer/TransformFeedbackImpl.cpp
++/third_party/angle/src/libANGLE/renderer/VertexArrayImpl.cpp
++/third_party/angle/src/libANGLE/renderer/driver_utils.cpp
++/third_party/angle/src/libANGLE/renderer/load_functions_table_autogen.cpp
++/third_party/angle/src/libANGLE/renderer/renderer_utils.cpp
++/third_party/angle/src/libANGLE/validationEGL.cpp
++/third_party/angle/src/libANGLE/validationES.cpp
++/third_party/angle/src/libANGLE/validationES1.cpp
++/third_party/angle/src/libANGLE/validationES2.cpp
++/third_party/angle/src/libANGLE/validationES3.cpp
++/third_party/angle/src/libANGLE/validationES31.cpp
++/third_party/angle/src/libANGLE/validationES32.cpp
++/third_party/angle/src/libANGLE/validationESEXT.cpp
++/third_party/angle/src/common/frame_capture_binary_data.h
++/third_party/angle/src/common/frame_capture_utils.h
++/third_party/angle/src/common/frame_capture_utils_autogen.h
++/third_party/angle/src/common/gl_enum_utils.h
++/third_party/angle/src/common/gl_enum_utils_autogen.h
++/third_party/angle/src/libANGLE/capture/FrameCapture.h
++/third_party/angle/src/libANGLE/capture/capture_cl_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_egl_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_gles_1_0_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_gles_2_0_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_gles_3_0_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_gles_3_1_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_gles_3_2_autogen.h
++/third_party/angle/src/libANGLE/capture/capture_gles_ext_autogen.h
++/third_party/angle/src/libANGLE/capture/serialize.h
++/third_party/angle/include/angle_gl.h
++/third_party/angle/include/export.h
++/third_party/angle/include/EGL/egl.h
++/third_party/angle/include/EGL/eglext.h
++/third_party/angle/include/EGL/eglext_angle.h
++/third_party/angle/include/EGL/eglplatform.h
++/third_party/angle/include/GLES/gl.h
++/third_party/angle/include/GLES/glplatform.h
++/third_party/angle/include/GLES/glext.h
++/third_party/angle/include/GLES2/gl2.h
++/third_party/angle/include/GLES2/gl2ext.h
++/third_party/angle/include/GLES2/gl2ext_angle.h
++/third_party/angle/include/GLES2/gl2platform.h
++/third_party/angle/include/GLES3/gl3.h
++/third_party/angle/include/GLES3/gl3platform.h
++/third_party/angle/include/GLES3/gl31.h
++/third_party/angle/include/GLES3/gl32.h
++/third_party/angle/include/GLX/glxext.h
++/third_party/angle/include/KHR/khrplatform.h
++/third_party/angle/include/WGL/wgl.h
++/third_party/angle/include/platform/Feature.h
++/third_party/angle/include/platform/autogen/FeaturesD3D_autogen.h
++/third_party/angle/include/platform/autogen/FeaturesGL_autogen.h
++/third_party/angle/include/platform/autogen/FeaturesMtl_autogen.h
++/third_party/angle/include/platform/autogen/FeaturesVk_autogen.h
++/third_party/angle/include/platform/autogen/FeaturesWgpu_autogen.h
++/third_party/angle/include/platform/autogen/FrontendFeatures_autogen.h
++/third_party/angle/include/platform/PlatformMethods.h
++/third_party/angle/include/vulkan/vulkan_fuchsia_ext.h
++/third_party/angle/include/GLSLANG/ShaderLang.h
++/third_party/angle/include/GLSLANG/ShaderVars.h
++/third_party/angle/src/compiler/translator/blocklayout.h
++/third_party/angle/src/compiler/translator/hlsl/blocklayoutHLSL.h
++/third_party/angle/include/EGL/egl.h
++/third_party/angle/include/EGL/eglext.h
++/third_party/angle/include/EGL/eglplatform.h
++/third_party/angle/include/GLES2/gl2.h
++/third_party/angle/include/GLES2/gl2ext.h
++/third_party/angle/include/GLES2/gl2platform.h
++/third_party/angle/include/GLES3/gl3.h
++/third_party/angle/include/GLES3/gl31.h
++/third_party/angle/include/GLES3/gl32.h
++/third_party/angle/include/GLES3/gl3platform.h
++/third_party/angle/include/KHR/khrplatform.h
++/third_party/angle/include/angle_gl.h
++/third_party/angle/src/compiler/translator/AsNode.h
++/third_party/angle/src/compiler/translator/BaseTypes.cpp
++/third_party/angle/src/compiler/translator/BaseTypes.h
++/third_party/angle/src/compiler/translator/BuiltInFunctionEmulator.cpp
++/third_party/angle/src/compiler/translator/BuiltInFunctionEmulator.h
++/third_party/angle/src/compiler/translator/CallDAG.cpp
++/third_party/angle/src/compiler/translator/CallDAG.h
++/third_party/angle/src/compiler/translator/CodeGen.cpp
++/third_party/angle/src/compiler/translator/CollectVariables.cpp
++/third_party/angle/src/compiler/translator/CollectVariables.h
++/third_party/angle/src/compiler/translator/Common.h
++/third_party/angle/src/compiler/translator/Compiler.cpp
++/third_party/angle/src/compiler/translator/Compiler.h
++/third_party/angle/src/compiler/translator/ConstantUnion.cpp
++/third_party/angle/src/compiler/translator/ConstantUnion.h
++/third_party/angle/src/compiler/translator/Declarator.cpp
++/third_party/angle/src/compiler/translator/Declarator.h
++/third_party/angle/src/compiler/translator/Diagnostics.cpp
++/third_party/angle/src/compiler/translator/Diagnostics.h
++/third_party/angle/src/compiler/translator/DirectiveHandler.cpp
++/third_party/angle/src/compiler/translator/DirectiveHandler.h
++/third_party/angle/src/compiler/translator/ExtensionBehavior.cpp
++/third_party/angle/src/compiler/translator/ExtensionBehavior.h
++/third_party/angle/src/compiler/translator/FlagStd140Structs.cpp
++/third_party/angle/src/compiler/translator/FlagStd140Structs.h
++/third_party/angle/src/compiler/translator/FunctionLookup.cpp
++/third_party/angle/src/compiler/translator/FunctionLookup.h
++/third_party/angle/src/compiler/translator/HashNames.cpp
++/third_party/angle/src/compiler/translator/HashNames.h
++/third_party/angle/src/compiler/translator/ImmutableString.h
++/third_party/angle/src/compiler/translator/ImmutableStringBuilder.cpp
++/third_party/angle/src/compiler/translator/ImmutableStringBuilder.h
++/third_party/angle/src/compiler/translator/InfoSink.cpp
++/third_party/angle/src/compiler/translator/InfoSink.h
++/third_party/angle/src/compiler/translator/Initialize.cpp
++/third_party/angle/src/compiler/translator/Initialize.h
++/third_party/angle/src/compiler/translator/InitializeGlobals.h
++/third_party/angle/src/compiler/translator/IntermNode.cpp
++/third_party/angle/src/compiler/translator/IntermNode.h
++/third_party/angle/src/compiler/translator/IntermRebuild.cpp
++/third_party/angle/src/compiler/translator/IntermRebuild.h
++/third_party/angle/src/compiler/translator/IsASTDepthBelowLimit.cpp
++/third_party/angle/src/compiler/translator/IsASTDepthBelowLimit.h
++/third_party/angle/src/compiler/translator/Name.cpp
++/third_party/angle/src/compiler/translator/Name.h
++/third_party/angle/src/compiler/translator/NodeType.h
++/third_party/angle/src/compiler/translator/Operator.cpp
++/third_party/angle/src/compiler/translator/Operator_autogen.h
++/third_party/angle/src/compiler/translator/OutputTree.cpp
++/third_party/angle/src/compiler/translator/OutputTree.h
++/third_party/angle/src/compiler/translator/ParseContext.cpp
++/third_party/angle/src/compiler/translator/ParseContext.h
++/third_party/angle/src/compiler/translator/PoolAlloc.cpp
++/third_party/angle/src/compiler/translator/PoolAlloc.h
++/third_party/angle/src/compiler/translator/Pragma.h
++/third_party/angle/src/compiler/translator/QualifierTypes.cpp
++/third_party/angle/src/compiler/translator/QualifierTypes.h
++/third_party/angle/src/compiler/translator/Severity.h
++/third_party/angle/src/compiler/translator/ShaderLang.cpp
++/third_party/angle/src/compiler/translator/ShaderVars.cpp
++/third_party/angle/src/compiler/translator/SizeClipCullDistance.cpp
++/third_party/angle/src/compiler/translator/SizeClipCullDistance.h
++/third_party/angle/src/compiler/translator/StaticType.h
++/third_party/angle/src/compiler/translator/Symbol.cpp
++/third_party/angle/src/compiler/translator/Symbol.h
++/third_party/angle/src/compiler/translator/SymbolTable.cpp
++/third_party/angle/src/compiler/translator/SymbolTable.h
++/third_party/angle/src/compiler/translator/SymbolTable_autogen.h
++/third_party/angle/src/compiler/translator/SymbolUniqueId.cpp
++/third_party/angle/src/compiler/translator/SymbolUniqueId.h
++/third_party/angle/src/compiler/translator/Types.cpp
++/third_party/angle/src/compiler/translator/Types.h
++/third_party/angle/src/compiler/translator/ValidateAST.cpp
++/third_party/angle/src/compiler/translator/ValidateAST.h
++/third_party/angle/src/compiler/translator/ValidateGlobalInitializer.cpp
++/third_party/angle/src/compiler/translator/ValidateGlobalInitializer.h
++/third_party/angle/src/compiler/translator/ValidateVaryingLocations.cpp
++/third_party/angle/src/compiler/translator/ValidateVaryingLocations.h
++/third_party/angle/src/compiler/translator/VariablePacker.cpp
++/third_party/angle/src/compiler/translator/VariablePacker.h
++/third_party/angle/src/compiler/translator/blocklayout.cpp
++/third_party/angle/src/compiler/translator/glsl/TranslatorESSL.h
++/third_party/angle/src/compiler/translator/glsl/TranslatorGLSL.h
++/third_party/angle/src/compiler/translator/glsl/VersionGLSL.h
++/third_party/angle/src/compiler/translator/glslang.h
++/third_party/angle/src/compiler/translator/glslang_lex_autogen.cpp
++/third_party/angle/src/compiler/translator/glslang_tab_autogen.cpp
++/third_party/angle/src/compiler/translator/glslang_tab_autogen.h
++/third_party/angle/src/compiler/translator/hlsl/TranslatorHLSL.h
++/third_party/angle/src/compiler/translator/ir/src/builder.h
++/third_party/angle/src/compiler/translator/ir/src/compile.h
++/third_party/angle/src/compiler/translator/ir/src/output/ir_to_legacy.h
++/third_party/angle/src/compiler/translator/ir/src/output/legacy.h
++/third_party/angle/src/compiler/translator/ir/src/pool_alloc.h
++/third_party/angle/src/compiler/translator/length_limits.h
++/third_party/angle/src/compiler/translator/msl/DriverUniformMetal.h
++/third_party/angle/src/compiler/translator/msl/TranslatorMSL.h
++/third_party/angle/src/compiler/translator/null/TranslatorNULL.h
++/third_party/angle/src/compiler/translator/spirv/TranslatorSPIRV.h
++/third_party/angle/src/compiler/translator/tree_ops/AddDefaultReturnStatements.cpp
++/third_party/angle/src/compiler/translator/tree_ops/AddDefaultReturnStatements.h
++/third_party/angle/src/compiler/translator/tree_ops/ClampFragDepth.cpp
++/third_party/angle/src/compiler/translator/tree_ops/ClampFragDepth.h
++/third_party/angle/src/compiler/translator/tree_ops/ClampIndirectIndices.cpp
++/third_party/angle/src/compiler/translator/tree_ops/ClampIndirectIndices.h
++/third_party/angle/src/compiler/translator/tree_ops/ClampPointSize.cpp
++/third_party/angle/src/compiler/translator/tree_ops/ClampPointSize.h
++/third_party/angle/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.cpp
++/third_party/angle/src/compiler/translator/tree_ops/DeclareAndInitBuiltinsForInstancedMultiview.h
++/third_party/angle/src/compiler/translator/tree_ops/DeclarePerVertexBlocks.cpp
++/third_party/angle/src/compiler/translator/tree_ops/DeclarePerVertexBlocks.h
++/third_party/angle/src/compiler/translator/tree_ops/DeferGlobalInitializers.cpp
++/third_party/angle/src/compiler/translator/tree_ops/DeferGlobalInitializers.h
++/third_party/angle/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.cpp
++/third_party/angle/src/compiler/translator/tree_ops/EmulateGLFragColorBroadcast.h
++/third_party/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.cpp
++/third_party/angle/src/compiler/translator/tree_ops/EmulateMultiDrawShaderBuiltins.h
++/third_party/angle/src/compiler/translator/tree_ops/FoldExpressions.cpp
++/third_party/angle/src/compiler/translator/tree_ops/FoldExpressions.h
++/third_party/angle/src/compiler/translator/tree_ops/GatherDefaultUniforms.cpp
++/third_party/angle/src/compiler/translator/tree_ops/GatherDefaultUniforms.h
++/third_party/angle/src/compiler/translator/tree_ops/InitializeVariables.cpp
++/third_party/angle/src/compiler/translator/tree_ops/InitializeVariables.h
++/third_party/angle/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.cpp
++/third_party/angle/src/compiler/translator/tree_ops/MonomorphizeUnsupportedFunctions.h
++/third_party/angle/src/compiler/translator/tree_ops/PreTransformTextureCubeGradDerivatives.cpp
++/third_party/angle/src/compiler/translator/tree_ops/PreTransformTextureCubeGradDerivatives.h
++/third_party/angle/src/compiler/translator/tree_ops/PruneEmptyCases.cpp
++/third_party/angle/src/compiler/translator/tree_ops/PruneEmptyCases.h
++/third_party/angle/src/compiler/translator/tree_ops/PruneNoOps.cpp
++/third_party/angle/src/compiler/translator/tree_ops/PruneNoOps.h
++/third_party/angle/src/compiler/translator/tree_ops/RecordConstantPrecision.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RecordConstantPrecision.h
++/third_party/angle/src/compiler/translator/tree_ops/ReduceInterfaceBlocks.cpp
++/third_party/angle/src/compiler/translator/tree_ops/ReduceInterfaceBlocks.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveArrayLengthMethod.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveAtomicCounterBuiltins.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveDynamicIndexing.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveDynamicIndexing.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveInactiveInterfaceVariables.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveInvariantDeclaration.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveUnreferencedVariables.h
++/third_party/angle/src/compiler/translator/tree_ops/RemoveUnusedFramebufferFetch.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RemoveUnusedFramebufferFetch.h
++/third_party/angle/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RewriteArrayOfArrayOfOpaqueUniforms.h
++/third_party/angle/src/compiler/translator/tree_ops/RewriteAtomicCounters.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RewriteAtomicCounters.h
++/third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RewriteDfdy.h
++/third_party/angle/src/compiler/translator/tree_ops/RewritePixelLocalStorage.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RewritePixelLocalStorage.h
++/third_party/angle/src/compiler/translator/tree_ops/RewriteStructSamplers.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RewriteStructSamplers.h
++/third_party/angle/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.cpp
++/third_party/angle/src/compiler/translator/tree_ops/RewriteTexelFetchOffset.h
++/third_party/angle/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.cpp
++/third_party/angle/src/compiler/translator/tree_ops/ScalarizeVecAndMatConstructorArgs.h
++/third_party/angle/src/compiler/translator/tree_ops/SeparateDeclarations.cpp
++/third_party/angle/src/compiler/translator/tree_ops/SeparateDeclarations.h
++/third_party/angle/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.cpp
++/third_party/angle/src/compiler/translator/tree_ops/SeparateStructFromUniformDeclarations.h
++/third_party/angle/src/compiler/translator/tree_ops/SimplifyLoopConditions.cpp
++/third_party/angle/src/compiler/translator/tree_ops/SimplifyLoopConditions.h
++/third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.cpp
++/third_party/angle/src/compiler/translator/tree_ops/SplitSequenceOperator.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/ExpandFragmentOutputsToVec4.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/RewriteRepeatedAssignToSwizzled.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/UseInterfaceBlockFields.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/WrapStructConstructors.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/apple/AddAndTrueToLoopCondition.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/apple/RewriteRowMajorMatrices.h
++/third_party/angle/src/compiler/translator/tree_ops/glsl/apple/UnfoldShortCircuitAST.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/EnsureLoopForwardProgress.h
++/third_party/angle/src/compiler/translator/tree_util/BuiltIn.h
++/third_party/angle/src/compiler/translator/tree_util/BuiltIn_autogen.h
++/third_party/angle/src/compiler/translator/tree_util/DriverUniform.cpp
++/third_party/angle/src/compiler/translator/tree_util/DriverUniform.h
++/third_party/angle/src/compiler/translator/tree_util/FindFunction.cpp
++/third_party/angle/src/compiler/translator/tree_util/FindFunction.h
++/third_party/angle/src/compiler/translator/tree_util/FindMain.cpp
++/third_party/angle/src/compiler/translator/tree_util/FindMain.h
++/third_party/angle/src/compiler/translator/tree_util/FindPreciseNodes.cpp
++/third_party/angle/src/compiler/translator/tree_util/FindPreciseNodes.h
++/third_party/angle/src/compiler/translator/tree_util/FindSymbolNode.cpp
++/third_party/angle/src/compiler/translator/tree_util/FindSymbolNode.h
++/third_party/angle/src/compiler/translator/tree_util/IntermNodePatternMatcher.cpp
++/third_party/angle/src/compiler/translator/tree_util/IntermNodePatternMatcher.h
++/third_party/angle/src/compiler/translator/tree_util/IntermNode_util.cpp
++/third_party/angle/src/compiler/translator/tree_util/IntermNode_util.h
++/third_party/angle/src/compiler/translator/tree_util/IntermTraverse.cpp
++/third_party/angle/src/compiler/translator/tree_util/IntermTraverse.h
++/third_party/angle/src/compiler/translator/tree_util/NodeSearch.h
++/third_party/angle/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.cpp
++/third_party/angle/src/compiler/translator/tree_util/ReplaceArrayOfMatrixVarying.h
++/third_party/angle/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.cpp
++/third_party/angle/src/compiler/translator/tree_util/ReplaceClipCullDistanceVariable.h
++/third_party/angle/src/compiler/translator/tree_util/ReplaceShadowingVariables.cpp
++/third_party/angle/src/compiler/translator/tree_util/ReplaceShadowingVariables.h
++/third_party/angle/src/compiler/translator/tree_util/ReplaceVariable.cpp
++/third_party/angle/src/compiler/translator/tree_util/ReplaceVariable.h
++/third_party/angle/src/compiler/translator/tree_util/RewriteSampleMaskVariable.cpp
++/third_party/angle/src/compiler/translator/tree_util/RewriteSampleMaskVariable.h
++/third_party/angle/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.cpp
++/third_party/angle/src/compiler/translator/tree_util/RunAtTheBeginningOfShader.h
++/third_party/angle/src/compiler/translator/tree_util/RunAtTheEndOfShader.cpp
++/third_party/angle/src/compiler/translator/tree_util/RunAtTheEndOfShader.h
++/third_party/angle/src/compiler/translator/tree_util/Visit.h
++/third_party/angle/src/compiler/translator/util.cpp
++/third_party/angle/src/compiler/translator/util.h
++/third_party/angle/src/compiler/translator/wgsl/TranslatorWGSL.h
++/third_party/angle/src/compiler/translator/glsl/OutputGLSLBase.cpp
++/third_party/angle/src/compiler/translator/glsl/OutputGLSLBase.h
++/third_party/angle/src/compiler/translator/glsl/OutputGLSL.cpp
++/third_party/angle/src/compiler/translator/glsl/OutputGLSL.h
++/third_party/angle/src/compiler/translator/glsl/OutputESSL.cpp
++/third_party/angle/src/compiler/translator/glsl/OutputESSL.h
++/third_party/angle/src/compiler/translator/glsl/TranslatorESSL.cpp
++/third_party/angle/src/compiler/translator/glsl/BuiltInFunctionEmulatorGLSL.cpp
++/third_party/angle/src/compiler/translator/glsl/BuiltInFunctionEmulatorGLSL.h
++/third_party/angle/src/compiler/translator/glsl/ExtensionGLSL.cpp
++/third_party/angle/src/compiler/translator/glsl/ExtensionGLSL.h
++/third_party/angle/src/compiler/translator/glsl/TranslatorGLSL.cpp
++/third_party/angle/src/compiler/translator/glsl/VersionGLSL.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/ExpandFragmentOutputsToVec4.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/RewriteRepeatedAssignToSwizzled.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/UseInterfaceBlockFields.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/WrapStructConstructors.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/apple/AddAndTrueToLoopCondition.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/apple/RewriteRowMajorMatrices.cpp
++/third_party/angle/src/compiler/translator/tree_ops/glsl/apple/UnfoldShortCircuitAST.cpp
++/third_party/angle/src/compiler/translator/hlsl/ASTMetadataHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/ASTMetadataHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/BuiltInFunctionEmulatorHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/BuiltInFunctionEmulatorHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/ImageFunctionHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/ImageFunctionHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/OutputHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/OutputHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/ResourcesHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/ResourcesHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/StructureHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/StructureHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/TextureFunctionHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/TextureFunctionHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/TranslatorHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/UtilsHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/UtilsHLSL.h
++/third_party/angle/src/compiler/translator/hlsl/blocklayoutHLSL.cpp
++/third_party/angle/src/compiler/translator/hlsl/emulated_builtin_functions_hlsl_autogen.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/ArrayReturnValueToOutParameter.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/ArrayReturnValueToOutParameter.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/BreakVariableAliasingInInnerLoops.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/BreakVariableAliasingInInnerLoops.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/ExpandIntegerPowExpressions.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/ExpandIntegerPowExpressions.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RecordUniformBlocksWithLargeArrayMember.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RecordUniformBlocksWithLargeArrayMember.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RemoveSwitchFallThrough.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RemoveSwitchFallThrough.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RewriteElseBlocks.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RewriteElseBlocks.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RewriteUnaryMinusOperatorInt.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/RewriteUnaryMinusOperatorInt.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/SeparateArrayConstructorStatements.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/SeparateArrayConstructorStatements.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/SeparateArrayInitialization.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/SeparateArrayInitialization.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/SeparateExpressionsReturningArrays.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/SeparateExpressionsReturningArrays.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/UnfoldShortCircuitToIf.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/UnfoldShortCircuitToIf.h
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/WrapSwitchStatementsInBlocks.cpp
++/third_party/angle/src/compiler/translator/tree_ops/hlsl/WrapSwitchStatementsInBlocks.h
++/third_party/angle/src/compiler/translator/spirv/BuildSPIRV.cpp
++/third_party/angle/src/compiler/translator/spirv/BuildSPIRV.h
++/third_party/angle/src/compiler/translator/spirv/BuiltinsWorkaround.cpp
++/third_party/angle/src/compiler/translator/spirv/BuiltinsWorkaround.h
++/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.cpp
++/third_party/angle/src/compiler/translator/spirv/OutputSPIRV.h
++/third_party/angle/src/compiler/translator/spirv/TranslatorSPIRV.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/ClampGLLayer.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/ClampGLLayer.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateAdvancedBlendEquations.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateAdvancedBlendEquations.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateFragColorData.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateFragColorData.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateFramebufferFetch.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateFramebufferFetch.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateYUVBuiltIns.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/EmulateYUVBuiltIns.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/FlagSamplersWithTexelFetch.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/FlagSamplersWithTexelFetch.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/ReswizzleYUVOps.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/ReswizzleYUVOps.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/RewriteInterpolateAtOffset.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/RewriteInterpolateAtOffset.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/RewriteR32fImages.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/RewriteR32fImages.h
++/third_party/angle/src/compiler/translator/tree_ops/spirv/RewriteSamplerExternalTexelFetch.cpp
++/third_party/angle/src/compiler/translator/tree_ops/spirv/RewriteSamplerExternalTexelFetch.h
++/third_party/angle/src/compiler/translator/ImmutableString_autogen.cpp
++/third_party/angle/src/compiler/translator/SymbolTable_autogen.cpp
++/third_party/angle/src/compiler/translator/msl/AstHelpers.cpp
++/third_party/angle/src/compiler/translator/msl/AstHelpers.h
++/third_party/angle/src/compiler/translator/msl/ConstantNames.cpp
++/third_party/angle/src/compiler/translator/msl/DebugSink.h
++/third_party/angle/src/compiler/translator/msl/DiscoverDependentFunctions.cpp
++/third_party/angle/src/compiler/translator/msl/DiscoverDependentFunctions.h
++/third_party/angle/src/compiler/translator/msl/DiscoverEnclosingFunctionTraverser.cpp
++/third_party/angle/src/compiler/translator/msl/DiscoverEnclosingFunctionTraverser.h
++/third_party/angle/src/compiler/translator/msl/DriverUniformMetal.cpp
++/third_party/angle/src/compiler/translator/msl/EmitMetal.cpp
++/third_party/angle/src/compiler/translator/msl/EmitMetal.h
++/third_party/angle/src/compiler/translator/msl/IdGen.cpp
++/third_party/angle/src/compiler/translator/msl/IdGen.h
++/third_party/angle/src/compiler/translator/msl/Layout.cpp
++/third_party/angle/src/compiler/translator/msl/Layout.h
++/third_party/angle/src/compiler/translator/msl/MapFunctionsToDefinitions.cpp
++/third_party/angle/src/compiler/translator/msl/MapFunctionsToDefinitions.h
++/third_party/angle/src/compiler/translator/msl/MapSymbols.cpp
++/third_party/angle/src/compiler/translator/msl/MapSymbols.h
++/third_party/angle/src/compiler/translator/msl/ModifyStruct.cpp
++/third_party/angle/src/compiler/translator/msl/ModifyStruct.h
++/third_party/angle/src/compiler/translator/msl/Pipeline.cpp
++/third_party/angle/src/compiler/translator/msl/Pipeline.h
++/third_party/angle/src/compiler/translator/msl/ProgramPrelude.cpp
++/third_party/angle/src/compiler/translator/msl/ProgramPrelude.h
++/third_party/angle/src/compiler/translator/msl/Reference.h
++/third_party/angle/src/compiler/translator/msl/RewritePipelines.cpp
++/third_party/angle/src/compiler/translator/msl/RewritePipelines.h
++/third_party/angle/src/compiler/translator/msl/SkippingTraverser.h
++/third_party/angle/src/compiler/translator/msl/SymbolEnv.cpp
++/third_party/angle/src/compiler/translator/msl/SymbolEnv.h
++/third_party/angle/src/compiler/translator/msl/ToposortStructs.cpp
++/third_party/angle/src/compiler/translator/msl/ToposortStructs.h
++/third_party/angle/src/compiler/translator/msl/TranslatorMSL.cpp
++/third_party/angle/src/compiler/translator/msl/UtilsMSL.cpp
++/third_party/angle/src/compiler/translator/msl/UtilsMSL.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/AddExplicitTypeCasts.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/AddExplicitTypeCasts.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/ConvertUnsupportedConstructorsToFunctionCalls.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/ConvertUnsupportedConstructorsToFunctionCalls.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/EnsureLoopForwardProgress.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/FixTypeConstructors.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/FixTypeConstructors.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/GuardFragDepthWrite.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/GuardFragDepthWrite.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/HoistConstants.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/HoistConstants.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/IntroduceVertexIndexID.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/IntroduceVertexIndexID.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/RescopeGlobalVariables.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/RescopeGlobalVariables.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteCaseDeclarations.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteCaseDeclarations.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteInterpolants.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteInterpolants.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteOutArgs.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteOutArgs.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteUnaddressableReferences.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/RewriteUnaddressableReferences.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/SeparateCompoundExpressions.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/TransposeRowMajorMatrices.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/TransposeRowMajorMatrices.h
++/third_party/angle/src/compiler/translator/tree_ops/msl/WrapMain.cpp
++/third_party/angle/src/compiler/translator/tree_ops/msl/WrapMain.h
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/EmulateMutableFunctionParams.cpp
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/EmulateMutableFunctionParams.h
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/PullExpressionsIntoFunctions.cpp
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/PullExpressionsIntoFunctions.h
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/RewriteMixedTypeMathExprs.cpp
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/RewriteMixedTypeMathExprs.h
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/RewriteMultielementSwizzleAssignment.cpp
++/third_party/angle/src/compiler/translator/tree_ops/wgsl/RewriteMultielementSwizzleAssignment.h
++/third_party/angle/src/compiler/translator/wgsl/OutputUniformBlocks.cpp
++/third_party/angle/src/compiler/translator/wgsl/OutputUniformBlocks.h
++/third_party/angle/src/compiler/translator/wgsl/RewritePipelineVariables.cpp
++/third_party/angle/src/compiler/translator/wgsl/RewritePipelineVariables.h
++/third_party/angle/src/compiler/translator/wgsl/TranslatorWGSL.cpp
++/third_party/angle/src/compiler/translator/wgsl/Utils.cpp
++/third_party/angle/src/compiler/translator/wgsl/Utils.h
++/third_party/angle/src/compiler/translator/wgsl/WGSLProgramPrelude.cpp
++/third_party/angle/src/compiler/translator/wgsl/WGSLProgramPrelude.h
++/third_party/angle/src/compiler/preprocessor/DiagnosticsBase.cpp
++/third_party/angle/src/compiler/preprocessor/DiagnosticsBase.h
++/third_party/angle/src/compiler/preprocessor/DirectiveHandlerBase.cpp
++/third_party/angle/src/compiler/preprocessor/DirectiveHandlerBase.h
++/third_party/angle/src/compiler/preprocessor/DirectiveParser.cpp
++/third_party/angle/src/compiler/preprocessor/DirectiveParser.h
++/third_party/angle/src/compiler/preprocessor/ExpressionParser.h
++/third_party/angle/src/compiler/preprocessor/Input.cpp
++/third_party/angle/src/compiler/preprocessor/Input.h
++/third_party/angle/src/compiler/preprocessor/Lexer.cpp
++/third_party/angle/src/compiler/preprocessor/Lexer.h
++/third_party/angle/src/compiler/preprocessor/Macro.cpp
++/third_party/angle/src/compiler/preprocessor/Macro.h
++/third_party/angle/src/compiler/preprocessor/MacroExpander.cpp
++/third_party/angle/src/compiler/preprocessor/MacroExpander.h
++/third_party/angle/src/compiler/preprocessor/Preprocessor.cpp
++/third_party/angle/src/compiler/preprocessor/Preprocessor.h
++/third_party/angle/src/compiler/preprocessor/SourceLocation.h
++/third_party/angle/src/compiler/preprocessor/Token.cpp
++/third_party/angle/src/compiler/preprocessor/Token.h
++/third_party/angle/src/compiler/preprocessor/Tokenizer.h
++/third_party/angle/src/compiler/preprocessor/numeric_lex.h
++/third_party/angle/src/compiler/preprocessor/preprocessor_lex_autogen.cpp
++/third_party/angle/src/compiler/preprocessor/preprocessor_tab_autogen.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/BufferD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/CompilerD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/CompilerD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/ContextD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/DisplayD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/DisplayD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/DynamicHLSL.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/DynamicHLSL.h
++/third_party/angle/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/DynamicImage2DHLSL.h
++/third_party/angle/src/libANGLE/renderer/d3d/EGLImageD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/EGLImageD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/FramebufferD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/FramebufferD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/HLSLCompiler.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/HLSLCompiler.h
++/third_party/angle/src/libANGLE/renderer/d3d/ImageD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/ImageD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/IndexBuffer.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/IndexBuffer.h
++/third_party/angle/src/libANGLE/renderer/d3d/IndexDataManager.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/IndexDataManager.h
++/third_party/angle/src/libANGLE/renderer/d3d/NativeWindowD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/NativeWindowD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/ProgramD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/ProgramExecutableD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/ProgramExecutableD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/RenderTargetD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/RenderbufferD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/RenderbufferD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/RendererD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/SamplerD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/ShaderD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/ShaderD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/ShaderExecutableD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/ShaderExecutableD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/SurfaceD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/SwapChainD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/SwapChainD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/TextureD3D.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/TextureD3D.h
++/third_party/angle/src/libANGLE/renderer/d3d/TextureStorage.h
++/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/VertexBuffer.h
++/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/VertexDataManager.h
++/third_party/angle/src/libANGLE/renderer/d3d/driver_utils_d3d.cpp
++/third_party/angle/src/libANGLE/renderer/d3d/driver_utils_d3d.h
++/third_party/angle/src/libANGLE/renderer/d3d/formatutilsD3D.h
diff --git a/librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_moz.build b/librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_moz.build
new file mode 100644
index 0000000000..5bda19d515
--- /dev/null
+++ b/librewolf/patches/patch-third__party_angle_angle__program__version__id__gn_moz.build
@@ -0,0 +1,31 @@
+$NetBSD: patch-third__party_angle_angle__program__version__id__gn_moz.build,v 1.1 2026/08/24 12:51:47 ryoon Exp $
+
+* Add FreeBSD and NetBSD file with SHA256 hash.
+
+--- third_party/angle/angle_program_version_id_gn/moz.build.orig	2026-08-14 14:09:56.486273570 +0000
++++ third_party/angle/angle_program_version_id_gn/moz.build
+@@ -69,6 +69,24 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
+         script="/python/mozbuild/mozbuild/action/write_path_list.py",
+     )
+ 
++if CONFIG["OS_TARGET"] == "FreeBSD":
++
++    GeneratedFile(
++        "/third_party/angle/gen/ANGLEShaderProgramVersion.h.rsp",
++        entry_point="write_paths",
++        inputs=['ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in'],
++        script="/python/mozbuild/mozbuild/action/write_path_list.py",
++    )
++
++if CONFIG["OS_TARGET"] == "NetBSD":
++
++    GeneratedFile(
++        "/third_party/angle/gen/ANGLEShaderProgramVersion.h.rsp",
++        entry_point="write_paths",
++        inputs=['ANGLEShaderProgramVersion.h-22c710649c380411.rsp.in'],
++        script="/python/mozbuild/mozbuild/action/write_path_list.py",
++    )
++
+ if CONFIG["OS_TARGET"] == "WINNT":
+ 
+     DEFINES["UNICODE"] = True
diff --git a/librewolf/patches/patch-third__party_angle_src_common_system__utils__linux.cpp b/librewolf/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
new file mode 100644
index 0000000000..177ea2f77d
--- /dev/null
+++ b/librewolf/patches/patch-third__party_angle_src_common_system__utils__linux.cpp
@@ -0,0 +1,15 @@
+$NetBSD: patch-third__party_angle_src_common_system__utils__linux.cpp,v 1.1 2026/08/24 12:51:47 ryoon Exp $
+
+--- third_party/angle/src/common/system_utils_linux.cpp.orig	2026-08-14 22:53:43.182273820 +0000
++++ third_party/angle/src/common/system_utils_linux.cpp
+@@ -63,6 +63,10 @@ void SetCurrentThreadName(const char *name)
+     // There's a 15-character (16 including '\0') limit.  If the name is too big (and ERANGE is
+     // returned), name will be ignored.
+     ASSERT(strlen(name) < 16);
++#if defined(__NetBSD__)
++    pthread_setname_np(pthread_self(), "%s", (void *)name);
++#else
+     pthread_setname_np(pthread_self(), name);
++#endif
+ }
+ }  // namespace angle
diff --git a/librewolf/patches/patch-third__party_pipewire_spa_utils_string.h b/librewolf/patches/patch-third__party_pipewire_spa_utils_string.h
deleted file mode 100644
index 622ed2a3a4..0000000000
--- a/librewolf/patches/patch-third__party_pipewire_spa_utils_string.h
+++ /dev/null
@@ -1,17 +0,0 @@
-$NetBSD$
-
---- third_party/pipewire/spa/utils/string.h.orig	2026-05-06 17:22:14.042192519 +0000
-+++ third_party/pipewire/spa/utils/string.h
-@@ -25,6 +25,12 @@ extern "C" {
-  #endif
- #endif
- 
-+#ifdef __NetBSD__
-+#define uselocale(loc) ((locale_t)0)
-+#define freelocale(loc) ((void)(loc))
-+#define newlocale(mask, loc, base) ((locale_t)0)
-+#endif
-+
- /**
-  * \defgroup spa_string String handling
-  * String handling utilities
diff --git a/librewolf/patches/patch-third__party_rust_mtu_src_bindings_netbsd.rs b/librewolf/patches/patch-third__party_rust_mtu_src_bindings_netbsd.rs
new file mode 100644
index 0000000000..92f717c38b
--- /dev/null
+++ b/librewolf/patches/patch-third__party_rust_mtu_src_bindings_netbsd.rs
@@ -0,0 +1,69 @@
+$NetBSD: patch-third__party_rust_mtu_src_bindings_netbsd.rs,v 1.3 2026/08/06 18:17:21 tnn Exp $
+
+* Fix build under NetBSD/i386 10.
+
+--- third_party/rust/mtu/src/bindings/netbsd.rs.orig	2026-07-27 13:13:31.000000000 +0000
++++ third_party/rust/mtu/src/bindings/netbsd.rs
+@@ -5,8 +5,8 @@ pub const RTAX_MAX: u32 = 9;
+ pub const RTA_DST: u32 = 1;
+ pub const RTA_IFP: u32 = 16;
+ pub const RTAX_MAX: u32 = 9;
+-pub type __int32_t = ::std::os::raw::c_int;
+-pub type __int64_t = ::std::os::raw::c_long;
++pub type __int32_t = i32;
++pub type __int64_t = i64;
+ pub type __pid_t = __int32_t;
+ pub type u_char = ::std::os::raw::c_uchar;
+ pub type u_short = ::std::os::raw::c_ushort;
+@@ -19,8 +19,14 @@ const _: () = {
+ }
+ #[allow(clippy::unnecessary_operation, clippy::identity_op)]
+ const _: () = {
++    #[cfg(target_pointer_width = "64")]
+     ["Size of timespec"][::std::mem::size_of::<timespec>() - 16usize];
++    #[cfg(not(target_pointer_width = "64"))]
++    ["Size of timespec"][::std::mem::size_of::<timespec>() - 12usize];
++    #[cfg(target_pointer_width = "64")]
+     ["Alignment of timespec"][::std::mem::align_of::<timespec>() - 8usize];
++    #[cfg(not(target_pointer_width = "64"))]
++    ["Alignment of timespec"][::std::mem::align_of::<timespec>() - 4usize];
+     ["Offset of field: timespec::tv_sec"][::std::mem::offset_of!(timespec, tv_sec) - 0usize];
+     ["Offset of field: timespec::tv_nsec"][::std::mem::offset_of!(timespec, tv_nsec) - 8usize];
+ };
+@@ -50,8 +56,14 @@ const _: () = {
+ }
+ #[allow(clippy::unnecessary_operation, clippy::identity_op)]
+ const _: () = {
++    #[cfg(target_pointer_width = "64")]
+     ["Size of if_data"][::std::mem::size_of::<if_data>() - 136usize];
++    #[cfg(not(target_pointer_width = "64"))]
++    ["Size of if_data"][::std::mem::size_of::<if_data>() - 132usize];
++    #[cfg(target_pointer_width = "64")]
+     ["Alignment of if_data"][::std::mem::align_of::<if_data>() - 8usize];
++    #[cfg(not(target_pointer_width = "64"))]
++    ["Alignment of if_data"][::std::mem::align_of::<if_data>() - 4usize];
+     ["Offset of field: if_data::ifi_type"][::std::mem::offset_of!(if_data, ifi_type) - 0usize];
+     ["Offset of field: if_data::ifi_addrlen"]
+         [::std::mem::offset_of!(if_data, ifi_addrlen) - 1usize];
+@@ -102,7 +114,10 @@ const _: () = {
+ #[allow(clippy::unnecessary_operation, clippy::identity_op)]
+ const _: () = {
+     ["Size of rt_metrics"][::std::mem::size_of::<rt_metrics>() - 80usize];
++    #[cfg(target_pointer_width = "64")]
+     ["Alignment of rt_metrics"][::std::mem::align_of::<rt_metrics>() - 8usize];
++    #[cfg(not(target_pointer_width = "64"))]
++    ["Alignment of rt_metrics"][::std::mem::align_of::<rt_metrics>() - 4usize];
+     ["Offset of field: rt_metrics::rmx_locks"]
+         [::std::mem::offset_of!(rt_metrics, rmx_locks) - 0usize];
+     ["Offset of field: rt_metrics::rmx_mtu"][::std::mem::offset_of!(rt_metrics, rmx_mtu) - 8usize];
+@@ -143,7 +158,10 @@ const _: () = {
+ #[allow(clippy::unnecessary_operation, clippy::identity_op)]
+ const _: () = {
+     ["Size of rt_msghdr"][::std::mem::size_of::<rt_msghdr>() - 120usize];
++    #[cfg(target_pointer_width = "64")]
+     ["Alignment of rt_msghdr"][::std::mem::align_of::<rt_msghdr>() - 8usize];
++    #[cfg(not(target_pointer_width = "64"))]
++    ["Alignment of rt_msghdr"][::std::mem::align_of::<rt_msghdr>() - 4usize];
+     ["Offset of field: rt_msghdr::rtm_msglen"]
+         [::std::mem::offset_of!(rt_msghdr, rtm_msglen) - 0usize];
+     ["Offset of field: rt_msghdr::rtm_version"]
diff --git a/librewolf/patches/patch-third__party_sqlite3_ext_moz.build b/librewolf/patches/patch-third__party_sqlite3_ext_moz.build
index c1f2ffbe24..ebba227e55 100644
--- a/librewolf/patches/patch-third__party_sqlite3_ext_moz.build
+++ b/librewolf/patches/patch-third__party_sqlite3_ext_moz.build
@@ -1,10 +1,10 @@
-$NetBSD: patch-third__party_sqlite3_ext_moz.build,v 1.2 2025/07/15 13:58:05 ryoon Exp $
+$NetBSD: patch-third__party_sqlite3_ext_moz.build,v 1.3 2026/07/21 15:25:01 ryoon Exp $
 
---- third_party/sqlite3/ext/moz.build.orig	2025-05-20 17:57:17.576392093 +0000
+--- third_party/sqlite3/ext/moz.build.orig	2026-07-13 13:09:31.000000000 +0000
 +++ third_party/sqlite3/ext/moz.build
-@@ -21,7 +21,7 @@ SOURCES += [
-     "sqlite-vec/sqlite-vec.c",
- ]
+@@ -30,7 +30,7 @@ DEFINES["SQLITE_VEC_ENABLE_DISKANN"] = 0
+ # In this release we're not using DISKANN so remove to save space
+ DEFINES["SQLITE_VEC_ENABLE_DISKANN"] = 0
  
 -if CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "Android":
 +if CONFIG["OS_TARGET"] == "Linux" or CONFIG["OS_TARGET"] == "Android" or CONFIG["OS_TARGET"] == "FreeBSD" or CONFIG["OS_TARGET"] == "NetBSD" or CONFIG["OS_TARGET"] == "OpenBSD":
diff --git a/librewolf/patches/patch-third__party_wasm2c_src_c-writer.cc b/librewolf/patches/patch-third__party_wasm2c_src_c-writer.cc
deleted file mode 100644
index 55ccbf010f..0000000000
--- a/librewolf/patches/patch-third__party_wasm2c_src_c-writer.cc
+++ /dev/null
@@ -1,13 +0,0 @@
-$NetBSD: patch-third__party_wasm2c_src_c-writer.cc,v 1.1 2025/07/26 14:12:54 ryoon Exp $
-
---- third_party/wasm2c/src/c-writer.cc.orig	2025-07-26 13:24:19.226278807 +0000
-+++ third_party/wasm2c/src/c-writer.cc
-@@ -1490,7 +1490,7 @@ void CWriter::WriteInitExprTerminal(cons
- std::string CWriter::GenerateHeaderGuard() const {
-   std::string result;
-   for (char c : header_name_) {
--    if (isalnum(c) || c == '_') {
-+    if (isalnum((unsigned char)c) || c == '_') {
-       result += toupper(c);
-     } else {
-       result += '_';
diff --git a/librewolf/patches/patch-toolkit_components_terminator_nsTerminator.cpp b/librewolf/patches/patch-toolkit_components_terminator_nsTerminator.cpp
index 6eb631a296..7fd3f52491 100644
--- a/librewolf/patches/patch-toolkit_components_terminator_nsTerminator.cpp
+++ b/librewolf/patches/patch-toolkit_components_terminator_nsTerminator.cpp
@@ -1,10 +1,10 @@
-$NetBSD: patch-toolkit_components_terminator_nsTerminator.cpp,v 1.8 2023/01/07 23:36:39 ryoon Exp $
+$NetBSD: patch-toolkit_components_terminator_nsTerminator.cpp,v 1.9 2026/10/16 16:28:47 ryoon Exp $
 
 * Fix segfault on exit under NetBSD
 
---- toolkit/components/terminator/nsTerminator.cpp.orig	2022-06-16 21:35:58.000000000 +0000
+--- toolkit/components/terminator/nsTerminator.cpp.orig	2026-10-08 02:24:22.000000000 +0000
 +++ toolkit/components/terminator/nsTerminator.cpp
-@@ -34,7 +34,7 @@
+@@ -33,7 +33,7 @@
  #if defined(XP_WIN)
  #  include <windows.h>
  #else
@@ -13,7 +13,7 @@ $NetBSD: patch-toolkit_components_terminator_nsTerminator.cpp,v 1.8 2023/01/07 2
  #endif
  
  #include "mozilla/AppShutdown.h"
-@@ -184,7 +184,10 @@ void RunWatchdog(void* arg) {
+@@ -223,7 +223,10 @@ void RunWatchdog(void*) {
  #if defined(XP_WIN)
      Sleep(HEARTBEAT_INTERVAL_MS /* ms */);
  #else
@@ -24,4 +24,4 @@ $NetBSD: patch-toolkit_components_terminator_nsTerminator.cpp,v 1.8 2023/01/07 2
 +    nanosleep(&tickd, NULL);
  #endif
  
-     if (gHeartbeat++ < timeToLive) {
+     if (gHeartbeat++ < gCrashAfterTicks) {
diff --git a/librewolf/patches/patch-widget_gtk_nsAppShell.cpp b/librewolf/patches/patch-widget_gtk_nsAppShell.cpp
new file mode 100644
index 0000000000..8fa7e02358
--- /dev/null
+++ b/librewolf/patches/patch-widget_gtk_nsAppShell.cpp
@@ -0,0 +1,16 @@
+$NetBSD: patch-widget_gtk_nsAppShell.cpp,v 1.1 2026/10/08 20:57:15 ryoon Exp $
+
+* Fix build without dbus option.
+
+--- widget/gtk/nsAppShell.cpp.orig	2026-09-29 15:04:11.531003992 +0000
++++ widget/gtk/nsAppShell.cpp
+@@ -30,8 +30,8 @@
+ #ifdef MOZ_ENABLE_DBUS
+ #  include <gio/gio.h>
+ 
+-#  include "WidgetUtilsGtk.h"
+ #endif
++#include "WidgetUtilsGtk.h"
+ #include "HeadlessScreenHelper.h"
+ #include "ScreenHelperGTK.h"
+ #include "WakeLockListener.h"



Home | Main Index | Thread Index | Old Index