Compare commits

...

87 Commits

Author SHA1 Message Date
Gregory Becker
1aa900668d rework test to parametrize by order and depth of dev spec 2022-03-09 09:54:41 -08:00
psakiev
76da5a1141 Unit test changes 2022-03-08 16:20:34 -07:00
psakiev
6d9a214339 style 2022-03-08 14:16:45 -07:00
psakiev
17713c0151 Remove unneccessary work due to mock_fetch 2022-03-08 14:16:45 -07:00
psakiev
f383ca40db WIP: Add some unit tests 2022-03-08 14:16:45 -07:00
Gregory Becker
453d36ca00 do not allow dev specs to be reused 2022-03-08 14:16:45 -07:00
psakiev
eb95a50e08 Fix to concretize.lp 2022-03-08 14:16:45 -07:00
haralmha
a9996db35c py-control: add new package (#29386)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-08 13:22:40 -07:00
haralmha
ddc5b4422d py-param: add new package (#29384)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-08 12:58:46 -07:00
Keita Teranishi
b2a02861bb trilinos: new variant for the Panzer package (#29256)
* Adding Panzer as Default

* Set Panzer as non-default

* Updated the conflict for Panzer.

* Updated the conflict for Panzer.

* Resolve the issue with Stratimikos and Thyra

* Fixing stk build issues.

* Fixing stk build issues.

* Adding another conflict for Thrya
2022-03-08 12:14:40 -07:00
Wouter Deconinck
1df9c3437f hztool: new package (dependency of sherpa #29338) (#29365) 2022-03-08 19:58:29 +01:00
SXS Bot
9cc6bc26a2 spectre: add v2022.03.07 (#29378)
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com>
2022-03-08 19:36:00 +01:00
Tiziano Müller
94ce7f5040 cray-libsci/cp2k: add constraints to get consistently linked executables (#29396)
* cray-libsci: only be a provider for scalapack with +mpi

If a package explicitly links the scalapack provider we might otherwise end up with different variants of libsci being linked: the explicitly linked one and the one added by the Cray compiler wrappers.

* cp2k: require cray-libsci+openmp with +openmp for consistency

otherwise we might get 2 different libsci linked: one explicitly, the other one via the Cray compiler wrappers, leading at least to segfaults during cleanup

* cp2k: depend on cray-fftw+openmp with +openmp
2022-03-08 19:32:15 +01:00
Seth R. Johnson
5bea24526f Fix overconstrained HDF5 variants (#29132)
* hdf5: mark +fortran+shared conflict for older version

This version was only activated unintentionally by silo's conflict
statement, but `@1.8.15+shared+fortran+cxx` errors out in configure:

```
CMake Error at CMakeLists.txt:814 (message):
   **** Shared FORTRAN libraries are unsupported ****
```

* silo: refine hdf5 conflicts to avoid building old version

Before this, `silo+hdf5` concretized to 1.10.7 or sometimes 1.8.15. Now
I've verified it works for the following configurations:
```
silo@4.10.2 patches=7b5a1dc,952d3c9
^   hdf5@1.10.7 api=default

silo@4.10.2 patches=7b5a1dc,952d3c9,eb2a3a0
^   hdf5@1.10.8 api=v18

silo@4.10.2 patches=7b5a1dc,952d3c9,eb2a3a0
^   hdf5@1.12.1 api=v110

silo@4.11-bsd patches=eb2a3a0
^   hdf5@1.12.1 api=v110

silo@4.11-bsd patches=eb2a3a0
^   hdf5@1.10.8 api=default

silo@4.11-bsd patches=eb2a3a0
^   hdf5@1.12.1 api=default
```

and verified that the following fail:
```
silo@4.10.2 ^hdf5@1.12.1 api=default
silo@4.11 ^hdf5 api=v18
silo@4.11-bsd ^hdf5@1.13.0 api=v12
silo@4.11-bsd ^hdf5@1.13.0 api=default
```

and have updated the constraints to match. Hdf5 no longer has to be
downgraded to work with Silo.

* silo: fix dependency conflicts

* py-h5py: shorten and add comments to py-h5py hdf5 dependencies

* e4s: remove slightly outdated hdf5 requirement

* e4s: remove excessive hdf5 variant constraints

These I think are holdovers from the old concretizer.

- `hdf5_compat` can be expressed as `+hdf5 ^hdf5@1.8`
- The extra variants on hdf5 shouldn't break conduit
- axom unnecessarily restricts hdf5 version

* conduit: restore hdf5_compat flag
2022-03-08 13:15:10 -05:00
Tanner Hobson
57b27023a4 sensei: add v3.2.2 (#29388) 2022-03-08 11:14:41 -07:00
Seth R. Johnson
ceb260927b git-lfs and go: add new versions (#29121)
* go: new version 1.17.7

* git-lfs: new versions 2.12,2.13,3.1
2022-03-08 19:06:57 +01:00
Glenn Johnson
1c362ccb11 gurobi: add v9.5.1 and fix build (#29225)
This package can not be install with pip, it uses distutils
2022-03-08 19:00:58 +01:00
haralmha
2c2eb911e1 vectorclass-version2: add new package (#29400) 2022-03-08 18:41:08 +01:00
Axel Huebl
d1e0266952 rocm-smi: project moved (deprecate) (#28733)
According to its README, this project moved.

References:
- https://github.com/RadeonOpenCompute/ROC-smi#rocm-system-management-interface
- https://github.com/RadeonOpenCompute/rocm_smi_lib/tree/master/python_smi_tools
2022-03-08 18:31:20 +01:00
Richarda Butler
8986c21d73 bolt: fix standalone test (#29389) 2022-03-08 18:25:13 +01:00
Chris White
64532902f9 blt: add v0.5.0 (#29393) 2022-03-08 18:20:53 +01:00
haralmha
568a535e3f apfel: depend on python also for ~python variant (#29395) 2022-03-08 17:10:56 +01:00
Nils Vu
cd5e7579be spectre: add docs dependencies, BUILD_DOCS toggle (#29399)
New versions don't try to configure docs targets at all when the
BUILD_DOCS option is turned off. This avoids CMake warnings
when docs dependencies are not found.
2022-03-08 16:51:05 +01:00
Mikael Simberg
b559b99c8f Add pika 0.2.0 (#29398)
* Add pika 0.2.0
* Add apex variant to pika
2022-03-08 04:46:47 -07:00
Harmen Stoppels
a39a6c4ea7 version.py: set is_commit in constructor (#29369)
Speeds up comparison on `Version` by ~2.5x, e.g.

```python
In [1]: v = spack.version.Version('1.0.0'); w = spack.version.Version('1.0.2')

In [2]: %timeit v < w

1.47 µs ± 5.59 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

535 ns ± 1.75 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
```
2022-03-08 10:50:48 +01:00
Harmen Stoppels
4b5e071141 Add libtree 3.1.0 (#29356) 2022-03-08 10:18:47 +01:00
eugeneswalker
2a64c6a402 rocsolver depends on fmt@7:8.0.1 (#29391) 2022-03-07 18:58:42 -07:00
Qian Jianhua
aea10bf876 landsfcutil: support Fujitsu compiler (#29367) 2022-03-07 17:18:23 -08:00
Qian Jianhua
2088d407a2 sigio: support Fujitsu compiler (#29366) 2022-03-07 17:17:44 -08:00
Qian Jianhua
cc14384818 sfcio: support Fujitsu compiler (#29364) 2022-03-07 17:15:08 -08:00
Dom Heinzeller
3d29e0d641 Bug fixes for ESMF on macOS with apple-clang+gfortran, with gfortran-10+ in general, and on Cray (#29193)
* Bugfix in var/spack/repos/builtin/packages/esmf/package.py

* Bug fixes in var/spack/repos/builtin/packages/esmf/package.py to build ESMF on macOS with clang+gfortran and on cray

* Add maintainer to var/spack/repos/builtin/packages/esmf/package.py

* Fix style errors

* Fix more style errors
2022-03-07 11:58:39 -07:00
Valentin Volkl
ad2b493171 libzmq: default to ~docs (#29372) 2022-03-07 10:54:31 -07:00
Valentin Volkl
5bbcb43ad3 py-jupytext: add version 0.13.6 (#28688)
* py-jupytext: add version 0.13.6

From da3fcc305d:

markdown-it-py v2.0 implements some internal changes, but won't affect jupytext

* py-jupytext: keep mdit-py version restricted to 1

* py-jupytext: update dependencies

* Apply suggestions from code review

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

* Apply suggestions from code review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-07 11:17:34 -06:00
Aurelien Bouteiller
fe8548853d PaRSEC: moved repository to GitHub, now require cmake 3.18 (#29346)
Signed-off-by: Aurelien Bouteiller <bouteill@icl.utk.edu>
2022-03-07 09:05:14 -08:00
Pieter Ghysels
4a17099cc3 Strumpack v6.3.1 (#29353)
* Add STRUMPACK version 6.3.1

* Add STRUMPACK version 6.3.1 (in URL)
2022-03-07 09:04:32 -08:00
Valentin Volkl
822b763222 man-db: add gitlab repository, new version 2.10.1 (fixes MAXDIRS issue) (#29359)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-03-07 08:22:52 -07:00
Valentin Volkl
28aa1a64d4 groff: default to ~pdf (#29373) 2022-03-07 08:02:49 -07:00
Valentin Volkl
e3ab326228 mesa, mesa18: default to ~llvm (#29360) 2022-03-07 09:59:20 -05:00
haralmha
6934703ffb Add checksum for relax@root6 (#29314) 2022-03-07 10:54:45 +01:00
Valentin Volkl
53fb5963eb starlight: add new package (#29158) 2022-03-07 02:30:13 -07:00
liuyangzhuan
022aa496a5 butterflypack: add v2.1.1 (#29343) 2022-03-07 08:50:32 +01:00
Todd Gamblin
d424d0e54e find: deprecate spack find -bootstrap for spack -bootstrap find (#29152)
Since adding the `spack --bootstrap` argument we don't need `spack find --bootstrap`
anymore.  Deprecate it.
2022-03-05 21:41:18 -08:00
Greg Sjaardema
762893d4a6 seacas: new version with new dependency on fmt (#29348)
Removed the internal copies of lib::fmt and modified to have a dependency on lib::fmt instead.  Requires fmt-8.1.0 or later
2022-03-05 15:11:18 -05:00
Vivian Hafener
addf6f2686 New package: py-ml-collections (#29325) 2022-03-05 14:03:41 -06:00
Vivian Hafener
ce4b812b52 Rebased upon upstream (#29337) 2022-03-05 14:03:03 -06:00
Greg Sjaardema
afaaf04fa9 fmt: add 8.1.0 and 8.1.1 (#29347) 2022-03-05 02:50:53 +01:00
Jen Herting
9f49461183 New package: py-priority (#29139)
* [py-priority] created template

* [py-priority]

- added homepage
- added description
- added dependencies
- removed fixmes
2022-03-04 15:26:30 -07:00
Asher Mancinelli
4081597731 hiop: add version v0.5.4 (#29301)
* Add HiOp v0.5.4, update magma constraint

* Add v2.6.2rc1 to magma, make hiop depend on it

* Update var/spack/repos/builtin/packages/hiop/package.py

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-04 13:52:23 -06:00
Paul R. C. Kent
d42e5421dc New versions: qmcpack@3.12.0, 3.13.0 (#29345) 2022-03-04 11:19:34 -08:00
Harmen Stoppels
80a6eab2db Add a test 2022-03-04 18:13:34 +01:00
Harmen Stoppels
916da02326 Fix audit 2022-03-04 18:13:34 +01:00
Harmen Stoppels
9199800bbd VersionRange.satisfies should test non-empty intersection 2022-03-04 18:13:34 +01:00
Ethan Stam
838a0086cf Initial changes needed to build paraview@5.9.0%xl_r (#22050) 2022-03-04 17:29:40 +01:00
Massimiliano Culpo
ab74738609 Revert "butterflypack: add v2.1.1 (#29151)" (#29339)
This reverts commit b7794cdac8.
2022-03-04 14:40:09 +00:00
Weiqun Zhang
90c28783a0 amrex: add v22.03 (#29273) 2022-03-04 07:38:37 -07:00
Enrico Usai
35406a8984 aws-parallelcluster: add v2.11.5 (#29286) 2022-03-04 05:22:18 -07:00
Bambi
6a1b0331a9 kakoune: add new package (#29148) 2022-03-04 11:42:01 +01:00
Marie Houillon
258600eede New version for openCARP packages, v9.0 (#29150)
Co-authored-by: openCARP consortium <info@opencarp.org>
2022-03-04 11:31:18 +01:00
liuyangzhuan
b7794cdac8 butterflypack: add v2.1.1 (#29151) 2022-03-04 11:30:15 +01:00
haralmha
a6580d4704 edm4hep: Add dependencies to py-jinja2 and py-pyyaml (#28944) 2022-03-04 11:27:46 +01:00
Nils Vu
4d0ee4e169 Fix checksum for spectre@2022.02.17 (#29179) 2022-03-04 11:11:42 +01:00
Olivier Cessenat
6bc2e660e8 dos2unix: add the external find feature (#29335) 2022-03-04 02:34:37 -07:00
Seth R. Johnson
8665ccb661 slurm: add external find (#29146) 2022-03-04 10:29:05 +01:00
Wouter Deconinck
6610c50414 madx: new package, versions 5.07.00, 5.08.00, 5.08.01 (#28932) 2022-03-04 10:25:40 +01:00
Toyohisa Kameyama
b0c63a6554 boost: update version analysis patch for fujitsu compiler. (#29198) 2022-03-04 10:24:12 +01:00
Nils Vu
77d2b9a87a charmpp: resolve conflict with '+smp' (#29243)
The 'multicore' backend always uses SMP, so reverse
the logic of the `conflict` clause. This resolves an issue
where the '+smp' default caused the 'backend' to switch
away from 'multicore' unintentionally (#29234).
2022-03-04 10:16:49 +01:00
Dom Heinzeller
f931067bf2 exempi: fix typo in "satisfies" condition (#29233) 2022-03-04 10:13:07 +01:00
Valentin Volkl
7d66779c06 lhapdf: add python variant, change source tarball url to avoid python build failures (#29267) 2022-03-04 10:11:47 +01:00
Carlos Bederián
6cfcf59781 mumps: add v5.4.1 (#29330) 2022-03-04 09:29:25 +01:00
Michael Kuhn
544258f16a qt: add 5.15.3 (#29328) 2022-03-04 09:24:11 +01:00
Massimiliano Culpo
b48bdc9e19 Fix importing Spack packages as Python modules (#29221)
fixes #29203

This PR fixes a subtle bug we have when importing
Spack packages as Python modules that can lead to
multiple module objects being created for the same
package.

It also fixes all the places in unit-tests where
"relying" on the old bug was crucial to have a new
"clean" state of the package class.
2022-03-04 08:42:27 +01:00
Axel Huebl
cf4f281f54 WarpX: 22.03 (#29334)
Update `warpx` & `py-warpx` to the latest release, `22.03`.
2022-03-03 21:54:34 -07:00
natshineman
673faf6044 Update MVAPICH2 to latest release verison 2.3.7 (#29329)
Co-authored-by: Nat Shineman <shineman.5@buckeyemail.osu.edu>
2022-03-03 21:34:35 -07:00
eugeneswalker
e86cdbbf23 libdrm@2.4.101: needs meson for build (#29327) 2022-03-03 19:53:40 -08:00
Toyohisa Kameyama
0c4b56d885 llvm: fix build with Fujitsu compiler, and conflicts gcc@8.4 on aarch64 (#29030)
* llvm: fix build with Fujitsu compiler.

* Add conflict gcc 8.4 and aarch64.

* update conflicts version.

* fix version to apply patch.
2022-03-03 19:50:23 -07:00
Vivian Hafener
ebdba2c6a7 New package: py-npx (#29324)
* New package py-npx

* Fixed linked issue
2022-03-03 18:42:55 -07:00
iarspider
7d68d4564c Add checksum for py-setuptools-scm 5.0.2 (#29213) 2022-03-03 17:58:32 -07:00
Doug Jacobsen
06fd0f892e Revert GCS fetch strategy, to remove s3 interface (#28736)
This commit reverts the GCS fetch strategy to before commit:
d759612523

The previous commit added some s3 syntax to handle connections, but
added them into the GCS fetch strategy in a way that prevents GCS from
working anymore.
2022-03-03 16:34:33 -08:00
iarspider
b13629062a Add checksum for gmp 6.2.0 (#29212)
* Add checksum for gmp 6.2.0

* Update package.py
2022-03-03 17:14:41 -07:00
iarspider
a284c3e76d New version: py-testpath 0.6.0; update py-flit-core dependency (#29200) 2022-03-03 17:10:48 -07:00
Carlos Bederián
efcdd64893 nss: add 3.75 (#29197) 2022-03-03 23:59:37 +01:00
Greg Becker
e2b87ade06 rocmcc compiler: initial commit based on aocc and clang (#28575)
* rocmcc compiler: initial commit based on aocc and clang

Co-authored-by: luker <luke.roskop@hpe.com>
Co-authored-by: Tom Scogland <scogland1@llnl.gov>
2022-03-03 14:34:22 -07:00
Manuela Kuhn
96c1fb7b0b py-mako-1.1.6 (#29207)
* py-mako-1.1.6

* fix python dependency
2022-03-03 14:16:54 -06:00
Manuela Kuhn
4d5eff11b4 py-mistune: add 2.0.2 and change source to pypi (#29215) 2022-03-03 19:23:41 +01:00
Manuela Kuhn
8db12b72ec py-multidict: add 6.0.2 and get sources fom pypi (#29219) 2022-03-03 19:23:21 +01:00
Manuela Kuhn
9900d348d7 py-matplotlib-inline: add v0.1.3 (#29208) 2022-03-03 19:22:27 +01:00
TZ
85c454bdb0 kokkos: make Spack accept CUDA compute capability 8.6 (#27257)
The Kokkos sources already know AMPERE86 since some time; make
Spack accept and pass it, too.
2022-03-03 18:20:25 +00:00
118 changed files with 1081 additions and 298 deletions

8
lib/spack/env/cc vendored
View File

@@ -241,28 +241,28 @@ case "$command" in
mode=cpp
debug_flags="-g"
;;
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc)
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc|amdclang)
command="$SPACK_CC"
language="C"
comp="CC"
lang_flags=C
debug_flags="-g"
;;
c++|CC|g++|clang++|armclang++|icpc|icpx|dpcpp|pgc++|nvc++|xlc++|xlc++_r|FCC)
c++|CC|g++|clang++|armclang++|icpc|icpx|dpcpp|pgc++|nvc++|xlc++|xlc++_r|FCC|amdclang++)
command="$SPACK_CXX"
language="C++"
comp="CXX"
lang_flags=CXX
debug_flags="-g"
;;
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt)
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt|amdflang)
command="$SPACK_FC"
language="Fortran 90"
comp="FC"
lang_flags=F
debug_flags="-g"
;;
f77|xlf|xlf_r|pgf77)
f77|xlf|xlf_r|pgf77|amdflang)
command="$SPACK_F77"
language="Fortran 77"
comp="F77"

1
lib/spack/env/rocmcc/amdclang vendored Symbolic link
View File

@@ -0,0 +1 @@
../cc

1
lib/spack/env/rocmcc/amdclang++ vendored Symbolic link
View File

@@ -0,0 +1 @@
../cpp

1
lib/spack/env/rocmcc/amdflang vendored Symbolic link
View File

@@ -0,0 +1 @@
../fc

View File

@@ -202,6 +202,12 @@ def display_env(env, args, decorator):
def find(parser, args):
if args.bootstrap:
tty.warn(
"`spack find --bootstrap` is deprecated and will be removed in v0.19.",
"Use `spack --bootstrap find` instead."
)
if args.bootstrap:
bootstrap_store_path = spack.bootstrap.store_path()
with spack.bootstrap.ensure_bootstrap_configuration():

View File

@@ -42,7 +42,8 @@
_compiler_to_pkg = {
'clang': 'llvm+clang',
'oneapi': 'intel-oneapi-compilers'
'oneapi': 'intel-oneapi-compilers',
'rocmcc': 'llvm-amdgpu'
}

View File

@@ -0,0 +1,78 @@
# Copyright 2013-2022 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)
import re
import llnl.util.lang
import spack.compilers.clang
class Rocmcc(spack.compilers.clang.Clang):
# Subclasses use possible names of C compiler
cc_names = ['amdclang']
# Subclasses use possible names of C++ compiler
cxx_names = ['amdclang++']
# Subclasses use possible names of Fortran 77 compiler
f77_names = ['amdflang']
# Subclasses use possible names of Fortran 90 compiler
fc_names = ['amdflang']
PrgEnv = 'PrgEnv-amd'
PrgEnv_compiler = 'amd'
@property
def link_paths(self):
link_paths = {'cc': 'rocmcc/amdclang',
'cxx': 'rocmcc/amdclang++',
'f77': 'rocmcc/amdflang',
'fc': 'rocmcc/amdflang'}
return link_paths
@property
def cxx11_flag(self):
return "-std=c++11"
@property
def cxx14_flag(self):
return "-std=c++14"
@property
def cxx17_flag(self):
return "-std=c++17"
@property
def c99_flag(self):
return '-std=c99'
@property
def c11_flag(self):
return "-std=c11"
@classmethod
@llnl.util.lang.memoized
def extract_version_from_output(cls, output):
match = re.search(
r'llvm-project roc-(\d+)[._](\d+)[._](\d+)',
output
)
if match:
return '.'.join(match.groups())
@classmethod
def fc_version(cls, fortran_compiler):
return cls.default_version(fortran_compiler)
@classmethod
def f77_version(cls, f77):
return cls.fc_version(f77)
@property
def stdcxx_libs(self):
return ('-lstdc++', )

View File

@@ -124,7 +124,10 @@ def merge(self, other):
# concatenate patch lists, or just copy them in
for cond, p in other.patches.items():
if cond in self.patches:
self.patches[cond].extend(other.patches[cond])
current_list = self.patches[cond]
current_list.extend(
p for p in other.patches[cond] if p not in current_list
)
else:
self.patches[cond] = other.patches[cond]

View File

@@ -1437,13 +1437,7 @@ def fetch(self):
basename = os.path.basename(parsed_url.path)
with working_dir(self.stage.path):
import spack.util.s3 as s3_util
s3 = s3_util.create_s3_session(self.url,
connection=s3_util.get_mirror_connection(parsed_url), url_type="fetch") # noqa: E501
headers = s3.get_object(Bucket=parsed_url.netloc,
Key=parsed_url.path.lstrip("/"))
stream = headers["Body"]
_, headers, stream = web_util.read_from_url(self.url)
with open(basename, 'wb') as f:
shutil.copyfileobj(stream, f)

View File

@@ -188,6 +188,10 @@ def provides(self):
if self.spec.name == 'llvm':
provides['compiler'] = spack.spec.CompilerSpec(str(self.spec))
provides['compiler'].name = 'clang'
# Special case for llvm-amdgpu
if self.spec.name == 'llvm-amdgpu':
provides['compiler'] = spack.spec.CompilerSpec(str(self.spec))
provides['compiler'].name = 'rocmcc'
# All the other tokens in the hierarchy must be virtual dependencies
for x in self.hierarchy_tokens:

View File

@@ -97,6 +97,12 @@ def to_dict(self):
'working_dir': self.working_dir,
}
def __eq__(self, other):
return self.sha256 == other.sha256
def __hash__(self):
return hash(self.sha256)
class FilePatch(Patch):
"""Describes a patch that is retrieved from a file in the repository.

View File

@@ -7,6 +7,7 @@
import contextlib
import errno
import functools
import importlib
import inspect
import itertools
import os
@@ -1099,7 +1100,12 @@ def get_pkg_class(self, pkg_name):
% (self.namespace, namespace))
class_name = nm.mod_to_class(pkg_name)
module = self._get_pkg_module(pkg_name)
fullname = "{0}.{1}".format(self.full_namespace, pkg_name)
try:
module = importlib.import_module(fullname)
except ImportError:
raise UnknownPackageError(pkg_name)
cls = getattr(module, class_name)
if not inspect.isclass(cls):

View File

@@ -1668,13 +1668,15 @@ def define_installed_packages(self, specs, possible):
# Specs from local store
with spack.store.db.read_transaction():
for spec in spack.store.db.query(installed=True):
self._facts_from_concrete_spec(spec, possible)
if not spec.satisfies('dev_path=*'):
self._facts_from_concrete_spec(spec, possible)
# Specs from configured buildcaches
try:
index = spack.binary_distribution.update_cache_and_get_specs()
for spec in index:
self._facts_from_concrete_spec(spec, possible)
if not spec.satisfies('dev_path=*'):
self._facts_from_concrete_spec(spec, possible)
except (spack.binary_distribution.FetchCacheError, IndexError):
# this is raised when no mirrors had indices.
# TODO: update mirror configuration so it can indicate that the source cache

View File

@@ -827,6 +827,9 @@ no_flags(Package, FlagType)
{ hash(Package, Hash) : installed_hash(Package, Hash) } 1
:- node(Package), error("Internal error: package must resolve to at most one hash").
% you can't choose an installed hash for a dev spec
:- hash(Package, Hash), variant_set(Package, "dev_path", _).
% if a hash is selected, we impose all the constraints that implies
impose(Hash) :- hash(Package, Hash).

View File

@@ -333,3 +333,8 @@ def test_find_loaded(database, working_env):
output = find('--loaded')
expected = find()
assert output == expected
def test_bootstrap_deprecated():
output = find('--bootstrap')
assert "`spack find --bootstrap` is deprecated" in output

View File

@@ -332,7 +332,6 @@ def concretize_difficult_packages(self, a, b):
assert s[a].version == ver(b)
def test_concretize_two_virtuals(self):
"""Test a package with multiple virtual dependencies."""
Spec('hypre').concretize()
@@ -1138,6 +1137,38 @@ def test_external_package_versions(self, spec_str, is_external, expected):
assert s.external == is_external
assert s.satisfies(expected)
@pytest.mark.parametrize('dev_first,spec', [
(True, 'dev-build-test-install'),
(True, 'dev-build-test-dependent'),
(False, 'dev-build-test-install'),
(False, 'dev-build-test-dependent')
])
def test_reuse_does_not_overwrite_dev_specs(
self, dev_first, spec, tmpdir, mock_packages, install_mockery, mock_fetch):
"""Test that reuse does not mix dev specs with non-dev specs.
Tests for either order (dev specs are not reused for non-dev, and
non-dev specs are not reused for dev specs)
Tests for a spec in which the root is developed and a spec in
which a dep is developed."""
# dev and non-dev specs that are otherwise identical
spec = Spec(spec).normalized() # ensure dependencies present
dev_spec = spec.copy()
dev_constraint = 'dev_path=%s' % tmpdir.strpath
dev_spec['dev-build-test-install'].constrain(dev_constraint)
# run the test in both orders
first_spec = dev_spec if dev_first else spec
second_spec = spec if dev_first else dev_spec
# concretize and install a non-dev version
first_spec.concretize()
first_spec.package.do_install(fake=True)
# concretize a dev version
with spack.config.override("concretizer:reuse", True):
second_spec.concretize()
assert first_spec.dag_hash() != second_spec.dag_hash()
@pytest.mark.regression('20292')
@pytest.mark.parametrize('context', [
{'add_variant': True, 'delete_variant': False},
@@ -1145,7 +1176,7 @@ def test_external_package_versions(self, spec_str, is_external, expected):
{'add_variant': True, 'delete_variant': True}
])
@pytest.mark.xfail()
def test_reuse_installed_packages(
def test_reuse_installed_packages_when_package_def_changes(
self, context, mutable_database, repo_with_changing_recipe
):
# Install a spec

View File

@@ -89,7 +89,8 @@ def test_fetch(type_of_test,
mock_git_repository,
config,
mutable_mock_repo,
git_version):
git_version,
monkeypatch):
"""Tries to:
1. Fetch the repo using a fetch strategy constructed with
@@ -107,7 +108,7 @@ def test_fetch(type_of_test,
spec = Spec('git-test')
spec.concretize()
pkg = spack.repo.get(spec)
pkg.versions[ver('git')] = t.args
monkeypatch.setitem(pkg.versions, ver('git'), t.args)
# Enter the stage directory and check some properties
with pkg.stage:
@@ -137,7 +138,9 @@ def test_fetch(type_of_test,
@pytest.mark.parametrize("type_of_test", ['branch', 'commit'])
def test_debug_fetch(mock_packages, type_of_test, mock_git_repository, config):
def test_debug_fetch(
mock_packages, type_of_test, mock_git_repository, config, monkeypatch
):
"""Fetch the repo with debug enabled."""
# Retrieve the right test parameters
t = mock_git_repository.checks[type_of_test]
@@ -146,7 +149,7 @@ def test_debug_fetch(mock_packages, type_of_test, mock_git_repository, config):
spec = Spec('git-test')
spec.concretize()
pkg = spack.repo.get(spec)
pkg.versions[ver('git')] = t.args
monkeypatch.setitem(pkg.versions, ver('git'), t.args)
# Fetch then ensure source path exists
with pkg.stage:
@@ -176,7 +179,7 @@ def test_needs_stage():
@pytest.mark.parametrize("get_full_repo", [True, False])
def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
config, mutable_mock_repo):
config, mutable_mock_repo, monkeypatch):
"""Ensure that we can clone a full repository."""
if git_version < ver('1.7.1'):
@@ -193,7 +196,7 @@ def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
pkg = spack.repo.get(spec)
args = copy.copy(t.args)
args['get_full_repo'] = get_full_repo
pkg.versions[ver('git')] = args
monkeypatch.setitem(pkg.versions, ver('git'), args)
with pkg.stage:
with spack.config.override('config:verify_ssl', secure):
@@ -222,7 +225,7 @@ def test_get_full_repo(get_full_repo, git_version, mock_git_repository,
@pytest.mark.disable_clean_stage_check
@pytest.mark.parametrize("submodules", [True, False])
def test_gitsubmodule(submodules, mock_git_repository, config,
mutable_mock_repo):
mutable_mock_repo, monkeypatch):
"""
Test GitFetchStrategy behavior with submodules
"""
@@ -235,7 +238,7 @@ def test_gitsubmodule(submodules, mock_git_repository, config,
pkg = spack.repo.get(spec)
args = copy.copy(t.args)
args['submodules'] = submodules
pkg.versions[ver('git')] = args
monkeypatch.setitem(pkg.versions, ver('git'), args)
pkg.do_stage()
with working_dir(pkg.stage.source_path):
for submodule_count in range(2):
@@ -249,7 +252,9 @@ def test_gitsubmodule(submodules, mock_git_repository, config,
@pytest.mark.disable_clean_stage_check
def test_gitsubmodules_delete(mock_git_repository, config, mutable_mock_repo):
def test_gitsubmodules_delete(
mock_git_repository, config, mutable_mock_repo, monkeypatch
):
"""
Test GitFetchStrategy behavior with submodules_delete
"""
@@ -264,7 +269,7 @@ def test_gitsubmodules_delete(mock_git_repository, config, mutable_mock_repo):
args['submodules'] = True
args['submodules_delete'] = ['third_party/submodule0',
'third_party/submodule1']
pkg.versions[ver('git')] = args
monkeypatch.setitem(pkg.versions, ver('git'), args)
pkg.do_stage()
with working_dir(pkg.stage.source_path):
file_path = os.path.join(pkg.stage.source_path,

View File

@@ -28,7 +28,8 @@ def test_fetch(
secure,
mock_hg_repository,
config,
mutable_mock_repo
mutable_mock_repo,
monkeypatch
):
"""Tries to:
@@ -47,7 +48,7 @@ def test_fetch(
spec = Spec('hg-test')
spec.concretize()
pkg = spack.repo.get(spec)
pkg.versions[ver('hg')] = t.args
monkeypatch.setitem(pkg.versions, ver('hg'), t.args)
# Enter the stage directory and check some properties
with pkg.stage:

View File

@@ -151,7 +151,9 @@ def test_failing_overwrite_install_should_keep_previous_installation(
assert os.path.exists(spec.prefix)
def test_dont_add_patches_to_installed_package(install_mockery, mock_fetch):
def test_dont_add_patches_to_installed_package(
install_mockery, mock_fetch, monkeypatch
):
dependency = Spec('dependency-install')
dependency.concretize()
dependency.package.do_install()
@@ -160,9 +162,11 @@ def test_dont_add_patches_to_installed_package(install_mockery, mock_fetch):
dependent = Spec('dependent-install ^/' + dependency_hash)
dependent.concretize()
dependency.package.patches['dependency-install'] = [
monkeypatch.setitem(dependency.package.patches, 'dependency-install', [
spack.patch.UrlPatch(
dependent.package, 'file://fake.patch', sha256='unused-hash')]
dependent.package, 'file://fake.patch', sha256='unused-hash'
)
])
assert dependent['dependency-install'] == dependency
@@ -308,52 +312,43 @@ def test_installed_upstream(install_upstream, mock_fetch):
@pytest.mark.disable_clean_stage_check
def test_partial_install_keep_prefix(install_mockery, mock_fetch):
def test_partial_install_keep_prefix(install_mockery, mock_fetch, monkeypatch):
spec = Spec('canfail').concretized()
pkg = spack.repo.get(spec)
# Normally the stage should start unset, but other tests set it
pkg._stage = None
remove_prefix = spack.package.Package.remove_prefix
try:
# If remove_prefix is called at any point in this test, that is an
# error
pkg.succeed = False # make the build fail
spack.package.Package.remove_prefix = mock_remove_prefix
with pytest.raises(spack.build_environment.ChildError):
pkg.do_install(keep_prefix=True)
assert os.path.exists(pkg.prefix)
# must clear failure markings for the package before re-installing it
spack.store.db.clear_failure(spec, True)
pkg.succeed = True # make the build succeed
pkg.stage = MockStage(pkg.stage)
# If remove_prefix is called at any point in this test, that is an
# error
pkg.succeed = False # make the build fail
monkeypatch.setattr(spack.package.Package, 'remove_prefix', mock_remove_prefix)
with pytest.raises(spack.build_environment.ChildError):
pkg.do_install(keep_prefix=True)
assert pkg.installed
assert not pkg.stage.test_destroyed
assert os.path.exists(pkg.prefix)
finally:
spack.package.Package.remove_prefix = remove_prefix
# must clear failure markings for the package before re-installing it
spack.store.db.clear_failure(spec, True)
pkg.succeed = True # make the build succeed
pkg.stage = MockStage(pkg.stage)
pkg.do_install(keep_prefix=True)
assert pkg.installed
assert not pkg.stage.test_destroyed
def test_second_install_no_overwrite_first(install_mockery, mock_fetch):
def test_second_install_no_overwrite_first(install_mockery, mock_fetch, monkeypatch):
spec = Spec('canfail').concretized()
pkg = spack.repo.get(spec)
remove_prefix = spack.package.Package.remove_prefix
try:
spack.package.Package.remove_prefix = mock_remove_prefix
monkeypatch.setattr(spack.package.Package, 'remove_prefix', mock_remove_prefix)
pkg.succeed = True
pkg.do_install()
assert pkg.installed
pkg.succeed = True
pkg.do_install()
assert pkg.installed
# If Package.install is called after this point, it will fail
pkg.succeed = False
pkg.do_install()
finally:
spack.package.Package.remove_prefix = remove_prefix
# If Package.install is called after this point, it will fail
pkg.succeed = False
pkg.do_install()
def test_install_prefix_collision_fails(config, mock_fetch, mock_packages, tmpdir):

View File

@@ -86,3 +86,15 @@ def test_namespace_hasattr(attr_name, exists, mutable_mock_repo):
def test_all_package_names_is_cached_correctly():
assert 'mpi' in spack.repo.all_package_names(include_virtuals=True)
assert 'mpi' not in spack.repo.all_package_names(include_virtuals=False)
@pytest.mark.regression('29203')
def test_use_repositories_doesnt_change_class():
"""Test that we don't create the same package module and class multiple times
when swapping repositories.
"""
zlib_cls_outer = spack.repo.path.get_pkg_class('zlib')
current_paths = [r.root for r in spack.repo.path.repos]
with spack.repo.use_repositories(*current_paths):
zlib_cls_inner = spack.repo.path.get_pkg_class('zlib')
assert id(zlib_cls_inner) == id(zlib_cls_outer)

View File

@@ -31,7 +31,7 @@ def saved_deps():
@pytest.fixture()
def set_dependency(saved_deps):
def set_dependency(saved_deps, monkeypatch):
"""Returns a function that alters the dependency information
for a package in the ``saved_deps`` fixture.
"""
@@ -48,7 +48,7 @@ def _mock(pkg_name, spec, deptypes=all_deptypes):
cond = Spec(pkg.name)
dependency = Dependency(pkg, spec, type=deptypes)
pkg.dependencies[spec.name] = {cond: dependency}
monkeypatch.setitem(pkg.dependencies, spec.name, {cond: dependency})
return _mock

View File

@@ -29,7 +29,8 @@ def test_fetch(
secure,
mock_svn_repository,
config,
mutable_mock_repo
mutable_mock_repo,
monkeypatch
):
"""Tries to:
@@ -48,7 +49,7 @@ def test_fetch(
spec = Spec('svn-test')
spec.concretize()
pkg = spack.repo.get(spec)
pkg.versions[ver('svn')] = t.args
monkeypatch.setitem(pkg.versions, ver('svn'), t.args)
# Enter the stage directory and check some properties
with pkg.stage:

View File

@@ -630,6 +630,14 @@ def test_version_wrong_idx_type():
v['0:']
@pytest.mark.regression('29170')
def test_version_range_satisfies_means_nonempty_intersection():
x = VersionRange('3.7.0', '3')
y = VersionRange('3.6.0', '3.6.0')
assert not x.satisfies(y)
assert not y.satisfies(x)
@pytest.mark.regression('26482')
def test_version_list_with_range_included_in_concrete_version_interpreted_as_range():
# Note: this test only tests whether we can construct a version list of a range

View File

@@ -167,7 +167,7 @@ def __gt__(self, other):
class Version(object):
"""Class to represent versions"""
__slots__ = ['version', 'separators', 'string', 'commit_lookup']
__slots__ = ['version', 'separators', 'string', 'is_commit', 'commit_lookup']
def __init__(self, string):
if not isinstance(string, str):
@@ -189,6 +189,8 @@ def __init__(self, string):
)
self.separators = tuple(m[2] for m in segments)
self.is_commit = len(self.string) == 40 and COMMIT_VERSION.match(self.string)
def _cmp(self, other_lookups=None):
commit_lookup = self.commit_lookup or other_lookups
@@ -205,15 +207,6 @@ def _cmp(self, other_lookups=None):
return self.version
@property
def is_commit(self):
"""
Determine if the original string is referencing a commit.
"""
if self.string in infinity_versions:
return False
return COMMIT_VERSION.match(self.string) is not None
@property
def dotted(self):
"""The dotted representation of the version.
@@ -586,35 +579,23 @@ def __contains__(self, other):
@coerced
def satisfies(self, other):
"""A VersionRange satisfies another if some version in this range
would satisfy some version in the other range. To do this it must
either:
a) Overlap with the other range
b) The start of this range satisfies the end of the other range.
This is essentially the same as overlaps(), but overlaps assumes
that its arguments are specific. That is, 4.7 is interpreted as
4.7.0.0.0.0... . This function assumes that 4.7 would be satisfied
by 4.7.3.5, etc.
Rationale:
If a user asks for gcc@4.5:4.7, and a package is only compatible with
gcc@4.7.3:4.8, then that package should be able to build under the
constraints. Just using overlaps() would not work here.
Note that we don't need to check whether the end of this range
would satisfy the start of the other range, because overlaps()
already covers that case.
Note further that overlaps() is a symmetric operation, while
satisfies() is not.
"""
return (self.overlaps(other) or
# if either self.start or other.end are None, then this can't
# satisfy, or overlaps() would've taken care of it.
self.start and other.end and self.start.satisfies(other.end))
x.satisfies(y) in general means that x and y have a
non-zero intersection. For VersionRange this means they overlap.
`satisfies` is a commutative binary operator, meaning that
x.satisfies(y) if and only if y.satisfies(x).
Note: in some cases we have the keyword x.satisfies(y, strict=True)
to mean strict set inclusion, which is not commutative. However, this
lacks in VersionRange for unknown reasons.
Examples
- 1:3 satisfies 2:4, as their intersection is 2:3.
- 1:2 does not satisfy 3:4, as their intersection is empty.
- 4.5:4.7 satisfies 4.7.2:4.8, as their intersection is 4.7.2:4.7
"""
return self.overlaps(other)
@coerced
def overlaps(self, other):

View File

@@ -33,8 +33,6 @@ spack:
variants: +bzip2 ~nls +xz
hdf5:
variants: +fortran +hl +shared
version:
- 1.10.7
libfabric:
variants: fabrics=sockets,tcp,udp,rxm
libunwind:

View File

@@ -12,7 +12,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
mesh refinement (AMR) applications."""
homepage = "https://amrex-codes.github.io/amrex/"
url = "https://github.com/AMReX-Codes/amrex/releases/download/22.02/amrex-22.02.tar.gz"
url = "https://github.com/AMReX-Codes/amrex/releases/download/22.03/amrex-22.03.tar.gz"
git = "https://github.com/AMReX-Codes/amrex.git"
test_requires_compiler = True
@@ -22,6 +22,7 @@ class Amrex(CMakePackage, CudaPackage, ROCmPackage):
maintainers = ['WeiqunZhang', 'asalmgren', 'etpalmer63']
version('develop', branch='development')
version('22.03', sha256='2a67233e55f20b937e2da97f1ed3ab0666e12ef283b4d14c9456ebf21f36b77c')
version('22.02', sha256='5d8dd3fa3c416b04e70188e06b7e8fc2838d78b43a2cf33a285184c77f0c1e1e')
version('22.01', sha256='857df5b2fa8e3010b8856b81879a5be32ba7cc2e575474256eae7ef815b8354d')
version('21.12', sha256='439f9ebf2b440fc739a7976f3ade188ec3e1de5f51a0b151e6b8dda36fa67278')

View File

@@ -20,7 +20,7 @@ class Apfel(AutotoolsPackage):
version('3.0.4', sha256='c7bfae7fe2dc0185981850f2fe6ae4842749339d064c25bf525b4ef412bbb224')
depends_on('swig', when='+python')
depends_on('python', when='+python', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
depends_on('lhapdf', when='+lhapdf', type=('build', 'run'))
variant('python', description='Build python wrapper', default=False)

View File

@@ -13,12 +13,13 @@ class AwsParallelcluster(PythonPackage):
tool to deploy and manage HPC clusters in the AWS cloud."""
homepage = "https://github.com/aws/aws-parallelcluster"
pypi = "aws-parallelcluster/aws-parallelcluster-2.11.4.tar.gz"
pypi = "aws-parallelcluster/aws-parallelcluster-2.11.5.tar.gz"
maintainers = [
'demartinofra', 'enrico-usai', 'lukeseawalker',
]
version('2.11.5', sha256='7499f88387cbe2cb73f9fddeee3363117f7ef1524d6a73e77bb07900040baebb')
version('2.11.4', sha256='449537ccda57f91f4ec6ae0c94a8e2b1a789f08f80245fadb28f44a4351d5da4')
version('2.11.3', sha256='7c1d74123f2f670846aed8fe1fcca5908bb46ec014e2dfc7d3ec8994447a37a0')
version('2.11.2', sha256='60d96a5ea4dca4816ceffc4546549743abd1f6207c62f016c9c348adc64b2ec0')

View File

@@ -98,9 +98,6 @@ class Axom(CachedCMakePackage, CudaPackage):
depends_on("conduit+hdf5", when="+hdf5")
depends_on("conduit~hdf5", when="~hdf5")
# HDF5 needs to be the same as Conduit's
depends_on("hdf5@1.8.19:1.8~cxx~fortran", when="+hdf5")
depends_on("lua", when="+lua")
depends_on("scr", when="+scr")

View File

@@ -23,6 +23,7 @@ class Blt(Package):
# if you export targets this could cause problems in downstream
# projects if not handled properly. More info here:
# https://llnl-blt.readthedocs.io/en/develop/tutorial/exporting_targets.html
version('0.5.0', sha256='5f680ef922d0e0a7ff1b1a5fc8aa107cd4f543ad888cbc9b12639bea72a6ab1f')
version('0.4.1', sha256='16cc3e067ddcf48b99358107e5035a17549f52dcc701a35cd18a9d9f536826c1')
version('0.4.0', sha256='f3bc45d28b9b2eb6df43b75d4f6f89a1557d73d012da7b75bac1be0574767193')
version('0.3.6', sha256='6276317c29e7ff8524fbea47d9288ddb40ac06e9f9da5e878bf9011e2c99bf71')

View File

@@ -5,6 +5,8 @@
import os
from llnl.util import tty
from spack import *
@@ -57,19 +59,19 @@ def run_sample_nested_example(self):
"""Run stand alone test: sample_nested"""
test_dir = join_path(self.test_suite.current_test_cache_dir, 'examples')
exe = 'sample_nested'
source_file = 'sample_nested.c'
if not os.path.exists(test_dir):
print('Skipping bolt test')
if not os.path.isfile(join_path(test_dir, source_file)):
tty.warn('Skipping bolt test:'
'{0} does not exist'.format(source_file))
return
exe = 'sample_nested'
# TODO: Either change to use self.compiler.cc (so using the build-time compiler)
# or add test parts that compile with the different supported compilers.
self.run_test('gcc',
options=['-lomp', '-o', exe,
'-L{0}'.format(join_path(self.prefix, 'lib')),
'{0}'.format(join_path(test_dir, 'sample_nested.c'))],
self.run_test(exe=os.environ['CXX'],
options=['-L{0}'.format(self.prefix.lib),
'-I{0}'.format(self.prefix.include),
'{0}'.format(join_path(test_dir, source_file)),
'-o', exe, '-lomp', '-lbolt'],
purpose='test: compile {0} example'.format(exe),
work_dir=test_dir)
@@ -78,5 +80,4 @@ def run_sample_nested_example(self):
work_dir=test_dir)
def test(self):
print("Running bolt test")
self.run_sample_nested_example()

View File

@@ -0,0 +1,11 @@
--- spack-src/tools/build/src/tools/clang-linux.jam.orig 2022-02-22 09:51:17.000000000 +0900
+++ spack-src/tools/build/src/tools/clang-linux.jam 2022-02-22 11:22:58.000000000 +0900
@@ -97,7 +97,7 @@
rule get-full-version ( command-string )
{
- return [ common.match-command-output version : "version ([0-9.]+)"
+ return [ common.match-command-output version : "LLVM ([0-9.]+)"
: "$(command-string) --version" ] ;
}

View File

@@ -261,7 +261,8 @@ def libs(self):
working_dir='libs/system', level=1)
# Change the method for version analysis when using Fujitsu compiler.
patch('fujitsu_version_analysis.patch', when='@1.67.0:%fj')
patch('fujitsu_version_analysis.patch', when='@1.67.0:1.76.0%fj')
patch('fujitsu_version_analysis-1.77.patch', when='@1.77.0:%fj')
# Add option to C/C++ compile commands in clang-linux.jam
patch('clang-linux_add_option.patch', when='@1.56.0:1.63.0')

View File

@@ -22,10 +22,11 @@ class Butterflypack(CMakePackage):
homepage = "https://github.com/liuyangzhuan/ButterflyPACK"
git = "https://github.com/liuyangzhuan/ButterflyPACK.git"
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.1.0.tar.gz"
url = "https://github.com/liuyangzhuan/ButterflyPACK/archive/v2.1.1.tar.gz"
maintainers = ['liuyangzhuan']
version('master', branch='master')
version('2.1.1', sha256='0d4a1ce540c84de37e4398f72ecf685ea0c4eabceba13015add5b445a4ca3a15')
version('2.1.0', sha256='ac76cc8d431797c1a3641b23124e3de5eb8c3a3afb71c336e7ba69c6cdf150ef')
version('2.0.0', sha256='84f0e5ac40997409f3c80324238a07f9c700a1263b84140ed97275d67b577b80')
version('1.2.1', sha256='cd61b0e033f55a932f13d9902e28a7abbf029c279cec9ab1b2a063525d036fa2')

View File

@@ -94,9 +94,7 @@ class Charmpp(Package):
# Other options
variant("papi", default=False, description="Enable PAPI integration")
variant("syncft", default=False, description="Compile with Charm++ fault tolerance support")
variant("smp", default=True,
description=(
"Enable SMP parallelism (does not work with +multicore)"))
variant("smp", default=True, description="Enable SMP parallelism")
variant("tcp", default=False,
description="Use TCP as transport mechanism (requires +net)")
variant("omp", default=False, description="Support for the integrated LLVM OpenMP runtime")
@@ -134,7 +132,8 @@ class Charmpp(Package):
conflicts("~tracing", "+papi")
conflicts("backend=multicore", "+smp")
conflicts("backend=multicore", when="~smp",
msg="The 'multicore' backend always uses SMP")
conflicts("backend=ucx", when="@:6.9")
# Shared-lib builds with GCC are broken on macOS:
@@ -299,7 +298,11 @@ def install(self, spec, prefix):
options.extend(["--basedir=%s" % spec["ucx"].prefix])
if "+papi" in spec:
options.extend(["papi", "--basedir=%s" % spec["papi"].prefix])
if "+smp" in spec:
if "+smp" in spec and 'backend=multicore' not in spec:
# The 'multicore' backend always uses SMP, so we don't have to
# append the 'smp' option when the 'multicore' backend is active. As
# of Charm++ v7.0.0 it is actually a build error to append 'smp'
# with the 'multicore' backend.
options.append("smp")
if "+tcp" in spec:
if 'backend=netlrts' not in spec:

View File

@@ -77,6 +77,8 @@ class Conduit(CMakePackage):
# set to false for systems that implicitly link mpi
variant('blt_find_mpi', default=True, description='Use BLT CMake Find MPI logic')
variant("hdf5", default=True, description="Build Conduit HDF5 support")
# TODO: remove 'compat' variant when VisIt starts distributing HDF5
# binaries
variant("hdf5_compat", default=True, when='+hdf5',
description="Build Conduit with HDF5 1.8.x (compatibility mode)")
variant("silo", default=False, description="Build Conduit Silo support")
@@ -117,26 +119,18 @@ class Conduit(CMakePackage):
###############
# HDF5
###############
# Note: cxx variant is disabled due to build issue Cyrus
# experienced on BGQ. When on, the static build tries
# to link against shared libs.
#
# Use HDF5 1.8, for wider output compatibly
# variants reflect we are not using hdf5's mpi or fortran features.
depends_on("hdf5~cxx", when="+hdf5")
depends_on("hdf5~shared", when="+hdf5~shared")
depends_on("hdf5@1.8.19:1.8", when="+hdf5+hdf5_compat")
# we need to hand this to conduit so it can properly
# handle downstream linking of zlib reqed by hdf5
depends_on("zlib", when="+hdf5")
depends_on("hdf5", when="+hdf5")
depends_on("hdf5~shared", when="+hdf5~shared")
# Require older HDF5 to ensure compatibility with VisIt: see #29132
depends_on("hdf5@1.8.0:1.8", when="+hdf5+hdf5_compat")
###############
# Silo
###############
# we are not using silo's fortran features
depends_on("silo~fortran", when="+silo+shared")
depends_on("silo~shared~fortran", when="+silo~shared")
depends_on("silo+shared", when="+silo+shared")
depends_on("silo~shared", when="+silo~shared")
###############
# ADIOS
@@ -528,7 +522,9 @@ def hostconfig(self, spec, prefix):
if "+hdf5" in spec:
cfg.write(cmake_cache_entry("HDF5_DIR", spec['hdf5'].prefix))
cfg.write(cmake_cache_entry("ZLIB_DIR", spec['zlib'].prefix))
if 'zlib' in spec:
# HDF5 depends on zlib
cfg.write(cmake_cache_entry("ZLIB_DIR", spec['zlib'].prefix))
else:
cfg.write("# hdf5 not built by spack \n")

View File

@@ -83,7 +83,12 @@ class Cp2k(MakefilePackage, CudaPackage):
with when('+openmp'):
depends_on('fftw+openmp', when='^fftw')
depends_on('amdfftw+openmp', when='^amdfftw')
depends_on('cray-fftw+openmp', when='^cray-fftw')
depends_on('openblas threads=openmp', when='^openblas')
# The Cray compiler wrappers will automatically add libsci_mp with
# -fopenmp. Since CP2K unconditionally links blas/lapack/scalapack
# we have to be consistent.
depends_on('cray-libsci+openmp', when='^cray-libsci')
with when('smm=libxsmm'):
depends_on('libxsmm@1.17:~header-only', when='@9.1:')

View File

@@ -30,7 +30,7 @@ class CrayLibsci(Package):
provides("blas")
provides("lapack")
provides("scalapack")
provides("scalapack", when="+mpi")
canonical_names = {
'gcc': 'GNU',

View File

@@ -3,6 +3,8 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import re
from spack import *
@@ -19,6 +21,8 @@ class Dos2unix(MakefilePackage):
depends_on('gettext')
executables = [r'^dos2unix$']
@property
def build_targets(self):
targets = [
@@ -29,3 +33,9 @@ def build_targets(self):
def install(self, spec, prefix):
make('prefix={0}'.format(prefix), 'install')
@classmethod
def determine_version(cls, exe):
output = Executable(exe)('--version', output=str, error=str)
match = re.search(r'^dos2unix\s+([\d\.]+)', output)
return match.group(1) if match else None

View File

@@ -35,6 +35,8 @@ class Edm4hep(CMakePackage):
depends_on('root@6.08:')
depends_on('podio@0.14:', when='@0.4:')
depends_on('podio@0.13.0:0.13', when='@:0.3')
depends_on('py-jinja2', type='build')
depends_on('py-pyyaml', type='build')
depends_on('hepmc@:2', type='test', when='@:0.4.0')
depends_on('hepmc3', type='test', when='@0.4.1:')

View File

@@ -39,6 +39,10 @@ class Eigen(CMakePackage):
patch('https://gitlab.com/libeigen/eigen/-/commit/6d822a1052fc665f06dc51b4729f6a38e0da0546.diff', when='@3.3.8',
sha256='62590e9b33a8f72b608a72b87147a306e7cb20766ea53c6b8e0a183fa6cb7635')
# there is a bug in 3.3.4 that provokes a compile error with the xl compiler
# See https://gitlab.com/libeigen/eigen/-/issues/1555
patch('xlc-compilation-3.3.4.patch', when='@3.3.4%xl_r')
# From http://eigen.tuxfamily.org/index.php?title=Main_Page#Requirements
# "Eigen doesn't have any dependencies other than the C++ standard
# library."

View File

@@ -0,0 +1,12 @@
diff -up /Eigen/src/Core/arch/AltiVec/PacketMath.h /Eigen/src/Core/arch/AltiVec/PacketMath.h
--- /Eigen/src/Core/arch/AltiVec/PacketMath.h
+++ /Eigen/src/Core/arch/AltiVec/PacketMath.h
@@ -1022,7 +1022,7 @@ ptranspose(PacketBlock<Packet2d,2>& kern
template<> EIGEN_STRONG_INLINE Packet2d pblend(const Selector<2>& ifPacket, const Packet2d& thenPacket, const Packet2d& elsePacket) {
Packet2l select = { ifPacket.select[0], ifPacket.select[1] };
- Packet2bl mask = vec_cmpeq(reinterpret_cast<Packet2d>(select), reinterpret_cast<Packet2d>(p2l_ONE));
+ Packet2bl mask = reinterpret_cast<Packet2bl>( vec_cmpeq(reinterpret_cast<Packet2d>(select), reinterpret_cast<Packet2d>(p2l_ONE)) );
return vec_sel(elsePacket, thenPacket, mask);
}
#endif // __VSX__

View File

@@ -18,6 +18,8 @@ class Esmf(MakefilePackage):
homepage = "https://www.earthsystemcog.org/projects/esmf/"
url = 'https://github.com/esmf-org/esmf/archive/ESMF_8_0_1.tar.gz'
maintainers = ['climbfuji']
version('8.2.0', sha256='3693987aba2c8ae8af67a0e222bea4099a48afe09b8d3d334106f9d7fc311485')
version('8.1.1', sha256='58c2e739356f21a1b32673aa17a713d3c4af9d45d572f4ba9168c357d586dc75')
version('8.0.1', sha256='9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84')
@@ -126,10 +128,14 @@ def edit(self, spec, prefix):
# C++ compilers are being used to build the ESMF library.
if self.compiler.name == 'gcc':
os.environ['ESMF_COMPILER'] = 'gfortran'
gfortran_major_version = int(spack.compiler.get_compiler_version_output(
self.compiler.fc, '-dumpversion').split('.')[0])
elif self.compiler.name == 'intel':
os.environ['ESMF_COMPILER'] = 'intel'
elif self.compiler.name == 'clang':
elif self.compiler.name in ['clang', 'apple-clang']:
os.environ['ESMF_COMPILER'] = 'gfortranclang'
gfortran_major_version = int(spack.compiler.get_compiler_version_output(
self.compiler.fc, '-dumpversion').split('.')[0])
elif self.compiler.name == 'nag':
os.environ['ESMF_COMPILER'] = 'nag'
elif self.compiler.name == 'pgi':
@@ -154,9 +160,18 @@ def edit(self, spec, prefix):
# Build an optimized version of the library.
os.environ['ESMF_BOPT'] = 'O'
if self.spec.satisfies('%gcc@10:'):
if self.compiler.name in ['gcc', 'clang', 'apple-clang'] and \
gfortran_major_version >= 10:
os.environ['ESMF_F90COMPILEOPTS'] = '-fallow-argument-mismatch'
#######
# OS #
#######
# ESMF_OS must be set for Cray systems
if 'platform=cray' in self.spec:
os.environ['ESMF_OS'] = 'Unicos'
#######
# MPI #
#######
@@ -276,3 +291,9 @@ def edit(self, spec, prefix):
def check(self):
make('check', parallel=False)
def setup_dependent_build_environment(self, env, dependent_spec):
env.set('ESMFMKFILE', os.path.join(self.prefix.lib, 'esmf.mk'))
def setup_run_environment(self, env):
env.set('ESMFMKFILE', os.path.join(self.prefix.lib, 'esmf.mk'))

View File

@@ -37,7 +37,7 @@ def patch(self):
def configure_args(self):
args = ['--with-boost={0}'.format(self.spec['boost'].prefix)]
if self.spec.satisfies('polatform=darwin'):
if self.spec.satisfies('platform=darwin'):
args += ['--with-darwinports', '--with-fink']
return args

View File

@@ -14,6 +14,8 @@ class Fmt(CMakePackage):
homepage = "https://fmt.dev/"
url = "https://github.com/fmtlib/fmt/releases/download/7.1.3/fmt-7.1.3.zip"
version('8.1.1', sha256='23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d')
version('8.1.0', sha256='d8e9f093b2241c3a9fc3895e23231ef9de00c762cfa0a9c65e4748755bc352ae')
version('8.0.1', sha256='a627a56eab9554fc1e5dd9a623d0768583b3a383ff70a4312ba68f94c9d415bf')
version('7.1.3', sha256='5d98c504d0205f912e22449ecdea776b78ce0bb096927334f80781e720084c9f')
version('7.1.2', sha256='4d6968ab7c01e95cc76df136755703defb985105a117b83057e4fd5d53680ea7')

View File

@@ -20,6 +20,11 @@ class GitLfs(MakefilePackage):
executables = ['^git-lfs$']
maintainers = ['sethrj']
version('3.1.2', sha256='5c9bc449068d0104ea124c25f596af16da85e7b5bf256bc544d8ce5f4fe231f2')
version('2.13.3', sha256='f8bd7a06e61e47417eb54c3a0db809ea864a9322629b5544b78661edab17b950')
version('2.12.1', sha256='2b2e70f1233f7efe9a010771510391a07527ec7c0af721ecf8edabac5d60f62b')
version('2.11.0', sha256='8183c4cbef8cf9c2e86b0c0a9822451e2df272f89ceb357c498bfdf0ff1b36c7')
version('2.10.0', sha256='07fd5c57a1039d5717dc192affbe3268ec2fd03accdca462cb504c0b4194cd23')
version('2.9.0', sha256='f1963ad88747577ffeeb854649aeacaa741c59be74683da4d46b129a72d111b7')
@@ -29,11 +34,16 @@ class GitLfs(MakefilePackage):
version('2.7.0', sha256='1c829ddd163be2206a44edb366bd7f6d84c5afae3496687405ca9d2a5f3af07b')
version('2.6.1', sha256='e17cd9d4e66d1116be32f7ddc7e660c7f8fabbf510bc01b01ec15a22dd934ead')
depends_on('go@1.5:', type='build')
depends_on('go@1.17:', type='build', when='@2.13:')
depends_on('go@1.5:', type='build', when='@:2.12')
depends_on('git@1.8.2:', type='run')
patch('patches/issue-10702.patch', when='@2.7.0:2.7.1')
# Mysterious syscall failures of old versions on new systems
conflicts('os=bigsur', when='@:2.11')
conflicts('os=monterey', when='@:2.11')
parallel = False
@classmethod

View File

@@ -14,6 +14,7 @@ class Gmp(AutotoolsPackage, GNUMirrorPackage):
gnu_mirror_path = "gmp/gmp-6.1.2.tar.bz2"
version('6.2.1', sha256='eae9326beb4158c386e39a356818031bd28f3124cf915f8c5b1dc4c7a36b4d7c')
version('6.2.0', sha256='f51c99cb114deb21a60075ffb494c1a210eb9d7cb729ed042ddb7de9534451ea')
version('6.1.2', sha256='5275bb04f4863a13516b2f39392ac5e272f5e1bb8057b18aec1c9b79d73d8fb2')
version('6.1.1', sha256='a8109865f2893f1373b0a8ed5ff7429de8db696fc451b1036bd7bdf95bbeffd6')
version('6.1.0', sha256='498449a994efeba527885c10405993427995d3f86b8768d8cdf8d9dd7c6b73e8')

View File

@@ -42,10 +42,11 @@ class Go(Package):
maintainers = ['alecbcs']
version('1.17.3', sha256='705c64251e5b25d5d55ede1039c6aa22bea40a7a931d14c370339853643c3df0')
version('1.17.2', sha256='2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431')
version('1.17.1', sha256='49dc08339770acd5613312db8c141eaf61779995577b89d93b541ef83067e5b1')
version('1.17', sha256='3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d')
version('1.17.7', sha256='c108cd33b73b1911a02b697741df3dea43e01a5c4e08e409e8b3a0e3745d2b4d')
version('1.17.3', sha256='705c64251e5b25d5d55ede1039c6aa22bea40a7a931d14c370339853643c3df0', deprecated=True)
version('1.17.2', sha256='2255eb3e4e824dd7d5fcdc2e7f84534371c186312e546fb1086a34c17752f431', deprecated=True)
version('1.17.1', sha256='49dc08339770acd5613312db8c141eaf61779995577b89d93b541ef83067e5b1', deprecated=True)
version('1.17', sha256='3a70e5055509f347c0fb831ca07a2bf3b531068f349b14a3c652e9b5b67beb5d', deprecated=True)
version('1.16.10', sha256='a905472011585e403d00d2a41de7ced29b8884309d73482a307f689fd0f320b5')
version('1.16.9', sha256='0a1cc7fd7bd20448f71ebed64d846138850d5099b18cf5cc10a4fc45160d8c3d')
version('1.16.6', sha256='a3a5d4bc401b51db065e4f93b523347a4d343ae0c0b08a65c3423b05a138037d')

View File

@@ -27,7 +27,7 @@ class Groff(AutotoolsPackage, GNUMirrorPackage):
# See brew scripts for groff for guidance:
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/groff.rb
# Seems troublesome...netpbm requires groff?
variant('pdf', default=True, description='Build the `gropdf` executable.')
variant('pdf', default=False, description='Build the `gropdf` executable.')
variant('x', default=False, description='Enable set of graphical options')
variant('uchardet', default=True,
description='Builds preconv with uchardet library for '

View File

@@ -20,11 +20,12 @@ class Gurobi(Package):
# to set up a mirror, see
# https://spack.readthedocs.io/en/latest/mirrors.html
homepage = "https://www.gurobi.com/index"
homepage = "https://www.gurobi.com"
manual_download = True
maintainers = ['glennpj']
version('9.5.1', sha256='fa82859d33f08fb8aeb9da66b0fbd91718ed573c534f571aa52372c9deb891da')
version('9.1.2', sha256='7f60bd675f79476bb2b32cd632aa1d470f8246f2b033b7652d8de86f6e7e429b')
version('7.5.2', '01f6dbb8d165838cca1664a1a14e4a85')
@@ -35,9 +36,7 @@ class Gurobi(Package):
license_url = 'http://www.gurobi.com/downloads/download-center'
extends('python')
depends_on('python@2.7,3.6:', type=('build', 'run'))
depends_on('py-pip', type='build')
depends_on('py-wheel', type='build')
depends_on('python@2.7,3.6:')
def url_for_version(self, version):
return "file://{0}/gurobi{1}_linux64.tar.gz".format(os.getcwd(), version)
@@ -58,5 +57,5 @@ def install(self, spec, prefix):
@run_after('install')
def gurobipy(self):
with working_dir('linux64'):
args = std_pip_args + ['--prefix=' + self.prefix, '.']
pip(*args)
python = which('python')
python('setup.py', 'install', '--prefix={0}'.format(self.prefix))

View File

@@ -108,6 +108,8 @@ class Hdf5(CMakePackage):
conflicts('+java', when='@:1.9')
# The Java wrappers cannot be built without shared libs.
conflicts('+java', when='~shared')
# Fortran cannot be built with shared
conflicts('+fortran', when='+shared@:1.8')
# There are several officially unsupported combinations of the features:
# 1. Thread safety is not guaranteed via high-level C-API but in some cases

View File

@@ -18,6 +18,7 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
maintainers = ['ashermancinelli', 'CameronRutherford']
# Most recent tagged snapshot is the preferred version when profiling.
version('0.5.4', commit='a37a7a677884e95d1c0ad37936aef3778fc91c3e')
version('0.5.3', commit='698e8d0fdc0ff9975d8714339ff8c782b70d85f9')
version('0.5.2', commit='662ad76dee1f501f648a8bec9a490cb5881789e9')
version('0.5.1', commit='6789bbb55824e68e428c2df1009d647af81f9cf1')
@@ -64,10 +65,16 @@ class Hiop(CMakePackage, CudaPackage, ROCmPackage):
depends_on('magma+cuda', when='+cuda')
depends_on('magma+rocm', when='+rocm')
depends_on('magma@2.5.4:', when='@0.4:+cuda')
depends_on('magma@2.6.1:', when='@0.4.6:+cuda')
depends_on('magma@2.5.4:', when='@0.4:+rocm')
depends_on('magma@2.6.1:', when='@0.4.6:+rocm')
# Depends on Magma when +rocm or +cuda
magma_ver_constraints = (
('2.5.4', '0.4'),
('2.6.1', '0.4.6'),
('2.6.2', '0.5.4'),
)
for (magma_v, hiop_v) in magma_ver_constraints:
depends_on('magma@{0}:'.format(magma_v), when='@{0}:+cuda'.format(hiop_v))
depends_on('magma@{0}:'.format(magma_v), when='@{0}:+rocm'.format(hiop_v))
depends_on('raja+openmp', when='+raja')
depends_on('raja@0.14.0:', when='@0.5.0:+raja')

View File

@@ -0,0 +1,36 @@
# Copyright 2013-2022 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 import *
class Hztool(AutotoolsPackage):
"""HZTool is a library of routines which will allow you to reproduce an
experimental result using the four-vector final state from Monte Carlo
generators."""
homepage = "https://hztool.hepforge.org"
url = "https://hztool.hepforge.org/downloads/?f=hztool-4.3.2.tar.gz"
list_url = "https://hztool.hepforge.org/downloads/"
maintainers = ['wdconinc']
tags = ['hep']
version('4.3.2', sha256='2a8d334abd96a7a9f70d53cfbb46f35902ccd1108861333a87542f8357152fd4')
version('4.3', sha256='af1a302c16e9f0bfbfdd77a486a5f47553d81d1d049bc83cc72321ba285af264')
version('4.2', sha256='87b74b2e424a1e6bd990cc12a0bfcba15854a6451ffa20aff8dc4bdfed559160')
version('4.1', sha256='a24b5d483d1dacaa991958956e838601a426133c74885b3aa2fc27c98b42d22a')
version('4.0', sha256='e6f6955159da46156bf9182f61754a59dd14e407d40c2448e3f821d55bf963a0')
def patch(self):
filter_file('-fno-automatic',
'-fno-automatic -fallow-argument-mismatch',
'configure.ac')
def configure_args(self):
args = []
args.append('--disable-docs')
return args

View File

@@ -0,0 +1,26 @@
# Copyright 2013-2021 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 import *
class Kakoune(MakefilePackage):
"""mawww's experiment for a better code editor."""
homepage = "https://www.kakoune.org"
url = "https://github.com/mawww/kakoune/releases/download/v2021.11.08/kakoune-2021.11.08.tar.bz2"
maintainers = ['Bambi']
version('2021.11.08', sha256='aa30889d9da11331a243a8f40fe4f6a8619321b19217debac8f565e06eddb5f4')
depends_on('ncurses')
conflicts('%gcc@:8', when='@2021.11.08', msg='GCC version must be at least 9.0!')
build_targets = ['all', 'man']
def edit(self, spec, prefix):
env['PREFIX'] = prefix

View File

@@ -136,6 +136,7 @@ class Kokkos(CMakePackage, CudaPackage, ROCmPackage):
"72": 'volta72',
"75": 'turing75',
"80": 'ampere80',
"86": 'ampere86',
}
cuda_arches = spack_cuda_arch_map.values()
conflicts("+cuda", when="cuda_arch=none")

View File

@@ -27,3 +27,9 @@ def setup_run_environment(self, env):
env.set('LANDSFCUTIL_LIB' + suffix, lib[0])
env.set('LANDSFCUTIL_INC' + suffix,
join_path(self.prefix, 'include_' + suffix))
def flag_handler(self, name, flags):
if self.spec.satisfies('%fj'):
if name == 'fflags':
flags.append('-Free')
return (None, None, flags)

View File

@@ -197,9 +197,12 @@ class Lbann(CMakePackage, CudaPackage, ROCmPackage):
depends_on('cnpy', when='+numpy')
depends_on('nccl', when='@0.94:0.98.2 +cuda')
depends_on('conduit@0.4.0: +hdf5~hdf5_compat ~python', when='@0.94:0 +conduit')
depends_on('conduit@0.5.0:0.6 +hdf5~hdf5_compat ~python', when='@0.100:0.101 +conduit')
depends_on('conduit@0.6.0: +hdf5~hdf5_compat~fortran~parmetis ~python', when='@:0.90,0.99:')
# Note that conduit defaults to +fortran +parmetis +python, none of which are
# necessary by LBANN: you may want to disable those options in your
# packages.yaml
depends_on('conduit@0.4.0: +hdf5', when='@0.94:0 +conduit')
depends_on('conduit@0.5.0:0.6 +hdf5', when='@0.100:0.101 +conduit')
depends_on('conduit@0.6.0: +hdf5', when='@:0.90,0.99:')
# LBANN can use Python in two modes 1) as part of an extensible framework
# and 2) to drive the front end model creation and launch

View File

@@ -11,24 +11,30 @@ class Lhapdf(AutotoolsPackage):
used for evaluating PDFs from discretised data files. """
homepage = "https://lhapdf.hepforge.org/"
url = "https://lhapdf.hepforge.org/downloads/?f=LHAPDF-6.2.3.tar.gz"
git = "https://gitlab.com/hepcedar/lhapdf"
# the tarballs from hepforge include bundled cython sources
# that may break the build when using incompatible python versions
# thus use the release tarball from gitlab that does not include lhapdf.cxx
url = "https://gitlab.com/hepcedar/lhapdf/-/archive/lhapdf-6.4.0/lhapdf-lhapdf-6.4.0.tar.gz"
tags = ['hep']
version('6.3.0', sha256='ed4d8772b7e6be26d1a7682a13c87338d67821847aa1640d78d67d2cef8b9b5d')
version('6.2.3', sha256='d6e63addc56c57b6286dc43ffc56d901516f4779a93a0f1547e14b32cfd82dd1')
version('6.4.0', sha256='155702c36df46de30c5f7fa249193a9a0eea614191de1606301e06cd8062fc29')
version('6.3.0', sha256='864468439c7662bbceed6c61c7132682ec83381a23c9c9920502fdd7329dd816')
version('6.2.3', sha256='37200a1ab70247250a141dfed7419d178f9a83bd23a4f8a38e203d4e27b41308')
variant('python', default=True, description="Build python bindings")
depends_on('autoconf', type='build')
depends_on('automake', type='build')
depends_on('libtool', type='build')
depends_on('m4', type='build')
depends_on('python', type=('build', 'run'))
depends_on('py-cython', type='build')
depends_on('py-setuptools', type='build')
extends('python')
extends('python', when='+python')
depends_on('py-cython', type='build', when='+python')
depends_on('py-setuptools', type='build', when='+python')
def configure_args(self):
args = ['FCFLAGS=-O3', 'CFLAGS=-O3', 'CXXFLAGS=-O3']
args.extend(self.enable_or_disable('python'))
return args

View File

@@ -32,6 +32,7 @@ class Libdrm(Package):
depends_on('docbook-xsl', type='build')
depends_on('libpciaccess@0.10:')
depends_on('libpthread-stubs')
depends_on('meson', type='build', when='@2.4.101:')
def url_for_version(self, version):
if version <= Version('2.4.100'):

View File

@@ -11,9 +11,11 @@ class Libpipeline(AutotoolsPackage):
in a flexible and convenient way."""
homepage = "http://libpipeline.nongnu.org/"
url = "https://git.savannah.nongnu.org/cgit/libpipeline.git/snapshot/libpipeline-1.4.2.tar.gz"
git = "https://gitlab.com/cjwatson/libpipeline"
url = "https://download.savannah.nongnu.org/releases/libpipeline/libpipeline-1.5.5.tar.gz"
version('1.4.2', sha256='ac8b103b281ff63129c4fa6a8cc40bb5863e3a4266343d6e3bb5788de1ede488')
version('1.5.5', sha256='0c8367f8b82bb721b50647a647115b6e62a37e3b2e954a9685e4d933f30c00cc')
version('1.4.2', sha256='fef1fc9aa40ce8796f18cd1aecd888a9484a9556c8b0f8d07c863578277679be')
depends_on('pkgconfig', type='build')
depends_on('check', type='test')

View File

@@ -15,6 +15,7 @@ class Libtree(MakefilePackage):
maintainers = ['haampie']
version('master', branch='master')
version('3.1.0', sha256='8057edb2dd77b0acf6ceab6868741993979dccd41fc41a58bde743f11666d781')
version('3.0.3', sha256='7e4589b617775cb3a2b4b8fe03f80b81e43ef16046d680f1517ce52d7be9893f')
version('3.0.2', sha256='f07c9cf3394cacd1eab15d42b97b9b6787d8bd3b7f6746fe0f39e7d951eebaac')
version('3.0.1', sha256='20d3cd66f5c74058de9dd594af8ffd639c795d27ab435c588a3cd43911c1604f')

View File

@@ -34,7 +34,7 @@ class Libzmq(AutotoolsPackage):
variant("drafts", default=False,
description="Build and install draft classes and methods")
variant("docs", default=True,
variant("docs", default=False,
description="Build documentation")
variant("libbsd", when='@4.3.3:', default=(sys.platform != 'darwin'),

View File

@@ -0,0 +1,31 @@
diff --git a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
index e3c2a580396e..5f76992d193e 100644
--- a/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
+++ b/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
@@ -249,3 +249,6 @@ if (NOT LIBOMPTARGET_CUDA_TOOLKIT_ROOT_DIR_PRESET AND
endif()
endif()
endif()
+
+find_package(Threads REQUIRED)
+set(OPENMP_PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
diff --git a/openmp/libomptarget/src/CMakeLists.txt b/openmp/libomptarget/src/CMakeLists.txt
index 15e6c3bbaf1f..3e5a73504a08 100644
--- a/openmp/libomptarget/src/CMakeLists.txt
+++ b/openmp/libomptarget/src/CMakeLists.txt
@@ -30,6 +30,7 @@ if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMPTARGET_PROFILING))
add_library(omptarget SHARED ${LIBOMPTARGET_SRC_FILES})
target_link_libraries(omptarget
${CMAKE_DL_LIBS}
+ ${OPENMP_PTHREAD_LIB}
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports")
else()
set(LLVM_LINK_COMPONENTS
@@ -37,6 +38,7 @@ else()
)
add_llvm_library(omptarget SHARED ${LIBOMPTARGET_SRC_FILES}
LINK_LIBS ${CMAKE_DL_LIBS}
+ ${OPENMP_PTHREAD_LIB}
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports"
)
target_compile_definitions(omptarget PUBLIC OMPTARGET_PROFILE_ENABLED)

View File

@@ -0,0 +1,15 @@
--- spack-src/libcxx/include/__config.org 2022-02-03 14:36:11.000000000 +0900
+++ spack-src/libcxx/include/__config 2022-02-04 08:39:59.000000000 +0900
@@ -52,7 +52,11 @@
# elif __cplusplus <= 201703L
# define _LIBCPP_STD_VER 17
# elif __cplusplus <= 202002L
-# define _LIBCPP_STD_VER 20
+# if defined(__FUJITSU) || defined(__CLANG_FUJITSU)
+# define _LIBCPP_STD_VER 17
+# else
+# define _LIBCPP_STD_VER 20
+# endif
# else
# define _LIBCPP_STD_VER 21 // current year, or date of c++2b ratification
# endif

View File

@@ -0,0 +1,19 @@
--- spack-src/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake.org 2022-02-08 14:58:13.000000000 +0900
+++ spack-src/openmp/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake 2022-02-08 13:58:53.000000000 +0900
@@ -276,4 +276,5 @@
endif()
endif()
-set(OPENMP_PTHREAD_LIB ${LLVM_PTHREAD_LIB})
+find_package(Threads REQUIRED)
+set(OPENMP_PTHREAD_LIB ${CMAKE_THREAD_LIBS_INIT})
--- spack-src/openmp/libomptarget/src/CMakeLists.txt.org 2022-02-09 08:49:35.000000000 +0900
+++ spack-src/openmp/libomptarget/src/CMakeLists.txt 2022-02-09 08:50:18.000000000 +0900
@@ -36,6 +36,7 @@
endif()
target_link_libraries(omptarget PRIVATE
${CMAKE_DL_LIBS}
+ ${OPENMP_PTHREAD_LIB}
"-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/exports")
# Install libomptarget under the lib destination folder.

View File

@@ -238,6 +238,8 @@ class Llvm(CMakePackage, CudaPackage):
conflicts("%gcc@:5.0", when="@8:")
# clang/lib: a lambda parameter cannot shadow an explicitly captured entity
conflicts("%clang@8:", when="@:4")
# Internal compiler error on gcc 8.4 on aarch64 https://bugzilla.redhat.com/show_bug.cgi?id=1958295
conflicts('%gcc@8.4:8.4.9', when='@12: target=aarch64:')
# When these versions are concretized, but not explicitly with +libcxx, these
# conflicts will enable clingo to set ~libcxx, making the build successful:
@@ -347,6 +349,13 @@ class Llvm(CMakePackage, CudaPackage):
patch('llvm-gcc11.patch', when='@9:11%gcc@11:')
# add -lpthread to build OpenMP libraries with Fujitsu compiler
patch('llvm12-thread.patch', when='@12 %fj')
patch('llvm13-thread.patch', when='@13 %fj')
# avoid build failed with Fujitsu compiler
patch('llvm13-fujitsu.patch', when='@13 %fj')
# The functions and attributes below implement external package
# detection for LLVM. See:
#

View File

@@ -0,0 +1,44 @@
# Copyright 2013-2021 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 import *
class Madx(CMakePackage):
"""MAD-X (Methodical Accelerator Design) is an application
for designing particle accelerators."""
homepage = "https://github.com/MethodicalAcceleratorDesign/MAD-X"
url = "https://github.com/MethodicalAcceleratorDesign/MAD-X/archive/refs/tags/5.07.00.tar.gz"
git = "https://github.com/MethodicalAcceleratorDesign/MAD-X.git"
maintainers = ['wdconinc']
# Supported MAD-X versions
version('5.08.01', sha256='89c943fcb474344a4f7d28de98e8eae0aec40f779bf908daff79043bf3520555')
version('5.08.00', sha256='0b3fe2aca8899289ef7bfb98d745f13b8c4082e239f54f2662c9cad8d1e63a53')
version('5.07.00', sha256='77c0ec591dc3ea76cf57c60a5d7c73b6c0d66cca1fa7c4eb25a9071e8fc67e60')
variant('x11', default=True, description='Turn on plotting using X11')
# patch for gcc-11 to avoid error due to variable shadowing
patch('https://github.com/MethodicalAcceleratorDesign/MAD-X/commit/e7a434290df675b894f70026ce0c7c217330cce5.patch',
sha256='ba9d00692250ab1eeeb7235a4ba7d899ecbbb4588f3ec08afc22d228dc1ea437',
when='@:5.07.00')
depends_on('cmake@2.8:', type='build')
depends_on("libx11")
depends_on("zlib")
def cmake_args(self):
args = [
self.define('MADX_STATIC', False), # Turn on for static linking
self.define('MADX_LAPACK', True), # Use system blas/lapack installation
self.define('MADX_NTPSA', True), # Build with NTPSA
self.define('MADX_ONLINE', False), # Build with Online model
self.define_from_variant('MADX_X11', 'x11'), # Turn on plotting using X11
]
return args

View File

@@ -23,7 +23,8 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage):
test_requires_compiler = True
version('master', branch='master')
version('2.6.1', sha256='6cd83808c6e8bc7a44028e05112b3ab4e579bcc73202ed14733f66661127e213')
version('2.6.2rc1', commit='5959b8783e45f1809812ed96ae762f38ee701972')
version('2.6.1', sha256='6cd83808c6e8bc7a44028e05112b3ab4e579bcc73202ed14733f66661127e213', preferred=True)
version('2.6.0', sha256='50cdd384f44f06a34469e7125f8b2ffae13c1975d373c3f1510d91be2b7638ec')
version('2.5.4', sha256='7734fb417ae0c367b418dea15096aef2e278a423e527c615aab47f0683683b67')
version('2.5.3', sha256='c602d269a9f9a3df28f6a4f593be819abb12ed3fa413bba1ff8183de721c5ef6')
@@ -76,19 +77,31 @@ class Magma(CMakePackage, CudaPackage, ROCmPackage):
patch('cmake-W.patch', when='@2.5.0:%nvhpc')
@run_before('cmake')
def generate_cuda(self):
if '@master' in self.spec:
backend = 'cuda'
cuda_arch = self.spec.variants['cuda_arch'].value
gpu_target = ' '.join('sm_{0}'.format(i) for i in cuda_arch)
if '+rocm' in self.spec:
backend = 'hip'
gpu_target = self.spec.variants['amdgpu_target'].value
with open('make.inc', 'w') as inc:
inc.write('FORT = true\n')
inc.write('GPU_TARGET = %s\n' % gpu_target)
inc.write('BACKEND = %s\n' % backend)
make('generate')
def generate_gpu_config(self):
"""If not an official release, a generation step is required to build"""
spec = self.spec
# 2.6.2rc1 is not an official release
should_generate = ('@master' in spec) or ('@2.6.2rc1' in spec)
if not should_generate:
return
backend = 'cuda' if '+cuda' in spec else 'hip'
gpu_target = ''
if '+cuda' in spec:
cuda_archs = spec.variants['cuda_arch'].value
gpu_target = ' '.join('sm_{0}'.format(i) for i in cuda_archs)
else:
gpu_target = spec.variants['amdgpu_target'].value
with open('make.inc', 'w') as inc:
inc.write('FORT = true\n')
inc.write('GPU_TARGET = {0}\n'.format(gpu_target))
inc.write('BACKEND = {0}\n'.format(backend))
make('generate')
def cmake_args(self):
spec = self.spec

View File

@@ -13,14 +13,18 @@ class ManDb(AutotoolsPackage):
flat-text whatis databases."""
homepage = "https://www.nongnu.org/man-db/"
url = "https://git.savannah.nongnu.org/cgit/man-db.git/snapshot/man-db-2.7.6.1.tar.gz"
git = "https://gitlab.com/cjwatson/man-db"
url = "https://download.savannah.nongnu.org/releases/man-db/man-db-2.10.1.tar.xz"
version('2.7.6.1', sha256='dd913662e341fc01e6721878b6cbe1001886cc3bfa6632b095937bba3238c779')
version('2.10.1', sha256='2ffd8f2e80122fe72e60c740c851e6a3e15c9a7921185eb4752c1c672824bed6')
version('2.7.6.1', sha256='08edbc52f24aca3eebac429b5444efd48b9b90b9b84ca0ed5507e5c13ed10f3f')
depends_on('autoconf')
depends_on('automake')
depends_on('pkgconf', type='build')
depends_on('gettext')
depends_on('libpipeline')
depends_on('libpipeline@1.5.0:', when='@2.8.0:')
depends_on('libpipeline@1.4.0:', when='@2.7.1:')
depends_on('libpipeline@1.3.0:', when='@2.6.7:')
depends_on('libpipeline@1.1.0:', when='@2.6.0:')
depends_on('flex')
depends_on('gdbm')
depends_on('groff', type=('build', 'link', 'run'))
@@ -38,3 +42,6 @@ def configure_args(self):
'--with-systemdtmpfilesdir={0}/tmp'.format(self.prefix)
]
return args
def install(self, spec, prefix):
make('install', 'DESTDIR=%s' % prefix)

View File

@@ -44,7 +44,7 @@ class Mesa(MesonPackage):
depends_on('zlib@1.2.3:')
# Internal options
variant('llvm', default=True, description="Enable LLVM.")
variant('llvm', default=False, description="Enable LLVM.")
_SWR_AUTO_VALUE = 'auto'
_SWR_ENABLED_VALUES = (_SWR_AUTO_VALUE, 'avx', 'avx2', 'knl', 'skx')
_SWR_DISABLED_VALUES = ('none',)

View File

@@ -41,7 +41,7 @@ class Mesa18(AutotoolsPackage):
depends_on('ncurses+termlib')
# Internal options
variant('llvm', default=True, description="Enable LLVM.")
variant('llvm', default=False, description="Enable LLVM.")
_SWR_ENABLED_VALUES = ('avx', 'avx2', 'knl', 'skx')
variant('swr', values=any_combination_of(*_SWR_ENABLED_VALUES),
description="Enable the SWR driver.")

View File

@@ -16,6 +16,7 @@ class Meshtool(MakefilePackage):
version('master', branch='master')
# Version to use with openCARP releases
version('oc9.0', commit='6c5cfbd067120901f15a04bf63beec409bda6dc9')
version('oc8.2', commit='6c5cfbd067120901f15a04bf63beec409bda6dc9')
version('oc8.1', commit="6c5cfbd067120901f15a04bf63beec409bda6dc9")
version('oc7.0', commit="6c5cfbd067120901f15a04bf63beec409bda6dc9")

View File

@@ -13,6 +13,7 @@ class Mumps(Package):
homepage = "http://mumps.enseeiht.fr"
url = "http://mumps.enseeiht.fr/MUMPS_5.3.5.tar.gz"
version('5.4.1', sha256='93034a1a9fe0876307136dcde7e98e9086e199de76f1c47da822e7d4de987fa8')
version('5.4.0', sha256='c613414683e462da7c152c131cebf34f937e79b30571424060dd673368bbf627')
version('5.3.5', sha256='e5d665fdb7043043f0799ae3dbe3b37e5b200d1ab7a6f7b2a4e463fd89507fa4')
version('5.3.3', sha256='27e7749ac05006bf8e81a457c865402bb72a42bf3bc673da49de1020f0f32011')

View File

@@ -14,7 +14,7 @@ class Mvapich2(AutotoolsPackage):
platforms (x86 (Intel and AMD), ARM and OpenPOWER)"""
homepage = "https://mvapich.cse.ohio-state.edu/userguide/userguide_spack/"
url = "https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.6.tar.gz"
url = "https://mvapich.cse.ohio-state.edu/download/mvapich/mv2/mvapich2-2.3.7.tar.gz"
list_url = "https://mvapich.cse.ohio-state.edu/downloads/"
maintainers = ['natshineman', 'harisubramoni', 'ndcontini']
@@ -22,6 +22,7 @@ class Mvapich2(AutotoolsPackage):
executables = ['^mpiname$']
# Prefer the latest stable release
version('2.3.7', sha256='4b6ad2c8c270e1fabcd073c49edb6bf95af93780f4a487bc48404a8ca384f34e')
version('2.3.6', sha256='b3a62f2a05407191b856485f99da05f5e769d6381cd63e2fcb83ee98fc46a249')
version('2.3.5', sha256='f9f467fec5fc981a89a7beee0374347b10c683023c76880f92a1a0ad4b961a8c')
version('2.3.4', sha256='7226a45c7c98333c8e5d2888119cce186199b430c13b7b1dca1769909e68ea7a')

View File

@@ -16,6 +16,7 @@ class Nss(MakefilePackage):
homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS"
url = "https://ftp.mozilla.org/pub/security/nss/releases/NSS_3_67_RTM/src/nss-3.67.tar.gz"
version('3.75', sha256='fd571507827284644f4dd522a032acda2286835f6683ed22a1c2d3878cc58582')
version('3.73', sha256='566d3a68da9b10d7da9ef84eb4fe182f8f04e20d85c55d1bf360bb2c0096d8e5')
# Everything before 3.73 is vulnerable (CVE-2021-43527)
version('3.67', sha256='f6549a9148cd27b394b40c77fa73111d5ea23cdb51d796665de1b7458f88ce7f', deprecated=True)

View File

@@ -18,7 +18,8 @@ class Opencarp(CMakePackage):
maintainers = ['MarieHouillon']
version('8.2', commit='dbfd16fd', submodules=False, no_cache=True, preferred=True)
version('9.0', commit='c0167599', submodules=False, no_cache=True, preferred=True)
version('8.2', commit='dbfd16fd', submodules=False, no_cache=True)
version('8.1', commit='28eb2e97', submodules=False, no_cache=True)
version('7.0', commit='78da9195', submodules=False, no_cache=True)
version('master', branch='master', submodules=False, no_cache=True)
@@ -34,14 +35,14 @@ class Opencarp(CMakePackage):
depends_on('binutils')
depends_on('gengetopt')
depends_on('pkgconfig')
depends_on('python@:3.8')
depends_on('python')
depends_on('zlib')
depends_on('perl')
depends_on('py-carputils')
depends_on('meshtool')
# Use specific versions of carputils and meshtool for releases
for ver in ['8.2', '7.0', '8.1']:
for ver in ['9.0', '8.2', '7.0', '8.1']:
depends_on('py-carputils@oc' + ver, when='@' + ver + ' +carputils')
depends_on('meshtool@oc' + ver, when='@' + ver + ' +meshtool')

View File

@@ -92,6 +92,9 @@ class Paraview(CMakePackage, CudaPackage):
conflicts('build_edition=core', when='@:5.7')
# before 5.3.0, ParaView didn't have VTK-m
conflicts('use_vtkm=on', when='@:5.3')
# paraview@5.9.0 is recommended when using the xl compiler
# See https://gitlab.kitware.com/paraview/paraview/-/merge_requests/4433
conflicts('paraview@:5.8', when='%xl_r', msg='Use paraview@5.9.0 with %xl_r. Earlier versions are not able to build with xl.')
# We only support one single Architecture
for _arch, _other_arch in itertools.permutations(CudaPackage.cuda_arch_values, 2):
@@ -219,6 +222,10 @@ class Paraview(CMakePackage, CudaPackage):
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/8653
patch('vtk-adios2-module-no-kit.patch', when='@5.8:5.10')
# Patch for paraview 5.9.0%xl_r
# https://gitlab.kitware.com/vtk/vtk/-/merge_requests/7591
patch('xlc-compilation-pv590.patch', when='@5.9.0%xl_r')
@property
def generator(self):
# https://gitlab.kitware.com/paraview/paraview/-/issues/21223

View File

@@ -0,0 +1,39 @@
diff --git a/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx b/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx
index 514c0ee..66edca2 100644
--- a/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx
+++ b/VTK/Common/DataModel/vtkStaticCellLinksTemplate.txx
@@ -356,7 +356,7 @@ void vtkStaticCellLinksTemplate<TIds>::ThreadedBuildLinks(
// Create an array of atomics with initial count=0. This will keep
// track of point uses. Count them in parallel.
- std::atomic<TIds>* counts = new std::atomic<TIds>[numPts] {};
+ std::atomic<TIds>* counts = new std::atomic<TIds>[numPts] ();
CountUses<TIds> count(cellArray, counts);
vtkSMPTools::For(0, numCells, count);
diff --git a/VTK/Filters/Core/vtkBinnedDecimation.cxx b/VTK/Filters/Core/vtkBinnedDecimation.cxx
index 0736c56..8403908 100644
--- a/VTK/Filters/Core/vtkBinnedDecimation.cxx
+++ b/VTK/Filters/Core/vtkBinnedDecimation.cxx
@@ -632,7 +632,7 @@ void BinPointsDecimate(int genMode, vtkIdType numPts, PointsT* pts, vtkPointData
// is a problem because a ptId can == zero; as a workaround, we'll
// initially use negative ids, and convert to positive ids in the
// final composition.
- std::atomic<TIds>* ptMap = new std::atomic<TIds>[numBins] {};
+ std::atomic<TIds>* ptMap = new std::atomic<TIds>[numBins] ();
// Is the triangle output? And eventually the offset into the output cell array.
TIds* triMap = new TIds[numTris + 1];
diff --git a/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx b/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
index 15e47a1..7baef33 100644
--- a/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
+++ b/VTK/Filters/Core/vtkWindowedSincPolyDataFilter.cxx
@@ -348,7 +348,7 @@ struct PointConnectivity : PointConnectivityBase
// accommodate more smoothing edges (although after a certain point,
// additional edges make little difference, especially at the cost of
// memory and speed).
- this->Offsets = new std::atomic<TIds>[this->NumPts + 1] {}; // Initialized to zero
+ this->Offsets = new std::atomic<TIds>[this->NumPts + 1] (); // Initialized to zero
this->Edges = nullptr; // initially until constructed
this->EdgeCounts = new EDGE_COUNT_TYPE[this->NumPts]; // values set later
}

View File

@@ -16,16 +16,16 @@ class Parsec(CMakePackage, CudaPackage):
"""
homepage = "https://icl.utk.edu/dte"
git = "https://bitbucket.org/icldistcomp/parsec.git"
url = "https://bitbucket.org/icldistcomp/parsec/get/parsec-3.0.2012.tar.bz2"
list_url = "https://bitbucket.org/icldistcomp/parsec/downloads/?tab=tags"
git = "https://github.com/icldisco/parsec.git"
url = "https://github.com/ICLDisco/parsec/archive/refs/tags/parsec-3.0.2012.tar.gz"
list_url = "https://github.com/ICLDisco/parsec/tags"
maintainers = ['abouteiller', 'bosilca', 'herault']
tags = ['e4s']
tags = ['e4s']
test_requires_compiler = True
version('master', branch='master')
version('3.0.2012', sha256='f565bcfffe106be8237b6aea3e83a5770607b7236606414b6f270244fa6ec3bc')
version('3.0.2012', sha256='f565bcfffe106be8237b6aea3e83a5770607b7236606414b6f270244fa6ec3bc', url='https://bitbucket.org/icldistcomp/parsec/get/parsec-3.0.2012.tar.bz2')
version('1.1.0', sha256='d2928033c121000ae0a554f1e7f757c1f22274a8b74457ecd52744ae1f70b95a', url='https://bitbucket.org/icldistcomp/parsec/get/v1.1.0.tar.bz2')
variant('build_type', default='RelWithDebInfo', description='CMake build type', values=('Debug', 'Release', 'RelWithDebInfo'))
@@ -38,7 +38,7 @@ class Parsec(CMakePackage, CudaPackage):
# TODO: Spack does not handle cross-compilation atm
# variant('xcompile', default=False, description='Cross compile')
depends_on('cmake@3.16:', type='build')
depends_on('cmake@3.18:', type='build')
depends_on('python', type='build')
depends_on('flex', type='build')
depends_on('bison', type='build')

View File

@@ -16,6 +16,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
url = "https://github.com/pika-org/pika/archive/0.0.0.tar.gz"
maintainers = ['msimberg', 'albestro', 'teonnik']
version('0.2.0', sha256='712bb519f22bdc9d5ee4ac374d251a54a0af4c9e4e7f62760b8ab9a177613d12')
version('0.1.0', sha256='aa0ae2396cd264d821a73c4c7ecb118729bb3de042920c9248909d33755e7327')
version('main', git='https://github.com/pika-org/pika.git', branch='main')
@@ -44,6 +45,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
variant('examples', default=False, description='Build and install examples')
variant('mpi', default=False, description='Enable MPI support')
variant('apex', default=False, description='Enable APEX support', when='@0.2.0:')
# Build dependencies
depends_on('git', type='build')
@@ -63,6 +65,7 @@ class Pika(CMakePackage, CudaPackage, ROCmPackage):
depends_on('mpi', when='+mpi')
depends_on('cuda@11:', when='+cuda')
depends_on('apex', when='+apex')
for cxxstd in cxxstds:
depends_on(
@@ -89,6 +92,7 @@ def cmake_args(self):
self.define_from_variant('PIKA_WITH_CUDA', 'cuda'),
self.define_from_variant('PIKA_WITH_HIP', 'rocm'),
self.define_from_variant('PIKA_WITH_MPI', 'mpi'),
self.define_from_variant('PIKA_WITH_APEX', 'apex'),
self.define('PIKA_WITH_TESTS', self.run_tests),
self.define_from_variant(
'PIKA_WITH_GENERIC_CONTEXT_COROUTINES', 'generic_coroutines'),

View File

@@ -11,6 +11,7 @@ class PyBilliard(PythonPackage):
pypi = "billiard/billiard-3.5.0.5.tar.gz"
version('3.6.4.0', sha256='299de5a8da28a783d51b197d496bef4f1595dd023a93a4f59dde1886ae905547')
version('3.6.3.0', sha256='d91725ce6425f33a97dfa72fb6bfef0e47d4652acd98a032bd1a7fbf06d5fa6a')
version('3.6.1.0', sha256='b8809c74f648dfe69b973c8e660bcec00603758c9db8ba89d7719f88d5f01f26')
version('3.6.0.0', sha256='756bf323f250db8bf88462cd042c992ba60d8f5e07fc5636c24ba7d6f4261d84')

View File

@@ -14,20 +14,21 @@ class PyCarputils(PythonPackage):
version('master', branch='master')
# Version to use with openCARP releases
version('oc9.0', commit='e79e66b25c7bfaf405fad595019594ab9aa83392')
version('oc8.2', commit='e60f639c0f39ad71c8ae11814de1f3aa726e8352')
version('oc8.1', commit='a4210fcb0fe17226a1744ee9629f85b629decba3')
version('oc7.0', commit='4c04db61744f2fb7665594d7c810699c5c55c77c')
depends_on('git')
depends_on('python@:3.8', type=('build', 'run'))
depends_on('python', type=('build', 'run'))
depends_on('py-pip', type='build')
depends_on('py-numpy@1.14.5:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-python-dateutil', type='run')
depends_on('py-scipy@:1.5.4', type='run')
depends_on('py-matplotlib@:3.3.3', type='run')
depends_on('py-pandas@:1.1.4', type='run')
depends_on('py-tables@3.6.1', type='run')
depends_on('py-six@:1.14.0', type='run')
depends_on('py-scipy@1.5.0:', type='run')
depends_on('py-matplotlib@3.0.0:', type='run')
depends_on('py-pandas', type='run')
depends_on('py-tables@3.6.1:', type='run')
depends_on('py-six@1.12.0:', type='run')
depends_on('py-ruamel-yaml', type='run')

View File

@@ -65,8 +65,8 @@ class PyCelery(PythonPackage):
depends_on('py-click-repl@0.2.0:', when="@5.2.0:", type=('build', 'run'))
depends_on('py-pytz@2019.3:', type=('build', 'run'))
depends_on('py-pytz@2021.3:', type=('build', 'run'), when="@5.2.3")
depends_on('py-billiard@3.6.3:3', type=('build', 'run'))
depends_on('py-billiard@3.6.4:3', type=('build', 'run'), when="@5.2.3")
depends_on('py-billiard@3.6.3.0:3', type=('build', 'run'))
depends_on('py-billiard@3.6.4.0:3', type=('build', 'run'), when="@5.2.3")
depends_on('py-kombu@4.6.11', when="@4.3.0:4", type=('build', 'run'))
depends_on('py-kombu@5.0.0:', when="@5.0.0:5.0", type=('build', 'run'))
depends_on('py-kombu@5.2.3:5', when="@5.2.0:5.2", type=('build', 'run'))

View File

@@ -0,0 +1,21 @@
# Copyright 2013-2022 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 import *
class PyColorio(PythonPackage):
"""Tools for color research"""
homepage = "https://github.com/nschloe/colorio"
pypi = "colorio/colorio-0.11.2.tar.gz"
version('0.11.2', sha256='aa45d8e0a2e506c4019d4fb488d34a107d7f803c8e8ff355e2e57c01f6f1cd81')
depends_on('python@3.7:', type=('build', 'run'))
depends_on('py-flit-core@3.2:3.6', type='build')
depends_on('py-numpy@1.20:', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))
depends_on('py-npx', type=('build', 'run'))

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2022 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 import *
class PyControl(PythonPackage):
"""The Python Control Systems Library is a Python module that implements
basic operations for analysis and design of feedback control systems."""
homepage = "https://python-control.org/"
pypi = "control/control-0.9.1.tar.gz"
maintainers = ['haralmha']
version('0.9.1', sha256='8c9084bf386eafcf5d74008f780fae6dec68d243d18a380c866ac10a3549f8d3')
depends_on('py-setuptools', type='build')
depends_on('py-numpy', type=('build', 'run'))
depends_on('py-scipy', type=('build', 'run'))
depends_on('py-matplotlib', type=('build', 'run'))

View File

@@ -11,6 +11,7 @@ class PyFutures(PythonPackage):
pypi = "futures/futures-3.0.5.tar.gz"
version('3.3.0', sha256='7e033af76a5e35f58e56da7a91e687706faf4e7bdfb2cbc3f2cca6b9bcda9794')
version('3.2.0', sha256='9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265')
version('3.0.5', sha256='0542525145d5afc984c88f914a0c85c77527f65946617edb5274f72406f981df')

View File

@@ -12,7 +12,9 @@ class PyGoogleapisCommonProtos(PythonPackage):
homepage = "https://github.com/googleapis/googleapis"
pypi = "googleapis-common-protos/googleapis-common-protos-1.6.0.tar.gz"
version('1.55.0', sha256='53eb313064738f45d5ac634155ae208e121c963659627b90dfcb61ef514c03e1')
version('1.6.0', sha256='e61b8ed5e36b976b487c6e7b15f31bb10c7a0ca7bd5c0e837f4afab64b53a0c6')
depends_on('py-setuptools', type='build')
depends_on('py-protobuf@3.6.0:', type=('build', 'run'))
depends_on('py-protobuf@3.6.0:3', type=('build', 'run'))
depends_on('py-protobuf@3.12.0:3', type=('build', 'run'), when='@1.55.0:')

View File

@@ -36,38 +36,39 @@ class PyH5py(PythonPackage):
variant('mpi', default=True, description='Build with MPI support')
# Python versions
depends_on('python@3.6:', type=('build', 'run'), when='@3.0.0:3.1')
depends_on('python@3.7:', type=('build', 'run'), when='@3.2.0:')
depends_on('python@3.6:', type=('build', 'run'), when='@3:3.1')
depends_on('python@3.7:', type=('build', 'run'), when='@3.2:')
# Build dependencies
depends_on('py-cython@0.23:', type='build', when='@:2')
depends_on('py-cython@0.29:', type=('build'), when='@3.0.0:^python@:3.7')
depends_on('py-cython@0.29.14:', type=('build'), when='@3.0.0:^python@3.8.0:3.8')
depends_on('py-cython@0.29.15:', type=('build'), when='@3.0.0:^python@3.9.0:')
depends_on('py-cython@0.29:', type=('build'), when='@3: ^python@:3.7')
depends_on('py-cython@0.29.14:', type=('build'), when='@3: ^python@3.8.0:3.8')
depends_on('py-cython@0.29.15:', type=('build'), when='@3: ^python@3.9.0:')
depends_on('py-pkgconfig', type='build')
depends_on('py-setuptools', type='build')
depends_on('py-wheel', type='build', when='@3.0.0:')
depends_on('py-wheel', type='build', when='@3:')
# Build and runtime dependencies
depends_on('py-cached-property@1.5:', type=('build', 'run'), when='^python@:3.7')
depends_on('py-numpy@1.7:', type=('build', 'run'), when='@:2')
depends_on('py-numpy@1.12:', type=('build', 'run'), when='@3.0.0:^python@3.6.0:3.6')
depends_on('py-numpy@1.14.5:', type=('build', 'run'), when='@3.0.0:^python@3.7.0:3.7')
depends_on('py-numpy@1.17.5:', type=('build', 'run'), when='@3.0.0:^python@3.8.0:3.8')
depends_on('py-numpy@1.19.3:', type=('build', 'run'), when='@3.0.0:^python@3.9.0:')
depends_on('py-numpy@1.12:', type=('build', 'run'), when='@3: ^python@3.6.0:3.6')
depends_on('py-numpy@1.14.5:', type=('build', 'run'), when='@3: ^python@3.7.0:3.7')
depends_on('py-numpy@1.17.5:', type=('build', 'run'), when='@3: ^python@3.8.0:3.8')
depends_on('py-numpy@1.19.3:', type=('build', 'run'), when='@3: ^python@3.9.0:')
depends_on('py-six', type=('build', 'run'), when='@:2')
# Link dependencies
depends_on('hdf5@1.8.4:1.11+hl', when='@:2')
depends_on('hdf5@1.8.4:+hl', when='@3.0.0:')
# Link dependencies (py-h5py v2 cannot build against HDF5 1.12 regardless
# of API setting)
depends_on('hdf5@1.8.4:1.11 +hl', when='@:2')
depends_on('hdf5@1.8.4: +hl', when='@3:')
# MPI dependencies
depends_on('hdf5+mpi', when='+mpi')
depends_on('mpi', when='+mpi')
depends_on('py-mpi4py', when='@:2 +mpi', type=('build', 'run'))
depends_on('py-mpi4py@3.0.0:', when='@3.0.0:3.2+mpi^python@3.0.0:3.7', type=('build', 'run'))
depends_on('py-mpi4py@3.0.2:', when='@3.3.0:+mpi^python@3.0.0:3.7', type=('build', 'run'))
depends_on('py-mpi4py@3.0.3:', when='@3.0.0:+mpi^python@3.8.0:', type=('build', 'run'))
depends_on('py-mpi4py@3:', when='@3:3.2+mpi^python@3:3.7', type=('build', 'run'))
depends_on('py-mpi4py@3.0.2:', when='@3.3.0:+mpi^python@3:3.7', type=('build', 'run'))
depends_on('py-mpi4py@3.0.3:', when='@3:+mpi^python@3.8.0:', type=('build', 'run'))
def setup_build_environment(self, env):
env.set('HDF5_DIR', self.spec['hdf5'].prefix)

View File

@@ -19,6 +19,7 @@ class PyImportlibMetadata(PythonPackage):
version('3.10.1', sha256='c9356b657de65c53744046fa8f7358afe0714a1af7d570c00c3835c2d724a7c1')
version('3.10.0', sha256='c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a')
version('2.0.0', sha256='77a540690e24b0305878c37ffd421785a6f7e53c8b5720d211b211de8d0e95da')
version('1.7.0', sha256='90bb658cdbbf6d1735b6341ce708fc7024a3e14e99ffdc5783edea9f9b077f83')
version('1.2.0', sha256='41e688146d000891f32b1669e8573c57e39e5060e7f5f647aa617cd9a9568278')
version('0.23', sha256='aa18d7378b00b40847790e7c27e11673d7fed219354109d0e7b9e5b25dc3ad26')
version('0.19', sha256='23d3d873e008a513952355379d93cbcab874c58f4f034ff657c7a87422fa64e8')

View File

@@ -16,11 +16,19 @@ class PyJupytext(PythonPackage):
maintainers = ['vvolkl']
version('1.13.6', sha256='c6c25918ddb6403d0d8504e08d35f6efc447baf0dbeb6a28b73adf39e866a0c4')
version('1.13.0', sha256='fb220af65d2bd32d01c779b0e935c4c2b71e3f5f2f01bf1bab10d5f23fe121d4')
depends_on('py-setuptools', type='build')
depends_on('python@3.6:3', type=('build', 'run'))
depends_on('py-setuptools@40.8.0:', type='build')
depends_on('py-nbformat', type=('build', 'run'))
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-toml', type=('build', 'run'))
depends_on('py-mdit-py-plugins', type=('build', 'run'))
depends_on('py-markdown-it-py@1.0:1', type=('build', 'run'))
# todo: in order to use jupytext as a jupyterlab extension,
# some additional dependencies need to be added (and checked):
depends_on('py-jupyterlab@3', type=('build', 'run'))
# TODO: replace this after concretizer learns how to concretize separate build deps
depends_on('py-jupyter-packaging7', type='build')
# depends_on('py-jupyter-packaging@0.7.9:0.7', type='build')```

View File

@@ -10,13 +10,16 @@ class PyMako(PythonPackage):
"""A super-fast templating language that borrows the best
ideas from the existing templating languages."""
homepage = "https://www.makotemplates.org/"
pypi = "Mako/Mako-1.0.1.tar.gz"
git = "https://github.com/sqlalchemy/mako"
version('1.1.6', sha256='4e9e345a41924a954251b95b4b28e14a301145b544901332e658907a7464b6b2')
version('1.1.5', sha256='169fa52af22a91900d852e937400e79f535496191c63712e3b9fda5a9bed6fc3')
version('1.1.4', sha256='17831f0b7087c313c0ffae2bcbbd3c1d5ba9eeac9c38f2eb7b50e8c99fe9d5ab')
version('1.0.4', sha256='fed99dbe4d0ddb27a33ee4910d8708aca9ef1fe854e668387a9ab9a90cbf9059')
version('1.0.1', sha256='45f0869febea59dab7efd256fb451c377cbb7947bef386ff0bb44627c31a8d1c')
depends_on('python@2.7:2,3.4:', when='@1.1.0:', type=('build', 'run'))
depends_on('py-setuptools', type='build')
depends_on('py-markupsafe@0.9.2:', type=('build', 'run'))
depends_on('python@2.7:2,3.4:', when='@1.1.0:')

View File

@@ -9,9 +9,10 @@
class PyMatplotlibInline(PythonPackage):
"""Inline Matplotlib backend for Jupyter."""
homepage = "https://github.com/martinRenou/matplotlib-inline"
homepage = "https://github.com/ipython/matplotlib-inline"
pypi = "matplotlib-inline/matplotlib-inline-0.1.2.tar.gz"
version('0.1.3', sha256='a04bfba22e0d1395479f866853ec1ee28eea1485c1d69a6faf00dc3e24ff34ee')
version('0.1.2', sha256='f41d5ff73c9f5385775d5c0bc13b424535c8402fe70ea8210f93e11f3683993e')
depends_on('python@3.5:', type=('build', 'run'))

View File

@@ -7,24 +7,24 @@
class PyMistune(PythonPackage):
"""
Python markdown parser
"""
homepage = "https://mistune.readthedocs.org/en/latest/"
url = "https://github.com/lepture/mistune/archive/v0.7.1.tar.gz"
"""A sane Markdown parser with useful plugins and renderers."""
version('0.8.4', sha256='a1443771ea9ed7268a0cb3cf31462604ae148938ba32070bd5c54545f8f36a5d')
version('0.8.3', sha256='666c93fc10cb0aa924a373898a709eba4d43f4e453264a4c7396878ec8145a4a')
version('0.8.2', sha256='997c6d723350093760ccd48b722344b3330a5f947dec264e129160b85037784e')
version('0.8.1', sha256='77ae24a5accfd62d23f945d7e6598392194f8ca6ef1bd70ddc81e151ac3eb1fe')
version('0.8', sha256='f479dc2ceac7d593231e77448cb5cf7194fdbebad1d88fcdb78eacac1c042f6e')
version('0.7.4', sha256='5030d5e3e0ec90fbdaed0f52d3c756ffb30e4ab46c3de159c97482c09569abcb')
version('0.7.3', sha256='c4f391e61d3b5e8fbb112669a5c6960fb04b71b61d35f0f09a201809545b1676')
version('0.7.2', sha256='a3fe17dfad99bd353485879a5c05827dd2932219da8b078212a21797f6cdbf0b')
version('0.7.1', sha256='d6684534174caa30e0169e106a7152aee14507796a610b76be9fe9b335b18410')
version('0.7', sha256='9b2cac8053d21dde5f2b3edb01948dac8ee5c3a85eeeeb6913c3ddf2f773c7b6')
version('0.6', sha256='c2d976c06c099edb525b8ac3745f3d3b5c49af6189edb6de390ddf9c248913cf')
version('0.5.1', sha256='c4ecfbb99acbb034c4f4580496502bde6b33f3dfc47873c59ee7e509c05dc822')
version('0.5', sha256='3320b7fd80e44a1ac27658e19e67215f464c080b02c8af9fce57050d411560d2')
homepage = "https://github.com/lepture/mistune"
pypi = "mistune/mistune-2.0.2.tar.gz"
version('2.0.2', sha256='6fc88c3cb49dba8b16687b41725e661cf85784c12e8974a29b9d336dd596c3a1')
version('0.8.4', sha256='59a3429db53c50b5c6bcc8a07f8848cb00d7dc8bdb431a4ab41920d201d4756e')
version('0.8.3', sha256='bc10c33bfdcaa4e749b779f62f60d6e12f8215c46a292d05e486b869ae306619')
version('0.8.2', sha256='c50f2fb3a058120c5696f08af9d57877a9c76e879f19af5835fb2c6a4e56a67b')
version('0.8.1', sha256='4c0f66924ce28f03b95b210ea57e57bd0b59f479edd91c2fa4fe59331eae4a82')
version('0.8', sha256='dc3f43e7cf0abb95cdfecbf82d85c419108d5f13e1844b2a8a2fc0abf24c7a47')
version('0.7.4', sha256='8517af9f5cd1857bb83f9a23da75aa516d7538c32a2c5d5c56f3789a9e4cd22f')
version('0.7.3', sha256='21d0e869df3b9189f248e022f1c9763cf9069e1a2f00676f1f1852bd7f98b713')
version('0.7.2', sha256='626f2516adcde4af608eaf83635ff20ff7e577c1898ad4d0f0fcd8c094399840')
version('0.7.1', sha256='6076dedf768348927d991f4371e5a799c6a0158b16091df08ee85ee231d929a7')
version('0.7', sha256='1daa2e55f5de63ecde7c446c4677c0447006752f78ad2c9c1c3c3452d395f89f')
version('0.6', sha256='d54a69365d01bc97412a39c11674a8aae3f333586e91f38895cc1ad818e13dc5')
version('0.5.1', sha256='cc66489a28845c0e1848ae290af5b555074eb76185136ca058e8eed1faa89692')
version('0.5', sha256='d53d868cfd10cf757160e88adb5760fce95f7026a243f15a02b7c604238e5869')
depends_on('py-setuptools', type='build')

View File

@@ -0,0 +1,24 @@
# Copyright 2013-2022 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 import *
class PyMlCollections(PythonPackage):
"""ML Collections is a library of Python collections designed for ML usecases."""
homepage = "https://https://github.com/google/ml_collections"
pypi = "ml_collections/ml_collections-0.1.0.tar.gz"
version('0.1.1', sha256='3fefcc72ec433aa1e5d32307a3e474bbb67f405be814ea52a2166bfc9dbe68cc')
depends_on('python@2.6:', type=('build', 'run'))
depends_on('py-setuptools', type=('build', 'run'))
depends_on('py-pyyaml', type=('build', 'run'))
depends_on('py-absl-py', type=('build', 'run'))
depends_on('py-six', type=('build', 'run'))
depends_on('py-contextlib2', type=('build', 'run'))
depends_on('py-dataclasses', type=('build', 'run'), when='python@:3.6')
depends_on('py-typing', type=('build', 'run'), when='python@:3.5')

View File

@@ -3,19 +3,23 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack import *
class PyMultidict(PythonPackage):
"""Multidict is dict-like collection of key-value pairs where key
might be occurred more than once in the container."""
homepage = "https://github.com/aio-libs/multidict"
url = "https://github.com/aio-libs/multidict/archive/v4.7.6.tar.gz"
pypi = "multidict/multidict-6.0.2.tar.gz"
version('5.2.0', sha256='70039c8d0f4883816de230619c9d4ee1b8527b3628a42783e8bc26de4fee1154')
version('5.1.0', sha256='1798708288851b808d2d03ea6046ca51bc44c228aaea12c9643a0a481ee41d8c')
version('4.7.6', sha256='449035f89a12f189579ff83811424c71e4a39e335bcb8045145ad084b7bde2dc')
version('6.0.2', sha256='5ff3bd75f38e4c43f1f470f2df7a4d430b821c4ce22be384e1459cb57d6bb013')
version('5.2.0', sha256='0dd1c93edb444b33ba2274b66f63def8a327d607c6c790772f448a53b6ea59ce')
version('5.1.0', sha256='25b4e5f22d3a37ddf3effc0710ba692cfc792c2b9edfb9c05aefe823256e84d5')
version('4.7.6', sha256='fbb77a75e529021e7c4a8d4e823d88ef4d23674a202be4f5addffc72cbb91430')
depends_on('py-setuptools', type='build')
depends_on('py-setuptools@40:', type='build', when='@5.1.0:')
depends_on('python@3.7:', when='@6:', type=('build', 'run'))
depends_on('python@3.6:', when='@5.1:', type=('build', 'run'))
depends_on('python@3.5:', type=('build', 'run'))
depends_on('python@3.6:', type=('build', 'run'), when='@5.1.0:')
depends_on('py-pip@18:', when='@:4', type='build')
depends_on('py-setuptools@40:', type='build')

View File

@@ -0,0 +1,19 @@
# Copyright 2013-2022 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 import *
class PyNpx(PythonPackage):
"""Some useful extensions for NumPy"""
homepage = "https://github.com/nschloe/npx"
pypi = "npx/npx-0.1.0.tar.gz"
version('0.1.0', sha256='3edec9508326b6724d7c176dbcba2098508788241b8a671aab583d0c72b2f05b')
depends_on('python@3.7:', type=('build', 'run'))
depends_on('py-flit-core@3.2:3', type='build')
depends_on('py-numpy@1.20.0:', type=('build', 'run'))

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2022 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 import *
class PyParam(PythonPackage):
"""Param is a library providing Parameters: Python attributes extended to have
features such as type and range checking, dynamically generated values,
documentation strings, default values, etc., each of which is inherited from
parent classes if not specified in a subclass."""
homepage = "https://param.holoviz.org/"
pypi = "param/param-1.12.0.tar.gz"
maintainers = ['haralmha']
version('1.12.0', sha256='35d0281c8e3beb6dd469f46ff0b917752a54bed94d1b0c567346c76d0ff59c4a')
depends_on('python@2.7:', type=('build', 'run'))
depends_on('py-setuptools', type='build')

View File

@@ -0,0 +1,23 @@
# Copyright 2013-2022 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 import *
class PyPriority(PythonPackage):
"""Priority is a pure-Python implementation of the priority
logic for HTTP/2, set out in RFC 7540 Section 5.3 (Stream
Priority). This logic allows for clients to express a
preference for how the server allocates its (limited)
resources to the many outstanding HTTP requests that may be
running over a single HTTP/2 connection."""
homepage = "https://github.com/python-hyper/priority/"
pypi = "priority/priority-2.0.0.tar.gz"
version('2.0.0', sha256='c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0')
depends_on('python@3.6.1:', type=('build', 'run'))
depends_on('py-setuptools', type='build')

View File

@@ -14,6 +14,7 @@ class PySetuptoolsScm(PythonPackage):
version('6.3.2', sha256='a49aa8081eeb3514eb9728fa5040f2eaa962d6c6f4ec9c32f6c1fba88f88a0f2')
version('6.0.1', sha256='d1925a69cb07e9b29416a275b9fadb009a23c148ace905b2fb220649a6c18e92')
version('5.0.2', sha256='83a0cedd3449e3946307811a4c7b9d89c4b5fd464a2fb5eeccd0a5bb158ae5c8')
version('4.1.2', sha256='a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8')
version('3.5.0', sha256='5bdf21a05792903cafe7ae0c9501182ab52497614fa6b1750d9dbae7b60c1a87')
version('3.3.3', sha256='bd25e1fb5e4d603dcf490f1fde40fb4c595b357795674c3e5cb7f6217ab39ea5')
@@ -27,6 +28,7 @@ class PySetuptoolsScm(PythonPackage):
depends_on('python@3.6:', when='@6:', type=('build', 'run'))
depends_on('py-setuptools@34.4:', type=('build', 'run'))
depends_on('py-setuptools@42:', type=('build', 'run'), when='@5:')
depends_on('py-setuptools@45:', type=('build', 'run'), when='@6:')
depends_on('py-toml', when='+toml @:6.1.0', type=('build', 'run'))

View File

@@ -13,8 +13,10 @@ class PyTestpath(PythonPackage):
homepage = "https://github.com/jupyter/testpath"
pypi = "testpath/testpath-0.4.2.tar.gz"
version('0.6.0', sha256='2f1b97e6442c02681ebe01bd84f531028a7caea1af3825000f52345c30285e0f')
version('0.5.0', sha256='1acf7a0bcd3004ae8357409fc33751e16d37ccc650921da1094a86581ad1e417')
version('0.4.2', sha256='b694b3d9288dbd81685c5d2e7140b81365d46c29f5db4bc659de5aa6b98780f8')
depends_on('python@3.5:', type=('build', 'run'), when='@0.5.0:')
depends_on('py-flit-core@3.2.0:3.2', type='build')
depends_on('py-flit-core@3.2.0:3.2', type='build', when='@:0.5.0')
depends_on('py-flit-core@3.2.0:3', type='build', when='@0.6.0:')

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