SUSE-RU-2024:2188-1: moderate: Recommended update for rust, rust1.79

SLE-UPDATES null at suse.de
Mon Aug 19 12:39:01 UTC 2024



# Recommended update for rust, rust1.79

Announcement ID: SUSE-RU-2024:2188-1  
Rating: moderate  
References:

  * jsc#SLE-18626

  
Affected Products:

  * Development Tools Module 15-SP5
  * Development Tools Module 15-SP6
  * openSUSE Leap 15.5
  * openSUSE Leap 15.6
  * SUSE Linux Enterprise Desktop 15 SP5
  * SUSE Linux Enterprise Desktop 15 SP6
  * SUSE Linux Enterprise High Performance Computing 15 SP5
  * SUSE Linux Enterprise Real Time 15 SP5
  * SUSE Linux Enterprise Real Time 15 SP6
  * SUSE Linux Enterprise Server 15 SP5
  * SUSE Linux Enterprise Server 15 SP6
  * SUSE Linux Enterprise Server for SAP Applications 15 SP5
  * SUSE Linux Enterprise Server for SAP Applications 15 SP6

  
  
An update that contains one feature can now be installed.

## Description:

This update for rust, rust1.79 fixes the following issues:

Changes in rust1.79:

# Version 1.79.0 (2024-06-13)

## Language

  * Stabilize inline `const {}` expressions.
  * Prevent opaque types being instantiated twice with different regions within
    the same function.
  * Stabilize WebAssembly target features that are in phase 4 and 5.
  * Add the `redundant_lifetimes` lint to detect lifetimes which are
    semantically redundant.
  * Stabilize the `unnameable_types` lint for public types that can't be named.
  * Enable debuginfo in macros, and stabilize `-C collapse-macro-debuginfo` and
    `#[collapse_debuginfo]`.
  * Propagate temporary lifetime extension into `if` and `match` expressions.
  * Restrict promotion of `const fn` calls.
  * Warn against refining impls of crate-private traits with
    `refining_impl_trait` lint.
  * Stabilize associated type bounds (RFC 2289).
  * Stabilize importing `main` from other modules or crates.
  * Check return types of function types for well-formedness
  * Rework `impl Trait` lifetime inference
  * Change inductive trait solver cycles to be ambiguous

## Compiler

  * Define `-C strip` to only affect binaries, not artifacts like `.pdb`.
  * Stabilize `-Crelro-level` for controlling runtime link hardening.
  * Stabilize checking of `cfg` names and values at compile-time with `--check-
    cfg`. _Note that this only stabilizes the compiler part, the Cargo part is
    still unstable in this release._
  * Add `aarch64-apple-visionos` and `aarch64-apple-visionos-sim` tier 3
    targets.
  * Add `riscv32ima-unknown-none-elf` tier 3 target.
  * Promote several Windows targets to tier 2: `aarch64-pc-windows-gnullvm`,
    `i686-pc-windows-gnullvm`, and `x86_64-pc-windows-gnullvm`.

Refer to Rust's [platform support page][platform-support-doc] for more
information on Rust's tiered platform support.

## Libraries

  * Implement `FromIterator` for `(impl Default + Extend, impl Default +
    Extend)`.
  * Implement `{Div,Rem}Assign<NonZero<X>>` on `X`.
  * Document overrides of `clone_from()` in core/std.
  * Link MSVC default lib in core.
  * Caution against using `transmute` between pointers and integers.
  * Enable frame pointers for the standard library.

## Stabilized APIs

  * `{integer}::unchecked_add` https://doc.rust-
    lang.org/stable/core/primitive.i32.html#method.unchecked_add)
  * `{integer}::unchecked_mul` https://doc.rust-
    lang.org/stable/core/primitive.i32.html#method.unchecked_mul)
  * `{integer}::unchecked_sub` https://doc.rust-
    lang.org/stable/core/primitive.i32.html#method.unchecked_sub)
  * `<[T]>::split_at_unchecked` https://doc.rust-
    lang.org/stable/core/primitive.slice.html#method.split_at_unchecked)
  * `<[T]>::split_at_mut_unchecked` https://doc.rust-
    lang.org/stable/core/primitive.slice.html#method.split_at_mut_unchecked)
  * `<[u8]>::utf8_chunks` https://doc.rust-
    lang.org/stable/core/primitive.slice.html#method.utf8_chunks)
  * `str::Utf8Chunks` https://doc.rust-
    lang.org/stable/core/str/struct.Utf8Chunks.html)
  * `str::Utf8Chunk` https://doc.rust-
    lang.org/stable/core/str/struct.Utf8Chunk.html)
  * `<*const T>::is_aligned` https://doc.rust-
    lang.org/stable/core/primitive.pointer.html#method.is_aligned)
  * `<*mut T>::is_aligned` https://doc.rust-
    lang.org/stable/core/primitive.pointer.html#method.is_aligned-1)
  * `NonNull::is_aligned` https://doc.rust-
    lang.org/stable/core/ptr/struct.NonNull.html#method.is_aligned)
  * `<*const [T]>::len` https://doc.rust-
    lang.org/stable/core/primitive.pointer.html#method.len)
  * `<*mut [T]>::len` https://doc.rust-
    lang.org/stable/core/primitive.pointer.html#method.len-1)
  * `<*const [T]>::is_empty` https://doc.rust-
    lang.org/stable/core/primitive.pointer.html#method.is_empty)
  * `<*mut [T]>::is_empty` https://doc.rust-
    lang.org/stable/core/primitive.pointer.html#method.is_empty-1)
  * `NonNull::<[T]>::is_empty` https://doc.rust-
    lang.org/stable/core/ptr/struct.NonNull.html#method.is_empty)
  * `CStr::count_bytes` https://doc.rust-
    lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes)
  * `io::Error::downcast` https://doc.rust-
    lang.org/stable/std/io/struct.Error.html#method.downcast)
  * `num::NonZero<T>` https://doc.rust-
    lang.org/stable/core/num/struct.NonZero.html)
  * `path::absolute` https://doc.rust-lang.org/stable/std/path/fn.absolute.html)
  * `proc_macro::Literal::byte_character` https://doc.rust-
    lang.org/stable/proc_macro/struct.Literal.html#method.byte_character)
  * `proc_macro::Literal::c_string` https://doc.rust-
    lang.org/stable/proc_macro/struct.Literal.html#method.c_string)

These APIs are now stable in const contexts:

  * `Atomic*::into_inner` https://doc.rust-
    lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.into_inner)
  * `io::Cursor::new` https://doc.rust-
    lang.org/stable/std/io/struct.Cursor.html#method.new)
  * `io::Cursor::get_ref` https://doc.rust-
    lang.org/stable/std/io/struct.Cursor.html#method.get_ref)
  * `io::Cursor::position` https://doc.rust-
    lang.org/stable/std/io/struct.Cursor.html#method.position)
  * `io::empty` https://doc.rust-lang.org/stable/std/io/fn.empty.html)
  * `io::repeat` https://doc.rust-lang.org/stable/std/io/fn.repeat.html)
  * `io::sink` https://doc.rust-lang.org/stable/std/io/fn.sink.html)
  * `panic::Location::caller` https://doc.rust-
    lang.org/stable/std/panic/struct.Location.html#method.caller)
  * `panic::Location::file` https://doc.rust-
    lang.org/stable/std/panic/struct.Location.html#method.file)
  * `panic::Location::line` https://doc.rust-
    lang.org/stable/std/panic/struct.Location.html#method.line)
  * `panic::Location::column` https://doc.rust-
    lang.org/stable/std/panic/struct.Location.html#method.column)

## Cargo

  * Prevent dashes in `lib.name`, always normalizing to `_`.
  * Stabilize MSRV-aware version requirement selection in `cargo add`.
  * Switch to using `gitoxide` by default for listing files.
  * Error on `[project]` in Edition 2024; `cargo fix --edition` will change it
    to `[package]`.

## Rustdoc

  * Always display stability version even if it's the same as the containing
    item.
  * Show a single search result for items with multiple paths.
  * Support typing `/` in docs to begin a search.

## Compatibility Notes

  * Update the minimum external LLVM to 17.
  * `RustcEncodable` and `RustcDecodable` are soft-destabilized, to be removed
    from the prelude in next edition.
  * The `wasm_c_abi` future-incompatibility lint will warn about use of the non-
    spec-compliant C ABI. Use `wasm-bindgen v0.2.88` to generate forward-
    compatible bindings.
  * Check return types of function types for well-formedness

## 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.5  
    zypper in -t patch SUSE-2024-2188=1 openSUSE-SLE-15.5-2024-2188=1

  * openSUSE Leap 15.6  
    zypper in -t patch openSUSE-SLE-15.6-2024-2188=1

  * Development Tools Module 15-SP5  
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2024-2188=1

  * Development Tools Module 15-SP6  
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP6-2024-2188=1

## Package List:

  * openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
    * rust1.79-debuginfo-1.79.0-150500.11.3.1
    * cargo1.79-1.79.0-150500.11.3.1
    * cargo-1.79.0-150500.27.15.1
    * rust-1.79.0-150500.27.15.1
    * cargo1.79-debuginfo-1.79.0-150500.11.3.1
  * openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
    * rust1.79-1.79.0-150500.11.3.1
  * openSUSE Leap 15.5 (nosrc)
    * rust1.79-test-1.79.0-150500.11.3.1
  * openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
    * rust1.79-debuginfo-1.79.0-150500.11.3.1
    * cargo1.79-1.79.0-150500.11.3.1
    * cargo-1.79.0-150500.27.15.1
    * rust-1.79.0-150500.27.15.1
    * cargo1.79-debuginfo-1.79.0-150500.11.3.1
  * openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.79-1.79.0-150500.11.3.1
  * Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
    * rust1.79-debuginfo-1.79.0-150500.11.3.1
    * cargo1.79-1.79.0-150500.11.3.1
    * cargo-1.79.0-150500.27.15.1
    * rust-1.79.0-150500.27.15.1
    * cargo1.79-debuginfo-1.79.0-150500.11.3.1
  * Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.79-1.79.0-150500.11.3.1
  * Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
    * rust1.79-debuginfo-1.79.0-150500.11.3.1
    * cargo1.79-1.79.0-150500.11.3.1
    * cargo-1.79.0-150500.27.15.1
    * rust-1.79.0-150500.27.15.1
    * cargo1.79-debuginfo-1.79.0-150500.11.3.1
  * Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.79-1.79.0-150500.11.3.1

## References:

  * https://jira.suse.com/browse/SLE-18626

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.suse.com/pipermail/sle-updates/attachments/20240819/4b8fee42/attachment.htm>


More information about the sle-updates mailing list