SUSE-RU-2024:2777-1: moderate: Recommended update for rust, rust1.80

SLE-UPDATES null at suse.de
Mon Aug 19 09:55:42 UTC 2024



# Recommended update for rust, rust1.80

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

# Version 1.80.0 (2024-07-25)

## Language

  * Document maximum allocation size
  * Allow zero-byte offsets and ZST read/writes on arbitrary pointers
  * Support C23's variadics without a named parameter
  * Stabilize `exclusive_range_pattern` feature
  * Guarantee layout and ABI of `Result` in some scenarios

## Compiler

  * Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC
    targets
  * Allow field reordering on types marked `repr(packed(1))`
  * Add a lint against never type fallback affecting unsafe code
  * Disallow cast with trailing braced macro in let-else
  * Expand `for_loops_over_fallibles` lint to lint on fallibles behind
    references.
  * self-contained linker: retry linking without `-fuse-ld=lld` on CCs that
    don't support it
  * Do not parse CVarArgs (`...`) as a type in trait bounds
  * Improvements to LLDB formatting
  * For the wasm32-wasip2 target default to PIC and do not use `-fuse-ld=lld`
  * Add x86_64-unknown-linux-none as a tier 3 target
  * Lint on `foo.into_iter()` resolving to `&Box<[T]>: IntoIterator`

## Libraries

  * Add `size_of` and `size_of_val` and `align_of` and `align_of_val` to the
    prelude
  * Abort a process when FD ownership is violated
  * io::Write::write_fmt: panic if the formatter fails when the stream does not
    fail
  * Panic if `PathBuf::set_extension` would add a path separator
  * Add assert_unsafe_precondition to unchecked_{add,sub,neg,mul,shl,shr}
    methods
  * Update `c_char` on AIX to use the correct type
  * `offset_of!` no longer returns a temporary
  * Handle sigma in `str.to_lowercase` correctly
  * Raise `DEFAULT_MIN_STACK_SIZE` to at least 64KiB

## Stabilized APIs

  * `impl Default for Rc<CStr>` https://doc.rust-
    lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3CCStr%3E
  * `impl Default for Rc<str>` https://doc.rust-
    lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3Cstr%3E
  * `impl Default for Rc<[T]>` https://doc.rust-
    lang.org/beta/alloc/rc/struct.Rc.html#impl-Default-for-Rc%3C%5BT%5D%3E
  * `impl Default for Arc<str>` https://doc.rust-
    lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3Cstr%3E
  * `impl Default for Arc<CStr>` https://doc.rust-
    lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3CCStr%3E
  * `impl Default for Arc<[T]>` https://doc.rust-
    lang.org/beta/alloc/sync/struct.Arc.html#impl-Default-for-Arc%3C%5BT%5D%3E
  * `impl IntoIterator for Box<[T]>` https://doc.rust-
    lang.org/beta/alloc/boxed/struct.Box.html#impl-IntoIterator-for-
    Box%3C%5BI%5D,+A%3E
  * `impl FromIterator<String> for Box<str>` https://doc.rust-
    lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3CString%3E-for-
    Box%3Cstr%3E)
  * `impl FromIterator<char> for Box<str>` https://doc.rust-
    lang.org/beta/alloc/boxed/struct.Box.html#impl-FromIterator%3Cchar%3E-for-
    Box%3Cstr%3E
  * `LazyCell` https://doc.rust-lang.org/beta/core/cell/struct.LazyCell.html
  * `LazyLock` https://doc.rust-lang.org/beta/std/sync/struct.LazyLock.html
  * `Duration::div_duration_f32` https://doc.rust-
    lang.org/beta/std/time/struct.Duration.html#method.div_duration_f32
  * `Duration::div_duration_f64` https://doc.rust-
    lang.org/beta/std/time/struct.Duration.html#method.div_duration_f64
  * `Option::take_if` https://doc.rust-
    lang.org/beta/std/option/enum.Option.html#method.take_if
  * `Seek::seek_relative` https://doc.rust-
    lang.org/beta/std/io/trait.Seek.html#method.seek_relative
  * `BinaryHeap::as_slice` https://doc.rust-
    lang.org/beta/std/collections/struct.BinaryHeap.html#method.as_slice
  * `NonNull::offset` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.offset
  * `NonNull::byte_offset` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset
  * `NonNull::add` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.add
  * `NonNull::byte_add` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.byte_add
  * `NonNull::sub` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.sub
  * `NonNull::byte_sub` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.byte_sub
  * `NonNull::offset_from` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.offset_from
  * `NonNull::byte_offset_from` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.byte_offset_from
  * `NonNull::read` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.read
  * `NonNull::read_volatile` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.read_volatile
  * `NonNull::read_unaligned` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.read_unaligned
  * `NonNull::write` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.write
  * `NonNull::write_volatile` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.write_volatile
  * `NonNull::write_unaligned` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.write_unaligned
  * `NonNull::write_bytes` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.write_bytes
  * `NonNull::copy_to` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to
  * `NonNull::copy_to_nonoverlapping` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.copy_to_nonoverlapping
  * `NonNull::copy_from` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from
  * `NonNull::copy_from_nonoverlapping` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.copy_from_nonoverlapping
  * `NonNull::replace` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.replace
  * `NonNull::swap` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.swap
  * `NonNull::drop_in_place` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.drop_in_place
  * `NonNull::align_offset` https://doc.rust-
    lang.org/beta/std/ptr/struct.NonNull.html#method.align_offset
  * `<[T]>::split_at_checked` https://doc.rust-
    lang.org/beta/std/primitive.slice.html#method.split_at_checked
  * `<[T]>::split_at_mut_checked` https://doc.rust-
    lang.org/beta/std/primitive.slice.html#method.split_at_mut_checked
  * `str::split_at_checked` https://doc.rust-
    lang.org/beta/std/primitive.str.html#method.split_at_checked
  * `str::split_at_mut_checked` https://doc.rust-
    lang.org/beta/std/primitive.str.html#method.split_at_mut_checked
  * `str::trim_ascii` https://doc.rust-
    lang.org/beta/std/primitive.str.html#method.trim_ascii
  * `str::trim_ascii_start` https://doc.rust-
    lang.org/beta/std/primitive.str.html#method.trim_ascii_start
  * `str::trim_ascii_end` https://doc.rust-
    lang.org/beta/std/primitive.str.html#method.trim_ascii_end
  * `<[u8]>::trim_ascii` https://doc.rust-
    lang.org/beta/core/primitive.slice.html#method.trim_ascii
  * `<[u8]>::trim_ascii_start` https://doc.rust-
    lang.org/beta/core/primitive.slice.html#method.trim_ascii_start
  * `<[u8]>::trim_ascii_end` https://doc.rust-
    lang.org/beta/core/primitive.slice.html#method.trim_ascii_end
  * `Ipv4Addr::BITS` https://doc.rust-
    lang.org/beta/core/net/struct.Ipv4Addr.html#associatedconstant.BITS
  * `Ipv4Addr::to_bits` https://doc.rust-
    lang.org/beta/core/net/struct.Ipv4Addr.html#method.to_bits
  * `Ipv4Addr::from_bits` https://doc.rust-
    lang.org/beta/core/net/struct.Ipv4Addr.html#method.from_bits
  * `Ipv6Addr::BITS` https://doc.rust-
    lang.org/beta/core/net/struct.Ipv6Addr.html#associatedconstant.BITS
  * `Ipv6Addr::to_bits` https://doc.rust-
    lang.org/beta/core/net/struct.Ipv6Addr.html#method.to_bits
  * `Ipv6Addr::from_bits` https://doc.rust-
    lang.org/beta/core/net/struct.Ipv6Addr.html#method.from_bits
  * `Vec::<[T; N]>::into_flattened` https://doc.rust-
    lang.org/beta/alloc/vec/struct.Vec.html#method.into_flattened
  * `<[[T; N]]>::as_flattened` https://doc.rust-
    lang.org/beta/core/primitive.slice.html#method.as_flattened
  * `<[[T; N]]>::as_flattened_mut` https://doc.rust-
    lang.org/beta/core/primitive.slice.html#method.as_flattened_mut

These APIs are now stable in const contexts:

  * `<[T]>::last_chunk` https://doc.rust-
    lang.org/beta/core/primitive.slice.html#method.last_chunk
  * `BinaryHeap::new` https://doc.rust-
    lang.org/beta/std/collections/struct.BinaryHeap.html#method.new

## Cargo

  * Stabilize `-Zcheck-cfg` as always enabled
  * Warn, rather than fail publish, if a target is excluded
  * Add special `check-cfg` lint config for the `unexpected_cfgs` lint
  * Stabilize `cargo update --precise <yanked>`
  * Don't change file permissions on `Cargo.toml` when using `cargo add`
  * Support using `cargo fix` on IPv6-only networks

## Rustdoc

  * Allow searching for references
  * Stabilize `custom_code_classes_in_docs` feature
  * fix: In cross-crate scenarios show enum variants on type aliases of enums

## Compatibility Notes

  * rustfmt estimates line lengths differently when using non-ascii characters
  * Type aliases are now handled correctly in orphan check
  * Allow instructing rustdoc to read from stdin via `-`
  * `std::env::{set_var, remove_var}` can no longer be converted to safe
    function pointers and no longer implement the `Fn` family of traits
  * Warn (or error) when `Self` constructor from outer item is referenced in
    inner nested item
  * Turn `indirect_structural_match` and `pointer_structural_match` lints into
    hard errors
  * Make `where_clause_object_safety` lint a regular object safety violation
  * Turn `proc_macro_back_compat` lint into a hard error.
  * Detect unused structs even when implementing private traits
  * `std::sync::ReentrantLockGuard<T>` is no longer `Sync` if `T: !Sync`

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

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

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

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

## Package List:

  * openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
    * cargo-1.80.0-150500.27.18.1
    * rust-1.80.0-150500.27.18.1
    * cargo1.80-debuginfo-1.80.0-150500.11.3.1
    * rust1.80-debuginfo-1.80.0-150500.11.3.1
    * cargo1.80-1.80.0-150500.11.3.1
  * openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
    * rust1.80-1.80.0-150500.11.3.1
  * openSUSE Leap 15.5 (noarch)
    * rust1.80-src-1.80.0-150500.11.3.1
  * openSUSE Leap 15.5 (nosrc)
    * rust1.80-test-1.80.0-150500.11.3.1
  * openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64)
    * cargo-1.80.0-150500.27.18.1
    * rust-1.80.0-150500.27.18.1
    * cargo1.80-debuginfo-1.80.0-150500.11.3.1
    * rust1.80-debuginfo-1.80.0-150500.11.3.1
    * cargo1.80-1.80.0-150500.11.3.1
  * openSUSE Leap 15.6 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.80-1.80.0-150500.11.3.1
  * openSUSE Leap 15.6 (noarch)
    * rust1.80-src-1.80.0-150500.11.3.1
  * Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
    * cargo-1.80.0-150500.27.18.1
    * rust-1.80.0-150500.27.18.1
    * cargo1.80-debuginfo-1.80.0-150500.11.3.1
    * rust1.80-debuginfo-1.80.0-150500.11.3.1
    * cargo1.80-1.80.0-150500.11.3.1
  * Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.80-1.80.0-150500.11.3.1
  * Development Tools Module 15-SP5 (noarch)
    * rust1.80-src-1.80.0-150500.11.3.1
  * Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64)
    * cargo-1.80.0-150500.27.18.1
    * rust-1.80.0-150500.27.18.1
    * cargo1.80-debuginfo-1.80.0-150500.11.3.1
    * rust1.80-debuginfo-1.80.0-150500.11.3.1
    * cargo1.80-1.80.0-150500.11.3.1
  * Development Tools Module 15-SP6 (aarch64 ppc64le s390x x86_64 nosrc)
    * rust1.80-1.80.0-150500.11.3.1
  * Development Tools Module 15-SP6 (noarch)
    * rust1.80-src-1.80.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/a9c9a520/attachment.htm>


More information about the sle-updates mailing list