Recommended update for rust, rust1.66

Announcement ID: SUSE-RU-2022:4623-1
Rating: moderate
References:
Affected Products:
  • Development Tools Module 15-SP4
  • openSUSE Leap 15.4
  • SUSE Linux Enterprise Desktop 15 SP4
  • SUSE Linux Enterprise High Performance Computing 15 SP4
  • SUSE Linux Enterprise Real Time 15 SP4
  • SUSE Linux Enterprise Server 15 SP4
  • SUSE Linux Enterprise Server for SAP Applications 15 SP4
  • 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.66 fixes the following issues:

This update ships rust 1.66.

Version 1.66.0 (2022-12-15)

Language

  • Permit specifying explicit discriminants on all repr(Int) enums rust #[repr(u8)] enum Foo { A(u8) = 0, B(i8) = 1, C(bool) = 42, }
  • Allow transmutes between the same type differing only in lifetimes
  • Change constant evaluation errors from a deny-by-default lint to a hard error
  • Trigger must_use on impl Trait for supertraits This makes impl ExactSizeIterator respect the existing #[must_use] annotation on Iterator.
  • Allow ..X and ..=X in patterns
  • Uplift clippy::for_loops_over_fallibles lint into rustc
  • Stabilize sym operands in inline assembly
  • Update to Unicode 15
  • Opaque types no longer imply lifetime bounds This is a soundness fix which may break code that was erroneously relying on this behavior.

Compiler

  • Add armv5te-none-eabi and thumbv5te-none-eabi tier 3 targets
  • Refer to Rust's [platform support page][platform-support-doc] for more information on Rust's tiered platform support.
  • Add support for linking against macOS universal libraries

Libraries

  • Fix #[derive(Default)] on a generic #[default] enum adding unnecessary Default bounds
  • Update to Unicode 15

Stabilized APIs

  • proc_macro::Span::source_text](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.source_text)
  • uX::{checked_add_signed, overflowing_add_signed, saturating_add_signed, wrapping_add_signed}](https://doc.rust-lang.org/stable/std/primitive.u8.html#method.checked_add_signed)
  • iX::{checked_add_unsigned, overflowing_add_unsigned, saturating_add_unsigned, wrapping_add_unsigned}](https://doc.rust-lang.org/stable/std/primitive.i8.html#method.checked_add_unsigned)
  • iX::{checked_sub_unsigned, overflowing_sub_unsigned, saturating_sub_unsigned, wrapping_sub_unsigned}](https://doc.rust-lang.org/stable/std/primitive.i8.html#method.checked_sub_unsigned)
  • BTreeSet::{first, last, pop_first, pop_last}](https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html#method.first)
  • BTreeMap::{first_key_value, last_key_value, first_entry, last_entry, pop_first, pop_last}](https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html#method.first_key_value)
  • Add AsFd implementations for stdio lock types on WASI.
  • impl TryFrom<Vec<T>> for Box<[T; N]>](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#impl-TryFrom%3CVec%3CT%2C%20Global%3E%3E-for-Box%3C%5BT%3B%20N%5D%2C%20Global%3E)
  • core::hint::black_box](https://doc.rust-lang.org/stable/std/hint/fn.black_box.html)
  • Duration::try_from_secs_{f32,f64}](https://doc.rust-lang.org/stable/std/time/struct.Duration.html#method.try_from_secs_f32)
  • Option::unzip](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.unzip)
  • std::os::fd](https://doc.rust-lang.org/stable/std/os/fd/index.html)

Rustdoc

  • Add Rustdoc warning for invalid HTML tags in the documentation

Cargo

  • Added cargo remove to remove dependencies from Cargo.toml](https://doc.rust-lang.org/nightly/cargo/commands/cargo-remove.html)
  • cargo publish now waits for the new version to be downloadable before exiting See [detailed release notes] for more.

Compatibility Notes

  • Only apply ProceduralMasquerade hack to older versions of rental]
  • Don't export __heap_base and __data_end on wasm32-wasi.]
  • Don't export __wasm_init_memory on WebAssembly.]
  • Only export __tls_* on wasm32-unknown-unknown.]
  • Don't link to libresolv in libstd on Darwin]
  • Update libstd's libc to 0.2.135 (to make libstd no longer pull in libiconv.dylib on Darwin)]
  • Opaque types no longer imply lifetime bounds] This is a soundness fix which may break code that was erroneously relying on this behavior.
  • Make order_dependent_trait_objects show up in future-breakage reports]
  • Change std::process::Command spawning to default to inheriting the parent's signal mask]

Changes in rust:

  • Update to version 1.66.0 - for details see the rust1.66 package

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

Package List:

  • openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64)
    • rust1.66-debuginfo-1.66.0-150400.9.3.1
    • cargo1.66-debuginfo-1.66.0-150400.9.3.1
    • cargo1.66-1.66.0-150400.9.3.1
    • rust-1.66.0-150400.24.3.1
    • cargo-1.66.0-150400.24.3.1
  • openSUSE Leap 15.4 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.66-1.66.0-150400.9.3.1
  • Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64)
    • rust1.66-debuginfo-1.66.0-150400.9.3.1
    • cargo1.66-debuginfo-1.66.0-150400.9.3.1
    • cargo1.66-1.66.0-150400.9.3.1
    • rust-1.66.0-150400.24.3.1
    • cargo-1.66.0-150400.24.3.1
  • Development Tools Module 15-SP4 (aarch64 ppc64le s390x x86_64 nosrc)
    • rust1.66-1.66.0-150400.9.3.1