Recommended update for rust, rust1.88

Announcement ID: SUSE-RU-2025:39484-1
Release Date: 2025-07-17T15:06:50Z
Rating: moderate
References:
Affected Products:
  • Development Tools Module 15-SP6
  • Development Tools Module 15-SP7
  • openSUSE Leap 15.3
  • openSUSE Leap 15.4
  • openSUSE Leap 15.5
  • openSUSE Leap 15.6
  • SUSE Linux Enterprise Desktop 15 SP6
  • SUSE Linux Enterprise Desktop 15 SP7
  • SUSE Linux Enterprise High Performance Computing 15 SP4
  • SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4
  • SUSE Linux Enterprise High Performance Computing LTSS 15 SP4
  • SUSE Linux Enterprise Real Time 15 SP6
  • SUSE Linux Enterprise Real Time 15 SP7
  • SUSE Linux Enterprise Server 15 SP4
  • SUSE Linux Enterprise Server 15 SP4 LTSS
  • SUSE Linux Enterprise Server 15 SP6
  • SUSE Linux Enterprise Server 15 SP7
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4
  • SUSE Linux Enterprise Server for SAP Applications 15 SP6
  • SUSE Linux Enterprise Server for SAP Applications 15 SP7

An update that contains two features can now be installed.

Description:

This update for rust fixes the following issues:

  • Update to version 1.88.0 - for details see the rust1.88 package

Version 1.88.0 (2025-06-26)

Language:

  • Stabilize #![feature(let_chains)] in the 2024 edition. This feature allows &&-chaining let statements inside if and while, allowing intermixture with boolean expressions. The patterns inside the let sub-expressions can be irrefutable or refutable.
  • Stabilize #![feature(naked_functions)]. Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function.
  • Stabilize #![feature(cfg_boolean_literals)]. This allows using boolean literals as cfg predicates, e.g. #[cfg(true)] and #[cfg(false)].
  • Fully de-stabilize the #[bench] attribute. Usage of #[bench] without #![feature(custom_test_frameworks)] already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
  • Add warn-by-default dangerous_implicit_autorefs lint against implicit autoref of raw pointer dereference. The lint will be bumped to deny-by-default in the next version of Rust.
  • Add invalid_null_arguments lint to prevent invalid usage of null pointers. This lint is uplifted from clippy::invalid_null_ptr_usage.
  • Change trait impl candidate preference for builtin impls and trivial where-clauses.
  • Check types of generic const parameter defaults

Compiler:

  • Stabilize -Cdwarf-version for selecting the version of DWARF debug information to generate.

Platform Support:

  • Demote i686-pc-windows-gnu to Tier 2.

Refer to Rust's platform support page for more information on Rust's tiered platform support.

Libraries:

  • Remove backticks from #[should_panic] test failure message.
  • Guarantee that [T; N]::from_fn is generated in order of increasing indices, for those passing it a stateful closure.
  • The libtest flag --nocapture is deprecated in favor of the more consistent --no-capture flag.
  • Guarantee that {float}::NAN is a quiet NaN.

Stabilized APIs:

  • Cell::update https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.update
  • impl Default for *const T https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*const+T
  • impl Default for *mut T https://doc.rust-lang.org/nightly/std/primitive.pointer.html#impl-Default-for-*mut+T
  • HashMap::extract_if https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.extract_if
  • HashSet::extract_if https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.extract_if
  • proc_macro::Span::line https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.line
  • proc_macro::Span::column https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.column
  • proc_macro::Span::start https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.start
  • proc_macro::Span::end https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.end
  • proc_macro::Span::file https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.file
  • proc_macro::Span::local_file https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.local_file

These previously stable APIs are now stable in const contexts:

  • NonNull<T>::replace https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.replace
  • <*mut T>::replace https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.replace
  • std::ptr::swap_nonoverlapping
  • Cell::{replace, get, get_mut, from_mut, as_slice_of_cells}

Cargo:

  • Stabilize automatic garbage collection.
  • use zlib-rs for gzip compression in rust code

Rustdoc:

  • Doctests can be ignored based on target names using ignore-* attributes.
  • Stabilize the --test-runtool and --test-runtool-arg CLI options to specify a program (like qemu) and its arguments to run a doctest.

Compatibility Notes:

  • Finish changing the internal representation of pasted tokens. Certain invalid declarative macros that were previously accepted in obscure circumstances are now correctly rejected by the compiler. Use of a tt fragment specifier can often fix these macros.
  • Fully de-stabilize the #[bench] attribute. Usage of #[bench] without #![feature(custom_test_frameworks)] already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error.
  • Fix borrow checking some always-true patterns. The borrow checker was overly permissive in some cases, allowing programs that shouldn't have compiled.
  • Update the minimum external LLVM to 19.
  • Make it a hard error to use a vector type with a non-Rust ABI without enabling the required target feature.

Patch Instructions:

To install this SUSE update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
Alternatively you can run the command listed for your product:

  • openSUSE Leap 15.3
    zypper in -t patch 39484=1
  • openSUSE Leap 15.4
    zypper in -t patch 39484=1
  • openSUSE Leap 15.5
    zypper in -t patch 39484=1
  • openSUSE Leap 15.6
    zypper in -t patch openSUSE-SLE-15.6-2025-39484=1
  • Development Tools Module 15-SP6
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2025-39484=1
  • Development Tools Module 15-SP7
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP7-2025-39484=1
  • SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4
    zypper in -t patch SUSE-SLE-Product-HPC-15-SP4-ESPOS-2025-39484=1
  • SUSE Linux Enterprise High Performance Computing LTSS 15 SP4
    zypper in -t patch SUSE-SLE-Product-HPC-15-SP4-LTSS-2025-39484=1
  • SUSE Linux Enterprise Server 15 SP4 LTSS
    zypper in -t patch SUSE-SLE-Product-SLES-15-SP4-LTSS-2025-39484=1
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4
    zypper in -t patch SUSE-SLE-Product-SLES_SAP-15-SP4-2025-39484=1

Package List:

  • openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
    • rust-1.88.0-150300.21.60.1
    • cargo-1.88.0-150300.21.60.1
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586 nosrc)
    • rust1.88-1.88.0-150300.7.3.2
  • openSUSE Leap 15.3 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • openSUSE Leap 15.3 (nosrc)
    • rust1.88-test-1.88.0-150300.7.3.2
  • openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 i586)
    • rust-1.88.0-150400.24.51.2
    • cargo-1.88.0-150400.24.51.2
  • openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
    • rust-1.88.0-150500.27.43.1
    • cargo-1.88.0-150500.27.43.1
  • openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
    • rust-1.88.0-150500.27.43.1
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150500.27.43.1
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.88-1.88.0-150300.7.3.2
  • openSUSE Leap 15.6 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
    • rust-1.88.0-150500.27.43.1
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150500.27.43.1
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.88-1.88.0-150300.7.3.2
  • Development Tools Module 15-SP6 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • Development Tools Module 15-SP7 (aarch64 ppc64le s390x x86_64)
    • rust-1.88.0-150500.27.43.1
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150500.27.43.1
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • Development Tools Module 15-SP7 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.88-1.88.0-150300.7.3.2
  • Development Tools Module 15-SP7 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (aarch64 x86_64)
    • rust-1.88.0-150400.24.51.2
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150400.24.51.2
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (aarch64 nosrc x86_64)
    • rust1.88-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise High Performance Computing ESPOS 15 SP4 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (aarch64 x86_64)
    • rust-1.88.0-150400.24.51.2
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150400.24.51.2
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (aarch64 nosrc x86_64)
    • rust1.88-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise High Performance Computing LTSS 15 SP4 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise Server 15 SP4 LTSS (aarch64 ppc64le s390x x86_64)
    • rust-1.88.0-150400.24.51.2
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150400.24.51.2
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise Server 15 SP4 LTSS (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.88-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise Server 15 SP4 LTSS (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4 (ppc64le x86_64)
    • rust-1.88.0-150400.24.51.2
    • rust1.88-debuginfo-1.88.0-150300.7.3.2
    • cargo1.88-1.88.0-150300.7.3.2
    • cargo-1.88.0-150400.24.51.2
    • cargo1.88-debuginfo-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4 (nosrc ppc64le x86_64)
    • rust1.88-1.88.0-150300.7.3.2
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4 (noarch)
    • rust1.88-src-1.88.0-150300.7.3.2

References: