Recommended update for rust, rust1.65

Announcement ID: SUSE-RU-2022:4131-1
Rating: moderate
References:
Affected Products:
  • Development Tools Module 15-SP3
  • Development Tools Module 15-SP4
  • openSUSE Leap 15.3
  • openSUSE Leap 15.4
  • SUSE Linux Enterprise Desktop 15 SP3
  • SUSE Linux Enterprise Desktop 15 SP4
  • SUSE Linux Enterprise High Performance Computing 15 SP3
  • SUSE Linux Enterprise High Performance Computing 15 SP4
  • SUSE Linux Enterprise Real Time 15 SP3
  • SUSE Linux Enterprise Real Time 15 SP4
  • SUSE Linux Enterprise Server 15 SP3
  • SUSE Linux Enterprise Server 15 SP3 Business Critical Linux 15-SP3
  • SUSE Linux Enterprise Server 15 SP4
  • SUSE Linux Enterprise Server for SAP Applications 15 SP3
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4
  • SUSE Manager Proxy 4.2
  • SUSE Manager Proxy 4.3
  • SUSE Manager Retail Branch Server 4.2
  • SUSE Manager Retail Branch Server 4.3
  • SUSE Manager Server 4.2
  • SUSE Manager Server 4.3

An update that has one fix can now be installed.

Description:

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

This update provides rust1.65 (jsc#SLE-18626)

Version 1.65.0 (2022-11-03)

==========================

Language

  • Error on as casts of enums with #[non_exhaustive] variants
  • Stabilize let else
  • Stabilize generic associated types (GATs)
  • Add lints let_underscore_drop, let_underscore_lock, and let_underscore_must_use from Clippy
  • Stabilize breaking from arbitrary labeled blocks ("label-break-value")
  • Uninitialized integers, floats, and raw pointers are now considered immediate UB sage of MaybeUninit is the correct way to work with uninitialized memory.
  • Stabilize raw-dylib for Windows x86_64, aarch64, and thumbv7a
  • Do not allow Drop impl on foreign ADTs

Compiler

  • Stabilize -Csplit-debuginfo on Linux
  • Use niche-filling optimization even when multiple variants have data
  • Associated type projections are now verified to be well-formed prior to resolving the underlying type
  • Stringify non-shorthand visibility correctly
  • Normalize struct field types when unsizing
  • Update to LLVM 15
  • Fix aarch64 call abi to correctly zeroext when needed
  • debuginfo: Generalize C++-like encoding for enums
  • Add special_module_name lint
  • Add support for generating unique profraw files by default when using -C instrument-coverage
  • Allow dynamic linking for iOS/tvOS targets

Libraries

  • Don't generate PartialEq::ne in derive(PartialEq)
  • Windows RNG: Use BCRYPT_RNG_ALG_HANDLE by default
  • Forbid mixing System with direct system allocator calls
  • Document no support for writing to non-blocking stdio/stderr
  • std::layout::Layout size must not overflow isize::MAX when rounded up to align This also changes the safety conditions on Layout::from_size_align_unchecked.

Stabilized APIs

  • std::backtrace::Backtrace
  • Bound::as_ref
  • std::io::read_to_string
  • <*const T>::cast_mut
  • <*mut T>::cast_const Thse APIs are now stable in const contexts:
  • <*const T>::offset_from
  • <*mut T>::offset_from

Cargo

  • Apply GitHub fast path even for partial hashes
  • Do not add home bin path to PATH if it's already there
  • Take priority into account within the pending queue This slightly optimizes job scheduling by Cargo, with typically small improvements on larger crate graph builds.

Compatibility Notes

  • std::layout::Layout size must not overflow isize::MAX when rounded up to align This also changes the safety conditions on Layout::from_size_align_unchecked.
  • PollFn now only implements Unpin if the closure is Unpin This is a possible breaking change if users were relying on the blanket unpin implementation. See discussion on the PR for details of why this change was made.
  • Drop ExactSizeIterator impl from std::char::EscapeAscii This is a backwards-incompatible change to the standard library's surface area, but is unlikely to affect real world usage.
  • Do not consider a single repeated lifetime eligible for elision in the return type This behavior was unintentionally changed in 1.64.0, and this release reverts that change by making this an error again.
  • Reenable disabled early syntax gates as future-incompatibility lints
  • Update the minimum external LLVM to 13
  • Don't duplicate file descriptors into stdio fds
  • Sunset RLS
  • Deny usage of #![cfg_attr(..., crate_type = ...)] to set the crate type This strengthens the forward compatibility lint deprecated_cfg_attr_crate_type_name to deny.
  • llvm-has-rust-patches allows setting the build system to treat the LLVM as having Rust-specific patches This option may need to be set for distributions that are building Rust with a patched LLVM via llvm-config, not the built-in LLVM.

Changes in rust:

  • Update to version 1.65.0 - for details see the rust1.65 package
  • Enable armv6 again - bsc#1196328

This update also ships "cargo-auditable", a tool to embed crate information into ELF binaries.

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 SUSE-2022-4131=1
  • openSUSE Leap 15.4
    zypper in -t patch openSUSE-SLE-15.4-2022-4131=1
  • Development Tools Module 15-SP3
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP3-2022-4131=1
  • Development Tools Module 15-SP4
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP4-2022-4131=1

Package List:

  • openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
    • cargo1.65-1.65.0-150300.7.3.1
    • cargo-auditable-0.5.2~0-150300.7.3.1
    • cargo1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-1.65.0-150300.7.3.1
    • rust-1.65.0-150300.21.38.1
    • cargo-auditable-debugsource-0.5.2~0-150300.7.3.1
    • cargo-auditable-debuginfo-0.5.2~0-150300.7.3.1
    • cargo-1.65.0-150300.21.38.1
  • openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64)
    • cargo1.65-1.65.0-150300.7.3.1
    • cargo-auditable-0.5.2~0-150300.7.3.1
    • cargo1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-1.65.0-150300.7.3.1
    • rust-1.65.0-150300.21.38.1
    • cargo-auditable-debugsource-0.5.2~0-150300.7.3.1
    • cargo-auditable-debuginfo-0.5.2~0-150300.7.3.1
    • cargo-1.65.0-150300.21.38.1
  • Development Tools Module 15-SP3 (aarch64 ppc64le s390x x86_64)
    • cargo1.65-1.65.0-150300.7.3.1
    • cargo-auditable-0.5.2~0-150300.7.3.1
    • cargo1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-1.65.0-150300.7.3.1
    • rust-1.65.0-150300.21.38.1
    • cargo-auditable-debugsource-0.5.2~0-150300.7.3.1
    • cargo-auditable-debuginfo-0.5.2~0-150300.7.3.1
    • cargo-1.65.0-150300.21.38.1
  • Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
    • cargo1.65-1.65.0-150300.7.3.1
    • cargo-auditable-0.5.2~0-150300.7.3.1
    • cargo1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-debuginfo-1.65.0-150300.7.3.1
    • rust1.65-1.65.0-150300.7.3.1
    • rust-1.65.0-150300.21.38.1
    • cargo-auditable-debugsource-0.5.2~0-150300.7.3.1
    • cargo-auditable-debuginfo-0.5.2~0-150300.7.3.1
    • cargo-1.65.0-150300.21.38.1

References: