* Add patch for py-netcdf4 so that we can build py-netcdf4 with ~mpi when netCDF was built with +mpi
* Address reviewer requests for py-netcdf4. Add conflict for 'pynetcdf4~mpi ^netcdf-c~mpi ^hdf5+mpi'
* Make py-netcdf4~mpi ^netcdf-c~mpi ^hdf5+mpi work
* Apply suggestions from code review
Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com>
* Update var/spack/repos/builtin/packages/py-netcdf4/disable_parallel_support.patch
* Apply suggestions from code review
Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com>
---------
Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com>
* zoltan: add scotch library dependency
Due to the way the shared library is built it does not pick up
dependencies to other shared libraries correctly. This adds the library
dependency manually in the same way it is already done for parmetis.
* add tukss as maintainer for zoltan
This PR improves compatibility with specs installed before #45189, and with externals specifying a compiler, by using the annotated compiler to "satisfy" a spec query.
On top of that, the PR adds a new flag for:
```console
$ spack find --specfile-format -I %gcc
-- linux-ubuntu20.04-icelake / gcc@10.5.0 -----------------------
[+] [v4] ca-certificates-mozilla@2023-05-30 [e] [v4] cmake@3.31.6 [+] [v4] gcc-runtime@10.5.0 [e] [v4] glibc@2.31 [+] [v4] gmake@4.4.1 [+] [v4] hdf5@1.14.5 [+] [v4] pkgconf@2.2.0 [+] [v4] zlib-ng@2.2.1
==> 8 installed packages
```
which shows the specfile format of the specs being retrieved.
* actsvg: use Spack pybind11 package
This commit makes the actsvg package use the Spack-provided pybind11
package rather than having it download its own copy.
* Make pybind dependency more flexible
* mesa: add v23.3.3 and use py-packaging while python>=3.12
* miss mako>=0.8
* use py-packaging when python3.12+
Co-authored-by: Veselin Dobrev <v-dobrev@users.noreply.github.com>
* remove python depneds_on for differnent mesa version
* mesa require python3.6+ for build
* Update var/spack/repos/builtin/packages/mesa/package.py
---------
Co-authored-by: Veselin Dobrev <v-dobrev@users.noreply.github.com>
Fixes a logic bug where a -> b was assumed to imply not a -> not b
in conditional requirements.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* geomodel: depend on c
* hep: add geomodel
* hep: geomodel +fullsimlight
* geomodel: depends on virtual gl, not opengl
* soqt: depends on gl and glu instead of opengl
* geomodel: rm generated comments on language dependencies
* py-flit: add v3.10.0 and v3.10.1
* fixup! py-flit: add v3.10.0 and v3.10.1
* py-flit and py-flit-core: add v3.11.0
* py-flit and py-flit-core: add v3.12.0
* py-flit: some deps are runtime only
* py-flit-core: fix python dep for v3.12.0
* py-flit-core: correct versions for python dep
* update libcerf to use new URL and CMake for new versions but keep old URL and autoconf for 1.3
* add maintainer
* fix comment
---------
Co-authored-by: white238 <white238@users.noreply.github.com>
* MAINT: py-salib up to v1.5.1
* MAINT: black style requires trailing commas
* WIP: make pathos an optional dependency at the same version where salib upstream made it optional
* MAINT: fix run time requirements for older versions. Add build/run requirements for newere versions
* MAINT: spack style specs
* MAINT: spack package naming convention
* MAINT: match dependency order to version order
* Make petsc optional
* Add C dependency
* Add to cmake args
* Make petsc optional
* Add C dependency
* Add to cmake args
* Update var/spack/repos/builtin/packages/fenics-dolfinx/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Fix duplicate line
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
When trying to use Spack to build Intel TBB on the EOS network file
system we use at CERN, I am facing the following error:
```
Launching the installer...
Installation directory is not empty.
The product cannot be installed into nonempty directory
'/eos/home-s/sswatman/spack/opt/spack/linux-x86_64_v2/...
intel-oneapi-tbb-2021.12.0-3jlx6hlr3z6di42f3qy35eizcse7u2tk'.
```
This error appears to happen because Spack tries to set `$HOME` to the
prefix of the package, into which the Intel installer is also trying to
install it's software. I've found that an easy fix is to set `$HOME` to
a directory in the build stage instead, as this can be guaranteed to
remain empty.
* add version 0.1.10
* add hpc-beeflow v0.1.10
* force typer version to 0.5.0
* add neo4j and redis dependencies
* add method that sets the path of neo4j and redis installations
---------
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
* Kluge to support file-per-rank and multiple-rank-single-file read/write in CGNS, other CGNS-related changes.
* Catalyst changes
* Update to latest TriBITs
* Improved static library build
* EPU: Handle case where no elements, but add_processor_id specified
* CPUP: Handle decomp-created zgc between zones better
* IOSS: Add filessystem type function (lustre, gpfs, nfs, ...)
* CPUP: Fix handling of assemblies
* IOSS: fix io_shell compare of db with no changesets
* IOSS: Cgns - handle missing assemblies correctly
* IOSS: Clean up owning_processor calculation
* EXO2MAT: Add -i option to not transfer info records to mat file
* cudnn: aarch64 hash for several version
* Remove spurious newline
* Fix format
* [@spackbot] updating style on behalf of tehrengruber
* Fix cudnn 8.8 link derivation for aarch64
* Use sbsa for cudnn >= 8.3.1
* Fix typo
* Temporarily remove hashes
* Undo
* Use sbsa for cudnn >= 8.3.1
* Update hashes
---------
Co-authored-by: tehrengruber <tehrengruber@users.noreply.github.com>
Co-authored-by: Till Ehrengruber <tille@santis-ln001.cscs.ch>
* Automated deployment to update package flux-core 2025-04-04
* Add py-packaging
* Do not pin py-packaging
* flux-sched: build older flux-core
flux sched 0.38 was the first that required gcc
version 12 or higher, and flux-core continued to
build for some time, but eventually added
features that we are now seeing break with
sched 0.37 and the latest flux. This conflicts
should ensure that older flux-sched, which
is being built by having an older compiler,
only builds with flux-core up to 0.68.
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
---------
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
* py-gidgetlab: add v2.0.0-v2.1.0
1.1.0 doesn't work with Python 3.13.
See this commit (and the tags that contain it) for history on build
deps:
310bc109ba.
* group dependencies
Co-authored-by: Alec Scott <hi@alecbcs.com>
* set python version constraint
Co-authored-by: Alec Scott <hi@alecbcs.com>
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
* simple update of some of neovim deps
* switch to neovim fork for unibilium and add newer versions
* fix tree-sitter _DEFAULT_SOURCE vs _BSD_SOURCE
* oneliner for filter_file
* Remove hard-coded compiler
* Remove compiler flags
* Use spack functions
* Add a cxxstd variant
* Replace main branch of googletest with some random not too old version
building fenics-dolfinx resulted in the following error:
==> No patches needed for fenics-dolfinx
==> fenics-dolfinx: Executing phase: 'cmake'
==> Error: ProcessError: Command exited with status 1:
3 errors found in build log:
3 -- The C compiler identification is unknown
4 -- The CXX compiler identification is GNU 12.2.0
5 -- Detecting C compiler ABI info
6 -- Detecting C compiler ABI info - failed
7 -- Check for working C compiler: /opt/spack/[...]libexec/spack/cc
8 -- Check for working C compiler: /opt/spack/[...]libexec/spack/cc - broken
>> 9 CMake Error at /opt/spack/opt/spack/[...]/CMakeTestCCompiler.cmake:67 (message):
10 The C compiler
11
12 "/opt/spack/opt/spack/[...]/libexec/spack/cc"
13
14 is not able to compile a simple test program.
15
...
Thanks to @amd-toolchain-support issue #50021, this is easily fixed
by adding the one-liner for the missing dependency for the C compiler.
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
* `x=*` constrained by `+x` now produces a boolean valued variant instead of a multi-valued variant.
* Values are now always stored as a tuple internally, whether bool, single or multi-valued.
* Value assignment has a stricter api to prevent ambiguity / type issues related to
`variant.value = "x"` / `variant.value = ["x"]` / `variant.value = ("x",)`. It's now `variant.set("x", ...)` for
single and multi-valued variants.
* The `_original_value` prop is dropped, since it was unused.
* The wildcard `*` is no longer a possible variant value in any type of variant, since the *parser*
deals with it and creates a variant with no values.
The second change technically affects non-Windows, but the
behavior should be exactly the same:
* Packages no longer have access to `.msbuild` and `.nmake`
automatically; they now get them via a dependency on `msvc`.
* Update two CMake-based packages that call `make test` to
instead call `ctest` (`netcdf-cxx4` and `pegtl`).
CMake-based packages should do this because on Windows
`make test` will not generally work, but `ctest` does.
* Fix `openssl` "make test" on Windows (WRT prior point: not
a CMake-based package).
* genfit: depend on c compiler to fix installation issues
genfit does not specify `LANGUAGES` in their `project` declaration yet, so C is also required to pass the cmake stage.
* vbfnlo: Depend on C compiler to pass configure stage
* cppunit: Depend on C compiler to pass configure stage
* Make py-pyqt5 depend on C to fix build error
* bdsim: Depend on C to pass configure stage
This strong preference fixes a sporadic issue when
concretizing environments with `unify:when_possible`.
In the first round of concretization, it is almost
certain that glibc is installed, and that spec might
provide iconv.
In later rounds using that as a provider might be
preferred, as it leads to less nodes to be "built".
To avoid duplication by default, prefer libiconv
in a stronger way than default preferences.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Show progress meter for fetches when `stdout` is a `tty`.
* fetch_strategy.py: show progress
* "Fetched: x MB at y MB/s"
* add tests, show % if content-length
This PR fixes the issues with `%` and reused specs, due to https://github.com/spack/spack/issues/49847#issuecomment-2774640234
It does so by adding another layer of indirection, so that whenever a spec
`foo %bar` is encountered, the `%bar` part is encoded as an
`attr("build_requirement", ...)`.
Then:
1. If `foo` is a node to be built, then the build requirement implies a dependency
2. Otherwise it implies looking e.g. reused specs metadata, and ensure it matches
---------
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
When the solver produces specs that do not satisfy the input
constraints, dump both input and output specs as json in an temporary
dir and ask the user to upload these files in a bug report.
Fetching generated tarballs from github.com sometimes takes pauses for
more than 10 seconds, when the server is slow to put together the next
bits of the tarball. Default to 30s to avoid that issue.
Currently we inject runtimes when a package has a direct build dep on a
compiler, but what matters is whether the package depends on a language.
That way we can avoid recursion of injecting runtimes to runtimes
without a rule in the solver: runtimes don't depend on languages, they
just have a build dep on the same compiler.
* Clearly split old and new hip settings requirements
* Fix style
* TO REVERT: Trigger CI
* Apply generic rocm handling to every project
* TO REVERT: Trigger CI
* Revert "TO REVERT: Trigger CI"
This reverts commit dcedb2ead5.
* Revert "TO REVERT: Trigger CI"
This reverts commit 02f76a8ca6.
* Update RADIUSS packages with latest release and sync with RSC implementation
* Update CARE package
* make default logic for hip support more robust
* TO REVERT: Trigger CI
* Fix style
* Fix style (bis)
* Shorten message
* GPU_TARGET is only necessary under certain project specific conditions, it should not be necessary in general
* Update logic to find amdclang++
* Fix syntax
* Let's postpone update of hip handling in camp
* Revert "TO REVERT: Trigger CI"
This reverts commit 620fbc1b01.
* Remove unecessary logic from CARE
* Update CARE: add 0.15.1
In this way, to run them, we just need to run:
spack unit-test lib/spack/spack/test/concretization
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
- allow conduit=ofi-slingshot11 to work with regular OpenMPI and MPICH when
they are built with ^libfabric fabrics=cxi.
- add missing libfabric dependency for conduit=ofi-slingshot11. Embedded GASNet
build uses PATH to detect libfabric installation.
This explicitly specifies the correct library for zlib to CMake:
CMake's find zlib looks for zlib before zdll. On Windows, zlib is the
static lib, and zdll the import library. LibPNG only links to shared
zlib, but was getting zlib from CMake on Windows, which was resulting
in a linker failure.
* TestSuite: add type hints
* spack test run: add a --timeout argument
* pipelines: allow 2 minutes to run tests
* Fix docstrings, increase maximum pipelines time for tests to 5 mins.
* Use SIGTERM first, SIGKILL shortly after
* Add unit-tests for "start_build_process"
---------
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* pressio: add packages for pressio, pressio-ops, and pressio-log
* pressio: use symlinks for pressio-ops/log; specify compatible versions
* pressio: refactor supported versions, update pressio-ops to use main branch
* pressio: update package after renaming repository to pressio-rom
* pressio: remove unneeded if statement
---------
Co-authored-by: Caleb Schilly <cwschilly@gmail.com>
Multiple build systems have been part of Spack for a long
time now, and they are rarely the cause of a missing attribute.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Similar to the range-or-specific-version ambiguity of `@1.2` in the past,
which was solved with `@1.2` vs `@=1.2` we still have the ambiguity of
`name=a,b,c` in multi-valued variants. Do they mean "at least a,b,c" or
"exactly a,b,c"?
This issue comes up in for example `gcc languages=c,cxx`; there's no
way to exclude `fortran`.
The ambiguity is resolved with syntax `:=` to distinguish concrete from
abstract.
The following strings parse as **concrete** variants:
* `name:=a,b,c` => values exactly {a, b, c}
* `name:=a` => values exactly {a}
* `+name` => values exactly {True}
* `~name` => values exactly {False}
The following strings parse as **abstract** variants:
* `name=a,b,c` values at least {a, b, c}
* `name=*` special case for testing existence of a variant; values are at
least the empty set {}
As a reminder
* `satisfies(lhs, rhs)` means `concretizations(lhs)` ⊆ `concretizations(rhs)`
* `intersects(lhs, rhs)` means `concretizations(lhs)` ∩ `concretizations(rhs)` ≠ ∅
where `concretizations(...)` is the set of sets of variant values in this case.
The satisfies semantics are:
* rhs abstract: rhs values is a subset of lhs values (whether lhs is abstract or concrete)
* lhs concrete, rhs concrete: set equality
* lhs abstract, rhs concrete: false
and intersects should mean
* lhs and rhs abstract: true (the union is a valid concretization under both)
* lhs or rhs abstract: true iff the abstract variant's values are a subset of the concrete one
* lhs concrete, rhs concrete: set equality
Concrete specs with single-valued variants are printed `+foo`, `~foo` and `foo=bar`;
only multi-valued variants are printed with `foo:=bar,baz` to reduce the visual noise.
neoverse_v1 matches the name of the stack and more accurately captures
the requirement for these jobs. The relevant runners in GitLab already
bear both tags, so this shouldn't affect how jobs get assigned to runners.
* kokkos: add version 4.6.00
* kokkos-kernels: add version 4.6.00
* kokkos-nvcc-wrapper: add version 4.6.00 and update url to match kokkos releases
* kokkos: add zen4 support
Return a single scope from environment.env_config_scope
Return a single scope from environment_path_scope
---------
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* e4s oneapi: upgrade to latest compilers oneapi@2025.1
* update specs and package preferences
* enable some more dav packages
* enable additional specs
* e4s oneapi: packages: elfutils does not have bzip2 variant
* e4s oneapi: packages: elfutils does not have xz variant
* e4s oneapi: comment out heffte+sycl
* comment out e4s oneapi failures
* comment out more failures
* comment out failing spec
* Revert "paraview: add patch for Intel Classic compilers (#49116)"
This reverts commit 7a95e2beb5.
We'll mark Intel Classic compilers as conflicting with ParaView
versions 5.13.0-5.13.2 instead since 5.13.3 is available and can be
built with with those compilers.
* Add conflict for Intel Class compilers and ParaView 5.13.0-5.13.2.
* paraview: add new v5.13.3 release
This commit reorders ASP setup, so that rules from
possible compilers are collected first.
This allows us to know the dependencies that may be
injected before counting the possible dependencies,
so we can account for them too.
Proceeding this way makes it easier to inject
complex runtimes, like hip.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Deal with the "issue" that passing a str instance does not cause a
type check failure, because str is a subset of Sequence[str] and
Iterable[str]. Instead fix it by special casing the str instance.
* fix: move depends_on(c,cxx,fortran) with other dependencies, after variants
* treewide style: move depends_on(c,cxx,fortran) with other dependencies, after variants
* treewide style: move depends_on(c,cxx,fortran) with other dependencies, after variant
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
CMake 4.0.0 breaks compatibility with CMake projects
requiring a CMake < 3.5. However, many projects that
specify a minimum requirement for versions older
than 3.5 are actually compatible with newer CMake
and do not use CMake 3.4 or older features. This
allows those projects to use a newer CMake
Co-authored-by: John W. Parent <45471568+johnwparent@users.noreply.github.com>
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
The requirements being removed are redundant, or
even outdated (%cray-prgenv-* is not a compiler in v0.23).
When compilers turned into nodes, these constraints,
with the "one_of" policy, started being unsat under
certain conditions e.g. we can't compile anymore
with GCC and depend on LLVM as a library.
Remove the requirements to make the recipe solvable
again.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* update packages to work with python 3.12+
* partd updates
* py-nc-time-axis updates for 3.12
* Add new py-cftime as required for py-nc-time-axis
* fix dropped python 3.9
* switch from when blocks to flat
* remove redundant requires
* protect version range for python@:3.11
* add new c-blosc to support newly added python 3.12 py-blosc version
* add scikit-build 0.18.1 for python 3.12 required for this set of commits
* add complete optional variant for py-partd to match pyproject.toml. Deprecate super old versions
* only set system blosc for the required case
* style
* Remove incorrect python bound
* improve python version reqs and move to more canonical depends_on
* move to depends from req
* add new python range limit, update comment
* remove @coreyjadams as maintainer as per their request https://github.com/spack/spack/pull/48830#issuecomment-2705062587
* Fix python bounds
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Check for LSF, FLux, and Slurm when determing MPI exec
* Make scheduler/MPI exec helper functions methods of CachedCMakeBuilder
* Remove axom workaround for running mpi on machines with flux
* Clearly split old and new hip settings requirements
* Apply generic rocm handling to every project
* make default logic for hip support more robust
* GPU_TARGET is only necessary under certain project specific conditions, it should not be necessary in general
* Update logic to find amdclang++
fixes#49717
If no compiler is listed in the 'packages' section of
the configuration, Spack will currently try to:
1. Look for a legacy compilers.yaml to convert
2. Look for compilers in PATH
in that order. If an entry in compilers.yaml is
corrupted, that should not result in an obscure
error.
Instead, it should just be skipped.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
This module references `spack.error.Something` in the same file, which happens to
work but is incorrect. Use `spack.error` to prevent that in the future.
Adds Equinox, a JAX library. I've added the latest version 0.11.2, and also 0.11.0
which is compatible with older JAX versions.
I've built both versions and loading an example from their page seems to work OK.
* Add py-wadler-lindig
* Add py-equinox
I noticed that `abseil-cpp` was showing in `spack find` with "no compiler", and the only
difference between it and other nodes was that it *only* depends on `cxx` -- others
depend on `c` as well.
It turns out that the `select()` method on `EdgeMap` only takes `Sequence[str]` and doesn't
check whether they're actually just one `str`. So asking for, e.g., `cxx` is like asking for
`c` or `x` or `x`, as the `str` is treated like a sequence. This causes Spack to miss `cxx`
and `fortran` language virtuals in `DeprecatedCompilerSpec`.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Currently, externals show up in `spack find` and `spack spec` install status as a green
`[e]`, which is hard to distinguish from the green [+] used for installed packages.
- [x] Make externals magenta instead, so they stand out.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Concretization setup was checking whether any input spec has a dependency
that's *not* in the set of possible dependencies for all roots in the solve.
There are two reasons to check this:
1. The user could be asking for a dependency that none of the roots has, or
2. The user could be asking for a dependency that doesn't exist.
For abstract roots, (2) implies (1), and the check makes sense. For concrete
roots, we don't care, because the spec has already been built. If a `package.py`
no longer depends on something it did before, it doesn't matter -- it's already
built. If the dependency no longer exists, we also do not care -- we already
built it and there's an installation for it somewhere.
When you concretize an environment with a lockfile, *many* of the input specs
are concrete, and we don't need to build them. If a package changes its
dependencies, or if a `package.py` is removed for a concrete input spec, that
shouldn't cause an already-built environment to fail concretization.
A user reported that this was happening with an error like:
```console
spack concretize
==> Error: Package chapel does not depend on py-protobuf@5.28.2/a4rf4glr2tntfwsz6myzwmlk5iu25t74
```
Or, with traceback:
```console
File "/apps/other/spack-devel/lib/spack/spack/solver/asp.py", line 3014, in setup
raise spack.spec.InvalidDependencyError(spec.name, missing_deps)
spack.spec.InvalidDependencyError: Package chapel does not depend on py-protobuf@5.28.2/a4rf4glr2tntfwsz6myzwmlk5iu25t74
```
Fix this by skipping the check for concrete input specs. We already ignore conflicts,
etc. for concrete/external specs, and we do not need metadata in the solve for
concrete dependencies b/c they're imposed by hash constraints.
- [x] Ignore the package existence check for concrete input specs.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
* Skip packages removed for automatic checksum verification
* Unify finding modified or added packages with spack.repo logic
* Remove unused imports
* Fix unit-tests using shared modified function
* Update last remaining unit test to new format
* glab: add v1.54.0 and v1.55.0
* glab: uniform go deps
Co-authored-by: Alec Scott <hi@alecbcs.com>
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
* py-jaxlib: add spack-built ROCm support
* fix style
* py-jaxlib 0.4.38 rocm support
* py-jaxlib 0.4.38 rocm support
* add comgr dependency
* changes for ROCm external and enable till 0.4.38
* enable version of py-jax
* add jax+rocm to ci
* add conflict for cuda and remove py-jaxlib from aarch64 pipeline
* Update var/spack/repos/builtin/packages/py-jaxlib/package.py
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
* add conflict for aarch64
---------
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
## Summary
Compilers stop being a *node attribute*, and become a *build-only* dependency.
Packages may declare a dependency on the `c`, `cxx`, or `fortran` languages, which
are now treated as virtuals, and compilers would be *providers* for one or more of
those languages. Compilers can also inject runtime dependency, on the node being
compiled. An example graph for something as simple as `zlib-ng` is the following:
<p align="center">
<img src="https://github.com/user-attachments/assets/ee6471cb-09fd-4127-9f16-b9fe6d1338ac" alt="zlib-ng DAG" width="80%" height="auto">
</p>
Here `gcc` is used for both the `c`, and `cxx` languages. Edges are annotated with
the virtuals they satisfy (`c`, `cxx`, `libc`). `gcc` injects `gcc-runtime` on the nodes
being compiled. `glibc` is also injected for packages that require `c`. The
`compiler-wrapper` is explicitly represented as a node in the DAG, and is included in
the hash.
This change in the model has implications on the semantics of the `%` sigil, as
discussed in #44379, and requires a version bump for our `Specfile`, `Database`,
and `Lockfile` formats.
## Breaking changes
Breaking changes below may impact users of this branch.
### 1. Custom, non-numeric version of compilers are not supported
Currently, users can assign to compilers any custom version they want, and Spack
will try to recover the "real version" whenever the custom version fails some operation.
To deduce the "real version" Spack must run the compiler, which can add needless
overhead to common operations.
Since any information that a version like `gcc@foo` might give to the user, can also
be suffixed while retaining the correct numeric version, e.g. `gcc@10.5.0-foo`, Spack
will **not try** anymore to deduce real versions for compilers.
Said otherwise, users should have no expectation that `gcc@foo` behaves as
`gcc@X.Y.Z` internally.
### 2. The `%` sigil in the spec syntax means "direct build dependency"
The `%` sigil in the spec syntax means *"direct build dependency"*, and is not a node
attribute anymore. This means that:
```python
node.satisfies("%gcc")
```
is true only if `gcc` is a direct build dependency of the node. *Nodes without a compiler
dependency are allowed.*
### `parent["child"]`, and `node in spec`, will now only inspect the link/run sub-DAG
and direct build dependencies
The subscript notation for `Spec`:
```python
parent["child"]
```
will look for a `child` node only in the link/run transitive graph of `parent`, and in its
direct build dependencies. This means that to reach a transitive build dependency,
we must first pass through the node it is associated with.
Assuming `parent` does not depend on `cmake`, but depends on a `CMakePackage`,
e.g. `hdf5`, then we have the following situation:
```python
# This one raises an Exception, since "parent" does not depend on cmake
parent["cmake"]
# This one is ok
cmake = parent["hdf5"]["cmake"]
```
### 3. Externals differing by just the compiler attribute
Externals are nodes where dependencies are trimmed, and that _is not planned to
change_ in this branch. Currently, on `develop` it is ok to write:
```yaml
packages:
hdf5:
externals:
- spec: hdf5@1.12 %gcc
prefix: /prefix/gcc
- spec: hdf5@1.12 %clang
prefix: /prefix/clang
```
and Spack will account for the compiler node attribute when computing the optimal
spec. In this branch, using externals with a compiler specified is allowed only if any
compiler in the dag matches the constraints specified on the external. _The external
will be still represented as a single node without dependencies_.
### 4. Spec matrices enforcing a compiler
Currently we can have matrices of the form:
```yaml
matrix:
- [x, y, z]
- [%gcc, %clang]
```
to get the cross-product of specs and compilers. We can disregard the nature of the
packages in the first row, since the compiler is a node attribute required on each node.
In this branch, instead, we require a spec to depend on `c`, `cxx`, or `fortran` for the
`%` to have any meaning. If any of the specs in the first row doesn't depend on these
languages, there will be a concretization error.
## Deprecations
* The entire `compilers` section in the configuration (i.e., `compilers.yaml`) has been
deprecated, and current entries will be removed in v1.2.0. For the time being, if Spack
finds any `compilers` configuration, it will try to convert it automatically to a set of
external packages.
* The `packages:compiler` soft-preference has been deprecated. It will be removed
in v1.1.0.
## Other notable changes
* The tokens `{compiler}`, `{compiler.version}`, and `{compiler.name}` in `Spec.format`
expand to `"none"` if a Spec does not depend on C, C++, or Fortran.
* The default install tree layout is now
`"{architecture.platform}-{architecture.target}/{name}-{version}-{hash}"`
## Known limitations
The major known limitations of this branch that we intend to fix before v1.0 is that compilers
cannot be bootstrapped directly.
In this branch we can build a new compiler using an existing external compiler, for instance:
```
$ spack install gcc@14 %gcc@10.5.0
```
where `gcc@10.5.0` is external, and `gcc@14` is to be built.
What we can't do at the moment is use a yet to be built compiler, and expect it will be
bootstrapped, e.g. :
```
spack install hdf5 %gcc@14
```
We plan to tackle this issue in a following PR.
---------
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Signed-off-by: Harmen Stoppels <me@harmenstoppels.nl>
Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
The `umea.se` mirror seems to have gone down (or at least is forbidden for now).
Revert the checksum changes in #47825; points at the official GNOME mirror
instead of the prior two places we were getting `gdk-pixbuf`.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Since we moved from creating clingo symbols directly to constructing a pure string
representation of the program, we don't need to make `AspFunctions` into symbols before
turning them into strings. We can just write strings like clingo would.
This cuts about 25% off the setup time by avoiding an unnecessary round trip.
- [x] create strings directly from `AspFunctions`
- [x] remove unused `symbol()` method on `AspFunction`
- [x] setup no longer tries to call `symbol()`
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Signed-off-by: Greg Becker <becker33@llnl.gov>
---------
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Greg Becker <becker33@llnl.gov>
* trilinos: add equals sign to kokkos dependencies.
* Fix some license headers to pass style check.
* Generalize a bit.
* Generalize a bit more.
* datatransferkit: constraing to maximum of trilinos@16.0.
* limit some patches by chapel version
* fix short output version if building main
* update patches, remove unneeded 'self' refs
* fix spack style
* update patches with changes from PR
* change py-protobuf to just protobuf dep
* add PR numbers for patches
* fix spack style
* update 2.4 sha256
A user had `grep` aliased to `grep -n`, which was causing `csh` setup to
fail due to number prefixes in `SPACK_ROOT`.
- [x] Prefix invocations of `grep` and `sed` (which are not builtin) with `\`
to avoid any aliases.
- [x] Avoid using `dirname` altogether -- use csh's `:h` modifier (which does
the same thing) instead.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
* Fix problem at least with datatransferkit
* Include patch 11676 from trilinos
* Add patches for trilinos 13.4.1
* style check failed
* Update links for patches
* additional style check failed
* Add recursive argument to spack develop
This effort allows for a recursive develop call
which will traverse from the develop spec given back to the root(s)
and mark all packages along the path as develop.
If people are doing development across the graph then paying
fetch and full rebuild costs every time spack develop is called
is unnecessary and expensive.
Also remove the constraint for concrete specs and simply take the
max(version) if a version is not given. This should default to the
highest infinity version which is also the logical best guess for
doing development.
* sst-core: fix for > 14.0.0 requiring ncurses
* sst-core: backport fix for curses detection
* sst-core: ensure HDF5 is ignored if not specified
* sst-core: HDF5 integration is via C++
* sst-core: switch to with_or_without for configure
* sst-core: switch to enable_or_disable for configure
* sst-core: control memory pools and debug output with variants
* exawind: add versions and commits to tags.
* Add new version of TIOGA.
* openfast: add commits to tags.
* amr-wind: add dependencies.
* amr-wind: add more settings.
---------
Co-authored-by: jrood-nrel <jrood-nrel@users.noreply.github.com>
* qt-base: pass SBOM PATH from cmake_args
* qt-base: self.define from list
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
---------
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
Add a CI check to automatically verify the checksums of newly added
package versions:
- [x] a new command, `spack ci verify-versions`
- [x] a GitHub actions check to run the command
- [x] tests for the new command
This also eliminates the suggestion for maintainers to manually verify added
checksums in the case of accidental version <--> checksum mismatches.
----
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
* add new version
* add v8.8.20250205075315 to py-schema-salad
* Modify range to open ended
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Add open ended dependency version range
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* fix flake8 error
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* kubectl: add all versions currently supported upstream
* kubectl: build same way as kubernetes
* kubectl: revert back to GoPackage
* kubectl: fix version command
* kubectl: add v1.30.11, v1.31.7, v1.32.3
* kubectl: remove new deprecated versions
* kubectl: refactor build deps
The package was added in 2017, and never updated
substantially. It requires users to login into
a platform to download code.
Thus, instead of updating to new versions, and add
support for OneAPI, remove the package.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Fixes#49403.
When one scope included another, we were appending to a list stored on the scope to
track what was included, and we would clear the list when the scope was removed.
This assumes that the scopes are always strictly pushed then popped, but the order can
be violated when serializing config scopes across processes (and then activating
environments in subprocesses), or if, e.g., instead of removing each scope we simply
cleared the list of config scopes. Removal can be skipped, which can cause the list of
includes on a cached scope (like the one we use for environments) to grow every time it
is pushed, and this triggers an assertion error.
There isn't actually a need to construct and destroy the include list. We can just
compute it once and cache it -- it's the same every time.
- [x] Cache included scope list on scope objects
- [x] Do not dynamically append/clear the included scope list
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Right now the Spack %msvc compiler is inherently a hybrid compiler
that uses Intel's oneAPI fortran compiler.
This was addressed in Spacks MSVC compiler class, but detection has
since stopped using the compiler class, so this PR moves the logic
into the `msvc` compiler package (does not delete the original code
because that is handled in #45189).
This includes a change to the general detection logic to deprioritize
paths that include a symlink anywhere in the path, in order to prefer
"2025.0/bin" over "latest/bin" for the oneAPI compiler.
* style.py: add spack style --spec-strings for compat with v1.0
* add --fix also, and avoid infinite recursion and too large files
* tests: check identify and check edit files
* samurai: new package
- Add samurai : an HPC library of mesh and physics
* Update var/spack/repos/builtin/packages/samurai/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Update var/spack/repos/builtin/packages/samurai/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Update var/spack/repos/builtin/packages/samurai/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Update var/spack/repos/builtin/packages/samurai/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Update var/spack/repos/builtin/packages/samurai/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Remove Whitespace
- Remove whitespace for spack style check
* Update var/spack/repos/builtin/packages/samurai/package.py
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Add tags
- Add tags for the last versions of samurai
- All tags are tested and worked properly
- Add maintainers ("gouarin" - the samurai project lead and "sbstndb" - me, working on samurai)
- Add licence
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Trilinos launch blocking + maintainers
Cuda launch blocking is not needed and slowing modern apps down.
More maintainers to spot issues like this.
---------
Co-authored-by: psakievich <psakievich@users.noreply.github.com>
Elpa's custom preprocessor createst temporary files for which it
assembles long filenames and then uses the last 250 characters. This
results in compilation errors when the first character happens to be a
dash.
* Slurm: extend spack external find support
On Debian srun/salloc --version returns 'slurm-wlm VERSION'. Check for both strings and return the first match.
* non-capturing group for slurm determine_version
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* slurm: add detection test
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
This commit removes the +fortran variant when building HDF5 for WRF.
This seems unnecessary, and prevents building WRF with some versions of
Intel MPI, as HDF5 doesn't appear to build with Fortran support and
Intel MPI.
* add new versions up to 1.5 and new variants
variant vtk: make vtk optional
variant shared: build shared libs
added patch to fix parmmg cmake so that it can be used by other software with find_package
* use +private for mmg@5.8: and parmmg@1.5:
* fix style and constraint mmg version
* add a condition on patch, use private_headers from mmg PR feelpp/spack#14
* add MET v12.0.0 and METplus v6.0.0
* Set correct dependencies for metplus@6 in var/spack/repos/builtin/packages/metplus/package.py
* Add missing dependency on proj for met@12
* Add met@12.0.1
* Change @6.0.0 to @6: for requirements in var/spack/repos/builtin/packages/metplus/package.py
* Address reviewer comments for met and metplus
---------
Co-authored-by: Rick Grubin <Richard.Grubin@noaa.gov>
This should help resolve the "No binary found when cache-only was specified"
errors we've recently seen in our GitLab CI pipelines.
example failing job here:
https://gitlab.spack.io/spack/spack/-/jobs/15570931#L370
This error is caused when a generate job finds a spec in the local root
binary mirror, and that spec does not yet exist in the stack-specific mirror.
The fix here is to instead locally cache the stack-specific mirrors and only
use the root-level mirror for public use.
Windows paths with drives were being interpreted as network protocols
in canonicalize_path (which was expanded to handle more general URLs
in #48784).
This fixes that and adds some tests for it.
In Spack v1.0 we plan to parse caret ^ and percent % the same. Their meaning is direct and transitive dependency respectively. It means that variants, versions, arch, platform, os, target and dag hash should go before the %, so that they apply to dependent not the %dependency.
When requiring a constraint on a virtual package, it makes little
sense to use anonymous specs, and our documentation shows no example
of requirements on virtual packages starting with `^`.
Right now, due to how `^` is implemented in the solver, writing:
```yaml
mpi:
require: "^openmpi"
```
is equivalent to the more correct form:
```yaml
mpi:
require: "openmpi"
```
but the situation will change when `%` will shift its meaning to be a
direct dependency.
To avoid later errors that are both unclear, and quite slow to get to the user,
this commit makes anonymous specs under virtual requirements an error,
and shows a clear error message pointing to the file and line where the
spec needs to be changed.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Without it, the build fails with errors like this:
```
Can't locate File/Compare.pm in @INC (you may need to install the File::Compare module) (@INC contains: ...) at ../../../src/backend/catalog/Catalog.pm line 19.
```
Having variants all conditional leaves a lot more degree of freedom to clingo,
and slows down the search.
If variants have inconsistent defaults, we might end up with multiple, equally
sub-optimal solutions. Sometimes this creates a "plateau" in the search space.
Remove conditional boolean variants that can't be activated, since this just increases
the complexity of the model.
If 4 variants have to be all active / inactive together, it's better to use a single requires,
than to explode it into multiple statements dealing with a single variant at a time.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
ICU4C's NMAKE seems to over-quote to the degree
that it passes paths like ""<path>"" which
confuses the Python command line in subprocesses
the build starts
If you use `spack config change` to modify a `require:` section that did
not exist before, Spack was inserting the merged configuration into the
highest modification scope (which for example would clutter the
environment's `spack.yaml` with a bunch of configuration details
from the defaults).
Supersedes #46792.
Closes#40018.
Closes#31026.
Closes#2700.
There were a number of feature requests for os-specific config. This enables os-specific
config without adding a lot of special sub-scopes.
Support `include:` as an independent configuration schema, allowing users to include
configuration scopes from files or directories. Includes can be:
* conditional (similar to definitions in environments), and/or
* optional (i.e., the include will be skipped if it does not exist).
Includes can be paths or URLs (`ftp`, `https`, `http` or `file`). Paths can be absolute or
relative . Environments can include configuration files using the same schema. Remote includes
must be checked by `sha256`.
Includes can also be recursive, and this modifies the config system accordingly so that
we push included configuration scopes on the stack *before* their including scopes, and
we remove configuration scopes from the stack when their including scopes are removed.
For example, you could have an `include.yaml` file (e.g., under `$HOME/.spack`) to specify
global includes:
```
include:
- ./enable_debug.yaml
- path: https://github.com/spack/spack-configs/blob/main/NREL/configs/mac/config.yaml
sha256: 37f982915b03de18cc4e722c42c5267bf04e46b6a6d6e0ef3a67871fcb1d258b
```
Or an environment `spack.yaml`:
```
spack:
include:
- path: "/path/to/a/config-dir-or-file"
when: os == "ventura"
- ./path/relative/to/containing/file/that/is/required
- path: "/path/with/spack/variables/$os/$target"
optional: true
- path: https://raw.githubusercontent.com/spack/spack-configs/refs/heads/main/path/to/required/raw/config.yaml
sha256: 26e871804a92cd07bb3d611b31b4156ae93d35b6a6d6e0ef3a67871fcb1d258b
```
Updated TODO:
- [x] Get existing unit tests to pass with Todd's changes
- [x] Resolve new (or old) circular imports
- [x] Ensure remote includes (global) work
- [x] Ensure remote includes for environments work (note: caches remote
files under user cache root)
- [x] add sha256 field to include paths, validate, and require for remote includes
- [x] add sha256 remote file unit tests
- [x] revisit how diamond includes should work
- [x] support recursive includes
- [x] add recursive include unit tests
- [x] update docs and unit test to indicate ordering of recursive includes with
conflicting options is deferred to follow-on work
---------
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Peter Scheibel <scheibel1@llnl.gov>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
The SPACK_USER_CACHE_PATH was being overwritten in the windows CI
before_script. This should set the path for all systems unless
explicitly overridden.
* gasnet: deprecate old versions
GASNet versions more than 2 years old are not supported.
Update description text.
* gasnet: add 2025.2.0-snapshot version
Defines `spack.package_api_version` and `spack.min_package_api_version`
as tuples (major, minor).
This defines resp. the current Package API version implemented by this version
of Spack and the minimal Package API version it is backwards compatible with.
Repositories can optionally define:
```yaml
repo:
namespace: my_repo
api: v1.2
```
which indicates they are compatible with versions of Spack that implement
Package API `>= 1.2` and `< 2.0`. When the `api` key is omitted, the default
`v1.0` is assumed.
This package has not been maintained since 2016.
We maintain an active fork in the hydrogen
package, so remove this one.
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* py-networkx: add new versions up to 3.4.2
* py-networkx: add more requirements
* py-networkx: fix typo
* py-networkx: fix python and py-setuptools dependencies
---------
Co-authored-by: Joseph C Wang <joequant@gmail.com>
* Update rpy2 to newest version and clean up package
* Add me as maintainer
* Update depends section as per review. Add ipython variant. Fix some ranges and add support for python 3.9. Deprecated outdated versions
* refine depends_on and remove redundant version info
* style
* Adding ability for repo paths from a manifest file to be expanded when creating an environment.
A unit test was added to check that an environment variable will be expanded.
Also, a bug was fixed in the expansion of develop paths where if an environment variable
was in the path that then produced an absolute path the path would not be extended.
* Fixing new unit test for env repo var substitution
* Adding ability for repo paths from a manifest file to be expanded when creating an environment.
A unit test was added to check that an environment variable will be expanded.
Also, a bug was fixed in the expansion of develop paths where if an environment variable
was in the path that then produced an absolute path the path would not be extended.
* Messed up resolving last rebase
* qwt: support building against Qt6
* qwt: fix style
* qwt: depends_on qt-base+opengl+widgets when +opengl
* visit: patch for missing cmath include
---------
Co-authored-by: Bernhard Kaindl <contact@bernhard.kaindl.dev>
* pull in new changes from axom project
* add new versions
* convert more conditionals to spec.satisfies
-------------
Co-authored-by: white238 <white238@users.noreply.github.com>
* rct: update packages (RE, RG, RP, RS, RU) with new version 1.90
* radical: added `url_for_version` for older versions
* radical: set latest versions for `radical.pilot` and `radical.utils`
* radical: fixed `url_for_version` setup
* radical: set the latest version for `radical.entk`
* radical: fixed style for `url_for_version`
* Apply suggestions from code review (python version dependency)
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
On Windows, libraries search their directory for dependencies, and
we help libraries in Spack-built packages locate their dependencies
by symlinking them into the dependent's directory (we refer to this
as simulated RPATHing).
We extend the convenience functionality here to support base library
directories outside of the package prefix: this is primarily for
running tests in the build directory (which is not located inside
of the final install prefix chosen by spack).
This release contains modifications to most of the SEACAS applications to support ChangeSets to some degree.
See https://github.com/SandiaLabs/seacas/wiki/Dynamic_Topology for information about Change Sets and
See https://github.com/SandiaLabs/seacas/wiki/Supporting-Change-Sets for information about how the various seacas applications are supporting the use or creation of change sets.
The release also includes various other small changes including formatting, portability, intallation, TPL version updates, and spelling.
* add sendme package
* style fix
* add docstring for test function
* changed maintainer string, run test after install
* removed redundant test
* Follow the common package license header format
Co-authored-by: Alec Scott <hi@alecbcs.com>
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
* Split requirements to get better error messages in case of unsat solves.
* use list requirements instead of string
* activate static_analysis in a few pipelines
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* ci: darwin stacks: update tags following system updates
* disable SPACK_CI_DISABLE_STACKS; only enable *darwin* stacks for testing
* manually chmod u+w tmp/ before cleanup due to issue#49147
* comment out failing specs for now
* re-enable logic for disabling stacks
* add explanatory comment for darwin after_script additions
* remove more darwin-only targetting
* restore build_stage to default location
* move build-job-remove out of individual darwin stacks into darwin top level config
* keep build_stage in $spack/tmp for now
Python was removed from being a build tool in #46980, due to issues
when reusing specs. This PR adds a new rule to match the interpreter
among different Python packages, in clingo.
It also adds a bunch of new "build-tools", so that specs like:
```
py-matplotlib backend=tkagg
```
can be concretized in one go.
Modifications:
- [x] Make `py-matplotlib backend=tkagg` concretizable
- [x] Add unit-tests to ensure situations like in #46980 do not happen
---------
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Currently, the custom config scopes are pushed at the top when constructing
configuration, and are demoted whenever a context manager activating an
environment is used - see #48414 for details. Workflows that rely on the order
in the [docs](https://spack.readthedocs.io/en/latest/configuration.html#custom-scopes)
are thus fragile, and may break
This PR allows to assign priorities to scopes, and ensures that scopes of lower priorities
are always "below" scopes of higher priorities. When scopes have the same priority,
what matters is the insertion order.
Modifications:
- [x] Add a mapping that iterates over keys according to priorities set when
adding the key/value pair
- [x] Use that mapping to allow assigning priorities to configuration scopes
- [x] Assign different priorities for different kind of scopes, to fix a bug, and
add a regression test
- [x] Simplify `Configuration` constructor
- [x] Remove `Configuration.pop_scope`
---------
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
All the build jobs in pipelines are apparently relying on the bug that was fixed.
The issue was not caught in the PR because generation jobs were fine, and
there was nothing to rebuild.
Reverting to fix pipelines in a new PR.
This reverts commit 3ad99d75f9.
VariantMap.concrete is unused, and would be incorrect if it were used
due to conditional variants.
Just let the Spec dictate what is concrete and what is not.
Currently, environments can end up with higher priority than `-C` custom
config scopes and `-c` command line arguments sometimes. This shouldn't
happen -- those explicit CLI scopes should override active environments.
Up to now configuration behaved like a stack, where scopes could be only be
pushed at the top. This PR allows to assign priorities to scopes, and ensures
that scopes of lower priorities are always "below" scopes of higher priorities.
When scopes have the same priority, what matters is the insertion order.
Modifications:
- [x] Add a mapping that iterates over keys according to priorities set when
adding the key/value pair
- [x] Use that mapping to allow assigning priorities to configuration scopes
- [x] Assign different priorities for different kind of scopes, to fix a bug, and
add a regression test
- [x] Simplify `Configuration` constructor
- [x] Remove `Configuration.pop_scope`
- [x] Remove `unify:false` from custom `-C` scope in pipelines
On the last modification: on `develop`, pipelines are relying on the environment
being able to override `-C` scopes, which is a bug. After this fix, we need to be
explicit about the unification strategy in each stack, and remove the blanket
`unify:false` from the highest priority scope
Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* Update survey package file with latest releases and python path settings for building with autoload none.
* Submitting reformatted file.
* update survey package file with libmonitor dependency changes, take out py-gpustat, and minor comment change.
* Trigger build.
Currently, we have `config:shared_linking:missing_library_policy` to error
or warn when shared libraries cannot be resolved upon install.
The new `spack verify libraries` command allows users to run this post
install hook at any point in time to check whether their current
installations can resolve shared libs in rpaths.
* remove preferred to allow seamless python@3.12 usage
* glib: remove deprecated versions
* glib: use extends because python-venv is pulled in from build deps and put into path
* dont patch patch versions, use new patch releases containing the fix instead
* restrict patch of shebangs, group relevant bits together
* simplify lowerbound
* fix pinned glib version
---------
Co-authored-by: Chris Marsh <chrismarsh.c2@gmail.com>
* Bug fix for compiling node-js@21: with gcc@11.2 (var/spack/repos/builtin/packages/node-js/package.py var/spack/repos/builtin/packages/node-js/wasm-compiler-gcc11p2.patch)
Since this bug fix is not sufficient, add a conflict for node-js@21: with gcc@11.2
* In var/spack/repos/builtin/packages/node-js/package.py, restrict patch wasm-compiler-gcc11p2.patch to versions 21:22 for gcc@11.2
* Revert "REVERTME: move celeritas changes to another branch"
This reverts commit a063e43aaf.
* Use predicted g4vg version
* Use
* fixup! Use predicted g4vg version
* Use spec for versions and improve dependency specification
* add new versions of dependencies
* modify pypi url for newest version
* add option for url depending on version number
* add version ranges of dependencies
* [@spackbot] updating style on behalf of kchilleri
* remove unnecessary py-cache-control version number
* spack: add version 0.13
* typst: fix version order
Co-authored-by: Alec Scott <hi@alecbcs.com>
* typst: more precise version requirements
* typst: use build_directory
---------
Co-authored-by: Alec Scott <hi@alecbcs.com>
Installing `rust@nightly` fails because the package file declares a conflict of rust versions older than `:1.64` with `gcc>=13`. However, because `nightly` is alphanumerically smaller than any actual version number, `nightly` is incorrectly detected to have a conflict with `gcc>=13` as well. Marking `nightly` as an infinity version instead solves this.
* Reproducer should decude artifact root from concrete environment
* Add documentation on the layout of the artifacts directory
* Use dag hash in the container name
* Add reproducer options to improve local testing
* --use-local-head allows running reproducer with
the current Spack HEAD commit rather than computing
a commit for the reproducer
* Add test to verify commits and recreating reproduction environment
* Add test for non-merge commit case
* ci reproduce-build: Drop overwrite option
in favor of throwing an error if the working dir is non-empty
* py-tensorflow: patch for v2.15 build errors with new compilers
* py-tensorflow: patch for v2.15 build errors with new compilers
* py-tensorflow: fix clang build and add clang version constraints
* py-tensorflow: use compiler wrapper
* py-tensorflow: relax clang conflict
* nim: fix build with new compilers
* narrow condition for disabling warnings
* move flags into offending module
disables warnings also for compiling projects other than the Nim compiler when necessary
* specify different versions pthread modules
* instead patch SysThread type
* adapt patch for old Nim versions
* Specify hypothetical `:@0.19.6` for patch version constraint
* In var/spack/repos/builtin/packages/ectrans/package.py, always set cmake argument ECTRANS_HAVE_CONTIGUOUS_ISSUE to turn off problematic use of Fortran 'contiguous' keyword
* In var/spack/repos/builtin/packages/ectrans/package.py, always set cmake argument ENABLE_FINAL=OFF to turn off problematic finalization of derived data types
* Update links to issues in fckit and ectrans
* Fix wrong cmake argument for ECTRANS_HAVE_CONTIGUOUS_ISSUE in var/spack/repos/builtin/packages/ectrans/package.py
This commit adds an additional requirement to the vecmem package,
requiring the OneAPI compiler iff the `sycl` variant is turned on. This
allows us to correctly set the non-standard `SYCLCXX` environment
variable.
* likwid: Fix the perms script
The script loops over the path (which includes the prefix), but
additionally adds the prefix up front which results in duplicate paths
and a double "/" in the command like in the following one:
chown root:root /opt/csg/spack/opt/spack/linux-debian12-zen2/gcc-12.2.0/likwid-5.4.1-xfc6quebnf2kosydl3ospaeoskxnxwhn//opt/csg/spack/opt/spack/linux-debian12-zen2/gcc-12.2.0/likwid-5.4.1-xfc6quebnf2kosydl3ospaeoskxnxwhn/sbin/likwid-accessD
Additionally the path is currently not quoted which can potentially
result in word splitting for weird paths.
Signed-off-by: Christian Heusel <christian@heusel.eu>
* likwid: Make the perm scripts' name unique
Also move it into the proper binary folder as per the Filesystem
Hierarchy Standard.
Signed-off-by: Christian Heusel <christian@heusel.eu>
---------
Signed-off-by: Christian Heusel <christian@heusel.eu>
* Initial checkin of compile file for the package libgpiod, this covers versions, 1.6.3 through 2.2
* Update var/spack/repos/builtin/packages/libgpiod/package.py
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Update var/spack/repos/builtin/packages/libgpiod/package.py
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Update how version to url is manage in the x.y.0 cases based on fix by @wdconinc
* Remove redundant url at the top since it is now inside url_for_version function
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* xios: update to v2.6
- xios: update to v2.6
- xios: patch remap earcut.hpp for missing include file
- xios: address C++11 requirement
- xios: instruct to use external boost and blitz libraries
* xios: bump revision to 2714
- Bump revision to changeset 2714
- Deprecate older versions that I can't manage to compile
- Confirm clang workaround is still needed
A directory and a symlink to it under the same relative path in a
different prefix
```
/prefix1/dir/
/prefix1/dir/file
/prefix2/dir -> /prefix1/dir/
```
are not a blocker to create a view. The view structure simply looks like
this:
```
/view/dir/
/view/dir/file
```
This should be the case independently of the order in which we visit
prefixes, so we could in principle create views order independently.
* damaris: add v1.12.0, update maintainers (#48674)
Co-authored-by: Etienne Ndamlabin <jean-etienne.ndamlabin-mboula@inria.fr>
* Bump up the version for rocm-6.3.1 release (#48440)
This PR updates the versions for the rocm recipes for rocm-6.3.1 release.
* py-flash-attn: add missing triton dependency (#48645)
* hep stack: additional event generator packages (#48565)
* hep stack: additional event generator packages
* hep: adidtional packages
* hep: collier doesn't have +pic +shared
* py-awkward-cpp: fix scikit-build-core range of applicability
* hep: disable agile
* hep: disable garfieldpp and genie
* py-wxpython: depends_on pkgconfig even if using external wxwidgets
* hep: disable professor
* papi: fix error finding gmake during post-install testing (#48592)
* JAX: add v0.4.32+ (#46346)
* JAX: add v0.4.34
* Disable search for clang
* Update CUDA flags
* Add py-jax 0.4.33, comment out until py-jaxlib 0.4.33 is also released
* Fix GCC build
* Try TF_NVCC_CLANG
* py-jax: add v0.4.34
* jax no longer has separate tags for jaxlib
* Install compiled wheel
* Join path before glob
* Wheel is in spack stage, not tmp path
* Add 0.4.35
* Add newer versions
* Build system has been refactored yet again
* Drop clang
* Fix build with source tarball, rocm support
* Support GCC
* Remove clang-specific compiler flags
* enable_cuda flag was removed
* Fix logic
* py-jax: add v0.4.38
* Add patch to fix GCC support
* Patch no longer needed
* Skip patching, directly pass flags
* New flags
* Remove unused import
* Patch changed
* Use older version of patch
* Newer patch
* Add CUDA symlink
* Symlink more directories
* Recursive symlink
* Import function
* Recursive search
* Undo cuda changes
* Add v0.5.0
* I quit
* py-geemap: add new package (#48602)
* easi: add v1.5.1; relax yaml-cpp and lua requirements (#48675)
* thepeg: extend the rivet@:3 dependency up to version 2.3 (#48691)
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
* py-ipyrad: adding version 0.9.102 (#48686)
Signed-off-by: Shane Nehring <snehring@iastate.edu>
* autodock-vina: adding version 1.2.6 (#48684)
Signed-off-by: Shane Nehring <snehring@iastate.edu>
* toybox: add v0.8.12 (#48657)
* Changes for NVIDIA HPC SDK 25.1 (#48696)
* update hypre version and add new memalign for petsc (#47831)
* petsc+rocm: add dependency on hipblas-common (#48644)
* spec.py: fix ArchSpec.intersects (#48741)
fixes a bug where `x86_64:` and `ppc64le:` intersected, and x86_64: and :haswell did not.
* ucx: adding 1.18.0 (#48742)
* Adding UCX 1.18.0
* Verified and correct hash.
* MAGMA: add v2.9.0 (#48750)
* Deprecate frontend/backend os/target (#47756)
* package api: drop wildcard re-export (#48760)
* package api: drop wildcard re-export
To ensure package repos are forward/backward compatibility with Spack,
we should explicitly export all symbols we want to expose in the public
package API, and drop `from spack.something import *` because
removal/addition to the public API will go unnoticed.
Also `llnl.util.filesystem` has some methods that shouldn't be exposed
in the package API, so better to enumerate a subset explicitly.
* remove flatten_dependencies / install_dependency_symlinks
* py-cmake: remove. remove deprecated cmake versions (#48763)
* Remove pipelines and images based on ppc64le (#48767)
* petsc: only conflict with kokkos@4.5: if it is enabled (#48698)
* hpctoolkit: Add `+docs` variant and manpages (#48566)
* py-mdit-py-plugins: Add new versions 0.3.5, 0.4.2
Signed-off-by: Jonathon Anderson <anderson.jonathonm@gmail.com>
* py-myst-parser: Add new versions 0.19.0 to 4.0.0
Signed-off-by: Jonathon Anderson <anderson.jonathonm@gmail.com>
* hpctoolkit: Add +docs variant and manpages
This commit unconditionally enables manpages for the HPCToolkit tools.
The new `+docs` variant enables additional documentation, specifically
the user's manual. Both require new build-time dependencies.
Signed-off-by: Jonathon Anderson <anderson.jonathonm@gmail.com>
---------
Signed-off-by: Jonathon Anderson <anderson.jonathonm@gmail.com>
* fmt: simplify +pic (#48766)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
* Docs/bugfix: correct return for Adding flags to configure (#48434)
* binutils: conflict on configuration with build issues (#42949)
* Create SALT package.py (#48758)
* Create SALT package.py
Added a package for the SALT Source AnaLysis Toolkit
@zbeekman
* [@spackbot] updating style on behalf of wspear
* Update package.py
Line wrap
---------
Co-authored-by: wspear <wspear@users.noreply.github.com>
* smee-client: add v2.0.4 (#48384)
* CMake: add v3.31.5, v3.30.7 (#48759)
* builtin: remove redundant imports (#48765)
* builtin: remove redundant llnl.util.filesystem import
* remove redundant import spack.version
* unsorted fixes
* more spack.version
* abinit: pass flag correctly (#48788)
* Add py-zarr 3, which includes a new required package py-donfig, and a bug fix to the patch range with numcodecs (#48786)
* libxc: add CMake builder (#48772)
* libsmeagol
* libxc cmake
* cmake support
* revert changes
* make spackbot happy
* fix
* Update package.py
* hipblaslt: update cmake dependency (#48637)
* hipblaslt: update cmake dependency
1 error found in build log:
>> 3 CMake Error at CMakeLists.txt:24 (cmake_minimum_required):
4 CMake 3.25.2 or higher is required. You are running version 3.22.1
5
6
7 -- Configuring incomplete, errors occurred!
See build log for details:
/scratch/svcpetsc/spack-rocm/spack-stage/spack-stage-hipblaslt-6.3.0-pabb7t4rheqkz74lfzbsnqi6vnpiqwlq/spack-build-out.txt
* Update var/spack/repos/builtin/packages/hipblaslt/package.py
Co-authored-by: afzpatel <122491982+afzpatel@users.noreply.github.com>
---------
Co-authored-by: afzpatel <122491982+afzpatel@users.noreply.github.com>
* Move from python2 compliant IOError and EnvironmentError to python3-only OSError (#48764)
* IOError -> OSError
* also do EnvironmentError
* py-sphinx: mark Python compatibility (#48796)
* spack.package: wrap llnl.util.tty (#48793)
avoid import of llnl.util.tty in packages
* spack.package: re-export EnvironmentModifications / Prefix (#48792)
* Remove unused values (#48795)
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
* petsc, py-petsc4py: add v3.22.3 (#48785)
* libsmeagol (#48776)
* libsmeagol
* add support for intel and add conflicts
* cp2k
* Bug Fix: Better incremental check for CMake (#48775)
* Bug Fix: Better incremental check for CMake
* Fix syntax error
* Ensure match of config artifact with generator
* add cdo@2.5.0 (#48801)
* Added salt variant to tau (#48782)
* Added salt variant to tau
* Update package.py
* [@spackbot] updating style on behalf of wspear
---------
Co-authored-by: wspear <wspear@users.noreply.github.com>
* Remove patch on main (#48798)
Patch got merged: https://github.com/natefoo/slurm-drmaa/pull/62
* kokkos-nvcc-wrapper: add version 4.5.00 and 4.5.01 (#48802)
* env create: create copies of relative include files in envs created from manifest (#48689)
Currently, environments created from manifest files with relative includes result in broken
references to config files.
This PR modifies `spack env create` to create local copies in the new environment of any local
config files from relative paths in the environment manifest passed as an init file.
This PR does not change the behavior if the include is an absolute path or if the include is from
a relative path outside the environment directory, but it does warn about missing relative includes if
they are inside the environment directory.
Includes regression test and short blurb in docs.
* py-sphinx-rtd-theme: add v2.0.0, v3.0.0 (#48756)
* Add versions 2 and 3 of py-sphinx-rtd-theme.
Allow for versions of py-sphinx greater than 6.
Fix the Python version for older versions that depend on distutils.
Get the py-docutils dependency from the py-sphinx recipe.
* Depend purely on the py-docutils dependency in py-sphinx.
* More refined dependency versioning.
* Fixed versioning for py-sphinx and py-docutils.
* CP2K: add 2025.1 version and DFTD4 support (#48489)
* cp2k: add dftd4 variant
* better conflict and make support
* typo
* Update var/spack/repos/builtin/packages/cp2k/package.py
* Update var/spack/repos/builtin/packages/cp2k/package.py
* oci/opener.py: respect system proxy settings (#48783)
* vtk-m: CMAKE_CXX_COMPILER is not a BOOL (#48813)
* gcc: remove --with-ld=ld-classic (#48826)
* nanotron: add new package (#48582)
* nanotron: add new package
Also, update some dependencies and add missing ones.
* Add variant +examples needed to execute example scripts
* fix: add missing branch attribute
* Remove master version
* fix: use Github hash
* embree: fix tests by building tutorial's embree_viewer for tests (#48392)
* import-check: improve how problematic imports are displayed (#48825)
The import-check action now presents problematic import statements
introduced by the PR better.
The idea is roughly:
* Let (V₁, E₁) be the graph of modules as vertices and import statements
as edges before the change
* Let (V₂, E₂) be the graph after the code change, which is typically a small
perturbation of (V₁, E₁).
* X₁ = FAS(V₁, E₁) is the feedback arc set before (a minimal set of edges to
delete to make it acyclic)
* X₂ = FAS(V₂, E₂ ∖ X₁) is the feedback arc set after deletion of the minimal
set of edges that made the old graph acyclic.
* X₃ = FAS(V₂, E₂) is the feedback arc set after
Previously I displayed X₁ and X₃ and users had to diff themselves.
Now, I'm showing X₂, which is a small set, typically directly related to
code changes.
However, it can be that a small code change adding say 2 problematic imports
creates a completely different solution X₃ that only requires deletion of just 1
different import. In that case the user is informed that they can potentially do
less work.
So for PR #48784 the output is now:
> The overall number of problematic import statements increased by 1 from 31 to 32.
> This is likely a direct consequence of the following import statements:
>
> ```
> spack/config imports: spack.spec, spack.util.path, spack.util.remote_file_cache
> ```
>
> However, instead of removing 3 import statements, it is sufficient to remove only 1
> import statement from the following list:
>
> ```
> spack/concretize imports: spack.bootstrap, spack.solver.asp
> spack/environment imports: spack.bootstrap, spack.environment
> spack/fetch_strategy imports: spack.version.git_ref_lookup
> spack/install_test imports: spack.build_environment, spack.package_base
> spack/modules imports: spack.modules
> spack/platforms imports: spack.config
> spack/relocate imports: spack.bootstrap
> spack/repo imports: spack.package_base, spack.patch, spack.tag
> spack/spec imports: spack.binary_distribution, spack.compiler, spack.compilers, spack.concretize, spack.environment, spack.hash_types, spack.provider_index, spack.repo, spack.spec_parser, spack.store, spack.traverse, spack.variant, spack.version.git_ref_lookup
> spack/subprocess_context imports: spack.environment
> spack/util/gpg imports: spack.bootstrap
> spack/util/package_hash imports: spack.package_base
> spack/util/path imports: spack.config, spack.environment
> spack/util/remote_file_cache imports: spack.util.web
> ```
from which the user can figure out that
`spack/util/remote_file_cache imports: spack.util.web` is the "bottleneck" now.
* spack_yaml: use unambiguous variable name (#48832)
* style: fix `not in` and `is not` (#48831)
These are some changes that `ruff check --fix` would make that the current
`spack style` also agrees with. Make the changes now so that the `ruff`
change is less disruptive.
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
* Set version to v1.0.0.dev0 (#48791)
* import-check: enable color output (#48842)
* berkeleygw: add -o flag to tar extraction (#48816)
when extracting as root user, avoid that tar attempts to change file ownership
* llvm: deprecate old patch releases (#48762)
* cuda: add v12.8 (#48708)
* sirius: patch pugixml (#48841)
* ziatest: add new package (#48809)
* gitlab: remove isc stacks (#48811)
* gcc: deprecate old patch releases (#48761)
* CP2K: use libxc@7 for master/next release (#48808)
* packge_base.py: remove _patches_by_hash (#48768)
* cdash: avoid build_opener (#48846)
* g4vg: new package (#48844)
* g4vg: new package
* [@spackbot] updating style on behalf of sethrj
* r-dmrcate: add v2.16.0, v3.0.0, v3.2.0 (#48158)
* r-dmrcate: add new versions
* r-dmrcate: require `r@4.3.0` for v2.99.0+
* r-dmrcate: update dependencies
* py-tensorflow: add 2.18.0-rocm-enhanced (#48711)
* py-tensorflow: add 2.18.0-rocm-enhanced
* fix style
* fix style
* fix style
* review changes
* review changes
* remove hipblaslt dependency
* remove ci changes and force ROCm 6.3.1 for newest TF
* remove rocm 6.3.1 dependency
* simplify configure fix
* rocm-examples and rocjpeg: new packages (#47695)
* new package: rocm-examples
* add new package rocjpeg and update rocm-examples for 6.3.0
* fix licenses
* add versions 6.3.1
* change homepage and git
* add f-string
* Tesseract v5.5.0 (#48866)
* leptonica: adding v1.85.0
Signed-off-by: Shane Nehring <snehring@iastate.edu>
* tesseract: adding v5.5.0
Signed-off-by: Shane Nehring <snehring@iastate.edu>
---------
Signed-off-by: Shane Nehring <snehring@iastate.edu>
* py-geojson: Add new package (#48847)
* Add new package py-geojson
* fix when
* isa-l: add v2.31.1 (#48859)
* Add new package func (#48849)
* icu4c: add v75.1, v76.1 (#48858)
* Add new package py-metis (#48848)
* cppgsl: add v4.1.0 (#48864)
* libdrm: add v2.4.124 (#48860)
* amrex: add v25.02 (#48853)
* sherpa: support cxxstd=20 when=@3: (#48829)
* sherpa: support cxxstd=20 when=@3:
* hep: sherpa cxxstd=20
* netlib-scalapack: Update version (#48667)
* Update scalapack version
Signed-off-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
* use url_for_version
Signed-off-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
* use spec.satisfies instead of version()
---------
Signed-off-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
Co-authored-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
* fcgi: add v2.4.3, v2.4.4 (#48856)
* update pyproject.toml for `ruff format` (#48823)
Add ruff configuration to `pyproject.toml`.
This allows `ruff format` in the Spack repository to format all the files we care about,
with our line length of 99, the exceptions we already put in place, and excluding things
we don't auto-format, like vendored dependencies.
Right now it'll reformat 175 or so files, but only slightly, in places where `ruff` differs from
`black`. For the most part I like the ruff format decisions better than `black`, but none of
the changes seem too severe.
This does not change `spack style` -- I figure that can come later but this at least will
let people start playing with `ruff`.
---------
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
* dd4hep: add v1.31 (#48850)
* libsm: add v1.2.5 (#48862)
* Apply workaround for oneAPI compiler for upcxx problem with a template argument list (#48843)
* Fix upcxx problem with a template argument list is expected after a name prefixed by the template keyword
* Revert "Fix upcxx problem with a template argument list is expected after a name prefixed by the template keyword"
This reverts commit faf9b8ce85.
* Apply workaround for oneAPI compiler
* style problem resolved
* use spec.satisfies syntax
---------
Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com>
* Remove ISC stacks environment files (#48851)
Follow-up to #48811
* Remove variable from cmake.py (#48824)
* Remove variable from cmake.py
#48775 left a dangling variable that was not caught in CI but by the eyes of @haampie. Restructure variable to local method.
* [@spackbot] updating style on behalf of psakievich
* Update cmake.py
* Update lib/spack/spack/build_systems/cmake.py
* Update lib/spack/spack/build_systems/cmake.py
---------
Co-authored-by: psakievich <psakievich@users.noreply.github.com>
* sirius: add v7.6.2 (#48797)
Co-authored-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
Co-authored-by: Rocco Meli <r.meli@bluemail.ch>
* gha: standalone import-check (#48873)
* ci: add codecov token secret to coverage upload job (#48880)
Codecov needs to see the token secret when uploading, so we have to
add this line to the workflow YAML:
```yaml
with:
token: ${{ secrets.CODECOV_TOKEN }}
```
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
* ci: bump import-check (#48883)
* pfind: new package (#48685)
* py-elevation: new package (#48836)
* spec.py: fix hash change due to None vs {} (#48854)
* Fix hash change due to None vs {}
* Enforce null for empty list of external_modules
* nnn: new package (#46174)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
* Fix esmf usage, add new version (#48835)
* bash: add autotools dependencies (#48874)
* Scotch: add v7.0.6, add testing option (#48781)
* code-server: update to v4.96.4 (#48828)
* acts: add v39.0.0 (#48839)
This commit adds version 39.0.0 of the ACTS package which, as far as I
can tell, doesn't require any dependency updates.
* spec.py: ensure spec.extra_attributes is {} if is null in json (#48896)
* harfbuzz: add v10.2.0 (#48857)
* libice: add v1.1.2 (#48861)
* relocate.py: don't warn about symlinks (#48904)
`relocate_links` warns when the target is absolute and not matched by
any prefix from the prefix to prefix map.
This can lead to false positives, cause the prefix to prefix map does
not contain trivial/identity entries whenever a package is installed to
its original location.
Since relocate_links is the odd one out there (we don't warn about
similar issues with rpaths, etc), just remove the warning.
* hip-tests: new package (#47273)
* hip-tests: add new package
* remove hip-tests from hip recipe
* remove old versions
* fix style
* add missing import
* bump hip-tests to 6.3.1
* fix style
* flecsi: new version 2.3.1 (#48867)
* flecsi: add new version 2.3.1, remove develop
* flecsi: remove kokkos and openmp variants moving forward
* flecsi: propagate cuda and rocm settings from kokkos
* Update var/spack/repos/builtin/packages/flecsi/package.py
Co-authored-by: Davis Herring <herring@lanl.gov>
* flecsi: remove redundant depends_on lines
* flecsi: correct legion dependency
* flecsi: deprecate v2.0.0 and v2.1.0
* flecsi: force +openmp if ^kokkos+openmp
---------
Co-authored-by: Davis Herring <herring@lanl.gov>
* Update py-arch, py-statsmodels (add 0.14.1), py-patsy (add 0.5.4) to be able to use py-cython@3 (#48769)
* Add py-patsy@0.5.4
* Correct py-numpy dependency in py-arch
* Add py-statsmodels@0.14.1 and update dependencies
* Add climbfuji as maintainer for py-patsy
* Add climbfuji as maintainer for py-statsmodels
* Update var/spack/repos/builtin/packages/py-statsmodels/package.py
* enzyme: add v0.0.172 (#48881)
* spec.py: ensure == is false if true modulo precomputed dag hash (#48889)
* llvm: fix @15 %apple-clang@16 (#48887)
* spiner: add v1.6.3 (#48871)
* spiner: update package logic
* singularity-eos: remove spiner cuda_arch propagation
* spiner: add version 1.6.3
* sherpa: +hepmc3root only when +root (#48827)
* sherpa: +hepmc3root only when +root
* sherpa: fix style
* salt: add v0.3.0 (#48877)
* salt: Add v0.3.0 of SALT
This version contains important bug fixes for building and parsing
projects containing Fortran
* salt: Be more explicit about dependency types
- llvm+clang+flang is needed at build, link and runtime for the
correct operation of SALT
- Testing with llvm@master ( llvm > 19.x ) shows that SALT is
currently incompatible with the latest llvm API so an updated salt
will be required when LLVM 20 is released
* openturbine: add new package (#48683)
* PyTorch: add v2.6.0 (#48794)
* mummer4: patching to allow building with %gcc@13: (#38292)
Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* fms: add 2025.01, 2024.03 (#48812)
* py-shapely: add v2.0.7 (#48810)
* spectre: add v2025.01.30 (#48803)
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com>
* py-numba: Add version 0.61 (#48837)
* amdfftw: fix broken build, adjust flags for performance tuning (#48754)
With CFLAGS, the code path in the amdfftw build system will bypass the logic around AMD_ARCH.
---------
Co-authored-by: vijay kallesh <Vijay-teekinavar.Kallesh@amd.com>
* justbuild: add v1.4.3 (#48898)
* nvpl-blas, nvpl-lapack: add v0.4.0.1, v0.3.0 (#48901)
* hep stack: build also with cuda and rocm where possible (#48528)
* lcio: add v2.22.4 (#48895)
* Add a message for CMake incremental build (#48905)
* Add a message for CMake incremental build
Requested message to explain CMake phase is getting skipped.
* [@spackbot] updating style on behalf of psakievich
* Update import
---------
Co-authored-by: psakievich <psakievich@users.noreply.github.com>
* dcap: depends_on libxcrypt (#48903)
* Add new version of r-curl (#48912)
* pika: Add 0.32.0 (#48897)
* icu4c: no cxxstd flag option on Windows (#48510)
* ICU4C: Don't reference a spec variant on a platform on which it's not defined
* icu4c: no cxx flag on Windows
* dla-future-fortran: add v0.3.0 (#48900)
* simgrid: add v3.36 (#48909)
* dyninst: cleanup package (#47637)
* Use more idiomatic construct, shorten recipe
* Remove deprecated versions, and associated patches
* Remove v10.0.0
* Windows: Update default config for stage location (#48511)
Current location is within the Spack prefix, which causes builds to
pollute VCS with stage artifacts and generally inflates the Spack
install prefix.
This PR moves it to the user cache location now that we can
consistently support paths with spaces on Windows.
* py-maturin: add v1.8.2 and refined dependencies (#48915)
* clingo-bootstrap: fix +optimized build (#48931)
* fix regression `apple-clang` vs `%apple-clang`
* use f-strings
* remove --verbose flag from LDFLAGS
* Fix regression due to dyninst update (#48935)
* trexio: fix issues with autotools build system (#48923)
* package_base.py: remove use_cray_compiler_names (#48932)
* Apply workarounds for oneAPI compiler for ascent problem with build (#48918)
* Apply workarounds for oneAPI compiler for ascent problem with build
* Use the way with use patch through the PR address
* stylecheck - missing comma
* libgcrypt: fix enforced -O0 (#48940)
Signed-off-by: Shane Nehring <snehring@iastate.edu>
Co-authored-by: Shane Nehring <snehring@iastate.edu>
* serialbox: add version 2.6.2 (#48937)
* nwchem: add master (#48919)
* Add possibility to build nwchem from master branch
* add oneapi@2025: patch for @7.2.3
---------
Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com>
* Python: add new versions (#48950)
* Python: add new versions
* black
* reframe: add v4.6.4 -> v4.7.2 (#48242)
* go: add v1.23.6 (#48955)
* qmcpack: add v4.0.0 (#48921)
* py-einops: add v0.8.1 (#48954)
* flux-sched: add v0.42.1 (#48952)
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
* Quantum ESPRESSO: add v7.4.1 (#48949)
* duckdb: add v1.2.0 (#48902)
Signed-off-by: Teague Sterling <teaguesterling@gmail.com>
* mapl: add v2.53.1, v2.54.1 (#48944)
* log.py: remove setenv calls (#48933)
* nim: add v2.2.2 (#48929)
* Update GFE packages (#48899)
* OpenMPI: add version 4.1.8 (#48922)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
* extrae: tighten dependencies on boost for +dyninst (#48938)
* py-iterative-stats: add 0.1.1 (#48959)
* import-check: bump (#48968)
* ports-of-call: add v1.6.0, v1.7.0, v1.7.1 (#48870)
* acts dependencies: new versions as of 2025/02/10 (#48969)
This commit adds detray v0.88.0 and GeoModel v6.9.0.
* cbtf-krell: Update Boost dependency (#47133)
* Update Boost
* Add gotcha
* Add patch for build errors
* Allow building with latest Dyninst
* Fix patch url
* lua-sol2: Apply workaround for oneAPI compiler for problem with build (#48920)
* Bump up the version for rocm-6.3.2 release (#48787)
* Bump up the version for rocm-6.3.2 release
* rocm-openmp-extras update and style correction
* Updating mivisionx, omniperf, rccl & rocprofiler-systems
* Updating hipsparselt & rocm-opencl
* rocprofiler-systems on gcc-13 and rvs commit instead of patch
* Updated rocjpeg & rocm-examples for 6.3.2
* ROCPROFSYS_BUILD_DYNINST & DYNINST_BUILD_TBB are required only with gcc-13
---------
Co-authored-by: afzpatel <122491982+afzpatel@users.noreply.github.com>
* spack compiler find: detect `flang-new` and `flang` in newer LLVM versions (#48914)
* rivet: patch missing header in 3.1.10 (#48977)
* concretizer: reduce search space with static analysis (#48729)
Currently, when we setup the ASP problem for `clingo`, we don't take into account the configuration. This results in setting up ASP problems that are larger than necessary, with possibly redundant information, and higher concretization times.
This PR tries to improve things by adding an opt-in feature that computes the _possible dependencies_ of a solve taking also into account the current configuration, and avoids adding possible dependencies that we are certain can't be in the final solution.
The feature can be activated with:
```yaml
concretizer:
static_analysis: true
```
Examples of simple rules to discard dependencies are:
- Dependencies that are not buildable, and for which no binary is present (e.g. `cray-mpich` etc. on non Cray systems)
- Dependencies that are not for the current platform (e.g. `msmpi` on non Windows platforms)
- Conditional dependencies that cannot be activated, because of some user requirement (e.g. `cuda` etc. if the user requires `~cuda` in configuration)
- Virtual providers that cannot be used, because of a requirement on a virtual
The speed-up these rules seem to give depends on the use case at hand, but if the configuration is updated properly, they are noticeable.
Since in cases where there is no rule to exclude packages upfront, reuse is active, and this option is activated, it's possible to see some minor slow down, the feature has been added as opt-in, so it's turned off by default.
* spack.util.elf: catch seek errors (#48972)
* hep: rivet: require hepmc=3 (#48976)
* Fix performance issue on macOS (#48997)
archspec.cpu.host() is not memoized, so compute
it as less as possible.
---------
Co-authored-by: alalazo <alalazo@users.noreply.github.com>
* style.py: fix false negative in redundant import statements (#48980)
* PyTorch: build flash attention by default, except in CI (#48521)
* PyTorch: build flash attention by default, except in CI
* Variant is boolean, only available when +cuda/+rocm
* desc -> _desc
* kokkos et al. : don't monkeypatch spec in callbacks (#48916)
Currently, a few packages using kokkos rely on
kokkos itself monkeypatching its own spec to
provide some attribute.
In this commit we change this attribute to be
defined on the package, and never be monkeypatched.
* gmake: add empty libs property, remove link deptypes from dependents (#48995)
* package_hash.py: move metadata_attrs inline out of package_base (#48981)
* gmake: fix def libs/headers (#49009)
* Spec.package_class -> spack.repo.PATH.get_pkg_class (#48985)
* libfabric: use the class variable to get the list of fabrics (#49007)
Suggested by: alalazo <alalazo@users.noreply.github.com>
Signed-off-by: Justin Cook <jscook@lbl.gov>
* py-transformers: add new versions (#49000)
* py-transformers: add new versions
* py-tokenizers: add new versions
* Apply suggestions from code review
* lcio: Add latest 2.22.5 tag (#48991)
* concretize.lp: don't warn about deprecation when external (#49008)
* Spec.is_virtual -> spack.repo.PATH.is_virtual (#48986)
* g4vg: add 'develop' branch (#49003)
* g4vg: add develop version
* celeritas: add develop version
* Fix style
* REVERTME: move celeritas changes to another branch
* Get full repo
* remove unneeded variable
* Remove spack.repo.PATH.is_virtual call from SpecBuildInterface.(#48984)
This PR is effectively a breaking change extracted from #45189, which removes
support for spec["mpi"] if spec itself is openmpi / mpich that could provide mpi;
from the Spec instance we don't have any parent it provides it to,
hence it's a KeyError.
* Spec.validate_detection -> spack.detection.path.validate_detection (#48987)
* hep: add missing language dependencies (#48963)
* highfive: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989283
* lhapdf: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989283
* vc: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989140
* davix: add dependency on C, C++
https://gitlab.spack.io/spack/spack/-/jobs/14989131
* pandorasdk: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989130
* veccore: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989118
* pythia6: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989116
* jwt-cpp: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989115
* collier: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989115
* hepmc: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989112
* clhep: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14989075
* fastjet: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14981340
* gosam-contrib: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14978873
* thepeg: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14997553
* cepgen: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14997552
* podio: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14997552
* pandoramonitoring: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14997552
* lcio: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14997513
* geant4: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14997202
* evtgen: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14996817
* apfel: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/14996779
* collier: add dependency on C, C++
https://gitlab.spack.io/spack/spack/-/jobs/14996770
* vecgeom: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/15003840
* dd4hep: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/15003839
* opendatadetector: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/15007666
* acts: add dependency on C
https://gitlab.spack.io/spack/spack/-/jobs/15007827
* hepmc: remove dependency on fortran
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
* thepeg: remove fortran dep
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* acts: add a conditional build dependency
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* opendatadetector: add comment to explain C dep
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
---------
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* apptainer: get_full_repo for branch main (#49002)
* unifyfs: Apply workaround for oneAPI compiler for problem with build (#48962)
* solver: add type-hints to OutputConfiguration (#48979)
* Ci: ensure file path comparsion uses posix paths (#47033)
Git always produces posix paths, ensure we're always comparsing apples to apples by normalizing paths compared to git output to posix.
* postgresql: add v17.2 (#47811)
* postgresql: add version 17.2
* postgresql: install flex, bison and perl when building versions 17 and up
* postgresql: do not install perl by default when building versions 17 and up
* cray-mpich: adding partial GTL support (#45830)
cray-mpich now has a rocm variant. You can use gtl_lib in the
flag_handler like so:
```python
def flag_handler(self, name, flags):
wrapper_flags = []
environment_flags = []
build_system_flags = []
if self.spec.satisfies("+rocm"):
if self.spec.satisfies("^cray-mpich"):
gtl_lib = self.spec["cray-mpich"].package.gtl_lib
build_system_flags.extend(gtl_lib.get(name) or [])
# hipcc is not wrapped, we need to pass the flags via the
# build system.
build_system_flags.extend(flags)
return (wrapper_flags, environment_flags, build_system_flags)
```
---------
Co-authored-by: Richard Berger <rberger@lanl.gov>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Co-authored-by: Richard Berger <richard.berger@outlook.com>
* lammps: use the Cray GTL (#46090)
* lammps: add 20241119 and 20250204 releases (#48978)
* plog: add new package (#48975)
* binutils: add debuginfod variant + update deps (#49011)
* h5hut: Remove H5_USE_110_API for newer versions (#48885)
* h5hut: Remove H5_USE_110_API for newer versions
* h5hut: style reformat and add maintainer
* h5hut: correct version syntax for <v2.x.x
* h5hut: Bump default version to 2.0.0rc7 and remove older rc candidates
* Update var/spack/repos/builtin/packages/h5hut/package.py
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
---------
Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
* spack debug create-db-tarball: remove after test failures (#49025)
* bubblewrap: add versions up to v0.11.0 (#49023)
* gftl: add v1.15.2 (#48992)
* py-torchgeo: pyvista dep has been removed (#48990)
* py-memray: add v1.15.0 (#48989)
* yosys: add v0.50 (#48983)
* laszip: Add version 3.4.4. (#48982)
* py-numpy: add v2.2.3 (#49029)
* pandora{pfa,sdk,monitoring}: add new versions and allow setting the C++ standard (#48300)
* pandoramonitoring: add v3.6.0; pandorapfa: add v4.11.2
Remove variables that are not being used in pandorasdk. Use the C++ standard
from ROOT when possible and pass -Wno-error to override the -Werror that will
typically fail with a new standard. Add a cxxstd variant for pandorasdk
* Fix style
* Update var/spack/repos/builtin/packages/pandorasdk/package.py
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Fix style
---------
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* easi@1.5.2 (#49013)
* Put in maintainers for Kokkos Tools Spack package (#49018)
* Kokkos Tools package.py: fix maintainers
* Kokkos Tools package.py: remove white space between first and second maintainer in comma-separated list
* [@spackbot] updating style on behalf of vlkale
* Correct maintainers syntax
Co-authored-by: Richard Berger <richard.berger@outlook.com>
---------
Co-authored-by: vlkale <vlkale@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Co-authored-by: Richard Berger <richard.berger@outlook.com>
* zlib package: Ensure correct lib search on Windows (#48512)
* Name of zlib's library differs on Windows; also account for name
differing when building +shared
* `zlib`'s `.libs` implementation was searching for the runtime
libraries (the .dlls) and should be searching for link-time libs
* Update openfast, amr-wind, and nalu-wind packages (#48994)
* acts: conflicts ^geant4@11.3: when @:35 (#49028)
* yq: add versions 4.44.5 and 4.44.6 and 4.45.1 (#49027)
* openblas: .libs() uses self.libraries attribute (#48942)
Currently this is hardcoded to the same value as listed in the class
definition. If one ever overrides this attribute, such as:
```
packages:
openblas:
package_attributes:
libraries = [ 'libopenblaso64', ]
```
this patch will make sure that override also in the
`spec['openblas'].libs()` call. (Which happens in `hypre`, likely
others).
( see
https://spack.readthedocs.io/en/latest/packages_yaml.html#assigning-package-attributes
)
Thanks to becker33 for debugging help in Slack
* RepoSplit/tests: update repo tests relying on builtin package repo to only use mock repos (#48926)
* RepoSplit/tests: update repo tests relying on builtin
* test_repo_last_mtime: skip on windows due to mtime issues in CI
* MesonPackage: depends_on pkgconfig (#46955)
meson's `dependency` function often uses pkg-config to locate a dependency, and may even fall back to cmake. The former case is very common, and since packagers often forget to add the tiny pkgconfig package as a build dep, we do it for them.
* Spec.__getitem__: restrict to direct deps + transitive runtime deps (#49016)
With this change spec["pkg"] searches only direct dependencies and transitive link/run
dependencies, ordered by depth. This avoids situations where we pick up unwanted
deps of build/test deps.
To reach those, you need to do spec["build_dep"]["pkg"] explicitly.
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* views: normalize paths on case insensitive file systems (#47370)
On macOS, prefix_a/file and prefix_b/FILE map to the same file view/file or view/FILE.
This commit ensures that we test whether a view is created on a case insensitive filesystem and handle projection conflicts accordingly.
* Allow tuning max_dupes for build dependencies (#48948)
Up to now, Spack was allowing all build-tools that
may appear in the DAG to have 2 max_dupes.
This is not needed in practice for most of them,
and adding them out of caution just increases
grounding and concretization time.
This PR makes the value of max_dupes configurable
per package, and sets only a few known packages to
2 max_dupes by default.
In case user needs different values, they can
tune the configuration for their use case.
* vtk: fix 9.4.1 concretization (#48946)
* seacas: conflict 2024-06-27 with windows
* vtk: fix 9.4.1 seacas dependency
* cairo: add new version and update build system (#48822)
* update cairo for new meson build system
* update patch range. remove old conflict
* style
* update pango to reflect the changes in cairo
* refine depends
* style
* add lzo depends
* add +shared
* non self-referential variant requireme
* style
* Move +shared variant back to just autotools as meson automatically handles it
* clarify patch when=
* update based on reviews. switch from conflicts to requires to enforce variant synchronization
* refine conflicts and requires
* better group build deps together
* comment for meson build lower version bound
* clarifying comments
* clarify version ranges, enforce build_system with version ranges
* style
* cairo: no need to require for build_systems
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* fzf: add v0.60.0, improve styling (#49059)
* fd: improve documentation and styling to help newer maintainers (#49058)
* direnv: add master, fix up package for better documentation (#49053)
* GDAL: add v3.10.2 (#49042)
* pbwt: new package (#49055)
* pbwt: add v2.1, v2.0
Signed-off-by: Teague Sterling <teaguesterling@gmail.com>
* [@spackbot] updating style on behalf of teaguesterling
* Update package.py
---------
Signed-off-by: Teague Sterling <teaguesterling@gmail.com>
* py-xarray-regrid: Add new package (#48834)
* Add py-xarray-regrid and required dep flox
* remove boiler plate
* Add missing py310 dep
* py-flox, py-xarray-regrid: add type=("build", "run") to python dependency
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* build(deps): bump isort in /.github/workflows/requirements/style (#48746)
Bumps [isort](https://github.com/pycqa/isort) from 5.13.2 to 6.0.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.13.2...6.0.0)
---
updated-dependencies:
- dependency-name: isort
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* build(deps): bump black from 24.10.0 to 25.1.0 in /lib/spack/docs (#48780)
Bumps [black](https://github.com/psf/black) from 24.10.0 to 25.1.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/24.10.0...25.1.0)
---
updated-dependencies:
- dependency-name: black
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* surfer: new package (#48432)
* Add waveform viewer, surfer for RTL simulations
* Ran black over the code following style check failure
* build(deps): bump black in /.github/workflows/requirements/style (#48779)
Bumps [black](https://github.com/psf/black) from 24.10.0 to 25.1.0.
- [Release notes](https://github.com/psf/black/releases)
- [Changelog](https://github.com/psf/black/blob/main/CHANGES.md)
- [Commits](https://github.com/psf/black/compare/24.10.0...25.1.0)
---
updated-dependencies:
- dependency-name: black
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* new package: jujutsu (#48231)
* lis: add v2.0.28 -> v2.1.7 (#48308)
* Added LIS 2.1.7
* Added LIS versions from 2.0.28 to 2.1.7
* apply black v25.1.0 (#49076)
* build(deps): bump isort from 5.13.2 to 6.0.0 in /lib/spack/docs (#48747)
Bumps [isort](https://github.com/pycqa/isort) from 5.13.2 to 6.0.0.
- [Release notes](https://github.com/pycqa/isort/releases)
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md)
- [Commits](https://github.com/pycqa/isort/compare/5.13.2...6.0.0)
---
updated-dependencies:
- dependency-name: isort
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Spec.__contains__: restrict to direct build and transitive runtime deps (#49072)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
* mochi-margo/mochi-thallium: new versions (#49037)
* mochi-margo/mochi-thallium: new versions
* mochi-thallium: fixing style
* mochi-thallium: fixing required dependency on mochi-margo versions
* Add new recipe aotriton for rocm. (#49038)
* add new reciple aotriton for rocm. used for py-torch
* update the git info
* fix style error
* fix style error
* fix style error
* address review comments
* fix style error
* update maintainers (#48295)
* acts dependencies: new versions as of 2025/02/17 (#49073)
This commit adds detray v0.88.1, covfie v0.12.0 and v0.12.1, as well as
ACTS v37.1.0.
* magma: remove cuda_arch constraint on 2.9.0+ (#49019)
* plsm: new package (#48875)
* Adding plsm package
* [@spackbot] updating style on behalf of PhilipFackler
* Removing redundant text
* Add description
* Add blank line
* Add cuda_arch and update int64 handling
* gnutls: add v3.8.9 (#49062)
* gnutls: add v3.8.9
* gnutls: address super small nitpick
* gnutls: fix git url
* qemacs: add v6.4.1, fix +doc (#48722)
* py-fastjsonschema: add 2.17 to 2.21.1; note python dependencies (#47926)
* py-fastjsonschema: add 2.17 to 2.21.1; note python dependencies
* py-importlib-resources: add v5.13 to 6.4
* Revert "py-importlib-resources: add v5.13 to 6.4"
This reverts commit 1df208874c799b99dcfc43f13ae85f9324c59b52.
---------
Signed-off-by: Shane Nehring <snehring@iastate.edu>
Signed-off-by: Jonathon Anderson <anderson.jonathonm@gmail.com>
Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
Signed-off-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
Signed-off-by: Teague Sterling <teaguesterling@gmail.com>
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
Signed-off-by: Justin Cook <jscook@lbl.gov>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Etienne Ndamlabin <88906611+endamlabin@users.noreply.github.com>
Co-authored-by: Etienne Ndamlabin <jean-etienne.ndamlabin-mboula@inria.fr>
Co-authored-by: Sreenivasa Murthy Kolam <sreenivasamurthy.kolam@amd.com>
Co-authored-by: Thomas Bouvier <contact@thomas-bouvier.io>
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
Co-authored-by: G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Co-authored-by: David Schneller <12698011+davschneller@users.noreply.github.com>
Co-authored-by: Juan Miguel Carceller <22276694+jmcarcell@users.noreply.github.com>
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
Co-authored-by: snehring <7978778+snehring@users.noreply.github.com>
Co-authored-by: Buldram <buldram@proton.me>
Co-authored-by: jmuddnv <143751186+jmuddnv@users.noreply.github.com>
Co-authored-by: Thomas-Ulrich <ulrich@geophysik.uni-muenchen.de>
Co-authored-by: Satish Balay <balay@mcs.anl.gov>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Co-authored-by: Filippo Spiga <spiga.filippo@gmail.com>
Co-authored-by: Harmen Stoppels <me@harmenstoppels.nl>
Co-authored-by: Richard Berger <rberger@lanl.gov>
Co-authored-by: Jonathon Anderson <17242663+blue42u@users.noreply.github.com>
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Co-authored-by: Eric Berquist <727571+berquist@users.noreply.github.com>
Co-authored-by: wspear <wspear@cs.uoregon.edu>
Co-authored-by: wspear <wspear@users.noreply.github.com>
Co-authored-by: Alec Scott <hi@alecbcs.com>
Co-authored-by: John W. Parent <45471568+johnwparent@users.noreply.github.com>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Chris Marsh <chrismarsh.c2@gmail.com>
Co-authored-by: Rocco Meli <r.meli@bluemail.ch>
Co-authored-by: afzpatel <122491982+afzpatel@users.noreply.github.com>
Co-authored-by: psakievich <psakiev@sandia.gov>
Co-authored-by: Brian Spilner <Try2Code@users.noreply.github.com>
Co-authored-by: Dominic Hofer <6570912+dominichofer@users.noreply.github.com>
Co-authored-by: Greg Becker <becker33@llnl.gov>
Co-authored-by: danielsjensen1 <dsjense@sandia.gov>
Co-authored-by: Till Ehrengruber <till.ehrengruber@cscs.ch>
Co-authored-by: Henri Menke <henri@henrimenke.de>
Co-authored-by: pauleonix <paul.grosse-bley@ziti.uni-heidelberg.de>
Co-authored-by: Mosè Giordano <765740+giordano@users.noreply.github.com>
Co-authored-by: Zack Galbreath <zack.galbreath@kitware.com>
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
Co-authored-by: Taillefumier Mathieu <29380261+mtaillefumier@users.noreply.github.com>
Co-authored-by: Mathieu Taillefumier <mathieu.taillefumier@free.fr>
Co-authored-by: Piotr Sacharuk <107190444+PiotrSacharuk@users.noreply.github.com>
Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com>
Co-authored-by: psakievich <psakievich@users.noreply.github.com>
Co-authored-by: rfbgo <109985755+rfbgo@users.noreply.github.com>
Co-authored-by: Felix Thaler <thaler@cscs.ch>
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
Co-authored-by: japlews <22622327+japlews@users.noreply.github.com>
Co-authored-by: George Young <A-N-Other@users.noreply.github.com>
Co-authored-by: Stephen Nicholas Swatman <stephen@v25.nl>
Co-authored-by: Davis Herring <herring@lanl.gov>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Izaak "Zaak" Beekman <contact@izaakbeekman.com>
Co-authored-by: ddement <ddement@gatech.edu>
Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
Co-authored-by: Matt Thompson <matthew.thompson@nasa.gov>
Co-authored-by: SXS Bot <31972027+sxs-bot@users.noreply.github.com>
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com>
Co-authored-by: AMD Toolchain Support <73240730+amd-toolchain-support@users.noreply.github.com>
Co-authored-by: vijay kallesh <Vijay-teekinavar.Kallesh@amd.com>
Co-authored-by: Alberto Sartori <alberto.sartori@huawei.com>
Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>
Co-authored-by: Thomas Madlener <thomas.madlener@desy.de>
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
Co-authored-by: Vinícius <viniciusvgp@gmail.com>
Co-authored-by: Teague Sterling <teaguesterling@users.noreply.github.com>
Co-authored-by: Shane Nehring <snehring@iastate.edu>
Co-authored-by: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
Co-authored-by: Robert Mijakovic <robert.mijakovic@gmail.com>
Co-authored-by: Paul <bryantpj@ornl.gov>
Co-authored-by: Paul R. C. Kent <kentpr@ornl.gov>
Co-authored-by: Vanessasaurus <814322+vsoch@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@users.noreply.github.com>
Co-authored-by: Howard Pritchard <howardp@lanl.gov>
Co-authored-by: jgraciahlrs <gracia@hlrs.de>
Co-authored-by: Fernando Ayats <ayatsfer@gmail.com>
Co-authored-by: Tim Haines <thaines.astro@gmail.com>
Co-authored-by: renjithravindrankannath <94420380+renjithravindrankannath@users.noreply.github.com>
Co-authored-by: Peter Scheibel <scheibel1@llnl.gov>
Co-authored-by: alalazo <alalazo@users.noreply.github.com>
Co-authored-by: Tara Drwenski <tdrwenski@users.noreply.github.com>
Co-authored-by: Justin Cook <jscook@lbl.gov>
Co-authored-by: jean-francois-sa <jleblancrichard@simplyanalytics.com>
Co-authored-by: etiennemlb <eti.malaboeuf@gmail.com>
Co-authored-by: Richard Berger <richard.berger@outlook.com>
Co-authored-by: Dmitri Smirnov <dmixsmi@gmail.com>
Co-authored-by: John Biddiscombe <biddisco@cscs.ch>
Co-authored-by: Dave Keeshan <96727608+davekeeshan@users.noreply.github.com>
Co-authored-by: Rémi Lacroix <remi.lacroix@idris.fr>
Co-authored-by: Vivek Kale <11766050+vlkale@users.noreply.github.com>
Co-authored-by: vlkale <vlkale@users.noreply.github.com>
Co-authored-by: Marc T. Henry de Frahan <marc.henrydefrahan@nrel.gov>
Co-authored-by: Robert Maaskant <RobertMaaskant@users.noreply.github.com>
Co-authored-by: Matthew Lesko <matthew.w.lesko@nasa.gov>
Co-authored-by: Paul Gessinger <hello@paulgessinger.com>
Co-authored-by: Vicente Bolea <vicente.bolea@kitware.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Pranav Sivaraman <pranavsivaraman@gmail.com>
Co-authored-by: Filippo Barbari <filippo.barbari@gmail.com>
Co-authored-by: Matthieu Dorier <mdorier@anl.gov>
Co-authored-by: Nai-Yuan Chiang <sorakid507@gmail.com>
Co-authored-by: Cameron Rutherford <rcamruzz@amazon.com>
Co-authored-by: Philip Fackler <49726797+PhilipFackler@users.noreply.github.com>
Co-authored-by: dmagdavector <david.magda@vectorinstitute.ai>
* update cairo for new meson build system
* update patch range. remove old conflict
* style
* update pango to reflect the changes in cairo
* refine depends
* style
* add lzo depends
* add +shared
* non self-referential variant requireme
* style
* Move +shared variant back to just autotools as meson automatically handles it
* clarify patch when=
* update based on reviews. switch from conflicts to requires to enforce variant synchronization
* refine conflicts and requires
* better group build deps together
* comment for meson build lower version bound
* clarifying comments
* clarify version ranges, enforce build_system with version ranges
* style
* cairo: no need to require for build_systems
---------
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
Up to now, Spack was allowing all build-tools that
may appear in the DAG to have 2 max_dupes.
This is not needed in practice for most of them,
and adding them out of caution just increases
grounding and concretization time.
This PR makes the value of max_dupes configurable
per package, and sets only a few known packages to
2 max_dupes by default.
In case user needs different values, they can
tune the configuration for their use case.
On macOS, prefix_a/file and prefix_b/FILE map to the same file view/file or view/FILE.
This commit ensures that we test whether a view is created on a case insensitive filesystem and handle projection conflicts accordingly.
With this change spec["pkg"] searches only direct dependencies and transitive link/run
dependencies, ordered by depth. This avoids situations where we pick up unwanted
deps of build/test deps.
To reach those, you need to do spec["build_dep"]["pkg"] explicitly.
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
meson's `dependency` function often uses pkg-config to locate a dependency, and may even fall back to cmake. The former case is very common, and since packagers often forget to add the tiny pkgconfig package as a build dep, we do it for them.
Currently this is hardcoded to the same value as listed in the class
definition. If one ever overrides this attribute, such as:
```
packages:
openblas:
package_attributes:
libraries = [ 'libopenblaso64', ]
```
this patch will make sure that override also in the
`spec['openblas'].libs()` call. (Which happens in `hypre`, likely
others).
( see
https://spack.readthedocs.io/en/latest/packages_yaml.html#assigning-package-attributes
)
Thanks to becker33 for debugging help in Slack
* Name of zlib's library differs on Windows; also account for name
differing when building +shared
* `zlib`'s `.libs` implementation was searching for the runtime
libraries (the .dlls) and should be searching for link-time libs
* pandoramonitoring: add v3.6.0; pandorapfa: add v4.11.2
Remove variables that are not being used in pandorasdk. Use the C++ standard
from ROOT when possible and pass -Wno-error to override the -Werror that will
typically fail with a new standard. Add a cxxstd variant for pandorasdk
* Fix style
* Update var/spack/repos/builtin/packages/pandorasdk/package.py
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* Fix style
---------
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
* h5hut: Remove H5_USE_110_API for newer versions
* h5hut: style reformat and add maintainer
* h5hut: correct version syntax for <v2.x.x
* h5hut: Bump default version to 2.0.0rc7 and remove older rc candidates
* Update var/spack/repos/builtin/packages/h5hut/package.py
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
---------
Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>
Co-authored-by: Mikael Simberg <mikael.simberg@iki.fi>
cray-mpich now has a rocm variant. You can use gtl_lib in the
flag_handler like so:
```python
def flag_handler(self, name, flags):
wrapper_flags = []
environment_flags = []
build_system_flags = []
if self.spec.satisfies("+rocm"):
if self.spec.satisfies("^cray-mpich"):
gtl_lib = self.spec["cray-mpich"].package.gtl_lib
build_system_flags.extend(gtl_lib.get(name) or [])
# hipcc is not wrapped, we need to pass the flags via the
# build system.
build_system_flags.extend(flags)
return (wrapper_flags, environment_flags, build_system_flags)
```
---------
Co-authored-by: Richard Berger <rberger@lanl.gov>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Co-authored-by: Richard Berger <richard.berger@outlook.com>
* postgresql: add version 17.2
* postgresql: install flex, bison and perl when building versions 17 and up
* postgresql: do not install perl by default when building versions 17 and up
This PR is effectively a breaking change extracted from #45189, which removes
support for spec["mpi"] if spec itself is openmpi / mpich that could provide mpi;
from the Spec instance we don't have any parent it provides it to,
hence it's a KeyError.
* g4vg: add develop version
* celeritas: add develop version
* Fix style
* REVERTME: move celeritas changes to another branch
* Get full repo
* remove unneeded variable
Currently, a few packages using kokkos rely on
kokkos itself monkeypatching its own spec to
provide some attribute.
In this commit we change this attribute to be
defined on the package, and never be monkeypatched.
Currently, when we setup the ASP problem for `clingo`, we don't take into account the configuration. This results in setting up ASP problems that are larger than necessary, with possibly redundant information, and higher concretization times.
This PR tries to improve things by adding an opt-in feature that computes the _possible dependencies_ of a solve taking also into account the current configuration, and avoids adding possible dependencies that we are certain can't be in the final solution.
The feature can be activated with:
```yaml
concretizer:
static_analysis: true
```
Examples of simple rules to discard dependencies are:
- Dependencies that are not buildable, and for which no binary is present (e.g. `cray-mpich` etc. on non Cray systems)
- Dependencies that are not for the current platform (e.g. `msmpi` on non Windows platforms)
- Conditional dependencies that cannot be activated, because of some user requirement (e.g. `cuda` etc. if the user requires `~cuda` in configuration)
- Virtual providers that cannot be used, because of a requirement on a virtual
The speed-up these rules seem to give depends on the use case at hand, but if the configuration is updated properly, they are noticeable.
Since in cases where there is no rule to exclude packages upfront, reuse is active, and this option is activated, it's possible to see some minor slow down, the feature has been added as opt-in, so it's turned off by default.
* Bump up the version for rocm-6.3.2 release
* rocm-openmp-extras update and style correction
* Updating mivisionx, omniperf, rccl & rocprofiler-systems
* Updating hipsparselt & rocm-opencl
* rocprofiler-systems on gcc-13 and rvs commit instead of patch
* Updated rocjpeg & rocm-examples for 6.3.2
* ROCPROFSYS_BUILD_DYNINST & DYNINST_BUILD_TBB are required only with gcc-13
---------
Co-authored-by: afzpatel <122491982+afzpatel@users.noreply.github.com>
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.