Compare commits

...

76 Commits

Author SHA1 Message Date
Chris Marsh
eb36bb2a8f netcdf-c package: correct library names (#42878)
An incorrect hdf5 library name is added to pkconfig and CMake config
files when netcdf-c is built with CMake.
2024-03-02 11:05:59 -08:00
dependabot[bot]
8dcf860888 build(deps): bump codecov/codecov-action from 4.0.2 to 4.1.0 (#42860)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 4.0.2 to 4.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](0cfda1dd0a...54bcd8715e)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  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-03-02 10:39:09 -08:00
Arne Becker
a5b7cb6e6f perl-test-xml-simple and deps: new packages (#42873)
* perl-test-longstring: New package

Adds Test::LongString

* perl-test-xml-simple: new package

- Adds perl-test-xml-simple
2024-03-02 10:37:35 -08:00
Arne Becker
34c0bfefa6 perl-test-xml and deps: new packages (#42870)
- Adds perl-test-xml and dependency:
- Adds perl-xml-semanticdiff
2024-03-02 10:35:56 -08:00
Elliott Slaughter
ea5db048f3 legion: Add 23.09.0 and 23.12.0, remove control_replication. (#42915)
* legion: Add 23.09.0 and 23.12.0, remove control_replication.

The branch control_replication has been merged to master and should no
longer be used.

* flecsi: Switch to Legion master branch.

Legion control_replication has been merged to master.

* Fix Legion 23.09.0 and 23.12.0 build for ROCm 6.
2024-03-02 10:32:44 -08:00
Adam J. Stewart
e68a17f2c6 Bazel: fix patching of 4.2.4 (#42938) 2024-03-02 10:29:18 -08:00
Brian Vanderwende
4af9ec3d8a Add ncvis package and add option to wxwidgets (#38204)
* Add ncvis and opengl option for wxwidgets

* Style fixes for ncvis

* Replace in with satisfies for opengl constraint

Co-authored-by: Alec Scott <alec@bcs.sh>

---------

Co-authored-by: Alec Scott <alec@bcs.sh>
2024-03-02 10:26:36 -08:00
Zachary Newell
eb90e2c894 Added NCCL version 2.20.3-1 (#42951)
Added NCCL version 2.20.3-1 to the package.py. I tested compiling it and running nccl-tests on Ubuntu 22.04.
2024-03-02 06:59:17 -06:00
Mosè Giordano
763f444d63 py-numba: add tbb variant (#42930)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2024-03-01 02:03:39 -07:00
Chris Marsh
6614c4322d Seacas: fix patch hash (#42934) 2024-03-01 01:48:36 -07:00
Chris Marsh
983422facf libogg does not build a shared libary with cmake (#42877)
* when built with cmake, libogg does not build with a shared libary by default. This resolves that

* spack style fixes

* Clean up imports

* enforce +pic when +shared
2024-02-29 21:12:27 -06:00
Ye Luo
d0bdd66238 Add Quantum ESPRESSO 7.3.1 (#42927) 2024-02-29 20:08:25 -07:00
Tim Fuller
3a50d32299 Show extension commands with spack -h (#41726)
* Execute `args.help` after setting main options so that extension commands will show with `spack -h`

---------

Co-authored-by: psakievich <psakiev@sandia.gov>
2024-02-29 16:51:42 -08:00
psakievich
50ee3624c0 Support environment variable expansion inside module projections (#42917) 2024-02-29 16:49:37 -08:00
afzpatel
2840cb54b5 initial commit to fix ck gpu targets cmake arg (#42924) 2024-02-29 15:48:07 -06:00
eugeneswalker
5c482d0d7e reduce size of e4s to deal with large rebuild artifact (#42884) 2024-02-29 13:44:01 -07:00
joscot-linaro
f3ad990b55 linaro-forge: added 23.1.2 version (#42922) 2024-02-29 12:28:03 -08:00
Victoria Cherkas
977603cd96 Update fdb package.py with libs (#42874)
* Update fdb package.py with libs
* Formatting
2024-02-29 12:23:37 -08:00
Wanlin Wang
1f919255fd Update riscv-gnu-toolchain package.py (#42893)
* Update package.py
  1. add one compiler type named 'musl'
  2. add a variant name 'multilib'
  3. add a variant name 'cmodel'
* Added one compiler type named 'musl'.
  Added a variant named 'multilib'.
  Added a variant named 'cmodel'.
  Added several versions.
* aarch64 is not supported.
2024-02-29 12:11:40 -08:00
Adam J. Stewart
5140a9b6a3 py-keras: add v3.0.5 (#42697) 2024-02-29 17:56:03 +01:00
Chris Marsh
1732ad0af4 vtk: Update proj dependency (#42797)
* Update proj dependency to enable newer proj usage

* Allow for any proj version
2024-02-29 06:07:21 -08:00
dependabot[bot]
e7510ae292 build(deps): bump docker/setup-buildx-action from 3.0.0 to 3.1.0 (#42883)
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.0.0 to 3.1.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f95db51fdd...0d103c3126)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  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-02-29 14:48:24 +01:00
Harmen Stoppels
0c224ba4a7 libevent: remove autotools build deps again (#42908)
The deps were added in #40945 to make it work on macOS 11, because the
old configure scripts only detect macOS 10. Apparently people reported the
autoreconf script caused issues, later fixed in #41057. However, also
with that fix, things are incorrect, cause people now report:

```
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.7
libtool: and run autoconf again.
```

HOWEVER, all this is unnecessary, because the underlying issue was
already fixed long ago, it's just that it regressed at some point, but
it's back in place since #41205.
2024-02-29 09:57:21 +01:00
Terry Cojean
86b4a867ef ginkgo: add PAPI SDE support (#39425)
Signed-off-by: Terry Cojean <terry.cojean@kit.edu>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-02-29 06:04:34 +01:00
Arne Becker
6049e5f6eb perl-readonly-xs: new package (#42897)
This adds Readonly::XS. Since this module can not be used by itself, the
Spack package comes with a test override. This anticipates that the perl
builder will one day have a generic standalone module usage test.
2024-02-28 14:27:22 -08:00
Arne Becker
0339690a59 perl-test-json, perl-json-any: New packages (#42896)
* perl-test-json: New package
  Adds Test::JSON
* Adds perl-json-any
2024-02-28 14:25:34 -08:00
Arne Becker
2bae1b7e00 perl-test-xpath: New package (#42895)
Adds Test::XPath
2024-02-28 14:23:41 -08:00
Arne Becker
ae5b605f99 perl-uri-find: New package (#42894)
Adds URI::Find
2024-02-28 14:22:19 -08:00
Arne Becker
35898d94d2 perl-net-cidr-lite: new package (#42898)
* perl-net-cidr-lite: new package
   Adds Net::CIDR::Lite
* Add license
2024-02-28 14:20:52 -08:00
Arne Becker
7e00bd5014 perl-mojolicious: new package (#42899)
Adds Mojolicious
2024-02-28 14:16:36 -08:00
Arne Becker
1f3aefb0a3 perl-cache-memcached and deps: new packages (#42911)
Adds Cache::Memcached and its dependencies.
Installed OK with build-time tests. Added dependencies:
- Cache::Memcached
2024-02-28 14:02:38 -08:00
Harmen Stoppels
d4601d0e53 Unit tests: skip tests that intermittently fail on Windows (#42909) 2024-02-28 14:00:09 -08:00
Tom Payerle
935660e3d5 mysql: explicity cast python command to str in _fix_dtrace_shebang() (#40781)
This should fix issue #40780

We explicitly cast self.spec["python"].command to str in the filter_file
call in _fix_dtrace_shebang to avoid the error
==> Error: TypeError: expected str, bytes or os.PathLike object, not Executable

Not sure why the error is appearing (is it only for specific python versions, etc?),
but the fix should be quite safe.
2024-02-28 13:00:51 -08:00
Alec Scott
17bfc41841 bison: remove unnessisary deps, add variant for colored output (#42209) 2024-02-28 12:32:40 -08:00
Arne Becker
49b38e3a78 perl-yaml-syck: New package (#42892)
Adds YAML::Syck
2024-02-28 12:26:09 -08:00
Arne Becker
66f078ff84 perl-catalyst-runtime and deps: new packages (#42886)
* perl-catalyst-runtime and deps: new packages
  This add Perl Catalyst::Runtime and its missing dependencies.
  Adds:
  - perl-catalyst-runtime
  - perl-apache-logformat-compiler
  - perl-cgi-simple
  - perl-cgi-struct
  - perl-class-c3-adopt-next
  - perl-cookie-baker
  - perl-data-dump
  - perl-devel-stacktrace-ashtml
  - perl-filesys-notify-simple
  - perl-getopt-long-descriptive
  - perl-hash-multivalue
  - perl-http-body
  - perl-http-entity-parser
  - perl-http-headers-fast
  - perl-http-multipartparser
  - perl-moosex-emulate-class-accessor-fast
  - perl-moosex-getopt
  - perl-moosex-methodattributes
  - perl-moosex-role-parameterized
  - perl-path-class
  - perl-plack
  - perl-plack-middleware-fixmissingbodyinredirect
  - perl-plack-middleware-methodoverride
  - perl-plack-middleware-removeredundantbody
  - perl-plack-middleware-reverseproxy
  - perl-plack-test-externalserver
  - perl-posix-strftime-compiler
  - perl-stream-buffered
  - perl-string-rewriteprefix
  - perl-test-mocktime
  - perl-test-tcp
  - perl-test-time
  - perl-test-trap
  - perl-tree-simple
  - perl-tree-simple-visitorfactory
  - perl-uri-ws
  - perl-www-form-urlencoded
2024-02-28 12:17:45 -08:00
AMD Toolchain Support
304a63507a AOCC: add v4.2.0 (#42891)
Co-authored-by: vijay kallesh <Vijay-teekinavar.Kallesh@amd.com>
2024-02-28 20:24:57 +01:00
Jonas Eschle
c7afc0eb5f Upgrade TensorFlow Probability with newer versions (#42673)
* enh: add newer versions

* enh: add newer versions

* format

* fix typo

* Update package.py

* make jax and TF optional dependencies

* style fix

* remove dependency

* remove old TFP version

* fix:  style
2024-02-28 12:29:23 -06:00
kwryankrattiger
57cde78c56 ParaView Release Candidate 5.12.0-RC3 (#42654) 2024-02-28 09:41:10 -08:00
Arne Becker
b01f6308d5 perl-json-xsand deps: new packages (#42904)
Adds JSON::XS and its deps:
- Canary::Stability
- Types::Serialiser
2024-02-28 09:30:46 -08:00
eugeneswalker
13709bb7b7 e4s: new packages: glvis, laghos (#42847)
* e4s: new packages: glvis, laghos

* gl: require: osmesa

* be explicit: glvis ^llvm so that llvm-amdgpu not chosen

* glvis fails on oneapi stack due to issue 42839
2024-02-28 09:26:53 -08:00
Harmen Stoppels
661ae1f230 versions: simplify list if union not disjoint (#42902)
Spack merges ranges and concrete versions if they have non-empty
intersection. That is not enough for adjacent version ranges.

This commit ensures that disjoint ranges in version lists are simplified
if their union is not disjoint:

```python
"@1.0:2.0,2.1,2.2:3,4:6" # simplifies to "@1.0:6"
```
2024-02-28 16:33:25 +01:00
Sinan
287e1039f5 package_py_systemd_python_improve (#42865)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2024-02-28 07:56:17 -06:00
Jonas Eschle
015dc4ee2e Add package zfit interface (#42666)
* Add package zfit interface

* add maintainer

* [@spackbot] updating style on behalf of jonas-eschle

* Update package.py

* Update package.py

* Update package.py

* [@spackbot] updating style on behalf of jonas-eschle

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Update package.py

---------

Co-authored-by: jonas-eschle <jonas-eschle@users.noreply.github.com>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2024-02-28 07:52:40 -06:00
Axel Huebl
46165982b1 C-Blosc2: Fuzzer Tests (#42881)
The fuzzer tests are a bit flaky and have linker issues on
clang. We generally only should build them in testing.
2024-02-27 21:08:33 -07:00
eugeneswalker
c9a111946e e4s oneapi: remove outdated package preferences (#42875) 2024-02-27 14:35:06 -08:00
renjithravindrankannath
62160021c1 Adding dependency of roctracer-dev and patch in miopen-hip (#42637) 2024-02-27 14:52:47 -07:00
Tom Payerle
3290e2c189 openexr: Add custom libs property (#42274)
Libraries for openexr are named libOpenEXR*.so, etc., so the default libs
handler in spec does not find them.

Add a custom libs property to address this.

Partial fix for #42273

Co-authored-by: payerle <payerle@users.noreply.github.com>
2024-02-27 10:45:29 +01:00
George Young
2a9fc3452a regtools: add new package (#42852)
Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
2024-02-27 10:44:34 +01:00
YI Zeping
2ea8a2e6ae btop: add cmake version restriction (#42835)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-02-27 10:08:22 +01:00
Lydéric Debusschère
fe4a4ddcf9 bazel: allow offline build of major versions 5 and 6 (#41575)
* bazel: allow offline build of major versions 5 and 6; add variant download_data

* bazel: add maintainer LydDeb

* bazel: install offline only; remove variant download_data

* bazel: fix variable name: resource_dico --> resource_dictionary

* bazel: fix style

* bazel: fix the build of version 4

* bazel: add comment about resources

* bazel: access to resource stages with self.stage

* bazel: add except to solve AttributeError: 'Stage' object has no attribute 'resource'

---------

Co-authored-by: LydDeb <lyderic.debusschere@eolen.com>
2024-02-27 03:03:25 -06:00
Juan Miguel Carceller
c45714fd3c delphes: use the same C++ standard as in ROOT (#42816)
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-02-27 09:54:26 +01:00
Juan Miguel Carceller
523d12d9a8 garfieldpp: Add version 5.0 (#42817)
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-02-27 09:54:03 +01:00
Howard Pritchard
5340e0184d Open MPI: adjust pmix dependency for 5.0.x (#42827)
for various reasons had to advance dependency of 5.0.2 to at least
pmix 4.2.4.  5.0.1 and 5.0.0 can also build with 4.2.4 pmix or newer.

related to #42651

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2024-02-27 09:49:29 +01:00
AMD Toolchain Support
bca7698138 openfoam: add mpfr search paths (#42779)
Co-authored-by: Branden Moore <branden.moore@amd.com>
2024-02-27 09:37:48 +01:00
Peter Scheibel
5c26ce5385 skip test which is causing spurious failures on Windows (#42832) 2024-02-27 09:36:10 +01:00
Eisuke Kawashima
02137dda17 eigenexa: add 2.7–2.12 (#38170) 2024-02-27 09:23:08 +01:00
eugeneswalker
4abac88895 e4s ci: use ubuntu 22.04 images (#42843) 2024-02-27 01:12:53 -07:00
stepanvanecek
79c2a55e00 gpuscout: new package (#42761)
Co-authored-by: Stepan Vanecek <stepan@Stepans-MBP.fritz.box>
2024-02-27 09:05:09 +01:00
Carsten Uphoff
71c169293c double-batched: add v0.5.0 (#42850)
Signed-off-by: Carsten Uphoff <carsten.uphoff@intel.com>
2024-02-27 08:59:42 +01:00
Wouter Deconinck
bcc5ded205 dd4hep: new version 1.28 (#42846) 2024-02-27 08:50:01 +01:00
Kensuke WATANABE
379a5d8fa0 root: add dependent package required for build time tests (#42849) 2024-02-27 08:43:08 +01:00
Juan Miguel Carceller
d8c2782949 bdsim: use the same C++ standard as in ROOT, add a patch (#42031)
Co-authored-by: jmcarcell <jmcarcell@users.noreply.github.com>
2024-02-27 08:34:42 +01:00
dependabot[bot]
6dde6ca887 build(deps): bump pytest from 8.0.1 to 8.0.2 in /lib/spack/docs (#42861)
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.0.1 to 8.0.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/8.0.1...8.0.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-27 08:30:03 +01:00
downloadico
8f8c262fb3 picard: add version 3.1.1 (#42862) 2024-02-27 08:29:06 +01:00
afzpatel
93b8e771b6 rocm-gdb: add v6.0.2 (#42855) 2024-02-27 08:22:56 +01:00
Todd Gamblin
48088ee24a refactor: add type annotations and refactor solver conditions (#42081)
Refactoring `SpackSolverSetup` is a bit easier with type annotations, so I started
adding some. This adds annotations for the (many) instance variables on
`SpackSolverSetup` as well as a few other places.

This also refactors `condition()` to reduce redundancy and to allow
`_get_condition_id()` to be called independently of the larger condition
function.


Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2024-02-26 22:26:01 +00:00
Mikael Simberg
c7df258ca6 Update camp missing headers patch to be applied with all compilers (#42857) 2024-02-26 12:30:01 -05:00
Erik Heeren
b8e8fa2dcd py-find-libpython: 0.3.1 (#42853)
* py-find-libpython: 0.3.1

* py-find-libpython: sort versions
2024-02-26 10:07:51 -07:00
Adam J. Stewart
8e885f4eb2 ImageMagick: fewer dependencies on macOS (#42739) 2024-02-26 17:45:29 +01:00
Miranda Mundt
116308fa17 py-pyomo: add v6.7.1 (#42795)
* Update Pyomo spack package for 6.7.1 release

* Apply changes from @adamjstewart

* Update sphinx+Pyomo versions

* Whoops - typo
2024-02-26 10:14:36 -06:00
Adam J. Stewart
5eb4d858cb Update PyTorch ecosystem (#42819) 2024-02-25 19:20:25 -08:00
eugeneswalker
8dd5f36b68 e4s external rocm ci: use ubuntu 22 image with rocm 5.7.1 (#42842)
* e4s external rocm ci: use ubuntu 22 image with rocm 5.7.1

* comment out slate+rocm due to build error
2024-02-25 17:50:56 -08:00
eugeneswalker
e3ce3ab266 e4s ci: add py-mpi4py, py-numba (#42845) 2024-02-25 17:23:39 -08:00
Jeremy Fix
0618cb98d1 py-ipyvuetify: new package (#42836)
* py-ipyvuetify: new package

* Limit py-jupyter-packing version to 0.7.x

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Fix py-jupyterlab version and type

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* Fix py-ipyvue version range to exclude 2

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* rm py-wheel, already considered for PythonPackage

* fix: pynpm only required for build, reorder dependencies as in the pyproject.toml

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2024-02-25 07:34:23 -06:00
Maciej Wójcik
3b4a27ce7b snakemake: new version with plugins (#42713)
* snakemake: add Snakemake 8 with dependencies

* snakemake: add missing description

* Whitespace

* Whitespace

* Whitespace

* Whitespace

* py-conda-inject: add constraint for Python

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-azure-batch: add constraint for Python

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-cluster-generic: add constraint for Python

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake: add upper bound for Python

* py-snakemake-executor-plugin-drmaa: specify dependency type

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-googlebatch: correct dependency version

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-executor-plugin-tes: correct dependency version

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

* py-snakemake-storage-plugin-s3: reorder

* snakemake: remove newly added variants

* snakemake: remove newly added variants

* snakemake: remove newly added variant

* snakemake: update version

* snakemake: update version

* snakemake: whitespace

* py-snakemake-storage-plugin-s3: update version

* snakemake: use newer version

* snakemake: whitespace

* snakemake: update interfaces

* py-snakemake-storage-plugin-gcs: link issue

* snakemake: update versions

---------

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2024-02-25 03:47:38 -07:00
161 changed files with 3631 additions and 701 deletions

View File

@@ -43,7 +43,7 @@ jobs:
. share/spack/setup-env.sh
$(which spack) audit packages
$(which spack) audit externals
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1 # @v2.1.0
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab # @v2.1.0
if: ${{ inputs.with_coverage == 'true' }}
with:
flags: unittests,audits

View File

@@ -96,7 +96,7 @@ jobs:
uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226
uses: docker/setup-buildx-action@0d103c3126aa41d772a8362f6aa67afac040f80c
- name: Log in to GitHub Container Registry
uses: docker/login-action@343f7c4344506bcbf9b4de18042ae17996df046d

View File

@@ -91,7 +91,7 @@ jobs:
UNIT_TEST_COVERAGE: ${{ matrix.python-version == '3.11' }}
run: |
share/spack/qa/run-unit-tests
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
with:
flags: unittests,linux,${{ matrix.concretizer }}
# Test shell integration
@@ -122,7 +122,7 @@ jobs:
COVERAGE: true
run: |
share/spack/qa/run-shell-tests
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
with:
flags: shelltests,linux
@@ -181,7 +181,7 @@ jobs:
SPACK_TEST_SOLVER: clingo
run: |
share/spack/qa/run-unit-tests
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1 # @v2.1.0
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab # @v2.1.0
with:
flags: unittests,linux,clingo
# Run unit tests on MacOS
@@ -216,6 +216,6 @@ jobs:
$(which spack) solve zlib
common_args=(--dist loadfile --tx '4*popen//python=./bin/spack-tmpconfig python -u ./bin/spack python' -x)
$(which spack) unit-test --verbose --cov --cov-config=pyproject.toml --cov-report=xml:coverage.xml "${common_args[@]}"
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
with:
flags: unittests,macos

View File

@@ -33,7 +33,7 @@ jobs:
./share/spack/qa/validate_last_exit.ps1
coverage combine -a
coverage xml
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
with:
flags: unittests,windows
unit-tests-cmd:
@@ -57,7 +57,7 @@ jobs:
./share/spack/qa/validate_last_exit.ps1
coverage combine -a
coverage xml
- uses: codecov/codecov-action@0cfda1dd0a4ad9efc75517f399d859cd1ea4ced1
- uses: codecov/codecov-action@54bcd8715eee62d40e33596ef5e8f0f48dbbccab
with:
flags: unittests,windows
build-abseil:

View File

@@ -6,7 +6,7 @@ python-levenshtein==0.25.0
docutils==0.20.1
pygments==2.17.2
urllib3==2.2.1
pytest==8.0.1
pytest==8.0.2
isort==5.13.2
black==24.2.0
flake8==7.0.0

View File

@@ -950,14 +950,10 @@ def _main(argv=None):
parser.print_help()
return 1
# -h, -H, and -V are special as they do not require a command, but
# all the other options do nothing without a command.
# version is special as it does not require a command or loading and additional infrastructure
if args.version:
print(get_version())
return 0
elif args.help:
sys.stdout.write(parser.format_help(level=args.help))
return 0
# ------------------------------------------------------------------------
# This part of the `main()` sets up Spack's configuration.
@@ -996,6 +992,12 @@ def _main(argv=None):
print_setup_info(*args.print_shell_vars.split(","))
return 0
# -h and -H are special as they do not require a command, but
# all the other options do nothing without a command.
if args.help:
sys.stdout.write(parser.format_help(level=args.help))
return 0
# At this point we've considered all the options to spack itself, so we
# need a command or we're done.
if not args.command:

View File

@@ -566,6 +566,7 @@ class PackageBase(WindowsRPath, PackageViewMixin, metaclass=PackageMeta):
provided: Dict["spack.spec.Spec", Set["spack.spec.Spec"]]
provided_together: Dict["spack.spec.Spec", List[Set[str]]]
patches: Dict["spack.spec.Spec", List["spack.patch.Patch"]]
variants: Dict[str, Tuple["spack.variant.Variant", "spack.spec.Spec"]]
#: By default, packages are not virtual
#: Virtual packages override this attribute

View File

@@ -3,6 +3,8 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import spack.util.path
def get_projection(projections, spec):
"""
@@ -11,7 +13,7 @@ def get_projection(projections, spec):
all_projection = None
for spec_like, projection in projections.items():
if spec.satisfies(spec_like):
return projection
return spack.util.path.substitute_path_variables(projection)
elif spec_like == "all":
all_projection = projection
all_projection = spack.util.path.substitute_path_variables(projection)
return all_projection

View File

@@ -15,7 +15,7 @@
import types
import typing
import warnings
from typing import Callable, Dict, List, NamedTuple, Optional, Sequence, Set, Tuple, Union
from typing import Callable, Dict, Iterator, List, NamedTuple, Optional, Set, Tuple, Type, Union
import archspec.cpu
@@ -258,7 +258,7 @@ def remove_node(spec: spack.spec.Spec, facts: List[AspFunction]) -> List[AspFunc
return list(filter(lambda x: x.args[0] not in ("node", "virtual_node"), facts))
def _create_counter(specs, tests):
def _create_counter(specs: List[spack.spec.Spec], tests: bool):
strategy = spack.config.CONFIG.get("concretizer:duplicates:strategy", "none")
if strategy == "full":
return FullDuplicatesCounter(specs, tests=tests)
@@ -897,35 +897,41 @@ def __iter__(self):
return iter(self.data)
# types for condition caching in solver setup
ConditionSpecKey = Tuple[str, Optional[TransformFunction]]
ConditionIdFunctionPair = Tuple[int, List[AspFunction]]
ConditionSpecCache = Dict[str, Dict[ConditionSpecKey, ConditionIdFunctionPair]]
class SpackSolverSetup:
"""Class to set up and run a Spack concretization solve."""
def __init__(self, tests=False):
self.gen = None # set by setup()
def __init__(self, tests: bool = False):
# these are all initialized in setup()
self.gen: "ProblemInstanceBuilder" = ProblemInstanceBuilder()
self.possible_virtuals: Set[str] = set()
self.assumptions = []
self.declared_versions = collections.defaultdict(list)
self.possible_versions = collections.defaultdict(set)
self.deprecated_versions = collections.defaultdict(set)
self.assumptions: List[Tuple["clingo.Symbol", bool]] = [] # type: ignore[name-defined]
self.declared_versions: Dict[str, List[DeclaredVersion]] = collections.defaultdict(list)
self.possible_versions: Dict[str, Set[GitOrStandardVersion]] = collections.defaultdict(set)
self.deprecated_versions: Dict[str, Set[GitOrStandardVersion]] = collections.defaultdict(
set
)
self.possible_virtuals = None
self.possible_compilers = []
self.possible_oses = set()
self.variant_values_from_specs = set()
self.version_constraints = set()
self.target_constraints = set()
self.default_targets = []
self.compiler_version_constraints = set()
self.post_facts = []
self.possible_compilers: List = []
self.possible_oses: Set = set()
self.variant_values_from_specs: Set = set()
self.version_constraints: Set = set()
self.target_constraints: Set = set()
self.default_targets: List = []
self.compiler_version_constraints: Set = set()
self.post_facts: List = []
# (ID, CompilerSpec) -> dictionary of attributes
self.compiler_info = collections.defaultdict(dict)
self.reusable_and_possible: ConcreteSpecsByHash = ConcreteSpecsByHash()
self.reusable_and_possible = ConcreteSpecsByHash()
self._id_counter = itertools.count()
self._trigger_cache = collections.defaultdict(dict)
self._effect_cache = collections.defaultdict(dict)
self._id_counter: Iterator[int] = itertools.count()
self._trigger_cache: ConditionSpecCache = collections.defaultdict(dict)
self._effect_cache: ConditionSpecCache = collections.defaultdict(dict)
# Caches to optimize the setup phase of the solver
self.target_specs_cache = None
@@ -937,8 +943,8 @@ def __init__(self, tests=False):
self.concretize_everything = True
# Set during the call to setup
self.pkgs = None
self.explicitly_required_namespaces = {}
self.pkgs: Set[str] = set()
self.explicitly_required_namespaces: Dict[str, str] = {}
def pkg_version_rules(self, pkg):
"""Output declared versions of a package.
@@ -1222,6 +1228,38 @@ def variant_rules(self, pkg):
self.gen.newline()
def _get_condition_id(
self,
named_cond: spack.spec.Spec,
cache: ConditionSpecCache,
body: bool,
transform: Optional[TransformFunction] = None,
) -> int:
"""Get the id for one half of a condition (either a trigger or an imposed constraint).
Construct a key from the condition spec and any associated transformation, and
cache the ASP functions that they imply. The saved functions will be output
later in ``trigger_rules()`` and ``effect_rules()``.
Returns:
The id of the cached trigger or effect.
"""
pkg_cache = cache[named_cond.name]
named_cond_key = (str(named_cond), transform)
result = pkg_cache.get(named_cond_key)
if result:
return result[0]
cond_id = next(self._id_counter)
requirements = self.spec_clauses(named_cond, body=body)
if transform:
requirements = transform(named_cond, requirements)
pkg_cache[named_cond_key] = (cond_id, requirements)
return cond_id
def condition(
self,
required_spec: spack.spec.Spec,
@@ -1247,7 +1285,8 @@ def condition(
"""
named_cond = required_spec.copy()
named_cond.name = named_cond.name or name
assert named_cond.name, "must provide name for anonymous conditions!"
if not named_cond.name:
raise ValueError(f"Must provide a name for anonymous condition: '{named_cond}'")
# Check if we can emit the requirements before updating the condition ID counter.
# In this way, if a condition can't be emitted but the exception is handled in the caller,
@@ -1257,35 +1296,19 @@ def condition(
self.gen.fact(fn.pkg_fact(named_cond.name, fn.condition(condition_id)))
self.gen.fact(fn.condition_reason(condition_id, msg))
cache = self._trigger_cache[named_cond.name]
named_cond_key = (str(named_cond), transform_required)
if named_cond_key not in cache:
trigger_id = next(self._id_counter)
requirements = self.spec_clauses(named_cond, body=True, required_from=name)
if transform_required:
requirements = transform_required(named_cond, requirements)
cache[named_cond_key] = (trigger_id, requirements)
trigger_id, requirements = cache[named_cond_key]
trigger_id = self._get_condition_id(
named_cond, cache=self._trigger_cache, body=True, transform=transform_required
)
self.gen.fact(fn.pkg_fact(named_cond.name, fn.condition_trigger(condition_id, trigger_id)))
if not imposed_spec:
return condition_id
cache = self._effect_cache[named_cond.name]
imposed_spec_key = (str(imposed_spec), transform_imposed)
if imposed_spec_key not in cache:
effect_id = next(self._id_counter)
requirements = self.spec_clauses(imposed_spec, body=False, required_from=name)
if transform_imposed:
requirements = transform_imposed(imposed_spec, requirements)
cache[imposed_spec_key] = (effect_id, requirements)
effect_id, requirements = cache[imposed_spec_key]
effect_id = self._get_condition_id(
imposed_spec, cache=self._effect_cache, body=False, transform=transform_imposed
)
self.gen.fact(fn.pkg_fact(named_cond.name, fn.condition_effect(condition_id, effect_id)))
return condition_id
def impose(self, condition_id, imposed_spec, node=True, name=None, body=False):
@@ -1387,23 +1410,13 @@ def virtual_preferences(self, pkg_name, func):
def provider_defaults(self):
self.gen.h2("Default virtual providers")
msg = (
"Internal Error: possible_virtuals is not populated. Please report to the spack"
" maintainers"
)
assert self.possible_virtuals is not None, msg
self.virtual_preferences(
"all", lambda v, p, i: self.gen.fact(fn.default_provider_preference(v, p, i))
)
def provider_requirements(self):
self.gen.h2("Requirements on virtual providers")
msg = (
"Internal Error: possible_virtuals is not populated. Please report to the spack"
" maintainers"
)
parser = RequirementParser(spack.config.CONFIG)
assert self.possible_virtuals is not None, msg
for virtual_str in sorted(self.possible_virtuals):
rules = parser.rules_from_virtual(virtual_str)
if rules:
@@ -1602,35 +1615,57 @@ def flag_defaults(self):
fn.compiler_version_flag(compiler.name, compiler.version, name, flag)
)
def spec_clauses(self, *args, **kwargs):
"""Wrap a call to `_spec_clauses()` into a try/except block that
raises a comprehensible error message in case of failure.
def spec_clauses(
self,
spec: spack.spec.Spec,
*,
body: bool = False,
transitive: bool = True,
expand_hashes: bool = False,
concrete_build_deps=False,
required_from: Optional[str] = None,
) -> List[AspFunction]:
"""Wrap a call to `_spec_clauses()` into a try/except block with better error handling.
Arguments are as for ``_spec_clauses()`` except ``required_from``.
Arguments:
required_from: name of package that caused this call.
"""
requestor = kwargs.pop("required_from", None)
try:
clauses = self._spec_clauses(*args, **kwargs)
clauses = self._spec_clauses(
spec,
body=body,
transitive=transitive,
expand_hashes=expand_hashes,
concrete_build_deps=concrete_build_deps,
)
except RuntimeError as exc:
msg = str(exc)
if requestor:
msg += ' [required from package "{0}"]'.format(requestor)
if required_from:
msg += f" [required from package '{required_from}']"
raise RuntimeError(msg)
return clauses
def _spec_clauses(
self, spec, body=False, transitive=True, expand_hashes=False, concrete_build_deps=False
):
self,
spec: spack.spec.Spec,
*,
body: bool = False,
transitive: bool = True,
expand_hashes: bool = False,
concrete_build_deps: bool = False,
) -> List[AspFunction]:
"""Return a list of clauses for a spec mandates are true.
Arguments:
spec (spack.spec.Spec): the spec to analyze
body (bool): if True, generate clauses to be used in rule bodies
(final values) instead of rule heads (setters).
transitive (bool): if False, don't generate clauses from
dependencies (default True)
expand_hashes (bool): if True, descend into hashes of concrete specs
(default False)
concrete_build_deps (bool): if False, do not include pure build deps
of concrete specs (as they have no effect on runtime constraints)
spec: the spec to analyze
body: if True, generate clauses to be used in rule bodies (final values) instead
of rule heads (setters).
transitive: if False, don't generate clauses from dependencies (default True)
expand_hashes: if True, descend into hashes of concrete specs (default False)
concrete_build_deps: if False, do not include pure build deps of concrete specs
(as they have no effect on runtime constraints)
Normally, if called with ``transitive=True``, ``spec_clauses()`` just generates
hashes for the dependency requirements of concrete specs. If ``expand_hashes``
@@ -1640,7 +1675,7 @@ def _spec_clauses(
"""
clauses = []
f = _Body if body else _Head
f: Union[Type[_Head], Type[_Body]] = _Body if body else _Head
if spec.name:
clauses.append(f.node(spec.name) if not spec.virtual else f.virtual_node(spec.name))
@@ -1729,8 +1764,9 @@ def _spec_clauses(
# dependencies
if spec.concrete:
# older specs do not have package hashes, so we have to do this carefully
if getattr(spec, "_package_hash", None):
clauses.append(fn.attr("package_hash", spec.name, spec._package_hash))
package_hash = getattr(spec, "_package_hash", None)
if package_hash:
clauses.append(fn.attr("package_hash", spec.name, package_hash))
clauses.append(fn.attr("hash", spec.name, spec.dag_hash()))
edges = spec.edges_from_dependents()
@@ -1789,7 +1825,7 @@ def _spec_clauses(
return clauses
def define_package_versions_and_validate_preferences(
self, possible_pkgs, *, require_checksum: bool, allow_deprecated: bool
self, possible_pkgs: Set[str], *, require_checksum: bool, allow_deprecated: bool
):
"""Declare any versions in specs not declared in packages."""
packages_yaml = spack.config.get("packages")
@@ -1822,7 +1858,7 @@ def define_package_versions_and_validate_preferences(
if pkg_name not in packages_yaml or "version" not in packages_yaml[pkg_name]:
continue
version_defs = []
version_defs: List[GitOrStandardVersion] = []
for vstr in packages_yaml[pkg_name]["version"]:
v = vn.ver(vstr)
@@ -2033,13 +2069,6 @@ def target_defaults(self, specs):
def virtual_providers(self):
self.gen.h2("Virtual providers")
msg = (
"Internal Error: possible_virtuals is not populated. Please report to the spack"
" maintainers"
)
assert self.possible_virtuals is not None, msg
# what provides what
for vspec in sorted(self.possible_virtuals):
self.gen.fact(fn.virtual(vspec))
self.gen.newline()
@@ -2236,7 +2265,7 @@ def define_concrete_input_specs(self, specs, possible):
def setup(
self,
specs: Sequence[spack.spec.Spec],
specs: List[spack.spec.Spec],
*,
reuse: Optional[List[spack.spec.Spec]] = None,
allow_deprecated: bool = False,

View File

@@ -94,6 +94,9 @@ def test_get_executables(working_env, mock_executable):
external = SpackCommand("external")
# TODO: this test should be made to work, but in the meantime it is
# causing intermittent (spurious) CI failures on all PRs
@pytest.mark.skipif(sys.platform == "win32", reason="Test fails intermittently on Windows")
def test_find_external_cmd_not_buildable(mutable_config, working_env, mock_executable):
"""When the user invokes 'spack external find --not-buildable', the config
for any package where Spack finds an external version should be marked as
@@ -248,6 +251,7 @@ def _determine_variants(cls, exes, version_str):
assert gcc.external_path == os.path.sep + os.path.join("opt", "gcc", "bin")
@pytest.mark.not_on_windows("Fails spuriously on Windows")
def test_new_entries_are_reported_correctly(mock_executable, mutable_config, monkeypatch):
# Prepare an environment to detect a fake gcc
gcc_exe = mock_executable("gcc", output="echo 4.2.1")

View File

@@ -141,6 +141,7 @@ def test_partial_install_delete_prefix_and_stage(install_mockery, mock_fetch, wo
assert s.package.spec.installed
@pytest.mark.not_on_windows("Fails spuriously on Windows")
@pytest.mark.disable_clean_stage_check
def test_failing_overwrite_install_should_keep_previous_installation(
mock_fetch, install_mockery, working_env

View File

@@ -906,6 +906,13 @@ def test_version_list_normalization():
assert ver("1.0:2.0,=1.0,ref=1.0") == ver(["1.0:2.0"])
def test_version_list_connected_union_of_disjoint_ranges():
# Make sure that we also simplify lists of ranges if their intersection is empty, but their
# union is connected.
assert ver("1.0:2.0,2.1,2.2:3,4:6") == ver(["1.0:6"])
assert ver("1.0:1.2,1.3:2") == ver("1.0:1.5,1.6:2")
@pytest.mark.parametrize("version", ["=1.2", "git.ref=1.2", "1.2"])
def test_version_comparison_with_list_fails(version):
vlist = VersionList(["=1.3"])

View File

@@ -695,26 +695,35 @@ def satisfies(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionLis
def overlaps(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionList"]) -> bool:
return self.intersects(other)
def union(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionList"]):
def _union_if_not_disjoint(
self, other: Union["ClosedOpenRange", ConcreteVersion]
) -> Optional["ClosedOpenRange"]:
"""Same as union, but returns None when the union is not connected. This function is not
implemented for version lists as right-hand side, as that makes little sense."""
if isinstance(other, StandardVersion):
return self if self.lo <= other < self.hi else VersionList([self, other])
return self if self.lo <= other < self.hi else None
if isinstance(other, GitVersion):
return self if self.lo <= other.ref_version < self.hi else VersionList([self, other])
return self if self.lo <= other.ref_version < self.hi else None
if isinstance(other, ClosedOpenRange):
# Notice <= cause we want union(1:2, 3:4) = 1:4.
if self.lo <= other.hi and other.lo <= self.hi:
return ClosedOpenRange(min(self.lo, other.lo), max(self.hi, other.hi))
return (
ClosedOpenRange(min(self.lo, other.lo), max(self.hi, other.hi))
if self.lo <= other.hi and other.lo <= self.hi
else None
)
return VersionList([self, other])
raise TypeError(f"Unexpected type {type(other)}")
def union(self, other: Union["ClosedOpenRange", ConcreteVersion, "VersionList"]):
if isinstance(other, VersionList):
v = other.copy()
v.add(self)
return v
raise ValueError(f"Unexpected type {type(other)}")
result = self._union_if_not_disjoint(other)
return result if result is not None else VersionList([self, other])
def intersection(self, other: Union["ClosedOpenRange", ConcreteVersion]):
# range - version -> singleton or nothing.
@@ -732,19 +741,20 @@ class VersionList:
def __init__(self, vlist=None):
self.versions: List[StandardVersion, GitVersion, ClosedOpenRange] = []
if vlist is not None:
if isinstance(vlist, str):
vlist = from_string(vlist)
if isinstance(vlist, VersionList):
self.versions = vlist.versions
else:
self.versions = [vlist]
if vlist is None:
pass
elif isinstance(vlist, str):
vlist = from_string(vlist)
if isinstance(vlist, VersionList):
self.versions = vlist.versions
else:
for v in vlist:
self.add(ver(v))
self.versions = [vlist]
else:
for v in vlist:
self.add(ver(v))
def add(self, item):
if isinstance(item, ConcreteVersion):
def add(self, item: Union[StandardVersion, GitVersion, ClosedOpenRange, "VersionList"]):
if isinstance(item, (StandardVersion, GitVersion)):
i = bisect_left(self, item)
# Only insert when prev and next are not intersected.
if (i == 0 or not item.intersects(self[i - 1])) and (
@@ -755,16 +765,22 @@ def add(self, item):
elif isinstance(item, ClosedOpenRange):
i = bisect_left(self, item)
# Note: can span multiple concrete versions to the left,
# For instance insert 1.2: into [1.2, hash=1.2, 1.3]
# would bisect to i = 1.
while i > 0 and item.intersects(self[i - 1]):
item = item.union(self[i - 1])
# Note: can span multiple concrete versions to the left (as well as to the right).
# For instance insert 1.2: into [1.2, hash=1.2, 1.3, 1.4:1.5]
# would bisect at i = 1 and merge i = 0 too.
while i > 0:
union = item._union_if_not_disjoint(self[i - 1])
if union is None: # disjoint
break
item = union
del self.versions[i - 1]
i -= 1
while i < len(self) and item.intersects(self[i]):
item = item.union(self[i])
while i < len(self):
union = item._union_if_not_disjoint(self[i])
if union is None:
break
item = union
del self.versions[i]
self.versions.insert(i, item)

View File

@@ -330,7 +330,7 @@ protected-publish:
e4s-generate:
extends: [ ".e4s", ".generate-x86_64"]
image: ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
e4s-build:
extends: [ ".e4s", ".build" ]
@@ -353,7 +353,7 @@ e4s-build:
e4s-neoverse-v2-generate:
extends: [ ".e4s-neoverse-v2", ".generate-neoverse-v2" ]
image: ghcr.io/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.01.01
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
e4s-neoverse-v2-build:
extends: [ ".e4s-neoverse-v2", ".build" ]
@@ -376,7 +376,7 @@ e4s-neoverse-v2-build:
e4s-neoverse_v1-generate:
extends: [ ".e4s-neoverse_v1", ".generate-neoverse_v1" ]
image: ghcr.io/spack/ubuntu20.04-runner-arm64-gcc-11.4:2023.08.01
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
e4s-neoverse_v1-build:
extends: [ ".e4s-neoverse_v1", ".build" ]
@@ -399,7 +399,7 @@ e4s-neoverse_v1-build:
e4s-rocm-external-generate:
extends: [ ".e4s-rocm-external", ".generate-x86_64"]
image: ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4-rocm5.4.3:2023.08.01
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm5.7.1:2024.03.01
e4s-rocm-external-build:
extends: [ ".e4s-rocm-external", ".build" ]

View File

@@ -151,7 +151,6 @@ spack:
# - alquimia # pflotran: petsc-3.19.4-c6pmpdtpzarytxo434zf76jqdkhdyn37/lib/petsc/conf/rules:169: material_aux.o] Error 1: fortran errors
# - amrex # disabled temporarily pending resolution of unreproducible CI failure
# - archer # subsumed by llvm +omp_tsan
# - axom # axom: CMake Error at axom/sidre/cmake_install.cmake:154 (file): file INSTALL cannot find "/tmp/gitlab-runner-2/spack-stage/spack-stage-axom-0.8.1-jvol6riu34vuyqvrd5ft2gyhrxdqvf63/spack-build-jvol6ri/lib/fortran/axom_spio.mod": No such file or directory.
# - bricks # bricks: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)
# - dealii # llvm@14.0.6: ?; intel-tbb@2020.3: clang-15: error: unknown argument: '-flifetime-dse=1'; assimp@5.2.5: clang-15: error: clang frontend command failed with exit code 134 (use -v to see invocation)

View File

@@ -147,7 +147,6 @@ spack:
# HOLDING THESE BACK UNTIL CRAY SLES CAPACITY IS EXPANDED AT UO
# - alquimia
# - amrex
# - archer
# - axom
# - bricks
# - dealii

View File

@@ -7,7 +7,7 @@ spack:
packages:
all:
require: '%gcc@11.4.0 target=neoverse_v2'
require: '%gcc target=neoverse_v2'
providers:
blas: [openblas]
mpi: [mpich]
@@ -31,18 +31,13 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
mesa:
version: [21.3.8]
mpi:
require: mpich
mpich:
require: '~wrapperrpath ~hwloc'
ncurses:
require: '@6.3 +termlib'
tbb:
require: intel-tbb
boost:
version: [1.79.0]
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
@@ -156,6 +151,7 @@ spack:
- umap
- umpire
- upcxx
- veloc
- wannier90
- xyce +mpi +shared +pymi +pymi_static_tpls
# INCLUDED IN ECP DAV CPU
@@ -170,15 +166,15 @@ spack:
- py-cinemasci
- sz
- unifyfs
- veloc
- laghos
# - visit # silo: https://github.com/spack/spack/issues/39538
- vtk-m
- zfp
# --
# - archer # part of llvm +omp_tsan
# - bricks ~cuda # not respecting target=aarch64?
# - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
# - geopm # geopm: https://github.com/spack/spack/issues/38795
# - glvis # glvis: https://github.com/spack/spack/issues/42839
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
# - variorum # variorum: https://github.com/spack/spack/issues/38786
@@ -188,7 +184,9 @@ spack:
- py-jax
- py-jupyterlab
- py-matplotlib
- py-mpi4py
- py-notebook
- py-numba
- py-numpy
- py-openai
- py-pandas
@@ -351,7 +349,7 @@ spack:
ci:
pipeline-gen:
- build-job:
image: "ghcr.io/spack/ubuntu22.04-runner-arm64-gcc-11.4:2024.01.01"
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
cdash:
build-group: E4S ARM Neoverse V2

View File

@@ -7,7 +7,7 @@ spack:
packages:
all:
require: '%gcc@11.4.0 target=neoverse_v1'
require: '%gcc target=neoverse_v1'
providers:
blas: [openblas]
mpi: [mpich]
@@ -35,12 +35,9 @@ spack:
require: mpich
mpich:
require: '~wrapperrpath ~hwloc'
ncurses:
require: '@6.3 +termlib'
tbb:
require: intel-tbb
boost:
version: [1.79.0]
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
@@ -95,6 +92,7 @@ spack:
- hypre
- kokkos +openmp
- kokkos-kernels +openmp
- laghos
- lammps
- lbann
- legion
@@ -173,13 +171,34 @@ spack:
- vtk-m
- zfp
# --
# - archer # part of llvm +omp_tsan
# - bricks ~cuda # not respecting target=aarch64?
# - dealii # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
# - geopm # geopm: https://github.com/spack/spack/issues/38795
# - glvis # glvis: https://github.com/spack/spack/issues/42839
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs@0.7.3: gcc: error: unrecognized command-line option '-mno-sse2'
# - variorum # variorum: https://github.com/spack/spack/issues/38786
# PYTHON PACKAGES
- opencv +python3
- py-horovod
- py-jax
- py-jupyterlab
- py-matplotlib
- py-mpi4py
- py-notebook
- py-numba
- py-numpy
- py-openai
- py-pandas
- py-plotly
- py-pooch
- py-pytest
- py-scikit-learn
- py-scipy
- py-seaborn
- py-tensorflow
- py-torch
# CUDA NOARCH
- flux-core +cuda
- hpctoolkit +cuda
@@ -281,25 +300,6 @@ spack:
# - slepc +cuda cuda_arch=80 # slepc: make[1]: *** internal error: invalid --jobserver-auth string 'fifo:/tmp/GMfifo1313'.
# - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
# PYTHON PACKAGES
- opencv +python3
- py-horovod
- py-jax
- py-jupyterlab
- py-matplotlib
- py-notebook
- py-numpy
- py-openai
- py-pandas
- py-plotly
- py-pooch
- py-pytest
- py-scikit-learn
- py-scipy
- py-seaborn
- py-tensorflow
- py-torch
# CUDA 90
- amrex +cuda cuda_arch=90
- arborx +cuda cuda_arch=90 ^kokkos +wrapper
@@ -349,7 +349,7 @@ spack:
ci:
pipeline-gen:
- build-job:
image: "ghcr.io/spack/ubuntu20.04-runner-arm64-gcc-11.4:2023.08.01"
image: ecpe4s/ubuntu22.04-runner-arm64-gcc-11.4:2024.03.01
cdash:
build-group: E4S ARM Neoverse V1

View File

@@ -13,9 +13,10 @@ spack:
- "%oneapi"
providers:
blas: [openblas]
mpi: [mpich]
tbb: [intel-tbb]
variants: +mpi
gl:
require: osmesa
elfutils:
variants: ~nls
gcc-runtime:
@@ -38,14 +39,10 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
mesa:
version: [21.3.8]
mpi:
require: 'mpich@4:'
mpich:
require: '~wrapperrpath ~hwloc'
py-cryptography:
require: '@38.0.1'
unzip:
require: '%gcc'
binutils:
@@ -63,8 +60,6 @@ spack:
require: '%gcc'
openssh:
require: '%gcc'
libffi:
require: "@3.4.4"
dyninst:
require: "%gcc"
bison:
@@ -108,6 +103,7 @@ spack:
- hypre
- kokkos +openmp
- kokkos-kernels +openmp
- laghos
- lammps
- lbann
- legion
@@ -193,16 +189,14 @@ spack:
# - upcxx # upcxx: /opt/intel/oneapi/mpi/2021.10.0//libfabric/bin/fi_info: error while loading shared libraries: libfabric.so.1: cannot open shared object file: No such file or directory
# --
# - bricks ~cuda # bricks: /opt/intel/oneapi/compiler/2024.0/bin/sycl-post-link: error while loading shared libraries: libonnxruntime.1.12.22.721.so: cannot open shared object file: No such file or directory
# - glvis ^llvm # glvis: https://github.com/spack/spack/issues/42839
# - pdt # pdt: pdbType.cc:193:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
# - quantum-espresso # quantum-espresso@7.2 /i3fqdx5: warning: <unknown>:0:0: loop not unroll-and-jammed: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering
# - tau +mpi +python +syscall # pdt: pdbType.cc:193:21: warning: ISO C++11 does not allow conversion from string literal to 'char *' [-Wwritable-strings]
# PYTHON PACKAGES
- opencv +python3
# - py-horovod # error
# - py-jax # error
- py-jupyterlab
# - py-matplotlib # error
- py-notebook
- py-numpy
- py-openai
@@ -213,8 +207,13 @@ spack:
- py-scikit-learn
- py-scipy
- py-seaborn
# - py-tensorflow # error
# - py-torch # error
- py-mpi4py
- py-numba
# - py-horovod # error
# - py-jax # error
# - py-matplotlib # error
# - py-tensorflow # error
# - py-torch # error
# GPU
- amrex +sycl

View File

@@ -32,8 +32,6 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
mesa:
version: [21.3.8]
mpi:
require: mpich
mpich:
@@ -74,7 +72,6 @@ spack:
- drishti
- dxt-explorer
- dyninst
# - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
- exaworks
- flecsi
- flit
@@ -97,6 +94,7 @@ spack:
- hypre
- kokkos +openmp
- kokkos-kernels +openmp
- laghos
- lammps
- lbann
- legion
@@ -158,6 +156,7 @@ spack:
- upcxx
- wannier90
- xyce +mpi +shared +pymi +pymi_static_tpls
# - ecp-data-vis-sdk ~cuda ~rocm +adios2 +ascent +cinema +darshan +faodel +hdf5 ~paraview +pnetcdf +sz +unifyfs +veloc ~visit +vtkm +zfp # +visit: libext, libxkbfile, libxrender, libxt, silo (https://github.com/spack/spack/issues/39538), cairo
# INCLUDED IN ECP DAV CPU
- adios2
- ascent
@@ -176,20 +175,21 @@ spack:
- vtk-m
- zfp
# --
# - archer # part of llvm +omp_tsan
# - dealii # fltk: https://github.com/spack/spack/issues/38791
# - geopm # geopm: https://github.com/spack/spack/issues/38798
# - glvis # glvis: https://github.com/spack/spack/issues/42839
# - libpressio +bitgrooming +bzip2 ~cuda ~cusz +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp # py-numcodecs: gcc: error: unrecognized command line option '-mno-sse2'; did you mean '-mno-isel'? gcc: error: unrecognized command line option '-mno-avx2'
# - phist +mpi # ghost@develop: gcc-9: error: unrecognized command line option '-march=native'; did you mean '-mcpu=native'?
# - variorum # variorum: https://github.com/spack/spack/issues/38786
# PYTHON PACKAGES
- opencv +python3
# - py-horovod # py-torch, py-tensorflow
- py-jax
- py-jupyterlab
- py-matplotlib
- py-mpi4py
- py-notebook
- py-numba
- py-numpy
- py-openai
- py-pandas
@@ -199,8 +199,9 @@ spack:
- py-scikit-learn
- py-scipy
- py-seaborn
# - py-tensorflow # error
# - py-torch # error
# - py-horovod # py-torch, py-tensorflow
# - py-tensorflow # error
# - py-torch # error
# CUDA NOARCH
- bricks +cuda

View File

@@ -10,49 +10,15 @@ spack:
require: '%gcc target=x86_64_v3'
providers:
blas: [openblas]
mpi: [mpich]
variants: +mpi
binutils:
variants: +ld +gold +headers +libiberty ~nls
elfutils:
variants: ~nls
hdf5:
variants: +fortran +hl +shared
libfabric:
variants: fabrics=sockets,tcp,udp,rxm
libunwind:
variants: +pic +xz
openblas:
variants: threads=openmp
trilinos:
variants: +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext
+ifpack +ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu
+nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu +stokhos +stratimikos
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
mesa:
version: [21.3.8]
tbb:
require: intel-tbb
mpi:
require: mpich
mpich:
require: '~wrapperrpath ~hwloc'
ncurses:
require: '@6.3 +termlib'
tbb:
require: intel-tbb
boost:
version: [1.79.0]
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
cxxstd=17 visibility=global
libffi:
require: "@3.4.4"
vtk-m:
require: "+examples"
cuda:
version: [11.8.0]
openblas:
variants: threads=openmp
paraview:
# Don't build GUI support or GLX rendering for HPC/container deployments
require: "@5.11 ~qt+osmesa"
@@ -61,181 +27,181 @@ spack:
comgr:
buildable: false
externals:
- spec: comgr@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: comgr@5.7.1
prefix: /opt/rocm-5.7.1/
hip-rocclr:
buildable: false
externals:
- spec: hip-rocclr@5.4.3
prefix: /opt/rocm-5.4.3/hip
- spec: hip-rocclr@5.7.1
prefix: /opt/rocm-5.7.1/hip
hipblas:
buildable: false
externals:
- spec: hipblas@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: hipblas@5.7.1
prefix: /opt/rocm-5.7.1/
hipcub:
buildable: false
externals:
- spec: hipcub@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: hipcub@5.7.1
prefix: /opt/rocm-5.7.1/
hipfft:
buildable: false
externals:
- spec: hipfft@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: hipfft@5.7.1
prefix: /opt/rocm-5.7.1/
hipsparse:
buildable: false
externals:
- spec: hipsparse@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: hipsparse@5.7.1
prefix: /opt/rocm-5.7.1/
miopen-hip:
buildable: false
externals:
- spec: miopen-hip@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: miopen-hip@5.7.1
prefix: /opt/rocm-5.7.1/
miopengemm:
buildable: false
externals:
- spec: miopengemm@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: miopengemm@5.7.1
prefix: /opt/rocm-5.7.1/
rccl:
buildable: false
externals:
- spec: rccl@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rccl@5.7.1
prefix: /opt/rocm-5.7.1/
rocblas:
buildable: false
externals:
- spec: rocblas@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocblas@5.7.1
prefix: /opt/rocm-5.7.1/
rocfft:
buildable: false
externals:
- spec: rocfft@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocfft@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-clang-ocl:
buildable: false
externals:
- spec: rocm-clang-ocl@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-clang-ocl@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-cmake:
buildable: false
externals:
- spec: rocm-cmake@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-cmake@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-dbgapi:
buildable: false
externals:
- spec: rocm-dbgapi@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-dbgapi@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-debug-agent:
buildable: false
externals:
- spec: rocm-debug-agent@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-debug-agent@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-device-libs:
buildable: false
externals:
- spec: rocm-device-libs@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-device-libs@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-gdb:
buildable: false
externals:
- spec: rocm-gdb@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-gdb@5.7.1
prefix: /opt/rocm-5.7.1/
rocm-opencl:
buildable: false
externals:
- spec: rocm-opencl@5.4.3
prefix: /opt/rocm-5.4.3/opencl
- spec: rocm-opencl@5.7.1
prefix: /opt/rocm-5.7.1/opencl
rocm-smi-lib:
buildable: false
externals:
- spec: rocm-smi-lib@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: rocm-smi-lib@5.7.1
prefix: /opt/rocm-5.7.1/
hip:
buildable: false
externals:
- spec: hip@5.4.3
prefix: /opt/rocm-5.4.3
- spec: hip@5.7.1
prefix: /opt/rocm-5.7.1
extra_attributes:
compilers:
c: /opt/rocm-5.4.3/llvm/bin/clang++
c++: /opt/rocm-5.4.3/llvm/bin/clang++
hip: /opt/rocm-5.4.3/hip/bin/hipcc
c: /opt/rocm-5.7.1/llvm/bin/clang++
c++: /opt/rocm-5.7.1/llvm/bin/clang++
hip: /opt/rocm-5.7.1/hip/bin/hipcc
hipify-clang:
buildable: false
externals:
- spec: hipify-clang@5.4.3
prefix: /opt/rocm-5.4.3
- spec: hipify-clang@5.7.1
prefix: /opt/rocm-5.7.1
llvm-amdgpu:
buildable: false
externals:
- spec: llvm-amdgpu@5.4.3
prefix: /opt/rocm-5.4.3/llvm
- spec: llvm-amdgpu@5.7.1
prefix: /opt/rocm-5.7.1/llvm
extra_attributes:
compilers:
c: /opt/rocm-5.4.3/llvm/bin/clang++
cxx: /opt/rocm-5.4.3/llvm/bin/clang++
c: /opt/rocm-5.7.1/llvm/bin/clang++
cxx: /opt/rocm-5.7.1/llvm/bin/clang++
hsakmt-roct:
buildable: false
externals:
- spec: hsakmt-roct@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: hsakmt-roct@5.7.1
prefix: /opt/rocm-5.7.1/
hsa-rocr-dev:
buildable: false
externals:
- spec: hsa-rocr-dev@5.4.3
prefix: /opt/rocm-5.4.3/
- spec: hsa-rocr-dev@5.7.1
prefix: /opt/rocm-5.7.1/
extra_atributes:
compilers:
c: /opt/rocm-5.4.3/llvm/bin/clang++
cxx: /opt/rocm-5.4.3/llvm/bin/clang++
c: /opt/rocm-5.7.1/llvm/bin/clang++
cxx: /opt/rocm-5.7.1/llvm/bin/clang++
roctracer-dev-api:
buildable: false
externals:
- spec: roctracer-dev-api@5.4.3
prefix: /opt/rocm-5.4.3
- spec: roctracer-dev-api@5.7.1
prefix: /opt/rocm-5.7.1
roctracer-dev:
buildable: false
externals:
- spec: roctracer-dev@4.5.3
prefix: /opt/rocm-5.4.3
prefix: /opt/rocm-5.7.1
rocprim:
buildable: false
externals:
- spec: rocprim@5.4.3
prefix: /opt/rocm-5.4.3
- spec: rocprim@5.7.1
prefix: /opt/rocm-5.7.1
rocrand:
buildable: false
externals:
- spec: rocrand@5.4.3
prefix: /opt/rocm-5.4.3
- spec: rocrand@5.7.1
prefix: /opt/rocm-5.7.1
hipsolver:
buildable: false
externals:
- spec: hipsolver@5.4.3
prefix: /opt/rocm-5.4.3
- spec: hipsolver@5.7.1
prefix: /opt/rocm-5.7.1
rocsolver:
buildable: false
externals:
- spec: rocsolver@5.4.3
prefix: /opt/rocm-5.4.3
- spec: rocsolver@5.7.1
prefix: /opt/rocm-5.7.1
rocsparse:
buildable: false
externals:
- spec: rocsparse@5.4.3
prefix: /opt/rocm-5.4.3
- spec: rocsparse@5.7.1
prefix: /opt/rocm-5.7.1
rocthrust:
buildable: false
externals:
- spec: rocthrust@5.4.3
prefix: /opt/rocm-5.4.3
- spec: rocthrust@5.7.1
prefix: /opt/rocm-5.7.1
rocprofiler-dev:
buildable: false
externals:
- spec: rocprofiler-dev@5.4.3
prefix: /opt/rocm-5.4.3
- spec: rocprofiler-dev@5.7.1
prefix: /opt/rocm-5.7.1
specs:
# ROCM NOARCH
@@ -262,7 +228,7 @@ spack:
- mfem +rocm amdgpu_target=gfx908
- petsc +rocm amdgpu_target=gfx908
- raja ~openmp +rocm amdgpu_target=gfx908
- slate +rocm amdgpu_target=gfx908
# - slate +rocm amdgpu_target=gfx908 # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type<double, 2>' and 'const HIP_vector_type<double, 2>')
- slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
- strumpack ~slate +rocm amdgpu_target=gfx908
- sundials +rocm amdgpu_target=gfx908
@@ -303,7 +269,7 @@ spack:
- mfem +rocm amdgpu_target=gfx90a
- petsc +rocm amdgpu_target=gfx90a
- raja ~openmp +rocm amdgpu_target=gfx90a
- slate +rocm amdgpu_target=gfx90a
# - slate +rocm amdgpu_target=gfx90a # slate: hip/device_gescale_row_col.hip.cc:58:49: error: use of overloaded operator '*' is ambiguous (with operand types 'HIP_vector_type<double, 2>' and 'const HIP_vector_type<double, 2>')
- slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
- strumpack ~slate +rocm amdgpu_target=gfx90a
- sundials +rocm amdgpu_target=gfx90a
@@ -327,7 +293,7 @@ spack:
ci:
pipeline-gen:
- build-job:
image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4-rocm5.4.3:2023.08.01"
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4-rocm5.7.1:2024.03.01
cdash:
build-group: E4S ROCm External

View File

@@ -31,18 +31,13 @@ spack:
+teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long
xz:
variants: +pic
mesa:
version: [21.3.8]
mpi:
require: mpich
mpich:
require: '~wrapperrpath ~hwloc'
ncurses:
require: '@6.3 +termlib'
tbb:
require: intel-tbb
boost:
version: [1.79.0]
variants: +atomic +chrono +container +date_time +exception +filesystem +graph
+iostreams +locale +log +math +mpi +multithreaded +program_options +random
+regex +serialization +shared +signals +stacktrace +system +test +thread +timer
@@ -106,6 +101,7 @@ spack:
- julia ^llvm ~clang ~gold ~polly targets=amdgpu,bpf,nvptx,webassembly
- kokkos +openmp
- kokkos-kernels +openmp
- laghos
- lammps
- lbann
- legion
@@ -187,8 +183,8 @@ spack:
- vtk-m
- zfp
# --
# - archer # submerged into llvm +libomp_tsan
# - geopm # geopm: https://github.com/spack/spack/issues/38795
# - glvis # glvis: https://github.com/spack/spack/issues/42839
# PYTHON PACKAGES
- opencv +python3
@@ -196,7 +192,9 @@ spack:
- py-jax
- py-jupyterlab
- py-matplotlib
- py-mpi4py
- py-notebook
- py-numba
- py-numpy
- py-openai
- py-pandas
@@ -209,198 +207,198 @@ spack:
- py-tensorflow
- py-torch
# CUDA NOARCH
- bricks +cuda
- flux-core +cuda
- hpctoolkit +cuda
- papi +cuda
- tau +mpi +cuda +syscall
# --
# - legion +cuda # legion: needs NVIDIA driver
# # CUDA NOARCH
# - bricks +cuda
# - flux-core +cuda
# - hpctoolkit +cuda
# - papi +cuda
# - tau +mpi +cuda +syscall
# # --
# # - legion +cuda # legion: needs NVIDIA driver
# CUDA 80
- amrex +cuda cuda_arch=80
- arborx +cuda cuda_arch=80 ^kokkos +wrapper
- cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
- caliper +cuda cuda_arch=80
- chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
- cusz +cuda cuda_arch=80
- dealii +cuda cuda_arch=80
- ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # +ascent fails because fides fetch error
- exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 #^raja@0.14.0
- flecsi +cuda cuda_arch=80
- ginkgo +cuda cuda_arch=80
- gromacs +cuda cuda_arch=80
- heffte +cuda cuda_arch=80
- hpx +cuda cuda_arch=80
- hypre +cuda cuda_arch=80
- kokkos +wrapper +cuda cuda_arch=80
- kokkos-kernels +cuda cuda_arch=80 ^kokkos +wrapper +cuda cuda_arch=80
- libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=80 ^cusz +cuda cuda_arch=80
- magma +cuda cuda_arch=80
- mfem +cuda cuda_arch=80
- mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80
- omega-h +cuda cuda_arch=80
- parsec +cuda cuda_arch=80
- petsc +cuda cuda_arch=80
- py-torch +cuda cuda_arch=80
- raja +cuda cuda_arch=80
- slate +cuda cuda_arch=80
- slepc +cuda cuda_arch=80
- strumpack ~slate +cuda cuda_arch=80
- sundials +cuda cuda_arch=80
- superlu-dist +cuda cuda_arch=80
- tasmanian +cuda cuda_arch=80
- trilinos +cuda cuda_arch=80
- umpire ~shared +cuda cuda_arch=80
# INCLUDED IN ECP DAV CUDA
# - adios2 +cuda cuda_arch=80
# - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
# - paraview +cuda cuda_arch=80
# - vtk-m +cuda cuda_arch=80
# - zfp +cuda cuda_arch=80
# --
# - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
# - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
# - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
# - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
# # CUDA 80
# - amrex +cuda cuda_arch=80
# - arborx +cuda cuda_arch=80 ^kokkos +wrapper
# - cabana +cuda cuda_arch=80 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=80
# - caliper +cuda cuda_arch=80
# - chai ~benchmarks ~tests +cuda cuda_arch=80 ^umpire ~shared
# - cusz +cuda cuda_arch=80
# - dealii +cuda cuda_arch=80
# - ecp-data-vis-sdk ~rocm +adios2 ~ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=80 # +ascent fails because fides fetch error
# - exago +mpi +python +raja +hiop ~rocm +cuda cuda_arch=80 ~ipopt ^hiop@1.0.0 ~sparse +mpi +raja ~rocm +cuda cuda_arch=80 #^raja@0.14.0
# - flecsi +cuda cuda_arch=80
# - ginkgo +cuda cuda_arch=80
# - gromacs +cuda cuda_arch=80
# - heffte +cuda cuda_arch=80
# - hpx +cuda cuda_arch=80
# - hypre +cuda cuda_arch=80
# - kokkos +wrapper +cuda cuda_arch=80
# - kokkos-kernels +cuda cuda_arch=80 ^kokkos +wrapper +cuda cuda_arch=80
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=80 ^cusz +cuda cuda_arch=80
# - magma +cuda cuda_arch=80
# - mfem +cuda cuda_arch=80
# - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=80
# - omega-h +cuda cuda_arch=80
# - parsec +cuda cuda_arch=80
# - petsc +cuda cuda_arch=80
# - py-torch +cuda cuda_arch=80
# - raja +cuda cuda_arch=80
# - slate +cuda cuda_arch=80
# - slepc +cuda cuda_arch=80
# - strumpack ~slate +cuda cuda_arch=80
# - sundials +cuda cuda_arch=80
# - superlu-dist +cuda cuda_arch=80
# - tasmanian +cuda cuda_arch=80
# - trilinos +cuda cuda_arch=80
# - umpire ~shared +cuda cuda_arch=80
# # INCLUDED IN ECP DAV CUDA
# # - adios2 +cuda cuda_arch=80
# # - ascent +cuda cuda_arch=80 # ascent: https://github.com/spack/spack/issues/38045
# # - paraview +cuda cuda_arch=80
# # - vtk-m +cuda cuda_arch=80
# # - zfp +cuda cuda_arch=80
# # --
# # - lammps +cuda cuda_arch=80 # lammps: needs NVIDIA driver
# # - upcxx +cuda cuda_arch=80 # upcxx: needs NVIDIA driver
# # - axom +cuda cuda_arch=80 # axom: https://github.com/spack/spack/issues/29520
# # - lbann +cuda cuda_arch=80 # lbann: https://github.com/spack/spack/issues/38788
# CUDA 90
- amrex +cuda cuda_arch=90
- arborx +cuda cuda_arch=90 ^kokkos +wrapper
- cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
- caliper +cuda cuda_arch=90
- chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
- cusz +cuda cuda_arch=90
- flecsi +cuda cuda_arch=90
- ginkgo +cuda cuda_arch=90
- gromacs +cuda cuda_arch=90
- heffte +cuda cuda_arch=90
- hpx +cuda cuda_arch=90
- kokkos +wrapper +cuda cuda_arch=90
- kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
- libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90
- magma +cuda cuda_arch=90
- mfem +cuda cuda_arch=90
- mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
- parsec +cuda cuda_arch=90
- petsc +cuda cuda_arch=90
- py-torch +cuda cuda_arch=90
- raja +cuda cuda_arch=90
- slate +cuda cuda_arch=90
- slepc +cuda cuda_arch=90
- strumpack ~slate +cuda cuda_arch=90
- sundials +cuda cuda_arch=90
- superlu-dist +cuda cuda_arch=90
- trilinos +cuda cuda_arch=90
- umpire ~shared +cuda cuda_arch=90
# INCLUDED IN ECP DAV CUDA
- adios2 +cuda cuda_arch=90
# - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
# - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
- vtk-m +cuda cuda_arch=90
- zfp +cuda cuda_arch=90
# --
# - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
# - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
# - ecp-data-vis-sdk ~rocm +adios2 +ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # paraview: incompatible cuda_arch; vtk-m: CMake Error at CMake/VTKmWrappers.cmake:413 (message): vtkm_cont needs to be built STATIC as CUDA doesn't support virtual methods across dynamic library boundaries. You need to set the CMake opt ion BUILD_SHARED_LIBS to `OFF` or (better) turn VTKm_NO_DEPRECATED_VIRTUAL to `ON`.
# - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
# - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
# - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
# - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
# - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
# - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
# # CUDA 90
# - amrex +cuda cuda_arch=90
# - arborx +cuda cuda_arch=90 ^kokkos +wrapper
# - cabana +cuda cuda_arch=90 ^kokkos +wrapper +cuda_lambda +cuda cuda_arch=90
# - caliper +cuda cuda_arch=90
# - chai ~benchmarks ~tests +cuda cuda_arch=90 ^umpire ~shared
# - cusz +cuda cuda_arch=90
# - flecsi +cuda cuda_arch=90
# - ginkgo +cuda cuda_arch=90
# - gromacs +cuda cuda_arch=90
# - heffte +cuda cuda_arch=90
# - hpx +cuda cuda_arch=90
# - kokkos +wrapper +cuda cuda_arch=90
# - kokkos-kernels +cuda cuda_arch=90 ^kokkos +wrapper +cuda cuda_arch=90
# - libpressio +bitgrooming +bzip2 +fpzip +hdf5 +libdistributed +lua +openmp +python +sz +sz3 +unix +zfp +json +remote +netcdf +cusz +mgard +cuda cuda_arch=90 ^cusz +cuda cuda_arch=90
# - magma +cuda cuda_arch=90
# - mfem +cuda cuda_arch=90
# - mgard +serial +openmp +timing +unstructured +cuda cuda_arch=90
# - parsec +cuda cuda_arch=90
# - petsc +cuda cuda_arch=90
# - py-torch +cuda cuda_arch=90
# - raja +cuda cuda_arch=90
# - slate +cuda cuda_arch=90
# - slepc +cuda cuda_arch=90
# - strumpack ~slate +cuda cuda_arch=90
# - sundials +cuda cuda_arch=90
# - superlu-dist +cuda cuda_arch=90
# - trilinos +cuda cuda_arch=90
# - umpire ~shared +cuda cuda_arch=90
# # INCLUDED IN ECP DAV CUDA
# - adios2 +cuda cuda_arch=90
# # - ascent +cuda cuda_arch=90 # ascent: https://github.com/spack/spack/issues/38045
# # - paraview +cuda cuda_arch=90 # paraview: InstallError: Incompatible cuda_arch=90
# - vtk-m +cuda cuda_arch=90
# - zfp +cuda cuda_arch=90
# # --
# # - axom +cuda cuda_arch=90 # axom: https://github.com/spack/spack/issues/29520
# # - dealii +cuda cuda_arch=90 # dealii: https://github.com/spack/spack/issues/39532
# # - ecp-data-vis-sdk ~rocm +adios2 +ascent +hdf5 +vtkm +zfp +paraview +cuda cuda_arch=90 # paraview: incompatible cuda_arch; vtk-m: CMake Error at CMake/VTKmWrappers.cmake:413 (message): vtkm_cont needs to be built STATIC as CUDA doesn't support virtual methods across dynamic library boundaries. You need to set the CMake opt ion BUILD_SHARED_LIBS to `OFF` or (better) turn VTKm_NO_DEPRECATED_VIRTUAL to `ON`.
# # - hypre +cuda cuda_arch=90 # concretizer: hypre +cuda requires cuda@:11, but cuda_arch=90 requires cuda@12:
# # - lammps +cuda cuda_arch=90 # lammps: needs NVIDIA driver
# # - lbann +cuda cuda_arch=90 # concretizer: Cannot select a single "version" for package "lbann"
# # - omega-h +cuda cuda_arch=90 # omega-h: https://github.com/spack/spack/issues/39535
# # - tasmanian +cuda cuda_arch=90 # tasmanian: conflicts with cuda@12
# # - upcxx +cuda cuda_arch=90 # upcxx: needs NVIDIA driver
# ROCM NOARCH
- hpctoolkit +rocm
- tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
# # ROCM NOARCH
# - hpctoolkit +rocm
# - tau +mpi +rocm +syscall # tau: has issue with `spack env depfile` build
# ROCM 908
- adios2 +kokkos +rocm amdgpu_target=gfx908
- amrex +rocm amdgpu_target=gfx908
- arborx +rocm amdgpu_target=gfx908
- cabana +rocm amdgpu_target=gfx908
- caliper +rocm amdgpu_target=gfx908
- chai ~benchmarks +rocm amdgpu_target=gfx908
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908
- gasnet +rocm amdgpu_target=gfx908
- ginkgo +rocm amdgpu_target=gfx908
- heffte +rocm amdgpu_target=gfx908
- hpx +rocm amdgpu_target=gfx908
- hypre +rocm amdgpu_target=gfx908
- kokkos +rocm amdgpu_target=gfx908
- legion +rocm amdgpu_target=gfx908
- magma ~cuda +rocm amdgpu_target=gfx908
- mfem +rocm amdgpu_target=gfx908
- petsc +rocm amdgpu_target=gfx908
- raja ~openmp +rocm amdgpu_target=gfx908
- slate +rocm amdgpu_target=gfx908
- slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
- strumpack ~slate +rocm amdgpu_target=gfx908
- sundials +rocm amdgpu_target=gfx908
- superlu-dist +rocm amdgpu_target=gfx908
- tasmanian ~openmp +rocm amdgpu_target=gfx908
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908
- umpire +rocm amdgpu_target=gfx908
- upcxx +rocm amdgpu_target=gfx908
# INCLUDED IN ECP DAV ROCM
# - hdf5
# - hdf5-vol-async
# - hdf5-vol-cache
# - hdf5-vol-log
# - libcatalyst
- paraview +rocm amdgpu_target=gfx908
# - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268
# --
# - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
# - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807
# - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898
# # ROCM 908
# - adios2 +kokkos +rocm amdgpu_target=gfx908
# - amrex +rocm amdgpu_target=gfx908
# - arborx +rocm amdgpu_target=gfx908
# - cabana +rocm amdgpu_target=gfx908
# - caliper +rocm amdgpu_target=gfx908
# - chai ~benchmarks +rocm amdgpu_target=gfx908
# - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx908
# - gasnet +rocm amdgpu_target=gfx908
# - ginkgo +rocm amdgpu_target=gfx908
# - heffte +rocm amdgpu_target=gfx908
# - hpx +rocm amdgpu_target=gfx908
# - hypre +rocm amdgpu_target=gfx908
# - kokkos +rocm amdgpu_target=gfx908
# - legion +rocm amdgpu_target=gfx908
# - magma ~cuda +rocm amdgpu_target=gfx908
# - mfem +rocm amdgpu_target=gfx908
# - petsc +rocm amdgpu_target=gfx908
# - raja ~openmp +rocm amdgpu_target=gfx908
# - slate +rocm amdgpu_target=gfx908
# - slepc +rocm amdgpu_target=gfx908 ^petsc +rocm amdgpu_target=gfx908
# - strumpack ~slate +rocm amdgpu_target=gfx908
# - sundials +rocm amdgpu_target=gfx908
# - superlu-dist +rocm amdgpu_target=gfx908
# - tasmanian ~openmp +rocm amdgpu_target=gfx908
# - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx908
# - umpire +rocm amdgpu_target=gfx908
# - upcxx +rocm amdgpu_target=gfx908
# # INCLUDED IN ECP DAV ROCM
# # - hdf5
# # - hdf5-vol-async
# # - hdf5-vol-cache
# # - hdf5-vol-log
# # - libcatalyst
# - paraview +rocm amdgpu_target=gfx908
# # - vtk-m ~openmp +rocm amdgpu_target=gfx908 # vtk-m: https://github.com/spack/spack/issues/40268
# # --
# # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx908 ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx908 # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
# # - lbann ~cuda +rocm amdgpu_target=gfx908 # aluminum: https://github.com/spack/spack/issues/38807
# # - papi +rocm amdgpu_target=gfx908 # papi: https://github.com/spack/spack/issues/27898
# ROCM 90a
- adios2 +kokkos +rocm amdgpu_target=gfx90a
- amrex +rocm amdgpu_target=gfx90a
- arborx +rocm amdgpu_target=gfx90a
- cabana +rocm amdgpu_target=gfx90a
- caliper +rocm amdgpu_target=gfx90a
- chai ~benchmarks +rocm amdgpu_target=gfx90a
- ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a
- gasnet +rocm amdgpu_target=gfx90a
- ginkgo +rocm amdgpu_target=gfx90a
- heffte +rocm amdgpu_target=gfx90a
- hpx +rocm amdgpu_target=gfx90a
- hypre +rocm amdgpu_target=gfx90a
- kokkos +rocm amdgpu_target=gfx90a
- legion +rocm amdgpu_target=gfx90a
- magma ~cuda +rocm amdgpu_target=gfx90a
- mfem +rocm amdgpu_target=gfx90a
- petsc +rocm amdgpu_target=gfx90a
- raja ~openmp +rocm amdgpu_target=gfx90a
- slate +rocm amdgpu_target=gfx90a
- slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
- strumpack ~slate +rocm amdgpu_target=gfx90a
- sundials +rocm amdgpu_target=gfx90a
- superlu-dist +rocm amdgpu_target=gfx90a
- tasmanian ~openmp +rocm amdgpu_target=gfx90a
- trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a
- umpire +rocm amdgpu_target=gfx90a
- upcxx +rocm amdgpu_target=gfx90a
# INCLUDED IN ECP DAV ROCM
# - hdf5
# - hdf5-vol-async
# - hdf5-vol-cache
# - hdf5-vol-log
# - libcatalyst
- paraview +rocm amdgpu_target=gfx90a
# - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268
# --
# - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
# - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807
# - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898
# # ROCM 90a
# - adios2 +kokkos +rocm amdgpu_target=gfx90a
# - amrex +rocm amdgpu_target=gfx90a
# - arborx +rocm amdgpu_target=gfx90a
# - cabana +rocm amdgpu_target=gfx90a
# - caliper +rocm amdgpu_target=gfx90a
# - chai ~benchmarks +rocm amdgpu_target=gfx90a
# - ecp-data-vis-sdk +paraview +vtkm +rocm amdgpu_target=gfx90a
# - gasnet +rocm amdgpu_target=gfx90a
# - ginkgo +rocm amdgpu_target=gfx90a
# - heffte +rocm amdgpu_target=gfx90a
# - hpx +rocm amdgpu_target=gfx90a
# - hypre +rocm amdgpu_target=gfx90a
# - kokkos +rocm amdgpu_target=gfx90a
# - legion +rocm amdgpu_target=gfx90a
# - magma ~cuda +rocm amdgpu_target=gfx90a
# - mfem +rocm amdgpu_target=gfx90a
# - petsc +rocm amdgpu_target=gfx90a
# - raja ~openmp +rocm amdgpu_target=gfx90a
# - slate +rocm amdgpu_target=gfx90a
# - slepc +rocm amdgpu_target=gfx90a ^petsc +rocm amdgpu_target=gfx90a
# - strumpack ~slate +rocm amdgpu_target=gfx90a
# - sundials +rocm amdgpu_target=gfx90a
# - superlu-dist +rocm amdgpu_target=gfx90a
# - tasmanian ~openmp +rocm amdgpu_target=gfx90a
# - trilinos +amesos +amesos2 +anasazi +aztec +belos +boost +epetra +epetraext +ifpack ~ifpack2 +intrepid +intrepid2 +isorropia +kokkos +ml +minitensor +muelu +nox +piro +phalanx +rol +rythmos +sacado +stk +shards +shylu ~stokhos +stratimikos +teko +tempus +tpetra +trilinoscouplings +zoltan +zoltan2 +superlu-dist gotype=long_long +rocm amdgpu_target=gfx90a
# - umpire +rocm amdgpu_target=gfx90a
# - upcxx +rocm amdgpu_target=gfx90a
# # INCLUDED IN ECP DAV ROCM
# # - hdf5
# # - hdf5-vol-async
# # - hdf5-vol-cache
# # - hdf5-vol-log
# # - libcatalyst
# - paraview +rocm amdgpu_target=gfx90a
# # - vtk-m ~openmp +rocm amdgpu_target=gfx90a # vtk-m: https://github.com/spack/spack/issues/40268
# # --
# # - exago +mpi +python +raja +hiop +rocm amdgpu_target=gfx90a ~ipopt cxxflags="-Wno-error=non-pod-varargs" ^hiop@1.0.0 ~sparse +mpi +raja +rocm amdgpu_target=gfx90a # hiop: CMake Error at cmake/FindHiopHipLibraries.cmake:23 (find_package)
# # - lbann ~cuda +rocm amdgpu_target=gfx90a # aluminum: https://github.com/spack/spack/issues/38807
# # - papi +rocm amdgpu_target=gfx90a # papi: https://github.com/spack/spack/issues/27898
ci:
pipeline-gen:
- build-job:
image: "ghcr.io/spack/ubuntu20.04-runner-amd64-gcc-11.4:2023.08.01"
image: ecpe4s/ubuntu22.04-runner-amd64-gcc-11.4:2024.03.01
cdash:
build-group: E4S

View File

@@ -33,6 +33,11 @@ class Aocc(Package):
maintainers("amd-toolchain-support")
version(
ver="4.2.0",
sha256="ed5a560ec745b24dc0685ccdcbde914843fb2f2dfbfce1ba592de4ffbce1ccab",
url="https://download.amd.com/developer/eula/aocc/aocc-4-2/aocc-compiler-4.2.0.tar",
)
version(
ver="4.1.0",
sha256="5b04bfdb751c68dfb9470b34235d76efa80a6b662a123c3375b255982cb52acd",
@@ -56,7 +61,6 @@ class Aocc(Package):
depends_on("zlib-api")
depends_on("ncurses")
depends_on("libtool")
depends_on("texinfo")
variant(
"license-agreed",

View File

@@ -0,0 +1,12 @@
diff --color=auto --color=auto -Naur a/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java 1980-01-01 00:00:00
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/HeaderDiscovery.java 2024-02-15 13:36:37
@@ -143,7 +143,7 @@
LabelConstants.EXPERIMENTAL_EXTERNAL_PATH_PREFIX.getRelative(
execPath.relativeTo(execRoot.getParentDirectory()));
} else {
- absolutePathProblems.add(execPathFragment.getPathString());
+ // absolutePathProblems.add(execPathFragment.getPathString());
continue;
}
}

View File

@@ -18,10 +18,23 @@ class Bazel(Package):
homepage = "https://bazel.build/"
url = "https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-dist.zip"
maintainers("LydDeb")
tags = ["build-tools"]
license("Apache-2.0")
version("7.0.2", sha256="dea2b90575d43ef3e41c402f64c2481844ecbf0b40f8548b75a204a4d504e035")
version("7.0.1", sha256="596b13e071d27c43343ec8f5d263cb5312fafe7ef8702401f7ed492f182f4e6c")
version("7.0.0", sha256="477e54f6374001f439a9471ba1de9d7824daf129db95510849ecc5e19ce88170")
version("6.5.0", sha256="fc89da919415289f29e4ff18a5e01270ece9a6fe83cb60967218bac4a3bb3ed2")
version("6.4.0", sha256="bd88ff602c8bbb29ee82ba2a6b12ad092d51ec668c6577f9628f18e48ff4e51e")
version("6.3.2", sha256="8cd7feac58193be2bcba451ba6688a46824d37ca6359ff58e0d44eb98f042948")
version("6.3.1", sha256="2676319e86c5aeab142dccd42434364a33aa330a091c13562b7de87a10e68775")
version("6.3.0", sha256="902198981b1d26112fc05913e79f1b3e9772c3f95594caf85619d041ba06ede0")
version("6.2.1", sha256="4cf4d264bff388ee0012735728630d23832d3c9d021383b2fadceadb0775dd6b")
version("6.2.0", sha256="f1e8f788637ac574d471d619d2096baaca04a19b57a034399e079633db441945")
version("6.1.2", sha256="6fb3ee22fe9fa86d82e173572d504c089f10825d749725592626e090b38c9679")
version("6.1.1", sha256="6b900f26d676c7eca1d2e7dff9b71890dabd3ff59cab2a2d2178bc8a0395342a")
version("6.1.0", sha256="c4b85675541cf66ee7cb71514097fdd6c5fc0e02527243617a4f20ca6b4f2932")
version("6.0.0", sha256="7bc0c5145c19a56d82a08fce6908c5e1a0e75e4fbfb3b6f12b4deae7f4b38cbc")
@@ -33,6 +46,7 @@ class Bazel(Package):
version("5.1.1", sha256="7f5d3bc1d344692b2400f3765fd4b5c0b636eb4e7a8a7b17923095c7b56a4f78")
version("5.1.0", sha256="4de301f509fc6d0cbc697b2017384ecdc94df8f36245bbcbedc7ea6780acc9f5")
version("5.0.0", sha256="072dd62d237dbc11e0bac02e118d8c2db4d0ba3ba09f1a0eb1e2a460fb8419db")
version("4.2.4", sha256="d5ba2ef28da5275f22e832aaa7f9319c61ea5db9b6a3e23b28a6a64ad03078f3")
version("4.2.3", sha256="b0e84d0538f3ec2b95a49bae31a5066f0967281a3ca99965016fbe178acd2d3d")
version("4.2.2", sha256="9981d0d53a356c4e87962847750a97c9e8054e460854748006c80f0d7e2b2d33")
version("4.2.1", sha256="12ea7aa11e2bdb12de1dceb9939a22e96f5a480437cb17c123379d8e0fdf5e82")
@@ -66,7 +80,6 @@ class Bazel(Package):
)
# https://bazel.build/install/compile-source#bootstrap-unix-prereq
depends_on("java", type=("build", "run"))
depends_on("java@11", when="@5.3:", type=("build", "run"))
depends_on("java@8,11", when="@3.3:5.2", type=("build", "run"))
depends_on("java@8", when="@0.6:3.2", type=("build", "run"))
@@ -84,10 +97,11 @@ class Bazel(Package):
patch("compile-0.29.patch")
# Disable dependency search
patch("cppcompileaction-0.3.2.patch", when="+nodepfail")
patch("cppcompileaction-7.0.0.patch", when="@7: +nodepfail")
patch("cppcompileaction-0.3.2.patch", when="@:6 +nodepfail")
# https://github.com/bazelbuild/bazel/issues/17956
patch("apple-clang-14.0.3.patch", when="@:5.4.0,6.0:6.1")
patch("apple-clang-14.0.3.patch", when="@:4.2.3,5:6.1.1")
# https://github.com/bazelbuild/bazel/issues/17958
patch(
@@ -120,6 +134,39 @@ class Bazel(Package):
executables = ["^bazel$"]
# Download resources to perform offline build with bazel.
# The following URLs and sha256 are in the file distdir_deps.bzl at the root of bazel sources.
resource_dictionary = {}
resource_dictionary["bazel_skylib"] = {
"url": "https://github.com/bazelbuild/bazel-skylib/releases/download/1.0.1/bazel-skylib-1.0.1.tar.gz",
"sha256": "f1c8360c01fcf276778d3519394805dc2a71a64274a3a0908bc9edff7b5aebc8",
"when": "@4:6",
}
resource_dictionary["zulu_11_56_19"] = {
"url": "https://mirror.bazel.build/cdn.azul.com/zulu/bin/zulu11.56.19-ca-jdk11.0.15-linux_x64.tar.gz",
"sha256": "e064b61d93304012351242bf0823c6a2e41d9e28add7ea7f05378b7243d34247",
"when": "@6",
}
resource_dictionary["zulu_11_50_19"] = {
"url": "https://mirror.bazel.build/openjdk/azul-zulu11.50.19-ca-jdk11.0.12/zulu11.50.19-ca-jdk11.0.12-linux_x64.tar.gz",
"sha256": "b8e8a63b79bc312aa90f3558edbea59e71495ef1a9c340e38900dd28a1c579f3",
"when": "@5",
}
resource_dictionary["zulu_11_37_17"] = {
"url": "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz",
"sha256": "360626cc19063bc411bfed2914301b908a8f77a7919aaea007a977fa8fb3cde1",
"when": "@4",
}
for resource_name in resource_dictionary.keys():
resource(
when=resource_dictionary[resource_name]["when"],
name=resource_name,
url=resource_dictionary[resource_name]["url"],
sha256=resource_dictionary[resource_name]["sha256"],
destination="archive",
expand=False,
)
@classmethod
def determine_version(cls, exe):
output = Executable(exe)("version", output=str, error=str)
@@ -132,14 +179,24 @@ def setup_build_environment(self, env):
env.set("BAZEL_LINKOPTS", "")
env.set("BAZEL_LINKLIBS", "-lstdc++")
env.set(
"EXTRA_BAZEL_ARGS",
# Spack's logs don't handle colored output well
"--color=no --host_javabase=@local_jdk//:jdk"
# Enable verbose output for failures
" --verbose_failures --jobs={0}".format(make_jobs),
# .WARNING: Option 'host_javabase' is deprecated
# Use local java installation
args = "--color=no --define=ABSOLUTE_JAVABASE={0} --verbose_failures --jobs={1}".format(
self.spec["java"].prefix, make_jobs
)
resource_stages = self.stage[1:]
for _resource in resource_stages:
try:
resource_name = _resource.resource.name
if self.spec.satisfies(self.resource_dictionary[resource_name]["when"]):
archive_path = _resource.source_path
args += " --distdir={0}".format(archive_path)
except AttributeError:
continue
env.set("EXTRA_BAZEL_ARGS", args)
@run_before("install")
def bootstrap(self):
bash = which("bash")

View File

@@ -0,0 +1,13 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4750d9a..7b10b57 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ if (CMAKE_VERSION VERSION_LESS 3.9.0)
cmake_policy(SET CMP0042 OLD)
endif()
-set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD 11 CACHE STRING "")
set(CMAKE_CXX_STANDARD_REQUIRED ON)
include(GenerateExportHeader)

View File

@@ -22,7 +22,9 @@ class Bdsim(CMakePackage):
license("GPL-3.0-or-later")
version("develop", branch="develop")
version("master", branch="master")
version("1.7.6", sha256="92f53aa0a9fbd3cafd218f9e58ae4d1e7115733e641191c1658243fefb436600")
version("1.7.0", sha256="713ce3c9d94f340ca774ce1803e0c4f992b904dbc28ce4129713abe883e98683")
version("1.6.0", sha256="e3241d2d097cb4e22249e315c1474da9b3657b9c6893232d9f9e543a5323f717")
depends_on("cmake")
@@ -32,3 +34,10 @@ class Bdsim(CMakePackage):
depends_on("clhep")
depends_on("flex")
depends_on("bison")
patch("c++-standard.patch", when="@:1.7.6")
def cmake_args(self):
args = []
args.append(f"-DCMAKE_CXX_STANDARD={self.spec['root'].variants['cxxstd'].value}")
return args

View File

@@ -50,15 +50,15 @@ class Bison(AutotoolsPackage, GNUMirrorPackage):
version("3.0.4", sha256="b67fd2daae7a64b5ba862c66c07c1addb9e6b1b05c5f2049392cfd8a2172952e")
version("2.7", sha256="19bbe7374fd602f7a6654c131c21a15aebdc06cc89493e8ff250cb7f9ed0a831")
variant("color", default=False, description="Enable experimental colored output", when="@3.4:")
# https://lists.gnu.org/archive/html/bug-bison/2019-08/msg00008.html
patch("parallel.patch", when="@3.4.2")
provides("yacc")
depends_on("gettext", when="@3.4:")
depends_on("diffutils", type="build")
depends_on("m4", type=("build", "run"))
depends_on("perl", type="build")
depends_on("gettext", when="+color")
depends_on("m4@1.4.6:", type=("build", "run"))
patch("pgi.patch", when="@3.0.4")
# The NVIDIA compilers do not currently support some GNU builtins.

View File

@@ -26,6 +26,8 @@ class Btop(MakefilePackage, CMakePackage):
variant("gpu", default=False, description="Enable GPU support", when="build_system=cmake")
depends_on("cmake@3.24:", type="build", when="@1.3.0: build_system=cmake")
# Fix linking GPU support, by adding an explicit "target_link_libraries" to ${CMAKE_DL_LIBS}
patch("link-dl.patch", when="+gpu")

View File

@@ -69,6 +69,7 @@ def cmake_args(self):
self.define("BUILD_TESTS", self.run_tests),
self.define("BUILD_BENCHMARKS", self.run_tests),
self.define("BUILD_EXAMPLES", self.run_tests),
self.define("BUILD_FUZZERS", self.run_tests),
]
return args

View File

@@ -58,7 +58,7 @@ class Camp(CMakePackage, CudaPackage, ROCmPackage):
depends_on("blt", type="build")
depends_on("blt@0.5.0:0.5.3", type="build", when="@2022.03.0:")
patch("gcc-13-missing-header.patch", when="@:2022.10 %gcc@13:")
patch("libstdc++-13-missing-header.patch", when="@:2022.10")
conflicts("^blt@:0.3.6", when="+rocm")

View File

@@ -75,15 +75,14 @@ def cmake_args(self):
"CMAKE_CXX_COMPILER", "{0}/bin/clang++".format(spec["llvm-amdgpu"].prefix)
),
self.define("CMAKE_C_COMPILER", "{0}/bin/clang".format(spec["llvm-amdgpu"].prefix)),
self.define("HIP_PATH", spec["hip"].prefix),
self.define("HIP_ROOT_DIR", "{0}".format(spec["hip"].prefix)),
self.define("CMAKE_CXX_FLAGS", "-O3"),
self.define("CMAKE_BUILD_TYPE", "Release"),
]
if "auto" not in self.spec.variants["amdgpu_target"]:
args.append(self.define_from_variant("AMDGPU_TARGETS", "amdgpu_target"))
args.append(self.define_from_variant("GPU_TARGETS", "amdgpu_target"))
if self.spec.satisfies("@5.6.0:"):
args.append(self.define("INSTANCES_ONLY", "ON"))
if self.spec.satisfies("@:5.7"):
args.append(self.define("CMAKE_CXX_FLAGS", "-O3"))
return args
def build(self, spec, prefix):

View File

@@ -26,6 +26,7 @@ class Dd4hep(CMakePackage):
license("LGPL-3.0-or-later")
version("master", branch="master")
version("1.28", sha256="b28d671eda0154073873a044a384486e66f1f200065deca99537aa84f07328ad")
version("1.27.2", sha256="09d8acd743d010274562b856d39e2a88aeaf89cf287a4148f52223b0cd960ab2")
version("1.27.1", sha256="e66ae726c0a9a55e5603024a7f8a48ffbc5613ea36e5f892e9a90d87833f92e0")
version("1.27", sha256="51fbd0f91f2511261d9b01e4b3528c658bea1ea1b5d67b25b6812615e782a902")

View File

@@ -45,23 +45,13 @@ class Delphes(CMakePackage):
variant("pythia8", default=True, description="build with pythia8")
variant(
"cxxstd",
default="17",
values=("14", "17"),
multi=False,
description="Use the specified C++ standard when building.",
)
depends_on("cmake", type="build")
depends_on("root cxxstd=14", when="cxxstd=14")
depends_on("root cxxstd=17", when="cxxstd=17")
depends_on("root")
depends_on("pythia8", when="+pythia8")
def cmake_args(self):
args = []
# C++ Standard
args.append("-DCMAKE_CXX_STANDARD=%s" % self.spec.variants["cxxstd"].value)
args.append(f"-DCMAKE_CXX_STANDARD={self.spec['root'].variants['cxxstd'].value}")
return args
def setup_run_environment(self, env):

View File

@@ -23,6 +23,7 @@ class DoubleBatchedFftLibrary(CMakePackage):
version("main", branch="main")
version("develop", branch="develop")
version("0.5.0", sha256="cbd2ecf039cc40830e57a8af8295abf2083ce3b1a333279a8c17762f41131fff")
version("0.4.0", sha256="f3518012b632c92c2a933d70a040d6b0eee2d631ab6b1881a192a8d1624f242d")
version("0.3.6", sha256="ff163251d77d3c686563141e871c702bf4997c0302d53616add55d6cf9b02d28")

View File

@@ -10,9 +10,18 @@ class Eigenexa(AutotoolsPackage):
"""EigenExa is a high-performance eigenvalue solver."""
homepage = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/"
url = "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz"
version("2.6", sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95")
version("2.12", sha256="2a33999b09d4434a5ce2fbd18cabbfee1cff0b2a12df7ded1f67127157b08f86")
version("2.11", sha256="87dee8ac13f410a007e82df2688fa7f143883229dac729fd20836f4a28fac43d")
version("2.10", sha256="5b1806e132b191d23680b34fbc286d676ba20f58ee754122087a3ec3cacb8fa3")
version("2.9", sha256="8788922035bf67abf1a7aecf8e30dd7564de387fda4ecd11c6b4cf9259d25990")
version("2.8", sha256="3ee846d4db10336d393738eadab2f1c941dfc8fb501f2a4baf0823f0ff938f56")
version("2.7", sha256="490f3d0217a8c101e66e785229baaba5b4d674508bc9a5aca6cc5fa074f3a8aa")
version(
"2.6",
sha256="a1a4e571a8051443f28e7ea4889272993452a4babd036d2b4dd6b28154302f95",
url="https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-2.6.tgz",
)
depends_on("autoconf", type="build")
depends_on("automake", type="build")
@@ -23,11 +32,16 @@ class Eigenexa(AutotoolsPackage):
depends_on("scalapack")
patch("fj_compiler.patch", when="%fj")
patch("gcc_compiler.patch", when="%gcc")
patch("gcc_compiler.patch", when="@:2.6.99 %gcc")
parallel = False
force_autoreconf = True
def url_for_version(self, version):
return "https://www.r-ccs.riken.jp/labs/lpnctrt/projects/eigenexa/EigenExa-{0}.{1}".format(
version, "tar.gz" if version >= Version("2.7") else ".tgz"
)
def setup_build_environment(self, env):
env.set("FC", self.spec["mpi"].mpifc, force=True)
env.set("F77", self.spec["mpi"].mpif77, force=True)
@@ -47,6 +61,13 @@ def setup_build_environment(self, env):
),
)
if self.spec.satisfies("%gcc@10:"):
fflags = "-fallow-argument-mismatch"
if self.spec.satisfies("@:2.8"):
fflags += " -fallow-invalid-boz"
env.set("FCFLAGS", fflags)
env.set("FFLAGS", fflags)
@run_after("install")
def cache_test_sources(self):
"""Save off benchmark files for stand-alone tests."""

View File

@@ -66,6 +66,10 @@ class Fdb(CMakePackage):
when="@5.7.1:5.7.10+tools",
)
@property
def libs(self):
return find_libraries("libfdb5", root=self.prefix, shared=True, recursive=True)
def cmake_args(self):
enable_build_tools = "+tools" in self.spec

View File

@@ -93,7 +93,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
depends_on("legion+shared", when="backend=legion @:1")
depends_on("legion+hdf5", when="backend=legion +hdf5 @:1")
depends_on("legion build_type=Debug", when="backend=legion +debug_backend")
depends_on("legion@cr", when="backend=legion @:1")
depends_on("legion@master", when="backend=legion @:1")
depends_on("hpx@1.4.1 cxxstd=17 malloc=system max_cpu_count=128", when="backend=hpx @:1")
depends_on("hpx build_type=Debug", when="backend=hpx +debug_backend")
depends_on("googletest@1.8.1+gmock", when="@:1")
@@ -113,7 +113,7 @@ class Flecsi(CMakePackage, CudaPackage, ROCmPackage):
depends_on("kokkos +cuda +cuda_constexpr +cuda_lambda", when="+kokkos +cuda @2.0:")
depends_on("kokkos +rocm", when="+kokkos +rocm @2.0:")
depends_on("kokkos +openmp", when="+kokkos +openmp @2.0:")
depends_on("legion@cr", when="backend=legion @2.0:")
depends_on("legion@master", when="backend=legion @2.0:")
depends_on("legion+shared", when="backend=legion +shared @2.0:")
depends_on("legion+hdf5", when="backend=legion +hdf5 @2.0:")
depends_on("legion+kokkos", when="backend=legion +kokkos @2.0:")

View File

@@ -26,6 +26,7 @@ class Garfieldpp(CMakePackage):
variant("examples", default=False, description="Build garfield examples")
version("master", branch="master")
version("5.0", sha256="453e83c2829f57046c471a691e7cd9630650a3c6a696f3be6e86bf2d5159e7b3")
version("4.0", sha256="82bc1f0395213bd30a7cd854426e6757d0b4155e99ffd4405355c9648fa5ada3")
version("3.0", sha256="c1282427a784658bc38b71c8e8cfc8c9f5202b185f0854d85f7c9c5a747c5406")

View File

@@ -47,7 +47,8 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
variant("sycl", default=False, description="Enable SYCL backend")
variant("develtools", default=False, description="Compile with develtools enabled")
variant("hwloc", default=False, description="Enable HWLOC support")
variant("mpi", default=False, description="Enable MPI support")
variant("sde", default=False, description="Enable PAPI SDE support", when="@1.7.0:")
variant("mpi", default=False, description="Enable MPI support", when="@1.5.0:")
depends_on("cmake@3.9:", type="build", when="@:1.3.0")
depends_on("cmake@3.13:", type="build", when="@1.4.0:1.6.0")
@@ -68,6 +69,8 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
# setup for rocthrust, this needs to also be added here.
depends_on("rocprim", when="+rocm")
depends_on("hwloc@2.1:", when="+hwloc")
# TODO: replace with the next PAPI version when available (>7.0.1.0)
depends_on("papi@master+sde", when="+sde")
depends_on("googletest", type="test")
depends_on("numactl", type="test", when="+hwloc")
@@ -78,7 +81,6 @@ class Ginkgo(CMakePackage, CudaPackage, ROCmPackage):
conflicts("%gcc@:5.2.9")
conflicts("+rocm", when="@:1.1.1")
conflicts("+mpi", when="@:1.4.0")
# ROCm 4.1.0 breaks platform settings which breaks Ginkgo's HIP support.
conflicts("^hip@4.1.0:", when="@:1.3.0")
@@ -151,6 +153,7 @@ def cmake_args(self):
from_variant("BUILD_SHARED_LIBS", "shared"),
from_variant("GINKGO_JACOBI_FULL_OPTIMIZATIONS", "full_optimizations"),
from_variant("GINKGO_BUILD_HWLOC", "hwloc"),
from_variant("GINKGO_WITH_PAPI_SDE", "sde"),
from_variant("GINKGO_DEVEL_TOOLS", "develtools"),
# As we are not exposing benchmarks, examples, tests nor doc
# as part of the installation, disable building them altogether.

View File

@@ -0,0 +1,28 @@
# 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 Gpuscout(CMakePackage, CudaPackage):
"""GPUscout: A tool for discovering data movement-related bottlenecks on NVidia GPUs."""
homepage = "https://github.com/caps-tum/GPUscout"
url = "https://github.com/caps-tum/GPUscout/archive/refs/tags/v0.2.1.tar.gz"
git = "https://github.com/caps-tum/GPUscout.git"
maintainers("stepanvanecek")
license("Apache-2.0")
version(
"0.2.1",
sha256="78db030c443b971358905460c53c514134c18ebca9cafc26bfcfa297ff17683b",
extension="tar.gz",
)
version("master", branch="master")
depends_on("cmake@3.27:", type="build")
depends_on("cuda@12:")

View File

@@ -38,8 +38,8 @@ class Imagemagick(AutotoolsPackage):
depends_on("ghostscript-fonts", when="+ghostscript")
# TODO: are these actually required?
depends_on("libsm")
depends_on("libtool")
depends_on("libsm", when="platform=linux")
depends_on("libtool", when="platform=linux")
def configure_args(self):
args = []

View File

@@ -27,6 +27,8 @@ class Legion(CMakePackage, ROCmPackage):
maintainers("pmccormick", "streichler", "elliottslaughter")
tags = ["e4s"]
version("23.12.0", tag="legion-23.12.0", commit="8fea67ee694a5d9fb27232a7976af189d6c98456")
version("23.09.0", tag="legion-23.09.0", commit="7304dfcf9b69005dd3e65e9ef7d5bd49122f9b49")
version("23.06.0", tag="legion-23.06.0", commit="7b5ff2fb9974511c28aec8d97b942f26105b5f6d")
version("23.03.0", tag="legion-23.03.0", commit="12f6051c9d75229d00ac0b31d6be1ff2014f7e6a")
version("22.12.0", tag="legion-22.12.0", commit="9ed6f4d6b579c4f17e0298462e89548a4f0ed6e5")
@@ -39,7 +41,6 @@ class Legion(CMakePackage, ROCmPackage):
version("21.03.0", tag="legion-21.03.0", commit="0cf9ddd60c227c219c8973ed0580ddc5887c9fb2")
version("stable", branch="stable")
version("master", branch="master")
version("cr", branch="control_replication")
depends_on("cmake@3.16:", type="build")
# TODO: Need to spec version of MPI v3 for use of the low-level MPI transport
@@ -74,7 +75,7 @@ class Legion(CMakePackage, ROCmPackage):
# https://github.com/spack/spack/issues/37232#issuecomment-1553376552
patch("hip-offload-arch.patch", when="@23.03.0 +rocm")
patch("update-hip-path-legion-23.06.0.patch", when="@23.06.0 ^hip@6.0 +rocm")
patch("update-hip-path-legion-23.06.0.patch", when="@23.06.0:23.12.0 ^hip@6.0 +rocm")
def patch(self):
if "network=gasnet conduit=ofi-slingshot11 ^cray-mpich+wrappers" in self.spec:

View File

@@ -43,10 +43,6 @@ class Libevent(AutotoolsPackage):
depends_on("openssl@:1.0", when="@:2.0+openssl")
depends_on("openssl", when="+openssl")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
def url_for_version(self, version):
if version >= Version("2.0.22"):
url = "https://github.com/libevent/libevent/releases/download/release-{0}-stable/libevent-{0}-stable.tar.gz"
@@ -60,9 +56,6 @@ def libs(self):
libs = find_libraries("libevent", root=self.prefix, shared=True, recursive=True)
return LibraryList(libs)
def autoreconf(self, spec, prefix):
autoreconf("--force", "--install", "--symlink")
def configure_args(self):
spec = self.spec
configure_args = []

View File

@@ -5,7 +5,7 @@
import os
from spack.build_systems.generic import GenericBuilder
from spack.build_systems import cmake, generic
from spack.package import *
@@ -22,6 +22,16 @@ class Libogg(CMakePackage, AutotoolsPackage, Package):
version("1.3.4", sha256="fe5670640bd49e828d64d2879c31cb4dde9758681bb664f9bdbf159a01b0c76e")
version("1.3.2", sha256="e19ee34711d7af328cb26287f4137e70630e7261b17cbe3cd41011d73a654692")
variant("shared", default=True, description="Build shared library", when="build_system=cmake")
variant(
"pic",
default=True,
description="Produce position-independent code (for shared libs)",
when="build_system=cmake",
)
requires("+pic", when="+shared")
# Backport a patch that fixes an unsigned typedef problem on macOS:
# https://github.com/xiph/ogg/pull/64
patch(
@@ -37,7 +47,17 @@ class Libogg(CMakePackage, AutotoolsPackage, Package):
)
class GenericBuilder(GenericBuilder):
class CMakeBuilder(cmake.CMakeBuilder):
def cmake_args(self):
base_cmake_args = [
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"),
]
return base_cmake_args
class GenericBuilder(generic.GenericBuilder):
phases = ["build", "install"]
def is_64bit(self):

View File

@@ -23,6 +23,9 @@ class LinaroForge(Package):
maintainers("kenche-linaro")
if platform.machine() in ["aarch64", "arm64"]:
version(
"23.1.2", sha256="8c01f4768a8f784f0bfa78c82dbd39e5077bbc6880b6f3c3704019eecfca5b3a"
)
version(
"23.1.1", sha256="6e95a9c9f894caad073e58590733c4ce4489aec0d8db6553050e71a59e41e6f8"
)
@@ -47,6 +50,9 @@ class LinaroForge(Package):
"21.1.3", sha256="4a4ff7372aad5a31fc9e18b7b6c493691ab37d8d44a3158584e62d1ab82b0eeb"
)
elif platform.machine() == "ppc64le":
version(
"23.1.2", sha256="5c588a6b7391d75cced4016936d0c5a00023431269339432738ff33b860487b3"
)
version(
"23.1.1", sha256="9d4dfa440ef1cc9c6a7cb4f7eeec49fc77f0b6b75864fbe018a41783ac5fc5df"
)
@@ -74,6 +80,9 @@ class LinaroForge(Package):
"21.1.3", sha256="eecbc5686d60994c5468b2d7cd37bebe5d9ac0ba37bd1f98fbfc69b071db541e"
)
elif platform.machine() == "x86_64":
version(
"23.1.2", sha256="675d2d8e4510afefa0405eecb46ac8bf440ff35a5a40d5507dc12d29678a22bf"
)
version(
"23.1.1", sha256="6dcd39fc582088eb4b13233ae1e9b38e12bfa07babf77d89b869473a3c2b66e6"
)

View File

@@ -0,0 +1,34 @@
From 710c4a97891a17b7c8a6ecde01c9ab747becc69b Mon Sep 17 00:00:00 2001
From: Renjith Ravindran <Renjith.RavindranKannath@amd.com>
Date: Tue, 13 Feb 2024 06:47:02 +0000
Subject: [PATCH] adding roctracer-dev include and library path
---
src/CMakeLists.txt | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7866ad1..8c83b3b 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -714,6 +714,8 @@ set(MIOPEN_CK_LINK_FLAGS composable_kernel::device_operations hip::host)
endif()
target_include_directories(MIOpen SYSTEM PUBLIC $<BUILD_INTERFACE:${HALF_INCLUDE_DIR}>)
+target_include_directories(MIOpen SYSTEM PUBLIC "${NLOHMANN_JSON_INCLUDE}")
+target_include_directories(MIOpen SYSTEM PUBLIC "${ROCTRACER_INCLUDE_DIR}")
target_include_directories(MIOpen SYSTEM PRIVATE ${BZIP2_INCLUDE_DIR})
# Workaround : change in rocm-cmake was causing linking error so had to add ${CMAKE_DL_LIBS}
# We can remove ${CMAKE_DL_LIBS} once root cause is identified.
@@ -855,7 +857,7 @@ if(NOT WIN32 AND NOT APPLE)
endif()
if(NOT WIN32)
- target_link_libraries(MIOpen PRIVATE roctx64)
+ target_link_libraries(MIOpen PRIVATE "${ROCTRACER_LIB_DIR}/libroctx64.so")
endif()
############################################################
--
2.39.3

View File

@@ -53,11 +53,12 @@ class MiopenHip(CMakePackage):
depends_on("half")
depends_on("zlib-api")
patch("miopen-hip-include-nlohmann-include-directory.patch", when="@5.4.0:")
patch("miopen-hip-include-nlohmann-include-directory.patch", when="@5.4.0:5.7")
patch("0002-add-include-dir-miopen-hip-6.0.0.patch", when="@6.0")
patch(
"https://github.com/ROCm/MIOpen/pull/2276/commits/f60aa1ff89f8fb596b4a6a4c70aa7d557803db87.patch?full_index=1",
sha256="c777d9f4cd2bbfec632b38620c0f70bb0cce8da1",
when="@5.7:",
when="@5.7",
)
for ver in [
@@ -93,6 +94,8 @@ class MiopenHip(CMakePackage):
for ver in ["5.4.0", "5.4.3", "5.5.0"]:
depends_on("nlohmann-json", type="link")
depends_on(f"rocmlir@{ver}", when=f"@{ver}")
for ver in ["6.0.0", "6.0.2"]:
depends_on("roctracer-dev@" + ver, when="@" + ver)
def setup_build_environment(self, env):
lib_dir = self.spec["zlib-api"].libs.directories[0]
@@ -147,4 +150,9 @@ def cmake_args(self):
args.append(
"-DNLOHMANN_JSON_INCLUDE={0}".format(self.spec["nlohmann-json"].prefix.include)
)
if self.spec.satisfies("@6.0.0:"):
args.append(
"-DROCTRACER_INCLUDE_DIR={0}".format(self.spec["roctracer-dev"].prefix.include)
)
args.append("-DROCTRACER_LIB_DIR={0}".format(self.spec["roctracer-dev"].prefix.lib))
return args

View File

@@ -203,7 +203,7 @@ def _fix_dtrace_shebang(self, env):
copy(dtrace, dtrace_copy)
filter_file(
"^#!/usr/bin/python",
"#!/usr/bin/env {0}".format(os.path.basename(self.spec["python"].command)),
"#!/usr/bin/env {0}".format(os.path.basename(str(self.spec["python"].command))),
dtrace_copy,
)
# To have our own copy of dtrace in PATH, we need to

View File

@@ -17,6 +17,7 @@ class Nccl(MakefilePackage, CudaPackage):
maintainers("adamjstewart")
libraries = ["libnccl.so"]
version("2.20.3-1", sha256="19456bd63ca7d23a8319cbbdbaaf6c25949dd51161a9f8809f6b7453282983dd")
version("2.19.3-1", sha256="1c5474553afedb88e878c772f13d6f90b9226b3f2971dfa6f873adb9443100c2")
version("2.18.5-1", sha256="16ac98f3e926c024ce48e10ab220e19ce734adc48c423cfd55ad6f509bd1179f")
version("2.18.3-1", sha256="6477d83c9edbb34a0ebce6d751a1b32962bc6415d75d04972b676c6894ceaef9")

View File

@@ -0,0 +1,32 @@
# Copyright 2013-2023 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 Ncvis(CMakePackage):
"""A NetCDF file viewer. ncvis is inspired by David Pierce's
most excellent ncview utility."""
homepage = "https://github.com/SEATStandards/ncvis"
url = "https://github.com/SEATStandards/ncvis/archive/refs/tags/2022.08.28.tar.gz"
git = "https://github.com/SEATStandards/ncvis.git"
maintainers("vanderwb")
version(
"2022.08.28", sha256="a522926739b2a05ef0b436fe67a2014557f9e5fecf3b7d7700964e9006a4bf3e"
)
depends_on("cmake", type="build")
depends_on("netcdf-c", type="link")
depends_on("wxwidgets+opengl", type="link")
@run_after("install")
def install_resources(self):
install_tree("resources", self.prefix.resources)
def setup_run_environment(self, env):
env.set("NCVIS_RESOURCE_DIR", self.prefix.resources)

View File

@@ -351,6 +351,24 @@ def cmake_args(self):
base_cmake_args.append(self.define("NC_FIND_SHARED_LIBS", False))
return base_cmake_args
@run_after("install")
def patch_hdf5_pkgconfigcmake(self):
"""
Incorrect hdf5 library names are put in the package config and config.cmake files
due to incorrectly using hdf5 target names
https://github.com/spack/spack/pull/42878
"""
pkgconfig_file = find(self.prefix, "netcdf.pc", recursive=True)
cmakeconfig_file = find(self.prefix, "netCDFTargets.cmake", recursive=True)
ncconfig_file = find(self.prefix, "nc-config", recursive=True)
settingsconfig_file = find(self.prefix, "libnetcdf.settings", recursive=True)
files = pkgconfig_file + cmakeconfig_file + ncconfig_file + settingsconfig_file
filter_file("hdf5-shared", "hdf5", *files, ignore_absent=True)
filter_file("hdf5_hl-shared", "hdf5_hl", *files, ignore_absent=True)
class AutotoolsBuilder(BaseBuilder, autotools.AutotoolsBuilder):
@property

View File

@@ -85,6 +85,17 @@ class Openexr(CMakePackage, AutotoolsPackage):
with when("build_system=cmake"):
depends_on("cmake@3.12:", type="build")
@property
def libs(self):
# Override because libs have different case than Spack package name
name = "libOpenEXR*"
# We expect libraries to be in either lib64 or lib directory
for root in (self.prefix.lib64, self.prefix.lib):
liblist = find_libraries(name, root=root, shared=True, recursive=False)
if liblist:
break
return liblist
class CMakeBuilder(CMakeBuilder):
def cmake_args(self):

View File

@@ -689,11 +689,13 @@ def configure(self, spec, prefix):
"CGAL": [
("BOOST_ARCH_PATH", spec["boost"].prefix),
("CGAL_ARCH_PATH", spec["cgal"].prefix),
("MPFR_ARCH_PATH", spec["mpfr"].prefix),
(
"LD_LIBRARY_PATH",
foam_add_lib(
pkglib(spec["boost"], "${BOOST_ARCH_PATH}"),
pkglib(spec["cgal"], "${CGAL_ARCH_PATH}"),
pkglib(spec["mpfr"], "${MPFR_ARCH_PATH}"),
),
),
],

View File

@@ -587,7 +587,7 @@ class Openmpi(AutotoolsPackage, CudaPackage):
with when("~internal-pmix"):
depends_on("pmix@1", when="@2")
depends_on("pmix@3.2:", when="@4:")
depends_on("pmix@4.2:", when="@5:")
depends_on("pmix@4.2.4:", when="@5:")
# pmix@4.2.3 contains a breaking change, compat fixed in openmpi@4.1.6
# See https://www.mail-archive.com/announce@lists.open-mpi.org//msg00158.html

View File

@@ -31,7 +31,7 @@ class Paraview(CMakePackage, CudaPackage, ROCmPackage):
version("master", branch="master", submodules=True)
version(
"5.12.0-RC2", sha256="5f43b1affee928a807b373024aefc8947f444247f9f4c3965bd52a836b95566b"
"5.12.0-RC3", sha256="6aaa46ff295126707294482e6ba24bd0ec0d68cf6bb5f56f145f8bcc53fc3f70"
)
version(
"5.11.2",

View File

@@ -0,0 +1,38 @@
# 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 PerlApacheLogformatCompiler(PerlPackage):
"""Compile a log format string to perl-code"""
homepage = "https://metacpan.org/pod/Apache::LogFormat::Compiler"
url = (
"https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-0.36.tar.gz"
)
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.36", sha256="94509503ee74ea820183d070c11630ee5bc0fd8c12cb74fae953ed62e4a1ac17")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-http-message", type=("build", "test"))
depends_on("perl-module-build-tiny@0.035:", type=("build"))
depends_on("perl-posix-strftime-compiler@0.30:", type=("build", "run", "test"))
depends_on("perl-test-mocktime", type=("build", "test"))
depends_on("perl-test-requires", type=("build", "test"))
depends_on("perl-try-tiny@0.12:", type=("build", "test"))
depends_on("perl-uri", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Apache::LogFormat::Compiler; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlCacheMemcached(PerlPackage):
"""Client library for memcached (memory cache daemon)"""
homepage = "https://metacpan.org/pod/Cache::Memcached"
url = "https://cpan.metacpan.org/authors/id/D/DO/DORMANDO/Cache-Memcached-1.30.tar.gz"
maintainers("EbiArnie")
version("1.30", sha256="31b3c51ec0eaaf03002e2cc8e3d7d5cbe61919cfdada61c008eb9853acac42a9")
depends_on("perl-string-crc32", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Cache::Memcached; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,25 @@
# 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 PerlCanaryStability(PerlPackage):
"""Canary to check perl compatibility for schmorp's modules"""
homepage = "https://metacpan.org/pod/Canary::Stability"
url = "https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/Canary-Stability-2013.tar.gz"
maintainers("EbiArnie")
version("2013", sha256="a5c91c62cf95fcb868f60eab5c832908f6905221013fea2bce3ff57046d7b6ea")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Canary::Stability; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,70 @@
# 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 PerlCatalystRuntime(PerlPackage):
"""The Catalyst Framework Runtime"""
homepage = "https://metacpan.org/pod/Catalyst::Test"
url = "https://cpan.metacpan.org/authors/id/J/JJ/JJNAPIORK/Catalyst-Runtime-5.90131.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("5.90131", sha256="9d641efacf0f9935e6ecb98f5a3b476c961b1f819bd2f8f23a647d1d867e1849")
depends_on("perl@5.8.3:", type=("build", "link", "run", "test"))
depends_on("perl-cgi-simple", type=("build", "run", "test"))
depends_on("perl-cgi-struct", type=("build", "run", "test"))
depends_on("perl-class-c3-adopt-next@0.07:", type=("build", "run", "test"))
depends_on("perl-class-load@0.12:", type=("build", "run", "test"))
depends_on("perl-data-dump", type=("build", "run", "test"))
depends_on("perl-data-optlist", type=("build", "run", "test"))
depends_on("perl-hash-multivalue", type=("build", "run", "test"))
depends_on("perl-html-parser", type=("build", "run", "test"))
depends_on("perl-http-body@1.22:", type=("build", "run", "test"))
depends_on("perl-http-message", type=("build", "run", "test"))
depends_on("perl-json-maybexs@1.000000:", type=("build", "run", "test"))
depends_on("perl-libwww-perl@5.837:", type=("build", "run", "test"))
depends_on("perl-module-pluggable@4.7:", type=("build", "run", "test"))
depends_on("perl-moose@2.1400:", type=("build", "run", "test"))
depends_on("perl-moosex-emulate-class-accessor-fast@0.00903:", type=("build", "run", "test"))
depends_on("perl-moosex-getopt@0.48:", type=("build", "run", "test"))
depends_on("perl-moosex-methodattributes", type=("build", "run", "test"))
depends_on("perl-mro-compat", type=("build", "run", "test"))
depends_on("perl-namespace-clean@0.23:", type=("build", "run", "test"))
depends_on("perl-path-class@0.09:", type=("build", "run", "test"))
depends_on("perl-perlio-utf8-strict", type=("build", "run", "test"))
depends_on("perl-plack@0.9991:", type=("build", "run", "test"))
depends_on(
"perl-plack-middleware-fixmissingbodyinredirect@0.09:", type=("build", "run", "test")
)
depends_on("perl-plack-middleware-methodoverride@0.12:", type=("build", "run", "test"))
depends_on("perl-plack-middleware-removeredundantbody@0.03:", type=("build", "run", "test"))
depends_on("perl-plack-middleware-reverseproxy@0.04:", type=("build", "run", "test"))
depends_on("perl-plack-test-externalserver", type=("build", "run", "test"))
depends_on("perl-safe-isa", type=("build", "run", "test"))
depends_on("perl-stream-buffered", type=("build", "run", "test"))
depends_on("perl-string-rewriteprefix@0.004:", type=("build", "run", "test"))
depends_on("perl-sub-exporter", type=("build", "run", "test"))
depends_on("perl-task-weaken", type=("build", "run", "test"))
depends_on("perl-test-fatal", type=("build", "test"))
depends_on("perl-text-simpletable@0.03:", type=("build", "run", "test"))
depends_on("perl-tree-simple@1.15:", type=("build", "run", "test"))
depends_on("perl-tree-simple-visitorfactory", type=("build", "run", "test"))
depends_on("perl-try-tiny@0.17:", type=("build", "run", "test"))
depends_on("perl-uri@1.65:", type=("build", "run", "test"))
depends_on("perl-uri-ws@0.03:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Catalyst::Test; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlCgiSimple(PerlPackage):
"""A Simple totally OO CGI interface that is CGI.pm compliant"""
homepage = "https://metacpan.org/pod/CGI::Simple"
url = "https://cpan.metacpan.org/authors/id/M/MA/MANWAR/CGI-Simple-1.281.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.281", sha256="4d58103fdfa5c8e1ed076b15d5cafb7001b2886cb3396f00564a881eb324e5a7")
depends_on("perl-test-exception", type=("build", "test"))
depends_on("perl-test-nowarnings", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use CGI::Simple; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

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 PerlCgiStruct(PerlPackage):
"""Build structures from CGI data"""
homepage = "https://metacpan.org/pod/CGI::Struct"
url = "https://cpan.metacpan.org/authors/id/F/FU/FULLERMD/CGI-Struct-1.21.tar.gz"
maintainers("EbiArnie")
license("BSD")
version("1.21", sha256="d13d8da7fdcd6d906054e4760fc28a718aec91bd3cf067a58927fb7cb1c09d6c")
depends_on("perl-test-deep", type=("build", "link"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use CGI::Struct; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,32 @@
# 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 PerlClassC3AdoptNext(PerlPackage):
"""Make NEXT suck less"""
homepage = "https://metacpan.org/pod/Class::C3::Adopt::NEXT"
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Class-C3-Adopt-NEXT-0.14.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.14", sha256="85676225aadb76e8666a6abe2e0659d40eb4581ad6385b170eea4e1d6bf34bf7")
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
depends_on("perl-module-build-tiny@0.039:", type=("build"))
depends_on("perl-mro-compat", type=("build", "run", "test"))
depends_on("perl-test-exception@0.27:", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Class::C3::Adopt::NEXT; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,32 @@
# 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 PerlCookieBaker(PerlPackage):
"""Cookie string generator / parser"""
homepage = "https://metacpan.org/pod/Cookie::Baker"
url = "https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/Cookie-Baker-0.12.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.12", sha256="9b04df5d47dcd45ac4299626a10ec990fb40c94ee5a6300c3a88bdfb3575ec29")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-module-build-tiny@0.035:", type=("build"))
depends_on("perl-test-time", type=("build", "test"))
depends_on("perl-uri", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Cookie::Baker; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

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 PerlDataDump(PerlPackage):
"""Pretty printing of data structures"""
homepage = "https://metacpan.org/pod/Data::Dump"
url = "https://cpan.metacpan.org/authors/id/G/GA/GARU/Data-Dump-1.25.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.25", sha256="a4aa6e0ddbf39d5ad49bddfe0f89d9da864e3bc00f627125d1bc580472f53fbd")
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Data::Dump; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

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 PerlDevelStacktraceAshtml(PerlPackage):
"""Displays stack trace in HTML"""
homepage = "https://metacpan.org/pod/Devel::StackTrace::AsHTML"
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-0.15.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.15", sha256="6283dbe2197e2f20009cc4b449997742169cdd951bfc44cbc6e62c2a962d3147")
depends_on("perl-devel-stacktrace", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Devel::StackTrace::AsHTML; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlFilesysNotifySimple(PerlPackage):
"""Simple and dumb file system watcher"""
homepage = "https://metacpan.org/pod/Filesys::Notify::Simple"
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Filesys-Notify-Simple-0.14.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.14", sha256="1fda712d4ba5e1868159ed35f6f8efbfae9d435d6376f5606d533bcb080555a4")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-test-sharedfork", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Filesys::Notify::Simple; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,31 @@
# 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 PerlGetoptLongDescriptive(PerlPackage):
"""Getopt::Long, but simpler and more powerful"""
homepage = "https://metacpan.org/pod/Getopt::Long::Descriptive"
url = "https://cpan.metacpan.org/authors/id/H/HD/HDP/Getopt-Long-Descriptive-0.088.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.088", sha256="5008d3694280087e03280208637916ba968013c54bee863a3c3e1185368f9e65")
depends_on("perl@5.12.0:", type=("build", "link", "run", "test"))
depends_on("perl-params-validate@0.97:", type=("build", "run", "test"))
depends_on("perl-sub-exporter@0.972:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Getopt::Long::Descriptive; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

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 PerlHashMultivalue(PerlPackage):
"""Store multiple values per key"""
homepage = "https://metacpan.org/pod/Hash::MultiValue"
url = "https://cpan.metacpan.org/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-0.16.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.16", sha256="66181df7aa68e2786faf6895c88b18b95c800a8e4e6fb4c07fd176410a3c73f4")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Hash::MultiValue; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlHttpBody(PerlPackage):
"""HTTP Body Parser"""
homepage = "https://metacpan.org/pod/HTTP::Body"
url = "https://cpan.metacpan.org/authors/id/G/GE/GETTY/HTTP-Body-1.22.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.22", sha256="fc0d2c585b3bd1532d92609965d589e0c87cd380e7cca42fb9ad0a1311227297")
depends_on("perl-http-message", type=("build", "link", "run", "test"))
depends_on("perl-test-deep", type=("build", "link"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use HTTP::Body; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,36 @@
# 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 PerlHttpEntityParser(PerlPackage):
"""PSGI compliant HTTP Entity Parser"""
homepage = "https://metacpan.org/pod/HTTP::Entity::Parser"
url = "https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.25", sha256="3a8cd0d8cba3d17cd8c04ee82d7341dfaa247dbdd94a49eb94b53f69e483ec3a")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-hash-multivalue", type=("build", "run", "test"))
depends_on("perl-http-message@6:", type=("build", "test"))
depends_on("perl-http-multipartparser", type=("build", "run", "test"))
depends_on("perl-json-maybexs@1.003007:", type=("build", "run", "test"))
depends_on("perl-module-build-tiny@0.035:", type=("build"))
depends_on("perl-stream-buffered", type=("build", "run", "test"))
depends_on("perl-www-form-urlencoded@0.23:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use HTTP::Entity::Parser; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,32 @@
# 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 PerlHttpHeadersFast(PerlPackage):
"""Faster implementation of HTTP::Headers"""
homepage = "https://metacpan.org/pod/HTTP::Headers::Fast"
url = "https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/HTTP-Headers-Fast-0.22.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.22", sha256="cc431db68496dd884db4bc0c0b7112c1f4a4f1dc68c4f5a3caa757a1e7481b48")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-http-date", type=("build", "run", "test"))
depends_on("perl-module-build-tiny@0.035:", type=("build"))
depends_on("perl-test-requires", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use HTTP::Headers::Fast; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlHttpMultipartparser(PerlPackage):
"""HTTP MultiPart Parser"""
homepage = "https://metacpan.org/pod/HTTP::MultiPartParser"
url = "https://cpan.metacpan.org/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.02", sha256="5eddda159f54d16f868e032440ac2b024e55aac48931871b62627f1a16d00b12")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-test-deep", type=("build", "link"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use HTTP::MultiPartParser; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,33 @@
# 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 PerlJsonAny(PerlPackage):
"""(DEPRECATED) Wrapper Class for the various JSON classes"""
homepage = "https://metacpan.org/pod/JSON::Any"
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/JSON-Any-1.40.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.40", sha256="083256255a48094fd9ac1239e0fea8a10a2383a9cd1ef4b1c7264ede1b4400ab")
depends_on("perl@5.8.0:", type=("build", "link", "run", "test"))
depends_on("perl-test-fatal", type=("build", "test"))
depends_on("perl-test-needs", type=("build", "test"))
depends_on("perl-test-warnings@0.009:", type=("build", "test"))
depends_on("perl-test-without-module", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use JSON::Any; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,32 @@
# 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 PerlJsonXs(PerlPackage):
"""JSON serialising/deserialising, done correctly and fast"""
homepage = "https://metacpan.org/pod/JSON::XS"
url = "https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-4.03.tar.gz"
maintainers("EbiArnie")
version("4.03", sha256="515536f45f2fa1a7e88c8824533758d0121d267ab9cb453a1b5887c8a56b9068")
depends_on("perl-canary-stability", type=("build"))
depends_on("perl-common-sense", type=("build", "run", "test"))
depends_on("perl-types-serialiser", type=("build", "run", "test"))
def setup_build_environment(self, env):
env.set("PERL_CANARY_STABILITY_NOPROMPT", "1")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use JSON::XS; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

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 PerlMojolicious(PerlPackage):
"""Real-time web framework"""
homepage = "https://metacpan.org/pod/Mojolicious"
url = "https://cpan.metacpan.org/authors/id/S/SR/SRI/Mojolicious-9.35.tar.gz"
maintainers("EbiArnie")
license("Artistic-2.0")
version("9.35", sha256="6a4a446ee07fca7c6db72f5d817540d6833009cb8de7cce4c6fb24a15ee7d46b")
depends_on("perl@5.16.0:", type=("build", "link", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Mojolicious; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,31 @@
# 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 PerlMoosexEmulateClassAccessorFast(PerlPackage):
"""Emulate Class::Accessor::Fast behavior using Moose attributes"""
homepage = "https://metacpan.org/pod/MooseX::Emulate::Class::Accessor::Fast"
url = "https://cpan.metacpan.org/authors/id/H/HA/HAARG/MooseX-Emulate-Class-Accessor-Fast-0.009032.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.009032", sha256="82eeb7ef1f0d25418ae406ea26912b241428d4b2ab9510d5e9deb3f72c187994")
depends_on("perl-moose@0.84:", type=("build", "run", "test"))
depends_on("perl-namespace-clean", type=("build", "run", "test"))
depends_on("perl-test-exception", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use MooseX::Emulate::Class::Accessor::Fast; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,42 @@
# 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 PerlMoosexGetopt(PerlPackage):
"""A Moose role for processing command line options"""
homepage = "https://metacpan.org/pod/MooseX::Getopt"
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/MooseX-Getopt-0.76.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.76", sha256="ff8731bd2b1df83347dfb6afe9ca15c04d2ecd8b288e5793d095eaf956b6b028")
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
depends_on("perl-getopt-long-descriptive@0.088:", type=("build", "run", "test"))
depends_on("perl-module-build-tiny@0.034:", type=("build"))
depends_on("perl-module-runtime", type=("build", "test"))
depends_on("perl-moose", type=("build", "run", "test"))
depends_on("perl-moosex-role-parameterized@1.01:", type=("build", "run", "test"))
depends_on("perl-namespace-autoclean", type=("build", "run", "test"))
depends_on("perl-path-tiny@0.009:", type=("build", "test"))
depends_on("perl-test-deep", type=("build", "test"))
depends_on("perl-test-fatal@0.003:", type=("build", "test"))
depends_on("perl-test-needs", type=("build", "test"))
depends_on("perl-test-trap", type=("build", "test"))
depends_on("perl-test-warnings@0.009:", type=("build", "test"))
depends_on("perl-try-tiny", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use MooseX::Getopt; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,34 @@
# 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 PerlMoosexMethodattributes(PerlPackage):
"""Code attribute introspection"""
homepage = "https://metacpan.org/pod/MooseX::MethodAttributes"
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/MooseX-MethodAttributes-0.32.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.32", sha256="cb33886574b7d2dd39c42c0dcdc707acdb0aec7dbbde9a21c0422660368c197b")
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
depends_on("perl-moose", type=("build", "run", "test"))
depends_on("perl-moosex-role-parameterized", type=("build", "test"))
depends_on("perl-namespace-autoclean@0.08:", type=("build", "run", "test"))
depends_on("perl-test-fatal", type=("build", "test"))
depends_on("perl-test-needs", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use MooseX::MethodAttributes; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,37 @@
# 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 PerlMoosexRoleParameterized(PerlPackage):
"""Moose roles with composition parameters"""
homepage = "https://metacpan.org/pod/MooseX::Role::Parameterized"
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/MooseX-Role-Parameterized-1.11.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.11", sha256="1cfe766c5d7f0ecab57f733dcca430a2a2acd6b995757141b940ade3692bec9e")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-cpan-meta-check@0.011:", type=("build", "test"))
depends_on("perl-module-build-tiny@0.034:", type=("build"))
depends_on("perl-module-runtime", type=("build", "run", "test"))
depends_on("perl-moose@2.0300:", type=("build", "run", "test"))
depends_on("perl-namespace-autoclean", type=("build", "run", "test"))
depends_on("perl-namespace-clean@0.19:", type=("build", "run", "test"))
depends_on("perl-test-fatal", type=("build", "test"))
depends_on("perl-test-needs", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use MooseX::Role::Parameterized; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlNetCidrLite(PerlPackage):
"""Perl extension for merging IPv4 or IPv6 CIDR addresses"""
homepage = "https://metacpan.org/pod/Net::CIDR::Lite"
url = "https://cpan.metacpan.org/authors/id/S/ST/STIGTSP/Net-CIDR-Lite-0.22.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.22", sha256="4317d8cb341a617b9e0888da43c09cdffffcb0c9edf7b8c9928d742a563b8517")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Net::CIDR::Lite; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlPathClass(PerlPackage):
"""Cross-platform path specification manipulation"""
homepage = "https://metacpan.org/pod/Path::Class"
url = "https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/Path-Class-0.37.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.37", sha256="654781948602386f2cb2e4473a739f17dc6953d92aabc2498a4ca2561bc248ce")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Path::Class; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,34 @@
# 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 PerlPlackMiddlewareFixmissingbodyinredirect(PerlPackage):
"""Plack::Middleware which sets body for redirect response, if it's not already set"""
homepage = "https://metacpan.org/pod/Plack::Middleware::FixMissingBodyInRedirect"
url = "https://cpan.metacpan.org/authors/id/S/SW/SWEETKID/Plack-Middleware-FixMissingBodyInRedirect-0.12.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.12", sha256="6c22d069f5a57ac206d4659b28b8869bb9270640bb955efddd451dcc58cdb391")
depends_on("perl-html-parser", type=("build", "run", "test"))
depends_on("perl-http-message", type=("build", "test"))
depends_on("perl-plack", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = [
"-we",
'use strict; use Plack::Middleware::FixMissingBodyInRedirect; print("OK\n")',
]
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,31 @@
# 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 PerlPlackMiddlewareMethodoverride(PerlPackage):
"""Override REST methods to Plack apps via POST"""
homepage = "https://metacpan.org/pod/Plack::Middleware::MethodOverride"
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-Middleware-MethodOverride-0.20.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.20", sha256="dbfb5a2efb48bfeb01cb3ae1e1c677e155dc7bfe210c7e7f221bae3cb6aab5f1")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-plack", type=("build", "run", "test"))
depends_on("perl-uri", type=("build", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Plack::Middleware::MethodOverride; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlPlackMiddlewareRemoveredundantbody(PerlPackage):
"""Plack::Middleware which removes body for HTTP response if it's not required"""
homepage = "https://metacpan.org/pod/Plack::Middleware::RemoveRedundantBody"
url = "https://cpan.metacpan.org/authors/id/S/SW/SWEETKID/Plack-Middleware-RemoveRedundantBody-0.09.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.09", sha256="80d45f93d6b7290b0bd8b3cedd84a37fc501456cc3dec02ec7aad81c0018087e")
depends_on("perl-http-message", type=("build", "test"))
depends_on("perl-plack", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Plack::Middleware::RemoveRedundantBody; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlPlackMiddlewareReverseproxy(PerlPackage):
"""Supports app to run as a reverse proxy backend"""
homepage = "https://metacpan.org/pod/Plack::Middleware::ReverseProxy"
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ReverseProxy-0.16.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.16", sha256="874931d37d07667ba0d0f37903b94511071f4191feb73fa45765da2b8c15a128")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-plack@0.9988:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Plack::Middleware::ReverseProxy; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,34 @@
# 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 PerlPlackTestExternalserver(PerlPackage):
"""Run HTTP tests on external live servers"""
homepage = "https://metacpan.org/pod/Plack::Test::ExternalServer"
url = "https://cpan.metacpan.org/authors/id/E/ET/ETHER/Plack-Test-ExternalServer-0.02.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.02", sha256="5baf5c57fe0c06412deec9c5abe7952ab8a04f8c47b4bbd8e9e9982268903ed0")
depends_on("perl@5.6.0:", type=("build", "link", "run", "test"))
depends_on("perl-http-message", type=("build", "test"))
depends_on("perl-libwww-perl", type=("build", "run", "test"))
depends_on("perl-plack", type=("build", "test"))
depends_on("perl-test-tcp", type=("build", "test"))
depends_on("perl-uri", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Plack::Test::ExternalServer; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,46 @@
# 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 PerlPlack(PerlPackage):
"""Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)"""
homepage = "https://metacpan.org/pod/Plack"
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Plack-1.0051.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.0051", sha256="bebde91c42298ed6ec8e6c82b21433a1b49aa39412c247f3905b80f955acf77b")
depends_on("perl@5.12.0:", type=("build", "link", "run", "test"))
depends_on("perl-apache-logformat-compiler@0.33:", type=("build", "run", "test"))
depends_on("perl-cookie-baker@0.07:", type=("build", "run", "test"))
depends_on("perl-devel-stacktrace@1.23:", type=("build", "run", "test"))
depends_on("perl-devel-stacktrace-ashtml@0.11:", type=("build", "run", "test"))
depends_on("perl-file-sharedir@1.00:", type=("build", "run", "test"))
depends_on("perl-file-sharedir-install@0.06:", type=("build"))
depends_on("perl-filesys-notify-simple", type=("build", "run", "test"))
depends_on("perl-hash-multivalue@0.05:", type=("build", "run", "test"))
depends_on("perl-http-entity-parser@0.25:", type=("build", "run", "test"))
depends_on("perl-http-headers-fast@0.18:", type=("build", "run", "test"))
depends_on("perl-http-message@5.814:", type=("build", "run", "test"))
depends_on("perl-stream-buffered@0.02:", type=("build", "run", "test"))
depends_on("perl-test-requires", type=("build", "test"))
depends_on("perl-test-tcp@2.15:", type=("build", "run", "test"))
depends_on("perl-try-tiny", type=("build", "run", "test"))
depends_on("perl-uri@1.59:", type=("build", "run", "test"))
depends_on("perl-www-form-urlencoded@0.23:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Plack; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlPosixStrftimeCompiler(PerlPackage):
"""GNU C library compatible strftime for loggers and servers"""
homepage = "https://metacpan.org/pod/POSIX::strftime::Compiler"
url = "https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-0.46.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.46", sha256="bf88873248ef88cc5e68ed074493496be684ec334e11273d4654306dd9dae485")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-module-build-tiny@0.035:", type=("build"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use POSIX::strftime::Compiler; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,25 @@
# 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 PerlReadonlyXs(PerlPackage):
"""Companion module for Readonly.pm, to speed up read-only scalar variables."""
homepage = "https://metacpan.org/pod/Readonly::XS"
url = "https://cpan.metacpan.org/authors/id/R/RO/ROODE/Readonly-XS-1.05.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("1.05", sha256="8ae5c4e85299e5c8bddd1b196f2eea38f00709e0dc0cb60454dc9114ae3fff0d")
depends_on("perl-readonly@1.02:", type=("build", "run", "test"))
def test_use(self):
# This module can not be "use"d.
pass

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 PerlStreamBuffered(PerlPackage):
"""Temporary buffer to save bytes"""
homepage = "https://metacpan.org/pod/Stream::Buffered"
url = "https://cpan.metacpan.org/authors/id/D/DO/DOY/Stream-Buffered-0.03.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.03", sha256="9b2d4390b5de6b0cf4558e4ad04317a73c5e13dd19af29149c4e47c37fb2423b")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Stream::Buffered; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlStringCrc32(PerlPackage):
"""Perl interface for cyclic redundancy check generation"""
homepage = "https://metacpan.org/pod/String::CRC32"
url = "https://cpan.metacpan.org/authors/id/L/LE/LEEJO/String-CRC32-2.100.tar.gz"
maintainers("EbiArnie")
license("CC0-1.0 OR SSLeay")
version("2.100", sha256="9706093b2d068b6715d35b4c58f51558e37960083202129fbb00a57e19a74713")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use String::CRC32; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlStringRewriteprefix(PerlPackage):
"""Rewrite strings based on a set of known prefixes"""
homepage = "https://metacpan.org/pod/String::RewritePrefix"
url = "https://cpan.metacpan.org/authors/id/R/RJ/RJBS/String-RewritePrefix-0.009.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.009", sha256="44918bec96a54af8ca37ca897e436709ec284a07b28516ef3cce4666869646d5")
depends_on("perl@5.12.0:", type=("build", "link", "run", "test"))
depends_on("perl-sub-exporter@0.972:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use String::RewritePrefix; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlTestJson(PerlPackage):
"""Test JSON data"""
homepage = "https://metacpan.org/pod/Test::JSON"
url = "https://cpan.metacpan.org/authors/id/O/OV/OVID/Test-JSON-0.11.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.11", sha256="07c08ab2fcc12850d1ad54fcf6afe9ad1a25a098310c3e7142af1d3cb821d7b3")
depends_on("perl-json-any@1.2:", type=("build", "run", "test"))
depends_on("perl-test-differences@0.47:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Test::JSON; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlTestLongstring(PerlPackage):
"""Tests strings for equality, with more helpful failures"""
homepage = "https://metacpan.org/pod/Test::LongString"
url = "https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/Test-LongString-0.17.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.17", sha256="abc4349eaf04d1bec1e464166a3018591ea846d8f3c5c9c8af4ac4905d3e974f")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Test::LongString; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlTestMocktime(PerlPackage):
"""Replaces actual time with simulated time"""
homepage = "https://metacpan.org/pod/Test::MockTime"
url = "https://cpan.metacpan.org/authors/id/D/DD/DDICK/Test-MockTime-0.17.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.17", sha256="3363e118b2606f1d6abc956f22b0d09109772b7086155fb5c9c7f983350602f9")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Test::MockTime; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,30 @@
# 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 PerlTestTcp(PerlPackage):
"""Testing TCP program"""
homepage = "https://metacpan.org/pod/Test::TCP"
url = "https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Test-TCP-2.22.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("2.22", sha256="3e53c3c06d6d0980a2bfeb915602b714e682ee211ae88c11748cf2cc714e7b57")
depends_on("perl@5.8.1:", type=("build", "link", "run", "test"))
depends_on("perl-test-sharedfork@0.29:", type=("build", "run", "test"))
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Test::TCP; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,27 @@
# 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 PerlTestTime(PerlPackage):
"""Overrides the time() and sleep() core functions for testing"""
homepage = "https://metacpan.org/pod/Test::Time"
url = "https://cpan.metacpan.org/authors/id/A/AN/ANATOFUZ/Test-Time-0.092.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("0.092", sha256="30d90f54ce840893c7ba2cac2a4d1eecd4c9cdf805910c595e3ae89dfd644738")
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Test::Time; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

View File

@@ -0,0 +1,35 @@
# 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 PerlTestTrap(PerlPackage):
"""Trap exit codes, exceptions, output, etc."""
homepage = "https://metacpan.org/pod/Test::Trap"
url = "https://cpan.metacpan.org/authors/id/E/EB/EBHANSSEN/Test-Trap-v0.3.5.tar.gz"
maintainers("EbiArnie")
license("Artistic-1.0-Perl OR GPL-1.0-or-later")
version("v0.3.5", sha256="54f99016562b5b1d72110100f1f2be437178cdf84376f495ffd0376f1d7ecb9a")
depends_on("perl@5.6.2:", type=("build", "link", "run", "test"))
depends_on("perl-data-dump", type=("build", "run", "test"))
def url_for_version(self, version):
return (
f"https://cpan.metacpan.org/authors/id/E/EB/EBHANSSEN/Test-Trap-{str(version)}.tar.gz"
)
def test_use(self):
"""Test 'use module'"""
options = ["-we", 'use strict; use Test::Trap; print("OK\n")']
perl = self.spec["perl"].command
out = perl(*options, output=str.split, error=str.split)
assert "OK" in out

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