-Date: Wed, 24 Jul 2024 21:07:56 +0200
-Subject: [PATCH] make build reproducible by removing TMPDIR
-
-1. The patched html file contains compiler configuration that can be looked up
-somewhere in the compiled firefox, however it refers to TMPDIR at many
-places (include path, lib path, etc).
-
-After looking into it, changing these variables seem to be a disproportionally
-big patch, so instead just remove the thing.
-
-2. All moz.build files got the same nasm argument: `--debug-prefix-map $TMPDIR/=/`
-This should remove the paths referring to the build machine.
-
-Upstream-Status: Inappropriate [OE-specific]
----
- toolkit/content/buildconfig.html | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/toolkit/content/buildconfig.html b/toolkit/content/buildconfig.html
-index 9c7ada2..a5ec4d0 100644
---- a/toolkit/content/buildconfig.html
-+++ b/toolkit/content/buildconfig.html
-@@ -44,25 +44,25 @@
- Compiler flags |
-
-
-- @CC@ |
-+ Removed for reproducability. Look it up in Yocto build logs. |
- @CC_VERSION@ |
-- @CFLAGS@ |
-+ Removed for reproducability. Look it up in Yocto build logs. |
-
-
-- @CXX@ |
-+ Removed for reproducability. Look it up in Yocto build logs. |
- @CC_VERSION@ |
-- @CXXFLAGS@ |
-+ Removed for reproducability. Look it up in Yocto build logs. |
-
-
-- @RUSTC@ |
-+ Removed for reproducability. Look it up in Yocto build logs. |
- @RUSTC_VERSION@ |
-- @RUSTFLAGS@ |
-+ Removed for reproducability. Look it up in Yocto build logs. |
-
-
-
- #endif
- Configure options
-- @MOZ_CONFIGURE_OPTIONS@
-+ Removed for reproducability. Look it up in Yocto build logs.
- #ifdef ANDROID
- Package name
- @ANDROID_PACKAGE_NAME@
---- a/media/libaom/moz.build 2024-08-06 12:03:48.896436119 +0200
-+++ b/media/libaom/moz.build 2024-08-06 12:04:22.279991683 +0200
-@@ -28,6 +28,7 @@
- EXPORTS.aom += [ 'config/mac/x64/config/aom_config.h' ]
- else: # Android, Linux, BSDs, etc.
- ASFLAGS += [ '-I%s/media/libaom/config/linux/x64/' % TOPSRCDIR ]
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
- LOCAL_INCLUDES += [ '/media/libaom/config/linux/x64/' ]
- EXPORTS.aom += [ 'config/linux/x64/config/aom_config.h' ]
- elif CONFIG['TARGET_CPU'] == 'x86':
-@@ -41,6 +42,7 @@
- NO_PGO = True # Compiler OOMs, bug 1445922
- else: # Android, Linux, BSDs, etc.
- ASFLAGS += [ '-I%s/media/libaom/config/linux/ia32/' % TOPSRCDIR ]
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
- LOCAL_INCLUDES += [ '/media/libaom/config/linux/ia32/' ]
- EXPORTS.aom += [ 'config/linux/ia32/config/aom_config.h' ]
- elif CONFIG['TARGET_CPU'] == 'arm':
---- a/media/libdav1d/asm/moz.build 2024-08-07 06:48:23.971623324 +0200
-+++ b/media/libdav1d/asm/moz.build 2024-08-07 06:49:15.566822209 +0200
-@@ -37,6 +37,7 @@
- ASFLAGS += ['-I%s/media/libdav1d/asm/x86_32/win/' % TOPSRCDIR]
- else:
- ASFLAGS += ['-I%s/media/libdav1d/asm/x86_32/' % TOPSRCDIR]
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
- stack_alignment = 16
- # Change stack alignment to 16 bytes.
- if CONFIG['CC_TYPE'] == 'clang':
-@@ -54,6 +55,7 @@
- # The rest of the platforms are all Linux-like: plain Linux
- # Android, OpenBSD, NetBSD, FreeBSD, DragonFly, SunOS
- ASFLAGS += ['-I%s/media/libdav1d/asm/x86_64/linux/' % TOPSRCDIR]
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
- elif CONFIG['TARGET_CPU'] == 'aarch64':
- stack_alignment = 16
- ASFLAGS += ['-I%s/dist/include/dav1d/' % TOPOBJDIR]
-diff --git a/media/ffvpx/ffvpxcommon.mozbuild b/media/ffvpx/ffvpxcommon.mozbuild
-index 3035d9d..a347662 100644
---- a/media/ffvpx/ffvpxcommon.mozbuild
-+++ b/media/ffvpx/ffvpxcommon.mozbuild
-@@ -11,6 +11,12 @@ if CONFIG['CPU_ARCH'] != 'aarch64':
- ASFLAGS += ['-I%s/media/ffvpx/libavcodec/x86/' % TOPSRCDIR]
- ASFLAGS += ['-I%s/media/ffvpx/libavutil/x86/' % TOPSRCDIR]
-
-+if CONFIG['TARGET_CPU'] == 'x86':
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
-+
-+if CONFIG['TARGET_CPU'] == 'x86_64':
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
-+
- if CONFIG['FFVPX_ASFLAGS']:
- if CONFIG['FFVPX_USE_NASM']:
- USE_NASM = True
---- a/media/libvpx/moz.build 2024-08-07 09:30:02.280758173 +0200
-+++ b/media/libvpx/moz.build 2024-08-07 09:30:20.045513609 +0200
-@@ -28,6 +28,7 @@
- EXPORTS.vpx += files['LINUX_X64_EXPORTS']
- SOURCES += files['LINUX_X64_SOURCES']
- ASFLAGS += [ '-I%s/media/libvpx/config/linux/x64/' % TOPSRCDIR ]
-+ ASFLAGS += [ '--debug-prefix-map', '%s/=/' % TOPSRCDIR ]
- LOCAL_INCLUDES += [ '/media/libvpx/config/linux/x64/' ]
- elif CONFIG['TARGET_CPU'] == 'x86':
- if CONFIG['OS_TARGET'] == 'WINNT':
-@@ -44,6 +45,7 @@
- EXPORTS.vpx += files['LINUX_IA32_EXPORTS']
- SOURCES += files['LINUX_IA32_SOURCES']
- ASFLAGS += [ '-I%s/media/libvpx/config/linux/ia32/' % TOPSRCDIR ]
-+ ASFLAGS += [ '--debug-prefix-map', '%s/=/' % TOPSRCDIR ]
- LOCAL_INCLUDES += [ '/media/libvpx/config/linux/ia32/' ]
- elif CONFIG['TARGET_CPU'] == 'arm':
- EXPORTS.vpx += files['LINUX_ARM_EXPORTS']
---- ./media/libjpeg/moz.build 2024-08-07 09:32:21.776008707 +0200
-+++ ./media/libjpeg/moz.build 2024-08-07 09:32:57.707525237 +0200
-@@ -312,9 +312,11 @@
- if CONFIG['TARGET_CPU'] == 'x86':
- ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
- ASFLAGS += ['-I%s/media/libjpeg/simd/i386/' % TOPSRCDIR]
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
- if CONFIG['TARGET_CPU'] == 'x86_64':
- ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
- ASFLAGS += ['-I%s/media/libjpeg/simd/x86_64/' % TOPSRCDIR]
-+ ASFLAGS += ['--debug-prefix-map', '%s/=/' % TOPSRCDIR]
-
- # We allow warnings for third-party code that can be updated from upstream.
- AllowCompilerWarnings()
diff --git a/meta-firefox/recipes-browser/firefox/firefox-esr/0001-rust-don-t-abort-on-panic.patch b/meta-firefox/recipes-browser/firefox/firefox-esr/0001-rust-don-t-abort-on-panic.patch
index ea5059213..9419e278a 100644
--- a/meta-firefox/recipes-browser/firefox/firefox-esr/0001-rust-don-t-abort-on-panic.patch
+++ b/meta-firefox/recipes-browser/firefox/firefox-esr/0001-rust-don-t-abort-on-panic.patch
@@ -1,6 +1,6 @@
-From 7f87ef57e74bce415ac4d4b8a46fd19c2f962243 Mon Sep 17 00:00:00 2001
+From 128528a95740381046e75657ed73dc2994691540 Mon Sep 17 00:00:00 2001
From: Gyorgy Sarvari
-Date: Tue, 18 Feb 2025 17:40:47 +0100
+Date: Tue, 18 Feb 2025 17:36:34 +0100
Subject: [PATCH] rust - don't abort on panic
The Rust in Yocto needs to be compiled in a special way (with RUST_PANIC_STRATEGY = "abort"
@@ -14,10 +14,10 @@ Upstream-Status: Inappropriate [oe-specific]
1 file changed, 2 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
-index a424818..eed8964 100644
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -67,13 +67,11 @@ opt-level = 1
+index 29942b6..2158c9d 100644
+--- ./Cargo.toml.orig 2025-07-21 21:20:58.010219931 +0200
++++ ./Cargo.toml 2025-07-21 21:21:06.413674690 +0200
+@@ -78,13 +78,11 @@
rpath = false
lto = false
debug-assertions = true
diff --git a/meta-firefox/recipes-browser/firefox/firefox-esr/0002-use-offline-crates.patch b/meta-firefox/recipes-browser/firefox/firefox-esr/0002-use-offline-crates.patch
index 491825384..9ceee3cd9 100644
--- a/meta-firefox/recipes-browser/firefox/firefox-esr/0002-use-offline-crates.patch
+++ b/meta-firefox/recipes-browser/firefox/firefox-esr/0002-use-offline-crates.patch
@@ -3,6 +3,11 @@ From: skandigraun
Date: Tue, 30 May 2023 22:17:51 +0200
Subject: [PATCH] update firefox
+This patch changes the Cargo.toml files to use local crates instead of fetching
+custom ones from github - the crates are the same, but they are fetched in
+do_fetch task instead of allowing cargo to fetch them during compiling, when
+there is no network connection.
+
Upstream-Status: Inappropriate [oe specific]
---
.cargo/config.in | 2 +-
@@ -10,9 +15,9 @@ Upstream-Status: Inappropriate [oe specific]
third_party/rust/suggest/Cargo.toml | 8 +--
3 files changed, 69 insertions(+), 33 deletions(-)
---- ./.cargo/config.toml.in 2024-04-15 20:25:39.821878117 +0200
-+++ ./.cargo/config.toml.in 2024-04-15 20:26:12.719778977 +0200
-@@ -123,7 +123,7 @@
+--- ./.cargo/config.toml.in 2025-04-28 15:44:40.964583525 +0200
++++ ./.cargo/config.toml.in 2025-04-28 15:45:03.364366743 +0200
+@@ -128,7 +128,7 @@
# cargo would fail.
#ifndef REPLACE_NAME
[source.vendored-sources]
@@ -21,104 +26,18 @@ Upstream-Status: Inappropriate [oe specific]
#endif
# Thankfully, @REPLACE_NAME@ is unlikely to be a legitimate source, so
-diff --git a/third_party/rust/suggest/Cargo.toml b/third_party/rust/suggest/Cargo.toml
-index 47c282a..7a322c5 100644
---- a/third_party/rust/suggest/Cargo.toml
-+++ b/third_party/rust/suggest/Cargo.toml
-@@ -39,11 +39,9 @@ serde_json = "1"
- thiserror = "1"
- uniffi = "0.27.1"
-
--[dependencies.error-support]
--path = "../support/error"
--
--[dependencies.interrupt-support]
--path = "../support/interrupt"
-+interrupt-support = "0.1.0"
-+sql-support = "0.1.0"
-+error-support = "0.1.0"
-
- [dependencies.remote_settings]
- path = "../remote_settings"
-@@ -59,9 +57,6 @@ features = [
- version = "1"
- features = ["derive"]
-
--[dependencies.sql-support]
--path = "../support/sql"
--
- [dependencies.tempfile]
- version = "3.2.0"
- optional = true
-diff --git a/gfx/wgpu_bindings/Cargo.toml b/gfx/wgpu_bindings/Cargo.toml
-index de65b7b..4771100 100644
---- a/gfx/wgpu_bindings/Cargo.toml
-+++ b/gfx/wgpu_bindings/Cargo.toml
-@@ -16,8 +16,7 @@ default = []
-
- [dependencies.wgc]
- package = "wgpu-core"
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/wgpu-core"
- # TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182
- features = ["serde", "replay", "trace", "strict_asserts", "wgsl", "api_log_info"]
-
-@@ -25,38 +24,32 @@ features = ["serde", "replay", "trace", "strict_asserts", "wgsl", "api_log_info"
- # (We should consider also enabling "vulkan" for Vulkan Portability.)
- [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc]
- package = "wgpu-core"
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/wgpu-core"
- features = ["metal"]
-
- # We want the wgpu-core Direct3D backends on Windows.
- [target.'cfg(windows)'.dependencies.wgc]
- package = "wgpu-core"
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/wgpu-core"
- features = ["dx12"]
-
- # We want the wgpu-core Vulkan backend on Linux and Windows.
- [target.'cfg(any(windows, all(unix, not(any(target_os = "macos", target_os = "ios")))))'.dependencies.wgc]
- package = "wgpu-core"
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/wgpu-core"
- features = ["vulkan"]
-
- [dependencies.wgt]
- package = "wgpu-types"
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/wgpu-types"
-
- [dependencies.wgh]
- package = "wgpu-hal"
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/wgpu-hal"
- features = ["windows_rs", "oom_panic", "device_lost_panic", "internal_error_panic"]
-
- [target.'cfg(windows)'.dependencies.d3d12]
--git = "https://github.com/gfx-rs/wgpu"
--rev = "c7458638d14921c7562e4197ddeefa17be413587"
-+path = "../../../wgpu/d3d12"
-
- [target.'cfg(windows)'.dependencies]
- winapi = "0.3"
-
---- ./Cargo.toml 2024-10-28 16:07:23.702773867 +0100
-+++ ./Cargo.toml 2024-10-28 16:10:36.416273464 +0100
-@@ -201,41 +201,46 @@
- plist = { path = "third_party/rust/plist" }
+--- ./Cargo.toml 2025-06-25 08:24:39.162282199 +0200
++++ ./Cargo.toml 2025-06-25 08:27:53.409710345 +0200
+@@ -237,21 +237,21 @@
+ unicode-width = { path = "build/rust/unicode-width" }
# To-be-published changes.
-unicode-bidi = { git = "https://github.com/servo/unicode-bidi", rev = "ca612daf1c08c53abe07327cb3e6ef6e0a760f0c" }
+-nss-gk-api = { git = "https://github.com/beurdouche/nss-gk-api", rev = "e48a946811ffd64abc78de3ee284957d8d1c0d63" }
+-cssparser = { git = "https://github.com/servo/rust-cssparser", rev = "958a3f098acb92ddacdce18a7ef2c4a87ac3326f" }
+unicode-bidi = { path = "../unicode-bidi" }
-+types = { path = "third_party/rust/types" }
++nss-gk-api = { path = "../nss-gk-api" }
++cssparser = { path = "../cssparser" }
# Other overrides
-any_all_workaround = { git = "https://github.com/hsivonen/any_all_workaround", rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80" }
@@ -137,22 +56,28 @@ index de65b7b..4771100 100644
libudev-sys = { path = "dom/webauthn/libudev-sys" }
-midir = { git = "https://github.com/mozilla/midir.git", rev = "85156e360a37d851734118104619f86bd18e94c6" }
+midir = { path = "../midir" }
- # warp 0.3.6 + https://github.com/seanmonstar/warp/pull/1069
--warp = { git = "https://github.com/seanmonstar/warp", rev = "9d081461ae1167eb321585ce424f4fef6cf0092b" }
-+warp = { path = "../warp" }
# Allow webrender to have a versioned dependency on the older crate on crates.io
# in order to build standalone.
malloc_size_of_derive = { path = "xpcom/rust/malloc_size_of_derive" }
+@@ -259,18 +259,64 @@
+ wr_malloc_size_of = { path = "gfx/wr/wr_malloc_size_of" }
+
+ # objc 0.2.7 + fa7ca43b862861dd1cd000d7ad01e6e0266cda13
+-objc = { git = "https://github.com/glandium/rust-objc", rev = "4de89f5aa9851ceca4d40e7ac1e2759410c04324" }
++objc = { path = "../objc" }
# application-services overrides to make updating them all simpler.
--interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--relevancy = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--sql-support = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--suggest = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--sync15 = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--tabs = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--viaduct = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
--webext-storage = { git = "https://github.com/mozilla/application-services", rev = "7c275b9088557abcbc8f3c2834f9aaa9064ca5e4" }
+-context_id = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-relevancy = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-search = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-sql-support = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-suggest = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-sync15 = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-tabs = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-viaduct = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-webext-storage = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
++context_id = { path = "../application-services/components/context_id", version = "0.1.0" }
+interrupt-support = { path = "../application-services/components/support/interrupt", version = "0.1.0" }
+relevancy = { path = "../application-services/components/relevancy", version = "0.1.0"}
+sql-support = { path = "../application-services/components/support/sql", version = "0.1.0" }
@@ -162,25 +87,9 @@ index de65b7b..4771100 100644
+error-support = { path = "../application-services/components/support/error", version = "0.1.0" }
+viaduct = { path = "../application-services/components/viaduct", version = "0.1.0" }
+webext-storage = { path = "../application-services/components/webext-storage", version = "0.1.0" }
++search = { path = "../application-services/components/search", version = "0.1.0" }
- # Patch mio 0.8.8 to use windows-sys 0.52 (backport https://github.com/tokio-rs/mio/commit/eea9e3e0c469480e5c59c01e6c3c7e5fd88f0848)
--mio_0_8 = { package = "mio", git = "https://github.com/glandium/mio", rev = "9a2ef335c366044ffe73b1c4acabe50a1daefe05" }
-+mio_0_8 = { path = "../mio", package = "mio" }
-
- # Patch `gpu-descriptor` 0.3.0 to remove unnecessary `allocator-api2` dep.:
- # Still waiting for the now-merged to be released.
--gpu-descriptor = { git = "https://github.com/zakarumych/gpu-descriptor", rev = "7b71a4e47c81903ad75e2c53deb5ab1310f6ff4d" }
-+gpu-descriptor = { path = "../gpu-descriptor/gpu-descriptor" }
-+
-+[patch."https://github.com/mozilla-spidermonkey/jsparagus"]
-+jsparagus = { path = "../jsparagus" }
-
- [patch."https://github.com/mozilla/neqo"]
- neqo-bin = { path = "third_party/rust/neqo-bin" }
-@@ -244,3 +249,30 @@
- neqo-http3 = { path = "third_party/rust/neqo-http3" }
- neqo-qpack = { path = "third_party/rust/neqo-qpack" }
- neqo-transport = { path = "third_party/rust/neqo-transport" }
+ allocator-api2 = { path = "third_party/rust/allocator-api2" }
+
+[patch."https://github.com/FirefoxGraphics/aa-stroke"]
+aa-stroke = { path = "../aa-stroke"}
@@ -208,3 +117,144 @@ index de65b7b..4771100 100644
+wgpu-core = { path = "../wgpu/wgpu-core" }
+wgpu-types = { path = "../wgpu/wgpu-types" }
+wgpu-hal = { path = "../wgpu/wgpu-hal" }
++wgpu-core-deps-windows-linux-android = { path = "../wgpu/wgpu-core/platform-deps/windows-linux-android" }
++
++[patch."https://github.com/mozilla/neqo"]
++neqo-bin = { path = "../neqo/neqo-bin", version = "0.13.1" }
++neqo-http3 = { path = "../neqo/neqo-http3", version = "0.13.1" }
++neqo-common = { path = "../neqo/neqo-common", version = "0.13.1" }
++neqo-transport = { path = "../neqo/neqo-transport", version = "0.13.1" }
++neqo-qpack = { path = "../neqo/neqo-qpack", version = "0.13.1" }
++neqo-crypto = { path = "../neqo/neqo-crypto", version = "0.13.1" }
++neqo-udp = { path = "../neqo/neqo-udp", version = "0.13.1" }
++
++[patch."https://github.com/beurdouche/mls-rs"]
++mls-rs = { path = "../mls-rs/mls-rs" }
++mls-rs-crypto-nss = { path = "../mls-rs/mls-rs-crypto-nss" }
++mls-rs-provider-sqlite = {path = "../mls-rs/mls-rs-provider-sqlite" }
++
++[patch."https://github.com/beurdouche/mls-platform-api"]
++mls-platform-api = { path = "../mls-platform-api" }
+--- ./gfx/wgpu_bindings/Cargo.toml 2025-06-25 08:17:52.654944797 +0200
++++ ./gfx/wgpu_bindings/Cargo.toml 2025-06-26 09:32:15.115001567 +0200
+@@ -16,8 +16,7 @@
+
+ [dependencies.wgc]
+ package = "wgpu-core"
+-git = "https://github.com/gfx-rs/wgpu"
+-rev = "88862f1fa3fd0f0c1010e9fc999dcfe47b5ae8fc"
++path = "../../../wgpu/wgpu-core"
+ # TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182
+ features = [
+ "serde",
+@@ -32,33 +31,28 @@
+ # (We should consider also enabling "vulkan" for Vulkan Portability.)
+ [target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc]
+ package = "wgpu-core"
+-git = "https://github.com/gfx-rs/wgpu"
+-rev = "88862f1fa3fd0f0c1010e9fc999dcfe47b5ae8fc"
++path = "../../../wgpu/wgpu-core"
+ features = ["metal"]
+
+ # We want the wgpu-core Direct3D backends on Windows.
+ [target.'cfg(windows)'.dependencies.wgc]
+ package = "wgpu-core"
+-git = "https://github.com/gfx-rs/wgpu"
+-rev = "88862f1fa3fd0f0c1010e9fc999dcfe47b5ae8fc"
++path = "../../../wgpu/wgpu-core"
+ features = ["dx12"]
+
+ # We want the wgpu-core Vulkan backend on Linux and Windows.
+ [target.'cfg(any(windows, all(unix, not(any(target_os = "macos", target_os = "ios")))))'.dependencies.wgc]
+ package = "wgpu-core"
+-git = "https://github.com/gfx-rs/wgpu"
+-rev = "88862f1fa3fd0f0c1010e9fc999dcfe47b5ae8fc"
++path = "../../../wgpu/wgpu-core"
+ features = ["vulkan"]
+
+ [dependencies.wgt]
+ package = "wgpu-types"
+-git = "https://github.com/gfx-rs/wgpu"
+-rev = "88862f1fa3fd0f0c1010e9fc999dcfe47b5ae8fc"
++path = "../../../wgpu/wgpu-types"
+
+ [dependencies.wgh]
+ package = "wgpu-hal"
+-git = "https://github.com/gfx-rs/wgpu"
+-rev = "88862f1fa3fd0f0c1010e9fc999dcfe47b5ae8fc"
++path = "../../../wgpu/wgpu-hal"
+ features = ["device_lost_panic", "internal_error_panic"]
+
+ [target.'cfg(windows)'.dependencies]
+--- ./third_party/rust/suggest/Cargo.toml 2025-06-25 08:19:30.377078747 +0200
++++ ./third_party/rust/suggest/Cargo.toml 2025-06-26 12:25:07.413614054 +0200
+@@ -62,11 +62,9 @@
+ unicase = "2.6"
+ unicode-normalization = "0.1"
+
+-[dependencies.error-support]
+-path = "../support/error"
+-
+-[dependencies.interrupt-support]
+-path = "../support/interrupt"
++interrupt-support = "0.1.0"
++sql-support = "0.1.0"
++error-support = "0.1.0"
+
+ [dependencies.remote_settings]
+ path = "../remote_settings"
+@@ -84,9 +82,6 @@
+ version = "1"
+ features = ["derive"]
+
+-[dependencies.sql-support]
+-path = "../support/sql"
+-
+ [dependencies.tempfile]
+ version = "3.2.0"
+ optional = true
+@@ -102,7 +97,7 @@
+ path = "../viaduct"
+
+ [dependencies.viaduct-reqwest]
+-path = "../support/viaduct-reqwest"
++path = "../../../application-services/components/support/viaduct-reqwest"
+ optional = true
+
+ [dev-dependencies]
+@@ -112,8 +107,8 @@
+ itertools = "0.14"
+
+ [dev-dependencies.error-support]
+-path = "../support/error"
+ features = ["testing"]
++version = "0.1.0"
+
+ [dev-dependencies.rc_crypto]
+ path = "../support/rc_crypto"
+--- ./third_party/rust/search/Cargo.toml 2025-06-25 08:23:12.946087187 +0200
++++ ./third_party/rust/search/Cargo.toml 2025-06-26 12:28:44.748127218 +0200
+@@ -32,12 +32,10 @@
+ parking_lot = ">=0.11,<=0.12"
+ serde_json = "1"
+ thiserror = "1"
+-
+-[dependencies.error-support]
+-path = "../support/error"
++error-support = "0.1.0"
+
+ [dependencies.firefox-versioning]
+-path = "../support/firefox-versioning"
++path = "../../../application-services/components/support/firefox-versioning"
+
+ [dependencies.remote_settings]
+ path = "../remote_settings"
+@@ -55,7 +53,7 @@
+ pretty_assertions = "0.6"
+
+ [dev-dependencies.error-support]
+-path = "../support/error"
++version = "0.1.0"
+ features = ["testing"]
+
+ [dev-dependencies.viaduct-reqwest]
diff --git a/meta-firefox/recipes-browser/firefox/firefox-esr/bug1545437-enable-to-specify-rust-target.patch b/meta-firefox/recipes-browser/firefox/firefox-esr/bug1545437-enable-to-specify-rust-target.patch
deleted file mode 100644
index bdc2e16a8..000000000
--- a/meta-firefox/recipes-browser/firefox/firefox-esr/bug1545437-enable-to-specify-rust-target.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From f991ffad1f34fe341e008172bd19ca5782660c0c Mon Sep 17 00:00:00 2001
-From: Takuro Ashie
-Date: Thu, 18 Apr 2019 23:15:16 +0900
-Subject: [PATCH] Bug 1545437 - Add options to specify Rust target name
-
- r?glandium
-
-Certain build systems such as Yocto know more suitable Rust target name, so it
-would be better that there is a way to pass it to Mozilla's build system.
-
-Differential Revision: https://phabricator.services.mozilla.com/D28069
-
-Upstream-Status: Pending
-
----
- build/moz.configure/rust.configure | 40 +++++++++++++++++++++++++-----
- 1 file changed, 34 insertions(+), 6 deletions(-)
-
-diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure
-index 7a2fd1ae70..aa81ffbe03 100644
---- a/build/RunCbindgen.py 2024-08-09 16:01:20.700947135 +0200
-+++ b/build/RunCbindgen.py 2024-08-09 16:02:13.462272971 +0200
-@@ -43,6 +43,7 @@
- args = [
- buildconfig.substs["CARGO"],
- "metadata",
-+ "--offline",
- "--all-features",
- "--format-version",
- "1",
-@@ -50,13 +51,6 @@
- CARGO_TOML,
- ]
-
-- # The Spidermonkey library can be built from a package tarball outside the
-- # tree, so we want to let Cargo create lock files in this case. When built
-- # within a tree, the Rust dependencies have been vendored in so Cargo won't
-- # touch the lock file.
-- if not buildconfig.substs.get("JS_STANDALONE"):
-- args.append("--frozen")
--
- stdout, returncode = _run_process(args)
-
- if returncode != 0:
---- ./build/moz.configure/rust.configure 2024-10-01 12:27:04.584195384 +0200
-+++ ./build/moz.configure/rust.configure 2024-10-01 13:14:06.735772311 +0200
-@@ -279,9 +279,32 @@
- data.setdefault(key, []).append(namespace(rust_target=t, target=info))
- return data
-
-+option(env='RUST_HOST',
-+ nargs=1,
-+ help='Define the system type for Rust performing the build')
-+
-+@depends('RUST_HOST')
-+@checking('rust host', lambda host: host)
-+def rust_host_env(value):
-+ if value:
-+ return value[0]
-+
-+
-+option(env='RUST_TARGET',
-+ nargs=1,
-+ help='Define the system type for Rust where the resulting executables will be used')
-+
-+@depends('RUST_TARGET')
-+@checking('rust target', lambda target: target)
-+def rust_target_env(value):
-+ if value:
-+ return value[0]
-+
-+
-+
-
- def detect_rustc_target(
-- host_or_target, compiler_info, arm_target, rust_supported_targets
-+ host_or_target, compiler_info, arm_target, rust_supported_targets, rust_host_env, rust_target_env, host_or_target_str
- ):
- # Rust's --target options are similar to, but not exactly the same
- # as, the autoconf-derived targets we use. An example would be that
-@@ -292,6 +315,12 @@
- # munging to get the correct option to rustc.
- # We correlate the autoconf-derived targets with the list of targets
- # rustc gives us with --print target-list.
-+
-+ specified_targets = {"host": rust_host_env, "target": rust_target_env}
-+ specified_target = specified_targets[host_or_target_str]
-+ if (specified_target):
-+ return specified_target
-+
- candidates = rust_supported_targets.get(
- (host_or_target.cpu, host_or_target.endianness, host_or_target.os), []
- )
-@@ -423,7 +452,7 @@
- @imports(_from="tempfile", _import="mkstemp")
- @imports(_from="textwrap", _import="dedent")
- @imports(_from="mozbuild.configure.util", _import="LineIO")
--def assert_rust_compile(host_or_target, rustc_target, rustc):
-+def assert_rust_compile(host_or_target, rustc_target, rustc, is_target = False):
- # Check to see whether our rustc has a reasonably functional stdlib
- # for our chosen target.
- target_arg = "--target=" + rustc_target
-@@ -449,6 +478,9 @@
- in_path,
- ]
-
-+ if is_target:
-+ cmd.extend(os.environ["RUSTFLAGS"].split())
-+
- def failed():
- die(
- dedent(
-@@ -479,15 +511,17 @@
- rustc_info.host,
- rust_supported_targets,
- arm_target,
-+ rust_host_env,
-+ rust_target_env,
- when=rust_compiler,
- )
- @checking("for rust host triplet")
- @imports(_from="textwrap", _import="dedent")
- def rust_host_triple(
-- rustc, host, compiler_info, rustc_host, rust_supported_targets, arm_target
-+ rustc, host, compiler_info, rustc_host, rust_supported_targets, arm_target, rust_host_env, rust_target_env
- ):
- rustc_target = detect_rustc_target(
-- host, compiler_info, arm_target, rust_supported_targets
-+ host, compiler_info, arm_target, rust_supported_targets, rust_host_env, rust_target_env, "host"
- )
- if rustc_target != rustc_host:
- if host.alias == rustc_target:
-@@ -516,16 +550,16 @@
-
-
- @depends(
-- rustc, target, c_compiler, rust_supported_targets, arm_target, when=rust_compiler
-+ rustc, target, c_compiler, rust_supported_targets, arm_target, rust_host_env, rust_target_env, when=rust_compiler
- )
- @checking("for rust target triplet")
- def rust_target_triple(
-- rustc, target, compiler_info, rust_supported_targets, arm_target
-+ rustc, target, compiler_info, rust_supported_targets, arm_target, rust_host_env, rust_target_env
- ):
- rustc_target = detect_rustc_target(
-- target, compiler_info, arm_target, rust_supported_targets
-+ target, compiler_info, arm_target, rust_supported_targets, rust_host_env, rust_target_env, "target"
- )
-- assert_rust_compile(target, rustc_target, rustc)
-+ assert_rust_compile(target, rustc_target, rustc, True)
- return rustc_target
-
-
diff --git a/meta-firefox/recipes-browser/firefox/firefox-latest/0001-rust-don-t-abort-on-panic.patch b/meta-firefox/recipes-browser/firefox/firefox-latest/0001-rust-don-t-abort-on-panic.patch
index 22cab4f7d..a48de0c9f 100644
--- a/meta-firefox/recipes-browser/firefox/firefox-latest/0001-rust-don-t-abort-on-panic.patch
+++ b/meta-firefox/recipes-browser/firefox/firefox-latest/0001-rust-don-t-abort-on-panic.patch
@@ -15,9 +15,9 @@ Upstream-Status: Inappropriate [oe-specific]
diff --git a/Cargo.toml b/Cargo.toml
index 29942b6..2158c9d 100644
---- a/Cargo.toml
-+++ b/Cargo.toml
-@@ -74,13 +74,11 @@ opt-level = 1
+--- ./Cargo.toml.orig 2025-07-21 21:22:22.479442980 +0200
++++ ./Cargo.toml 2025-07-21 21:22:31.245820309 +0200
+@@ -80,13 +80,11 @@
rpath = false
lto = false
debug-assertions = true
diff --git a/meta-firefox/recipes-browser/firefox/firefox-latest/0002-use-offline-crates.patch b/meta-firefox/recipes-browser/firefox/firefox-latest/0002-use-offline-crates.patch
index c4e03f71b..2103eb4b2 100644
--- a/meta-firefox/recipes-browser/firefox/firefox-latest/0002-use-offline-crates.patch
+++ b/meta-firefox/recipes-browser/firefox/firefox-latest/0002-use-offline-crates.patch
@@ -17,7 +17,7 @@ Upstream-Status: Inappropriate [oe specific]
--- ./.cargo/config.toml.in 2025-04-28 15:44:40.964583525 +0200
+++ ./.cargo/config.toml.in 2025-04-28 15:45:03.364366743 +0200
-@@ -128,7 +128,7 @@
+@@ -123,7 +123,7 @@
# cargo would fail.
#ifndef REPLACE_NAME
[source.vendored-sources]
@@ -26,9 +26,9 @@ Upstream-Status: Inappropriate [oe specific]
#endif
# Thankfully, @REPLACE_NAME@ is unlikely to be a legitimate source, so
---- ./Cargo.toml 2025-06-25 08:24:39.162282199 +0200
-+++ ./Cargo.toml 2025-06-25 08:27:53.409710345 +0200
-@@ -237,21 +237,21 @@
+--- ./Cargo.toml 2025-07-21 21:22:22.479442980 +0200
++++ ./Cargo.toml 2025-07-22 08:05:25.200696340 +0200
+@@ -231,20 +231,20 @@
unicode-width = { path = "build/rust/unicode-width" }
# To-be-published changes.
@@ -43,23 +43,21 @@ Upstream-Status: Inappropriate [oe specific]
-any_all_workaround = { git = "https://github.com/hsivonen/any_all_workaround", rev = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80" }
-chardetng = { git = "https://github.com/hsivonen/chardetng", rev = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b" }
-chardetng_c = { git = "https://github.com/hsivonen/chardetng_c", rev = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570" }
--coremidi = { git = "https://github.com/chris-zen/coremidi.git", rev = "fc68464b5445caf111e41f643a2e69ccce0b4f83" }
-cose = { git = "https://github.com/franziskuskiefer/cose-rust", rev = "43c22248d136c8b38fe42ea709d08da6355cf04b" }
+any_all_workaround = { path = "../any-all-workaround" }
+chardetng = { path = "../chardetng" }
+chardetng_c = { path = "../chardetng_c" }
-+coremidi = { path = "../coremidi" }
+cose = { path = "../cose-rust" }
firefox-on-glean = { path = "toolkit/components/glean/api" }
icu_capi = { path = "intl/icu_capi" }
icu_segmenter_data = { path = "intl/icu_segmenter_data" }
libudev-sys = { path = "dom/webauthn/libudev-sys" }
--midir = { git = "https://github.com/mozilla/midir.git", rev = "85156e360a37d851734118104619f86bd18e94c6" }
+-midir = { git = "https://github.com/mozilla/midir.git", rev = "37ad39de3382c2aad0758dab49ba545331a2257d" }
+midir = { path = "../midir" }
# Allow webrender to have a versioned dependency on the older crate on crates.io
# in order to build standalone.
malloc_size_of_derive = { path = "xpcom/rust/malloc_size_of_derive" }
-@@ -259,18 +259,64 @@
+@@ -252,19 +252,65 @@
wr_malloc_size_of = { path = "gfx/wr/wr_malloc_size_of" }
# objc 0.2.7 + fa7ca43b862861dd1cd000d7ad01e6e0266cda13
@@ -67,19 +65,22 @@ Upstream-Status: Inappropriate [oe specific]
+objc = { path = "../objc" }
# application-services overrides to make updating them all simpler.
--context_id = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--relevancy = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--search = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--sql-support = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--suggest = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--sync15 = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--tabs = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--viaduct = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
--webext-storage = { git = "https://github.com/mozilla/application-services", rev = "9b46be5beedb6a1d859014a71bac58e2d722f954" }
+-context_id = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-filter_adult = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-interrupt-support = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-relevancy = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-search = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-sql-support = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-suggest = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-sync15 = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-tabs = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-viaduct = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+-webext-storage = { git = "https://github.com/mozilla/application-services", rev = "4d9d334a28f61f1be84c92007aa0e76f04d165f4" }
+context_id = { path = "../application-services/components/context_id", version = "0.1.0" }
++filter_adult = { path = "../application-services/components/filter_adult", version = "0.1.0" }
+interrupt-support = { path = "../application-services/components/support/interrupt", version = "0.1.0" }
+relevancy = { path = "../application-services/components/relevancy", version = "0.1.0"}
++search = { path = "../application-services/components/search", version = "0.1.0" }
+sql-support = { path = "../application-services/components/support/sql", version = "0.1.0" }
+suggest = { path = "../application-services/components/suggest", version = "0.1.0" }
+sync15 = { path = "../application-services/components/sync15", version = "0.1.0" }
@@ -87,7 +88,6 @@ Upstream-Status: Inappropriate [oe specific]
+error-support = { path = "../application-services/components/support/error", version = "0.1.0" }
+viaduct = { path = "../application-services/components/viaduct", version = "0.1.0" }
+webext-storage = { path = "../application-services/components/webext-storage", version = "0.1.0" }
-+search = { path = "../application-services/components/search", version = "0.1.0" }
allocator-api2 = { path = "third_party/rust/allocator-api2" }
+
@@ -120,13 +120,13 @@ Upstream-Status: Inappropriate [oe specific]
+wgpu-core-deps-windows-linux-android = { path = "../wgpu/wgpu-core/platform-deps/windows-linux-android" }
+
+[patch."https://github.com/mozilla/neqo"]
-+neqo-bin = { path = "../neqo/neqo-bin", version = "0.13.1" }
-+neqo-http3 = { path = "../neqo/neqo-http3", version = "0.13.1" }
-+neqo-common = { path = "../neqo/neqo-common", version = "0.13.1" }
-+neqo-transport = { path = "../neqo/neqo-transport", version = "0.13.1" }
-+neqo-qpack = { path = "../neqo/neqo-qpack", version = "0.13.1" }
-+neqo-crypto = { path = "../neqo/neqo-crypto", version = "0.13.1" }
-+neqo-udp = { path = "../neqo/neqo-udp", version = "0.13.1" }
++neqo-bin = { path = "../neqo/neqo-bin", version = "0.13.4" }
++neqo-http3 = { path = "../neqo/neqo-http3", version = "0.13.4" }
++neqo-common = { path = "../neqo/neqo-common", version = "0.13.4" }
++neqo-transport = { path = "../neqo/neqo-transport", version = "0.13.4" }
++neqo-qpack = { path = "../neqo/neqo-qpack", version = "0.13.4" }
++neqo-crypto = { path = "../neqo/neqo-crypto", version = "0.13.4" }
++neqo-udp = { path = "../neqo/neqo-udp", version = "0.13.4" }
+
+[patch."https://github.com/beurdouche/mls-rs"]
+mls-rs = { path = "../mls-rs/mls-rs" }
@@ -135,14 +135,14 @@ Upstream-Status: Inappropriate [oe specific]
+
+[patch."https://github.com/beurdouche/mls-platform-api"]
+mls-platform-api = { path = "../mls-platform-api" }
---- ./gfx/wgpu_bindings/Cargo.toml 2025-06-25 08:17:52.654944797 +0200
-+++ ./gfx/wgpu_bindings/Cargo.toml 2025-06-26 09:32:15.115001567 +0200
+--- ./gfx/wgpu_bindings/Cargo.toml 2025-07-22 08:08:15.175404433 +0200
++++ ./gfx/wgpu_bindings/Cargo.toml 2025-07-22 08:09:03.897006228 +0200
@@ -16,8 +16,7 @@
[dependencies.wgc]
package = "wgpu-core"
-git = "https://github.com/gfx-rs/wgpu"
--rev = "85001b2436f686451d6d783225311c06b60e6680"
+-rev = "3a5d0f2747fd43a0c4db8d911be1aca510c9ee82"
+path = "../../../wgpu/wgpu-core"
# TODO: remove the replay feature on the next update containing https://github.com/gfx-rs/wgpu/pull/5182
features = [
@@ -152,7 +152,7 @@ Upstream-Status: Inappropriate [oe specific]
[target.'cfg(any(target_os = "macos", target_os = "ios"))'.dependencies.wgc]
package = "wgpu-core"
-git = "https://github.com/gfx-rs/wgpu"
--rev = "85001b2436f686451d6d783225311c06b60e6680"
+-rev = "3a5d0f2747fd43a0c4db8d911be1aca510c9ee82"
+path = "../../../wgpu/wgpu-core"
features = ["metal"]
@@ -160,7 +160,7 @@ Upstream-Status: Inappropriate [oe specific]
[target.'cfg(windows)'.dependencies.wgc]
package = "wgpu-core"
-git = "https://github.com/gfx-rs/wgpu"
--rev = "85001b2436f686451d6d783225311c06b60e6680"
+-rev = "3a5d0f2747fd43a0c4db8d911be1aca510c9ee82"
+path = "../../../wgpu/wgpu-core"
features = ["dx12"]
@@ -168,42 +168,42 @@ Upstream-Status: Inappropriate [oe specific]
[target.'cfg(any(windows, all(unix, not(any(target_os = "macos", target_os = "ios")))))'.dependencies.wgc]
package = "wgpu-core"
-git = "https://github.com/gfx-rs/wgpu"
--rev = "85001b2436f686451d6d783225311c06b60e6680"
+-rev = "3a5d0f2747fd43a0c4db8d911be1aca510c9ee82"
+path = "../../../wgpu/wgpu-core"
features = ["vulkan"]
[dependencies.wgt]
package = "wgpu-types"
-git = "https://github.com/gfx-rs/wgpu"
--rev = "85001b2436f686451d6d783225311c06b60e6680"
+-rev = "3a5d0f2747fd43a0c4db8d911be1aca510c9ee82"
+path = "../../../wgpu/wgpu-types"
[dependencies.wgh]
package = "wgpu-hal"
-git = "https://github.com/gfx-rs/wgpu"
--rev = "85001b2436f686451d6d783225311c06b60e6680"
+-rev = "3a5d0f2747fd43a0c4db8d911be1aca510c9ee82"
+path = "../../../wgpu/wgpu-hal"
features = ["device_lost_panic", "internal_error_panic"]
[target.'cfg(windows)'.dependencies]
---- ./third_party/rust/suggest/Cargo.toml 2025-06-25 08:19:30.377078747 +0200
-+++ ./third_party/rust/suggest/Cargo.toml 2025-06-26 12:25:07.413614054 +0200
-@@ -62,11 +62,9 @@
+--- ./third_party/rust/suggest/Cargo.toml 2025-07-22 08:11:22.954183455 +0200
++++ ./third_party/rust/suggest/Cargo.toml 2025-07-22 08:15:04.683390396 +0200
+@@ -62,11 +62,10 @@
unicase = "2.6"
unicode-normalization = "0.1"
-[dependencies.error-support]
-path = "../support/error"
--
--[dependencies.interrupt-support]
--path = "../support/interrupt"
+interrupt-support = "0.1.0"
+sql-support = "0.1.0"
+error-support = "0.1.0"
+-[dependencies.interrupt-support]
+-path = "../support/interrupt"
+
[dependencies.remote_settings]
path = "../remote_settings"
-@@ -84,9 +82,6 @@
+@@ -84,9 +83,6 @@
version = "1"
features = ["derive"]
@@ -213,7 +213,7 @@ Upstream-Status: Inappropriate [oe specific]
[dependencies.tempfile]
version = "3.2.0"
optional = true
-@@ -102,7 +97,7 @@
+@@ -102,7 +98,7 @@
path = "../viaduct"
[dependencies.viaduct-reqwest]
@@ -222,18 +222,19 @@ Upstream-Status: Inappropriate [oe specific]
optional = true
[dev-dependencies]
-@@ -112,8 +107,8 @@
+@@ -111,10 +107,6 @@
+ hex = "0.4"
itertools = "0.14"
- [dev-dependencies.error-support]
+-[dev-dependencies.error-support]
-path = "../support/error"
- features = ["testing"]
-+version = "0.1.0"
-
+-features = ["testing"]
+-
[dev-dependencies.rc_crypto]
path = "../support/rc_crypto"
---- ./third_party/rust/search/Cargo.toml 2025-06-25 08:23:12.946087187 +0200
-+++ ./third_party/rust/search/Cargo.toml 2025-06-26 12:28:44.748127218 +0200
+
+--- ./third_party/rust/search/Cargo.toml 2025-07-22 08:17:05.929158762 +0200
++++ ./third_party/rust/search/Cargo.toml 2025-07-22 08:17:56.965300165 +0200
@@ -32,12 +32,10 @@
parking_lot = ">=0.11,<=0.12"
serde_json = "1"
@@ -258,3 +259,14 @@ Upstream-Status: Inappropriate [oe specific]
features = ["testing"]
[dev-dependencies.viaduct-reqwest]
+--- ./third_party/rust/filter_adult/Cargo.toml 2025-07-22 08:20:15.886037160 +0200
++++ ./third_party/rust/filter_adult/Cargo.toml 2025-07-22 08:21:01.466229626 +0200
+@@ -46,7 +46,7 @@
+ optional = true
+
+ [dependencies.error-support]
+-path = "../support/error"
++path = "../../../application-services/components/support/error"
+
+ [dependencies.uniffi]
+ version = "0.29.0"
diff --git a/meta-firefox/recipes-browser/firefox/firefox.inc b/meta-firefox/recipes-browser/firefox/firefox.inc
index eb2393ead..1235bcadf 100644
--- a/meta-firefox/recipes-browser/firefox/firefox.inc
+++ b/meta-firefox/recipes-browser/firefox/firefox.inc
@@ -1,7 +1,7 @@
DESCRIPTION ?= "Browser made by Mozilla"
DEPENDS:append = "pulseaudio cbindgen-native clang-native \
- nodejs-native python-zstandard gtk+3 \
+ nodejs-native python3-zstandard gtk+3 \
libevent dbus-glib"
DEPENDS:x86-64:append = " nasm-native "
@@ -10,6 +10,8 @@ DEPENDS:x86:append = " nasm-native "
RDEPENDS:${PN} = "libva libpci"
RDEPENDS:${PN}-dev = "dbus"
+DEPENDS:append:libc-musl = " libexecinfo "
+
# Disable hw crypto support in freebl/nss in case the CPU has no native crypto support (e.g. armv7)
EXTRA_OECONF:append = "${@ ' --nss-disable-arm-crypto=1 ' if 'crypto' not in d.getVar('TUNE_FEATURES') and \
( 'arm' in d.getVar('TARGET_ARCH') or \
@@ -18,6 +20,9 @@ EXTRA_OECONF:append = "${@ ' --nss-disable-arm-crypto=1 ' if 'crypto' not in d.g
LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://toolkit/content/license.html;md5=d58bde4dde94cc14c4ce52499979fe4a;endline=5 \
+ file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
+
CVE_PRODUCT = "mozilla:firefox"
@@ -31,7 +36,7 @@ MOZ_APP_BASE_VERSION = "${@'${PV}'.replace('esr', '')}"
inherit mozilla
# target-c-int-width size for rust target
-# in poky it is defined as 64, however it fails to compile
+# in oe-core is defined as 64, however it fails to compile
# a small handful of crates.
TARGET_C_INT_WIDTH[riscv64gc] = "32"
@@ -48,6 +53,7 @@ SRC_URI += "https://ftp.mozilla.org/pub/firefox/releases/${PV}/source/firefox-${
file://0001-rust-don-t-abort-on-panic.patch \
file://0001-add-musl-support.patch \
file://0001-Add-option-to-disable-arm-hw-crypto-engine.patch \
+ file://freebl-ignore-unused-arguments-during-configure.patch \
file://debian-hacks/Add-another-preferences-directory-for-applications-p.patch \
file://debian-hacks/Avoid-using-vmrs-vmsr-on-armel.patch \
file://debian-hacks/Avoid-wrong-sessionstore-data-to-keep-windows-out-of.patch \
@@ -65,6 +71,15 @@ SRC_URI += "https://ftp.mozilla.org/pub/firefox/releases/${PV}/source/firefox-${
file://wayland/egl/0001-GLLibraryLoader-Use-given-symbol-lookup-function-fir.patch \
file://prefs/Don-t-auto-disable-extensions-in-system-directories.patch \
file://prefs/Set-DPI-to-system-settings.patch \
+ git://github.com/mozilla/application-services.git;protocol=https;branch=main;name=application-services;destsuffix=application-services \
+ git://github.com/mozilla/audioipc;protocol=https;branch=master;name=audioipc;destsuffix=audioipc \
+ git://github.com/jamienicol/glutin;protocol=https;branch=wr;name=glutin;destsuffix=glutin \
+ git://github.com/beurdouche/nss-gk-api;protocol=https;branch=main;name=nss-gk-api;destsuffix=nss-gk-api \
+ git://github.com/beurdouche/mls-rs;protocol=https;branch=main;name=mls-rs;destsuffix=mls-rs \
+ git://github.com/beurdouche/mls-platform-api;protocol=https;branch=main;name=mls-platform-api;destsuffix=mls-platform-api \
+ git://github.com/glandium/rust-objc;protocol=https;branch=ATOMIC_USIZE_INIT;name=objc;destsuffix=objc \
+ git://github.com/servo/osmesa-src;protocol=https;branch=main;name=osmesa-src;destsuffix=osmesa-src \
+ git://github.com/servo/rust-cssparser;protocol=https;branch=main;name=cssparser;destsuffix=cssparser \
git://github.com/hsivonen/chardetng.git;protocol=https;branch=tldquery;name=chardetng;destsuffix=chardetng \
git://github.com/hsivonen/chardetng_c.git;protocol=https;branch=tldquery;name=chardetng_c;destsuffix=chardetng_c \
git://github.com/chris-zen/coremidi.git;protocol=https;branch=master;name=coremidi;destsuffix=coremidi \
@@ -75,34 +90,72 @@ SRC_URI += "https://ftp.mozilla.org/pub/firefox/releases/${PV}/source/firefox-${
git://github.com/jfkthame/mapped_hyph;protocol=https;branch=master;name=mapped_hyph;destsuffix=mapped_hyph \
git://github.com/FirefoxGraphics/wpf-gpu-raster;protocol=https;branch=rust-only;name=wpf-gpu-raster;destsuffix=wpf-gpu-raster \
git://github.com/mozilla/neqo;protocol=https;branch=main;name=neqo;destsuffix=neqo \
- git://github.com/gfx-rs/wgpu.git;protocol=https;branch=trunk;name=wgpu;destsuffix=wgpu \
git://github.com/mozilla/mp4parse-rust;protocol=https;branch=master;name=mp4parse;destsuffix=mp4parse \
git://github.com/hsivonen/any_all_workaround;protocol=https;branch=simdsplit;name=any-all-workaround;destsuffix=any-all-workaround \
git://github.com/franziskuskiefer/cose-rust;protocol=https;branch=master;name=cose-rust;destsuffix=cose-rust \
git://github.com/servo/unicode-bidi;protocol=https;branch=main;name=unicode-bidi;destsuffix=unicode-bidi \
"
+SRCREV_FORMAT .= "_aa-stroke"
+SRCREV_aa-stroke = "a821fa621c2def48e90c82774b4c6563b5a8ea4a"
+
+SRCREV_FORMAT .= "_any-all-woraround"
+SRCREV_any-all-workaround = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
+
+SRCREV_FORMAT .= "_audioipc"
+SRCREV_audioipc = "e6f44a2bd1e57d11dfc737632a9e849077632330"
+
SRCREV_FORMAT .= "_chardetng"
SRCREV_chardetng = "3484d3e3ebdc8931493aa5df4d7ee9360a90e76b"
+
SRCREV_FORMAT .= "_chardetng_c"
SRCREV_chardetng_c = "ed8a4c6f900a90d4dbc1d64b856e61490a1c3570"
+
SRCREV_FORMAT .= "_coremidi"
SRCREV_coremidi = "fc68464b5445caf111e41f643a2e69ccce0b4f83"
-SRCREV_FORMAT .= "_mapped_hyph"
-SRCREV_mapped_hyph = "c7651a0cffff41996ad13c44f689bd9cd2192c01"
-SRCREV_FORMAT .= "_any-all-woraround"
-SRCREV_any-all-workaround = "7fb1b7034c9f172aade21ee1c8554e8d8a48af80"
+
SRCREV_FORMAT .= "_cose-rust"
SRCREV_cose-rust = "43c22248d136c8b38fe42ea709d08da6355cf04b"
-SRCREV_FORMAT .= "_midir"
-SRCREV_midir = "85156e360a37d851734118104619f86bd18e94c6"
+
+SRCREV_FORMAT .= "_cssparser"
+SRCREV_cssparser = "958a3f098acb92ddacdce18a7ef2c4a87ac3326f"
+
+SRCREV_FORMAT .= "_cubeb-coreaudio"
+SRCREV_cubeb-coreaudio = "2407441a2f67341a0e13b4ba6547555e387c671c"
+
SRCREV_FORMAT .= "_cubeb-pulse"
SRCREV_cubeb-pulse = "8678dcab1c287de79c4c184ccc2e065bc62b70e2"
-SRCREV_FORMAT .= "_wpf-gpu-raster"
-SRCREV_wpf-gpu-raster = "99979da091fd58fba8477e7fcdf5ec0727102916"
+
+SRCREV_FORMAT .= "_glutin"
+SRCREV_glutin = "03285da9c14ec56296c2400c781d2c32b80d745a"
+
+SRCREV_FORMAT .= "_mapped_hyph"
+SRCREV_mapped_hyph = "eff105f6ad7ec9b79816cfc1985a28e5340ad14b"
+
+SRCREV_FORMAT .= "_mls-platform-api"
+SRCREV_mls-platform-api = "5d88241b9765cae3669aba21f0946bd3700f7db1"
+
+SRCREV_FORMAT .= "_mls-rs"
+SRCREV_mls-rs = "b747d7efb85a776b97ad8afa8d1b32893fa5efa3"
+
+SRCREV_FORMAT .= "_neqo"
+SRCREV_neqo = "c3179d9f363bf92a908d90e4240b315b9ff72516"
+
+SRCREV_FORMAT .= "_nss-gk-api"
+SRCREV_nss-gk-api = "e48a946811ffd64abc78de3ee284957d8d1c0d63"
+
+SRCREV_FORMAT .= "_objc"
+SRCREV_objc = "4de89f5aa9851ceca4d40e7ac1e2759410c04324"
+
+SRCREV_FORMAT .= "_osmesa-src"
+SRCREV_osmesa-src = "a9c57bae855c8a16c8397c04127f75ab14171c81"
+
SRCREV_FORMAT .= "_unicode-bidi"
SRCREV_unicode-bidi = "ca612daf1c08c53abe07327cb3e6ef6e0a760f0c"
+SRCREV_FORMAT .= "_wpf-gpu-raster"
+SRCREV_wpf-gpu-raster = "99979da091fd58fba8477e7fcdf5ec0727102916"
+
# Add a config file to enable GPU acceleration by default.
SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'gpu', \
'file://prefs/gpu.js', '', d)}"
@@ -121,14 +174,13 @@ SRC_URI += "${@bb.utils.contains('PACKAGECONFIG', 'forbid-multiple-compositors',
', '', d)}"
TOOLCHAIN:pn-firefox = "clang"
-AS = "${CC}"
DISABLE_STATIC = ""
PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "alsa", "alsa", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "", d)} \
${@bb.utils.contains_any("TARGET_ARCH", "x86_64 arm aarch64", "webrtc", "", d)} \
- rust-simd \
+ rust-simd disable-gecko-profiler \
"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
@@ -146,7 +198,7 @@ PACKAGECONFIG[system-nss] = "--with-system-nss,,nss,nss"
PACKAGECONFIG[system-ffi] = "--with-system-ffi,,libffi,libffi"
PACKAGECONFIG[system-icu] = "--with-system-icu,,icu,icu"
PACKAGECONFIG[system-zlib] = "--with-system-zlib,,zlib,zlib"
-PACKAGECONFIG[system-pixman] = "--enable-system-pixman,,pixman,pixman"
+PACKAGECONFIG[system-pixman] = "--with-system-pixman,,pixman,pixman"
PACKAGECONFIG[system-jpeg] = "--with-system-jpeg,,libjpeg-turbo,libjpeg-turbo"
PACKAGECONFIG[system-libevent] = "--with-system-libevent,,libevent,libevent"
PACKAGECONFIG[system-libvpx] = "--with-system-libvpx,,libvpx,libvpx"
@@ -155,11 +207,14 @@ PACKAGECONFIG[system-webp] = "--with-system-webp,,libwebp,libwebp"
PACKAGECONFIG[x11-only] = "--enable-default-toolkit=cairo-gtk3-x11-only,,,,,wayland-only"
PACKAGECONFIG[wayland-only] = "--enable-default-toolkit=cairo-gtk3-wayland-only,,virtual/egl,,,x11-only"
PACKAGECONFIG[disable-gecko-profiler] = "--disable-gecko-profiler,,,"
-
-PACKAGECONFIG:append = " disable-gecko-profiler "
+PACKAGECONFIG[system-av1] = "--with-system-av1,,aom dav1d"
+PACKAGECONFIG[system-pipewire] = "--with-system-pipewire,,pipewire,pipewire"
+PACKAGECONFIG[system-gbm] = "--with-system-gbm,,virtual/libgbm,libgbm"
+PACKAGECONFIG[system-libdrm] = "--with-system-libdrm,,libdrm,libdrm"
DEPENDS:append = '${@bb.utils.contains("PACKAGECONFIG", "disable-sandboxed-libraries", "", " wasi-sdk-native ", d)}'
+LDFLAGS:append = "${@bb.utils.contains('PACKAGECONFIG', 'system-av1', ' -Wl,--undefined-version ', '', d)}"
# At the end of do_configure task cargo-common class takes all
# the git repos from the SRC_URI, and appends them to the end
@@ -198,6 +253,21 @@ python restore_src_uri(){
do_configure[prefuncs] += "save_src_uri"
do_configure[postfuncs] += "restore_src_uri"
+
+do_configure:append(){
+ wayland_only='${@bb.utils.contains("PACKAGECONFIG", "wayland-only", "true", "false", d)}'
+ x11_only='${@bb.utils.contains("PACKAGECONFIG", "x11-only", "true", "false", d)}'
+
+ if $x11_only; then
+ sed -i '/ac_add_options --enable-default-toolkit=cairo-gtk3$/d' ${MOZCONFIG}
+ fi
+
+ if $wayland_only; then
+ sed -i '/ac_add_options --enable-default-toolkit=cairo-gtk3-wayland$/d' ${MOZCONFIG}
+ fi
+}
+
+
do_install:append() {
install -d ${D}${datadir}/applications
install -d ${D}${datadir}/pixmaps
diff --git a/meta-firefox/recipes-browser/firefox/firefox-latest/0001-make-build-reproducible-by-removing-TMPDIR.patch b/meta-firefox/recipes-browser/firefox/firefox/0001-make-build-reproducible-by-removing-TMPDIR.patch
similarity index 100%
rename from meta-firefox/recipes-browser/firefox/firefox-latest/0001-make-build-reproducible-by-removing-TMPDIR.patch
rename to meta-firefox/recipes-browser/firefox/firefox/0001-make-build-reproducible-by-removing-TMPDIR.patch
diff --git a/meta-firefox/recipes-browser/firefox/firefox-latest/bug1545437-enable-to-specify-rust-target.patch b/meta-firefox/recipes-browser/firefox/firefox/bug1545437-enable-to-specify-rust-target.patch
similarity index 100%
rename from meta-firefox/recipes-browser/firefox/firefox-latest/bug1545437-enable-to-specify-rust-target.patch
rename to meta-firefox/recipes-browser/firefox/firefox/bug1545437-enable-to-specify-rust-target.patch
diff --git a/meta-firefox/recipes-browser/firefox/firefox/freebl-ignore-unused-arguments-during-configure.patch b/meta-firefox/recipes-browser/firefox/firefox/freebl-ignore-unused-arguments-during-configure.patch
new file mode 100644
index 000000000..a1dcf768a
--- /dev/null
+++ b/meta-firefox/recipes-browser/firefox/firefox/freebl-ignore-unused-arguments-during-configure.patch
@@ -0,0 +1,24 @@
+Clang sends warnings about unsued command line arguments to stderr during configuring
+freebl (which is enabled for targets without hw crypto support). Gyp only checks
+if there is anything on stderr, but not the content - it throws an error like this:
+
+| 0:35.65 File "/yocto/master/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/firefox/140.0.4/sources/firefox-140.0.4/third_party/python/gyp/pylib/gyp/input.py", line 928, in ExpandVariables
+| 0:35.65 raise GypError("Call to '%s' returned exit status %d while in %s. stderr: %s" %
+| 0:35.65 (contents, p.returncode, build_file, p_stderr))
+| 0:35.65 gyp.common.GypError: Call to 'sh -c "${CC:-cc} -o - -E -dM - ${CFLAGS} < /dev/null | grep __SOFTFP__ > /dev/null && echo -mfloat-abi=softfp || true"' returned exit status 0 while in /yocto/master/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/firefox/140.0.4/sources/firefox-140.0.4/security/nss/lib/freebl/freebl.gyp. stderr: b"arm-poky-linux-gnueabi-clang: warning: -Wl,-O1: 'linker' input unused [-Wunused-command-line-argument]\narm-poky-linux-gnueabi-clang: warning: -Wl,--hash-style=gnu: 'linker' input unused [-Wunused-command-line-argument]\narm-poky-linux-gnueabi-clang: warning: -Wl,--as-needed: 'linker' input unused [-Wunused-command-line-argument]\narm-poky-linux-gnueabi-clang: warning: -Wl,-z,relro,-z,now: 'linker' input unused [-Wunused-command-line-argument]\n" while loading dependencies of /yocto/master/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/firefox/140.0.4/sources/firefox-140.0.4/security/nss/lib/softoken/softoken.gyp while loading dependencies of /yocto/master/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/firefox/140.0.4/sources/firefox-140.0.4/security/nss/nss.gyp while trying to load /yocto/master/build/tmp/work/cortexa15t2hf-neon-poky-linux-gnueabi/firefox/140.0.4/sources/firefox-140.0.4/security/nss/nss.gyp
+
+
+To avoid it, ignore unused agruments during this configuration step.
+
+Upstream-Status: Pending
+--- ./security/nss/lib/freebl/freebl.gyp.orig 2025-07-21 08:37:11.116440837 +0200
++++ ./security/nss/lib/freebl/freebl.gyp 2025-07-21 08:37:24.383635931 +0200
+@@ -949,7 +949,7 @@
+ [ 'target_arch=="arm"', {
+ # When the compiler uses the softfloat ABI, we want to use the compatible softfp ABI when enabling NEON for these objects.
+ # Confusingly, __SOFTFP__ is the name of the define for the softfloat ABI, not for the softfp ABI.
+- 'softfp_cflags': ' /dev/null && echo -mfloat-abi=softfp || true")',
++ 'softfp_cflags': ' /dev/null && echo -mfloat-abi=softfp || true")',
+ }],
+ [ 'target_arch=="ppc64" or target_arch=="ppc64le"', {
+ 'ppc_abi': '"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3ae87c50fd64b6f0942823686871e758"
-SRC_URI = "https://files.pythonhosted.org/packages/4d/70/1f883646641d7ad3944181549949d146fa19e286e892bc013f7ce1579e8f/zstandard-0.21.0.tar.gz"
-SRC_URI[md5sum] = "7baafeb332651d70881ce692edf912b3"
SRC_URI[sha256sum] = "f08e3a10d01a247877e4cb61a82a319ea746c356a3786558bed2481e6c405546"
-S = "${WORKDIR}/zstandard-0.21.0"
-
-RDEPENDS_${PN} = ""
-
-inherit setuptools3
+inherit setuptools3 pypi
diff --git a/meta-firefox/recipes-devtools/wasi-sdk/files/0001-allow-compiling-with-cmake-4.patch b/meta-firefox/recipes-devtools/wasi-sdk/files/0001-allow-compiling-with-cmake-4.patch
new file mode 100644
index 000000000..6f725117e
--- /dev/null
+++ b/meta-firefox/recipes-devtools/wasi-sdk/files/0001-allow-compiling-with-cmake-4.patch
@@ -0,0 +1,25 @@
+From bf31dbdd45582713fd8727ecd3873e656f2b567a Mon Sep 17 00:00:00 2001
+From: Gyorgy Sarvari
+Date: Sun, 20 Jul 2025 20:24:41 +0200
+Subject: [PATCH] allow compiling with cmake 4
+
+Upstream-Status: Pending
+
+Signed-off-by: Gyorgy Sarvari
+---
+ wasi-sdk.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/wasi-sdk.cmake b/wasi-sdk.cmake
+index 83ee9b0..a2ef1b2 100644
+--- a/wasi-sdk.cmake
++++ b/wasi-sdk.cmake
+@@ -1,7 +1,7 @@
+ # Cmake toolchain description file for the Makefile
+
+ # This is arbitrary, AFAIK, for now.
+-cmake_minimum_required(VERSION 3.4.0)
++cmake_minimum_required(VERSION 3.5.0)
+
+ set(CMAKE_SYSTEM_NAME WASI)
+ set(CMAKE_SYSTEM_VERSION 1)
diff --git a/meta-firefox/recipes-devtools/wasi-sdk/wasi-sdk-native_git.bb b/meta-firefox/recipes-devtools/wasi-sdk/wasi-sdk-native_git.bb
index ad83b10fe..dfa98c797 100644
--- a/meta-firefox/recipes-devtools/wasi-sdk/wasi-sdk-native_git.bb
+++ b/meta-firefox/recipes-devtools/wasi-sdk/wasi-sdk-native_git.bb
@@ -10,14 +10,12 @@ inherit native
DEPENDS = "clang-native cmake-native ninja-native"
-S = "${WORKDIR}/git"
-
SRC_URI = "gitsm://github.com/WebAssembly/wasi-sdk.git;protocol=https;branch=main"
-SRC_URI += "file://0001-disable-exceptions-and-bulk-memory.patch"
+SRC_URI += "file://0001-disable-exceptions-and-bulk-memory.patch \
+ file://0001-allow-compiling-with-cmake-4.patch"
SRCREV = "3fb0057a6da0313d18dad241ef7a87aa43f1485c"
-
TOOLCHAIN = "clang"
TOOLCHAIN:class-native = "clang"