<div class="container">
    <h1>Recommended update for spack</h1>

    <table class="table table-striped table-bordered">
        <tbody>
        <tr>
            <th>Announcement ID:</th>
            <td>SUSE-RU-2024:0452-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=1219480">bsc#1219480</a>
                        </li>
                    
                    
                </ul>
            </td>
        </tr>
        
        <tr>
            <th>Affected Products:</th>
            <td>
                <ul class="list-group">
                    
                        <li class="list-group-item">openSUSE Leap 15.3</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise High Performance Computing 15 SP3</li>
                    
                        <li class="list-group-item">SUSE Linux Enterprise High Performance Computing LTSS 15 SP3</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 spack fixes the following issues:</p>
<p>spack was updated to version 0.21.1 (bsc#1219480):</p>
<ul>
<li>
<p>Version 0.21.1:</p>
</li>
<li>
<p>Add support for reading buildcaches created by Spack v0.22</p>
</li>
<li>
<p>Bugfixes:</p>
<ul>
<li><code>spack graph</code>: fix coloring with environments</li>
<li><code>spack info</code>: sort variants in --variants-by-name</li>
<li><code>Spec.format</code>: error on old style format strings</li>
<li>
<p>ASP-based solver:</p>
</li>
<li>
<p>fix infinite recursion when computing concretization
     errors</p>
</li>
<li>don&#x27;t error for type mismatch on preferences</li>
<li>
<p>don&#x27;t emit spurious debug output.</p>
</li>
<li>
<p>Improve the error message for deprecated preferences</p>
</li>
<li>Fix multi-word aliases</li>
<li>Add a warning for unconfigured compiler</li>
<li>environment: fix an issue with deconcretization/reconcretization of specs</li>
<li>buildcache: don&#x27;t error if a patch is missing, when installing from binaries</li>
</ul>
</li>
<li>
<p>Version 0.21.0:</p>
</li>
<li>
<p>New features:</p>
<ul>
<li>Better error messages with condition chaining:
  In v0.18, we added better error messages that could tell you
  what problem happened, but they couldn&#x27;t tell you why it
  happened. 0.21 adds condition chaining to the solver, and
  Spack can now trace back through the conditions that led to
  an error and build a tree of causes potential causes and
  where they came from.</li>
<li>
<p>OCI build caches:
  You can now use an arbitrary OCI registry as a build cache:</p>
</li>
<li>
<p>For Dockerhub: </p>
<p><code>$ spack mirror add my_registry oci://user/image</code></p>
</li>
<li>
<p>For another registry (GHCR): </p>
<p><code>$ spack mirror add my_registry oci://ghcr.io/haampie/spack-test</code></p>
</li>
</ul>
<p>Then set the login credentials:</p>
<p><code>$ spack mirror set --push --oci-username ... --oci-password ... my_registry</code></p>
<p>and push to it:</p>
<p><code>$ spack buildcache push my_registry [specs...]</code></p>
<p>You can optionally add a base image to get runnable images:</p>
<p><code>$ spack buildcache push --base-image leap:15.5 my_registry python`
   Pushed ... as [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack
  $ docker run --rm -it [image]:python-3.11.2-65txfcpqbmpawclvtasuog4yzmxwaoia.spack</code></p>
<p>This creates a container image from the Spack installations
  on the host system, without the need to run <code>spack install</code>
  from a <code>Dockerfile</code> or <code>sif</code> file. It also addresses the
  inconvenience of losing binaries of dependencies when
  <code>RUN spack install</code> fails inside <code>docker build</code>. Further, the
  container image layers and build cache tarballs are the same
  files. This means that <code>spack install</code> and <code>docker pull</code> use the
  exact same underlying binaries. If you previously used <code>spack
  install</code> inside of docker build, this feature helps you save
  storage by a factor two.
+ Multiple versions of build dependencies:
  Increasingly, complex package builds require multiple
  versions of some build dependencies. For example, Python
  packages frequently require very specific versions of
  <code>setuptools</code>, <code>cython</code>, while different physics packages
  require different versions of Python to build. The concretizer
  enforced that every solve was unified, i.e., so that there was
  only one version of every package. The concretizer now supports
  "duplicate" nodes for build dependencies, but enforces unification
  through transitive link and run dependencies. This will allow it
  to better resolve complex dependency graphs in ecosystems like
  Python.
+ Cherry-picking virtual dependencies:
  You can now select only a subset of virtual dependencies
  from a spec that may provide more. For example, to make mpich
  your mpi provider, you can be explicit by writing:</p>
<p><code>hdf5 ^[virtuals=mpi] mpich</code></p>
<p>Or, to use, e.g., <code>intel-parallel-studio</code> for blas along with
  an external <code>lapack</code> like <code>openblas</code>, you could write:</p>
<p><code>strumpack ^[virtuals=mpi] intel-parallel-studio+mkl ^[virtuals=lapack] openblas`</code></p>
<p>The <code>virtuals=mpi</code> is an edge attribute, and dependency edges
  in Spack graphs now track which virtuals they satisfied.
+ The <code>spack deconcretize</code> command gives you control over what
  you want to update in an already concrete environment.
  As an example, with an environment built with meson, and you
  want to update your meson version, you can run:</p>
<p><code>$spack deconcretize meson</code></p>
<p>and have everything that depends on meson rebuilt the next
  time you run spack concretize. In the future, we&#x27;ll handle
  this in a single command, but for now you can use this to
  drop bits of your lockfile and resolve your dependencies
  again.
+ UI Improvements:
  The <code>spack info</code> received a rework to make the output more
  appealing. It is now on par with  the rest of Spack&#x27;s UI.
  <code>spack info</code> now makes much better use of terminal space and
  shows variants, their values, and their descriptions more
  clearly. Conditional variants are grouped separately so you
  can more easily understand how packages are structured.
  <code>spack checksum</code> now allows you to filter versions from your
  editor, or by version range. It also notifies you about
  potential download URL changes.
+ Environments can include definitions:
  Spack did not previously support using <code>include:</code> with The
  definitions section of an environment, but now it does. You
  can use this to curate lists of specs and more easily reuse
  them across environments.
+ Aliases:
  You can now add aliases to Spack commands in <code>config.yaml</code>,
  e.g. this might enshrine your favorite args to <code>spack find</code>
  as <code>spack f</code>:</p>
<p><code>config:
    aliases:
      f: find -lv</code></p>
<ul>
<li>Improved autoloading of modules:
  In this release, you can start using <code>hide_implicits: true</code>
  instead, which exposes only explicitly installed packages to
  the user, while still autoloading dependencies. On top of
  that, you can safely use <code>hash_length: 0</code>, as this config now
  only applies to the modules exposed to the user -- you don&#x27;t
  have to worry about file name clashes for hidden
  dependencies.
  Note: for Tcl this feature requires Modules 4.7 or higher</li>
</ul>
</li>
<li>
<p>Other new commands and directives:</p>
<ul>
<li><code>spack env activate</code> without arguments now loads a default
  environment that you do not have to create.</li>
<li><code>spack find -H</code> / <code>--hashes</code>: a new shortcut for piping spack
  find output to other commands.</li>
<li>Add <code>spack checksum --verify</code>, fix <code>--add</code>.</li>
<li>New <code>default_args</code> context manager factors out common args for
  directives.</li>
<li><code>spack compiler find --[no]-mixed-toolchain</code> lets you easily
  mix clang and gfortran on Linux</li>
</ul>
</li>
<li>
<p>Performance improvements:</p>
<ul>
<li><code>spack external find execution</code> is now much faster.</li>
<li><code>spack location -i</code> is now much faster on success.</li>
<li>Drop redundant rpaths post install.</li>
<li>ASP-based solver: avoid cycles in clingo using hidden
  directive.</li>
<li>Fix multiple quadratic complexity issues in environments</li>
</ul>
</li>
<li>
<p>Other new features of note:</p>
<ul>
<li>archspec: update to v0.2.2, support for Sapphire Rapids,
  Power10, Neoverse V2.</li>
<li>Propagate variants across nodes that don&#x27;t have that variant</li>
<li>Implement fish shell completion.</li>
<li>Can now distinguish between source/binary mirror; don&#x27;t ping
  mirror.spack.io as much.</li>
<li>Improve status reporting on <code>spack install</code>
  (add [n/total] display...).</li>
</ul>
</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-452=1</code>
                    
                    
                
            </li>
        
            <li class="list-group-item">
                SUSE Linux Enterprise High Performance Computing LTSS 15 SP3
                
                    
                        <br/>
                        <code>zypper in -t patch SUSE-SLE-Product-HPC-15-SP3-LTSS-2024-452=1</code>
                    
                    
                
            </li>
        
    </ul>

    <h2>Package List:</h2>
    <ul>
        
            
                <li>
                    openSUSE Leap 15.3 (noarch)
                    <ul>
                        
                            <li>spack-info-0.21.1-150300.12.1</li>
                        
                            <li>spack-recipes-0.21.1-150300.12.1</li>
                        
                            <li>spack-0.21.1-150300.12.1</li>
                        
                            <li>spack-man-0.21.1-150300.12.1</li>
                        
                    </ul>
                </li>
            
        
            
                <li>
                    SUSE Linux Enterprise High Performance Computing LTSS 15 SP3 (noarch)
                    <ul>
                        
                            <li>spack-info-0.21.1-150300.12.1</li>
                        
                            <li>spack-recipes-0.21.1-150300.12.1</li>
                        
                            <li>spack-man-0.21.1-150300.12.1</li>
                        
                            <li>spack-0.21.1-150300.12.1</li>
                        
                    </ul>
                </li>
            
        
    </ul>

    
        <h2>References:</h2>
        <ul>
            
                
                    <li>
                        <a href="https://bugzilla.suse.com/show_bug.cgi?id=1219480">https://bugzilla.suse.com/show_bug.cgi?id=1219480</a>
                    </li>
                
            
        </ul>
    
</div>