<div class="container">
    <h1>Recommended update for rust1.70</h1>

    <table class="table table-striped table-bordered">
        <tbody>
        <tr>
            <th>Announcement ID:</th>
            <td>SUSE-RU-2024:2392-1</td>
        </tr>
        
        <tr>
            <th>Rating:</th>
            <td>moderate</td>
        </tr>
        <tr>
            <th>References:</th>
            <td>
                <ul>
                    
                    
                </ul>
            </td>
        </tr>
        
        <tr>
            <th>Affected Products:</th>
            <td>
                <ul class="list-group">
                    
                        <li class="list-group-item">openSUSE Leap 15.3</li>
                    
                </ul>
            </td>
        </tr>
        </tbody>
    </table>

    <p>An update that  can now be installed.</p>

    


    
        <h2>Description:</h2>
    
    <p>This update for rust1.70 fixes the following issues:</p>
<h1>Version 1.70.0 (2023-06-01)</h1>
<h2>Language</h2>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/105798/">Relax ordering rules for <code>asm!</code> operands</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/106505/">Properly allow macro expanded <code>format_args</code> invocations to uses captures</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/107880/">Lint ambiguous glob re-exports</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/102256/">Perform const and unsafe checking for expressions in <code>let _ = expr</code> position.</a></li>
</ul>
<h2>Compiler</h2>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/109808/">Extend -Cdebuginfo with new options and named aliases</a>
  This provides a smaller version of debuginfo for cases that only need line number information
  (<code>-Cdebuginfo=line-tables-only</code>), which may eventually become the default for <code>-Cdebuginfo=1</code>.</li>
<li><a href="https://github.com/rust-lang/rust/pull/104363/">Make <code>unused_allocation</code> lint against <code>Box::new</code> too</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/109435/">Detect uninhabited types early in const eval</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/109721/">Switch to LLD as default linker for {arm,thumb}v4t-none-eabi</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/96971">Add tier 3 target <code>loongarch64-unknown-linux-gnu</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/109173/">Add tier 3 target for <code>i586-pc-nto-qnx700</code> (QNX Neutrino RTOS, version 7.0)</a>, </li>
<li><a href="https://github.com/rust-lang/rust/pull/98112">Insert alignment checks for pointer dereferences as debug assertions</a>
  This catches undefined behavior at runtime, and may cause existing code to fail.
Refer to Rust&#x27;s [platform support page][platform-support-doc]
for more information on Rust&#x27;s tiered platform support.</li>
</ul>
<h2>Libraries</h2>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/94786/">Document NonZeroXxx layout guarantees</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/96391/">Windows: make <code>Command</code> prefer non-verbatim paths</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/99929/">Implement Default for some alloc/core iterators</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/100311/">Fix handling of trailing bare CR in str::lines</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/106844/">allow negative numeric literals in <code>concat!</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/106921/">Add documentation about the memory layout of <code>Cell</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/108157/">Use <code>partial_cmp</code> to implement tuple <code>lt</code>/<code>le</code>/<code>ge</code>/<code>gt</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/108419/">Stabilize <code>atomic_as_ptr</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/97506/">Stabilize <code>nonnull_slice_from_raw_parts</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/105587/">Partial stabilization of <code>once_cell</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/106633/">Stabilize <code>nonzero_min_max</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/106824/">Flatten/inline format_args!() and (string and int) literal arguments into format_args!()</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/107711/">Stabilize movbe target feature</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/108283/">don&#x27;t splice from files into pipes in io::copy</a></li>
<li><a href="https://github.com/rust-lang/rust/pull/108080/">Add a builtin unstable <code>FnPtr</code> trait that is implemented for all function pointers</a>
  This extends <code>Debug</code>, <code>Pointer</code>, <code>Hash</code>, <code>PartialEq</code>, <code>Eq</code>, <code>PartialOrd</code>, and <code>Ord</code>
  implementations for function pointers with all ABIs.</li>
</ul>
<h2>Stabilized APIs</h2>
<ul>
<li><a href="https://doc.rust-lang.org/stable/std/num/struct.NonZeroI8.html#associatedconstant.MIN"><code>NonZero*::MIN/MAX</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/struct.BinaryHeap.html#method.retain"><code>BinaryHeap::retain</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/binary_heap/struct.IntoIter.html"><code>Default for std::collections::binary_heap::IntoIter</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoIter.html"><code>Default for std::collections::btree_map::{IntoIter, Iter, IterMut}</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html"><code>Default for std::collections::btree_map::{IntoKeys, Keys}</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/btree_map/struct.IntoKeys.html"><code>Default for std::collections::btree_map::{IntoValues, Values}</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/btree_map/struct.Range.html"><code>Default for std::collections::btree_map::Range</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/btree_set/struct.IntoIter.html"><code>Default for std::collections::btree_set::{IntoIter, Iter}</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/collections/btree_set/struct.Range.html"><code>Default for std::collections::btree_set::Range</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/alloc/collections/linked_list/struct.IntoIter.html"><code>Default for std::collections::linked_list::{IntoIter, Iter, IterMut}</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/alloc/vec/struct.IntoIter.html#impl-Default-for-IntoIter%3CT,+A%3E"><code>Default for std::vec::IntoIter</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Chain.html"><code>Default for std::iter::Chain</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Cloned.html"><code>Default for std::iter::Cloned</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Copied.html"><code>Default for std::iter::Copied</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Enumerate.html"><code>Default for std::iter::Enumerate</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Flatten.html"><code>Default for std::iter::Flatten</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Fuse.html"><code>Default for std::iter::Fuse</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/iter/struct.Rev.html"><code>Default for std::iter::Rev</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/slice/struct.Iter.html"><code>Default for std::slice::Iter</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/slice/struct.IterMut.html"><code>Default for std::slice::IterMut</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/alloc/rc/struct.Rc.html#method.into_inner"><code>Rc::into_inner</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/alloc/sync/struct.Arc.html#method.into_inner"><code>Arc::into_inner</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/cell/struct.OnceCell.html"><code>std::cell::OnceCell</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.is_some_and"><code>Option::is_some_and</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.slice_from_raw_parts"><code>NonNull::slice_from_raw_parts</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_ok_and"><code>Result::is_ok_and</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.is_err_and"><code>Result::is_err_and</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/sync/atomic/struct.AtomicU8.html#method.as_ptr"><code>std::sync::atomic::Atomic*::as_ptr</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/io/trait.IsTerminal.html"><code>std::io::IsTerminal</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/os/linux/net/trait.SocketAddrExt.html"><code>std::os::linux::net::SocketAddrExt</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.bind_addr"><code>std::os::unix::net::UnixDatagram::bind_addr</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.connect_addr"><code>std::os::unix::net::UnixDatagram::connect_addr</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixDatagram.html#method.send_to_addr"><code>std::os::unix::net::UnixDatagram::send_to_addr</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/os/unix/net/struct.UnixListener.html#method.bind_addr"><code>std::os::unix::net::UnixListener::bind_addr</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/path/struct.Path.html#method.as_mut_os_str"><code>std::path::Path::as_mut_os_str</code></a></li>
<li><a href="https://doc.rust-lang.org/stable/std/sync/struct.OnceLock.html"><code>std::sync::OnceLock</code></a></li>
</ul>
<h2>Cargo</h2>
<ul>
<li><a href="https://github.com/rust-lang/cargo/pull/11645/">Add <code>CARGO_PKG_README</code></a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/11791/">Make <code>sparse</code> the default protocol for crates.io</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/11839/">Accurately show status when downgrading dependencies</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/11949/">Use registry.default for login/logout</a></li>
<li><a href="https://github.com/rust-lang/cargo/pull/11950/">Stabilize <code>cargo logout</code></a></li>
</ul>
<h2>Misc</h2>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/103682/">Stabilize rustdoc <code>--test-run-directory</code></a></li>
</ul>
<h2>Compatibility Notes</h2>
<ul>
<li><a href="https://github.com/rust-lang/rust/pull/109044/">Prevent stable <code>libtest</code> from supporting <code>-Zunstable-options</code></a></li>
<li><a href="https://github.com/rust-lang/rust/pull/102256/">Perform const and unsafe checking for expressions in <code>let _ = expr</code> position.</a></li>
<li><a href="https://github.com/rust-lang/rust/issues/109807">WebAssembly targets enable <code>sign-ext</code> and <code>mutable-globals</code> features in codegen</a>
  This may cause incompatibility with older execution environments.</li>
<li><a href="https://github.com/rust-lang/rust/pull/98112">Insert alignment checks for pointer dereferences as debug assertions</a>
  This catches undefined behavior at runtime, and may cause existing code to fail.</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.3
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-2024-2392=1</code>
                    
                    
                
            </li>
        
    </ul>

    <h2>Package List:</h2>
    <ul>
        
            
                <li>
                    openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586)
                    <ul>
                        
                            <li>cargo1.70-debuginfo-1.70.0-150300.7.3.1</li>
                        
                            <li>cargo1.70-1.70.0-150300.7.3.1</li>
                        
                            <li>rust1.70-debuginfo-1.70.0-150300.7.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.3 (aarch64 ppc64le s390x x86_64 i586 nosrc)
                    <ul>
                        
                            <li>rust1.70-1.70.0-150300.7.3.1</li>
                        
                    </ul>
                </li>
            
                <li>
                    openSUSE Leap 15.3 (nosrc)
                    <ul>
                        
                            <li>rust1.70-test-1.70.0-150300.7.3.1</li>
                        
                    </ul>
                </li>
            
        
    </ul>

    
</div>