Commit Graph

38306 Commits

Author SHA1 Message Date
Nathan Hanford
af62a062cc
Installer: rewire spliced specs via RewireTask (#39136)
This PR allows users to configure explicit splicing replacement of an abstract spec in the concretizer.

concretizer:
  splice:
    explicit:
    - target: mpi
      replacement: mpich/abcdef
      transitive: true

This config block would mean "for any spec that concretizes to use mpi, splice in mpich/abcdef in place of the mpi it would naturally concretize to use. See #20262, #26873, #27919, and #46382 for PRs enabling splicing in the Spec object. This PR will be the first place the splice method is used in a user-facing manner. See https://spack.readthedocs.io/en/latest/spack.html#spack.spec.Spec.splice for more information on splicing.

This will allow users to reuse generic public binaries while splicing in the performant local mpi implementation on their system.

In the config file, the target may be any abstract spec. The replacement must be a spec that includes an abstract hash `/abcdef`. The transitive key is optional, defaulting to true if left out.

Two important items to note:

1. When writing explicit splice config, the user is in charge of ensuring that the replacement specs they use are binary compatible with whatever targets they replace. In practice, this will likely require either specific knowledge of what packages will be installed by the user's workflow, or somewhat more specific abstract "target" specs for splicing, to ensure binary compatibility.
2. Explicit splices can cause the output of the concretizer not to satisfy the input. For example, using the config above and consider a package in a binary cache `hdf5/xyzabc` that depends on mvapich2. Then the command `spack install hdf5/xyzabc` will instead install the result of splicing `mpich/abcdef` into `hdf5/xyzabc` in place of whatever mvapich2 spec it previously depended on. When this occurs, a warning message is printed `Warning: explicit splice configuration has caused the the concretized spec {concrete_spec} not to satisfy the input spec {input_spec}".

Highlighted technical details of implementation:

1. This PR required modifying the installer to have two separate types of Tasks, `RewireTask` and `BuildTask`. Spliced specs are queued as `RewireTask` and standard specs are queued as `BuildTask`. Each spliced spec retains a pointer to its build_spec for provenance. If a RewireTask is dequeued and the associated `build_spec` is neither available in the install_tree nor from a binary cache, the RewireTask is requeued with a new dependency on a BuildTask for the build_spec, and BuildTasks are queued for the build spec and its dependencies.
2. Relocation is modified so that a spack binary can be simultaneously installed and rewired. This ensures that installing the build_spec is not necessary when splicing from a binary cache.
3. The splicing model is modified to more accurately represent build dependencies -- that is, spliced specs do not have build dependencies, as spliced specs are never built. Their build_specs retain the build dependencies, as they may be built as part of installing the spliced spec.
4. There were vestiges of the compiler bootstrapping logic that were not removed in #46237 because I asked alalazo to leave them in to avoid making the rebase for this PR harder than it needed to be. Those last remains are removed in this PR.

Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
Co-authored-by: Gregory Becker <becker33@llnl.gov>
Co-authored-by: Tamara Dahlgren <dahlgren1@llnl.gov>
2024-10-10 15:48:58 -07:00
Stephen Nicholas Swatman
e6114f544d
acts dependencies: new versions as of 2024/10/07 (#46836)
This commit adds new versions of Acts, detray, and vecmem.
2024-10-10 14:43:43 -05:00
dependabot[bot]
8d651625f7
build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 (#46895)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.4.0 to 4.4.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](50769540e7...b4b15b8c7c)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-10 11:38:56 -05:00
Mikael Simberg
9346306b79
hip: Set --gcc-toolchain to ensure external HIP installs pick up correct GCC (#46573) 2024-10-10 18:15:02 +02:00
Garth N. Wells
f3a3e85bb9
py-scikit-build-core: add v0.10.7 (#46883)
* Add scikit-build-core version

* Update var/spack/repos/builtin/packages/py-scikit-build-core/package.py

Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>

---------

Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2024-10-10 10:09:21 -06:00
pauleonix
caaaba464e
cuda: add v12.6.2 (#46864)
* cuda: Add 12.6.2
* Update cuda build system
   - Remove gcc@6 conflict that was only a deprecation (probably has be added again with cuda@13)
   - Update cuda_arch support by CUDA version
   - Kepler support has ended with cuda@12
   - Recently added 90a Hopper "experimental" features architecture was
    missing the dependency on cuda@12:
2024-10-10 09:48:20 -06:00
Chris Marsh
8fae388f57
pcre2: Fix spec reference without self
Fixes bug introduced in #46788
2024-10-10 11:45:51 -04:00
Rob Falgout
a332e0c143
Update package.py for release 2.32.0 of hypre (#46865) 2024-10-10 08:27:51 -06:00
kjrstory
bc662b8764
su2 fixes and improvements: AD, scipy/numpy, and Mutationpp setup, environment variable (#46774)
* su2 fixes and improvements: AD, scipy/numpy, and Mutationpp setup, environment variable

* su2: Conflict %gcc@13: when @:7, mpp was added with @7.1.0

* py-scipy: SciPy 1.14: requires GCC >= 9.1

---------

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-10-10 08:19:05 -06:00
Juan Miguel Carceller
7a8955597d
py-cython: add v3.0.11 (#46772)
* py-cython: add v3.0.11
   Add url for cython because they are using lower case for 3.0.11
   Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
* Don't use f-string
* Remove old version directive for 3.0.11

---------

Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2024-10-10 08:18:34 -06:00
BOUDAOUD34
bcf9c646cf
pocl: switch from deprecated master branch to main branch in git repo (#46476)
Co-authored-by: U-PALLAS\boudaoud <boudaoud@pc44.pallas.cines.fr>
2024-10-10 15:56:01 +02:00
Daryl W. Grunau
a76fffe8ff
eospac: add versions 6.5.10 and 6.5.11 (#46894)
Co-authored-by: Daryl W. Grunau <dwg@lanl.gov>
2024-10-10 13:32:30 +02:00
Jen Herting
26c8714a24
[py-transformers] limit numpy to <2 (#46890) 2024-10-10 13:31:50 +02:00
Adam J. Stewart
0776ff05d2
py-cartopy: add v0.24.1 (#46882)
* py-cartopy: add v0.24.1
2024-10-10 04:48:06 -06:00
djabaay
d3beef6584
Adding "import llnl.util.tty as tty" for PETSC to correctly run for versions <3.13 (#46892)
petsc: fix missing tty import needed to print the warning.
2024-10-10 04:07:43 -06:00
Sergey Kosukhin
bdd06cb176
hdf5: conflicts zlib-ng+new_strategies (#43535) 2024-10-10 12:01:46 +02:00
Tom Scogland
f639c4f1e6
add lima package, update qemu to make it usable (#46893)
adds the lima-vm project, in order to make that useful adds a newer
version of qemu so qemu VMs can work, and builds qemu with flags that
allow it to do things like give the VMs networking and virtfs
filesystems.

Also adds vde as a dependency of qemu.
2024-10-10 03:25:16 -06:00
吴坎
f18a106759
apache-tvm: add missing dependencies (#46818) 2024-10-10 11:17:42 +02:00
Julien Cortial
5b01ddf832
mumps: Add version 5.7.3 (#46862) 2024-10-10 10:52:11 +02:00
Tuomas Koskela
c1fc98eef8
sopt: new package (#46837)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-10-10 10:10:16 +02:00
Stephen Sachs
e9831985e4
Use pcluster-alinux2 container image with pre-installed compilers (#44150) 2024-10-10 10:01:59 +02:00
Juan Miguel Carceller
30e9545d3e
py-lxml: add 5.3.0 (#46771)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2024-10-10 01:37:29 -06:00
Arne Becker
ce0910a82c
perl-sort-naturally: new package (#46886)
* perl-sort-naturally: new package
   Adds Sort::Naturally
* Use new mechanism for testing
* Make black happier
2024-10-10 01:05:11 -06:00
psakievich
afc01f9570
CMake: Improve incremental build speed. (#46878)
* CMake: Improve incremental build speed.

CMake automatically embeds an updated configure step into make/ninja that will be called during the build phase.  By default if a `CMakeCache.txt` file exists in the build directory CMake will use it and this + `spec.is_develop` is sufficient evidence of an incremental build.

This PR removes duplicate work/expense from CMake packages when using `spack develop`.

* Update cmake.py

* [@spackbot] updating style on behalf of psakievich

* Update cmake.py

meant self not spec...

---------

Co-authored-by: psakievich <psakievich@users.noreply.github.com>
2024-10-10 00:45:10 -06:00
Sreenivasa Murthy Kolam
fc3a484a8c
bump up version for rocm-opencl for 6.2.1 release (#46881) 2024-10-10 00:40:36 -06:00
Luke Pickering
de0d5ba883
hepmc3: fix typo in cmake arg for the +protobuf variant (#46872)
* fix typo in variable name in hepmc3 variant

* set cxx standard to 14 when using protobuf

* add myself to hepmc3 maintainer list

* hepmc3: Applied suggestion of @acecbs for spec.satisfies("+protobuf") (agreed!)

Co-authored-by: Alec Scott <hi@alecbcs.com>

* hepmc3: cxx_standard for protobuf

only set cxx standard to meet protobuf minimum (14) if not also rootio variant as that sets the cxx standard to match the root public API standard requirements
2024-10-10 00:40:22 -06:00
Nils Vu
f756ab156c
spectre: add v2024.09.16 (#46857) 2024-10-10 00:29:54 -06:00
Wouter Deconinck
540de118c1
imagemagick: add v7.1.1-39 (#46853)
* imagemagick: add v7.1.1-39

* [@spackbot] updating style on behalf of wdconinc

---------

Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
2024-10-10 00:18:36 -06:00
dependabot[bot]
675be13a7b
build(deps): bump actions/checkout from 4.2.0 to 4.2.1 (#46854)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](d632683dd7...eef61447b9)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-10 00:18:09 -06:00
Jason Hicken
3342866e0e
adept: new package (#46793)
* added adept package

* forgot to remove boilerplate comment

* fixed formatting issue and use of lapack_prefix

* adept: use f-string

* removed debug variant and corresponding configure_args conditional

---------

Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2024-10-09 21:14:56 +02:00
Caetano Melone
39ff675898
py-sqlparse: add version 0.5.1 (#46876) 2024-10-09 21:12:07 +02:00
Greg Becker
f807337273
Environment.clear: ensure clearing is passed through to manifest (#46880)
* Environment.clear: ensure clearing is passed through to manifest
* test/cmd/env: make test_remove_commmand round-trip to disk
* cleanup vestigial variables
2024-10-09 11:13:56 -07:00
Massimiliano Culpo
8e4e3c9060
python: rework how we compute the "command" property (#46850)
Some Windows Python installations may store the Python exe in Scripts/
rather than the base directory. Update `.command` to search in both
locations on Windows. On all systems, the search is now done
recursively from the search root: on Windows, that is the base install
directory, and on other systems it is bin/.
2024-10-09 01:08:27 -06:00
Christoph Junghans
6d67992191
cabana: add +all, with new package "all"(A Load Balancing Library) (#46852)
* Add libALL support

* cabana: also require ALL

* cabana: Bugfix: Fix spec for cmake>=3.26 to be @3.26: and HDF5 support requires MPI

* cabana: MPI requires C: Add depends_on("c", type="build", when="+mpi")

* cabana: +mpi requires C, but at least for some CMake versions, Cabana's enable of C is too late. Patch it.

* cabana: simplify disabling of find_package's for disabled options and improve comment

* cabana: +grid of 0.6.0 does not compile with gcc-13: It misses iostream includes

* cabana: +test requires googletest at build time: gtest is a linked library(not a plugin or tool)

* cabana: 0.6.0+cuda requires kokkos@3.7:, see https://github.com/ECP-copa/Cabana/releases

* cabana: As 0.6.0+grid does not support gcc-13 and newer, I think it's good to add 0.6.1 and 0.7.0?

---------

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-10-08 19:48:02 -06:00
Bernhard Kaindl
0f3fea511e
gettext: Fix ~libxml2: Skip patch for external libxml (#46870) 2024-10-08 19:04:10 -06:00
Cameron Rutherford
a0611650e2
resolve: Add LUSOL variant and fix CMake variable definition. (#44790)
* resolve: Add LUSOL variant and fix CMake variable definition.
* Update variant with correct version constraints.
2024-10-08 16:45:41 -07:00
Harmen Stoppels
5959be577f
python: add 3.13.0 (#46773) 2024-10-08 22:52:14 +03:00
Matt Thompson
9b5e508d15
mapl: add 2.49.1, 2.46.4 (#46849) 2024-10-08 13:18:14 -06:00
Ashim Mahara
66a30aef98
Added package Evodiff and dependencies (#46418)
* added py-evodiff and dependencies

* deleted the FIXME

* fixed style issues

* added versions for biotite dependencies; added hash to py-hatch-vcs

* added python version for py-hatch-cython

* updated biotraj dependencies

* - added versions for the packages and dependencies
- added more dependencies for py-hatch
- added rust versions
- added py-uv as a new package

* updated pacakges and their dependencies according to the PR review by @meyersbs

* typo fix for hatchling version; fix the minimum required setuptools version for evodiff

* added 1.9.0 and 1.7.0 userpath versions; required as a dependency

* added mlflow as a dependency

* changed biopython to an optional dependency according to review from @meyersbs; variant esmfold

* Updated Specs

- Pinned biotraj to 1:1 for py-biotite
- Added numpy and other dependencies for py-biotraj; they are dependent
  on the versions
- Excluded py-mlflow as a dependency for package py-evodiff; missing
  usage in
  package.
- Removed versioned dependencies from py-fair-esm
- Added a version to py-packaging
- Added py-setuptools as a dependency in py-userpath
- Added sha256 as hashes for py-uv

* style changes
2024-10-08 11:10:11 -07:00
Jen Herting
b117074df4
py-pydantic: add v2.7.4 with dep py-annotated-types (#46307)
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2024-10-08 18:19:51 +02:00
afzpatel
9f4be17451
rocblas,miopen-hip: fix miopen-hip@6.2.1 build and rocblas build test (#46755) 2024-10-08 18:00:56 +02:00
Massimiliano Culpo
d70e9e131d
Fix relocating MachO binary, when store projection changes (#46840)
* Remove "modify_object_macholib"

According to documentation, this function is used when installing
Mach-O binaries on linux. The implementation seems questionable at
least, and the code seems to be never hit (Spack currently doesn't
support installing Mach-O binaries on linux).

* Fix relocation on macOS, when store projection changes

---------

Signed-off-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-10-08 13:32:28 +02:00
Jen Herting
d7643d4f88
[py-torchmetrics] added image variant and deprecated 1.3.0 (#46258)
* [py-torchmetrics]

- Added variant
- deprecated version 1.3.0

* [py-torchmetrics]

- py-scipy@1.0.1:
- removed upper bounds on dependencies
2024-10-08 05:26:31 -06:00
Adam J. Stewart
73b6aa9b92
py-cartopy: add v0.24.0 (#46851)
* py-cartopy: add v0.24.0
* py-owslib: add v0.31.0
2024-10-08 00:28:27 -06:00
Seth R. Johnson
6d51d94dab
celeritas: add v0.5.0 (#46841) 2024-10-08 06:29:09 +02:00
Adam J. Stewart
1a965e9ec2
py-torchvision: fix build with Apple Clang 16 (#46462) 2024-10-08 05:54:39 +02:00
Adrien Bernede
a9e9b901d1
mfem: Apply minor changes (replace ' with ") (#46537) 2024-10-08 05:53:38 +02:00
afzpatel
95b46dca3d
kokkos: modify standlone test to run with +rocm (#46779) 2024-10-08 05:48:50 +02:00
Wouter Deconinck
7f6ae2a51e
py-codespell: add v2.3.0 (#46760) 2024-10-07 21:00:44 -06:00
Wouter Deconinck
489d5b0f21
py-urllib3: add v1.26.20 (#46739) 2024-10-07 20:31:26 -06:00