tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 8d77c22e036376868b7dfc507e7367d18b3e968c
parent 8254d9011bc725d65b428af7b72c77d6c0e3a679
Author: Mike Hommey <mh+mozilla@glandium.org>
Date:   Fri,  2 Jan 2026 14:50:59 +0000

Bug 1986626 - Update minimum Rust version to 1.87. r=firefox-build-system-reviewers,sergesanspaille

Differential Revision: https://phabricator.services.mozilla.com/D275580

Diffstat:
MCargo.toml | 2+-
Mdocs/writing-rust-code/update-policy.md | 11++++++-----
Mpython/mozboot/mozboot/util.py | 2+-
Mpython/mozbuild/mozbuild/test/configure/test_toolchain_configure.py | 79+++++++++++++++++++++++++++++++++----------------------------------------------
Mtaskcluster/kinds/toolchain/rust.yml | 15+--------------
5 files changed, 42 insertions(+), 67 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml @@ -66,7 +66,7 @@ exclude = [ resolver = "2" [workspace.package] -rust-version = "1.82.0" +rust-version = "1.87.0" [workspace.dependencies] # Shared across multiple UniFFI consumers. diff --git a/docs/writing-rust-code/update-policy.md b/docs/writing-rust-code/update-policy.md @@ -173,9 +173,10 @@ Here are the Rust versions for each Firefox version. | Firefox 144 | Rust 1.86.0 | 1.82.0 | 2025 April 3 | 2025 September 11 | 2025 October 14 | Firefox 145 | Rust 1.86.0 | 1.82.0 | 2025 April 3 | 2025 October 9 | 2025 November 11 | Firefox 146 | Rust 1.86.0 | 1.82.0 | 2025 October 30 | 2025 November 6 | 2025 December 9 +| Firefox 147 | Rust 1.90.0 | 1.82.0 | 2025 September 18 | 2025 December 4 | 2026 January 13 | **Estimated** | -| Firefox 147 | Rust 1.90.0 | ? | 2025 September 18 | 2025 December 4 | 2026 January 13 -| Firefox 148 | Rust 1.92.0 | ? | 2025 December 11 | 2026 January 8 | 2026 February 17 -| Firefox 149 | Rust 1.93.0 | ? | 2025 January 22 | 2026 February 19 | 2026 March 24 -| Firefox 150 | Rust 1.94.0 | ? | 2025 March 5 | 2026 March 19 | 2026 April 21 -| Firefox 151 | Rust 1.94.0 | ? | 2025 March 5 | 2026 April 16 | 2026 May 19 +| Firefox 148 | Rust 1.92.0 | 1.87.0 | 2025 December 11 | 2026 January 8 | 2026 February 17 +| Firefox 149 | Rust 1.93.0 | ? | 2026 January 22 | 2026 February 19 | 2026 March 24 +| Firefox 150 | Rust 1.94.0 | ? | 2026 March 5 | 2026 March 19 | 2026 April 21 +| Firefox 151 | Rust 1.94.0 | ? | 2026 March 5 | 2026 April 16 | 2026 May 19 +| Firefox 152 | Rust 1.94.0 | ? | 2026 April 16 | 2026 May 14 | 2026 June 16 diff --git a/python/mozboot/mozboot/util.py b/python/mozboot/mozboot/util.py @@ -13,7 +13,7 @@ from mach.site import PythonVirtualenv from mach.util import get_state_dir # Keep in sync with rust-version in top-level Cargo.toml. -MINIMUM_RUST_VERSION = "1.82.0" +MINIMUM_RUST_VERSION = "1.87.0" def get_tools_dir(srcdir=False): diff --git a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py @@ -1641,7 +1641,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "", ) if args == ("--print", "target-list"): - # Raw list returned by rustc version 1.82 + # Raw list returned by rustc version 1.87 rust_targets = [ "aarch64-apple-darwin", "aarch64-apple-ios", @@ -1653,7 +1653,6 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "aarch64-apple-visionos-sim", "aarch64-apple-watchos", "aarch64-apple-watchos-sim", - "aarch64-fuchsia", "aarch64-kmc-solid_asp3", "aarch64-linux-android", "aarch64-nintendo-switch-freestanding", @@ -1670,7 +1669,11 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "aarch64-unknown-netbsd", "aarch64-unknown-none", "aarch64-unknown-none-softfloat", + "aarch64-unknown-nto-qnx700", "aarch64-unknown-nto-qnx710", + "aarch64-unknown-nto-qnx710_iosock", + "aarch64-unknown-nto-qnx800", + "aarch64-unknown-nuttx", "aarch64-unknown-openbsd", "aarch64-unknown-redox", "aarch64-unknown-teeos", @@ -1681,6 +1684,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "aarch64_be-unknown-linux-gnu", "aarch64_be-unknown-linux-gnu_ilp32", "aarch64_be-unknown-netbsd", + "amdgcn-amd-amdhsa", "arm-linux-androideabi", "arm-unknown-linux-gnueabi", "arm-unknown-linux-gnueabihf", @@ -1689,6 +1693,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "arm64_32-apple-watchos", "arm64e-apple-darwin", "arm64e-apple-ios", + "arm64e-apple-tvos", "arm64ec-pc-windows-msvc", "armeb-unknown-linux-gnueabi", "armebv7r-none-eabi", @@ -1703,6 +1708,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "armv6-unknown-netbsd-eabihf", "armv6k-nintendo-3ds", "armv7-linux-androideabi", + "armv7-rtems-eabihf", "armv7-sony-vita-newlibeabihf", "armv7-unknown-freebsd", "armv7-unknown-linux-gnueabi", @@ -1719,12 +1725,14 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "armv7a-kmc-solid_asp3-eabihf", "armv7a-none-eabi", "armv7a-none-eabihf", + "armv7a-nuttx-eabi", + "armv7a-nuttx-eabihf", "armv7k-apple-watchos", "armv7r-none-eabi", "armv7r-none-eabihf", "armv7s-apple-ios", "armv8r-none-eabihf", - "avr-unknown-gnu-atmega328", + "avr-none", "bpfeb-unknown-none", "bpfel-unknown-none", "csky-unknown-linux-gnuabiv2", @@ -1732,13 +1740,13 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "hexagon-unknown-linux-musl", "hexagon-unknown-none-elf", "i386-apple-ios", - "i586-pc-nto-qnx700", - "i586-pc-windows-msvc", "i586-unknown-linux-gnu", "i586-unknown-linux-musl", "i586-unknown-netbsd", + "i586-unknown-redox", "i686-apple-darwin", "i686-linux-android", + "i686-pc-nto-qnx700", "i686-pc-windows-gnu", "i686-pc-windows-gnullvm", "i686-pc-windows-msvc", @@ -1749,17 +1757,20 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "i686-unknown-linux-musl", "i686-unknown-netbsd", "i686-unknown-openbsd", - "i686-unknown-redox", "i686-unknown-uefi", "i686-uwp-windows-gnu", "i686-uwp-windows-msvc", + "i686-win7-windows-gnu", "i686-win7-windows-msvc", "i686-wrs-vxworks", "loongarch64-unknown-linux-gnu", "loongarch64-unknown-linux-musl", + "loongarch64-unknown-linux-ohos", "loongarch64-unknown-none", "loongarch64-unknown-none-softfloat", "m68k-unknown-linux-gnu", + "m68k-unknown-none-elf", + "mips-mti-none-elf", "mips-unknown-linux-gnu", "mips-unknown-linux-musl", "mips-unknown-linux-uclibc", @@ -1768,6 +1779,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "mips64-unknown-linux-muslabi64", "mips64el-unknown-linux-gnuabi64", "mips64el-unknown-linux-muslabi64", + "mipsel-mti-none-elf", "mipsel-sony-psp", "mipsel-sony-psx", "mipsel-unknown-linux-gnu", @@ -1799,6 +1811,10 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "powerpc64le-unknown-freebsd", "powerpc64le-unknown-linux-gnu", "powerpc64le-unknown-linux-musl", + "riscv32-wrs-vxworks", + "riscv32e-unknown-none-elf", + "riscv32em-unknown-none-elf", + "riscv32emc-unknown-none-elf", "riscv32gc-unknown-linux-gnu", "riscv32gc-unknown-linux-musl", "riscv32i-unknown-none-elf", @@ -1816,6 +1832,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "riscv32imc-unknown-none-elf", "riscv32imc-unknown-nuttx-elf", "riscv64-linux-android", + "riscv64-wrs-vxworks", "riscv64gc-unknown-freebsd", "riscv64gc-unknown-fuchsia", "riscv64gc-unknown-hermit", @@ -1839,6 +1856,8 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "thumbv5te-none-eabi", "thumbv6m-none-eabi", "thumbv6m-nuttx-eabi", + "thumbv7a-nuttx-eabi", + "thumbv7a-nuttx-eabihf", "thumbv7a-pc-windows-msvc", "thumbv7a-uwp-windows-msvc", "thumbv7em-none-eabi", @@ -1858,10 +1877,11 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "thumbv8m.main-nuttx-eabihf", "wasm32-unknown-emscripten", "wasm32-unknown-unknown", - "wasm32-wasi", + "wasm32-wali-linux-musl", "wasm32-wasip1", "wasm32-wasip1-threads", "wasm32-wasip2", + "wasm32v1-none", "wasm64-unknown-unknown", "x86_64-apple-darwin", "x86_64-apple-ios", @@ -1869,9 +1889,11 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "x86_64-apple-tvos", "x86_64-apple-watchos-sim", "x86_64-fortanix-unknown-sgx", - "x86_64-fuchsia", "x86_64-linux-android", + "x86_64-pc-cygwin", "x86_64-pc-nto-qnx710", + "x86_64-pc-nto-qnx710_iosock", + "x86_64-pc-nto-qnx800", "x86_64-pc-solaris", "x86_64-pc-windows-gnu", "x86_64-pc-windows-gnullvm", @@ -1882,6 +1904,7 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "x86_64-unknown-fuchsia", "x86_64-unknown-haiku", "x86_64-unknown-hermit", + "x86_64-unknown-hurd-gnu", "x86_64-unknown-illumos", "x86_64-unknown-l4re-uclibc", "x86_64-unknown-linux-gnu", @@ -1893,9 +1916,11 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "x86_64-unknown-none", "x86_64-unknown-openbsd", "x86_64-unknown-redox", + "x86_64-unknown-trusty", "x86_64-unknown-uefi", "x86_64-uwp-windows-gnu", "x86_64-uwp-windows-msvc", + "x86_64-win7-windows-gnu", "x86_64-win7-windows-msvc", "x86_64-wrs-vxworks", "x86_64h-apple-darwin", @@ -1906,30 +1931,6 @@ def gen_invoke_rustc(version, rustup_wrapper=False): "xtensa-esp32s3-espidf", "xtensa-esp32s3-none-elf", ] - # Additional targets from 1.83 - if Version(version) >= "1.83.0": - rust_targets += [ - "aarch64-unknown-nto-qnx700", - "arm64e-apple-tvos", - "armv7-rtems-eabihf", - "loongarch64-unknown-linux-ohos", - "riscv32-wrs-vxworks", - "riscv32e-unknown-none-elf", - "riscv32em-unknown-none-elf", - "riscv32emc-unknown-none-elf", - "riscv64-wrs-vxworks", - "x86_64-unknown-hurd-gnu", - "x86_64-unknown-trusty", - ] - rust_targets.remove("aarch64-fuchsia") - rust_targets.remove("x86_64-fuchsia") - # Additional targets from 1.84 - if Version(version) >= "1.84.0": - rust_targets += [ - "wasm32v1-none", - ] - rust_targets.remove("wasm32-wasi") - return 0, "\n".join(sorted(rust_targets)), "" if ( len(args) == 6 @@ -2135,20 +2136,6 @@ class RustTest(BaseConfigureTest): ) def test_rust_wasi_target(self): - self.assertEqual(self.get_rust_target("wasm32-unknown-wasi"), "wasm32-wasi") - - -# These tests are expensive, so we don't run them by default. -if False: - - class Rust183Test(RustTest): - VERSION = "1.83.0" - - -class Rust184Test(RustTest): - VERSION = "1.84.0" - - def test_rust_wasi_target(self): self.assertEqual(self.get_rust_target("wasm32-unknown-wasi"), "wasm32-wasip1") diff --git a/taskcluster/kinds/toolchain/rust.yml b/taskcluster/kinds/toolchain/rust.yml @@ -11,20 +11,6 @@ task-defaults: script: repack_rust.py toolchain-artifact: public/build/rustc.tar.zst -linux64-rust-1.82: - treeherder: - symbol: TL(rust-1.82) - run: - arguments: [ - '--channel', '1.82.0', - '--host', 'x86_64-unknown-linux-gnu', - '--target', 'x86_64-unknown-linux-gnu', - '--target', 'i686-unknown-linux-gnu', - '--target', 'wasm32-wasi', - ] - toolchain-alias: - - linux64-rust-base - linux64-rust-1.87: treeherder: symbol: TL(rust-1.87) @@ -38,6 +24,7 @@ linux64-rust-1.87: '--target', 'wasm32-wasip1', ] toolchain-alias: + - linux64-rust-base - linux64-rust-toolchain linux64-rust-macos-1.87: