** Description changed:

- In order to give Ubuntu packagers the most up-to-date toolchain, the toolchain
- team committed to making Rust 1.97 the default version for 26.10.
+ ## FFE ##
+ =========
+ Rationale
+ =========
+ The toolchain team committed to making 1.97 the default Rust version
+ for 26.10. Apart from giving users access to the most up-to-date Rust
+ toolchain available, there are also the following notable changes
+ specific to the Ubuntu package:
+ - rustc-1.97 ships the rust-1.97-llvm and libstd-rust-1.97-dev-wasm32 
packages,
+   which matches the packages Debian makes available and will fix some packages
+   which are currently failing to build on Ubuntu (LP: #2160531).
+ - rustc-1.97 ships the rust-1.97-analyzer package, which has been requested by
+   Ubuntu developers (LP: #2161577). Additionally, Debian ships rust-analyzer,
+   meaning our toolchain will be a closer match to theirs.
+ 
+ Crucially, Rust 1.95 (our current default) and older toolchains suffer from
+ CVE-2026-5222[1] and CVE-2026-5223[2]. Making 1.97 the default will address
+ these security vulnerabilities.
+ 
+ [1]: https://blog.rust-lang.org/2026/05/25/cve-2026-5222/
+ [2]: https://blog.rust-lang.org/2026/05/25/cve-2026-5223/
+ 
+ ================
+ Proposed Changes
+ ================
+ - rust-defaults now points to rustc-1.97 instead of rustc-1.95, meaning
+   that future Rust package builds will use Rust 1.97 instead of 1.95.
+   * The upstream Rust team maintains a strict policy of backwards
+     compatibility, meaning that any future rebuilds of packages are
+     expected to work without issue.
+   * Since Rust applications are statically linked, updating the default
+     toolchain version won't trigger any rebuilds. It will only affect
+     subsequent builds of Rust packages.
+ 
+ - The rust-llvm and libstd-rust-dev-wasm32 binary packages have been added.
+   * This is a purely additive addition; none of the other binary packages are
+     affected in any way.
+   * These are entirely new binary packages, so it's possible they act
+     differently than expected.
+   * However, I have added an autopkgtest (d/tests/build-wasm) to ensure the
+     packages are usable.
+   * Additionally, they do not deviate from how Debian ships and distributes
+     them.
+ 
+ - The rust-analyzer binary package has been added.
+   * This is a purely additive addition; none of the other binary packages are
+     affected in any way.
+   * This is an entirely new binary package, so it's possible it acts 
differently
+     than expected.
+   * However, I have added an autopkgtest (d/tests/rust-analyzer-runs) to 
ensure
+     the package is usable.
+   * Additionally, the package does not deviate from how Debian ships and
+     distributes it.
+ 
+ ================
+ seeded-in-ubuntu
+ ================
+ $ seeded-in-ubuntu rust-defaults
+ cargo-doc (from rust-defaults) is seeded in:
+   ubuntu-budgie: supported
+ libstd-rust-dev (from rust-defaults) is seeded in:
+   ubuntu-budgie: supported
+   ubuntu: supported
+ rust-doc (from rust-defaults) is seeded in:
+   ubuntu-budgie: supported
+ 
+ ==========
+ PPA builds
+ ==========
+ This package builds for all architectures in a PPA:
+ https://launchpad.net/~maxgmr/+archive/ubuntu/rustc-1.97-defaults/+packages
+ 
+ ============
+ autopkgtests
+ ============
+ I'm unable to run PPA autopkgtests at the moment due to infra issues. I have 
run
+ the autopkgtests locally and confirmed they pass. I will populate these fields
+ once the infra is back in working order.
+ amd64:
+ arm64:
+ armhf:
+ ppc64el:
+ s390x:
+ 
+ ==========================
+ Test Rust package rebuilds
+ ==========================
+ Due to the statically-compiled nature of Rust packages, no package transition 
is
+ necessary. However, in order to verify that the new toolchain will be able to
+ build packages properly, I have rebuilt a selection of Rust binaries in a PPA:
+ https://launchpad.net/~maxgmr/+archive/ubuntu/rustc-1.97-defaults-test
+ 
+ The packages built without issue, save for a few exceptions:
+ 
+ - clamav, glycin, librsvg (riscv64 only):
+  * Update from LLVM 21 to 22 introduces upstream LLVM riscv64 loop vectorizer
+    bug. Reported in LP: #2164944. This bug has been fixed in other distros 
which
+    target RISC-V[1], so addressing this issue is not expected to be difficult.
+ - gnome-snapshot:
+  * FTBFS caused by an inconsistent dependency set. Unrelated to Rust 1.97. No
+    action needed.
+ 
+ [1]: https://github.com/openRuyi-Project/openRuyi/pull/1077
+ 
+ ============
+ Install logs
+ ============
+ Cargo installs as the correct version, and all the new packages added in 1.97
+ work properly:
+ 
+ root@stonking-temp:~# apt install -y cargo
+ Installing:                     
+   cargo
+ 
+ Installing dependencies:
+   cargo-1.97   libllvm22         libstd-rust-1.97-dev  rustc
+   libgit2-1.9  libstd-rust-1.97  libz3-4               rustc-1.97
+ 
+ Suggested packages:
+   cargo-1.97-doc  cargo-auditable  llvm-22  lld-22  clang-22
+ [...]
+ 
+ root@stonking-temp:~# cargo --version
+ cargo 1.97.1 (c980f4866 2026-06-30) (built from a source tarball)
+ 
+ root@stonking-temp:~# apt install -y rust-llvm libstd-rust-dev-wasm32
+ Installing:                     
+   libstd-rust-dev-wasm32  rust-llvm
+ 
+ Installing dependencies:
+   clang-22                libgc1                       lld-22
+   clang-tools-22          liblzma-dev                  llvm-22
+   lib32gcc-s1             libncurses-dev               llvm-22-dev
+   lib32stdc++6            libncurses6                  llvm-22-linker-tools
+   libc6-i386              libobjc-15-dev               llvm-22-runtime
+   libclang-common-22-dev  libobjc4                     llvm-22-tools
+   libclang-cpp22          libpfm4                      rust-1.97-llvm
+   libclang-rt-22-dev      libstd-rust-1.97-dev-wasm32  zlib1g-dev
+   libclang1-22            libxml2-dev
+   libffi-dev              libz3-dev
+ [...]
+ 
+ root@stonking-temp:~# cargo new wasmtest && cd wasmtest && cargo build 
--target wasm32-wasip1
+     Creating binary (application) `wasmtest` package
+ note: see more `Cargo.toml` keys and their definitions at 
https://doc.rust-lang.org/cargo/reference/manifest.html
+    Compiling wasmtest v0.1.0 (/root/wasmtest)
+     Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.17s
+ 
+ root@stonking-temp:~/wasmtest# apt install -y rust-analyzer
+ Installing:                     
+   rust-analyzer
+ 
+ Installing dependencies:
+   rust-1.97-analyzer  rust-1.97-src  rust-src
+ [...]
+ 
+ root@stonking-temp:~/wasmtest# rust-analyzer --version
+ rust-analyzer 1.97.1

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2160658

Title:
  [FFE] Upgrade Rust to 1.97.1

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/rust-defaults/+bug/2160658/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to