Compare commits

...

95 Commits

Author SHA1 Message Date
Todd Gamblin
0a385414e5 cc: fix RPATH handling with -r on macOS
We have special logic in `cc` to *not* add RPATH arguments on macOS
when using `-r` as a linker argument, but it's applied every time we
append/extend RPATH lists, and it's not applied consistently.

- [x] Fix this by just not appending *any* parsed RPATHs on macOS
      when `-r` is present, instead of handling it on every insertion.

- [x] Simplify logic using the recently added `contains()` function.

Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-09-27 12:00:03 -07:00
Teague Sterling
cdba31280b rust-bindgen: add v0.66.0 -> v0.69.4 (#45392)
* rust-bindgen: add v0.66.0,v0.66.1,v0.68.1,v0.69.0-v0.69.4 & change build system to cargo

Signed-off-by: Teague Sterling <teaguesterling@gmail.com>

* fix dep

Signed-off-by: Teague Sterling <teaguesterling@gmail.com>

* [@spackbot] updating style on behalf of teaguesterling

* Update var/spack/repos/builtin/packages/rust-bindgen/package.py

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

---------

Signed-off-by: Teague Sterling <teaguesterling@gmail.com>
Co-authored-by: Alec Scott <hi@alecbcs.com>
2024-09-27 09:16:07 -07:00
Alec Scott
9b5f15abec docs: add --depth=2 to reduce download size (#46605)
* docs: add --depth=2 to reduce download size

* Add note to tell users about --depth=2 and manyFiles

* Fix inline code in info block
2024-09-27 09:09:19 -07:00
Mikael Simberg
9ad1d0c813 gperftools: Add 2.16 (#46606) 2024-09-27 07:49:23 -06:00
AMD Toolchain Support
00fae6dd79 charmpp: build fix for aocc (#45826) 2024-09-27 15:07:22 +02:00
Todd Gamblin
2613a14c43 cc: ensure that RPATHs passed to linker are unique
macOS Sequoia's linker will complain if RPATHs on the CLI are specified more than once.
To avoid errors due to this, make `cc` only append unique RPATHs to the final args list.

This required a few improvements to the logic in `cc`:

1. List functions in `cc` didn't have any way to append unique elements to a list. Add a
   `contains()` shell function that works like our other list functions. Use it to implement
   an optional `"unique"` argument to `append()` and an `extend_unique()`. Use that to add
   RPATHs to the `args_list`.

2. In the pure `ld` case, we weren't actually parsing `RPATH` arguments separately as we
   do for `ccld`. Fix this by adding *another* nested case statement for raw `RPATH`
   parsing. There are now 3 places where we deal with `-rpath` and friends, but I don't
   see a great way to unify them, as `-Wl,`, `-Xlinker`, and raw `-rpath` arguments are
   all ever so slightly different.

3. Fix ordering of assertions to make `pytest` diffs more intelligible. The meaning of
   `+` and `-` in diffs changed in `pytest` 6.0 and the "preferred" order for assertions
   became `assert actual == expected` instead of the other way around.

Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-09-27 05:27:26 -07:00
Todd Gamblin
a76a48c42e cc: simplify ordered list handling
`cc` divides most paths up into system paths, spack managed paths, and other paths.
This gets really repetitive and makes the code hard to read. Simplify the script
by adding some functions to do most of the redundant work for us.

Signed-off-by: Todd Gamblin <tgamblin@llnl.gov>
2024-09-27 05:27:26 -07:00
Tamara Dahlgren
0619a8bd4f axom/stand-alone tests: build and run in test stage directory (#46421)
* axom/stand-alone tests: build and run in test stage directory
* Removed unused glob
* axom/stand-alone tests: add example_stage_dir variable for clarity
2024-09-27 05:42:42 -06:00
吴坎
a3dc9e1eb8 py-altair: add v5.4.1 (#46461)
* Update py-altair@5.4.1

* Update

* Update var/spack/repos/builtin/packages/py-altair/package.py

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

* Update var/spack/repos/builtin/packages/py-altair/package.py

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

---------

Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2024-09-27 05:37:58 -06:00
Elliott Slaughter
e129df38ce legion: add 24.09.0 (#46592) 2024-09-27 05:13:01 -06:00
Ashim Mahara
9762e8719b - added rust versions (#46597) 2024-09-27 04:53:58 -06:00
dslarm
044dcee7ad acfl: remove gcc oriented PATH / LD_LIBRARY_PATH (#46594) 2024-09-27 04:48:36 -06:00
H. Joe Lee
32b6381b9b py-jarvis-util: add master version (#46599) 2024-09-27 04:38:41 -06:00
Stephen Sachs
532e6b6aa9 mpas-model: enable oneapi compiler (#46457)
Co-authored-by: stephenmsachs <stephenmsachs@users.noreply.github.com>
2024-09-27 03:18:23 -06:00
Richard Berger
7d6231b38a aspell: various fixes and updates (#46383)
SimpleFilesystemView was producing an error due to looking for a
<prefix>/lib/.spack folder. Also, view_destination had no effect and
wasn't called. Changed this by instead patching in the correct
installation prefix for dictionaries.

Since aspell is using the resolved path of the executable prefix, the
runtime environment variable ASPELL_CONF is set to correct the prefix
when in a view. With this change aspell can now find installed
dictionaries. Verified with:

aspell dump config
aspell dump dicts
2024-09-27 10:48:08 +02:00
Richard Berger
653556e881 texlive: fixup mtxrun for 2024 version (#46465) 2024-09-27 10:23:21 +02:00
BOUDAOUD34
13feee8364 CP2K: fix .mod file incompatibility on ROCm by using USE, INTRINSIC d… (#45848)
Co-authored-by: U-PALLAS\boudaoud <boudaoud@pc44.pallas.cines.fr>
2024-09-27 10:19:38 +02:00
Asher Mancinelli
62abcfb05f ocaml: add new versions (#46534) 2024-09-27 10:14:37 +02:00
Brett Viren
3637c087c5 ollama: add v0.3.9, and cuda variant (#46204)
Signed-off-by: Teague Sterling <teaguesterling@gmail.com>
Co-authored-by: brettviren <brettviren@users.noreply.github.com>
Co-authored-by: Teague Sterling <teaguesterling@gmail.com>
2024-09-27 10:13:54 +02:00
Wouter Deconinck
a835a0ed31 hudi: fix url (#46524) 2024-09-27 09:39:18 +02:00
kenche-linaro
7b3ab0e575 linaro-forge: added version 24.0.5 (#46588) 2024-09-27 09:26:53 +02:00
jmuddnv
0aa7963ed1 nvhpc: add v24.9 (#46586) 2024-09-27 08:28:12 +02:00
dependabot[bot]
941c8daabe build(deps): bump actions/checkout from 4.1.7 to 4.2.0 (#46584)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.7 to 4.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...d632683dd7)

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

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-09-27 08:22:47 +02:00
Alex Richert
29d85ba552 openblas: %intel@2021: conflict with avx512 (#44883) 2024-09-27 07:12:36 +02:00
Gavin John
1b01680be1 py-nanoplot: add v1.43.0 (#46160)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-26 22:57:46 -06:00
Robert Cohn
e439f8ea87 intel-oneapi-runtime: add depends on libirc (#46589) 2024-09-27 05:40:48 +02:00
arezaii
1d06a324b5 Chapel 2.2 update (#46593)
* shorten version number validations per reviewer feedback
* rename set_lib_path per reviewer feedback
* Add E4S tag
* Set CHPL_CUDA_PATH to ensure Chapel installer finds the right package
* Update ROCm dependency for Chapel 2.2
* Fix llvm-amdgpu and CHPL_TARGET_* for llvm=bundled
* Ensure CHPL_TARGET_COMPILER is set to "llvm" when required (llvm=spack
   or +cuda or +rocm).
* Ensure CHPL_TARGET_{CC,CXX} are only set when using llvm=spack or llvm=none
* Use hip.prefix to set CHPL_ROCM_PATH
   Since we might not directly depend on llvm-amdgpu, thus it might
   not appear in our spec
* limit m4 dependency to +gmp
* limit names of env vars created from variants
* Ensure that +cuda and +rocm variants are Sticky

The concretizer should never be permitted to select GPU support, because
it's only meaningful and functional when the appropriate hardware is actually
available, and the concretizer cannot reliably determine that.

Also: Chapel's GPU support includes alot of complicated dependencies
and constraints, so leaving that choice free to the concretizer leads to alot
of extraneous and confusing messages when failing to concretize a
non-GPU-enabled spec.

Co-authored-by: Dan Bonachea <dobonachea@lbl.gov>
2024-09-27 05:39:14 +02:00
Adam J. Stewart
20f90dcda2 LLVM: mark cuda_arch compatibility (#46397) 2024-09-27 05:30:47 +02:00
Asher Mancinelli
6f5f6a65b3 sbcl-bootstrap: new package (#46582)
Add pre-built sbcl for x86 and arm for various glibc versions, making
way for an actual sblc built from source.

Also switch to use set_env in a context manager over setting the
environment variable for the build environment. I hit an issue with the
build system due to this in the sbcl package, pre-empting the same issue
here.
2024-09-27 05:27:48 +02:00
Alec Scott
7360afb668 developer-tools-ci: remove version constraint on Emacs (#46590) 2024-09-26 15:57:28 -07:00
Juan Miguel Carceller
f25e586f0a madgraph5: add newer versions and a pythia8 variant (#41128)
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-26 12:24:01 -06:00
Cameron Smith
0191e15a6a omega-h: add version scorec.10.8.5 and test support (#45990) 2024-09-26 19:07:40 +02:00
psakievich
ea6e39805a Add a custom hook for dev_path changes (#46529)
* Add a custom hook for dev_path changes

Co-authored-by: Greg Becker <becker33@llnl.gov>
2024-09-26 08:59:13 -07:00
Thomas Madlener
bbd205543b py-onnx: build 1.15 with c++17 / c++20 when neeed (#46571) 2024-09-26 15:29:58 +02:00
Juan Miguel Carceller
b95160cd86 gaudi: add a patch for missing includes for @37:38 (#46365) 2024-09-26 15:08:59 +02:00
Wouter Deconinck
201840367d parallel: add v20240822 (#46355) 2024-09-26 14:41:50 +02:00
Thomas Madlener
5ebf45861f gaudi: Add version 39.0 and adapt dependencies and variants accordingly (#46572)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-26 06:38:28 -06:00
Tobias Ribizel
ec0d97ae82 hwloc: Disable levelzero explicitly if not requested (#46530)
The configure script will otherwise pick up external levelzero libraries and may potentially break depending libraries like pmix
2024-09-26 06:33:44 -06:00
Henri Menke
8290e7d947 bigdft-psolver: fix build failure (#46482)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-26 05:53:32 -06:00
Adam J. Stewart
95966ce10a py-pandas: add v2.2.3 (#46508) 2024-09-26 13:17:23 +02:00
Derek Ryan Strong
dce2f4ca7c strace: add v6.11 and mpers variant (disabed by default) (#46472)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-26 04:23:01 -06:00
Adam J. Stewart
7dc549d926 py-rasterio: add v1.4.0 (#46587) 2024-09-26 03:38:18 -06:00
Derek Ryan Strong
aa0e605956 fix: Disable native host build optimisations for fio (#46444) 2024-09-26 11:30:51 +02:00
snehring
5e56fa839d entrezdirect: add v22.6.20240912 (#46470)
Signed-off-by: Shane Nehring <snehring@iastate.edu>
2024-09-26 11:14:27 +02:00
Olivier Cessenat
c62ed8bb2f ngspice: add version 43 (#46499) 2024-09-26 10:36:08 +02:00
Wouter Deconinck
6872da419d spherepack: fix url, checksum, add flags (#46525) 2024-09-26 10:21:19 +02:00
Wouter Deconinck
e2aa11518a drill: fix url, add non-log4j-affected v1.20.3, v1.21.2 (#46531) 2024-09-26 09:42:28 +02:00
Dom Heinzeller
d4233a3048 py-arch and py-pandas-datareader: New packages (#46557) 2024-09-26 09:34:04 +02:00
Mikael Simberg
badb3bcee7 dla-future: Adapt lapack/scalapack CMake variables for master branch and next version (#46570)
* dla-future: Add DLAF_ prefix to LAPACK_LIBRARY CMake variable in newer versions

* dla-future: Use spec.satisfies to check version constraint for LAPACK_LIBRARY variable prefix

Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>

---------

Co-authored-by: Alberto Invernizzi <9337627+albestro@users.noreply.github.com>
2024-09-26 01:33:27 -06:00
Ben Cowan
4b05a2b78f py-ipython: Add 8.26, 8.27 (#46566) 2024-09-26 09:26:54 +02:00
Matt Thompson
777b5b0c39 mapl: add 2.48.0 (#46563) 2024-09-26 09:09:06 +02:00
James Shen
cd9446b5d4 genie: add v3.4.2 (#46568) 2024-09-26 09:07:34 +02:00
Brian Spilner
37ede80d3f add v2.4.4 (#46581) 2024-09-26 01:03:15 -06:00
Alec Scott
4eeb5b9665 emacs: fix dependency on texinfo when @29.4: (#46419) 2024-09-25 19:37:27 -06:00
Satish Balay
2778e530ad llvm: add v19.1.0 (#46504)
llvm@19 removed LLVM_ENABLE_TERMINFO,
so specify spec["ncurses"].libs via cmake option, LLDB_CURSES_LIBS
2024-09-25 17:39:47 -06:00
Wouter Deconinck
af9b359478 apr: add v1.7.5, deprecate older versions due to CVE (#46532) 2024-09-25 23:47:12 +02:00
dmagdavector
54ffc635e2 iproute2: add new versions (#46541) 2024-09-25 23:38:31 +02:00
Wouter Deconinck
71f73f5e40 cryptopp: fix url (#46562) 2024-09-25 23:31:14 +02:00
Richard Berger
b83c5237e9 Updates to several Python packages (#46404)
* py-sphinx-tabs: new version 3.4.5

* py-sphinx-design: new versions 0.5.0, 0.6.0, and 0.6.1

* py-requests: new version 2.32.3

* py-dnspython: new version 2.6.1

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

* py-hatch-vcs: new version 0.4.0

---------

Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2024-09-25 15:22:32 -06:00
Matthieu Dorier
6bf005e042 faiss: add 1.8.0 and fix the dependency on cmake (#46578) 2024-09-25 23:15:49 +02:00
Pranav Sivaraman
2d8b4dbe3b zoxide: add v0.9.5 and v0.9.6 (#46579) 2024-09-25 20:11:47 +02:00
Tobias Ribizel
0fab5cadb3 llvm: Add conflict related to Python distutils removal (#46528)
Python 3.12 removed the `distutils` module, which is being required
by the build process of LLVM <= 14: Conflict with it for +python.

Fix build to not pick host tools like an incompatible Python from host

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-25 19:13:57 +02:00
Jen Herting
ade2513dcb py-nltk: add v3.9.1 (#46302) 2024-09-25 19:12:16 +02:00
Stephen Sachs
74b76cc6b3 quantum-espresso: restrict oneapi compiler to supported versions (#46456) 2024-09-25 18:06:14 +02:00
Mikael Simberg
edf6729943 mimalloc: Add 2.1.7 (#46577) 2024-09-25 08:29:52 -06:00
Andrew W Elble
fd087107ea py-tensorflow: fix linking with ubuntu's gcc (#45437)
gcc on ubuntu has fix-cortex-a53-843419 set by default - this causes linking
issues (symbol relocation errors) for tf, even when compiling for different
cpus.
2024-09-25 15:19:58 +02:00
Andrey Perestoronin
a342da5642 added new packages (#46440) 2024-09-25 04:55:34 -06:00
Mikael Simberg
5f7501c4f7 mold: Add 2.34.0 (#46569) 2024-09-25 02:53:35 -06:00
Harmen Stoppels
f01dbe2c35 Remove a few redundant imports (#46512) 2024-09-25 10:05:11 +02:00
afzpatel
a474034023 py-jaxlib: add external ROCm support (#46467)
* add external ROCm support for py-jaxlib

* fix style

* remove fork releases
2024-09-24 16:38:58 -06:00
Samuel Browne
022eca1cfe Fix off-by-one padding bug (#46560)
If `add_padding()` is allowed to return a path with a trailing path
separator, it will get collapsed elsewhere in Spack. This can lead to
buildcache entries that have RPATHS that are too short to be replaced by
other users whose install root happens to be padded to the correct
length.  Detect this and replace the trailing path separator with a
concrete path character.

Signed-off-by: Samuel E. Browne <sebrown@sandia.gov>
2024-09-24 15:37:52 -06:00
Martin Pokorny
f49b10ee43 casacore-measures: new package, fix wget dependency (#46125)
Co-authored-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
2024-09-24 15:14:02 -06:00
etiennemlb
ff4e311e72 kahip: Add patch to fix missing include (#46084) 2024-09-24 22:45:08 +02:00
Thomas Madlener
43d1cdb0bd dd4hep: Add tag for version 1.30 (#46429) 2024-09-24 14:19:29 -06:00
Asher Mancinelli
08c4f81596 opam: Add versions 2.1.4 to 2.2.1 (#46535)
Also: set the build and install directories to the source directory
because the build system unfortunately expects the `src_ext` directory
to be under the current working directory when building the bundled
third-party libraries, even when the configure script is run from
another directory.

@scemama pointed out that 'make' just calls 'dune' which is already
parallel, so make itself should not have more than one job.

opam@:2.1 need 'make lib-ext' for cmdliner, above it's obsolete.

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
2024-09-24 13:45:56 -06:00
Pierre Augier
63986d31ef py-pyfftw: add v0.14.0 (#46336) 2024-09-24 21:33:47 +02:00
Gregory Lee
f50f5859f3 dakota: add v6.20 and update boost version deps (#46551) 2024-09-24 20:41:47 +02:00
Derek Ryan Strong
99c4f2c3ff openmpi: Enable built-in atomics by default (#46186) 2024-09-24 20:37:01 +02:00
afzpatel
3b61a1f778 omniperf: New package (with deps) (#46239)
Co-authored-by: Bernhard Kaindl <bernhard.kaindl@cloud.com>
2024-09-24 12:21:15 -06:00
Rocco Meli
3771278d50 plumed: add v2.9.2 (#46544) 2024-09-24 19:35:28 +02:00
Adam J. Stewart
3649a195d3 ML CI: Ubuntu 22 -> 24 (#45644) 2024-09-24 19:13:28 +02:00
Wouter Deconinck
2b9a3b6057 httpd: add v2.4.62, deprecate versions due to CVE, rm deprecated versions (#46533) 2024-09-24 18:52:27 +02:00
teddy
a300359627 add package py-non-regression-test-tools (#46180)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2024-09-24 10:15:44 -06:00
teddy
ad75bc022f py-mgmetis: New package (#46178) 2024-09-24 18:01:02 +02:00
Robert Underwood
befbbec2b3 py-pybind11: set correct prefix in pc files (#46298)
The detection logic for the prefix used in py-bind11 if broken for spack
resulting in an empty prefix.  However, the package provides an escape
hatch in the form of `prefix_for_pc_file`. Use this escape hatch to
provide the correct path; spack will always know better than pybind11's
CMake.

Co-authored-by: Robert Underwood <runderwood@anl.gov>
2024-09-24 16:47:01 +02:00
Robert Underwood
f0e51a35c7 opencv+hdf: depend on mpi when ^hdf5+mpi (#46244)
When OpenCV depends on HDF5+mpi, it needs to the MPI compilers available.
2024-09-24 16:33:30 +02:00
Kelly (KT) Thompson
d5b8b0600a random123: Add support for HIP/rocm. (#46284) 2024-09-24 16:29:16 +02:00
Adam J. Stewart
0b575f60a5 libsodium: add v1.0.20 (#46455) 2024-09-24 09:07:02 -05:00
Darren Bolduc
2d16e15659 google-cloud-cpp: new package (#46285) 2024-09-24 16:05:58 +02:00
Thomas Madlener
5d9c534018 podio: add version 1.1, edm4hep: add version 0.99.1 (#46502)
* podio: Add tag for 1.1

* edm4hep: Add 0.99.1 tag and update c++ standards

* Avoid repetition of cxxstd values

* Remove stray assert from developing
2024-09-24 15:56:21 +02:00
Rocco Meli
8471b1b471 patch (#46545) 2024-09-24 15:52:44 +02:00
Thomas Madlener
1c6b6d0a08 lcio: Add version 2.22.2 (#46556)
Add the latest tag for LCIO
2024-09-24 15:44:49 +02:00
Adam J. Stewart
d7031dcd09 py-pybind11: add v2.13.5 (#46230)
* py-pybind11: add v2.13

* Remove build-tools tag
2024-09-24 08:21:17 -05:00
Adam J. Stewart
6692eb7b6f py-pillow-simd: add v9.5.0 (#46543) 2024-09-24 15:07:41 +02:00
Daniel Arndt
728da2ff87 trilinos: add cuda_constexpr variant (#45812) 2024-09-24 14:26:16 +02:00
135 changed files with 2316 additions and 614 deletions

View File

@@ -28,7 +28,7 @@ jobs:
run:
shell: ${{ matrix.system.shell }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
with:
python-version: ${{inputs.python_version}}

View File

@@ -37,7 +37,7 @@ jobs:
make patch unzip which xz python3 python3-devel tree \
cmake bison
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- name: Bootstrap clingo
@@ -60,7 +60,7 @@ jobs:
run: |
brew install cmake bison tree
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
@@ -96,7 +96,7 @@ jobs:
if: ${{ matrix.runner == 'ubuntu-latest' }}
run: sudo rm -rf $(command -v gpg gpg2 patchelf)
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- name: Bootstrap GnuPG
@@ -130,7 +130,7 @@ jobs:
Remove-Item -Path (Get-Command gpg).Path
Remove-Item -Path (Get-Command file).Path
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3

View File

@@ -55,7 +55,7 @@ jobs:
if: github.repository == 'spack/spack'
steps:
- name: Checkout
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- uses: docker/metadata-action@8e5442c4ef9f78752691e2d8f8d19755c6f78e81
id: docker_meta

View File

@@ -36,7 +36,7 @@ jobs:
core: ${{ steps.filter.outputs.core }}
packages: ${{ steps.filter.outputs.packages }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
if: ${{ github.event_name == 'push' }}
with:
fetch-depth: 0
@@ -88,7 +88,7 @@ jobs:
needs: [ unit-tests, prechecks ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- name: Download coverage files

View File

@@ -14,7 +14,7 @@ jobs:
build-paraview-deps:
runs-on: windows-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3

View File

@@ -40,7 +40,7 @@ jobs:
on_develop: false
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
@@ -89,7 +89,7 @@ jobs:
shell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
@@ -130,7 +130,7 @@ jobs:
dnf install -y \
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
make patch tcl unzip which xz
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- name: Setup repo and non-root user
run: |
git --version
@@ -149,7 +149,7 @@ jobs:
clingo-cffi:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
@@ -187,7 +187,7 @@ jobs:
os: [macos-13, macos-14]
python-version: ["3.11"]
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
@@ -225,7 +225,7 @@ jobs:
powershell Invoke-Expression -Command "./share/spack/qa/windows_test_setup.ps1"; {0}
runs-on: windows-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3

View File

@@ -18,7 +18,7 @@ jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
with:
python-version: '3.11'
@@ -35,7 +35,7 @@ jobs:
style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 0
- uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3
@@ -70,7 +70,7 @@ jobs:
dnf install -y \
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
make patch tcl unzip which xz
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
- name: Setup repo and non-root user
run: |
git --version
@@ -98,14 +98,14 @@ jobs:
# PR: use the base of the PR as the old commit
- name: Checkout PR base commit
if: github.event_name == 'pull_request'
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
ref: ${{ github.event.pull_request.base.sha }}
path: old
# not a PR: use the previous commit as the old commit
- name: Checkout previous commit
if: github.event_name != 'pull_request'
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
fetch-depth: 2
path: old
@@ -114,11 +114,11 @@ jobs:
run: git -C old reset --hard HEAD^
- name: Checkout new commit
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
path: new
- name: Install circular import checker
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332
uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938
with:
repository: haampie/circular-import-fighter
ref: 555519c6fd5564fd2eb844e7b87e84f4d12602e2

View File

@@ -46,13 +46,18 @@ See the
[Feature Overview](https://spack.readthedocs.io/en/latest/features.html)
for examples and highlights.
To install spack and your first package, make sure you have Python.
To install spack and your first package, make sure you have Python & Git.
Then:
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install zlib
> [!TIP]
> `-c feature.manyFiles=true` improves git's performance on repositories with 1,000+ files.
>
> `--depth=2` prunes the git history to reduce the size of the Spack installation.
Documentation
----------------

View File

@@ -414,7 +414,13 @@ default, it will also clone the package to a subdirectory in the
environment. This package will have a special variant ``dev_path``
set, and Spack will ensure the package and its dependents are rebuilt
any time the environment is installed if the package's local source
code has been modified. Spack ensures that all instances of a
code has been modified. Spack's native implementation to check for modifications
is to check if ``mtime`` is newer than the installation.
A custom check can be created by overriding the ``detect_dev_src_change`` method
in your package class. This is particularly useful for projects using custom spack repo's
to drive development and want to optimize performance.
Spack ensures that all instances of a
developed package in the environment are concretized to match the
version (and other constraints) passed as the spec argument to the
``spack develop`` command.

View File

@@ -61,10 +61,15 @@ Getting Spack is easy. You can clone it from the `github repository
.. code-block:: console
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
This will create a directory called ``spack``.
.. note::
``-c feature.manyFiles=true`` improves git's performance on repositories with 1,000+ files.
``--depth=2`` prunes the git history to reduce the size of the Spack installation.
.. _shell-support:
^^^^^^^^^^^^^
@@ -1576,4 +1581,3 @@ The intent is to provide a Windows installer that will automatically set up
Python, Git, and Spack, instead of requiring the user to do so manually.
Instructions for creating the installer are at
https://github.com/spack/spack/blob/develop/lib/spack/spack/cmd/installer/README.md

View File

@@ -39,10 +39,15 @@ package:
.. code-block:: console
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ git clone -c feature.manyFiles=true --depth=2 https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install libelf
.. note::
``-c feature.manyFiles=true`` improves git's performance on repositories with 1,000+ files.
``--depth=2`` prunes the git history to reduce the size of the Spack installation.
If you're new to spack and want to start using it, see :doc:`getting_started`,
or refer to the full manual below.

331
lib/spack/env/cc vendored
View File

@@ -101,10 +101,9 @@ setsep() {
esac
}
# prepend LISTNAME ELEMENT [SEP]
# prepend LISTNAME ELEMENT
#
# Prepend ELEMENT to the list stored in the variable LISTNAME,
# assuming the list is separated by SEP.
# Prepend ELEMENT to the list stored in the variable LISTNAME.
# Handles empty lists and single-element lists.
prepend() {
varname="$1"
@@ -119,18 +118,39 @@ prepend() {
fi
}
# append LISTNAME ELEMENT [SEP]
# contains LISTNAME ELEMENT
#
# Append ELEMENT to the list stored in the variable LISTNAME,
# assuming the list is separated by SEP.
# Test whether LISTNAME contains ELEMENT.
# Set $? to 1 if LISTNAME does not contain ELEMENT.
# Set $? to 0 if LISTNAME does not contain ELEMENT.
contains() {
varname="$1"
elt="$2"
setsep "$varname"
# the list may: 1) only contain the element, 2) start with the element,
# 3) contain the element in the middle, or 4) end wtih the element.
eval "[ \"\${$varname}\" = \"$elt\" ]" \
|| eval "[ \"\${$varname#${elt}${sep}}\" != \"\${$varname}\" ]" \
|| eval "[ \"\${$varname#*${sep}${elt}${sep}}\" != \"\${$varname}\" ]" \
|| eval "[ \"\${$varname%${sep}${elt}}\" != \"\${$varname}\" ]"
}
# append LISTNAME ELEMENT [unique]
#
# Append ELEMENT to the list stored in the variable LISTNAME.
# Handles empty lists and single-element lists.
#
# If the third argument is provided and if it is the string 'unique',
# this will not append if ELEMENT is already in the list LISTNAME.
append() {
varname="$1"
elt="$2"
if empty "$varname"; then
eval "$varname=\"\${elt}\""
else
elif [ "$3" != "unique" ] || ! contains "$varname" "$elt" ; then
# Get the appropriate separator for the list we're appending to.
setsep "$varname"
eval "$varname=\"\${$varname}${sep}\${elt}\""
@@ -148,10 +168,21 @@ extend() {
if [ "$sep" != " " ]; then
IFS="$sep"
fi
eval "for elt in \${$2}; do append $1 \"$3\${elt}\"; done"
eval "for elt in \${$2}; do append $1 \"$3\${elt}\" ${_append_args}; done"
unset IFS
}
# extend_unique LISTNAME1 LISTNAME2 [PREFIX]
#
# Append the elements stored in the variable LISTNAME2 to the list
# stored in LISTNAME1, if they are not already present.
# If PREFIX is provided, prepend it to each element.
extend_unique() {
_append_args="unique"
extend "$@"
unset _append_args
}
# preextend LISTNAME1 LISTNAME2 [PREFIX]
#
# Prepend the elements stored in the list at LISTNAME2
@@ -238,6 +269,36 @@ esac
}
"
# path_list functions. Path_lists have 3 parts: spack_store_<list>, <list> and system_<list>,
# which are used to prioritize paths when assembling the final command line.
# init_path_lists LISTNAME
# Set <LISTNAME>, spack_store_<LISTNAME>, and system_<LISTNAME> to "".
init_path_lists() {
eval "spack_store_$1=\"\""
eval "$1=\"\""
eval "system_$1=\"\""
}
# assign_path_lists LISTNAME1 LISTNAME2
# Copy contents of LISTNAME2 into LISTNAME1, for each path_list prefix.
assign_path_lists() {
eval "spack_store_$1=\"\${spack_store_$2}\""
eval "$1=\"\${$2}\""
eval "system_$1=\"\${system_$2}\""
}
# append_path_lists LISTNAME ELT
# Append the provided ELT to the appropriate list, based on the result of path_order().
append_path_lists() {
path_order "$2"
case $? in
0) eval "append spack_store_$1 \"\$2\"" ;;
1) eval "append $1 \"\$2\"" ;;
2) eval "append system_$1 \"\$2\"" ;;
esac
}
# Check if optional parameters are defined
# If we aren't asking for debug flags, don't add them
if [ -z "${SPACK_ADD_DEBUG_FLAGS:-}" ]; then
@@ -421,26 +482,6 @@ if [ "$mode" = vcheck ]; then
execute
fi
# Darwin's linker has a -r argument that merges object files together.
# It doesn't work with -rpath.
# This variable controls whether they are added.
add_rpaths=true
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
for arg in "$@"; do
if [ "$arg" = "-r" ]; then
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
add_rpaths=false
break
fi
elif [ "$arg" = "-Wl,-r" ] && [ "$mode" = ccld ]; then
add_rpaths=false
break
fi
done
fi
fi
# Save original command for debug logging
input_command="$*"
@@ -470,12 +511,7 @@ input_command="$*"
parse_Wl() {
while [ $# -ne 0 ]; do
if [ "$wl_expect_rpath" = yes ]; then
path_order "$1"
case $? in
0) append return_spack_store_rpath_dirs_list "$1" ;;
1) append return_rpath_dirs_list "$1" ;;
2) append return_system_rpath_dirs_list "$1" ;;
esac
append_path_lists return_rpath_dirs_list "$1"
wl_expect_rpath=no
else
case "$1" in
@@ -484,24 +520,14 @@ parse_Wl() {
if [ -z "$arg" ]; then
shift; continue
fi
path_order "$arg"
case $? in
0) append return_spack_store_rpath_dirs_list "$arg" ;;
1) append return_rpath_dirs_list "$arg" ;;
2) append return_system_rpath_dirs_list "$arg" ;;
esac
append_path_lists return_rpath_dirs_list "$arg"
;;
--rpath=*)
arg="${1#--rpath=}"
if [ -z "$arg" ]; then
shift; continue
fi
path_order "$arg"
case $? in
0) append return_spack_store_rpath_dirs_list "$arg" ;;
1) append return_rpath_dirs_list "$arg" ;;
2) append return_system_rpath_dirs_list "$arg" ;;
esac
append_path_lists return_rpath_dirs_list "$arg"
;;
-rpath|--rpath)
wl_expect_rpath=yes
@@ -509,8 +535,7 @@ parse_Wl() {
"$dtags_to_strip")
;;
-Wl)
# Nested -Wl,-Wl means we're in NAG compiler territory, we don't support
# it.
# Nested -Wl,-Wl means we're in NAG compiler territory. We don't support it.
return 1
;;
*)
@@ -529,21 +554,10 @@ categorize_arguments() {
return_other_args_list=""
return_isystem_was_used=""
return_isystem_spack_store_include_dirs_list=""
return_isystem_system_include_dirs_list=""
return_isystem_include_dirs_list=""
return_spack_store_include_dirs_list=""
return_system_include_dirs_list=""
return_include_dirs_list=""
return_spack_store_lib_dirs_list=""
return_system_lib_dirs_list=""
return_lib_dirs_list=""
return_spack_store_rpath_dirs_list=""
return_system_rpath_dirs_list=""
return_rpath_dirs_list=""
init_path_lists return_isystem_include_dirs_list
init_path_lists return_include_dirs_list
init_path_lists return_lib_dirs_list
init_path_lists return_rpath_dirs_list
# Global state for keeping track of -Wl,-rpath -Wl,/path
wl_expect_rpath=no
@@ -609,32 +623,17 @@ categorize_arguments() {
arg="${1#-isystem}"
return_isystem_was_used=true
if [ -z "$arg" ]; then shift; arg="$1"; fi
path_order "$arg"
case $? in
0) append return_isystem_spack_store_include_dirs_list "$arg" ;;
1) append return_isystem_include_dirs_list "$arg" ;;
2) append return_isystem_system_include_dirs_list "$arg" ;;
esac
append_path_lists return_isystem_include_dirs_list "$arg"
;;
-I*)
arg="${1#-I}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
path_order "$arg"
case $? in
0) append return_spack_store_include_dirs_list "$arg" ;;
1) append return_include_dirs_list "$arg" ;;
2) append return_system_include_dirs_list "$arg" ;;
esac
append_path_lists return_include_dirs_list "$arg"
;;
-L*)
arg="${1#-L}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
path_order "$arg"
case $? in
0) append return_spack_store_lib_dirs_list "$arg" ;;
1) append return_lib_dirs_list "$arg" ;;
2) append return_system_lib_dirs_list "$arg" ;;
esac
append_path_lists return_lib_dirs_list "$arg"
;;
-l*)
# -loopopt=0 is generated erroneously in autoconf <= 2.69,
@@ -667,32 +666,17 @@ categorize_arguments() {
break
elif [ "$xlinker_expect_rpath" = yes ]; then
# Register the path of -Xlinker -rpath <other args> -Xlinker <path>
path_order "$1"
case $? in
0) append return_spack_store_rpath_dirs_list "$1" ;;
1) append return_rpath_dirs_list "$1" ;;
2) append return_system_rpath_dirs_list "$1" ;;
esac
append_path_lists return_rpath_dirs_list "$1"
xlinker_expect_rpath=no
else
case "$1" in
-rpath=*)
arg="${1#-rpath=}"
path_order "$arg"
case $? in
0) append return_spack_store_rpath_dirs_list "$arg" ;;
1) append return_rpath_dirs_list "$arg" ;;
2) append return_system_rpath_dirs_list "$arg" ;;
esac
append_path_lists return_rpath_dirs_list "$arg"
;;
--rpath=*)
arg="${1#--rpath=}"
path_order "$arg"
case $? in
0) append return_spack_store_rpath_dirs_list "$arg" ;;
1) append return_rpath_dirs_list "$arg" ;;
2) append return_system_rpath_dirs_list "$arg" ;;
esac
append_path_lists return_rpath_dirs_list "$arg"
;;
-rpath|--rpath)
xlinker_expect_rpath=yes
@@ -709,7 +693,32 @@ categorize_arguments() {
"$dtags_to_strip")
;;
*)
append return_other_args_list "$1"
# if mode is not ld, we can just add to other args
if [ "$mode" != "ld" ]; then
append return_other_args_list "$1"
shift
continue
fi
# if we're in linker mode, we need to parse raw RPATH args
case "$1" in
-rpath=*)
arg="${1#-rpath=}"
append_path_lists return_rpath_dirs_list "$arg"
;;
--rpath=*)
arg="${1#--rpath=}"
append_path_lists return_rpath_dirs_list "$arg"
;;
-rpath|--rpath)
shift
[ $# -eq 0 ] && break # ignore -rpath without value
append_path_lists return_rpath_dirs_list "$1"
;;
*)
append return_other_args_list "$1"
;;
esac
;;
esac
shift
@@ -731,21 +740,10 @@ categorize_arguments() {
categorize_arguments "$@"
spack_store_include_dirs_list="$return_spack_store_include_dirs_list"
system_include_dirs_list="$return_system_include_dirs_list"
include_dirs_list="$return_include_dirs_list"
spack_store_lib_dirs_list="$return_spack_store_lib_dirs_list"
system_lib_dirs_list="$return_system_lib_dirs_list"
lib_dirs_list="$return_lib_dirs_list"
spack_store_rpath_dirs_list="$return_spack_store_rpath_dirs_list"
system_rpath_dirs_list="$return_system_rpath_dirs_list"
rpath_dirs_list="$return_rpath_dirs_list"
isystem_spack_store_include_dirs_list="$return_isystem_spack_store_include_dirs_list"
isystem_system_include_dirs_list="$return_isystem_system_include_dirs_list"
isystem_include_dirs_list="$return_isystem_include_dirs_list"
assign_path_lists isystem_include_dirs_list return_isystem_include_dirs_list
assign_path_lists include_dirs_list return_include_dirs_list
assign_path_lists lib_dirs_list return_lib_dirs_list
assign_path_lists rpath_dirs_list return_rpath_dirs_list
isystem_was_used="$return_isystem_was_used"
other_args_list="$return_other_args_list"
@@ -821,21 +819,10 @@ IFS="$lsep"
categorize_arguments $spack_flags_list
unset IFS
spack_flags_isystem_spack_store_include_dirs_list="$return_isystem_spack_store_include_dirs_list"
spack_flags_isystem_system_include_dirs_list="$return_isystem_system_include_dirs_list"
spack_flags_isystem_include_dirs_list="$return_isystem_include_dirs_list"
spack_flags_spack_store_include_dirs_list="$return_spack_store_include_dirs_list"
spack_flags_system_include_dirs_list="$return_system_include_dirs_list"
spack_flags_include_dirs_list="$return_include_dirs_list"
spack_flags_spack_store_lib_dirs_list="$return_spack_store_lib_dirs_list"
spack_flags_system_lib_dirs_list="$return_system_lib_dirs_list"
spack_flags_lib_dirs_list="$return_lib_dirs_list"
spack_flags_spack_store_rpath_dirs_list="$return_spack_store_rpath_dirs_list"
spack_flags_system_rpath_dirs_list="$return_system_rpath_dirs_list"
spack_flags_rpath_dirs_list="$return_rpath_dirs_list"
assign_path_lists spack_flags_isystem_include_dirs_list return_isystem_include_dirs_list
assign_path_lists spack_flags_include_dirs_list return_include_dirs_list
assign_path_lists spack_flags_lib_dirs_list return_lib_dirs_list
assign_path_lists spack_flags_rpath_dirs_list return_rpath_dirs_list
spack_flags_isystem_was_used="$return_isystem_was_used"
spack_flags_other_args_list="$return_other_args_list"
@@ -854,13 +841,11 @@ if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
fi
if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
if [ "$add_rpaths" != "false" ]; then
# Append RPATH directories. Note that in the case of the
# top-level package these directories may not exist yet. For dependencies
# it is assumed that paths have already been confirmed.
extend spack_store_rpath_dirs_list SPACK_STORE_RPATH_DIRS
extend rpath_dirs_list SPACK_RPATH_DIRS
fi
# Append RPATH directories. Note that in the case of the
# top-level package these directories may not exist yet. For dependencies
# it is assumed that paths have already been confirmed.
extend spack_store_rpath_dirs_list SPACK_STORE_RPATH_DIRS
extend rpath_dirs_list SPACK_RPATH_DIRS
fi
if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
@@ -875,14 +860,10 @@ case "$mode" in
ld|ccld)
# Set extra RPATHs
extend lib_dirs_list SPACK_COMPILER_EXTRA_RPATHS
if [ "$add_rpaths" != "false" ]; then
extend rpath_dirs_list SPACK_COMPILER_EXTRA_RPATHS
fi
extend rpath_dirs_list SPACK_COMPILER_EXTRA_RPATHS
# Set implicit RPATHs
if [ "$add_rpaths" != "false" ]; then
extend rpath_dirs_list SPACK_COMPILER_IMPLICIT_RPATHS
fi
extend rpath_dirs_list SPACK_COMPILER_IMPLICIT_RPATHS
# Add SPACK_LDLIBS to args
for lib in $SPACK_LDLIBS; do
@@ -894,7 +875,7 @@ esac
case "$mode" in
cpp|cc|as|ccld)
if [ "$spack_flags_isystem_was_used" = "true" ] || [ "$isystem_was_used" = "true" ]; then
extend isystem_spack_store_include_dirs_list SPACK_STORE_INCLUDE_DIRS
extend spack_store_isystem_include_dirs_list SPACK_STORE_INCLUDE_DIRS
extend isystem_include_dirs_list SPACK_INCLUDE_DIRS
else
extend spack_store_include_dirs_list SPACK_STORE_INCLUDE_DIRS
@@ -910,64 +891,76 @@ args_list="$flags_list"
# Include search paths partitioned by (in store, non-sytem, system)
# NOTE: adding ${lsep} to the prefix here turns every added element into two
extend args_list spack_flags_spack_store_include_dirs_list -I
extend args_list spack_store_spack_flags_include_dirs_list -I
extend args_list spack_store_include_dirs_list -I
extend args_list spack_flags_include_dirs_list -I
extend args_list include_dirs_list -I
extend args_list spack_flags_isystem_spack_store_include_dirs_list "-isystem${lsep}"
extend args_list isystem_spack_store_include_dirs_list "-isystem${lsep}"
extend args_list spack_store_spack_flags_isystem_include_dirs_list "-isystem${lsep}"
extend args_list spack_store_isystem_include_dirs_list "-isystem${lsep}"
extend args_list spack_flags_isystem_include_dirs_list "-isystem${lsep}"
extend args_list isystem_include_dirs_list "-isystem${lsep}"
extend args_list spack_flags_system_include_dirs_list -I
extend args_list system_spack_flags_include_dirs_list -I
extend args_list system_include_dirs_list -I
extend args_list spack_flags_isystem_system_include_dirs_list "-isystem${lsep}"
extend args_list isystem_system_include_dirs_list "-isystem${lsep}"
extend args_list system_spack_flags_isystem_include_dirs_list "-isystem${lsep}"
extend args_list system_isystem_include_dirs_list "-isystem${lsep}"
# Library search paths partitioned by (in store, non-sytem, system)
extend args_list spack_flags_spack_store_lib_dirs_list "-L"
extend args_list spack_store_spack_flags_lib_dirs_list "-L"
extend args_list spack_store_lib_dirs_list "-L"
extend args_list spack_flags_lib_dirs_list "-L"
extend args_list lib_dirs_list "-L"
extend args_list spack_flags_system_lib_dirs_list "-L"
extend args_list system_spack_flags_lib_dirs_list "-L"
extend args_list system_lib_dirs_list "-L"
# RPATHs arguments
# RPATH arguments
rpath_prefix=""
case "$mode" in
ccld)
if [ -n "$dtags_to_add" ] ; then
append args_list "$linker_arg$dtags_to_add"
fi
extend args_list spack_flags_spack_store_rpath_dirs_list "$rpath"
extend args_list spack_store_rpath_dirs_list "$rpath"
extend args_list spack_flags_rpath_dirs_list "$rpath"
extend args_list rpath_dirs_list "$rpath"
extend args_list spack_flags_system_rpath_dirs_list "$rpath"
extend args_list system_rpath_dirs_list "$rpath"
rpath_prefix="$rpath"
;;
ld)
if [ -n "$dtags_to_add" ] ; then
append args_list "$dtags_to_add"
fi
extend args_list spack_flags_spack_store_rpath_dirs_list "-rpath${lsep}"
extend args_list spack_store_rpath_dirs_list "-rpath${lsep}"
extend args_list spack_flags_rpath_dirs_list "-rpath${lsep}"
extend args_list rpath_dirs_list "-rpath${lsep}"
extend args_list spack_flags_system_rpath_dirs_list "-rpath${lsep}"
extend args_list system_rpath_dirs_list "-rpath${lsep}"
rpath_prefix="-rpath${lsep}"
;;
esac
# Darwin's linker has a -r argument that merges object files together.
# It doesn't work with -rpath. add_rpaths controls whether RPATHs are added.
add_rpaths=true
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
args="$@"
if contains args "-r" || contains args "-Wl,-r"; then
add_rpaths=false
fi
fi
fi
# if mode is ccld or ld, extend RPATH lists, adding the prefix determined above
if [ "$add_rpaths" == "true" ] && [ -n "$rpath_prefix" ]; then
extend_unique args_list spack_store_spack_flags_rpath_dirs_list "$rpath_prefix"
extend_unique args_list spack_store_rpath_dirs_list "$rpath_prefix"
extend_unique args_list spack_flags_rpath_dirs_list "$rpath_prefix"
extend_unique args_list rpath_dirs_list "$rpath_prefix"
extend_unique args_list system_spack_flags_rpath_dirs_list "$rpath_prefix"
extend_unique args_list system_rpath_dirs_list "$rpath_prefix"
fi
# Other arguments from the input command
extend args_list other_args_list
extend args_list spack_flags_other_args_list

View File

@@ -2,6 +2,8 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import llnl.util.filesystem as fs
import spack.directives
@@ -46,18 +48,12 @@ class AspellDictPackage(AutotoolsPackage):
#: Override the default autotools builder
AutotoolsBuilder = AspellBuilder
def view_destination(self, view):
aspell_spec = self.spec["aspell"]
if view.get_projection_for_spec(aspell_spec) != aspell_spec.prefix:
raise spack.package_base.ExtensionError(
"aspell does not support non-global extensions"
)
aspell = aspell_spec.command
return aspell("dump", "config", "dict-dir", output=str).strip()
def view_source(self):
return self.prefix.lib
def patch(self):
fs.filter_file(r"^dictdir=.*$", "dictdir=/lib", "configure")
fs.filter_file(r"^datadir=.*$", "datadir=/lib", "configure")
aspell_spec = self.spec["aspell"]
aspell = aspell_spec.command
dictdir = aspell("dump", "config", "dict-dir", output=str).strip()
datadir = aspell("dump", "config", "data-dir", output=str).strip()
dictdir = os.path.relpath(dictdir, aspell_spec.prefix)
datadir = os.path.relpath(datadir, aspell_spec.prefix)
fs.filter_file(r"^dictdir=.*$", f"dictdir=/{dictdir}", "configure")
fs.filter_file(r"^datadir=.*$", f"datadir=/{datadir}", "configure")

View File

@@ -17,7 +17,6 @@
import spack.repo
import spack.spec
import spack.variant
import spack.version
from spack.cmd.common import arguments
from spack.package_base import preferred_version

View File

@@ -42,7 +42,6 @@
import spack.spec_list
import spack.store
import spack.user_environment as uenv
import spack.util.cpus
import spack.util.environment
import spack.util.hash
import spack.util.lock as lk
@@ -547,8 +546,7 @@ def _is_dev_spec_and_has_changed(spec):
last installation"""
# First check if this is a dev build and in the process already try to get
# the dev_path
dev_path_var = spec.variants.get("dev_path", None)
if not dev_path_var:
if not spec.variants.get("dev_path", None):
return False
# Now we can check whether the code changed since the last installation
@@ -556,9 +554,10 @@ def _is_dev_spec_and_has_changed(spec):
# Not installed -> nothing to compare against
return False
_, record = spack.store.STORE.db.query_by_spec_hash(spec.dag_hash())
mtime = fs.last_modification_time_recursive(dev_path_var.value)
return mtime > record.installation_time
# hook so packages can use to write their own method for checking the dev_path
# use package so attributes about concretization such as variant state can be
# utilized
return spec.package.detect_dev_src_change()
def _error_on_nonempty_view_dir(new_root):

View File

@@ -48,7 +48,6 @@
import spack.error
import spack.paths
import spack.projections as proj
import spack.repo
import spack.schema.environment
import spack.spec
import spack.store

View File

@@ -1101,6 +1101,15 @@ def update_external_dependencies(self, extendee_spec=None):
"""
pass
def detect_dev_src_change(self):
"""
Method for checking for source code changes to trigger rebuild/reinstall
"""
dev_path_var = self.spec.variants.get("dev_path", None)
_, record = spack.store.STORE.db.query_by_spec_hash(self.spec.dag_hash())
mtime = fsys.last_modification_time_recursive(dev_path_var.value)
return mtime > record.installation_time
def all_urls_for_version(self, version: StandardVersion) -> List[str]:
"""Return all URLs derived from version_urls(), url, urls, and
list_url (if it contains a version) in a package in that order.

View File

@@ -8,7 +8,6 @@
import archspec.cpu
import spack.compilers
import spack.concretize
import spack.operating_systems
import spack.platforms

View File

@@ -199,7 +199,7 @@ def check_args(cc, args, expected):
"""
with set_env(SPACK_TEST_COMMAND="dump-args"):
cc_modified_args = cc(*args, output=str).strip().split("\n")
assert expected == cc_modified_args
assert cc_modified_args == expected
def check_args_contents(cc, args, must_contain, must_not_contain):
@@ -354,6 +354,39 @@ def test_fc_flags(wrapper_environment, wrapper_flags):
)
def test_ld_flags_with_redundant_rpaths(wrapper_environment, wrapper_flags):
check_args(
ld,
test_args + test_rpaths, # ensure thesee are made unique
["ld"]
+ test_include_paths
+ test_library_paths
+ ["--disable-new-dtags"]
+ test_rpaths
+ test_args_without_paths
+ spack_ldlibs,
)
def test_cc_flags_with_redundant_rpaths(wrapper_environment, wrapper_flags):
check_args(
cc,
test_args + test_wl_rpaths + test_wl_rpaths, # ensure thesee are made unique
[real_cc]
+ target_args
+ test_include_paths
+ ["-Lfoo"]
+ test_library_paths
+ ["-Wl,--disable-new-dtags"]
+ test_wl_rpaths
+ test_args_without_paths
+ spack_cppflags
+ spack_cflags
+ ["-Wl,--gc-sections"]
+ spack_ldlibs,
)
def test_always_cflags(wrapper_environment, wrapper_flags):
with set_env(SPACK_ALWAYS_CFLAGS="-always1 -always2"):
check_args(
@@ -761,7 +794,6 @@ def test_ld_deps_partial(wrapper_environment):
+ test_library_paths
+ ["-Lxlib"]
+ ["--disable-new-dtags"]
+ test_rpaths
+ ["-r"]
+ test_args_without_paths,
)

View File

@@ -18,6 +18,7 @@
"==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga", # noqa: E501
"/Users/gamblin2/Workspace/spack/lib/spack/env/clang/clang -dynamiclib -install_name /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.1.dylib -compatibility_version 1 -current_version 1.2.11 -fPIC -O2 -fPIC -DHAVE_HIDDEN -o libz.1.2.11.dylib adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc", # noqa: E501
"rm -f /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
"rm -f /Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder___/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
]
@@ -26,6 +27,7 @@
"==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga", # noqa: E501
"/Users/gamblin2/Workspace/spack/lib/spack/env/clang/clang -dynamiclib -install_name /Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.1.dylib -compatibility_version 1 -current_version 1.2.11 -fPIC -O2 -fPIC -DHAVE_HIDDEN -o libz.1.2.11.dylib adler32.lo crc32.lo deflate.lo infback.lo inffast.lo inflate.lo inftrees.lo trees.lo zutil.lo compress.lo uncompr.lo gzclose.lo gzlib.lo gzread.lo gzwrite.lo -lc", # noqa: E501
"rm -f /Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
"rm -f /Users/gamblin2/padding-log-test/opt/[padded-to-91-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga/lib/libz.a", # noqa: E501
]
@@ -107,6 +109,15 @@ def test_output_filtering(self, capfd, install_mockery, mutable_config):
out, err = capfd.readouterr()
assert padding_string not in out
def test_pad_on_path_sep_boundary(self):
"""Ensure that padded paths do not end with path separator."""
pad_length = len(sup.SPACK_PATH_PADDING_CHARS)
padded_length = 128
remainder = padded_length % (pad_length + 1)
path = "a" * (remainder - 1)
result = sup.add_padding(path, padded_length)
assert 128 == len(result) and not result.endswith(os.path.sep)
@pytest.mark.parametrize("debug", [1, 2])
def test_path_debug_padded_filter(debug, monkeypatch):

View File

@@ -96,6 +96,11 @@ def replacements():
#: include some other component of the intallation path.
SPACK_PATH_PADDING_CHARS = "__spack_path_placeholder__"
#: Special padding char if the padded string would otherwise end with a path
#: separator (since the path separator would otherwise get collapsed out,
#: causing inconsistent padding).
SPACK_PATH_PADDING_EXTRA_CHAR = "_"
def win_exe_ext():
return r"(?:\.bat|\.exe)"
@@ -195,7 +200,10 @@ def _get_padding_string(length):
extra_chars = length % (spack_path_padding_size + 1)
reps_list = [SPACK_PATH_PADDING_CHARS for i in range(num_reps)]
reps_list.append(SPACK_PATH_PADDING_CHARS[:extra_chars])
return os.path.sep.join(reps_list)
padding = os.path.sep.join(reps_list)
if padding.endswith(os.path.sep):
padding = padding[: len(padding) - 1] + SPACK_PATH_PADDING_EXTRA_CHAR
return padding
def add_padding(path, length):
@@ -313,10 +321,15 @@ def padding_filter(string):
regex = (
r"((?:/[^/\s]*)*?)" # zero or more leading non-whitespace path components
r"(/{pad})+" # the padding string repeated one or more times
r"(/{longest_prefix})?(?=/)" # trailing prefix of padding as path component
# trailing prefix of padding as path component
r"(/{longest_prefix}|/{longest_prefix}{extra_pad_character})?(?=/)"
)
regex = regex.replace("/", re.escape(os.sep))
regex = regex.format(pad=pad, longest_prefix=longest_prefix)
regex = regex.format(
pad=pad,
extra_pad_character=SPACK_PATH_PADDING_EXTRA_CHAR,
longest_prefix=longest_prefix,
)
_filter_re = re.compile(regex)
def replacer(match):

View File

@@ -19,7 +19,6 @@
import spack.error as error
import spack.parser
import spack.repo
import spack.spec
#: These are variant names used by Spack internally; packages can't use them

View File

@@ -691,7 +691,7 @@ tutorial-build:
ml-linux-x86_64-cpu-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-cpu, ".tags-x86_64_v4" ]
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
ml-linux-x86_64-cpu-build:
extends: [ ".build", ".ml-linux-x86_64-cpu" ]
@@ -714,7 +714,7 @@ ml-linux-x86_64-cpu-build:
ml-linux-x86_64-cuda-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-cuda, ".tags-x86_64_v4" ]
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
ml-linux-x86_64-cuda-build:
extends: [ ".build", ".ml-linux-x86_64-cuda" ]
@@ -737,7 +737,7 @@ ml-linux-x86_64-cuda-build:
ml-linux-x86_64-rocm-generate:
extends: [ ".generate-x86_64", .ml-linux-x86_64-rocm, ".tags-x86_64_v4" ]
image: ghcr.io/spack/ubuntu-22.04:v2024-05-07
image: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
ml-linux-x86_64-rocm-build:
extends: [ ".build", ".ml-linux-x86_64-rocm" ]

View File

@@ -10,7 +10,7 @@ spack:
# editors
- neovim~no_luajit
- py-pynvim
- emacs@29.1+json+native+treesitter # note, pulls in gcc
- emacs+json+native+treesitter # note, pulls in gcc
# - tree-sitter is a dep, should also have cli but no package
- nano # just in case
# tags and scope search helpers

View File

@@ -67,7 +67,6 @@ spack:
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
- py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
@@ -79,7 +78,7 @@ spack:
pipeline-gen:
- build-job:
image:
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
entrypoint: ['']
cdash:

View File

@@ -54,7 +54,8 @@ spack:
- py-torchfile
- py-torchgeo
- py-torchmetrics
- py-torchtext
# torchtext requires older pytorch, which requires older cuda, which doesn't support newer GCC
# - py-torchtext
- py-torchvision
- py-vector-quantize-pytorch
@@ -71,19 +72,19 @@ spack:
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
- py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
# XGBoost
- py-xgboost
# xgboost requires older cuda, which doesn't support newer GCC
# - py-xgboost
ci:
pipeline-gen:
- build-job:
image:
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
entrypoint: ['']
cdash:

View File

@@ -72,8 +72,6 @@ spack:
# TensorFlow
- py-tensorflow
- py-tensorflow-datasets
# version 2.16 is not available
# - py-tensorflow-estimator
- py-tensorflow-hub
- py-tensorflow-metadata
- py-tensorflow-probability
@@ -86,7 +84,7 @@ spack:
pipeline-gen:
- build-job:
image:
name: ghcr.io/spack/ubuntu-22.04:v2024-05-07
name: ghcr.io/spack/ubuntu-24.04:v2024-09-05-v2
entrypoint: ['']
cdash:

View File

@@ -2,7 +2,6 @@
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
from spack.package import *
@@ -245,11 +244,6 @@ def get_acfl_prefix(spec):
return join_path(spec.prefix, f"arm-linux-compiler-{spec.version}_{os}")
def get_gcc_prefix(spec):
dirlist = next(os.walk(spec.prefix))[1]
return join_path(spec.prefix, next(dir for dir in dirlist if dir.startswith("gcc")))
def get_armpl_suffix(spec):
suffix = ""
if spec.satisfies("@24:"):
@@ -393,7 +387,6 @@ def headers(self):
def setup_run_environment(self, env):
arm_dir = get_acfl_prefix(self.spec)
armpl_dir = get_armpl_prefix(self.spec)
gcc_dir = get_gcc_prefix(self.spec)
env.set("ARM_LINUX_COMPILER_DIR", arm_dir)
env.set("ARM_LINUX_COMPILER_INCLUDES", join_path(arm_dir, "includes"))
@@ -405,25 +398,11 @@ def setup_run_environment(self, env):
env.prepend_path("LIBRARY_PATH", join_path(arm_dir, "lib"))
env.prepend_path("MANPATH", join_path(arm_dir, "share", "man"))
env.set("GCC_DIR", gcc_dir)
env.set("GCC_INCLUDES", join_path(gcc_dir, "include"))
env.append_path("GCC_LIBRARIES", join_path(gcc_dir, "lib"))
env.append_path("GCC_LIBRARIES", join_path(gcc_dir, "lib64"))
env.set("COMPILER_PATH", gcc_dir)
env.prepend_path("PATH", join_path(gcc_dir, "binutils_bin"))
env.prepend_path("CPATH", join_path(gcc_dir, "include"))
env.prepend_path("LD_LIBRARY_PATH", join_path(gcc_dir, "lib"))
env.prepend_path("LD_LIBRARY_PATH", join_path(gcc_dir, "lib64"))
env.prepend_path("LIBRARY_PATH", join_path(gcc_dir, "lib"))
env.prepend_path("LIBRARY_PATH", join_path(gcc_dir, "lib64"))
env.prepend_path("MANPATH", join_path(gcc_dir, "share", "man"))
@run_after("install")
def check_install(self):
arm_dir = get_acfl_prefix(self.spec)
armpl_dir = get_armpl_prefix(self.spec)
suffix = get_armpl_suffix(self.spec)
gcc_dir = get_gcc_prefix(self.spec)
armpl_example_dir = join_path(armpl_dir, f"examples{suffix}")
# run example makefile
make(
@@ -432,7 +411,6 @@ def check_install(self):
"CC=" + self.cc,
"F90=" + self.fortran,
"CPATH=" + join_path(arm_dir, "include"),
"COMPILER_PATH=" + gcc_dir,
"ARMPL_DIR=" + armpl_dir,
)
# clean up

View File

@@ -12,16 +12,20 @@ class Apr(AutotoolsPackage):
homepage = "https://apr.apache.org/"
url = "https://archive.apache.org/dist/apr/apr-1.7.0.tar.gz"
license("Apache-2.0")
license("Apache-2.0", checked_by="wdconinc")
version("1.7.4", sha256="a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9")
version("1.7.3", sha256="af9bfd5b8a04425d6b419673f3e0a7656fade226aae78180d93f8a6f2d3d1c09")
version("1.7.2", sha256="3d8999b216f7b6235343a4e3d456ce9379aa9a380ffb308512f133f0c5eb2db9")
version("1.7.0", sha256="48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2")
version("1.6.2", sha256="4fc24506c968c5faf57614f5d0aebe0e9d0b90afa47a883e1a1ca94f15f4a42e")
version("1.5.2", sha256="1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb")
version("1.7.5", sha256="3375fa365d67bcf945e52b52cba07abea57ef530f40b281ffbe977a9251361db")
depends_on("c", type="build") # generated
# https://nvd.nist.gov/vuln/detail/CVE-2023-49582
with default_args(deprecated=True):
version("1.7.4", sha256="a4137dd82a185076fa50ba54232d920a17c6469c30b0876569e1c2a05ff311d9")
version("1.7.3", sha256="af9bfd5b8a04425d6b419673f3e0a7656fade226aae78180d93f8a6f2d3d1c09")
version("1.7.2", sha256="3d8999b216f7b6235343a4e3d456ce9379aa9a380ffb308512f133f0c5eb2db9")
version("1.7.0", sha256="48e9dbf45ae3fdc7b491259ffb6ccf7d63049ffacbc1c0977cced095e4c2d5a2")
version("1.6.2", sha256="4fc24506c968c5faf57614f5d0aebe0e9d0b90afa47a883e1a1ca94f15f4a42e")
version("1.5.2", sha256="1af06e1720a58851d90694a984af18355b65bb0d047be03ec7d659c746d6dbdb")
depends_on("c", type="build")
patch("missing_includes.patch", when="@1.7.0")

View File

@@ -27,3 +27,12 @@ class Aspell(AutotoolsPackage, GNUMirrorPackage):
patch("fix_cpp.patch")
patch("issue-519.patch", when="@:0.60.6.1")
# workaround due to https://github.com/GNUAspell/aspell/issues/591
@run_after("configure", when="@0.60.8:")
def make_missing_files(self):
make("gen/dirs.h")
make("gen/static_filters.src.cpp")
def setup_run_environment(self, env):
env.set("ASPELL_CONF", f"prefix {self.prefix}")

View File

@@ -14,6 +14,10 @@ class Aspell6De(AspellDictPackage, GNUMirrorPackage):
license("GPL-2.0-or-later")
version(
"6-de-20161207-7-0",
sha256="c2125d1fafb1d4effbe6c88d4e9127db59da9ed92639c7cbaeae1b7337655571",
)
version(
"6-de-20030222-1",
sha256="ba6c94e11bc2e0e6e43ce0f7822c5bba5ca5ac77129ef90c190b33632416e906",

View File

@@ -12,6 +12,9 @@ class Aspell6En(AspellDictPackage, GNUMirrorPackage):
homepage = "http://aspell.net/"
gnu_mirror_path = "aspell/dict/en/aspell6-en-2017.01.22-0.tar.bz2"
version(
"2020.12.07-0", sha256="4c8f734a28a088b88bb6481fcf972d0b2c3dc8da944f7673283ce487eac49fb3"
)
version(
"2017.01.22-0", sha256="93c73fae3eab5ea3ca6db3cea8770715a820f1b7d6ea2b932dd66a17f8fd55e1"
)

View File

@@ -3,7 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import glob
import os
import shutil
import socket
@@ -41,6 +40,8 @@ class Axom(CachedCMakePackage, CudaPackage, ROCmPackage):
git = "https://github.com/LLNL/axom.git"
tags = ["radiuss"]
test_requires_compiler = True
license("BSD-3-Clause")
version("main", branch="main")
@@ -620,34 +621,29 @@ def build_test(self):
@run_after("install")
@on_package_attributes(run_tests=True)
def check_install(self):
"""
Checks the spack install of axom using axom's
using-with-cmake example
"""
print("Checking Axom installation...")
spec = self.spec
install_prefix = spec.prefix
example_src_dir = join_path(install_prefix, "examples", "axom", "using-with-cmake")
example_build_dir = join_path(example_src_dir, "build")
print("Checking using-with-cmake example...")
with working_dir(example_build_dir, create=True):
def test_install_using_cmake(self):
"""build example with cmake and run"""
example_src_dir = join_path(self.prefix.examples.axom, "using-with-cmake")
example_stage_dir = "./cmake"
shutil.copytree(example_src_dir, example_stage_dir)
with working_dir(join_path(example_stage_dir, "build"), create=True):
cmake_args = ["-C ../host-config.cmake", example_src_dir]
cmake = self.spec["cmake"].command
cmake(*cmake_args)
make()
example = Executable("./example")
example()
print("Checking using-with-make example...")
example_src_dir = join_path(install_prefix, "examples", "axom", "using-with-make")
example_build_dir = join_path(example_src_dir, "build")
example_files = glob.glob(join_path(example_src_dir, "*"))
with working_dir(example_build_dir, create=True):
for example_file in example_files:
shutil.copy(example_file, ".")
make("AXOM_DIR={0}".format(install_prefix))
make("clean")
@run_after("install")
@on_package_attributes(run_tests=True)
def test_install_using_make(self):
"""build example with make and run"""
example_src_dir = join_path(self.prefix.examples.axom, "using-with-make")
example_stage_dir = "./make"
shutil.copytree(example_src_dir, example_stage_dir)
with working_dir(example_stage_dir, create=True):
make(f"AXOM_DIR={self.prefix}")
example = Executable("./example")
example()
def test_install(self):
self.check_install()
make("clean")

View File

@@ -12,7 +12,7 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
of BigDFT code, and it can also be used separately and linked to other codes."""
homepage = "https://bigdft.org/"
url = "https://gitlab.com/l_sim/bigdft-suite/-/archive/1.9.2/bigdft-suite-1.9.2.tar.gz"
url = "https://gitlab.com/l_sim/bigdft-suite/-/archive/1.9.5/bigdft-suite-1.9.5.tar.gz"
git = "https://gitlab.com/l_sim/bigdft-suite.git"
version("develop", branch="devel")
@@ -23,16 +23,15 @@ class BigdftPsolver(AutotoolsPackage, CudaPackage):
version("1.9.1", sha256="3c334da26d2a201b572579fc1a7f8caad1cbf971e848a3e10d83bc4dc8c82e41")
version("1.9.0", sha256="4500e505f5a29d213f678a91d00a10fef9dc00860ea4b3edf9280f33ed0d1ac8")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
depends_on("fortran", type="build") # generated
depends_on("c", type="build")
depends_on("cxx", type="build")
depends_on("fortran", type="build")
variant("mpi", default=True, description="Enable MPI support")
variant("openmp", default=True, description="Enable OpenMP support")
variant("scalapack", default=True, description="Enable SCALAPACK support")
variant(
"shared", default=True, description="Build shared libraries"
) # Not default in bigdft, but is typically the default expectation
# Not default in bigdft, but is typically the default expectation:
variant("shared", default=True, description="Build shared libraries")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
@@ -97,7 +96,7 @@ def configure_args(self):
else:
args.append("--without-openmp")
args.append(f"--with-atlab-libs={spec['bigdft-atlab'].prefix.lib}")
args.append(f"--with-atlab-libs={spec['bigdft-atlab'].libs.ld_flags}")
if spec.satisfies("+cuda"):
args.append("--enable-cuda-gpu")

View File

@@ -0,0 +1,29 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class CasacoreMeasures(Package):
"""Install casacore measures tables, and a tool to maintain them."""
homepage = "https://gitlab.com/dsa-2000/rcp/casacore-measures"
url = "https://gitlab.com/dsa-2000/rcp/casacore-measures/-/archive/v1.0.0/casacore-measures-v1.0.0.tar.gz"
git = "https://gitlab.com/dsa-2000/rcp/casacore-measures.git"
maintainers("mpokorny")
license("AGPL-3.0-or-later", checked_by="mpokorny")
version("main", branch="main")
version("1.0.0", sha256="2bcd891bc0bd67749d93ec5b0fe92d8c1cbb73253465dd0410a3ab5493b3cee5")
depends_on("wget", type=("build", "run"))
def install(self, spec, prefix):
mkdirp(self.prefix.bin)
install("bin/update_measures", self.prefix.bin)
mkdirp(self.prefix.share.data)
update = Executable(self.prefix.bin.update_measures)
update()

View File

@@ -20,6 +20,11 @@ class Cdo(AutotoolsPackage):
maintainers("skosukhin", "Try2Code")
version(
"2.4.4",
sha256="49f50bd18dacd585e9518cfd4f55548f692426edfb3b27ddcd1c653eab53d063",
url="https://code.mpimet.mpg.de/attachments/download/29649/cdo-2.4.4.tar.gz",
)
version(
"2.4.3",
sha256="4a608b70ee1907b45e149ad44033bb47d35b7da96096553193bd362ca9d445eb",

View File

@@ -36,7 +36,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
homepage = "https://chapel-lang.org/"
url = "https://github.com/chapel-lang/chapel/archive/refs/tags/2.1.0.tar.gz"
url = "https://github.com/chapel-lang/chapel/archive/refs/tags/2.2.0.tar.gz"
git = "https://github.com/chapel-lang/chapel.git"
test_requires_compiler = True
@@ -48,11 +48,14 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
# TODO: add chapel-project github account
maintainers("arezaii", "bonachea")
tags = ["e4s"]
# See https://spdx.org/licenses/ for a list.
license("Apache-2.0")
version("main", branch="main")
version("2.2.0", sha256="9b0ce16ed0b1c777647c3aa852d8d8cacea2c3d8a952548a238f07c0f357a0f9")
version("2.1.0", sha256="8e164d9a9e705e6b816857e84833b0922ce0bde6a36a9f3a29734830aac168ef")
version("2.0.1", sha256="47e1f3789478ea870bd4ecdf52acbe469d171b89b663309325431f3da7c75008")
version("2.0.0", sha256="a8cab99fd034c7b7229be8d4626ec95cf02072646fb148c74b4f48c460c6059c")
@@ -435,15 +438,21 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
conflicts("platform=windows") # Support for windows is through WSL only
# Ensure GPU support is Sticky: never allow the concretizer to choose this
variant("rocm", default=False, sticky=True, description="Enable AMD ROCm GPU support")
variant("cuda", default=False, sticky=True, description="Enable Nvidia CUDA GPU support")
conflicts("+rocm", when="+cuda", msg="Chapel must be built with either CUDA or ROCm, not both")
conflicts(
"+rocm", when="@:1.99.99", msg="ROCm support in spack requires Chapel 2.0.0 or later"
)
conflicts("+rocm", when="@:1", msg="ROCm support in spack requires Chapel 2.0.0 or later")
# Chapel restricts the allowable ROCm versions
with when("+rocm"):
with when("@2:2.1 +rocm"):
depends_on("hsa-rocr-dev@4:5.4")
depends_on("hip@4:5.4")
depends_on("llvm-amdgpu@4:5.4")
with when("@2.2: +rocm"):
depends_on("hsa-rocr-dev@4:5.4,6.0:6.2")
depends_on("hip@4:5.4,6.0:6.2")
depends_on("llvm-amdgpu@4:5.4", when="+rocm llvm=spack")
requires("llvm=bundled", when="+rocm ^hip@6.0:6.2", msg="ROCm 6 support requires llvm=bundled")
conflicts(
"comm_substrate=unset",
@@ -463,7 +472,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
conflicts(
"^python@3.12:",
when="@:2.0.99",
when="@:2.0",
msg="Chapel versions prior to 2.1.0 may produce SyntaxWarnings with Python >= 3.12",
)
@@ -508,7 +517,7 @@ class Chapel(AutotoolsPackage, CudaPackage, ROCmPackage):
# with an error about missing plugin-api.h
depends_on("binutils+gold+ld+plugins+headers", when="llvm=bundled")
depends_on("m4")
depends_on("m4", when="gmp=bundled")
# Runtime dependencies:
# Note here "run" is run of the Chapel compiler built by this package,
@@ -566,12 +575,18 @@ def setup_chpl_platform(self, env):
def setup_chpl_compilers(self, env):
env.set("CHPL_HOST_COMPILER", self.compiler_map[self.spec.compiler.name])
env.set("CHPL_TARGET_COMPILER", self.compiler_map[self.spec.compiler.name])
if (
self.spec.satisfies("+rocm")
or self.spec.satisfies("+cuda")
or self.spec.satisfies("llvm=spack")
):
env.set("CHPL_TARGET_COMPILER", "llvm")
else:
env.set("CHPL_TARGET_COMPILER", self.compiler_map[self.spec.compiler.name])
# Undo spack compiler wrappers:
# the C/C++ compilers must work post-install
if self.spec.satisfies("+rocm"):
env.set("CHPL_TARGET_COMPILER", "llvm")
if self.spec.satisfies("+rocm llvm=spack"):
env.set(
"CHPL_LLVM_CONFIG",
join_path(self.spec["llvm-amdgpu"].prefix, "bin", "llvm-config"),
@@ -585,15 +600,16 @@ def setup_chpl_compilers(self, env):
env.set("CHPL_HOST_CXX", real_cxx)
elif self.spec.satisfies("llvm=spack"):
env.set("CHPL_TARGET_COMPILER", "llvm")
env.set("CHPL_LLVM_CONFIG", join_path(self.spec["llvm"].prefix, "bin", "llvm-config"))
real_cc = join_path(self.spec["llvm"].prefix, "bin", "clang")
real_cxx = join_path(self.spec["llvm"].prefix, "bin", "clang++")
else:
real_cc = self.compiler.cc
real_cxx = self.compiler.cxx
env.set("CHPL_TARGET_CC", real_cc)
env.set("CHPL_TARGET_CXX", real_cxx)
if self.spec.satisfies("llvm=spack") or self.spec.satisfies("llvm=none"):
env.set("CHPL_TARGET_CC", real_cc)
env.set("CHPL_TARGET_CXX", real_cxx)
def setup_chpl_comm(self, env, spec):
env.set("CHPL_COMM", spec.variants["comm"].value)
@@ -609,7 +625,7 @@ def setup_gasnet(self):
symlink(self.spec["gasnet"].prefix.src, dst)
def setup_if_not_unset(self, env, var, value):
if value != "unset":
if value != "unset" and var in self.chpl_env_vars:
if value == "spack":
value = "system"
env.set(var, value)
@@ -618,7 +634,7 @@ def prepend_cpath_include(self, env, prefix):
if not is_system_path(prefix):
env.prepend_path("CPATH", prefix.include)
def set_lib_path(self, env, prefix):
def update_lib_path(self, env, prefix):
if not is_system_path(prefix):
env.prepend_path("LD_LIBRARY_PATH", prefix.lib)
env.prepend_path("LIBRARY_PATH", prefix.lib)
@@ -629,7 +645,7 @@ def setup_env_vars(self, env):
# variants that appear unused by Spack typically correspond directly to
# a CHPL_<variant> variable which will be used by the Chapel build system
for v in self.spec.variants.keys():
self.setup_if_not_unset(env, "CHPL_" + v.upper(), self.spec.variants[v].value)
self.setup_if_not_unset(env, "CHPL_" + v.upper(), str(self.spec.variants[v].value))
self.setup_chpl_compilers(env)
self.setup_chpl_platform(env)
@@ -657,10 +673,10 @@ def setup_env_vars(self, env):
# TODO: why must we add to CPATH to find gmp.h
# TODO: why must we add to LIBRARY_PATH to find lgmp
self.prepend_cpath_include(env, self.spec["gmp"].prefix)
self.set_lib_path(env, self.spec["gmp"].prefix)
self.update_lib_path(env, self.spec["gmp"].prefix)
if self.spec.variants["hwloc"].value == "spack":
self.set_lib_path(env, self.spec["hwloc"].prefix)
self.update_lib_path(env, self.spec["hwloc"].prefix)
# Need this for the test env, where it does not appear automatic:
env.prepend_path("PKG_CONFIG_PATH", self.spec["libpciaccess"].prefix.lib.pkgconfig)
@@ -673,22 +689,23 @@ def setup_env_vars(self, env):
if self.spec.satisfies("+yaml"):
self.prepend_cpath_include(env, self.spec["libyaml"].prefix)
# could not compile test/library/packages/Yaml/writeAndParse.chpl without this
self.set_lib_path(env, self.spec["libyaml"].prefix)
self.update_lib_path(env, self.spec["libyaml"].prefix)
if self.spec.satisfies("+zmq"):
self.prepend_cpath_include(env, self.spec["libzmq"].prefix)
# could not compile test/library/packages/ZMQ/hello.chpl without this
self.set_lib_path(env, self.spec["libzmq"].prefix)
self.update_lib_path(env, self.spec["libzmq"].prefix)
env.prepend_path("PKG_CONFIG_PATH", self.spec["libsodium"].prefix.lib.pkgconfig)
if self.spec.satisfies("+curl"):
self.prepend_cpath_include(env, self.spec["curl"].prefix)
# could not compile test/library/packages/Curl/check-http.chpl without this
self.set_lib_path(env, self.spec["curl"].prefix)
self.update_lib_path(env, self.spec["curl"].prefix)
if self.spec.satisfies("+cuda"):
# TODO: why must we add to LD_LIBRARY_PATH to find libcudart?
env.prepend_path("LD_LIBRARY_PATH", self.spec["cuda"].prefix.lib64)
env.set("CHPL_CUDA_PATH", self.spec["cuda"].prefix)
env.set("CHPL_LOCALE_MODEL", "gpu")
env.set("CHPL_GPU", "nvidia")
@@ -697,9 +714,9 @@ def setup_env_vars(self, env):
env.set("CHPL_GPU", "amd")
env.set("CHPL_GPU_ARCH", self.spec.variants["amdgpu_target"].value[0])
self.prepend_cpath_include(env, self.spec["hip"].prefix)
env.set("CHPL_ROCM_PATH", self.spec["llvm-amdgpu"].prefix)
self.set_lib_path(env, self.spec["hip"].prefix)
self.set_lib_path(env, self.spec["hsa-rocr-dev"].prefix)
env.set("CHPL_ROCM_PATH", self.spec["hip"].prefix)
self.update_lib_path(env, self.spec["hip"].prefix)
self.update_lib_path(env, self.spec["hsa-rocr-dev"].prefix)
self.setup_chpl_comm(env, self.spec)
def setup_build_environment(self, env):
@@ -716,7 +733,7 @@ def setup_run_environment(self, env):
@llnl.util.lang.memoized
def _output_version_long(self):
if str(self.spec.version).lower() == "main":
return "2.2.0"
return "2.3.0"
spec_vers_str = str(self.spec.version.up_to(3))
return spec_vers_str
@@ -724,7 +741,7 @@ def _output_version_long(self):
@llnl.util.lang.memoized
def _output_version_short(self):
if str(self.spec.version).lower() == "main":
return "2.2"
return "2.3"
spec_vers_str = str(self.spec.version.up_to(2))
return spec_vers_str

View File

@@ -374,6 +374,13 @@ def install(self, spec, prefix):
if spec.satisfies("+tracing"):
options.append("--enable-tracing")
# charmpp build was failing with clang based compilers for -DNETWORK=mpi as discussed in
# https://github.com/charmplusplus/charm/issues/3645
# Fix was suggested in https://github.com/charmplusplus/charm/pull/3646 and the same has
# been implemented in v8.0.0
if self.spec.satisfies("@8.0.0: %aocc"):
options.append("--disable-fortran")
# Call "make" via the build script
# Note: This builds Charm++ in the "tmp" subdirectory of the
# install directory. Maybe we could set up a symbolic link

View File

@@ -0,0 +1,56 @@
diff --git a/src/qs_dispersion_d4.F b/src/qs_dispersion_d4.F
index 74df989b4..e513ed435 100644
--- a/src/qs_dispersion_d4.F
+++ b/src/qs_dispersion_d4.F
@@ -26,6 +26,7 @@ MODULE qs_dispersion_d4
#endif
USE kinds, ONLY: dp
USE particle_types, ONLY: particle_type
+ USE periodic_table, ONLY: get_ptable_info, ptable
USE qs_dispersion_types, ONLY: qs_dispersion_type
USE qs_force_types, ONLY: qs_force_type
USE message_passing, ONLY: mp_para_env_type
@@ -76,7 +77,8 @@ CONTAINS
TYPE(structure_type) :: mol
TYPE(realspace_cutoff) :: cutoff
- INTEGER :: iatom, natom, ind_atom
+ LOGICAL :: found
+ INTEGER :: iatom, natom, ind_atom, zatom
INTEGER, ALLOCATABLE, DIMENSION(:) :: el_num
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: gradient, xyz
REAL(KIND=dp), DIMENSION(3, 3) :: stress
@@ -94,7 +96,9 @@ CONTAINS
DO iatom = 1, natom
xyz(:, iatom) = particle_set(iatom)%r(:)
CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
- el_num(iatom) = ikind
+ CALL get_ptable_info(particle_set(iatom)%atomic_kind%element_symbol, &
+ ielement=zatom, found=found)
+ el_num(iatom) = zatom
END DO
!get information about cell / lattice
@@ -125,7 +129,7 @@ CONTAINS
IF (para_env%num_pe > 1 .AND. para_env%mepos > 0) virial = 0.00_dp
END IF
DO iatom = 1, natom
- ikind = el_num(iatom)
+ CALL get_atomic_kind(particle_set(iatom)%atomic_kind, kind_number=ikind)
ind_atom = atom_of_kind(iatom)
force(ikind)%dispersion(:, ind_atom) = force(ikind)%dispersion(:, ind_atom) + gradient(:, iatom)
END DO
diff --git a/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES b/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES
index 047421204..c817677df 100644
--- a/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES
+++ b/tests/QS/regtest-dft-vdw-corr-4/TEST_FILES
@@ -3,7 +3,7 @@
# e.g. 0 means do not compare anything, running is enough
# 1 compares the last total energy in the file
# for details see cp2k/tools/do_regtest
-pbe_dftd4.inp 33 1.0E-14 -0.00141644869634
+pbe_dftd4.inp 33 1.0E-14 -0.00283102230260
pbe_dftd4_force.inp 72 1.0E-07 0.00007217
-pbe_dftd4_stress.inp 31 1.0E-07 -5.16289312880E-03
+pbe_dftd4_stress.inp 31 1.0E-07 -2.14003785359E-02
#EOF

View File

@@ -362,6 +362,7 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
# These patches backport 2023.x fixes to previous versions
patch("backport_avoid_null_2022.x.patch", when="@2022.1:2022.2 %aocc@:4.0")
patch("backport_avoid_null_9.1.patch", when="@9.1 %aocc@:4.0")
patch("cmake-fixes-2023.2.patch", when="@2023.2 build_system=cmake")
# Allow compilation with build_type=RelWithDebInfo and build_type=MinSizeRel
@@ -369,15 +370,35 @@ class Cp2k(MakefilePackage, CMakePackage, CudaPackage, ROCmPackage):
# The patch applies https://github.com/cp2k/cp2k/pull/3251 to version 2024.1
patch("cmake-relwithdebinfo-2024.1.patch", when="@2024.1 build_system=cmake")
# Patch for an undefined constant due to incompatible changes in ELPA
@when("@9.1:2022.2 +elpa")
# Bugfix for D4 dispersion correction in CP2K 2024.3
# https://github.com/cp2k/cp2k/issues/3688
patch("d4-dispersion-bugfix-2024.3.patch", when="@2024.3")
def patch(self):
if self.spec["elpa"].satisfies("@2022.05.001:"):
filter_file(
r"ELPA_2STAGE_REAL_INTEL_GPU",
"ELPA_2STAGE_REAL_INTEL_GPU_SYCL",
"src/fm/cp_fm_elpa.F",
)
# Patch for an undefined constant due to incompatible changes in ELPA
if self.spec.satisfies("@9.1:2022.2 +elpa"):
if self.spec["elpa"].satisfies("@2022.05.001:"):
filter_file(
r"ELPA_2STAGE_REAL_INTEL_GPU",
"ELPA_2STAGE_REAL_INTEL_GPU_SYCL",
"src/fm/cp_fm_elpa.F",
)
# Patch for resolving .mod file conflicts in ROCm by implementing 'USE, INTRINSIC'
if self.spec.satisfies("+rocm"):
for directory, subdirectory, files in os.walk(os.getcwd()):
for i in files:
file_path = os.path.join(directory, i)
filter_file("USE ISO_C_BINDING", "USE,INTRINSIC :: ISO_C_BINDING", file_path)
filter_file(
"USE ISO_FORTRAN_ENV", "USE,INTRINSIC :: ISO_FORTRAN_ENV", file_path
)
filter_file("USE omp_lib", "USE,INTRINSIC :: omp_lib", file_path)
filter_file("USE OMP_LIB", "USE,INTRINSIC :: OMP_LIB", file_path)
filter_file("USE iso_c_binding", "USE,INTRINSIC :: iso_c_binding", file_path)
filter_file(
"USE iso_fortran_env", "USE,INTRINSIC :: iso_fortran_env", file_path
)
def url_for_version(self, version):
url = "https://github.com/cp2k/cp2k/releases/download/v{0}/cp2k-{0}.tar.bz2"
@@ -405,6 +426,7 @@ def edit(self, pkg, spec, prefix):
"cce": ["-O2"],
"xl": ["-O3"],
"aocc": ["-O2"],
"rocmcc": ["-O1"],
}
dflags = ["-DNDEBUG"] if spec.satisfies("@:2023.2") else []
@@ -446,7 +468,7 @@ def edit(self, pkg, spec, prefix):
"-ffree-line-length-none",
"-ggdb", # make sure we get proper Fortran backtraces
]
elif spec.satisfies("%aocc"):
elif spec.satisfies("%aocc") or spec.satisfies("%rocmcc"):
fcflags += ["-ffree-form", "-Mbackslash"]
elif spec.satisfies("%pgi") or spec.satisfies("%nvhpc"):
fcflags += ["-Mfreeform", "-Mextend"]
@@ -551,16 +573,7 @@ def edit(self, pkg, spec, prefix):
)
)
else:
libs.append(
join_path(
elpa.libs.directories[0],
(
"libelpa{elpa_suffix}.{dso_suffix}".format(
elpa_suffix=elpa_suffix, dso_suffix=dso_suffix
)
),
)
)
libs.append(elpa.libs.ld_flags)
if spec.satisfies("@:4"):
if elpa.satisfies("@:2014.5"):
@@ -593,14 +606,14 @@ def edit(self, pkg, spec, prefix):
cppflags += ["-D__LIBVORI"]
libvori = spec["libvori"].libs
ldflags += [libvori.search_flags]
libs += libvori
libs.append(libvori.ld_flags)
libs += ["-lstdc++"]
if spec.satisfies("+spglib"):
cppflags += ["-D__SPGLIB"]
spglib = spec["spglib"].libs
ldflags += [spglib.search_flags]
libs += spglib
libs.append(spglib.ld_flags)
cc = spack_cc if "~mpi" in spec else spec["mpi"].mpicc
cxx = spack_cxx if "~mpi" in spec else spec["mpi"].mpicxx
@@ -718,18 +731,20 @@ def edit(self, pkg, spec, prefix):
if spec.satisfies("@2022: +rocm"):
libs += [
"-L{}".format(spec["rocm"].libs.directories[0]),
"-L{}/stubs".format(spec["rocm"].libs.directories[0]),
"-L{}".format(spec["hip"].prefix.lib),
"-lamdhip64",
"-lhipblas",
"-lhipfft",
"-lstdc++",
]
cppflags += ["-D__OFFLOAD_HIP"]
acc_compiler_var = "hipcc"
acc_flags_var = "NVFLAGS"
cppflags += ["-D__ACC"]
cppflags += ["-D__DBCSR_ACC"]
cppflags += ["-D__HIP_PLATFORM_AMD__"]
cppflags += ["-D__GRID_HIP"]
gpuver = GPU_MAP[spec.variants["amdgpu_target"].value[0]]
if spec.satisfies("smm=libsmm"):
@@ -807,6 +822,9 @@ def fflags(var, lst):
mkf.write(fflags("CXXFLAGS", cxxflags))
if spec.satisfies("+cuda"):
mkf.write(fflags(acc_flags_var, nvflags))
if "+rocm" in spec:
mkf.write("OFFLOAD_TARGET = hip\n")
mkf.write(fflags("FCFLAGS", fcflags))
mkf.write(fflags("LDFLAGS", ldflags))
mkf.write(fflags("LIBS", libs))
@@ -913,7 +931,7 @@ def fix_package_config(self):
content += " " + self.spec["fftw-api"].libs.ld_flags
fftw = self.spec["fftw-api"]
if fftw.name in ["fftw", "amdfftw"] and fftw.satisfies("+openmp"):
if fftw.name in ["fftw", "amdfftw", "cray-fftw"] and fftw.satisfies("+openmp"):
content += " -lfftw3_omp"
content += "\n"

View File

@@ -13,8 +13,11 @@ class Cryptopp(MakefilePackage):
public-key encryption (RSA, DSA), and a few obsolete/historical encryption
algorithms (MD5, Panama)."""
homepage = "https://www.cryptopp.com"
url = "https://www.cryptopp.com/cryptopp700.zip"
homepage = "https://github.com/weidai11/cryptopp"
urls = [
"https://github.com/weidai11/cryptopp/releases/download/CRYPTOPP_8_9_0/cryptopp890.zip",
"https://www.cryptopp.com/cryptopp700.zip",
]
license("BSL-1.0")
@@ -34,8 +37,7 @@ class Cryptopp(MakefilePackage):
depends_on("gmake", type="build")
def url_for_version(self, version):
url = "{0}/{1}{2}.zip"
return url.format(self.homepage, self.name, version.joined)
return f"https://github.com/weidai11/cryptopp/releases/download/CRYPTOPP_{version.underscored}/cryptopp{version.joined}.zip"
def build(self, spec, prefix):
cxx_flags = []

View File

@@ -42,6 +42,12 @@ class Dakota(CMakePackage):
license("LGPL-2.1-or-later")
version(
"6.20.0",
tag="v6.20.0",
commit="494027b37264ec9268f2de8649d071de0232c534",
submodules=submodules,
)
version(
"6.19.0",
tag="v6.19.0",
@@ -76,7 +82,7 @@ class Dakota(CMakePackage):
depends_on("python", when="+python")
depends_on("perl-data-dumper", type="build", when="@6.12:")
depends_on("boost@:1.68.0", when="@:6.12")
depends_on("boost@1.69.0:", when="@6.18:")
depends_on("boost@1.69.0:1.84.0", when="@6.18:6.20")
depends_on("boost +filesystem +program_options +regex +serialization +system")
# TODO: replace this with an explicit list of components of Boost,

View File

@@ -26,6 +26,7 @@ class Dd4hep(CMakePackage):
license("LGPL-3.0-or-later")
version("master", branch="master")
version("1.30", sha256="02de46151e945eff58cffd84b4b86d35051f4436608199c3efb4d2e1183889fe")
version("1.29", sha256="435d25a7ef093d8bf660f288b5a89b98556b4c1c293c55b93bf641fb4cba77e9")
version("1.28", sha256="b28d671eda0154073873a044a384486e66f1f200065deca99537aa84f07328ad")
version("1.27.2", sha256="09d8acd743d010274562b856d39e2a88aeaf89cf287a4148f52223b0cd960ab2")

View File

@@ -223,14 +223,19 @@ def cmake_args(self):
)
else:
args.append(self.define("DLAF_WITH_MKL", spec["lapack"].name in INTEL_MATH_LIBRARIES))
add_dlaf_prefix = lambda x: x if spec.satisfies("@:0.6") else "DLAF_" + x
args.append(
self.define(
"LAPACK_LIBRARY",
add_dlaf_prefix("LAPACK_LIBRARY"),
" ".join([spec[dep].libs.ld_flags for dep in ["blas", "lapack"]]),
)
)
if spec.satisfies("+scalapack"):
args.append(self.define("SCALAPACK_LIBRARY", spec["scalapack"].libs.ld_flags))
args.append(
self.define(
add_dlaf_prefix("SCALAPACK_LIBRARY"), spec["scalapack"].libs.ld_flags
)
)
args.append(self.define_from_variant("DLAF_WITH_SCALAPACK", "scalapack"))

View File

@@ -14,17 +14,34 @@ class Drill(Package):
"""
homepage = "https://drill.apache.org/"
url = "https://www-eu.apache.org/dist/drill/drill-1.17.0/apache-drill-1.17.0.tar.gz"
url = "https://dist.apache.org/repos/dist/release/drill/1.17.0/apache-drill-1.17.0.tar.gz"
git = "https://github.com/apache/drill.git"
license("Apache-2.0")
license("Apache-2.0", checked_by="wdconinc")
version("1.17.0", sha256="a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1")
version("1.16.0", sha256="fd195d2b38f393459b37d8f13ac1f36cdbe38495eabb08252da38e3544e87839")
version("1.15.0", sha256="188c1d0df28e50f0265f4bc3c5871b4e7abc9450a4e5a7dbe7f0b23146bec76b")
version("1.14.0", sha256="1145bdbb723119f271d32daf4cdd77cdeebe88ddcb7d04facd585b715bb5723b")
version("1.13.0", sha256="8da6d56f75ae01e0bee6176095d32760e7183dd0200f10ee68b8cd3f882def6a")
version("1.21.2", sha256="77e2e7438f1b4605409828eaa86690f1e84b038465778a04585bd8fb21d68e3b")
version("1.20.3", sha256="1520cd2524cf8e0ce45fcf02e8e5e3e044465c6dacad853f9fadf9c918863cad")
with default_args(deprecated=True):
# Log4Shell vulnerability (CVE-2021-44228) affects all versions before 1.20.0
version(
"1.17.0", sha256="a3d2d544bcc32b915fb53fced0f982670bd6fe2abd764423e566a5f6b54debf1"
)
version(
"1.16.0", sha256="fd195d2b38f393459b37d8f13ac1f36cdbe38495eabb08252da38e3544e87839"
)
version(
"1.15.0", sha256="188c1d0df28e50f0265f4bc3c5871b4e7abc9450a4e5a7dbe7f0b23146bec76b"
)
version(
"1.14.0", sha256="1145bdbb723119f271d32daf4cdd77cdeebe88ddcb7d04facd585b715bb5723b"
)
version(
"1.13.0", sha256="8da6d56f75ae01e0bee6176095d32760e7183dd0200f10ee68b8cd3f882def6a"
)
# pom.xml, requireJavaVersion
depends_on("java@7:", type="run")
depends_on("java@8:", type="run", when="@1.14:")
def install(self, spec, prefix):
install_tree(".", prefix)

View File

@@ -21,6 +21,7 @@ class Edm4hep(CMakePackage):
license("Apache-2.0")
version("main", branch="main")
version("0.99.1", sha256="84d990f09dbd0ad2198596c0c51238a4b15391f51febfb15dd3d191dc7aae9f4")
version("0.99", sha256="3636e8c14474237029bf1a8be11c53b57ad3ed438fd70a7e9b87c5d08f1f2ea6")
version("0.10.5", sha256="003c8e0c8e1d1844592d43d41384f4320586fbfa51d4d728ae0870b9c4f78d81")
version(
@@ -51,10 +52,10 @@ class Edm4hep(CMakePackage):
depends_on("cxx", type="build") # generated
_cxxstd_values = ("17", "20")
_cxxstd_values = (conditional("17", when="@:0.99.0"), conditional("20"))
variant(
"cxxstd",
default="17",
default="20",
values=_cxxstd_values,
multi=False,
description="Use the specified C++ standard when building.",
@@ -69,7 +70,8 @@ class Edm4hep(CMakePackage):
depends_on("podio@1:", when="@0.99:")
depends_on("podio@0.15:", when="@:0.10.5")
for _std in _cxxstd_values:
depends_on("podio cxxstd=" + _std, when="cxxstd=" + _std)
for _v in _std:
depends_on(f"podio cxxstd={_v.value}", when=f"cxxstd={_v.value}")
depends_on("py-jinja2", type="build")
depends_on("py-pyyaml", type="build")

View File

@@ -55,28 +55,33 @@ class Emacs(AutotoolsPackage, GNUMirrorPackage):
depends_on("c", type="build")
depends_on("pkgconfig", type="build")
depends_on("gzip", type="build")
depends_on("texinfo", type="build", when="@29.4:")
depends_on("ncurses")
depends_on("pcre")
depends_on("zlib-api")
depends_on("libxml2")
depends_on("libtiff", when="+X")
depends_on("libpng", when="+X")
depends_on("libxpm", when="+X")
depends_on("giflib", when="+X")
depends_on("libx11", when="+X")
depends_on("libxaw", when="+X toolkit=athena")
depends_on("gtkplus", when="+X toolkit=gtk")
depends_on("gnutls", when="+tls")
depends_on("jpeg")
depends_on("gnutls", when="+tls")
depends_on("tree-sitter", when="+treesitter")
depends_on("gcc@11: +strip languages=jit", when="+native")
depends_on("jansson@2.7:", when="+json")
with when("+X"):
depends_on("libtiff")
depends_on("libpng")
depends_on("libxpm")
depends_on("giflib")
depends_on("libx11")
depends_on("libxaw", when="toolkit=athena")
depends_on("gtkplus", when="toolkit=gtk")
# the following dependencies are required when building from a git ref
# so that we can run reconfigure to generate a ./configure script
depends_on("m4", type="build", when="@master:")
depends_on("autoconf", type="build", when="@master:")
depends_on("automake", type="build", when="@master:")
depends_on("libtool", type="build", when="@master:")
depends_on("texinfo", type="build", when="@master:")
depends_on("gcc@11: +strip languages=jit", when="+native")
depends_on("jansson@2.7:", when="+json")
conflicts("@:26.3", when="platform=darwin os=catalina")

View File

@@ -12,21 +12,97 @@ class Entrezdirect(Package):
gene, variation, expression, etc.) from a UNIX terminal window."""
homepage = "https://www.ncbi.nlm.nih.gov/books/NBK179288/"
maintainers("snehring")
version(
"22.6.20240912", sha256="ddf1aab438bfe6af7cf38f725dac6f288d0daf354197665a66d4556c91129ace"
)
version(
"10.7.20190114", sha256="4152749e6a3aac71a64e9367527428714ed16cf1fb6c7eff1298cca9ef144c0d"
)
resource(
name="rchive.ARM64",
placement="rchive-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/rchive.ARM64.gz",
sha256="48dbd770a62505e3a52cd475f564ba8ab4a20729c318114f8177d5342c519122",
when="@22.6.20240912 platform=linux target=aarch64:",
)
resource(
name="rchive.Linux",
placement="rchive-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/rchive.Linux.gz",
sha256="2454ca3423df31f4057d1d2ce743e14eb3142d856e688dbbc6586cd9a6b7948c",
when="@22.6.20240912 platform=linux target=x86_64:",
)
resource(
name="rchive.Silicon",
placement="rchive-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.Silicon.gz",
sha256="fd7f73d42055b35783107257eb8d96cc2b65daa00c47774cf1913ab83156719c",
when="@22.6.20240912 platform=darwin target=aarch64:",
)
resource(
name="transmute.ARM64",
placement="transmute-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/transmute.ARM64.gz",
sha256="c9d5dede1c70c29839af4d40a4eb55c0788a8943dc2bde5c919c8bf0be584f34",
when="@22.6.20240912 platform=linux target=aarch64:",
)
resource(
name="transmute.Linux",
placement="transmute-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/transmute.Linux.gz",
sha256="8a8746b991494f354cb94dc46740691810b673ae1ff5235cf5a60b29fb974ac2",
when="@22.6.20240912 platform=linux target=x86_64:",
)
resource(
name="transmute.Silicon",
placement="transmute-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/transmute.Silicon.gz",
sha256="5ec32a04a29db90a98dced0dbef717da174c6a1228fdb86b94bc35d1aed26545",
when="@22.6.20240912 platform=darwin target=aarch64:",
)
resource(
name="xtract.ARM64",
placement="xtract-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.ARM64.gz",
sha256="1d62f612b2be6265c517af6c7a5d6bec0ce3f11bcccc6602a78ce1113bd4fc6c",
when="@22.6.20240912 platform=linux target=aarch64:",
)
resource(
name="xtract.Linux",
placement="xtract-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.Linux.gz",
sha256="cc3994ce640cfe9ed67f4b8c31d6d22d006503c11a8506d50a5a9fe7c0b59124",
when="@22.6.20240912 platform=linux target=x86_64:",
)
resource(
name="xtract.Silicon",
placement="xtract-bin",
url="https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/22.6.20240912/xtract.Silicon.gz",
sha256="fd7f73d42055b35783107257eb8d96cc2b65daa00c47774cf1913ab83156719c",
when="@22.6.20240912 platform=darwin target=aarch64:",
)
depends_on("curl", type="run")
depends_on("perl", type="run")
depends_on("perl-html-parser", type="run")
depends_on("perl-libwww-perl", type="run")
depends_on("perl-lwp-protocol-https", type="run")
depends_on("perl-http-message", type="run")
depends_on("perl-xml-simple", type="run")
depends_on("python", type="run", when="@22:")
def url_for_version(self, ver):
pfx = "ftp://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/"
pfx = "https://ftp.ncbi.nlm.nih.gov/entrez/entrezdirect/versions/"
return pfx + "{0}/edirect-{0}.tar.gz".format(ver.dotted)
def install(self, spec, prefix):
for i in ["rchive", "transmute", "xtract"]:
src = f"{i}-bin"
exe = find(src, "*")[0]
set_executable(exe)
copy(exe, ".")
remove_linked_tree(src)
install_tree(".", prefix.bin)

View File

@@ -30,6 +30,7 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage):
license("MIT")
version("1.8.0", sha256="56ece0a419d62eaa11e39022fa27c8ed6d5a9b9eb7416cc5a0fdbeab07ec2f0c")
version("1.7.4", sha256="d9a7b31bf7fd6eb32c10b7ea7ff918160eed5be04fe63bb7b4b4b5f2bbde01ad")
version("1.7.2", sha256="d49b4afd6a7a5b64f260a236ee9b2efb760edb08c33d5ea5610c2f078a5995ec")
version("1.6.3", sha256="e1a41c159f0b896975fbb133e0240a233af5c9286c09a28fde6aefff5336e542")
@@ -45,6 +46,7 @@ class Faiss(AutotoolsPackage, CMakePackage, CudaPackage):
conflicts("+tests", when="~python", msg="+tests must be accompanied by +python")
depends_on("cmake@3.17:", when="build_system=cmake", type="build")
depends_on("cmake@3.23.1:", when="build_system=cmake @1.7.4:", type="build")
extends("python", when="+python")
depends_on("python@3.7:", when="+python", type=("build", "run"))

View File

@@ -3,7 +3,6 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
@@ -31,27 +30,26 @@ class Fio(AutotoolsPackage):
version("3.16", sha256="c7731a9e831581bab7104da9ea60c9f44e594438dbe95dff26726ca0285e7b93")
version("2.19", sha256="61fb03a18703269b781aaf195cb0d7931493bbb5bfcc8eb746d5d66d04ed77f7")
depends_on("c", type="build") # generated
variant("gui", default=False, description="Enable building of gtk gfio")
variant("doc", default=False, description="Generate documentation")
variant("libaio", default=False, description="Enable libaio engine")
depends_on("c", type="build")
depends_on("pkgconfig", type="build")
depends_on("zlib-api")
depends_on("gtkplus@2.18:", when="+gui")
depends_on("cairo", when="+gui")
depends_on("libaio", when="+libaio")
depends_on("py-sphinx", type="build", when="+doc")
conflicts("+libaio", when="platform=darwin", msg="libaio does not support Darwin")
conflicts("+libaio", when="platform=windows", msg="libaio does not support Windows")
conflicts("@:3.18", when="%gcc@10:", msg="gcc@10: sets -fno-common by default")
def configure_args(self):
config_args = []
spec = self.spec
config_args = ["--disable-native"]
if spec.satisfies("+gui"):
if self.spec.satisfies("+gui"):
config_args.append("--enable-gfio")
return config_args

View File

@@ -0,0 +1,38 @@
diff --git a/GaudiHive/src/AvalancheSchedulerSvc.cpp b/GaudiHive/src/AvalancheSchedulerSvc.cpp
index 7f49e6f75..76601bed8 100644
--- a/GaudiHive/src/AvalancheSchedulerSvc.cpp
+++ b/GaudiHive/src/AvalancheSchedulerSvc.cpp
@@ -23,6 +23,7 @@
// C++
#include <algorithm>
+#include <fstream>
#include <map>
#include <queue>
#include <sstream>
diff --git a/GaudiHive/src/PRGraph/Visitors/Rankers.cpp b/GaudiHive/src/PRGraph/Visitors/Rankers.cpp
index 33f733633..e4d33080f 100644
--- a/GaudiHive/src/PRGraph/Visitors/Rankers.cpp
+++ b/GaudiHive/src/PRGraph/Visitors/Rankers.cpp
@@ -10,6 +10,8 @@
\***********************************************************************************/
#include "Rankers.h"
+#include <fstream>
+
namespace concurrency {
//--------------------------------------------------------------------------
diff --git a/GaudiHive/src/PrecedenceSvc.cpp b/GaudiHive/src/PrecedenceSvc.cpp
index ac4a7b7d9..1ff1e3f9e 100644
--- a/GaudiHive/src/PrecedenceSvc.cpp
+++ b/GaudiHive/src/PrecedenceSvc.cpp
@@ -17,6 +17,8 @@
#include <Gaudi/Algorithm.h>
#include <Gaudi/Sequence.h>
+#include <fstream>
+
#define ON_DEBUG if ( msgLevel( MSG::DEBUG ) )
#define ON_VERBOSE if ( msgLevel( MSG::VERBOSE ) )

View File

@@ -16,6 +16,7 @@ class Gaudi(CMakePackage):
tags = ["hep"]
version("master", branch="master")
version("39.0", sha256="faa3653e2e6c769292c0592e3fc35cd98a2820bd6fc0c967cac565808b927262")
version("38.3", sha256="47e8c65ea446656d2dae54a32205525e08257778cf80f9f029cd244d6650486e")
version("38.2", sha256="08759b1398336987ad991602e37079f0744e8d8e4e3d5df2d253b8dedf925068")
version("38.1", sha256="79d42833edcebc2099f91badb6f72708640c05f678cc4521a86e857f112486dc")
@@ -40,7 +41,9 @@ class Gaudi(CMakePackage):
version("36.0", sha256="8a0458cef5b616532f9db7cca9fa0e892e602b64c9e93dc0cc6d972e03034830")
version("35.0", sha256="c01b822f9592a7bf875b9997cbeb3c94dea97cb13d523c12649dbbf5d69b5fa6")
depends_on("cxx", type="build") # generated
depends_on("cxx", type="build")
conflicts("%gcc@:10", when="@39:", msg="Gaudi needs a c++20 capable compiler for this version")
maintainers("drbenmorgan", "vvolkl", "jmcarcell")
@@ -48,7 +51,7 @@ class Gaudi(CMakePackage):
variant("cppunit", default=False, description="Build with CppUnit unit testing")
variant("docs", default=False, description="Build documentation with Doxygen")
variant("examples", default=False, description="Build examples")
variant("gaudialg", default=False, description="Build GaudiAlg support", when="@37.0:")
variant("gaudialg", default=False, description="Build GaudiAlg support", when="@37.0:38")
variant("gperftools", default=False, description="Build with Google PerfTools support")
variant("heppdt", default=False, description="Build with HEP Particle Data Table support")
variant("jemalloc", default=False, description="Build with jemalloc allocator support")
@@ -70,6 +73,9 @@ class Gaudi(CMakePackage):
when="@:38.1",
)
# add a few missing includes (c++20?)
patch("includes.patch", when="@37:38")
# These dependencies are needed for a minimal Gaudi build
depends_on("aida")
# The boost components that are required for Gaudi
@@ -91,6 +97,7 @@ class Gaudi(CMakePackage):
depends_on("clhep")
depends_on("cmake", type="build")
depends_on("cmake@3.19:", type="build", when="@39:")
depends_on("cppgsl")
depends_on("fmt@:8", when="@:36.9")
depends_on("fmt@:10")
@@ -105,6 +112,7 @@ class Gaudi(CMakePackage):
depends_on("range-v3")
depends_on("root +python +root7 +ssl +tbb +threads")
depends_on("zlib-api")
depends_on("py-pytest-cov", when="@39:")
# Testing dependencies
# Note: gaudi only builds examples when testing enabled
@@ -146,6 +154,10 @@ def cmake_args(self):
# todo:
self.define("GAUDI_USE_INTELAMPLIFIER", False),
]
# Release notes for v39.0: https://gitlab.cern.ch/gaudi/Gaudi/-/releases/v39r0
# Gaudi@39: needs C++ >= 20, and we need to force CMake to use C++ 20 with old gcc:
if self.spec.satisfies("@39: %gcc@:13"):
args.append(self.define("GAUDI_CXX_STANDARD", "20"))
return args
def setup_run_environment(self, env):

View File

@@ -22,6 +22,7 @@ class Genie(Package):
maintainers("davehadley")
version("master", branch="master")
version("3.4.2", sha256="c5935aea86d2ba9897ab55bb581622c561575957d19e572691d3bc0833ed9512")
version("3.0.6", sha256="ab56ea85d0c1d09029254365bfe75a1427effa717389753b9e0c1b6c2eaa5eaf")
version("3.0.4", sha256="53f034618fef9f7f0e17d1c4ed72743e4bba590e824b795177a1a8a8486c861e")
version("3.0.2", sha256="34d6c37017b2387c781aea7bc727a0aac0ef45d6b3f3982cc6f3fc82493f65c3")
@@ -60,7 +61,11 @@ class Genie(Package):
# GENIE Makefile's think that the spack compiler is invalid.
# Disables this check.
patch("genie_disable_gopt_with_compiler_check.patch", level=0, when="@2.11:")
patch(
"https://patch-diff.githubusercontent.com/raw/GENIE-MC/Generator/pull/376.patch?full_index=1",
sha256="7eca9bf44251cd99edd962483ca24c5072f8e2eee688f1e95b076425f2dc59f6",
when="@3.4.2",
)
# Flags for GENIE"s optional but disabled by default features
variant(
"atmo", default=False, description="Enable GENIE Atmospheric neutrino event generation app"

View File

@@ -0,0 +1,48 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class GoogleCloudCpp(CMakePackage):
"""C++ Client Libraries for Google Cloud Platform."""
homepage = "https://cloud.google.com/cpp"
url = "https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v2.28.0.tar.gz"
maintainers("dbolduc")
license("Apache-2.0", checked_by="dbolduc")
sanity_check_is_dir = ["lib", "include"]
version("2.28.0", sha256="1d51910cb4419f6100d8b9df6bccd33477d09f50e378f12b06dae0f137ed7bc6")
depends_on("abseil-cpp")
depends_on("curl")
depends_on("google-crc32c")
depends_on("grpc")
depends_on("nlohmann-json")
depends_on("protobuf")
variant("shared", default=False, description="Build shared instead of static libraries")
variant(
"cxxstd",
default="11",
values=("11", "14", "17", "20"),
multi=False,
description="Use the specified C++ standard when building.",
)
def cmake_args(self):
args = [
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("CMAKE_CXX_STANDARD", "cxxstd"),
"-DBUILD_TESTING:Bool=OFF",
"-DGOOGLE_CLOUD_CPP_WITH_MOCKS:Bool=OFF",
"-DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES:Bool=OFF",
"-DGOOGLE_CLOUD_CPP_ENABLE:String=__ga_libraries__",
]
return args

View File

@@ -22,6 +22,7 @@ class Gperftools(AutotoolsPackage, CMakePackage):
build_system(conditional("cmake", when="@2.8.1:"), "autotools", default="cmake")
version("2.16", sha256="f12624af5c5987f2cc830ee534f754c3c5961eec08004c26a8b80de015cf056f")
version("2.15", sha256="c69fef855628c81ef56f12e3c58f2b7ce1f326c0a1fe783e5cae0b88cbbe9a80")
version("2.14", sha256="6b561baf304b53d0a25311bd2e29bc993bed76b7c562380949e7cb5e3846b299")
version("2.13", sha256="4882c5ece69f8691e51ffd6486df7d79dbf43b0c909d84d3c0883e30d27323e7")
@@ -50,6 +51,8 @@ class Gperftools(AutotoolsPackage, CMakePackage):
depends_on("unwind", when="+libunwind")
depends_on("cmake@3.12:", type="build", when="build_system=cmake")
# https://github.com/gperftools/gperftools/commit/9dfab2cdce5ec1ebb36e2a20e5031ef49cbe8087
conflicts("build_system=cmake", when="@2.16:")
# Linker error: src/base/dynamic_annotations.cc:46: undefined reference to
# `TCMallocGetenvSafe'

View File

@@ -13,35 +13,23 @@ class Httpd(AutotoolsPackage):
homepage = "https://httpd.apache.org/"
url = "https://archive.apache.org/dist/httpd/httpd-2.4.43.tar.bz2"
license("Apache-2.0")
license("Apache-2.0", checked_by="wdconinc")
version("2.4.59", sha256="ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e321323")
version("2.4.55", sha256="11d6ba19e36c0b93ca62e47e6ffc2d2f2884942694bce0f23f39c71bdc5f69ac")
version("2.4.62", sha256="674188e7bf44ced82da8db522da946849e22080d73d16c93f7f4df89e25729ec")
# https://nvd.nist.gov/vuln/detail/CVE-2022-31813
# https://nvd.nist.gov/vuln/detail/CVE-2024-38477
version(
"2.4.43",
sha256="a497652ab3fc81318cdc2a203090a999150d86461acff97c1065dc910fe10f43",
"2.4.59",
sha256="ec51501ec480284ff52f637258135d333230a7d229c3afa6f6c2f9040e321323",
deprecated=True,
)
version(
"2.4.41",
sha256="133d48298fe5315ae9366a0ec66282fa4040efa5d566174481077ade7d18ea40",
deprecated=True,
)
version(
"2.4.39",
sha256="b4ca9d05773aa59b54d66cd8f4744b945289f084d3be17d7981d1783a5decfa2",
deprecated=True,
)
version(
"2.4.38",
sha256="7dc65857a994c98370dc4334b260101a7a04be60e6e74a5c57a6dee1bc8f394a",
"2.4.55",
sha256="11d6ba19e36c0b93ca62e47e6ffc2d2f2884942694bce0f23f39c71bdc5f69ac",
deprecated=True,
)
depends_on("c", type="build") # generated
depends_on("c", type="build")
depends_on("m4", type="build")
depends_on("autoconf", type="build")
depends_on("automake", type="build")

View File

@@ -12,7 +12,7 @@ class Hudi(MavenPackage):
Hudi manages the storage of large analytical datasets on DFS."""
homepage = "https://hudi.apache.org/"
url = "https://github.com/apache/hudi/archive/release-0.5.3.tar.gz"
url = "https://github.com/apache/hudi/archive/refs/tags/release-0.5.3.tar.gz"
license("Apache-2.0")

View File

@@ -26,7 +26,7 @@ class Hwloc(AutotoolsPackage, CudaPackage, ROCmPackage):
"""
homepage = "https://www.open-mpi.org/projects/hwloc/"
url = "https://download.open-mpi.org/release/hwloc/v2.0/hwloc-2.0.2.tar.gz"
url = "https://download.open-mpi.org/release/hwloc/v2.11/hwloc-2.11.1.tar.bz2"
git = "https://github.com/open-mpi/hwloc.git"
maintainers("bgoglin")
@@ -198,5 +198,7 @@ def configure_args(self):
if self.spec.satisfies("+oneapi-level-zero"):
args.append("--enable-levelzero")
else:
args.append("--disable-levelzero")
return args

View File

@@ -24,6 +24,12 @@ class IntelOneapiAdvisor(IntelOneApiLibraryPackageWithSdk):
"https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/advisor.html"
)
version(
"2024.3.0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/e36c14f6-6142-44ff-b498-d4ff169cc8b0/l_oneapi_advisor_p_2024.3.0.43_offline.sh",
sha256="6d230a0d11b972c4c677e041a6077216de79037376f5776b3b291113e25335be",
expand=False,
)
version(
"2024.2.1",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/65f69c5c-b41f-4688-8a41-ece8f2bbbb5a/l_oneapi_advisor_p_2024.2.1.44_offline.sh",

View File

@@ -26,6 +26,12 @@ class IntelOneapiDal(IntelOneApiLibraryPackage):
"https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onedal.html"
)
version(
"2024.7.0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/ed2c397a-9a78-4466-9179-b39b7da07e83/l_daal_oneapi_p_2024.7.0.14_offline.sh",
sha256="aa7b072fe019ce253a111b38055f3949222d7be5231b4df2780a7ded16cd9097",
expand=False,
)
version(
"2024.6.0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/1edf7074-80f8-4b97-aad3-5023b41b7ecd/l_daal_oneapi_p_2024.6.0.418_offline.sh",

View File

@@ -25,6 +25,12 @@ class IntelOneapiMkl(IntelOneApiLibraryPackage):
"https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/onemkl.html"
)
version(
"2024.2.2",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/89a381f6-f85d-4dda-ae62-30d51470f53c/l_onemkl_p_2024.2.2.17_offline.sh",
sha256="6b64ab95567bee53d6cf7e78f9f7b15695902fb9da0d20c29e638ad001b6b348",
expand=False,
)
version(
"2024.2.1",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/6e00e368-b61d-4f87-a409-9b510c022a37/l_onemkl_p_2024.2.1.105_offline.sh",

View File

@@ -29,6 +29,7 @@ class IntelOneapiRuntime(Package):
LIBRARIES = [
"imf",
"intlc",
"irc",
"irng",
"svml",
"ifcore", # Fortran

View File

@@ -25,6 +25,12 @@ class IntelOneapiVtune(IntelOneApiLibraryPackageWithSdk):
homepage = "https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/vtune-profiler.html"
version(
"2024.3.0",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d7e1fdb1-cfc7-40fb-bf46-3719e9372d67/l_oneapi_vtune_p_2024.3.0.31_offline.sh",
sha256="da9f45ee4a5ea337756e85e58e40b235417cffbca6813cf224db49061947253d",
expand=False,
)
version(
"2024.2.1",
url="https://registrationcenter-download.intel.com/akdlm/IRC_NAS/d703d28b-d70b-4c90-bdb1-c3562c1084e5/l_oneapi_vtune_p_2024.2.1.68_offline.sh",

View File

@@ -9,8 +9,8 @@
class Iproute2(AutotoolsPackage):
"""This is a set of utilities for Linux networking."""
homepage = "https://github.com/shemminger/iproute2"
url = "https://github.com/shemminger/iproute2/archive/v5.9.0.tar.gz"
homepage = "https://wiki.linuxfoundation.org/networking/iproute2"
url = "https://github.com/iproute2/iproute2/archive/v5.9.0.tar.gz"
depends_on("bison", type="build")
depends_on("flex", type="build")
@@ -18,6 +18,13 @@ class Iproute2(AutotoolsPackage):
license("GPL-2.0-or-later")
version("6.11.0", sha256="e5ad1c86aa788a979ba1b68cd6ee948b37983d99efabf6a0bf556b061569cc4d")
version("6.10.0", sha256="060ee42dfcdf8b9daf9f986eee26d16ac5bdf39c8784702957b13bebec538541")
version("6.2.0", sha256="813d41443d4ee0b189531e0d63f955ce94367ef80b184bcd27a30be86ae715e0")
version("6.1.0", sha256="63b6057041be86fee8af3468d86fdc1eb2afe1d56500f298413baf89575eff1e")
version("6.0.0", sha256="0a92b8d04710ab4e649ec25eb919768ba44d3047f26e80621368689d0f3c5a59")
version("5.17.0", sha256="ab5ed83d901d42a8dd5ec539ab8de35c65f921f002331fc7adfd359def33158d")
version("5.15.0", sha256="e10161fabe68714b34d565b6efff41b987ffec077f79beec497688c155881ea6")
version("5.11.0", sha256="16b79e6ce65d4d5fd425cef2fd92a58c403a93faeeed0e0a3202b36a8e857d1f")
version("5.10.0", sha256="164f1de457eefbdadb98d82c309a0977542b34e7a2dfe81e497a0b93675cb3d2")
version("5.9.0", sha256="1afde56d416f136b1236ac2f8276e4edbe114ca3c2ab12f11af11b84cf0992e4")

View File

@@ -0,0 +1,11 @@
diff -Naur spack-src/lib/io/mmap_graph_io.h spack-src/lib/io/mmap_graph_io.patched.h
--- spack-src/lib/io/mmap_graph_io.h 2024-08-22 17:56:05.689983013 +0200
+++ spack-src/lib/io/mmap_graph_io.patched.h 2024-08-22 17:58:10.915413214 +0200
@@ -1,6 +1,7 @@
#pragma once
#include <cctype>
+#include <cstdint>
#include <cstring>
#include <fcntl.h>
#include <fstream>

View File

@@ -69,6 +69,8 @@ class Kahip(CMakePackage):
patch("fix-sconstruct-for-py3.patch", when="@2:2.10 ^python@3:")
patch("fix-sconstruct-for-py3-v2.00.patch", when="@2.00 ^python@3:")
patch("cstdint.patch", when="@3:")
# 'when' decorators to override new CMake build approach (old build was SConstruct).
@when("@:2.10")
def patch(self):

View File

@@ -21,6 +21,7 @@ class Lcio(CMakePackage):
license("BSD-3-Clause")
version("master", branch="master")
version("2.22.2", sha256="e5ad9690af85160ef52dd407fc0995451b4293f3aee415a8ea8a950de63d87a1")
version("2.22.1", sha256="4bc3d2c83af7b1c65d6736dd14ee82f41af7ce9bfc7cfe779c5f47417e8dc326")
version("2.22", sha256="95676977a0427f5ecc857e8504b13f332c2c2e5769dc00f6beecff3c73dab395")
version("2.21", sha256="a9f0a9922ab2ef17c6f1b8f7187bfc341f27567745a43c0480c103b617dfcea6")

View File

@@ -29,6 +29,7 @@ class Legion(CMakePackage, ROCmPackage):
maintainers("pmccormick", "streichler", "elliottslaughter")
tags = ["e4s"]
version("24.09.0", tag="legion-24.09.0", commit="4a03402467547b99530042cfe234ceec2cd31b2e")
version("24.06.0", tag="legion-24.06.0", commit="3f27977943626ef23038ef0049b7ad1b389caad1")
version("24.03.0", tag="legion-24.03.0", commit="c61071541218747e35767317f6f89b83f374f264")
version("23.12.0", tag="legion-23.12.0", commit="8fea67ee694a5d9fb27232a7976af189d6c98456")

View File

@@ -22,8 +22,9 @@ class Libsodium(AutotoolsPackage):
version("master", branch="master")
version("stable", branch="stable")
version("next", branch="next")
version("next", branch="next", deprecated=True)
version("1.0.20", sha256="ebb65ef6ca439333c2bb41a0c1990587288da07f6c7fd07cb3a18cc18d30ce19")
version("1.0.19", sha256="018d79fe0a045cca07331d37bd0cb57b2e838c51bc48fd837a1472e50068bbea")
version("1.0.18", sha256="6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1")
version("1.0.17", sha256="0cc3dae33e642cc187b5ceb467e0ad0e1b51dcba577de1190e9ffa17766ac2b1")
@@ -36,7 +37,10 @@ class Libsodium(AutotoolsPackage):
version("1.0.0", sha256="ced1fe3d2066953fea94f307a92f8ae41bf0643739a44309cbe43aa881dbc9a5")
version("0.7.1", sha256="ef46bbb5bac263ef6d3fc00ccc11d4690aea83643412919fe15369b9870280a7")
depends_on("c", type="build") # generated
depends_on("c", type="build")
# https://github.com/jedisct1/libsodium/issues/1372
conflicts("target=aarch64:", when="@1.0.19")
def patch(self):
# Necessary on ppc64le / aarch64, because Spack tries to execute these scripts

View File

@@ -23,6 +23,9 @@ class LinaroForge(Package):
maintainers("kenche-linaro")
if platform.machine() == "aarch64":
version(
"24.0.5", sha256="fc0c80ce9f66c6966faaca77de0f13e26da564c853e5bfc1e8acd17b65bc2ba0"
)
version(
"24.0.4", sha256="d126e4690f7c9bf21e541721dac51dcee1f336a882211426bf98a15d80671e3d"
)
@@ -94,6 +97,9 @@ class LinaroForge(Package):
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
)
elif platform.machine() == "x86_64":
version(
"24.0.5", sha256="da0d4d6fa9120b5e7c4a248795b7f5da32c4987588ecb7406213c8c9846af2bc"
)
version(
"24.0.4", sha256="001e7b7cd796d8e807971b99a9ca233c24f8fcd6eee4e9b4bbb0ec8560d44f08"
)

View File

@@ -56,6 +56,7 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
license("Apache-2.0")
version("main", branch="main")
version("19.1.0", sha256="0a08341036ca99a106786f50f9c5cb3fbe458b3b74cab6089fd368d0edb2edfe")
version("18.1.8", sha256="09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856")
version("18.1.7", sha256="b60df7cbe02cef2523f7357120fb0d46cbb443791cde3a5fb36b82c335c0afc9")
version("18.1.6", sha256="01390edfae5b809e982b530ff9088e674c62b13aa92cb9dc1e067fa2cf501083")
@@ -277,6 +278,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
conflicts("+z3", when="~clang")
conflicts("+lua", when="@:10")
conflicts("+lua", when="~lldb")
# Python distutils were removed with 3.12 and are required to build LLVM <= 14
conflicts("^python@3.12:", when="@:14")
variant(
"zstd",
@@ -285,6 +288,8 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
description="Enable zstd support for static analyzer / lld",
)
provides("libllvm@19", when="@19.0.0:19")
provides("libllvm@18", when="@18.0.0:18")
provides("libllvm@17", when="@17.0.0:17")
provides("libllvm@16", when="@16.0.0:16")
provides("libllvm@15", when="@15.0.0:15")
@@ -419,6 +424,19 @@ class Llvm(CMakePackage, CudaPackage, LlvmDetection, CompilerPackage):
# cuda_arch value must be specified
conflicts("cuda_arch=none", when="+cuda", msg="A value for cuda_arch must be specified.")
# clang/test/Misc/target-invalid-cpu-note.c
conflicts("cuda_arch=10")
conflicts("cuda_arch=11")
conflicts("cuda_arch=12")
conflicts("cuda_arch=13")
conflicts("cuda_arch=75", when="@:13")
conflicts("cuda_arch=80", when="@:13")
conflicts("cuda_arch=86", when="@:13")
conflicts("cuda_arch=87", when="@:15")
conflicts("cuda_arch=89", when="@:15")
conflicts("cuda_arch=90", when="@:15")
conflicts("cuda_arch=90a", when="@:17")
# LLVM bug https://bugs.llvm.org/show_bug.cgi?id=48234
# CMake bug: https://gitlab.kitware.com/cmake/cmake/-/issues/21469
# Fixed in upstream versions of both
@@ -880,6 +898,8 @@ def cmake_args(self):
# finding libhsa and enabling the AMDGPU plugin. Since we don't support this yet,
# disable explicitly. See commit a05a0c3c2f8eefc80d84b7a87a23a4452d4a3087.
cmake_args.append(define("LIBOMPTARGET_BUILD_AMDGPU_PLUGIN", False))
if "python" in spec: # lit's Python needs to be set with this variable
cmake_args.append(define("python_executable", spec["python"].command.path))
if "+lldb" in spec:
projects.append("lldb")
@@ -892,17 +912,20 @@ def cmake_args(self):
define("LLDB_ENABLE_LZMA", True),
]
)
if spec["ncurses"].satisfies("+termlib"):
cmake_args.append(define("LLVM_ENABLE_TERMINFO", True))
if spec.satisfies("@19:"):
cmake_args.append(define("LLDB_CURSES_LIBS", spec["ncurses"].libs))
else:
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
if spec["ncurses"].satisfies("+termlib"):
cmake_args.append(define("LLVM_ENABLE_TERMINFO", True))
else:
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
if spec.version >= Version("10"):
cmake_args.append(from_variant("LLDB_ENABLE_PYTHON", "python"))
else:
cmake_args.append(define("LLDB_DISABLE_PYTHON", "~python" in spec))
if spec.satisfies("@5.0.0: +python"):
cmake_args.append(define("LLDB_USE_SYSTEM_SIX", True))
else:
elif spec.satisfies("@:19"):
cmake_args.append(define("LLVM_ENABLE_TERMINFO", False))
if "+gold" in spec:
@@ -961,6 +984,14 @@ def cmake_args(self):
# CMAKE_INSTALL_RPATH to it, which fails. Statically link libc++abi.a
# into libc++.so, linking with -lc++ or -stdlib=libc++ is enough.
define("LIBCXX_ENABLE_STATIC_ABI_LIBRARY", True),
# Make sure that CMake does not pick host-installed tools for the build
# Until #45535 is merged, prevent CMake from delivering incompatible
# system tools like python3.12 to older LLVM versions like LLVM-14:
define("CMAKE_FIND_PACKAGE_PREFER_CONFIG", True),
define("CMAKE_FIND_USE_PACKAGE_ROOT_PATH", False),
define("CMAKE_FIND_USE_SYSTEM_PACKAGE_REGISTRY", False),
define("CMAKE_FIND_USE_PACKAGE_REGISTRY", False),
define("CMAKE_FIND_USE_SYSTEM_PATH", False),
]
)

View File

@@ -0,0 +1,38 @@
From b470cfe805e747204a86eedada1d90aae1ebceec Mon Sep 17 00:00:00 2001
From: Joseph C Wang <joequant@gmail.com>
Date: Sat, 24 Aug 2024 00:36:46 +0800
Subject: [PATCH] add compile flags for gcc14 compilation
This disables pointer mismatch warnings which are now errors in
gcc14.
---
vendor/StdHEP/mcfio/src/GNUmakefile | 2 +-
vendor/StdHEP/src/stdhep/GNUmakefile | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/vendor/StdHEP/mcfio/src/GNUmakefile b/vendor/StdHEP/mcfio/src/GNUmakefile
index 591007abe3..14862ba79e 100644
--- a/vendor/StdHEP/mcfio/src/GNUmakefile
+++ b/vendor/StdHEP/mcfio/src/GNUmakefile
@@ -13,7 +13,7 @@ BINDIR = ../../bin
include ../arch_mcfio
FFLAGS += -std=legacy
-CFLAGS += -Wno-implicit-function-declaration
+CFLAGS += -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
FINC = -I.
CINC = -I. -I/usr/include/tirpc
diff --git a/vendor/StdHEP/src/stdhep/GNUmakefile b/vendor/StdHEP/src/stdhep/GNUmakefile
index b1d7591ef0..d0421788c9 100644
--- a/vendor/StdHEP/src/stdhep/GNUmakefile
+++ b/vendor/StdHEP/src/stdhep/GNUmakefile
@@ -8,7 +8,7 @@ STDHEP_DIR = ../..
#this has been added by MZ
FFLAGS+= -fd-lines-as-code -fPIE
FFLAGS += -std=legacy
-CFLAGS += -Wno-implicit-function-declaration
+CFLAGS += -Wno-implicit-function-declaration -Wno-incompatible-pointer-types
SLIB = $(STDHEP_DIR)/lib
SBIN = $(STDHEP_DIR)/bin

View File

@@ -17,16 +17,42 @@ class Madgraph5amc(MakefilePackage):
event manipulation and analysis."""
homepage = "https://launchpad.net/mg5amcnlo"
url = "https://launchpad.net/mg5amcnlo/2.0/2.7.x/+download/MG5_aMC_v2.7.3.tar.gz"
url = "https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.20.tar.gz"
tags = ["hep"]
version(
"2.8.1",
sha256="acda34414beba201e529b8c03f87f4893fb3f99ed2956a131d60a387e76c5b8c",
url="https://launchpad.net/mg5amcnlo/2.0/2.8.x/+download/MG5_aMC_v2.8.1.tar.gz",
)
version("2.7.3.py3", sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225")
# Launchpad can sometimes be slow to respond
timeout = {"timeout": 60}
with default_args(fetch_options=timeout):
version("3.5.5", sha256="3b4262024cefb8a06082faa9a7ba43484b27a3f2b940a06fbe49c640c5b7ebd7")
version(
"2.9.20",
sha256="09a70e2e8b52e504bcaaa6527d3cec9641b043f5f853f2d11fa3c9970b7efae9",
url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.20.tar.gz",
)
with default_args(deprecated=True):
version(
"2.9.19",
sha256="ec95d40ec8845e57682400ef24a3b769a4d0542e3a849b7c5e10105d0a0f8e61",
url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.19.tar.gz",
)
version(
"2.9.17",
sha256="6781c515ccc2005a953c35dcf9238632b761a937f1832bdfaa5514510b8c5a17",
url="https://launchpad.net/mg5amcnlo/lts/2.9.x/+download/MG5_aMC_v2.9.17.tar.gz",
)
# Older versions have been removed, only the latest LTS versions are available:
version(
"2.8.3.2",
sha256="4077eee75f9255fe627755fe0ac5da5d72f5d5c4f70b6e06e4e564e9c512b215",
url="https://launchpad.net/mg5amcnlo/lts/2.8.x/+download/MG5_aMC_v2.8.3.2.tar.gz",
)
version(
"2.7.3.py3",
sha256="400c26f9b15b07baaad9bd62091ceea785c2d3a59618fdc27cad213816bc7225",
url="https://launchpad.net/mg5amcnlo/lts/2.7.x/+download/MG5_aMC_v2.7.3.py3.tar.gz",
)
variant(
"atlas",
@@ -35,6 +61,7 @@ class Madgraph5amc(MakefilePackage):
)
variant("ninja", default=False, description="Use external installation" + " of Ninja")
variant("collier", default=False, description="Use external installation" + " of Collier")
variant("pythia8", default=False, description="Use external installation of Pythia8")
conflicts("%gcc@10:", when="@2.7.3")
@@ -46,15 +73,21 @@ class Madgraph5amc(MakefilePackage):
depends_on("py-six", when="@2.7.3.py3,2.8.0:", type=("build", "run"))
depends_on("python@3.7:", when="@2.7.3.py3", type=("build", "run"))
depends_on("python@2.7.0:2.8.0,3.7:", when="@2.8.0:", type=("build", "run"))
depends_on("libtirpc")
depends_on("pythia8", when="+pythia8")
patch("array-bounds.patch")
patch("madgraph5amc.patch", level=0)
patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py2+atlas")
patch("gcc14.patch", when="@:3.5.5%gcc@14:")
patch("array-bounds.patch", when="@:2.8.1")
patch("madgraph5amc.patch", level=0, when="@:2.9")
patch("madgraph5amc-2.7.3.atlas.patch", level=0, when="@2.7.3.py3+atlas")
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.0+atlas")
patch("madgraph5amc-2.8.0.atlas.patch", level=0, when="@2.8.1+atlas")
# Fix running from CVMFS on AFS, for example on lxplus at CERN
patch(
"https://patch-diff.githubusercontent.com/raw/mg5amcnlo/mg5amcnlo/pull/96.diff?full_index=1",
sha256="ac6644f1d0ef51d9bdb27a1519261f1cf27d075d39faa278fbc2849acbc5575d",
when="@3:3.5",
)
def edit(self, spec, prefix):
def set_parameter(name, value):
@@ -85,12 +118,6 @@ def build(self, spec, prefix):
with working_dir(join_path("vendor", "CutTools")):
make(parallel=False)
with working_dir(join_path("vendor", "StdHEP")):
for m in ["mcfio/arch_mcfio", "src/stdhep_arch"]:
arch = FileFilter(m)
arch.filter("CC.*=.*", "CC = {0}".format(spack_cc))
make(parallel=False)
if "+atlas" in spec:
if os.path.exists(join_path("bin", "compile.py")):
compile_py = Executable(join_path("bin", "compile.py"))
@@ -120,3 +147,20 @@ def installfile(filename):
join_path("Template", "LO", "Source", ".make_opts"),
join_path(prefix, "Template", "LO", "Source", "make_opts"),
)
# TODO: Fix for reproducibility, see https://github.com/spack/spack/pull/41128#issuecomment-2305777485
if "+pythia8" in spec:
with open("install-pythia8-interface", "w") as f:
f.write(
f"""set pythia8_path {spec['pythia8'].prefix}
install mg5amc_py8_interface
"""
)
mg5 = Executable(join_path(prefix, "bin", "mg5_aMC"))
mg5("install-pythia8-interface")
def url_for_version(self, version):
major = str(version).split(".")[0]
minor = str(version).split(".")[1]
url = f"https://launchpad.net/mg5amcnlo/{major}.0/{major}.{minor}.x/+download/MG5_aMC_v{version}.tar.gz"
return url

View File

@@ -38,6 +38,7 @@ class Mapl(CMakePackage):
version("develop", branch="develop")
version("main", branch="main")
version("2.48.0", sha256="60a0fc4fd82b1a05050666ae478da7d79d86305aff1643a57bc09cb5347323b7")
version("2.47.2", sha256="d4ca384bf249b755454cd486a26bae76944a7cae3a706b9a7c9298825077cac0")
version("2.47.1", sha256="ca3e94c0caa78a91591fe63603d1836196f5294d4baad7cf1d83b229b3a85916")
version("2.47.0", sha256="66c862d2ab8bcd6969e9728091dbca54f1f420e97e41424c4ba93ef606088459")
@@ -146,11 +147,17 @@ class Mapl(CMakePackage):
# Versions later than 3.14 remove FindESMF.cmake
# from ESMA_CMake.
resource(
name="esma_cmake",
git="https://github.com/GEOS-ESM/ESMA_cmake.git",
tag="v3.51.0",
when="@2.48:",
)
resource(
name="esma_cmake",
git="https://github.com/GEOS-ESM/ESMA_cmake.git",
tag="v3.46.0",
when="@2.47:",
when="@2.47",
)
resource(
name="esma_cmake",
@@ -248,6 +255,8 @@ class Mapl(CMakePackage):
depends_on("hdf5")
depends_on("netcdf-c")
depends_on("netcdf-fortran")
# ESMF dependency
depends_on("esmf@8.6.1:", when="@2.45:")
depends_on("esmf@8.6.0", when="@2.44")
depends_on("esmf@8.5:", when="@2.40:2.43")
@@ -257,46 +266,54 @@ class Mapl(CMakePackage):
depends_on("esmf~debug", when="~debug")
depends_on("esmf+debug", when="+debug")
depends_on("gftl@1.13.0:", when="@2.45:")
# udunits dependency from MAPL 2.48 onwards
depends_on("udunits", when="@2.48:")
# gFTL dependency
depends_on("gftl@1.14.0:", when="@2.48:")
depends_on("gftl@1.13.0:", when="@2.45:2.47")
depends_on("gftl@1.11.0:", when="@2.44")
depends_on("gftl@1.10.0:", when="@2.40:2.43")
depends_on("gftl@1.5.5:1.9", when="@:2.39")
# There was an interface change in gftl-shared, so we need to control versions
# MAPL 2.39 and older can use up to 1.6.0 but MAPL 2.40+ needs 1.6.1 or higher
depends_on("gftl-shared@1.8.0:", when="@2.45:")
# gFTL-Shared dependency
depends_on("gftl-shared@1.9.0:", when="@2.48:")
depends_on("gftl-shared@1.8.0:", when="@2.45:2.47")
depends_on("gftl-shared@1.7.0:", when="@2.44")
depends_on("gftl-shared@1.6.1:", when="@2.40:2.43")
depends_on("gftl-shared@1.3.1:1.6.0", when="@:2.39")
# There was an interface change in yaFyaml, so we need to control versions
# MAPL 2.22 and older uses older version, MAPL 2.23+ and higher uses newer
# Note that MAPL 2.40+ no longer require yafyaml as we get yaml support
# via esmf 8.5.0
depends_on("yafyaml@1.0-beta5", when="@:2.22+extdata2g")
# yafyaml dependency
# Note that MAPL 2.40+ no longer directly requires yafyaml as
# extdata2g gets yaml support via esmf 8.5.0, but pflogger will
# bring in yafyaml as a dependency.
depends_on("yafyaml@1.0.4:", when="@2.23:2.39+extdata2g")
depends_on("yafyaml@1.0-beta5", when="@:2.22+extdata2g")
# pFlogger depends on yaFyaml in the same way. MAPL 2.22 and below uses old
# yaFyaml so we need to use old pFlogger, but MAPL 2.23+ uses new yaFyaml
depends_on("pflogger@:1.6 +mpi", when="@:2.22+pflogger")
depends_on("pflogger@1.9.1: +mpi", when="@2.23:2.39+pflogger")
depends_on("pflogger@1.9.5: +mpi", when="@2.40:2.43+pflogger")
# pflogger dependency
depends_on("pflogger@1.15.0: +mpi", when="@2.48:+pflogger")
depends_on("pflogger@1.14.0: +mpi", when="@2.45:2.47+pflogger")
depends_on("pflogger@1.11.0: +mpi", when="@2.44+pflogger")
depends_on("pflogger@1.14.0: +mpi", when="@2.45:+pflogger")
depends_on("pflogger@1.9.5: +mpi", when="@2.40:2.43+pflogger")
depends_on("pflogger@1.9.1: +mpi", when="@2.23:2.39+pflogger")
depends_on("pflogger@:1.6 +mpi", when="@:2.22+pflogger")
# fArgParse v1.4.1 is the first usable version with MAPL
# we now require 1.5.0 with MAPL 2.40+
depends_on("fargparse@1.7.0:", when="@2.45:+fargparse")
# fargparse dependency
depends_on("fargparse@1.8.0:", when="@2.48:+fargparse")
depends_on("fargparse@1.7.0:", when="@2.45:2.47+fargparse")
depends_on("fargparse@1.6.0:", when="@2.44+fargparse")
depends_on("fargparse@1.5.0:", when="@2.40:43+fargparse")
depends_on("fargparse@1.4.1:1.4", when="@:2.39+fargparse")
depends_on("pfunit@4.9: +mpi +fhamcrest", when="@2.45:+pfunit")
# pfunit dependency
depends_on("pfunit@4.10: +mpi +fhamcrest", when="@2.48:+pfunit")
depends_on("pfunit@4.9: +mpi +fhamcrest", when="@2.45:2.47+pfunit")
depends_on("pfunit@4.8: +mpi +fhamcrest", when="@2.44+pfunit")
depends_on("pfunit@4.7.3: +mpi +fhamcrest", when="@2.40:+pfunit")
depends_on("pfunit@4.6.1: +mpi +fhamcrest", when="@2.32:+pfunit")
depends_on("pfunit@4.4.1: +mpi +fhamcrest", when="@2.26:+pfunit")
depends_on("pfunit@4.2: +mpi +fhamcrest", when="@:2.25+pfunit")
depends_on("flap", when="+flap")
depends_on("ecbuild", type="build")
@@ -388,3 +405,14 @@ def setup_build_environment(self, env):
# name is common and used all over the place,
# and if it is set it breaks the mapl build.
env.unset("BASEDIR")
# We can run some tests to make sure the build is working
# but we can only do it if the pfunit variant is enabled
@when("+pfunit")
@run_after("build")
@on_package_attributes(run_tests=True)
def check(self):
with working_dir(self.builder.build_directory):
# The test suite contains a lot of tests. We select only those
# that are cheap. Note this requires MPI and 6 processes
ctest("--output-on-failure", "-L", "ESSENTIAL")

View File

@@ -19,6 +19,7 @@ class Mimalloc(CMakePackage):
version("dev-slice", branch="dev-slice")
version("dev", branch="dev")
version("master", branch="master")
version("2.1.7", sha256="0eed39319f139afde8515010ff59baf24de9e47ea316a315398e8027d198202d")
version("2.1.2", sha256="2b1bff6f717f9725c70bf8d79e4786da13de8a270059e4ba0bdd262ae7be46eb")
version("2.1.1", sha256="38b9660d0d1b8a732160191609b64057d8ccc3811ab18b7607bc93ca63a6010f")
version("2.1.0", sha256="86e5e53e38bace59a9eb20d27e7bd7c5f448cb246a887d4f99478fa4809731fc")
@@ -36,6 +37,7 @@ class Mimalloc(CMakePackage):
depends_on("cxx", type="build")
depends_on("cmake@3.0:", type="build")
conflicts("^cmake@:3.17", when="@2.1.7:")
libs_values = ("shared", "static", "object")
variant(

View File

@@ -16,6 +16,7 @@ class Mold(CMakePackage):
license("MIT")
version("2.34.0", sha256="6067f41f624c32cb0f4e959ae7fabee5dd71dd06771e2c069c2b3a6a8eca3c8c")
version("2.33.0", sha256="37b3aacbd9b6accf581b92ba1a98ca418672ae330b78fe56ae542c2dcb10a155")
version("2.32.1", sha256="f3c9a527d884c635834fe7d79b3de959b00783bf9446280ea274d996f0335825")
version("2.32.0", sha256="4b7e4146ea0f52be9adae8b417399f3676a041e65b55e3f25f088120d30a320b")

View File

@@ -69,6 +69,11 @@ class MpasModel(MakefilePackage):
depends_on("mpi")
depends_on("parallelio")
conflicts(
"%oneapi@:2024.1",
msg="ifx internal compiler error triggered by maps-model fixed in oneapi@2024.2",
)
patch("makefile.patch", when="@7.0")
parallel = False
@@ -114,7 +119,7 @@ def target(self, model, action):
cppflags.append("-DUNDERSCORE")
elif satisfies("%fj"):
fflags.extend(["-Free", "-Fwide", "-CcdRR8"])
elif satisfies("%intel"):
elif satisfies("%intel") or satisfies("%oneapi"):
fflags.extend(["-convert big_endian", "-FR"])
if satisfies("precision=double"):
fflags.extend(["-r8"])

View File

@@ -22,6 +22,7 @@ class Ngspice(AutotoolsPackage):
# Master version by default adds the experimental adms feature
version("master", branch="master")
version("43", sha256="14dd6a6f08531f2051c13ae63790a45708bd43f3e77886a6a84898c297b13699")
version("42", sha256="737fe3846ab2333a250dfadf1ed6ebe1860af1d8a5ff5e7803c772cc4256e50a")
version("41", sha256="1ce219395d2f50c33eb223a1403f8318b168f1e6d1015a7db9dbf439408de8c4")
version("40", sha256="e303ca7bc0f594e2d6aa84f68785423e6bf0c8dad009bb20be4d5742588e890d")
@@ -175,3 +176,7 @@ def flag_handler(self, name, flags):
if "debug=yes" in self.spec:
flags.append("-g")
return (None, None, flags)
def setup_run_environment(self, env):
if "build=lib" in self.spec:
env.prepend_path("LD_LIBRARY_PATH", self.prefix.lib)

View File

@@ -21,6 +21,16 @@
# - package key must be in the form '{os}-{arch}' where 'os' is in the
# format returned by platform.system() and 'arch' by platform.machine()
_versions = {
"24.9": {
"Linux-aarch64": (
"8d900f798ef806c64993fd4fedf2c2c812dd1ccdbac2a0d33fabcd0cd36f19cf",
"https://developer.download.nvidia.com/hpc-sdk/24.9/nvhpc_2024_249_Linux_aarch64_cuda_multi.tar.gz",
),
"Linux-x86_64": (
"30c493350cf67481e84cea60a3a869e01fa0bcb71df8e898266273fbdf0a7f26",
"https://developer.download.nvidia.com/hpc-sdk/24.9/nvhpc_2024_249_Linux_x86_64_cuda_multi.tar.gz",
),
},
"24.7": {
"Linux-aarch64": (
"256ae392ed961162f3f6dc633498db2b68441103a6192f5d4a1c18fa96e992e7",

View File

@@ -14,6 +14,10 @@ class Ocaml(Package):
url = "https://caml.inria.fr/pub/distrib/ocaml-4.06/ocaml-4.06.0.tar.gz"
maintainers("scemama")
version("5.2.0", sha256="3a7b5fb6d81bb42bbda84aadf5d84ff8bcbb149988087e7863bf5c2f4b27b187")
version("5.1.1", sha256="33b8c1df88700ba1f5123aa4bdbc7a125482feafc77e5081ef1725fddf290be1")
version("5.1.0", sha256="5e91492d87b193728a0729122b679039c73e75820dcf2724a31b262390d210c2")
version("5.0.0", sha256="969e1f7939736d39f2af533cd12cc64b05f060dbed087d7b760ee2503bfe56de")
version("4.13.1", sha256="66a5353c5e7b33a8981446e857657aad45a3b82080ea5c67d4baa434eacfcf5f")
version("4.12.0", sha256="9825e5903b852a7a5edb71a1ed68f5d5d55d6417e2dda514dda602bc6efeed7b")
version("4.11.0", sha256="b5bd04bf794a676389b167633f01f8275acdd853149b137f7575f2c2ddef1377")

View File

@@ -7,41 +7,44 @@
from spack.package import *
class Ollama(GoPackage):
class Ollama(GoPackage, CudaPackage):
"""Run Llama 2, Code Llama, and other models. Customize and create your own."""
homepage = "https://ollama.com"
git = "https://github.com/ollama/ollama.git"
maintainers("teaguesterling")
maintainers("teaguesterling", "brettviren")
# We're using commit IDs because the `go generate` process will fail for some
# dependencies that expect to be within a git repo. This is also an issue with
# cached downloads, but I don't know how to fix that yet
version("0.1.31", commit="dc011d16b9ff160c0be3829fc39a43054f0315d0", submodules=True)
# This is the last verified non-preview version as of 20240413
version(
"0.1.30",
commit="756c2575535641f1b96d94b4214941b90f4c30c7",
submodules=True,
preferred=True,
)
# A shell script is run by `go generate` which assumes source is in a git
# repo. So we must use git VCS and not tarballs and defeat source caching.
with default_args(submodules=True, no_cache=True):
version("0.3.9", commit="a1cef4d0a5f31280ea82b350605775931a6163cb")
version("0.1.31", commit="dc011d16b9ff160c0be3829fc39a43054f0315d0")
# This is the last verified non-preview version as of 20240413
version("0.1.30", commit="756c2575535641f1b96d94b4214941b90f4c30c7")
depends_on("c", type="build") # generated
depends_on("cxx", type="build") # generated
license("MIT", checked_by="teaguesterling")
depends_on("cmake", type="build")
depends_on("go", type="build")
depends_on("gcc", type="build")
depends_on("cmake@3.24:", type="build")
depends_on("go@1.4.0:", type="build")
depends_on("git", type="build")
depends_on("ccache", type="build")
class GoBuilder(spack.build_systems.go.GoBuilder):
phases = ("generate", "build", "install")
def setup_build_environment(self, env):
if self.spec.satisfies("+cuda"):
# These variables are consumed by gen_linux.sh which is called by
# "go generate".
cuda_prefix = self.spec["cuda"].prefix
env.set("CUDACXX", cuda_prefix.bin.nvcc)
env.set("CUDA_LIB_DIR", cuda_prefix.lib)
env.set("CMAKE_CUDA_ARCHITECTURES", spec.variants["cuda_arch"].value)
@property
def generate_args(self):
"""Arguments for ``go generate``."""

View File

@@ -19,6 +19,11 @@ class OmegaH(CMakePackage, CudaPackage):
maintainers("cwsmith")
tags = ["e4s"]
version("main", branch="main")
version(
"scorec.10.8.5",
commit="62026fc305356abb5e02a9fce3fead9cf5077fbe",
git="https://github.com/SCOREC/omega_h.git",
)
version(
"scorec.10.7.0",
commit="0e5de8618c3370f702e08c1b1af476dbbc118892",
@@ -75,6 +80,12 @@ class OmegaH(CMakePackage, CudaPackage):
when="@scorec.10.1.0:",
msg="Thrust is broken in CUDA = 11.2.* see https://github.com/sandialabs/omega_h/issues/366",
)
conflicts(
"^cuda@:11.3",
when="@scorec.10.8.5:",
msg="see https://github.com/SCOREC/omega_h/issues/66",
)
# the sandia repo has a fix for cuda > 11.2 support
# see github.com/sandialabs/omega_h/pull/373
conflicts(
@@ -163,7 +174,7 @@ def flag_handler(self, name, flags):
def test_mesh(self):
"""test construction, adaptation, and conversion of a mesh"""
if self.spec.satisfies("@:9.34.0"):
if self.spec.satisfies("@:9.34.0") and not self.spec.satisfies("@:scorec"):
raise SkipTest("Package must be installed as version 9.34.1 or later")
with test_part(self, "test_mesh_create", purpose="mesh construction"):

View File

@@ -0,0 +1,24 @@
From 0672d33d7c449fe75b0be5d476d1151b26e39b99 Mon Sep 17 00:00:00 2001
From: Afzal Patel <Afzal.Patel@amd.com>
Date: Thu, 5 Sep 2024 14:29:36 +0000
Subject: [PATCH] Remove install for VERSION.sha
---
CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 05aac32..9cf588a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -278,7 +278,6 @@ install(
# support files and version info
install(
FILES src/argparser.py src/config.py src/omniperf_base.py src/roofline.py VERSION
- VERSION.sha
DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}/${PROJECT_NAME}
COMPONENT main)
# src/omniperf_analyze
--
2.43.5

View File

@@ -0,0 +1,49 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class Omniperf(CMakePackage):
"""Advanced Profiling and Analytics for AMD Hardware"""
homepage = "https://github.com/ROCm/omniperf"
git = "https://github.com/ROCm/omniperf.git"
url = "https://github.com/ROCm/omniperf/archive/refs/tags/rocm-6.2.1.tar.gz"
tags = ["rocm"]
maintainers("afzpatel", "srekolam", "renjithravindrankannath")
license("MIT")
version("6.2.1", sha256="c14cb73b9fe17a3cca31489a73e8ea49cb278093f8d64c433b1bac387445074a")
depends_on("python@3.8:")
depends_on("py-pip", type="run")
depends_on("py-astunparse@1.6.2", type=("build", "run")) # wants exact version
depends_on("py-colorlover", type=("build", "run"))
depends_on("py-pyyaml")
depends_on("py-matplotlib")
depends_on("py-pandas")
depends_on("py-pymongo")
depends_on("py-tabulate")
depends_on("py-tqdm")
depends_on("py-kaleido")
depends_on("py-plotille")
depends_on("py-dash-svg", type=("build", "run"))
depends_on("py-dash", type=("build", "run"))
depends_on("py-dash-bootstrap-components", type=("build", "run"))
# VERSION.sha is not in the auto-generated ROCm release tarball
patch("0001-remove-VERSION.sha-install.patch")
def cmake_args(self):
args = [self.define("ENABLE_TESTS", self.run_tests)]
return args
@run_after("install")
def after_install(self):
touch(join_path(self.spec.prefix.libexec.omniperf, "VERSION.sha"))

View File

@@ -18,6 +18,11 @@ class Opam(AutotoolsPackage):
maintainers("scemama")
version("2.2.1", sha256="07ad3887f61e0bc61a0923faae16fcc141285ece5b248a9e2cd4f902523cc121")
version("2.2.0", sha256="39334f36adbe280683487cf204b7b0642080fc5965747f7d6f7cc7b83cd7a192")
version("2.1.6", sha256="d2af5edc85f552e0cf5ec0ddcc949d94f2dc550dc5df595174a06a4eaf8af628")
version("2.1.5", sha256="09f8d9e410b2f5723c2bfedbf7970e3b305f5017895fcd91759f05e753ddcea5")
version("2.1.4", sha256="1643609f4eea758eb899dc8df57b88438e525d91592056f135e6e045d0d916cb")
version("2.1.3", sha256="cb2ab00661566178318939918085aa4b5c35c727df83751fd92d114fdd2fa001")
version("2.0.6", sha256="7c4bff5e5f3628ad00c53ee1b044ced8128ffdcfbb7582f8773fb433e12e07f4")
version("2.0.5", sha256="776c7e64d6e24c2ef1efd1e6a71d36e007645efae94eaf860c05c1929effc76f")
@@ -36,10 +41,18 @@ class Opam(AutotoolsPackage):
depends_on("ocaml@:4.09.0", type="build", when="@:1.2.2")
depends_on("ocaml", type="build", when="@2.0.0:")
# While this package is a makefile package, 'make' is really only used to
# call the locally built copy of dune, which is itself parallel, so there's
# no sense in calling make with >1 job.
# See: ocaml/opam#3585 spack/spack#46535
parallel = False
sanity_check_is_file = ["bin/opam"]
@property
def build_directory(self):
return self.stage.source_path
@when("@:1.2.2")
def setup_build_environment(self, env):
"""In OCaml <4.06.1, the default was -safe-string=0, and this has
@@ -52,8 +65,27 @@ def setup_build_environment(self, env):
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/opam.rb
env.set("OCAMLPARAM", "safe-string=0,_") # OCaml 4.06.0 compat
def configure(self, spec, prefix):
args = ["--prefix={0}".format(prefix)]
with when("@:2.2"):
# NOTE: The config script really wants the vendored third party
# libraries to live in the <source prefix>/src_ext directory, not
# in the build directory when this flag is enabled. This is why the
# build directory must be set to the source path above.
args.append("--with-vendored-deps")
return configure(*args)
def build(self, spec, prefix):
make("lib-ext")
# https://github.com/dbuenzli/cmdliner/issues/34#issuecomment-145236209
if spec.satisfies("@:2.1"):
make("lib-ext")
make()
if spec.satisfies("@:1.2.2"):
make("man")
def install(self, spec, prefix):
make("install")

View File

@@ -264,6 +264,8 @@ class Openblas(CMakePackage, MakefilePackage):
msg="Visual Studio does not support OpenBLAS dynamic dispatch features",
)
conflicts("target=x86_64_v4:", when="%intel@2021")
depends_on("perl", type="build")
build_system("makefile", "cmake", default="makefile")
@@ -542,6 +544,9 @@ def make_defs(self):
if self.spec.satisfies("+bignuma"):
make_defs.append("BIGNUMA=1")
if not self.spec.satisfies("target=x86_64_v4:"):
make_defs.append("NO_AVX512=1")
# Avoid that NUM_THREADS gets initialized with the host's number of CPUs.
if self.spec.satisfies("threads=openmp") or self.spec.satisfies("threads=pthreads"):
make_defs.append("NUM_THREADS=512")

View File

@@ -492,6 +492,7 @@ class Opencv(CMakePackage, CudaPackage):
with when("+hdf"):
depends_on("hdf5")
depends_on("mpi", when="^hdf5+mpi")
with when("+hfs"):
with when("+cuda"):

View File

@@ -481,7 +481,7 @@ class Openmpi(AutotoolsPackage, CudaPackage):
)
# Additional support options
variant("atomics", default=False, description="Enable built-in atomics")
variant("atomics", default=True, description="Enable built-in atomics")
variant("java", default=False, when="@1.7.4:", description="Build Java support")
variant("static", default=False, description="Build static libraries")
variant("sqlite3", default=False, when="@1.7.3:1", description="Build SQLite3 support")

View File

@@ -3,6 +3,7 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.hooks.sbang import filter_shebang
from spack.package import *
@@ -15,8 +16,9 @@ class Parallel(AutotoolsPackage, GNUMirrorPackage):
homepage = "https://www.gnu.org/software/parallel/"
gnu_mirror_path = "parallel/parallel-20220522.tar.bz2"
license("GPL-3.0-or-later")
license("GPL-3.0-or-later", checked_by="wdconinc")
version("20240822", sha256="d7bbd95b7631980b172be04cbd2138d5f7d8c063d6da5ad8f9f70dfd88c8309d")
version("20220522", sha256="bb6395f8d964e68f3bdb26a764d3c48b69bc5b759a92ac3ab2bd1895c7fa8c1f")
version("20220422", sha256="96e4b73fff1302fc141a889ae43ab2e93f6c9e86ac60ef62ced02dbe70b73ca7")
version("20220322", sha256="df93ccf6a9f529ad2126b7042aef0486603e938c77b405939c41702d38a4e6d8")
@@ -49,3 +51,6 @@ def filter_sbang(self):
substitute = f"#!{perl}"
files = ["parallel", "niceload", "parcat", "sql"]
filter_file(match, substitute, *files, **kwargs)
# Since scripts are run during installation, we need to add sbang
for file in files:
filter_shebang(file)

View File

@@ -32,6 +32,7 @@ class Plumed(AutotoolsPackage):
version("master", branch="master")
version("2.9.2", sha256="301fbc958374f81d9b8c7a1eac73095f6dded52cce73ce33d64bdbebf51ac63d")
version("2.9.1", sha256="e24563ad1eb657611918e0c978d9c5212340f128b4f1aa5efbd439a0b2e91b58")
version("2.9.0", sha256="612d2387416b5f82dd8545709921440370e144fd46cef633654cf0ee43bac5f8")

View File

@@ -20,6 +20,7 @@ class Podio(CMakePackage):
tags = ["hep", "key4hep"]
version("master", branch="master")
version("1.1", sha256="2cb5040761f3da4383e1f126da25d68e99ecd8398e0ff12e7475a3745a7030a6")
version("1.0.1", sha256="915531a2bcf638011bb6cc19715bbc46d846ec8b985555a1afdcd6abc017e21b")
version("1.0", sha256="491f335e148708e387e90e955a6150e1fc2e01bf6b4980b65e257ab0619559a9")
version("0.99", sha256="c823918a6ec1365d316e0a753feb9d492e28903141dd124a1be06efac7c1877a")

View File

@@ -9,10 +9,11 @@
class PyAltair(PythonPackage):
"""Declarative statistical visualization library for Python"""
pypi = "altair/altair-5.2.0.tar.gz"
pypi = "altair/altair-5.4.1.tar.gz"
license("BSD-3-Clause")
version("5.4.1", sha256="0ce8c2e66546cb327e5f2d7572ec0e7c6feece816203215613962f0ec1d76a82")
version("5.2.0", sha256="2ad7f0c8010ebbc46319cc30febfb8e59ccf84969a201541c207bc3a4fa6cf81")
version("5.1.2", sha256="e5f52a71853a607c61ce93ad4a414b3d486cd0d46ac597a24ae8bd1ac99dd460")
version("5.1.1", sha256="ad6cd6983c8db69a34dd68e42653f6172b7fc3775b7190005107f1b4fc60d64d")
@@ -23,6 +24,10 @@ class PyAltair(PythonPackage):
version("4.2.1", sha256="4939fd9119c57476bf305af9ca0bd1aa7779b2450b874d3623660e879d0fcad1")
version("4.2.0", sha256="d87d9372e63b48cd96b2a6415f0cf9457f50162ab79dc7a31cd7e024dd840026")
variant("pandas", default=True, description="Enable pandas support")
conflicts("~pandas", when="@:5.3.0")
depends_on("python@3.7:", type=("build", "run"))
depends_on("py-setuptools@40.6:", type="build", when="@:4")
depends_on("py-entrypoints", type=("build", "run"), when="@2.0.0:4")
@@ -30,11 +35,15 @@ class PyAltair(PythonPackage):
depends_on("py-hatchling", type=("build"), when="@5.0.0:")
depends_on("py-importlib-metadata", type=("build", "run"), when="@5.0.0:5.0")
depends_on("py-typing-extensions@4.0.1:", type=("build", "run"), when="@5.0.0: ^python@:3.10")
depends_on(
"py-typing-extensions@4.0.1:", type=("build", "run"), when="@5.0.0:5.3.0 ^python@:3.10"
)
depends_on("py-typing-extensions@4.10.0:", type=("build", "run"), when="@5.4.0: ^python@:3.13")
depends_on("py-jinja2", type=("build", "run"))
depends_on("py-jsonschema@3.0.0:", type=("build", "run"))
depends_on("py-numpy", type=("build", "run"))
depends_on("py-pandas@0.18:", type=("build", "run"))
depends_on("py-pandas@0.25:", type=("build", "run"), when="@5.1.0:")
depends_on("py-toolz", type=("build", "run"))
depends_on("py-numpy", type=("build", "run"), when="+pandas")
depends_on("py-pandas@0.18:", type=("build", "run"), when="+pandas")
depends_on("py-pandas@0.25:", type=("build", "run"), when="@5.1.0:+pandas")
depends_on("py-toolz", type=("build", "run"), when="@:5.3.0")
depends_on("py-packaging", type=("build", "run"), when="@5.1.0:")
depends_on("py-narwhals@1.5.2:", type=("build", "run"), when="@5.4.0:")

View File

@@ -0,0 +1,45 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyArch(PythonPackage):
"""Autoregressive Conditional Heteroskedasticity (ARCH) and other tools
for financial econometrics, written in Python (with Cython and/or Numba
used to improve performance)"""
homepage = "https://pypi.org/project/arch"
pypi = "arch/arch-7.0.0.tar.gz"
git = "https://github.com/bashtage/arch.git"
maintainers("climbfuji")
license("NCSA", checked_by="climbfuji")
version("7.0.0", sha256="353c0dba5242287b8b6b587a70250d788436630bf3b7ef6106f577e45d1ec247")
variant("numba", default=False, description="Enable numba backend")
variant("tutorial", default=True, description="Include dependencies for online tutorials")
depends_on("python@3.9:", type=("build", "run"))
depends_on("py-setuptools@0.61:", type="build")
depends_on("py-setuptools-scm@8.0.3:8 +toml", type="build")
depends_on("py-cython@3.0.10:", type="build")
# https://github.com/bashtage/arch/blob/9ced09e2566c0ebcad962d2441b1e79e2aaa7c9f/pyproject.toml#L59
# "numpy>=2.0.0rc1,<3" ???
# https://github.com/bashtage/arch/blob/9ced09e2566c0ebcad962d2441b1e79e2aaa7c9f/requirements.txt#L1
# numpy>=1.22.3 ???
depends_on("py-numpy@1.22.3", type=("build", "run"))
depends_on("py-scipy@1.8:", type="run")
depends_on("py-pandas@1.4:", type="run")
depends_on("py-statsmodels@0.12:", type="run")
depends_on("py-matplotlib@3:", type="run")
depends_on("py-numba@0.49:", type="run", when="+numba")
# Note. py-arch does not depend on py-pandas-datareader,
# but all examples in the py-arch documentation use it.
depends_on("py-pandas-datareader@0.10:", type="run", when="+tutorial")

View File

@@ -18,6 +18,7 @@ class PyContourpy(PythonPackage):
version("1.0.7", sha256="d8165a088d31798b59e91117d1f5fc3df8168d8b48c4acc10fc0df0d0bdbcc5e")
version("1.0.5", sha256="896631cd40222aef3697e4e51177d14c3709fda49d30983269d584f034acc8a4")
depends_on("py-pybind11", type=("build", "link"))
depends_on("cxx", type="build")
with default_args(type="build"):

View File

@@ -0,0 +1,22 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyDashBootstrapComponents(PythonPackage):
"""Bootstrap themed components for use in Plotly Dash"""
homepage = "https://dash-bootstrap-components.opensource.faculty.ai/"
pypi = "dash_bootstrap_components/dash_bootstrap_components-1.6.0.tar.gz"
git = "https://github.com/facultyai/dash-bootstrap-components/"
license("Apache-2.0")
version("1.6.0", sha256="960a1ec9397574792f49a8241024fa3cecde0f5930c971a3fc81f016cbeb1095")
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-setuptools", type="build")

View File

@@ -0,0 +1,19 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyDashSvg(PythonPackage):
"""SVG support library for Plotly/Dash"""
homepage = "https://github.com/stevej2608/dash-svg"
pypi = "dash_svg/dash_svg-0.0.12.tar.gz"
license("MIT")
version("0.0.12", sha256="a7115bf437d770b822c2dd53b9d9a981210619b7d17c925cbee04905fc761b4e")
depends_on("py-setuptools", type="build")

View File

@@ -0,0 +1,26 @@
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.package import *
class PyDash(PythonPackage):
"""Dash is the most downloaded, trusted Python framework
for building ML & data science web apps."""
homepage = "https://dash.plotly.com/"
pypi = "dash/dash-2.17.1.tar.gz"
git = "https://github.com/plotly/dash.git"
license("MIT")
version("2.17.1", sha256="ee2d9c319de5dcc1314085710b72cd5fa63ff994d913bf72979b7130daeea28e")
depends_on("python@3.8:", type=("build", "run"))
depends_on("py-setuptools", type="build")
depends_on("py-typing-extensions")
depends_on("py-flask")
depends_on("py-plotly")
depends_on("py-importlib-metadata")

View File

@@ -15,7 +15,12 @@ class PyDnspython(PythonPackage):
license("ISC")
version("2.6.1", sha256="e8f0f9c23a7b7cb99ded64e6c3a6f3e701d78f50c55e002b839dea7225cff7cc")
version("2.2.1", sha256="0f7569a4a6ff151958b64304071d370daa3243d15941a7beedf0c9fe5105603e")
depends_on("python@3.6:3", type=("build", "run"))
depends_on("py-poetry-core", type="build")
depends_on("python@3.8:", type=("build", "run"), when="@2.5:")
depends_on("python@3.7:", type=("build", "run"), when="@2.4:")
depends_on("python@3.6:3", type=("build", "run"), when="@:2.3")
depends_on("py-poetry-core", type="build", when="@:2.3")
depends_on("py-hatchling@1.17:", type="build", when="@2.4:")
depends_on("py-hatchling@1.21:", type="build", when="@2.6:")

View File

@@ -14,9 +14,11 @@ class PyHatchVcs(PythonPackage):
license("MIT")
version("0.4.0", sha256="093810748fe01db0d451fabcf2c1ac2688caefd232d4ede967090b1c1b07d9f7")
version("0.3.0", sha256="cec5107cfce482c67f8bc96f18bbc320c9aa0d068180e14ad317bbee5a153fee")
version("0.2.0", sha256="9913d733b34eec9bb0345d0626ca32165a4ad2de15d1ce643c36d09ca908abff")
depends_on("python@3.8:", when="@0.4:", type=("build", "run"))
depends_on("py-hatchling@1.1:", when="@0.3:", type=("build", "run"))
depends_on("py-hatchling@0.21.0:", type=("build", "run"))
depends_on("py-setuptools-scm@6.4.0:", type=("build", "run"))

View File

@@ -22,6 +22,8 @@ class PyIpython(PythonPackage):
license("BSD-3-Clause")
version("8.27.0", sha256="0b99a2dc9f15fd68692e898e5568725c6d49c527d36a9fb5960ffbdeaa82ff7e")
version("8.26.0", sha256="1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c")
version("8.25.0", sha256="c6ed726a140b6e725b911528f80439c534fac915246af3efc39440a6b0f9d716")
version("8.24.0", sha256="010db3f8a728a578bb641fdd06c063b9fb8e96a9464c63aec6310fbcb5e80501")
version("8.23.0", sha256="7468edaf4f6de3e1b912e57f66c241e6fd3c7099f2ec2136e239e142e800274d")

Some files were not shown because too many files have changed in this diff Show More