Recommended update for rust, rust1.70

Announcement ID: SUSE-RU-2023:2559-1
Rating: moderate
References:
Affected Products:
  • Development Tools Module 15-SP4
  • Development Tools Module 15-SP5
  • openSUSE Leap 15.4
  • openSUSE Leap 15.5
  • SUSE Linux Enterprise Desktop 15 SP4
  • SUSE Linux Enterprise Desktop 15 SP5
  • SUSE Linux Enterprise High Performance Computing 15 SP4
  • SUSE Linux Enterprise High Performance Computing 15 SP5
  • SUSE Linux Enterprise Real Time 15 SP4
  • SUSE Linux Enterprise Real Time 15 SP5
  • SUSE Linux Enterprise Server 15 SP4
  • SUSE Linux Enterprise Server 15 SP5
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4
  • SUSE Linux Enterprise Server for SAP Applications 15 SP5
  • SUSE Manager Proxy 4.3
  • SUSE Manager Retail Branch Server 4.3
  • SUSE Manager Server 4.3

An update that can now be installed.

Description:

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

Changes in rust:

  • Update to version 1.70.0 - for details see the rust1.70 package

Changes in rust1.70:

Version 1.70.0 (2023-06-01)

Language

  • Relax ordering rules for asm! operands
  • Properly allow macro expanded format_args invocations to uses captures
  • Lint ambiguous glob re-exports
  • Perform const and unsafe checking for expressions in let _ = expr position.

Compiler

  • Extend -Cdebuginfo with new options and named aliases This provides a smaller version of debuginfo for cases that only need line number information (-Cdebuginfo=line-tables-only), which may eventually become the default for -Cdebuginfo=1.
  • Make unused_allocation lint against Box::new too
  • Detect uninhabited types early in const eval
  • Switch to LLD as default linker for {arm,thumb}v4t-none-eabi
  • Add tier 3 target loongarch64-unknown-linux-gnu
  • Add tier 3 target for i586-pc-nto-qnx700 (QNX Neutrino RTOS, version 7.0)
  • Insert alignment checks for pointer dereferences as debug assertions This catches undefined behavior at runtime, and may cause existing code to fail.

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

Libraries

  • Document NonZeroXxx layout guarantees
  • Windows: make Command prefer non-verbatim paths
  • Implement Default for some alloc/core iterators
  • Fix handling of trailing bare CR in str::lines
  • allow negative numeric literals in concat!
  • Add documentation about the memory layout of Cell
  • Use partial_cmp to implement tuple lt/le/ge/gt
  • Stabilize atomic_as_ptr
  • Stabilize nonnull_slice_from_raw_parts
  • Partial stabilization of once_cell
  • Stabilize nonzero_min_max
  • Flatten/inline format_args!() and (string and int) literal arguments into format_args!()
  • Stabilize movbe target feature
  • don't splice from files into pipes in io::copy
  • Add a builtin unstable FnPtr trait that is implemented for all function pointers This extends Debug, Pointer, Hash, PartialEq, Eq, PartialOrd, and Ord implementations for function pointers with all ABIs.

Stabilized APIs

  • NonZero*::MIN/MAX
  • BinaryHeap::retain
  • Default for std::collections::binary_heap::IntoIter
  • Default for std::collections::btree_map::{IntoIter, Iter, IterMut}
  • Default for std::collections::btree_map::{IntoKeys, Keys}
  • Default for std::collections::btree_map::{IntoValues, Values}
  • Default for std::collections::btree_map::Range
  • Default for std::collections::btree_set::{IntoIter, Iter}
  • Default for std::collections::btree_set::Range
  • Default for std::collections::linked_list::{IntoIter, Iter, IterMut}
  • Default for std::vec::IntoIter
  • Default for std::iter::Chain
  • Default for std::iter::Cloned
  • Default for std::iter::Copied
  • Default for std::iter::Enumerate
  • Default for std::iter::Flatten
  • Default for std::iter::Fuse
  • Default for std::iter::Rev
  • Default for std::slice::Iter
  • Default for std::slice::IterMut
  • Rc::into_inner
  • Arc::into_inner
  • std::cell::OnceCell
  • Option::is_some_and
  • NonNull::slice_from_raw_parts
  • Result::is_ok_and
  • Result::is_err_and
  • std::sync::atomic::Atomic*::as_ptr
  • std::io::IsTerminal
  • std::os::linux::net::SocketAddrExt
  • std::os::unix::net::UnixDatagram::bind_addr
  • std::os::unix::net::UnixDatagram::connect_addr
  • std::os::unix::net::UnixDatagram::send_to_addr
  • std::os::unix::net::UnixListener::bind_addr
  • std::path::Path::as_mut_os_str
  • std::sync::OnceLock

Cargo

  • Add CARGO_PKG_README
  • Make sparse the default protocol for crates.io
  • Accurately show status when downgrading dependencies
  • Use registry.default for login/logout
  • Stabilize cargo logout

Misc

  • Stabilize rustdoc --test-run-directory

Compatibility Notes

  • Prevent stable libtest from supporting -Zunstable-options
  • Perform const and unsafe checking for expressions in let _ = expr position.
  • WebAssembly targets enable sign-ext and mutable-globals features in codegen This may cause incompatibility with older execution environments.
  • Insert alignment checks for pointer dereferences as debug assertions This catches undefined behavior at runtime, and may cause existing code to fail.

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:

  • Development Tools Module 15-SP5
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2023-2559=1
  • openSUSE Leap 15.4
    zypper in -t patch openSUSE-SLE-15.4-2023-2559=1
  • openSUSE Leap 15.5
    zypper in -t patch openSUSE-SLE-15.5-2023-2559=1
  • Development Tools Module 15-SP4
    zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP4-2023-2559=1

Package List:

  • Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
    • cargo1.70-debuginfo-1.70.0-150400.9.3.1
    • cargo-1.70.0-150400.24.18.1
    • cargo1.70-1.70.0-150400.9.3.1
    • rust1.70-debuginfo-1.70.0-150400.9.3.1
    • rust-1.70.0-150400.24.18.1
  • Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.70-1.70.0-150400.9.3.1
  • openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64)
    • cargo1.70-debuginfo-1.70.0-150400.9.3.1
    • cargo-1.70.0-150400.24.18.1
    • cargo1.70-1.70.0-150400.9.3.1
    • rust1.70-debuginfo-1.70.0-150400.9.3.1
    • rust-1.70.0-150400.24.18.1
  • openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.70-1.70.0-150400.9.3.1
  • openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64)
    • cargo1.70-debuginfo-1.70.0-150400.9.3.1
    • cargo-1.70.0-150400.24.18.1
    • cargo1.70-1.70.0-150400.9.3.1
    • rust1.70-debuginfo-1.70.0-150400.9.3.1
    • rust-1.70.0-150400.24.18.1
  • openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.70-1.70.0-150400.9.3.1
  • Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.70-1.70.0-150400.9.3.1
  • Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
    • cargo1.70-debuginfo-1.70.0-150400.9.3.1
    • cargo-1.70.0-150400.24.18.1
    • cargo1.70-1.70.0-150400.9.3.1
    • rust1.70-debuginfo-1.70.0-150400.9.3.1
    • rust-1.70.0-150400.24.18.1