diff --git a/info.yml b/info.yml index 03d0e89..22417de 100644 --- a/info.yml +++ b/info.yml @@ -1,6 +1,6 @@ name: firefox description: Fast, Private & Safe Web Browser -version: 152.0.6 +version: "154.0" revision: 1 url: https://www.firefox.com license: MPL-2.0 @@ -55,4 +55,4 @@ downloads: - url: https://archive.mozilla.org/pub/firefox/releases/${BPM_PKG_VERSION}/source/firefox-${BPM_PKG_VERSION}.source.tar.xz extract_to: ${BPM_SOURCE} extract_strip_components: 1 - checksum: ea220c4f8d19d4edaa20e6dadfd3c4aeb07dbed017ade2828fd814d660660f0e + checksum: 36cec5b3688a60f78a6d20dcaee15b598f84e03c66f6587056aead6cb498b99a diff --git a/recipe.sh b/recipe.sh index be50931..b71b297 100644 --- a/recipe.sh +++ b/recipe.sh @@ -6,6 +6,8 @@ # This function is used for putting downloaded files to the correct location or applying patches prepare() { cd "$BPM_SOURCE" + + patch -Np1 -i "$BPM_WORKDIR"/0002-Bug-2053518-Handle-the-oe-linux-rust-targets-added-i.patch # Generate mozconfig cat > mozconfig <<-EOF diff --git a/source-files/0002-Bug-2053518-Handle-the-oe-linux-rust-targets-added-i.patch b/source-files/0002-Bug-2053518-Handle-the-oe-linux-rust-targets-added-i.patch new file mode 100644 index 0000000..f30518a --- /dev/null +++ b/source-files/0002-Bug-2053518-Handle-the-oe-linux-rust-targets-added-i.patch @@ -0,0 +1,107 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Jesse Schwartzentruber +Date: Tue, 28 Jul 2026 17:26:38 +0000 +Subject: [PATCH] Bug 2053518 - Handle the *-oe-linux-* rust targets added in + rustc 1.98 in rust target detection. + r=firefox-build-system-reviewers,glandium + +Differential Revision: https://phabricator.services.mozilla.com/D311145 +--- + build/moz.configure/rust.configure | 29 ++++++++++++++++--- + .../configure/test_toolchain_configure.py | 15 ++++++++++ + 2 files changed, 40 insertions(+), 4 deletions(-) + +diff --git a/build/moz.configure/rust.configure b/build/moz.configure/rust.configure +index a89585f6f81d..aad2cbd379ca 100644 +--- a/build/moz.configure/rust.configure ++++ b/build/moz.configure/rust.configure +@@ -300,6 +300,10 @@ def detect_rustc_target( + elif not candidates: + return None + ++ # config.guess uses the "pc" vendor for x86/x86_64 where rust uses its ++ # generic "unknown" vendor; normalize so we correlate on the right one. ++ vendor = "unknown" if host_or_target.vendor == "pc" else host_or_target.vendor ++ + # We have multiple candidates. There are two cases where we can try to + # narrow further down using extra information from the build system. + # - For windows targets, correlate with the C compiler type +@@ -367,11 +371,19 @@ def detect_rustc_target( + else: + suffix = "" + for p in prefixes: +- for c in candidates: +- if c.rust_target.startswith( +- "{}-".format(p) +- ) and c.rust_target.endswith(suffix): ++ matches = [ ++ c ++ for c in candidates ++ if c.rust_target.startswith("{}-".format(p)) ++ and c.rust_target.endswith(suffix) ++ ] ++ if not matches: ++ continue ++ # As below, correlate on the (normalized) vendor. ++ for c in matches: ++ if c.target.vendor == vendor: + return c.rust_target ++ return matches[0].rust_target + + # See if we can narrow down on the exact alias. + # We use the sub_configure_alias to keep support mingw32 triplets as input. +@@ -400,6 +412,15 @@ def detect_rustc_target( + elif narrowed: + candidates = narrowed + ++ # Correlate on the (normalized) vendor, so vendor-specific targets (e.g. ++ # the *-oe-linux-gnu targets added in rust 1.98) don't shadow the ++ # generic ones for aliases whose vendor doesn't match a rust target. ++ narrowed = [c for c in candidates if c.target.vendor == vendor] ++ if len(narrowed) == 1: ++ return narrowed[0].rust_target ++ elif narrowed: ++ candidates = narrowed ++ + # See if we can narrow down with the raw OS and raw CPU + narrowed = [ + c +diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +index 58a736ee85fc..7dfb0efb9201 100644 +--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py ++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py +@@ -1779,6 +1779,15 @@ def gen_invoke_rustc(version, rustup_wrapper=False): + "xtensa-esp32s3-espidf", + "xtensa-esp32s3-none-elf", + ] ++ # Additional targets from 1.98 ++ if Version(version) >= "1.98.0": ++ rust_targets += [ ++ "aarch64-oe-linux-gnu", ++ "armv7-oe-linux-gnueabihf", ++ "i686-oe-linux-gnu", ++ "riscv64-oe-linux-gnu", ++ "x86_64-oe-linux-gnu", ++ ] + return 0, "\n".join(sorted(rust_targets)), "" + if ( + len(args) == 6 +@@ -1869,6 +1878,7 @@ class RustTest(BaseConfigureTest): + ("x86_64-unknown-linux-android", "x86_64-linux-android"), + ("x86_64-unknown-linux-android21", "x86_64-linux-android"), + ("x86_64-pc-linux-gnu", "x86_64-unknown-linux-gnu"), ++ ("riscv64-unknown-linux-gnu", "riscv64gc-unknown-linux-gnu"), + ("sparcv9-sun-solaris2", "sparcv9-sun-solaris"), + ("x86_64-sun-solaris2", "x86_64-pc-solaris"), + ("x86_64-apple-darwin23.3.0", "x86_64-apple-darwin"), +@@ -1970,5 +1980,10 @@ class RustTest(BaseConfigureTest): + self.assertEqual(self.get_rust_target("wasm32-unknown-wasi"), "wasm32-wasip1") + + ++# Exercises the vendor-specific *-oe-linux-* targets added in rust 1.98. ++class Rust198Test(RustTest): ++ VERSION = "1.98.0" ++ ++ + if __name__ == "__main__": + main()