SUSE-RU-2024:3406-1: moderate: Recommended update for rust, rust1.81

SLE-UPDATES null at suse.de
Mon Sep 23 16:30:30 UTC 2024



# Recommended update for rust, rust1.81

Announcement ID: SUSE-RU-2024:3406-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.81 fixes the following issues:

Changes in rust1.81:

  * Resolve wasm32-wasi build issues

# Version 1.81.0 (2024-09-05)

## Language

  * Abort on uncaught panics in `extern "C"` functions.
  * Fix ambiguous cases of multiple `&` in elided self lifetimes.
  * Stabilize `#[expect]` for lints (RFC 2383), like `#[allow]` with a warning
    if the lint is _not_ fulfilled.
  * Change method resolution to constrain hidden types instead of rejecting
    method candidates.
  * Bump `elided_lifetimes_in_associated_constant` to deny.
  * `offset_from`: always allow pointers to point to the same address.
  * Allow constraining opaque types during subtyping in the trait system.
  * Allow constraining opaque types during various unsizing casts.
  * Deny keyword lifetimes pre-expansion.

## Compiler

  * Make casts of pointers to trait objects stricter.
  * Check alias args for well-formedness even if they have escaping bound vars.
  * Deprecate no-op codegen option `-Cinline-threshold=...`.
  * Re-implement a type-size based limit.
  * Properly account for alignment in `transmute` size checks.
  * Remove the `box_pointers` lint.
  * Ensure the interpreter checks bool/char for validity when they are used in a
    cast.
  * Improve coverage instrumentation for functions containing nested items.
  * Target changes:
  * Add Tier 3 `no_std` Xtensa targets: `xtensa-esp32-none-elf`, `xtensa-
    esp32s2-none-elf`, `xtensa-esp32s3-none-elf`
  * Add Tier 3 `std` Xtensa targets: `xtensa-esp32-espidf`, `xtensa-
    esp32s2-espidf`, `xtensa-esp32s3-espidf`
  * Add Tier 3 i686 Redox OS target: `i686-unknown-redox`
  * Promote `arm64ec-pc-windows-msvc` to Tier 2.
  * Promote `loongarch64-unknown-linux-musl` to Tier 2 with host tools.
  * Enable full tools and profiler for LoongArch Linux targets.
  * Unconditionally warn on usage of `wasm32-wasi`. (see compatibility note
    below)
  * Refer to Rust's [platform support page][platform-support-doc] for more
    information on Rust's tiered platform support.

## Libraries

  * Split core's `PanicInfo` and std's `PanicInfo`. (see compatibility note
    below)
  * Generalize `{Rc,Arc}::make_mut()` to unsized types.
  * Replace sort implementations with stable `driftsort` and unstable `ipnsort`.
    All `slice::sort*` and `slice::select_nth*` methods are expected to see
    significant performance improvements. See the research project
    https://github.com/Voultapher/sort-research-rs for more details.
  * Document behavior of `create_dir_all` with respect to empty paths.
  * Fix interleaved output in the default panic hook when multiple threads panic
    simultaneously.

## Stabilized APIs

  * `core::error` https://doc.rust-lang.org/stable/core/error/index.html
  * `hint::assert_unchecked` https://doc.rust-
    lang.org/stable/core/hint/fn.assert_unchecked.html
  * `fs::exists` https://doc.rust-lang.org/stable/std/fs/fn.exists.html
  * `AtomicBool::fetch_not` https://doc.rust-
    lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.fetch_not
  * `Duration::abs_diff` https://doc.rust-
    lang.org/stable/core/time/struct.Duration.html#method.abs_diff
  * `IoSlice::advance` https://doc.rust-
    lang.org/stable/std/io/struct.IoSlice.html#method.advance
  * `IoSlice::advance_slices` https://doc.rust-
    lang.org/stable/std/io/struct.IoSlice.html#method.advance_slices
  * `IoSliceMut::advance` https://doc.rust-
    lang.org/stable/std/io/struct.IoSliceMut.html#method.advance
  * `IoSliceMut::advance_slices` https://doc.rust-
    lang.org/stable/std/io/struct.IoSliceMut.html#method.advance_slices
  * `PanicHookInfo` https://doc.rust-
    lang.org/stable/std/panic/struct.PanicHookInfo.html
  * `PanicInfo::message` https://doc.rust-
    lang.org/stable/core/panic/struct.PanicInfo.html#method.message
  * `PanicMessage` https://doc.rust-
    lang.org/stable/core/panic/struct.PanicMessage.html

These APIs are now stable in const contexts:

  * `char::from_u32_unchecked` https://doc.rust-
    lang.org/stable/core/char/fn.from_u32_unchecked.html (function)
  * `char::from_u32_unchecked` https://doc.rust-
    lang.org/stable/core/primitive.char.html#method.from_u32_unchecked (method)
  * `CStr::count_bytes` https://doc.rust-
    lang.org/stable/core/ffi/c_str/struct.CStr.html#method.count_bytes
  * `CStr::from_ptr` https://doc.rust-
    lang.org/stable/core/ffi/c_str/struct.CStr.html#method.from_ptr

## Cargo

  * Generated `.cargo_vcs_info.json` is always included, even when `--allow-
    dirty` is passed.
  * Disallow `package.license-file` and `package.readme` pointing to non-
    existent files during packaging.
  * Disallow passing `--release`/`--debug` flag along with the `--profile` flag.
  * Remove `lib.plugin` key support in `Cargo.toml`. Rust plugin support has
    been deprecated for four years and was removed in 1.75.0.

## Compatibility Notes

  * Usage of the `wasm32-wasi` target will now issue a compiler warning and
    request users switch to the `wasm32-wasip1` target instead. Both targets are
    the same, `wasm32-wasi` is only being renamed, and this change to the WASI
    target https://blog.rust-lang.org/2024/04/09/updates-to-rusts-wasi-
    targets.html is being done to enable removing `wasm32-wasi` in January 2025.
  * We have renamed `std::panic::PanicInfo` to `std::panic::PanicHookInfo`. The
    old name will continue to work as an alias, but will result in a deprecation
    warning starting in Rust 1.82.0. `core::panic::PanicInfo` will remain
    unchanged, however, as this is now a _different type_.

The reason is that these types have different roles: `std::panic::PanicHookInfo`
is the argument to the panic hook https://doc.rust-
lang.org/stable/std/panic/fn.set_hook.html in std context (where panics can have
an arbitrary payload), while `core::panic::PanicInfo` is the argument to the
`#[panic_handler]` https://doc.rust-lang.org/nomicon/panic-handler.html in
no_std context (where panics always carry a formatted _message_ ). Separating
these types allows us to add more useful methods to these types, such as
`std::panic::PanicHookInfo::payload_as_str()` and
`core::panic::PanicInfo::message()`. * The new sort implementations may panic if
a type's implementation of `Ord` https://doc.rust-
lang.org/std/cmp/trait.Ord.html (or the given comparison function) does not
implement a total order https://en.wikipedia.org/wiki/Total_order as the trait
requires. `Ord`'s supertraits (`PartialOrd`, `Eq`, and `PartialEq`) must also be
consistent. The previous implementations would not "notice" any problem, but the
new implementations have a good chance of detecting inconsistencies, throwing a
panic rather than returning knowingly unsorted data. * In very rare cases, a
change in the internal evaluation order of the trait solver may result in new
fatal overflow errors.

## 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-3406=1 openSUSE-SLE-15.5-2024-3406=1

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

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

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

## Package List:

  * openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
    * cargo1.81-1.81.0-150500.11.3.1
    * rust-1.81.0-150500.27.21.1
    * cargo-1.81.0-150500.27.21.1
    * rust1.81-debuginfo-1.81.0-150500.11.3.1
    * cargo1.81-debuginfo-1.81.0-150500.11.3.1
  * openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
    * rust1.81-1.81.0-150500.11.3.1
  * openSUSE Leap 15.5 (noarch)
    * rust1.81-src-1.81.0-150500.11.3.1
  * openSUSE Leap 15.5 (nosrc)
    * rust1.81-test-1.81.0-150500.11.3.2
  * openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
    * cargo1.81-1.81.0-150500.11.3.1
    * rust-1.81.0-150500.27.21.1
    * cargo-1.81.0-150500.27.21.1
    * rust1.81-debuginfo-1.81.0-150500.11.3.1
    * cargo1.81-debuginfo-1.81.0-150500.11.3.1
  * openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.81-1.81.0-150500.11.3.1
  * openSUSE Leap 15.6 (noarch)
    * rust1.81-src-1.81.0-150500.11.3.1
  * Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
    * cargo1.81-1.81.0-150500.11.3.1
    * rust-1.81.0-150500.27.21.1
    * cargo-1.81.0-150500.27.21.1
    * rust1.81-debuginfo-1.81.0-150500.11.3.1
    * cargo1.81-debuginfo-1.81.0-150500.11.3.1
  * Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.81-1.81.0-150500.11.3.1
  * Development Tools Module 15-SP5 (noarch)
    * rust1.81-src-1.81.0-150500.11.3.1
  * Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
    * cargo1.81-1.81.0-150500.11.3.1
    * rust-1.81.0-150500.27.21.1
    * cargo-1.81.0-150500.27.21.1
    * rust1.81-debuginfo-1.81.0-150500.11.3.1
    * cargo1.81-debuginfo-1.81.0-150500.11.3.1
  * Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.81-1.81.0-150500.11.3.1
  * Development Tools Module 15-SP6 (noarch)
    * rust1.81-src-1.81.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/20240923/b99a776b/attachment.htm>


More information about the sle-updates mailing list