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