<div class="container">
<h1>Recommended update for rust, rust1.77</h1>
<table class="table table-striped table-bordered">
<tbody>
<tr>
<th>Announcement ID:</th>
<td>SUSE-RU-2024:1159-1</td>
</tr>
<tr>
<th>Rating:</th>
<td>moderate</td>
</tr>
<tr>
<th>References:</th>
<td>
<ul>
<li style="display: inline;">
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1222047">bsc#1222047</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 has one fix can now be installed.</p>
<h2>Description:</h2>
<p>This update for rust, rust1.77 fixes the following issues:</p>
<p>Changes in rust1.77:</p>
<ul>
<li>update gcc minimum to 13 for SLE (bsc#1222047)</li>
</ul>
<h1>Version 1.77.0 (2024-03-21)</h1>
<h2>Language</h2>
<ul>
<li>Reveal opaque types within the defining body for exhaustiveness checking.</li>
<li>Stabilize C-string literals.</li>
<li>Stabilize THIR unsafeck.</li>
<li>Add lint <code>static_mut_refs</code> to warn on references to mutable statics.</li>
<li>Support async recursive calls (as long as they have indirection).</li>
<li>Undeprecate lint <code>unstable_features</code> and make use of it in the compiler.</li>
<li>Make inductive cycles in coherence ambiguous always.</li>
<li>Get rid of type-driven traversal in const-eval interning
only as a [future compatiblity lint</li>
<li>Deny braced macro invocations in let-else.</li>
</ul>
<h2>Compiler</h2>
<ul>
<li>Include lint <code>soft_unstable</code> in future breakage reports.</li>
<li>Make <code>i128</code> and <code>u128</code> 16-byte aligned on x86-based targets.</li>
<li>Use <code>--verbose</code> in diagnostic output.</li>
<li>Improve spacing between printed tokens.</li>
<li>Merge the <code>unused_tuple_struct_fields</code> lint into <code>dead_code</code>.</li>
<li>Error on incorrect implied bounds in well-formedness check
with a temporary exception for Bevy.</li>
<li>Fix coverage instrumentation/reports for non-ASCII source code.</li>
<li>Fix <code>fn</code>/<code>const</code> items implied bounds and well-formedness check.</li>
<li>Promote <code>riscv32{im|imafc}-unknown-none-elf</code> targets to tier 2.</li>
</ul>
<h2>Libraries</h2>
<ul>
<li>Implement <code>From<&[T; N]></code> for <code>Cow<[T]></code>.</li>
<li>Remove special-case handling of <code>vec.split_off(0)</code>.</li>
</ul>
<h2>Stabilized APIs</h2>
<ul>
<li><code>array::each_ref</code> https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_ref</li>
<li><code>array::each_mut</code> https://doc.rust-lang.org/stable/std/primitive.array.html#method.each_mut</li>
<li><code>core::net</code> https://doc.rust-lang.org/stable/core/net/index.html</li>
<li><code>f32::round_ties_even</code> https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even</li>
<li><code>f64::round_ties_even</code> https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even</li>
<li><code>mem::offset_of!</code> https://doc.rust-lang.org/stable/std/mem/macro.offset_of.html</li>
<li><code>slice::first_chunk</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk</li>
<li><code>slice::first_chunk_mut</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.first_chunk_mut</li>
<li><code>slice::split_first_chunk</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk</li>
<li><code>slice::split_first_chunk_mut</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_first_chunk_mut</li>
<li><code>slice::last_chunk</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk</li>
<li><code>slice::last_chunk_mut</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.last_chunk_mut</li>
<li><code>slice::split_last_chunk</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk</li>
<li><code>slice::split_last_chunk_mut</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_last_chunk_mut</li>
<li><code>slice::chunk_by</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by</li>
<li><code>slice::chunk_by_mut</code> https://doc.rust-lang.org/stable/std/primitive.slice.html#method.chunk_by_mut</li>
<li><code>Bound::map</code> https://doc.rust-lang.org/stable/std/ops/enum.Bound.html#method.map</li>
<li><code>File::create_new</code> https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.create_new</li>
<li><code>Mutex::clear_poison</code> https://doc.rust-lang.org/stable/std/sync/struct.Mutex.html#method.clear_poison</li>
<li><code>RwLock::clear_poison</code> https://doc.rust-lang.org/stable/std/sync/struct.RwLock.html#method.clear_poison</li>
</ul>
<h2>Cargo</h2>
<ul>
<li>Extend the build directive syntax with <code>cargo::</code>.</li>
<li>Stabilize metadata <code>id</code> format as <code>PackageIDSpec</code>.</li>
<li>Pull out <code>cargo-util-schemas</code> as a crate.</li>
<li>Strip all debuginfo when debuginfo is not requested.</li>
<li>Inherit jobserver from env for all kinds of runners.</li>
<li>Deprecate rustc plugin support in cargo.</li>
</ul>
<h2>Rustdoc</h2>
<ul>
<li>Allows links in markdown headings.</li>
<li>Search for tuples and unit by type with <code>()</code>.</li>
<li>Clean up the source sidebar's hide button.</li>
<li>Prevent JS injection from <code>localStorage</code>.</li>
</ul>
<h2>Misc</h2>
<ul>
<li>Recommend version-sorting for all sorting in style guide.</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-1159=1 openSUSE-SLE-15.5-2024-1159=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-1159=1</code>
</li>
</ul>
<h2>Package List:</h2>
<ul>
<li>
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586)
<ul>
<li>cargo1.77-1.77.0-150500.11.3.1</li>
<li>rust1.77-debuginfo-1.77.0-150500.11.3.1</li>
<li>cargo-1.77.0-150500.27.9.1</li>
<li>cargo1.77-debuginfo-1.77.0-150500.11.3.1</li>
<li>rust-1.77.0-150500.27.9.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.5 (aarch64 ppc64le s390x x86_64 i586 nosrc)
<ul>
<li>rust1.77-1.77.0-150500.11.3.1</li>
</ul>
</li>
<li>
openSUSE Leap 15.5 (nosrc)
<ul>
<li>rust1.77-test-1.77.0-150500.11.3.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64)
<ul>
<li>cargo1.77-1.77.0-150500.11.3.1</li>
<li>rust1.77-debuginfo-1.77.0-150500.11.3.1</li>
<li>cargo-1.77.0-150500.27.9.1</li>
<li>cargo1.77-debuginfo-1.77.0-150500.11.3.1</li>
<li>rust-1.77.0-150500.27.9.1</li>
</ul>
</li>
<li>
Development Tools Module 15-SP5 (aarch64 ppc64le s390x x86_64 nosrc)
<ul>
<li>rust1.77-1.77.0-150500.11.3.1</li>
</ul>
</li>
</ul>
<h2>References:</h2>
<ul>
<li>
<a href="https://bugzilla.suse.com/show_bug.cgi?id=1222047">https://bugzilla.suse.com/show_bug.cgi?id=1222047</a>
</li>
</ul>
</div>