Compare commits
No commits in common. "factory" and "factory" have entirely different histories.
@ -0,0 +1,27 @@
|
|||||||
|
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
|
3
spack-0.22.1.tar.gz
Normal file
3
spack-0.22.1.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:374968461ea95fcf22f230aa818cf99cd79af4cd3d28fb0927d5444525b143b3
|
||||||
|
size 11108002
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ddb8220c46743e45c9484622370a1e17e193acba6a43230868c2dbc717e88b56
|
|
||||||
size 11847230
|
|
@ -22,6 +22,3 @@ 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 .*")
|
|
||||||
|
270
spack.changes
270
spack.changes
@ -1,273 +1,3 @@
|
|||||||
-------------------------------------------------------------------
|
|
||||||
Mon Jan 6 19:01:00 UTC 2025 - Egbert Eich <eich@suse.com>
|
|
||||||
|
|
||||||
- Work towards a reproducible doc build (boo#1235144):
|
|
||||||
When building documentation, hard code:
|
|
||||||
* year for license.
|
|
||||||
* cpu count dependent settings.
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
|
||||||
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>
|
|
||||||
|
|
||||||
- Update to version 0.22.2
|
|
||||||
* Bugfixes
|
|
||||||
- Forward compatibility with Spack 0.23 packages with language
|
|
||||||
dependencies.
|
|
||||||
- Forward compatibility with `urllib` from Python 3.12.6+.
|
|
||||||
- Bump vendored `archspec` for better aarch64 support.
|
|
||||||
- Fix regression in `{variants.X}` and `{variants.X.value}`
|
|
||||||
format strings.
|
|
||||||
- Ensure shell escaping of environment variable values in load
|
|
||||||
and activate commands.
|
|
||||||
- Fix an issue where `spec[pkg]` considers specs outside the
|
|
||||||
current DAG.
|
|
||||||
- Do not halt concretization on unknown variants in externals.
|
|
||||||
- Improve validation of `develop` config section/
|
|
||||||
- Explicitly disable `ccache` if turned off in config, to
|
|
||||||
avoid cache pollution.
|
|
||||||
- Improve backwards compatibility in `include_concrete`.
|
|
||||||
- Fix issue where package tags were sometimes repeated.
|
|
||||||
- Make `setup-env.sh` "sourced only" by dropping execution bits.
|
|
||||||
- Make certain source/binary fetch errors recoverable instead
|
|
||||||
of a hard error.
|
|
||||||
- Remove debug statements in package hash computation.
|
|
||||||
- Remove redundant clingo warnings.
|
|
||||||
- Remove hard-coded layout version.
|
|
||||||
- Do not initialize previous store state in `use_store`.
|
|
||||||
* Package updates
|
|
||||||
- `chapel` major update/
|
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Jul 10 06:54:31 UTC 2024 - Egbert Eich <eich@suse.com>
|
Wed Jul 10 06:54:31 UTC 2024 - Egbert Eich <eich@suse.com>
|
||||||
|
|
||||||
|
13
spack.spec
13
spack.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package spack
|
# spec file for package spack
|
||||||
#
|
#
|
||||||
# Copyright (c) 2025 SUSE LLC
|
# Copyright (c) 2024 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.23.0
|
Version: 0.22.1
|
||||||
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,6 +81,7 @@ 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
|
||||||
@ -126,7 +127,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 = %version
|
BuildRequires: spack
|
||||||
# html
|
# html
|
||||||
BuildRequires: graphviz
|
BuildRequires: graphviz
|
||||||
# info
|
# info
|
||||||
@ -226,12 +227,6 @@ for i in share/spack/setup-env.*; do
|
|||||||
done
|
done
|
||||||
%else
|
%else
|
||||||
cp %{S:5} lib/spack/docs/
|
cp %{S:5} lib/spack/docs/
|
||||||
# For building docs make build reproducible:
|
|
||||||
# - hard code year in license checker
|
|
||||||
year=$(sed -ne "/Copyright/s@.*\([0-9]\{4\}\).*@\1@p" %{_sourcedir}/%{name}.spec)
|
|
||||||
sed -ie "/^latest_year/s@\(.* = \).*@\1${year}@" lib/spack/spack/cmd/license.py
|
|
||||||
# - hard code cpu count dependent settings
|
|
||||||
sed -ie "/max_cpus.* =\|build_jobs/s@cpus_available()@8@" lib/spack/spack/config.py
|
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
Loading…
x
Reference in New Issue
Block a user