<div class="container">
<h1>Recommended update for rust</h1>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Announcement ID:</th>
<td>SUSE-RU-2024:0582-1</td>
</tr>
<tr>
<th>Rating:</th>
<td>moderate</td>
</tr>
<tr>
<th>References:</th>
<td>
<ul>
<li style="display: inline;">
<a href="https://jira.suse.com/browse/SLE-18626">jsc#SLE-18626</a>
</li>
</ul>
</td>
</tr>
<tr>
<th>Affected Products:</th>
<td>
<ul class="list-group">
<li class="list-group-item">Development Tools Module 15-SP5</li>
<li class="list-group-item">openSUSE Leap 15.5</li>
<li class="list-group-item">SUSE Linux Enterprise Desktop 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise High Performance Computing 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise Real Time 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise Server 15 SP5</li>
<li class="list-group-item">SUSE Linux Enterprise Server for SAP Applications 15 SP5</li>
</ul>
</td>
</tr>
</tbody>
</table>
<p>An update that contains one feature can now be installed.</p>
<h2>Description:</h2>
<p>This update for rust fixes the following issues:</p>
<ul>
<li>Update to version 1.76.0 - for details see the rust1.76 package</li>
</ul>
<h1>Version 1.76.0 (2024-02-08)</h1>
<h2>Language</h2>
<ul>
<li>Document Rust ABI compatibility between various types</li>
<li>Also: guarantee that char and u32 are ABI-compatible</li>
<li>Warn against ambiguous wide pointer comparisons</li>
<li>Add lint <code>ambiguous_wide_pointer_comparisons</code> that supersedes <code>clippy::vtable_address_comparisons</code></li>
</ul>
<h2>Compiler</h2>
<ul>
<li>Lint pinned <code>#[must_use]</code> pointers (in particular, <code>Box<T></code> where <code>T</code> is <code>#[must_use]</code>) in <code>unused_must_use</code>.</li>
<li>Soundness fix: fix computing the offset of an unsized field in a packed struct</li>
<li>Soundness fix: fix dynamic size/align computation logic for packed types with dyn Trait tail</li>
<li>Add <code>$message_type</code> field to distinguish json diagnostic outputs</li>
<li>Enable Rust to use the EHCont security feature of Windows</li>
<li>Add tier 3 {x86_64,i686}-win7-windows-msvc targets</li>
<li>Add tier 3 aarch64-apple-watchos target</li>
<li>Add tier 3 arm64e-apple-ios & arm64e-apple-darwin targets</li>
</ul>
<p>Refer to Rust's [platform support page for more information on Rust's tiered platform support.</p>
<h2>Libraries</h2>
<ul>
<li>Add a column number to <code>dbg!()</code></li>
<li>Add <code>std::hash::{DefaultHasher, RandomState}</code> exports</li>
<li>Fix rounding issue with exponents in fmt</li>
<li>Add T: ?Sized to <code>RwLockReadGuard</code> and <code>RwLockWriteGuard</code>'s Debug impls.</li>
<li>Windows: Allow <code>File::create</code> to work on hidden files</li>
</ul>
<h2>Stabilized APIs</h2>
<ul>
<li><code>Arc::unwrap_or_clone</code> (https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.unwrap_or_clone)</li>
<li><code>Rc::unwrap_or_clone</code> (https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.unwrap_or_clone)</li>
<li><code>Result::inspect</code> (https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect)</li>
<li><code>Result::inspect_err</code> (https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect_err)</li>
<li><code>Option::inspect</code> (https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.inspect)</li>
<li><code>type_name_of_val</code> (https://doc.rust-lang.org/stable/std/any/fn.type_name_of_val.html)</li>
<li><code>std::hash::{DefaultHasher, RandomState}</code> (https://doc.rust-lang.org/stable/std/hash/index.html#structs)
These were previously available only through <code>std::collections::hash_map</code>.</li>
<li><code>ptr::{from_ref, from_mut}</code> (https://doc.rust-lang.org/stable/std/ptr/fn.from_ref.html)</li>
<li><code>ptr::addr_eq</code> (https://doc.rust-lang.org/stable/std/ptr/fn.addr_eq.html)</li>
</ul>
<h2>Cargo</h2>
<p>See Cargo release notes at https://github.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-176-2024-02-08 .</p>
<h2>Rustdoc</h2>
<ul>
<li>Don't merge cfg and doc(cfg) attributes for re-exports</li>
<li>rustdoc: allow resizing the sidebar / hiding the top bar</li>
<li>rustdoc-search: add support for traits and associated types</li>
<li>rustdoc: Add highlighting for comments in items declaration</li>
</ul>
<h2>Patch Instructions:</h2>
<p>
To install this SUSE update use the SUSE recommended
installation methods like YaST online_update or "zypper patch".<br/>
Alternatively you can run the command listed for your product:
</p>
<ul class="list-group">
<li class="list-group-item">
openSUSE Leap 15.5
<br/>
<code>zypper in -t patch SUSE-2024-582=1 openSUSE-SLE-15.5-2024-582=1</code>
</li>
<li class="list-group-item">
Development Tools Module 15-SP5
<br/>
<code>zypper in -t patch SUSE-SLE-Module-Development-Tools-15-SP5-2024-582=1</code>
</li>
</ul>
<h2>Package List:</h2>
<ul>
<li>
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
<ul>
<li>rust1.76-debuginfo-1.76.0-150500.11.3.1</li>
<li>rust-1.76.0-150500.27.6.1</li>
<li>cargo1.76-debuginfo-1.76.0-150500.11.3.1</li>
<li>cargo1.76-1.76.0-150500.11.3.1</li>
<li>cargo-1.76.0-150500.27.6.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
<ul>
<li>rust1.76-1.76.0-150500.11.3.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.5 (nosrc)
<ul>
<li>rust1.76-test-1.76.0-150500.11.3.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
<ul>
<li>rust1.76-debuginfo-1.76.0-150500.11.3.1</li>
<li>rust-1.76.0-150500.27.6.1</li>
<li>cargo1.76-debuginfo-1.76.0-150500.11.3.1</li>
<li>cargo1.76-1.76.0-150500.11.3.1</li>
<li>cargo-1.76.0-150500.27.6.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
<ul>
<li>rust1.76-1.76.0-150500.11.3.1</li>
</ul>
</li>
</ul>
<h2>References:</h2>
<ul>
<li>
<a href="https://jira.suse.com/browse/SLE-18626">https://jira.suse.com/browse/SLE-18626</a>
</li>
</ul>
</div>