Accepting request 1234924 from network:cluster
- Fix version of spack package to build documentation with (forwarded request 1234923 from eeich) OBS-URL: https://build.opensuse.org/request/show/1234924 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/spack?expand=0&rev=47
This commit is contained in:
commit
3e1a106672
@ -1,27 +0,0 @@
|
|||||||
From c24349cb54442da8e49fd40a299453e56b404a90 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Egbert Eich <eich@suse.com>
|
|
||||||
Date: Thu, 7 Apr 2022 20:25:46 +0200
|
|
||||||
Subject: [PATCH] Fix error during documentation build due to recursive module
|
|
||||||
inclusion
|
|
||||||
|
|
||||||
Signed-off-by: Egbert Eich <eich@suse.com>
|
|
||||||
Signed-off-by: Egbert Eich <eich@suse.de>
|
|
||||||
---
|
|
||||||
lib/spack/spack/environment/environment.py | 4 ++++
|
|
||||||
1 file changed, 4 insertions(+)
|
|
||||||
|
|
||||||
Index: spack-0.20.3/lib/spack/spack/environment/environment.py
|
|
||||||
===================================================================
|
|
||||||
--- spack-0.20.3.orig/lib/spack/spack/environment/environment.py
|
|
||||||
+++ spack-0.20.3/lib/spack/spack/environment/environment.py
|
|
||||||
@@ -40,6 +40,10 @@ import spack.stage
|
|
||||||
import spack.store
|
|
||||||
import spack.subprocess_context
|
|
||||||
import spack.user_environment as uenv
|
|
||||||
+try:
|
|
||||||
+ import spack.user_environment as uenv
|
|
||||||
+except AttributeError:
|
|
||||||
+ pass
|
|
||||||
import spack.util.cpus
|
|
||||||
import spack.util.environment
|
|
||||||
import spack.util.hash
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:aef1a5ce16fe1a8bcced54c40012b19a0f4ade1cd9c5379aca081e96ec5b18ac
|
|
||||||
size 11117111
|
|
3
spack-0.23.0.tar.gz
Normal file
3
spack-0.23.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:ddb8220c46743e45c9484622370a1e17e193acba6a43230868c2dbc717e88b56
|
||||||
|
size 11847230
|
@ -22,3 +22,6 @@ addFilter("spack-recipes.noarch: .* non-executable-script")
|
|||||||
# 3rd party modules - not used stand-alone
|
# 3rd party modules - not used stand-alone
|
||||||
addFilter(".* non-executable-script /usr/lib/spack/external/_vendoring")
|
addFilter(".* non-executable-script /usr/lib/spack/external/_vendoring")
|
||||||
addFilter(".* non-executable-script /usr/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py")
|
addFilter(".* non-executable-script /usr/share/spack/gitlab/cloud_pipelines/scripts/common/aggregate_package_logs.spack.py")
|
||||||
|
# We need to test doc builds for SLE in OBS which depend in spack being built:
|
||||||
|
# for this, we need to defeat the 'backport policy'.
|
||||||
|
addFilter(".* E: SUSE_Backports_policy-SLE_conflict .*")
|
||||||
|
231
spack.changes
231
spack.changes
@ -1,3 +1,234 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 3 13:40:08 UTC 2025 - Egbert Eich <eich@suse.com>
|
||||||
|
|
||||||
|
- Update to version v0.23.0. This is a major release.
|
||||||
|
* Features in this Release
|
||||||
|
+ Spec splicing
|
||||||
|
To make binary installation more seamless in Spack, `v0.23`
|
||||||
|
introduces "splicing", which allows users to deploy binaries
|
||||||
|
using local, optimized versions of a binary interface, even
|
||||||
|
if they were not built with that interface. For example, this
|
||||||
|
would allow you to build binaries in the cloud using `mpich`
|
||||||
|
and install them on a system using a local, optimized version
|
||||||
|
of `mvapich2` *without rebuilding*. Spack preserves full
|
||||||
|
provenance for the installed packages and knows that they
|
||||||
|
were built one way but deployed another.
|
||||||
|
The intent is to leverage this across many key HPC binary
|
||||||
|
packages, e.g. MPI, CUDA, ROCm, and libfabric.
|
||||||
|
Fundamentally, splicing allows Spack to redeploy an existing
|
||||||
|
spec with different dependencies than how it was built. There
|
||||||
|
are two interfaces to splicing.
|
||||||
|
a. Explicit Splicing
|
||||||
|
In the concretizer config, you can specify a target spec
|
||||||
|
and a replacement by hash.
|
||||||
|
```yaml
|
||||||
|
concretizer:
|
||||||
|
splice:
|
||||||
|
explicit:
|
||||||
|
- target: mpi
|
||||||
|
replacement: mpich/abcdef
|
||||||
|
```
|
||||||
|
Here, every installation that would normally use the target
|
||||||
|
spec will instead use its replacement. Above, any spec using
|
||||||
|
*any* `mpi` will be spliced to depend on the specific `mpich`
|
||||||
|
installation requested. This *can* go wrong if you try to
|
||||||
|
replace something built with, e.g., `openmpi` with `mpich`,
|
||||||
|
and it is on the user to ensure ABI compatibility between
|
||||||
|
target and replacement specs. This currently requires some
|
||||||
|
expertise to use, but it will allow users to reuse the
|
||||||
|
binaries they create across more machines and environments.
|
||||||
|
b. Automatic Splicing (experimental)
|
||||||
|
In the concretizer config, enable automatic splicing:
|
||||||
|
```yaml
|
||||||
|
concretizer:
|
||||||
|
splice:
|
||||||
|
automatic: true
|
||||||
|
```
|
||||||
|
or run:
|
||||||
|
```console
|
||||||
|
spack config add concretizer:splice:automatic:true
|
||||||
|
```
|
||||||
|
The concretizer will select splices for ABI compatibility
|
||||||
|
to maximize package reuse. Packages can denote ABI
|
||||||
|
compatibility using the `can_splice` directive. No packages
|
||||||
|
in Spack yet use this directive, so if you want to use this
|
||||||
|
feature you will need to add `can_splice` annotations to
|
||||||
|
your packages. We are working on ways to add more ABI
|
||||||
|
compatibility information to the Spack package repository,
|
||||||
|
and this directive may change in the future.
|
||||||
|
Further documentation:
|
||||||
|
* https://spack.readthedocs.io/en/latest/build_settings.html#splicing
|
||||||
|
* https://spack.readthedocs.io/en/latest/packaging_guide.html#specifying-abi-compatibility
|
||||||
|
+ Broader variant propagation
|
||||||
|
You can specify propagated variants like
|
||||||
|
`hdf5 build_type==RelWithDebInfo` or `trilinos ++openmp` to
|
||||||
|
propagate a variant to all dependencies for which it is
|
||||||
|
relevant. This is valid *even* if the variant does not exist
|
||||||
|
on the package or its dependencies.
|
||||||
|
See https://spack.readthedocs.io/en/latest/basic_usage.html#variants.
|
||||||
|
+ Query specs by namespace
|
||||||
|
Allow a package's namespace (indicating the repository it came
|
||||||
|
from) to be treated like a variant. You can request packages
|
||||||
|
from particular repos like this:
|
||||||
|
```console
|
||||||
|
spack find zlib namespace=builtin
|
||||||
|
spack find zlib namespace=myrepo
|
||||||
|
```
|
||||||
|
Previously, the spec syntax only allowed namespaces to be prefixes of spec
|
||||||
|
names, e.g. `builtin.zlib`. The previous syntax still works.
|
||||||
|
+ `spack spec` respects environment settings and `unify:true`
|
||||||
|
`spack spec` did not previously respect environment lockfiles
|
||||||
|
or unification settings, which made it difficult to see
|
||||||
|
exactly how a spec would concretize within an environment.
|
||||||
|
Now it does, so the output you get with `spack spec` will
|
||||||
|
be *the same* as what your environment will concretize to
|
||||||
|
when you run `spack concretize`. Similarly, if you provide
|
||||||
|
multiple specs on the command line with `spack spec`, it will
|
||||||
|
concretize them together if `unify:true` is set.
|
||||||
|
+ Less noisy `spack spec` output
|
||||||
|
`spack spec` previously showed output like this:
|
||||||
|
```console
|
||||||
|
> spack spec /v5fn6xo
|
||||||
|
Input spec
|
||||||
|
--------------------------------
|
||||||
|
- /v5fn6xo
|
||||||
|
|
||||||
|
Concretized
|
||||||
|
--------------------------------
|
||||||
|
[+] openssl@3.3.1%apple-clang@16.0.0~docs+shared arch=darwin-sequoia-m1
|
||||||
|
...
|
||||||
|
```
|
||||||
|
But the input spec is redundant, and we know we run
|
||||||
|
`spack spec` to concretize the input spec. `spack spec` now
|
||||||
|
*only* shows the concretized spec. See #47574.
|
||||||
|
+ Better output for `spack find -c`
|
||||||
|
In an environment, `spack find -c` lets you search the
|
||||||
|
concretized, but not yet installed, specs, just as you would
|
||||||
|
the installed ones. As with `spack spec`, this should make
|
||||||
|
it easier for you to see what *will* be built before building
|
||||||
|
and installing it.
|
||||||
|
+ `spack -C <env>`: use an environment's configuration without activation
|
||||||
|
Spack environments allow you to associate:
|
||||||
|
1. a set of (possibly concretized) specs, and
|
||||||
|
2. configuration
|
||||||
|
When you activate an environment, you're using both of these.
|
||||||
|
Previously, we supported:
|
||||||
|
* `spack -e <env>` to run spack in the context of a specific
|
||||||
|
environment, and
|
||||||
|
* `spack -C <directory>` to run spack using a directory with
|
||||||
|
configuration files.
|
||||||
|
You can now also pass an environment to `spack -C` to use
|
||||||
|
*only* the environment's configuration, but not the specs or
|
||||||
|
lockfile.
|
||||||
|
* New commands, options, and directives
|
||||||
|
+ The new `spack env track` command (#41897) takes a non-managed
|
||||||
|
Spack environment and adds a symlink to Spack's
|
||||||
|
`$environments_root` directory, so that it will be included
|
||||||
|
for reference counting for commands like `spack uninstall`
|
||||||
|
and `spack gc`. If you use free-standing directory environments,
|
||||||
|
this is useful for preventing Spack from removing things
|
||||||
|
required by your environments. You can undo this tracking
|
||||||
|
with the `spack env untrack` command.
|
||||||
|
+ Add `-t` short option for `spack --backtrace`
|
||||||
|
`spack -d / --debug` enables backtraces on error, but it
|
||||||
|
can be very verbose, and sometimes you just want the
|
||||||
|
backtrace. `spack -t / --backtrace` provides that option.
|
||||||
|
+ `gc`: restrict to specific specs (#46790)
|
||||||
|
If you only want to garbage-collect specific packages, you can
|
||||||
|
now provide them on the command line. This gives users finer-grained
|
||||||
|
control over what is uninstalled.
|
||||||
|
+ oci buildcaches now support `--only=package`. You can now push
|
||||||
|
*just* a package and not its dependencies to an OCI registry.
|
||||||
|
This allows dependents of non-redistributable specs to be
|
||||||
|
stored in OCI registries without an error.
|
||||||
|
* Notable refactors
|
||||||
|
* Highlighted bugfixes
|
||||||
|
+ Externals no longer override the preferred provider.
|
||||||
|
External definitions could interfere with package preferences.
|
||||||
|
Now, if `openmpi` is the preferred `mpi`, and an external
|
||||||
|
`mpich` is defined, a new `openmpi` *will* be built if
|
||||||
|
building it is possible. Previously we would prefer `mpich`
|
||||||
|
despite the preference.
|
||||||
|
+ Composable `cflags`.
|
||||||
|
This release fixes a longstanding bug that concretization
|
||||||
|
would fail if there were different `cflags` specified in
|
||||||
|
`packages.yaml`, `compilers.yaml`, or on `the` CLI. Flags
|
||||||
|
and their ordering are now tracked in the concretizer and
|
||||||
|
flags from multiple sources will be merged.
|
||||||
|
+ Fix concretizer Unification for included environments.
|
||||||
|
* Deprecations, removals, and syntax changes
|
||||||
|
+ The old concretizer has been removed from Spack, along with
|
||||||
|
the `config:concretizer` config option. Spack will emit a
|
||||||
|
warning if the option is present in user configuration,
|
||||||
|
since it now has no effect. Spack now uses a simpler
|
||||||
|
bootstrapping mechanism, where a JSON prototype is tweaked
|
||||||
|
slightly to get an initial concrete spec to download.
|
||||||
|
+ Best-effort expansion of spec matrices has been removed.
|
||||||
|
This feature did not work with the "new" ASP-based concretizer,
|
||||||
|
and did not work with `unify: True` or `unify: when_possible`.
|
||||||
|
Use the
|
||||||
|
[exclude key](https://spack.readthedocs.io/en/latest/environments.html#spec-matrices)
|
||||||
|
for the environment to exclude invalid components, or use
|
||||||
|
multiple spec matrices to combine the list of specs for
|
||||||
|
which the constraint is valid and the list of specs for
|
||||||
|
which it is not.
|
||||||
|
+ The old Cray `platform` (based on Cray PE modules) has been
|
||||||
|
removed, and `platform=cray` is no longer supported. Since
|
||||||
|
`v0.19`, Spack has handled Cray machines like Linux clusters
|
||||||
|
with extra packages, and we have encouraged using this option
|
||||||
|
to support Cray. The new approach allows us to correctly handle
|
||||||
|
Cray machines with non-SLES operating systems, and it is much
|
||||||
|
more reliable than making assumptions about Cray modules. See
|
||||||
|
the `v0.19` release notes and #43796 for more details.
|
||||||
|
+ The `config:install_missing_compilers` config option has been
|
||||||
|
deprecated, and it is a no-op when set in `v0.23`. Our new
|
||||||
|
compiler dependency model will replace it with a much more
|
||||||
|
reliable and robust mechanism in `v1.0`.
|
||||||
|
+ Config options that deprecated in `v0.21` have been removed
|
||||||
|
in `v0.23`. You can now only specify preferences for
|
||||||
|
`compilers`, `targets`, and `providers` globally via the
|
||||||
|
`packages:all:` section. Similarly, you can only specify
|
||||||
|
`versions:` locally for a specific package.
|
||||||
|
+ Spack's old test interface has been removed (#45752), having
|
||||||
|
been deprecated in `v0.22.0` (#34236). All `builtin` packages
|
||||||
|
have been updated to use the new interface. See the
|
||||||
|
[stand-alone test documentation](
|
||||||
|
https://spack.readthedocs.io/en/latest/packaging_guide.html#stand-alone-tests)
|
||||||
|
+ The `spack versions --safe-only` option, deprecated since
|
||||||
|
`v0.21.0`, has been removed.
|
||||||
|
+ The `--dependencies` and `--optimize` arguments to `spack ci`
|
||||||
|
have been deprecated.
|
||||||
|
- Binary caches
|
||||||
|
+ Public binary caches now include an ML stack for Linux/aarch64.
|
||||||
|
We now build an ML stack for Linux/aarch64 for all pull
|
||||||
|
requests and on develop. The ML stack includes both CPU-only
|
||||||
|
and CUDA builds for Horovod, Hugging Face, JAX, Keras, PyTorch,
|
||||||
|
scikit-learn, TensorBoard, and TensorFlow, and related packages.
|
||||||
|
The CPU-only stack also includes XGBoost.
|
||||||
|
See https://cache.spack.io/tag/develop/?stack=ml-linux-aarch64-cuda.
|
||||||
|
- Architecture support
|
||||||
|
* archspec has been updated to `v0.2.5`, with support for
|
||||||
|
`zen5`.
|
||||||
|
* Spack's CUDA package now supports the Grace Hopper `9.0a`
|
||||||
|
compute capability.
|
||||||
|
- Other notable changes
|
||||||
|
+ Bugfix: `spack find -x` in environments.
|
||||||
|
+ Spec splices are now robust to duplicate nodes with the
|
||||||
|
same name in a spec.
|
||||||
|
+ Cache per-compiler libc calculations for performance.
|
||||||
|
+ Fixed a bug in external detection for openmpi.
|
||||||
|
+ Mirror configuration allows username/password as environment
|
||||||
|
variables.
|
||||||
|
+ Default library search caps maximum depth/
|
||||||
|
+ Unify interface for `spack spec` and `spack solve` commands.
|
||||||
|
+ Spack no longer RPATHs directories in the default library
|
||||||
|
search path.
|
||||||
|
+ Improved performance of Spack database.
|
||||||
|
+ Enable package reuse for packages with versions from git refs.
|
||||||
|
+ Improved tracking of task queueing/requeueing in the installer.
|
||||||
|
- Deleted: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
|
||||||
|
Patch no longer required for target versions.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Nov 1 06:32:35 UTC 2024 - Egbert Eich <eich@suse.com>
|
Fri Nov 1 06:32:35 UTC 2024 - Egbert Eich <eich@suse.com>
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package spack
|
# spec file for package spack
|
||||||
#
|
#
|
||||||
# Copyright (c) 2024 SUSE LLC
|
# Copyright (c) 2025 SUSE LLC
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -63,7 +63,7 @@ ExclusiveArch: do_not_build
|
|||||||
%define mypython python%{?mypyver}
|
%define mypython python%{?mypyver}
|
||||||
|
|
||||||
Name: spack
|
Name: spack
|
||||||
Version: 0.22.2
|
Version: 0.23.0
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Package manager for HPC systems
|
Summary: Package manager for HPC systems
|
||||||
License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause
|
License: Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clause
|
||||||
@ -81,7 +81,6 @@ Source6: spack_get_libs.sh
|
|||||||
Patch2: Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch
|
Patch2: Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch
|
||||||
Patch4: added-target-and-os-calls-to-output-of-spack-spec-co.patch
|
Patch4: added-target-and-os-calls-to-output-of-spack-spec-co.patch
|
||||||
Patch5: Make-spack-paths-compliant-to-distro-installation.patch
|
Patch5: Make-spack-paths-compliant-to-distro-installation.patch
|
||||||
Patch6: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch
|
|
||||||
Patch7: Fix-Spinx-configuration-to-avoid-throwing-errors.patch
|
Patch7: Fix-Spinx-configuration-to-avoid-throwing-errors.patch
|
||||||
Patch8: Set-modules-default-to-lmod.patch
|
Patch8: Set-modules-default-to-lmod.patch
|
||||||
Patch9: Add-support-for-container-building-using-a-SLE-base-container.patch
|
Patch9: Add-support-for-container-building-using-a-SLE-base-container.patch
|
||||||
@ -127,7 +126,7 @@ BuildRequires: makeinfo
|
|||||||
# Hardcode this - there is no python2 version of this around any more.
|
# Hardcode this - there is no python2 version of this around any more.
|
||||||
BuildRequires: %{mypython}-Sphinx >= 3.4
|
BuildRequires: %{mypython}-Sphinx >= 3.4
|
||||||
BuildRequires: %{mypython}-sphinxcontrib-programoutput
|
BuildRequires: %{mypython}-sphinxcontrib-programoutput
|
||||||
BuildRequires: spack
|
BuildRequires: spack = %version
|
||||||
# html
|
# html
|
||||||
BuildRequires: graphviz
|
BuildRequires: graphviz
|
||||||
# info
|
# info
|
||||||
|
Loading…
Reference in New Issue
Block a user