Compare commits

...

1446 Commits

Author SHA1 Message Date
Gregory Becker
dd668047fb prototype: check commits against the tip of known branches 2022-03-03 10:35:15 -08:00
Brian Van Essen
2ac11812ba lbann, dihydrogen: removing nice to have Python packages (#29302)
Recipes that are not actually required for LBANN or DiHydrogen to
build. These should be concretized within the same environment or
installed via PIP using the same Python that installed LBANN.
Removing these will help eliminate build time failures that are
actually associated with Python tools, not LBANN.
2022-03-03 18:12:14 +00:00
dependabot[bot]
f6ea56276f build(deps): bump actions/setup-python from 2.3.1 to 3 (#29253)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2.3.1 to 3.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](f382193329...0ebf233433)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-03 19:10:47 +01:00
Paul Kuberry
cfae035a7b py-pycompadre: add new package (#29316) 2022-03-03 19:10:04 +01:00
Eduardo Rothe
9dfaa3d8fd relion: add version 4.0-beta (#29318)
- add version 4.0-beta to available versions
- update stable version to 3.1.3

Co-authored-by: Eduardo Rothe <eduardo.rothe@epfl.ch>
2022-03-03 19:08:46 +01:00
haralmha
858c780e1f hbase: add v2.4.9 (#29319) 2022-03-03 19:04:58 +01:00
Tamara Dahlgren
afc397be3a OpenMPI: correct slurm-pmi conflict version (#29309) 2022-03-03 17:40:14 +01:00
Weston Ortiz
cd2cb4aef5 goma: add new package (#29307) 2022-03-03 17:26:08 +01:00
haralmha
ebf92b428e prophecy4f: add new package (#29289) 2022-03-03 15:03:10 +01:00
Carlos Bederián
1834ab971d nss: set C++ compiler (#29195) 2022-03-03 14:59:29 +01:00
dependabot[bot]
ed6274a0bf build(deps): bump actions/checkout from 2 to 3 (#29276)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v2...a12a3943b4bdde767164f792f33f40b04645d846)

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

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-03 14:43:49 +01:00
dependabot[bot]
450bbdd854 build(deps): bump docker/login-action from 1.13.0 to 1.14.1 (#29277)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.13.0 to 1.14.1.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](6af3c118c8...dd4fa0671b)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-03-03 14:42:28 +01:00
Michael Kuhn
49069e4f58 installer: Fix cosmetic problem with terminal title (#29070)
The status displayed in the terminal title could be wrong when doing
distributed builds. For instance, doing `spack install glib` in two
different terminals could lead to the current package being reported as
`40/29` due to the way Spack handles retrying locks.

Work around this by keeping track of the package IDs that were already
encountered to avoid counting packages twice.
2022-03-03 14:21:15 +01:00
kwryankrattiger
20471b8420 ECP-SDK: Propagate hdf5 to darshan-runtime (#29081) 2022-03-03 10:41:10 +00:00
Wouter Deconinck
5cd1e08e8a libdrm: new versions up to v2.4.110, build system meson (#27253) 2022-03-03 10:39:47 +01:00
Scott Wittenburg
c72735229f test/installer.py: remove commented code and inaccurate docstring (#29305) 2022-03-03 10:19:57 +01:00
Qian Jianhua
79c0f631de gfsio: support Fujitsu compiler (#29311) 2022-03-03 09:06:49 +00:00
Toyohisa Kameyama
01c1e6860f onednn: add version 2.5.2. (#29259) 2022-03-02 19:33:40 -06:00
kwryankrattiger
cbfe0d7492 HIP: Change mesa dep to gl (#29017)
* HIP: Change mesa18 dep to gl

* Mesa: Conflict with llvm-amdgpu when +llvm and swr

* Add def for suffix

* Disable llvm suffix patch.

* LLVM: Remove version suffix patches
2022-03-02 18:02:30 -07:00
Hadrien G
a6aff211d2 [acts] Add version 17 and 17.1, digitization plugin went in core (#28745) 2022-03-02 23:16:18 +01:00
Jen Herting
dfdb11bc71 julia: add version 1.7.2 (#29303) 2022-03-02 22:52:36 +01:00
Danny McClanahan
2c331a1d7f make @llnl.util.lang.memoized support kwargs (#21722)
* make memoized() support kwargs

* add testing for @memoized
2022-03-02 11:12:15 -08:00
kwryankrattiger
916c94fd65 ECP-SDK: Propagate cuda to ascent (#28878) 2022-03-02 13:39:36 -05:00
kwryankrattiger
1599d841c0 ECP-SDK: ParaView 5.11: required for CUDA (#29054)
* ECP-SDK: ParaView 5.11: required for CUDA

* Add conflict with ParaView@master

Because of the additional constraints for cuda, ParaView@master may be
selected unintentionally. Prefer older versions of ParaView without cuda
to master with cuda.
2022-03-02 13:17:25 -05:00
QuellynSnead
e6dcd382ee Paraview: Use 'UNIX Makefiles' instead of ninja as the CMake generator for XL (#29163)
* hypre: Add releases 2.21.0 and 2.22.0

* Revert "hypre: Add releases 2.21.0 and 2.22.0"

This reverts commit 8921cdb3ac.

* Address external linkage failures in elfutils 0.185:
  https://bugs.gentoo.org/794601
  https://sourceware.org/pipermail/elfutils-devel/2021q2/003862.html
Encountered while building within a Spack environment.

* Revert "Address external linkage failures in elfutils 0.185:"

This reverts commit 76b93e4504.

* paraview: The ninja generator has problems with XL and CCE

See https://gitlab.kitware.com/paraview/paraview/-/issues/21223

* paraview: Add variant to allow choice of cmake generator.
This will be necessary until problems with cmake+ninja on XL and
CCE builds can be resolved.

See https://gitlab.kitware.com/paraview/paraview/-/issues/21223

* paraview: ninja generator problems with XL/CCE
    By popular preference, abandon the idea of a special variant
    and select the generator based on compiler.

* Greg Becker suggested using the dedicated "generator" method to
pass the choice of makefile generator to cmake.

* paraview: The build errors I saw before with paraview%cce + ninja
have not reappeared in subsequent testing, so I'm dropping it from this
PR. If they re-occur I'll report the issue separately to KitWare.
2022-03-02 11:26:31 -05:00
Manuela Kuhn
a94f11a2b2 py-nibabel: add 3.2.2 (#29266)
* py-nibabel: add 3.2.2

* fix dependencies
2022-03-02 09:50:09 -06:00
Manuela Kuhn
a1f32cdaff py-msgpack: add 1.0.3 (#29216)
* py-msgpack: add 1.0.3

* remove dependencies
2022-03-02 09:49:38 -06:00
Massimiliano Culpo
8d118104c7 Fix typos when forwarding arguments to traverse_edges (#29261)
A few calls use `deptypes=...` instead of `deptype=...`
2022-03-02 08:43:26 +01:00
Phil Carns
a43e3f3ffb bmi package: add version 2.8.1 (#29274) 2022-03-01 18:56:44 -08:00
Wouter Deconinck
bab331ff34 assimp package: add version 5.2.2 (#29240) 2022-03-01 18:48:18 -08:00
Wouter Deconinck
d9113eb5ec gaudi package: add version 36.4 (#29241) 2022-03-01 18:47:21 -08:00
Valentin Volkl
4831daa2dc sherpa package: deprecate old versions with build failures (#29268) 2022-03-01 18:46:00 -08:00
Phil Carns
d5dd6471fc mochi-margo package: add version 0.9.7 (#29275) 2022-03-01 18:44:03 -08:00
Glenn Johnson
277f578707 Fix tags attribute for tar (#29189) 2022-03-01 18:35:44 -07:00
iarspider
3478b06262 py-gosam: use legacy setup.py invocation (fixes #29260) (#29264) 2022-03-01 18:31:48 -06:00
Richarda Butler
7268ab75f4 Superlu: Update Spack test dir (#27844)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2022-03-01 16:20:47 -08:00
Harmen Stoppels
f2c5092588 llvm: add missing system libs (#29270)
```
$ ./bin/llvm-config --link-static --system-libs
-lrt -ldl -lpthread -lm -lz -ltinfo -lxml2
```

`libz` and `libxml2` were missing.
2022-03-01 15:35:38 -07:00
Jen Herting
d05560ee32 New package: py-deepsig (#28480)
* [py-deepsig] New package and several cherry picks

* [py-deepsig] Cleanup of testing comments

* finished package with git reference

* fixed flake8 issue

* [py-deepsig] fixed copyright

* [py-deepsig] switched to version with functional requirements.txt. Ignoring missing README_RAW.md

* [py-deepsig] updated version in pypi variable

* [py-deepsig] simplifying missing readme workaround

Co-authored-by: Doug Heckman <dahdco@rit.edu>
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-03-01 13:21:04 -07:00
Manuela Kuhn
71f081366b py-neurora: add 1.1.6.1 (#29265) 2022-03-01 13:51:49 -06:00
Manuela Kuhn
327fcf7a54 py-nest-asyncio: add 1.5.4 (#29262) 2022-03-01 13:48:45 -06:00
Manuela Kuhn
8cefe38b0e py-keyrings-alt: add 4.1.0 (#29177) 2022-03-01 07:20:52 -07:00
Manuela Kuhn
88eb437d94 py-keyring: add 23.5.0 (#29176) 2022-03-01 06:54:10 -07:00
Manuela Kuhn
a155975b8b mesa: add conflict with llvm@13 (#28870)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-03-01 11:10:58 +01:00
Tamara Dahlgren
b20df12d09 test_env_install_two_specs_same_dep: properly check installed specs (#29222) 2022-03-01 10:35:14 +01:00
Harmen Stoppels
f60c6ca485 libuv: remove bash dependency (#29251) 2022-03-01 10:15:22 +01:00
Wouter Deconinck
a3947381c7 assimp: patch for issue that prevents 5.1: from working with qt (#29257) 2022-02-28 18:42:08 -07:00
Manuela Kuhn
6eef12cd10 py-nbclassic: add 0.3.5 (#29220)
* py-nbclassic: add 0.3.5

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

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

* fix style

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-28 16:36:06 -07:00
Cory Bloor
2bd016895d rocblas: add spack test support (#27436)
* rocblas: add spack test support

* rocblas: limit spack test support to @4.2.0:

* rocblas: simplify define
2022-03-01 00:26:08 +01:00
Jen Herting
10f3113b3c New package: py-ci-sdr (#28644)
* clean py-ci-sdr

* [py-ci-sdr] updated copyright

* [py-ci-sdr] added upper bound for python version

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-02-28 15:27:44 -06:00
Massimiliano Culpo
9b298fd7e4 Add a new test to catch exit code failure (#29244)
* Add a new test to catch exit code failure

fixes #29226

This introduces a new unit test that checks the return
code of `spack unit-test` when it is supposed to fail.

This is to prevent bugs like the one introduced in #25601
in which CI didn't catch a missing return statement.

In retrospective it seems that the shell test we have right
now all go through `tty.die` or similar code paths which
call `sys.exit(a)` explicitly. This new test instead checks
`spack unit-test` which relies on the return code from
command invocation in case of errors.
2022-02-28 12:55:24 -08:00
Toyohisa Kameyama
8f4e029e3a qt: Fix build with Fujitsu compiler. (#29199) 2022-02-27 22:12:36 -05:00
iarspider
d29253bd7a Add 'master' version for dmtcp (#29211)
* Add 'develop' version for dmtcp

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

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-27 13:34:09 -06:00
iarspider
8eefab4033 New version: py-onnx 1.8.1 (#29214)
* New version: py-onnx 1.8.1

* Update package.py
2022-02-26 11:50:17 -06:00
Ondřej Čertík
abfd300eef libtermkey: Update to the latest release (#29229)
And add a missing dependency.

Fixes #26672.
2022-02-26 10:15:02 -07:00
Ondřej Čertík
dd5943bc6f libluv: update to the latest release (#29228)
Fixes #26673.
2022-02-26 10:11:53 -07:00
Seth R. Johnson
00ed99dc16 darwin: propagate build environment variables for Autotools (#28948)
GraphViz has failures due to overriding the default autoconf build
environment variables.
2022-02-26 11:19:40 -05:00
Harmen Stoppels
db2340007a openmpi: ~gpfs by default (#29218) 2022-02-25 17:51:07 -07:00
Manuela Kuhn
2610423e78 r-rlang: add 1.0.1 (#29040) 2022-02-25 18:19:57 -06:00
Manuela Kuhn
888eb11565 r-foreach: add 1.5.2 (#29062) 2022-02-25 18:19:29 -06:00
Manuela Kuhn
1cc5391443 r-cli: add 3.2.0 (#29005) 2022-02-25 18:18:31 -06:00
Scott Wittenburg
b082c33c85 commands: Propgate command return value as exit code (#29223) 2022-02-25 10:49:56 -08:00
Manuela Kuhn
d62b8f0bf3 py-jupyterlab: add 3.1.19 and 3.2.9 (#29174) 2022-02-24 23:24:13 -06:00
Kinh Nguyen
c17f8d938e r-units 0.8-0 (#29183) 2022-02-24 17:54:38 -08:00
Glenn Johnson
c6556b7a06 Adjust binutils detection (#29188)
The `spack external find binutils` command was failing to find my system
binutils because the regex was not matching. The name of the executable
follows the string 'GNU' that I tested with three different
installations so I changed the regex to look for that. On my CentOS-7
system, the version had the RPM details so I set the version to capture
the first three parts of the version.
2022-02-24 17:52:45 -08:00
Tim Haines
31c8567007 capstone: update URL (#29190)
* capstone: Change GitHub URL

* capstone: Remove 'master' branch

Only the 'next' branch is used for development/release now.
2022-02-24 17:51:28 -08:00
Harmen Stoppels
8c1e54180e disable gpfs through --with-gpfs=no (#29181) 2022-02-24 22:39:38 +01:00
Manuela Kuhn
dc01f9597e py-jedi: add 0.18.1 (#29130)
* py-jedi: add 0.18.1

* fix py-parso version
2022-02-24 15:09:58 -06:00
Manuela Kuhn
8f372fc88f py-jupyterlab-server: add 2.10.3 (#29172) 2022-02-24 15:07:24 -06:00
Manuela Kuhn
6cc2e7bcd4 py-ipython: add 8.0.1 (#29175) 2022-02-24 15:04:28 -06:00
Manuela Kuhn
d7b9ad6456 py-lxml: add 4.8.0 (#29184) 2022-02-24 14:57:29 -06:00
Seth R. Johnson
ceea479b56 vecgeom: add patch for @1.1.18 +cuda (#29185) 2022-02-24 09:34:42 -07:00
Harmen Stoppels
8bd9527a71 mpich: add pmi=cray support (#29160)
* mpich: add pmi=cray support

After marking `cray-pmi` as external:

```yaml
packages:
  cray-pmi:
    externals:
    - spec: cray-pmi@5.0.17
      prefix: /opt/cray/pe/pmi/5.0.17
```

You can now install

```
spack install something ^mpich pmi=cray
```

and

```console
srun $(spack location -i something)/bin/your_app
```
2022-02-24 16:35:01 +01:00
Manuela Kuhn
205e9f7d73 py-jupyter-client: add 7.1.2 (#29135) 2022-02-24 05:18:18 -07:00
Manuela Kuhn
a8b1fbde41 py-jupyter-core: add 4.9.2 (#29134) 2022-02-24 05:17:56 -07:00
Manuela Kuhn
3243731c1c py-jupyter-server: add 1.13.5 (#29145) 2022-02-24 04:32:52 -07:00
Manuela Kuhn
0ed94f9529 py-json5: add 0.9.6 (#29133) 2022-02-24 04:23:44 -07:00
Manuela Kuhn
96236f229f py-joblib: add 1.1.0 (#29131) 2022-02-24 03:11:47 -07:00
QuellynSnead
dccc58c0ad netlib-lapack: apply ibm-xl-3.9.1 patch to cce (#28812) 2022-02-24 10:55:35 +01:00
Diego Alvarez
2e0cf6f9ee nextflow: add v21.10.6 (#29164) 2022-02-24 10:54:14 +01:00
Carlos Bederián
b2a0b6d6c3 freeglut: add 3.2.2 (#29165) 2022-02-24 10:53:25 +01:00
Carlos Bederián
fddc58387c libdrm: add -fcommon to CFLAGS for %aocc@2.3.0: and %clang@11.0.0: (#29169) 2022-02-24 10:20:54 +01:00
Tamara Dahlgren
0b4f40ab79 Testing: Summarize test results and add verbose output (#28700) 2022-02-23 18:36:21 -08:00
eugeneswalker
b21d30d640 tau: java is runtime dep for paraprof (#29166) 2022-02-23 15:54:41 -08:00
eugeneswalker
b1f223d224 tau: unpin binutils version (#29161) 2022-02-23 16:28:57 -05:00
Nils Vu
9fef13ce95 blaze package: add blas/lapack/smp variants (#29010)
Also:

* spectre: disable blaze+blas in earlier versions
* cblas: fix a broken URL link
2022-02-23 11:25:25 -08:00
Simon Frasch
e4ba7bb044 spla: add version 1.5.3 (#29048) 2022-02-23 07:02:50 -08:00
Seth R. Johnson
ab1e9d717e util-linux-uuid: add conflict for new version and old compilers (#29149)
The system compiler on RHEL7 fails to build the latest linux-uuid.
```
util-linux-uuid@2.37.4%gcc@4.8.5 arch=linux-rhel7-haswell
```
results in:
```
libuuid/src/unparse.c:42:73: error: expected ';', ',' or ')' before 'fmt'
 static void uuid_fmt(const uuid_t uuid, char *buf, char const *restrict fmt)
```
It looks like it's assuming C99 by default so there may be a better way
to handle this... but this at least works
2022-02-23 07:35:34 -07:00
Brian Spilner
8e4ccf91e4 cdo: add 2.0.4 (#29157) 2022-02-23 13:39:56 +01:00
Carlos Bederián
125e4e00b4 cuda: add 11.6.1 (#29156) 2022-02-23 12:06:22 +01:00
Massimiliano Culpo
1ddad522a4 Move early exit for setup only argument (#29041)
See https://github.com/spack/spack/pull/28468/files#r809156986

If we exit before generating the:

 error("Dependencies must have compatible OS's with their dependents").
 ...

facts we'll output a problem that is effectively
different by the one solved by clingo.
2022-02-23 01:46:52 -08:00
eugeneswalker
1cb82dc542 e4s ci: packages: prefer openturns@1.18 (#29154) 2022-02-22 17:17:34 -08:00
Harmen Stoppels
17c065a750 libtree: 3.0.3 (#29153) 2022-02-22 16:56:30 -08:00
Tom Scogland
a9ba40164a Checksum match (#28989)
* cmd/checksum: prefer url matching url_from_version

This is a minimal change toward getting the right archive from places
like github.  The heuristic is:

* if an archive url exists, take its version
* generate a url from the package with pkg.url_from_version
* if they match
  * stop considering other URLs for this version
  * otherwise, continue replacing the url for the version

I doubt this will always work, but it should address a variety of
versions of this bug.  A good test right now is `spack checksum gh`,
which checksums macos binaries without this, and the correct source
packages with it.

fixes #15985
related to #14129
related to #13940

* add heuristics to help create as well

Since create can't rely on an existing package, this commit adds another
pair of heuristics:
1. if the current version is a specifically listed archive, don't
   replace it
2. if the current url matches the result of applying
   `spack.url.substitute_version(a, ver)` for any a in archive_urls,
   prefer it and don't replace it

fixes #13940

* clean up style and a lingering debug import

* ok flake8, you got me

* document reference_package argument

* Update lib/spack/spack/util/web.py

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

* try to appease sphinx

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-23 00:55:59 +00:00
Manuela Kuhn
535262844b py-iso8601: add 1.0.2 (#29128) 2022-02-22 20:21:54 +00:00
Manuela Kuhn
ed447e1ac7 py-stack-data: add new package (#29125) 2022-02-22 14:11:52 -06:00
Manuela Kuhn
d840c3a069 py-pure-eval: add 0.2.2 and get sources from pypi (#29123) 2022-02-22 14:10:46 -06:00
Manuela Kuhn
6a259ecd85 py-isodate: add 0.6.1 (#29129) 2022-02-22 14:07:31 -06:00
Todd Gamblin
36b0730fac Add spack --bootstrap option for accessing bootstrap store (#25601)
We can see what is in the bootstrap store with `spack find -b`, and you can clean it with `spack
clean -b`, but we can't do much else with it, and if there are bootstrap issues they can be hard to
debug.

We already have `spack --mock`, which allows you to swap in the mock packages from the command
line. This PR introduces `spack -b` / `spack --bootstrap`, which runs all of spack with
`ensure_bootstrap_configuration()` set. This means that you can run `spack -b find`, `spack -b
install`, `spack -b spec`, etc. to see what *would* happen with bootstrap configuration, to remove
specific bootstrap packages, etc. This will hopefully make developers' lives easier as they deal
with bootstrap packages.

This PR also uses a `nullcontext` context manager. `nullcontext` has been implemented in several
other places in Spack, and this PR consolidates them to `llnl.util.lang`, with a note that we can
delete the function if we ever reqyire a new enough Python.

- [x] introduce `spack --bootstrap` option
- [x] consolidated all `nullcontext` usages to `llnl.util.lang`
2022-02-22 12:35:34 -07:00
Adam J. Stewart
800933bbdf py-notebook: fix py-nbconvert dep (#29020) 2022-02-22 15:26:23 +01:00
Adam J. Stewart
2516885615 py-shapely: add v1.8.1 (#29023) 2022-02-22 15:24:56 +01:00
SXS Bot
2446771b63 spectre: add v2022.02.17 (#29045)
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com>
2022-02-22 15:21:45 +01:00
kwryankrattiger
f9843367ed ParaView: constrain +cuda variant to version < 5.8 (#29049) 2022-02-22 15:21:07 +01:00
dependabot[bot]
b08ed91309 build(deps): bump docker/login-action from 1.12.0 to 1.13.0 (#29053)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.12.0 to 1.13.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](42d299face...6af3c118c8)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-22 15:18:38 +01:00
Ethan Stam
0d3ecff903 ParaView: add use_vtkm as a multi-valued variant (#21977)
spelling fixes
2022-02-22 15:17:18 +01:00
Manuela Kuhn
aca6b73a6c py-flit: add v3.6.0 (#29124) 2022-02-22 14:58:21 +01:00
Manuela Kuhn
92970c2006 git-annex: add 10.20220121 (#28993) 2022-02-22 14:54:29 +01:00
Harmen Stoppels
f47e24381d zstd+programs: use xz for lzma lib (#29107) 2022-02-22 14:19:06 +01:00
Seth R. Johnson
2941afe9e0 qt: mark conflict between older versions and with newer xcode (#29122) 2022-02-22 14:15:15 +01:00
Harmen Stoppels
e6521e7379 llvm: new version 13.0.1 (#29119) 2022-02-22 06:22:22 -05:00
Tiziano Müller
37f021ef3c cp2k: bump version to 9.1, fix building with CUDA (#29108)
first step towards fixing #28554
2022-02-22 11:26:47 +01:00
Chuck Atkins
2ab1ace5f4 rhash: un-block intel builds (#29117) 2022-02-22 09:24:29 +01:00
liuyangzhuan
8daee48231 openturns: add v1.18 (#29097) 2022-02-22 09:07:58 +01:00
Manuela Kuhn
8485474140 py-imageio: add 2.16.0 (#29066)
* py-imageio: add 2.16.0

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-21 16:41:28 -07:00
Glenn Johnson
51488dbff5 update bioconductor packages to bioconductor 3.14 (#28900) 2022-02-21 15:38:27 -07:00
Manuela Kuhn
1953d986ae py-asttokens: add new package (#29073) 2022-02-21 14:47:28 -07:00
Manuela Kuhn
fef58db792 r-brobdingnag: add 1.2-7 (#28997) 2022-02-21 13:57:16 -06:00
Manuela Kuhn
36c64c8012 r-bh: add 1.78.0-0 (#28996) 2022-02-21 13:48:24 -06:00
Manuela Kuhn
8cd95b9f35 r-backports: add 1.4.1 (#28995) 2022-02-21 13:46:58 -06:00
Todd Gamblin
7912a8e90b bugfix: Not all concrete versions on the CLI should be considered real (#28620)
Some "concrete" versions on the command line, e.g. `qt@5` are really
meant to satisfy some actual concrete version from a package. We should
only assume the user is introducing a new, unknown version on the CLI
if we, well, don't know of any version that satisfies the user's
request.  So, if we know about `5.11.1` and `5.11.3` and they ask for
`5.11.2`, we'd ask the solver to consider `5.11.2` as a solution.  If
they just ask for `5`, though, `5.11.1` or `5.11.3` are fine solutions,
as they satisfy `@5`, so use them.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-02-21 11:46:37 -08:00
Todd Gamblin
2210f84a91 py-numpy, py-scipy: add rgommers as a maintainer (#29109) 2022-02-21 12:41:27 -07:00
Alberto Invernizzi
b8d042273a Bring back cuda@11.4.0 conflicts for GCC and clang; add 11.4.3:11.4.4 (#29076)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-02-21 20:28:56 +01:00
Christoph Junghans
9173fd7c61 votca: fix git url and allow build without xtp parts (#29056)
* votca: fix git url
* Votca: add xtp variant
2022-02-21 09:23:00 -08:00
Glenn Johnson
275608e2f2 update CRAN R packages (#28786) 2022-02-21 11:22:33 -06:00
Manuela Kuhn
f744640289 py-importlib-metadata: add 4.11.1 (#29069) 2022-02-21 09:23:32 -07:00
Manuela Kuhn
b9d26caab8 py-executing: add new package (#29074) 2022-02-21 08:56:42 -07:00
Manuela Kuhn
0dd5d493d5 py-pandas: fix tests (#29044) 2022-02-21 08:20:33 -07:00
Seth R. Johnson
e7894b4863 geant4: fix CMake-derived data path (#29091)
* geant4-data: use build+run-only depends

* geant4: point to dependent datadir

This is "used" in the configure step to set up the Geant4Config.cmake
file's persistent pointers to the data directory, but the dependency
is still listed as "run" -- though I'm not sure this is the right behavior
since the geant4 installation really does change as a function of the
data directory, and the installation is incomplete/erroneous
without using one.

* Style
2022-02-21 12:05:59 +00:00
Manuela Kuhn
94d75d0327 py-flit-core: add v3.6.0 (#29009) 2022-02-21 11:35:00 +01:00
Adam J. Stewart
96fceb6e38 py-liblas: add new package (#29027) 2022-02-21 11:23:07 +01:00
h-murai
fc8c3ada56 nwchem: add support for Fujitsu A64FX compilers on v7.0.2 (#28990) 2022-02-21 10:26:51 +01:00
Sebastian Pipping
60fe21ddd7 expat: add v2.4.6, deprecate v2.4.5 (#29100) 2022-02-21 10:24:47 +01:00
Erik Schnetter
0ffce33447 Add c-blosc v1.21.1, c-blosc2 v2.0.4 (#29101) 2022-02-21 10:16:24 +01:00
Seth R. Johnson
043794362a iwyu: add 0.17 and improve llvm target requirements (#29077)
* iwyu: new version 0.17

* iwyu: allow default llvm target when x86/x86_64
2022-02-21 10:14:21 +01:00
Tom Scogland
f36a6f3fc0 neovim remote: add new package (#29103) 2022-02-21 10:11:57 +01:00
Tom Scogland
7995b7eac4 py-pynvim: add new package (#29102) 2022-02-21 10:11:30 +01:00
Seth R. Johnson
509f1cc00a git: install keychain helper on macOS (#29090) 2022-02-21 10:09:49 +01:00
Seth R. Johnson
7459aa6c95 Various package fixes for macOS (#29024)
* trilinos: disable dl on macOS

* py-sphinx-argparse: add explicit poetry dependency

* libzmq: fix libbsd dependency

libbsd is *always* required when +libbsd (introduced in #28503) . #20893
had previously removed the macos dependency because libbsd wasn't always
enabled. Libbsd support is only available after 4.3.2 so change it to a
conflict rather than bumping the dependency.

* hdf5: work around GCC11.2 monterey fortran bug

* go-bootstrap: mark conflict for monterey
2022-02-21 09:08:08 +01:00
Olivier Cessenat
2852126196 perl-fth: add the external find feature for perl-fth and new release (#28886) 2022-02-20 23:20:27 -07:00
Sebastian Pipping
9e2d78cffc expat: Add latest release 2.4.5 with security fixes (#29086) 2022-02-19 15:53:20 -07:00
Seth R. Johnson
e19f29da66 silo package: fix patch for 4.11-bsd (#29075)
There's a check to skip for version '10.2-bsd', but the patch
does not apply to '11-bsd' either.
2022-02-19 07:26:32 -07:00
Harmen Stoppels
39fcafaf45 binutils: add v2.38 (#29067) 2022-02-19 06:02:34 -07:00
downloadico
22d07b328e New package: ovito (#28787) 2022-02-19 05:05:11 -07:00
Manuela Kuhn
f37855f5bb py-ipykernel: add 6.9.1 (#29071)
* py-ipykernel: add 6.9.1

* Add py-jupyter-core version restriction
2022-02-18 22:54:07 -07:00
Seth R. Johnson
f33770553f Add/remove conflicts for Apple silicon (M1/aarch64) (#28850)
* go: remove broken bootstrapping for macos aarch64

* qt: mark apple silicon conflict

* trilinos: remove apple silicon conflict

* Apply review suggestions

* python: add apple silicon conflict for 2.7
2022-02-18 21:56:32 -07:00
Manuela Kuhn
e886a61a6c r-distributional package: add version 0.3.0 (#29037) 2022-02-18 18:38:19 -08:00
eugeneswalker
bbb81d5d68 kokkos@:3.5.00 +sycl conflicts with %dpcpp@2022.0.0 (#29055) 2022-02-18 14:33:59 -08:00
Manuela Kuhn
99707beae7 py-humanize: add 4.0.0 (#29034) 2022-02-18 16:28:28 -06:00
Glenn Johnson
be53b5db96 py-tensorflow-estimator: new versions (#28093)
* py-tensorflow-estimator: new versions

* Set proper constraint on py-funcsigs

Only needed when the python version is less than 3.3.
2022-02-18 14:19:05 -06:00
Andrew W Elble
45f3b2fc52 py-keras: new versions (#27991)
* py-keras: new versions

* incorporate feedback

* adjust deps, add url_for_version()

* change to use pip

* remove build phase / remove unnecessary TEST_TMPDIR envvar

* switch url_for_version around
install, not build
2022-02-18 14:18:11 -06:00
Glenn Johnson
e5f6914bd2 py-tensorflow: add versions 2.5.0 and 2.6.0 (#27138)
* py-tensorflow: add versions 2.5.0 and 2.6.0

- add version 2.5.0
- add version 2.6.0
- add patches for newer protobuf
- set constraints

* Remove import os. left over from testing

* Remove unused patch file

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

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

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

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

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

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

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

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

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

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

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

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

* Add py-clang dependency

* Adjust py-clang constraint

* Build tensorflow with tensorboard

- tensorflow
    - added 2.6.1 and 2.6.2 versions

- tensorboard
    - have bazel use number of jobs set by spack
    - add versions and constraints

- new package: py-tensorboard-data-server
- use wheel for py-tensorboard-plugin-wit
  This package can not build with newer versions of bazel that are
  needed for newer versions of py-tensorboard.

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

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

* Remove empty line at end of file

* Fix import sorting

* Adjust python dependencies on py-clang

* Add version 2.7.0 of pt-tensorflow and py-tensorboard

* Adjust bazel constraints

* bazel-4 support begins with py-tensorflow-2.7.0

* Adjust dependencies

* Loosen cuda constraint on versions > 2.5

Tensorflow-2.5 and above can use cuda up to version 11.4.

* Add constraints to patch

The 0008-Fix-protobuf-errors-when-using-system-protobuf.patch patch
should only apply to versions 2.5 and above.

* Adjust constraints

- versions 2.4 and below need protobuf-3.12 and below
- versions 2.4 and above can use up to cuda-11.4
- versions 2.2 and below can not use cudnn-8
- the null_linker_bin patch should only be applied to versions 2.5 and
  above.

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

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

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

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

* Fix py-grpcio dependency for version 2.7

Also, make sure py-h5py mpi specs are consistent.

* Add llvm as run dependency.

* Fix python spec for py-tensorboard

* Fix py-google-auth spec for py-tensorboard

* Do not override the pip spec for tensorboard-plugin-wit

* Converted py-tensorboard-plugin-wit to wheel only package

* Fix bazel dependency spec in tensorflow

* Adjust pip masks

- allow tensorboard to be specified in pip constraints
- mask tensorflow-estimator

* Remove blank line at end of file

* Adjust pip constraints in setup.py

Also, adjust constraint on a patch that is fixed in 2.7

* Fix flake8 error

Adjust formatting for consistency.

* Get bazel dep right

* Fix old cudnn dependency, caught in audit test

* Adjust the regex to ensure proper line is changed

* Add py-libclang package

- Stripped the py-clang package down to just version 5
- added comments to indicate the purpose of py-clang and that
  py-libclang should be preferred
- set dependencies accordingly in py-tensorflow

* Remove cap on py-h5py dependency for v2.7

* Add TODO entries for tensorflow-io-gcs-filesystem

* Edit some comments

* Add phases and select python in PATH for tensorboard-data-server

* py-libclang

- remove py-wheel dependency
- remove raw string notation in filter_file

* py-tensorboard-data-server

- remove py-wheel dep
- remove py-pip dep
- use python from package class

* py-tensorboard-plugin-wit

- switch to PythonPackage
- add version 1.8.1
- remove unneeded code

* Add comment as to why a wheel is need for tensorboard-plugin-wit

* remove which pip from tensorboard-data-server

* Fix dependency specs in tensorboard

* tweak dependencies for tensorflow

* fix python constraint

* Use llvm libs property

* py-tensorboard-data-server

- merge build into install
- use std_pip_args

* remove py-clang dependency

* remove my edits to py-tensorboard-plugin-wit

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-18 14:10:00 -06:00
Massimiliano Culpo
7fd94fc4bc spack external find: change default behavior (#29031)
See https://github.com/spack/spack/issues/25353#issuecomment-1041868116

This commit changes the default behavior of
```
$ spack external find
```
from searching all the possible packages Spack knows about to
search only for the ones tagged as being a "build-tool".

It also introduces a `--all` option to restore the old behavior.
2022-02-18 11:51:01 -07:00
Michael Kuhn
2ed52d32c7 libbson, mongo-c-driver: add 1.21.0 (#28978) 2022-02-18 07:08:48 -07:00
Michael Kuhn
31e538795e curl: add v7.81.0 (#28973) 2022-02-18 03:59:52 -07:00
Simon Frasch
0ad3319243 spfft: add version 1.0.6 (#29047) 2022-02-18 10:58:52 +01:00
Manuela Kuhn
4efd47d0c3 py-fasteners: add 0.17.3 (#28988) 2022-02-18 02:57:04 -07:00
Michael Kuhn
43016d0ff4 util-linux(-uuid): add v2.37.4 (#28985) 2022-02-18 02:08:48 -07:00
Michael Kuhn
5796de8bcb mariadb-c-client: add v3.2.6 (#28981) 2022-02-18 01:08:58 -07:00
Michael Kuhn
60e9af6e0f sqlite: add v3.37.2 (#28984) 2022-02-18 00:23:57 -07:00
Michael Kuhn
ae84ce535b pcre: add v8.45 (#28979) 2022-02-17 23:03:38 -07:00
Michael Kuhn
5bdc72e2ed pcre2: add v10.39 (#28980) 2022-02-17 22:53:47 -07:00
Michael Kuhn
7a1364fcb2 rdma-core: add v39.0 (#28987) 2022-02-17 22:44:52 -07:00
Seth R. Johnson
6c61c2695a darwin: robust macos version detection (#28991)
Prefer `sw_vers` to `platform.mac_ver`. In anaconda3 installation, for example, the latter reports 10.16 on Monterey -- I think this is affected by how and where the python instance was built.

Use MACOSX_DEPLOYMENT_TARGET if present to override the operating system choice.
2022-02-17 20:50:41 -07:00
Toyohisa Kameyama
b768fb85c6 abinit: Add version 9.6.1 and support fujitsu compiler and fujitsu-fftw. (#28474)
* abinit: Add version 9.6.1 and support fujitsu compiler and fujitsu-fftw.
* fix conflicts +openmp.
* Add openmp conflicts.
2022-02-17 15:42:49 -08:00
Manuela Kuhn
b3f5f55f95 py-charset-normalizer: add 2.0.12 (#28945) 2022-02-17 15:44:38 -07:00
Adam J. Stewart
00f0d11b8f py-fiscalyear: add v0.4.0 (#29025) 2022-02-17 22:10:47 +01:00
Manuela Kuhn
e6142e8183 py-fonttools: add 4.29.1 and fix tests (#29032) 2022-02-17 15:06:57 -06:00
Manuela Kuhn
98fa2c6f10 py-gevent: add 21.12.0 (#29033) 2022-02-17 15:05:47 -06:00
Scott Wittenburg
38643dcd7e gitlab: Propagate stack name to downstream build jobs (#29019)
It will be useful for metrics gathering and possibly debugging to
have this environment variable available in the runner pods that
do the actual rebuilds.
2022-02-17 15:36:48 -05:00
Glenn Johnson
e7e6a16064 llvm: add libs property (#28621)
* llvm: add libs property

* Use llvm-config helper for libs property
2022-02-17 13:52:49 -06:00
Tamara Dahlgren
fefe65a35b Testing: optionally run tests on externally installed packages (#28701)
Since Spack does not install external packages, this commit skips them by
default when running stand-alone tests. The assumption is that such packages
have likely undergone an acceptance test process. 

However, the tests can be run against installed externals using 
```
% spack test run --externals ...
```
2022-02-17 19:47:42 +01:00
Michael Kuhn
4d669bfdf4 zstd: add v1.5.2 (#28986) 2022-02-17 07:05:23 -07:00
Harmen Stoppels
d93f9b82ac Reduce verbosity of patches=... variant (#29015)
* reduce verbosity of patches=... variant

* Special-case prefix-matches for satisfies of patches variant
2022-02-17 11:06:32 +01:00
Massimiliano Culpo
fa132614e0 ASP-based solver: don't sort when defining variant possible values (#29013)
fixes #28260

Since we iterate over different variants from many packages, the variant 
values may have types which are not comparable, which causes errors 
at runtime. This is not a real issue though, since we don't need the facts
to be ordered. Thus, to avoid needless sorting, the sorted function has 
been removed and a comment has been added to tip any developer that
might need to inspect these clauses for debugging to add back sorting 
on the first two items only.

It's kind of difficult to add a test for this, since the error depends on 
whether Python sorting algorithm ever needs to compare the third 
value of a tuple being ordered.
2022-02-17 08:50:50 +01:00
Tom Scogland
a0bd6c8817 binutils: add external detection (#29022) 2022-02-17 08:45:24 +01:00
Michael Kuhn
dcdf5022ad libmd: add v1.0.4 (#28971) 2022-02-16 19:50:38 -07:00
Michael Kuhn
b021cf39aa libbsd: add v0.11.5 (#28969) 2022-02-16 19:50:15 -07:00
Tom Scogland
8f5fcc6e95 extensions: allow multiple "extends" directives (#28853)
* extensions: allow multiple "extends" directives

This will allow multiple extends directives in a package as long as only one of
them is selected as a dependency in the concrete spec.

* document the option to have multiple extends
2022-02-16 21:23:12 +00:00
Michael Kuhn
e8c5f195a7 libffi: add v3.4.2 (#28970) 2022-02-16 13:41:29 -07:00
Mark W. Krentel
36020d69d7 intel-gtpin: new package (#28542) 2022-02-16 18:22:26 +00:00
Todd Gamblin
b1ff9c05bc concretizer: refactor argument passing for reuse
Reuse previously was a very invasive change that required parameters to be added to all
the methods that called `concretize()` on a `Spec` object. With the addition of
concretizer configuration, we can use the config system to simplify this argument
passing and keep the code cleaner.

We decided that concretizer config options should be read at `Solver` instantiation
time, and if config changes between instnatiation of a particular solver and
`solve()` invocation, the `Solver` should use the settings from `__init__()`.

- [x] remove `reuse` keyword argument from most concretize functions
- [x] refactor usages to use `spack.config.override("concretizer:reuse", True)`
- [x] rework argument passing in `Solver` so that parameters are set from config
      at instantiation time
2022-02-16 10:17:18 -08:00
Todd Gamblin
d33973df6c docs: add section on concretizer configuration
* Document `concretizer.yaml`, `--reuse`, and `--fresh`.
2022-02-16 10:17:18 -08:00
Todd Gamblin
a2b8e0c3e9 commands: refactor --reuse handling to use config
`--reuse` was previously handled individually by each command that
needed it. We are growing more concretization options, and they'll
need their own section for commands that support them.

Now there are two concretization options:

* `--reuse`: Attempt to reuse packages from installs and buildcaches.
* `--fresh`: Opposite of reuse -- traditional spack install.

To handle thes, this PR adds a `ConfigSetAction` for `argparse`, so
that you can write argparse code like this:

```
     subgroup.add_argument(
        '--reuse', action=ConfigSetAction, dest="concretizer:reuse",
        const=True, default=None,
        help='reuse installed dependencies/buildcaches when possible'
     )
```

With this, you don't need to add logic to pull the argument out and
handle it; the `ConfigSetAction` just does it for you. This can probably
be used to clean up some other commands later, as well.

Code that was previously passing `reuse=True` around everywhere has
been refactored to use config, and config is set from the CLI using
a new `add_concretizer_args()` function in `spack.cmd.common.arguments`.

- [x] Add `ConfigSetAction` to simplify concretizer config on the CLI
- [x] Refactor code so that it does not pass `reuse=True` to every function.
- [x] Refactor commands to use `add_concretizer_args()` and to pass
      concretizer config using the config system.
2022-02-16 10:17:18 -08:00
Todd Gamblin
f155de7462 tests: consolidate mock scope creation logic in conftest.py
Config scopes were different for `config` and `mutable_config`,
and `mutable_config` did not have a command line scope.

- [x] Fix by consolidating the creation logic for the two fixtures.
2022-02-16 10:17:18 -08:00
Todd Gamblin
800ed16e7a config: add a new concretizer config section
The concretizer is going to grow to have many more configuration,
and we really need some structured config for that.

* We have the `config:concretizer` option that chooses the solver,
  but extending that is awkward (we'd need to replace a string with
  a `dict`) and the solver choice will be deprecated eventually.

* We have the `concretization` option in environments, but it's
  not a top-level config section -- it's just for environments,
  and it also only admits a string right now.

To avoid overlapping with either of these and to allow the most
extensibility in the future, this adds a new `concretizer` config
section that can be used in and outside of environments. There
is only one option right now: `reuse`.  This can expand to include
other options later.

Likely, we will soon deprecate `config:concretizer` and warn when
the user doesn't use `clingo`, and we will eventually (sometime later)
move the `together` / `separately` options from `concretization` into
the top-level `concretizer` section.

This commit just adds the new section and schema. Fully wiring it
up is TBD.
2022-02-16 10:17:18 -08:00
Todd Gamblin
1903e45eec refactor: convert spack.solver.asp.solve() to a class
The solver has a lot of configuration associated with it. Rather
than adding arguments to everything, we should encapsulate that
in a class. This is the start of that work; it replaces `solve()`
and its kwargs with a class and properties.
2022-02-16 10:17:18 -08:00
Mark W. Krentel
87a3b72ef0 Add 'stable' to the list of infinity version names. (#28772)
* Add 'stable' to the list of infinity version names.
Rename libunwind 1.5-head to 1.5-stable.

* Add stable to the infinite version list in packaging_guide.rst.
2022-02-16 09:08:51 -08:00
Manuela Kuhn
884da5e326 py-etelemetry: add 0.3.0 (#28983)
* py-etelemetry: add 0.3.0

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-16 10:22:38 -06:00
Manuela Kuhn
9fc9386944 py-filelock: add 3.5.0 (#29006) 2022-02-16 10:22:16 -06:00
Manuela Kuhn
e84a2db23d py-tomli-w: add new package (#29007) 2022-02-16 10:21:09 -06:00
Adam J. Stewart
5c1edbe00a py-build: python+ensurepip not required (#28562)
* py-build: python+ensurepip not required

* Add patch to fix issue when pip is in PYTHONPATH
2022-02-16 15:53:22 +01:00
Massimiliano Culpo
5272e72344 mesa: enable the swr variant if +llvm, instead of using conflicts (#29008)
* mesa: enable the `swr` variant if +llvm, instead of using conflicts

fixes #28994
2022-02-16 07:26:29 -07:00
Adam J. Stewart
3c1b2c0fc9 find_libraries: search for both .so and .dylib on macOS (#28924) 2022-02-16 14:07:44 +01:00
psakievich
e6ea4c788a Trilinos: Add UVM variant (#28949)
13.2+ still supports UVM as an option.
2022-02-16 07:29:49 -05:00
Robert Pavel
5cd8fc37ba flecsi: update constraints and add new dependency (#28788)
Updated flecsi constraints to better match internal development. Also
added dependency on `lanl-cmake-modules` for flecsi@2.1.1:
2022-02-16 10:51:01 +01:00
Carson Woods
3e69449ecd py-archspec: add versions up to v0.1.3 (#28928) 2022-02-16 10:44:31 +01:00
haralmha
ef921e4107 storm: add v2.3.0 (#28957) 2022-02-16 10:43:37 +01:00
kwryankrattiger
6d6641f706 VTK-m: Allow building +shared+cuda_native @1.7: (#28877) 2022-02-16 10:40:33 +01:00
Tom Scogland
8f19bf2f31 gh: add versions up to v2.5.1 (#28958) 2022-02-16 10:38:11 +01:00
Adam J. Stewart
fe5cb90f83 py-nbconvert: add v6.4.2 (#28965)
No version of py-nbconvert@5: can be concretized due to conflicting versions 
of flit-core that are required. This issue could be solved by separate 
concretization of build deps.
2022-02-16 10:24:52 +01:00
Michael Kuhn
b0dc83afff glib: add v2.70.4 (#28972) 2022-02-16 01:59:19 -07:00
Michael Kuhn
4c8582dfc8 gdbm: add v1.23 (#28974) 2022-02-16 09:53:45 +01:00
Manuela Kuhn
8654cc93ef py-entrypoints: add v0.4 (#28977) 2022-02-16 09:40:54 +01:00
Manuela Kuhn
5d58b94322 py-backports-entry-points-selectable: add v1.1.1 (#28954) 2022-02-16 09:40:10 +01:00
Manuela Kuhn
924be97a9b py-docutils: add 0.18.1 (#28976) 2022-02-15 22:20:34 -07:00
Manuela Kuhn
dfd83e60ac py-argon2-cffi: add 21.3.0 (#28968) 2022-02-15 22:14:24 -07:00
Manuela Kuhn
0f9f636f38 py-distlib: add 0.3.4 (#28975) 2022-02-15 22:35:17 -06:00
Manuela Kuhn
2fa892daa2 py-decorator: add 5.1.1 (#28953) 2022-02-15 18:57:23 -07:00
Manuela Kuhn
c433a35fdb py-datalad: add 0.15.5 (#28952)
* py-datalad: add 0.15.5

* Move dependency position
2022-02-15 17:02:53 -07:00
Manuela Kuhn
23ddfba16d py-cryptography: add 36.0.1 (#28950) 2022-02-15 16:44:37 -07:00
Filippo Spiga
52d4e209e2 Adding NVIDIA HPC SDK 22.2 (#28874) 2022-02-15 16:41:42 -07:00
Massimiliano Culpo
5b34b947a8 archspec: remove pyproject.toml to workaround PEP517 (#28956)
* archspec: remove pyproject.toml to workaround PEP517

If pyproject.toml is in the folder, that is preferred to the
setup.py packaged by poetry itself. Adding a dependency on
poetry for deploying a pure Python package seems wasteful,
since the package to be deployed just needs to be copied in
place, so we don't want to built rust for that.

* archspec: patch pyproject.toml to comply to PEP517

See https://python-poetry.org/docs/pyproject/#poetry-and-pep-517

* Fix style issues
2022-02-15 16:14:39 -07:00
Paul Romano
dea9766336 OpenMC: new version 0.13.0 (#28929) 2022-02-15 16:11:33 -07:00
Manuela Kuhn
939e94790f py-argon2-cffi-bindings: add new package (#28943) 2022-02-15 15:14:25 -07:00
Christoph Conrads
9da8f18e3a FEniCS: avoid HDF5 version 1.12+ (#28920)
The new HDF5 version 1.12 API causes compiler errors due to modified function prototypes. Note that version 1.11 is the development version of HDF5 1.12.
2022-02-15 15:09:08 -07:00
Manuela Kuhn
f707987275 py-coverage: add 6.3.1 (#28946) 2022-02-15 15:08:37 -07:00
Manuela Kuhn
39c4af5f79 py-numba: add 0.55.1 (#28933)
* py-numba: add 0.55.1

* Remove comment

* Pin down py-llvmlite version for older py-numba releases

* Remove py-llvmlite deps for releases not in spack

* Set upper bounds for python and py-numpy

* Add stricter upper bound to py-numpy for releases <=0.47
2022-02-15 15:02:29 -07:00
Manuela Kuhn
9cd311c82d py-argcomplete: add 2.0.0 (#28942) 2022-02-15 14:44:38 -07:00
Manuela Kuhn
53ca65b103 py-memory-profiler: add 0.60.0 (#28918) 2022-02-15 13:29:49 -07:00
Seth R. Johnson
c987d06a19 github: add default value for spack spec and error message (#28796) 2022-02-15 18:50:21 +00:00
Stephen Sachs
79f22423b8 intel compiler: fix link time error with LLVMgold.so (#28731)
The Intel compiler will, at link time, call `ld -plugin LLVMgold.so`, which
expects libraries like `libimfo.so` to be found either in the `LD_LIBRARY_PATH` or
in `LLVMgold.so`s RPATH.

As `LLVMgold.so` already uses RUNPATH, I used that to extend this to the
necessary library locations.

This PR should fix issues:
https://github.com/spack/spack/issues/10308
https://github.com/spack/spack/issues/18606
https://github.com/spack/spack/issues/17100
https://github.com/spack/spack/issues/21237
https://github.com/spack/spack/issues/4261

Co-authored-by: Stephen Sachs <stesachs@amazon.com>
2022-02-15 17:47:29 +00:00
Harmen Stoppels
cebe4fdf1d Make spack -e [env] spec show environment root specs (#25941) 2022-02-15 09:42:05 -08:00
Anton Kozhevnikov
d61c1f623c SIRIUS: optionlal dependency on Python (#28711)
* depend on Python only when building the module

* fixes for shared costa libray

* add deprecated=True for old packages
2022-02-15 10:23:37 -07:00
Harmen Stoppels
55996d3ad4 Unalias despacktivate only when alias exists (#28939) 2022-02-15 16:21:19 +01:00
acastanedam
3640c258dc direnv: fix installation procedure (#28940)
Setting Spack's `$prefix` to `$DESTDIR` and not to `$PREFIX` install the
package in `$prefix/usr/local` and not in `$prefix`, thus when it is
loaded the executable `direnv` in not "seen" by the environment.
2022-02-15 08:17:41 -07:00
Nils Vu
a8d440d3ab spectre: patch Boost pre v1.67 (#28931) 2022-02-15 15:13:13 +01:00
dlkuehn
7fc9c16f9e genometools: add v1.6.2 (#28936)
Co-authored-by: las_dkuehn <las_dkuehn@gilman-0107-02.las.iastate.edu>
2022-02-15 15:11:38 +01:00
Wouter Deconinck
6864b28fd8 dd4hep: add v1.20 (#28937)
No major changes to the build system, https://github.com/AIDASoft/DD4hep/compare/v01-19...v01-20
2022-02-15 15:06:43 +01:00
Cody Balos
cf0c9affff sundials: use make for some of the smoke tests (#28938) 2022-02-15 15:03:58 +01:00
Mark W. Krentel
09a8656f1f meson: add versions 0.61.2 and 0.60.3 (#28934) 2022-02-15 05:20:34 -07:00
Manuela Kuhn
9f1c6c0c29 py-anyio: add 3.5.0 (#28915)
* py-anyio: add 3.5.0

* Add wheel dependency
2022-02-15 03:38:17 -07:00
Mikael Simberg
fdec3b47cc apex: add patch to install missing header (#28844)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-02-15 01:59:39 -07:00
Daniele Cesarini
c313a72e76 New quantum-espresso maintainer (#28927) 2022-02-15 09:32:46 +01:00
Manuela Kuhn
28caa0225f py-attrs: add 21.4.0 (#28914) 2022-02-14 22:50:55 -07:00
Manuela Kuhn
30fafa63e0 py-jsonschema: add 4.4.0 (#28919) 2022-02-14 22:50:37 -07:00
Seth R. Johnson
08cad7d0ee darwin: make sure MACOSX_DEPLOYMENT_TARGET has a minor component (#28926) 2022-02-15 05:50:22 +00:00
luker
9165e3fb86 updated cray-fftw (#28922)
added the latest cray-fftw version, added myself as a maintainer, updated the homepage
2022-02-14 22:14:39 -07:00
Pierre Neyron
d54a5d9dd8 py-pyopencl: fix dependency to py-six (#28916) (#28917) 2022-02-14 19:59:25 -07:00
Sreenivasa Murthy Kolam
76489eb213 replace mesa18 recipe with mesa recipe for the rocm releases (#28491) 2022-02-14 16:29:45 -06:00
ravil-mobile
64dd6378d4 easi: add new package (#28828)
Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
2022-02-14 15:29:32 -07:00
Manuela Kuhn
67ea14098d py-bids-validator: add 1.8.9 (#28913) 2022-02-14 14:53:29 -07:00
MichaelLaufer
5b80c4ab6c New package: py-pyfr (#28847)
* Initial support for PyFR

* styling

* fixes

* more syling fixes

* fixes for dependencies

* add min rocblas version
2022-02-14 15:43:18 -06:00
Tom Vander Aa
1377c02e26 intel-oneapi-mpi: set I_MPI_ROOT in setup_dependent_build_environment (#28890)
* setting I_MPI_ROOT is sometimes needed for find_package(MPI) in cmake to work
2022-02-14 13:23:35 -07:00
Thomas Madlener
13013d0291 fastjet add v3.3.4, fjcontrib add v1.045 (#22667) 2022-02-14 13:23:06 -07:00
estewart08
fe35ce1843 AMD rocm-openmp-extras: add v4.5.2 (#28790) 2022-02-14 10:14:44 -07:00
Toyohisa Kameyama
5353032eef Python: fix build with Fujitsu compiler (#28744) 2022-02-14 08:06:34 -06:00
Olli Lupton
dc57f987a7 py-{mizani,plotnine}: add packages. (#28841)
* py-{mizani,plotnine}: add packages.

* Add missing python dependency.
2022-02-14 03:20:29 -07:00
G-Ragghianti
aa6e725633 magma: move the execution of stand-alone tests to preferred directory (#28895) 2022-02-14 11:19:45 +01:00
John Wohlbier
9649246764 palisade-development: change fppe-logreg variant to point to a stable tag instead of a branch (#28717)
Co-authored-by: John Wohlbier <jgwohlbier@sei.cmu.edu>
2022-02-14 11:18:38 +01:00
Adam J. Stewart
b0658b8b03 py-pandas: add v1.4.1 (#28904) 2022-02-14 11:01:13 +01:00
Adam J. Stewart
e0a0f41ff9 py-mypy: add new versions (#28905) 2022-02-14 11:01:00 +01:00
Seth R. Johnson
3a4ab5f96f trilinos: disable UVM for 13.2+ (#28879) 2022-02-14 10:54:15 +01:00
Jen Herting
2c56cbd2bc [py-ctgan] fixed py-torchvision version range (#28892) 2022-02-13 22:26:10 -07:00
Harmen Stoppels
bece9fd823 Bump libtree (#28908) 2022-02-13 15:50:15 -08:00
Seth R. Johnson
97e4b43ddc go: mark conflict for ancient compilers (#28888) 2022-02-13 14:20:27 -07:00
Adam J. Stewart
cab0e4cb24 py-grpcio: add v1.43.0 (#28784) 2022-02-12 20:13:21 +01:00
Sarah Osborn
8c943261a2 hypre: add v2.24.0 (#28896) 2022-02-12 12:47:55 +01:00
Steve Leak
9f1db4e3a5 cray: add NVIDIA to the list of canonical names (#28246) 2022-02-12 10:45:46 +01:00
Adam Moody
0a25370e78 lwgrp/dtcmp packages: add version 1.0.5 and 1.1.4, respectively(#28817) 2022-02-11 18:52:51 -08:00
Olli Lupton
b840557d64 ffmpeg package: add libx264 variant; fix license variants. (#28808)
Prior to this patch, setting +gpl did not pass --enable-gpl and
did not allow GPL-only codecs to be enabled.
2022-02-11 18:40:35 -08:00
Brian Van Essen
fc7b7cfeab LBANN SW stack packages: gcc-toolchain and clang support (#28769)
* Added support to LBANN, Hydrogen, DiHydrogen, and Aluminum to capture
  a gcc-toolchain cxxflags argument and pass it to a CMAKE_CUDA_FLAG
  argument when set.  This helps deal with compiling with clang on
  systems with old base gcc installations.
* Added a dependency on py-scipy when enabling tests on LBANN.
* Updated the C++ standard for Hydrogen to C++17.
* Added a new variant +apps to enable (or disable) python packages that
  are used by applications in the LBANN repo, but are not strictly
  required for building and using LBANN.
* Added a run time dependency for both py-pytest and py-scipy so that
  they are activated in any environment.
* Added support for building LBANN, Hydrogen, and DiHydrogen with the
  IBM ESSL BLAS library.  This requires explicit identification of
  additional LAPACK libraries, since ESSL does not implement LAPACK, but
  is found by CMake.
* Fixed a bug in the LBANN dependency on OpenCV for Power architectures.
  The +powerpc variant is only required for GCC toolchains and causes
  Clang to break. Switched to only enabling when using %gcc on power.
2022-02-11 17:33:15 -08:00
Richarda Butler
af4d555c20 Update/caliper stand alone test compiler (#28526) 2022-02-11 15:02:40 -08:00
Simon Frasch
dc949a5bda spfft: fix missing hipFFT dependency with latest ROCm versions (#28880) 2022-02-11 14:17:40 -07:00
Teodor Nikolov
7ec9958b48 [rocm-smi-lib] Disable pdf generation with a patch (#28842)
- Installation often hangs building the documentation. This happens when
  doxygen and latex are found. To avoid the issue, comment-out that part
  of the code until an explicit cmake variable to disable documentation
  generation is available.
2022-02-11 13:47:50 -07:00
Cody Balos
853200c42d sundials: add new version and fix smoke tests (#28894)
* sundials: fix smoke tests

* sundials: add new version

* use cmake+make instead of make for tests, fix style

* use cmake_bin workaround from https://github.com/spack/spack/pull/28622
2022-02-11 12:23:58 -08:00
Dom Heinzeller
ef030ed0ee Bug fix for findutils: apply nonnull.patch only for versions 4.8.0+ (#28857) 2022-02-11 11:47:27 -07:00
haralmha
e365b05821 openloops: remove README from install prefix (#28767) 2022-02-11 11:11:33 -07:00
Glenn Johnson
61528c0b0a swftools package: patches for GCC@10: (#28296) 2022-02-11 09:54:53 -08:00
Danny McClanahan
e8838109d8 move typing_extensions.py back into typing.py =\ (#28549) 2022-02-11 09:52:01 -08:00
Mikael Simberg
389b24c4dc hpx: add conflict for Asio/CUDA (#27947)
* Add missing Asio versions from 1.16.0 to 1.21.0

* Add conflict for Asio/CUDA to HPX package

Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-02-11 11:03:55 +01:00
Adam Moody
6c47aa06fc libyogrt: add v1.27 (#28835)
Signed-off-by: Adam Moody <moody20@llnl.gov>
2022-02-11 11:02:35 +01:00
haralmha
7c9e015c25 coral: add 3.3.10 and libtirpc dependency (#28802)
Co-authored-by: Harald Minde Hansen <harald.minde.hansen@cern.ch>
2022-02-11 09:58:57 +00:00
Adam J. Stewart
d0e2462908 py-fiona: add v1.8.21 (#28810) 2022-02-11 10:57:42 +01:00
Nils Vu
2d223fb275 spectre: add v2022.02.08 (#28834) 2022-02-11 09:53:16 +00:00
Wouter Deconinck
ba1b203848 assimp: add v5.2.1 (#28818) 2022-02-11 10:47:12 +01:00
ravil-mobile
94826a3f1d pspamm: new package (#28825)
Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
2022-02-11 10:39:24 +01:00
ravil-mobile
73463f61d7 impalajit-llvm: add new package (#28826)
Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
2022-02-11 10:36:46 +01:00
Adam Moody
dff770667e mpifileutils: add v0.11.1 (#28837)
Signed-off-by: Adam Moody <moody20@llnl.gov>
2022-02-11 10:26:56 +01:00
Gilles Grospellier
bb3a1dc7a5 icet: add variants to enable 'opengl' and shared libraries. (#27281) 2022-02-11 09:26:29 +00:00
Gilles Grospellier
a783f92fba dotnet-core-sdk: add v6.0.2. (#28843) 2022-02-11 10:21:03 +01:00
Sergey Kosukhin
b11767de48 eccodes: update package (#28849)
* eccodes: modernize the package

* eccodes: add patch fixing location of NetCDF

* eccodes: add variant 'shared'

* eccodes: enable building with NAG compiler

* eccodes: add property 'libs'

* eccodes: add variant 'definitions'

* eccodes: add variant 'samples'

* eccodes: add variant 'tools'
2022-02-11 10:10:31 +01:00
haralmha
1e494eec2f cool: add v3.3.10 (#28858)
Co-authored-by: Harald Minde Hansen <harald.minde.hansen@cern.ch>
Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
2022-02-11 09:41:45 +01:00
Olivier Cessenat
5b71839127 subversion: add the external find feature using svn (#28862) 2022-02-11 09:40:29 +01:00
kwryankrattiger
a45c7c185b Ecp sdk update package contraints (#28693)
* ECP-SDK: Require HDF5 1.12

* ECP-SDK: Require SDK spec for SDK packages
2022-02-11 09:35:30 +01:00
Seth R. Johnson
c16ce9408e qt: patch version 5 on macOS 12 SDK (#28865)
Note that the SDK is not the same as the system version: using
apple-clang@13 is a better match than `os=monterey` since this actually
fails on bigsur as well, as long as xcode 13 is being used.
2022-02-11 09:31:37 +01:00
Ben Darwin
4c396d2cee minc-toolkit: fix perl dependencies (#28868) 2022-02-11 09:30:36 +01:00
Sergey Kosukhin
c80c92aa39 serialbox: add new package (#28872) 2022-02-11 09:23:47 +01:00
kwryankrattiger
cba918c081 Ascent: add dependency on adios2, remove deprecated variant (#28876)
Also update specs to be less complicated for dray/mfem/vtk-h.
Removed deprecated adios variant.
2022-02-11 09:14:06 +01:00
Bryan Herman
37728900e6 PVM package: fix missing install files and runtime env (#28851) 2022-02-10 18:03:11 -08:00
Carlos Bederián
b547819c40 ucx package: add version 1.12.0 (#28752) 2022-02-10 17:53:42 -08:00
Jon Rood
e9b50324cf trilinos: add rocm_rdc variant (#28873)
* Add rocm_rdc variant to trilinos.

* Fix syntax error.
2022-02-10 16:53:22 -07:00
eugeneswalker
8d8822f749 arborx +rocm: use hipcc and depend on rocthrust (#28875) 2022-02-10 15:39:40 -08:00
Seth R. Johnson
2fa6cd6d23 macOS: always set MACOSX_DEPLOYMENT_TARGET (#28797)
* core: Make platform environment an instance not class method

In preparation for accessing data constructed in __init__.

* macos: set consistent macosx deployment target

This should silence numerous warnings from mixed gcc/macos toolchains.

* perl: prevent too-new deployment target version

```
*** Unexpected MACOSX_DEPLOYMENT_TARGET=11
***
*** Please either set it to a valid macOS version number (e.g., 10.15) or to empty.
```

* Stylin'

* Add deployment target overrides to failing autoconf packages

* Move configure workaround to base autoconf package

This reverts commit 3c119eaf8b4fb37c943d503beacf5ad2aa513d4c.

* Stylin'

* macos: add utility functions for SDK

These aren't yet used but should probably be added to spack debug
report.
2022-02-10 23:22:30 +00:00
Adam J. Stewart
e502a264b5 MAGMA: declare cuda_arch support conflicts (#28811) 2022-02-10 16:52:23 -06:00
Harmen Stoppels
93e7efdc42 hsakmt-roct: dont look for libudev or compiler support libs (#28861) 2022-02-10 23:04:54 +01:00
Manuela Kuhn
16d1746fc3 py-llvmlite: add 0.38.0 (#28822) 2022-02-10 15:26:35 -06:00
Massimiliano Culpo
4437ff1fc3 Stabilize the concretization of ecp-data-vis-sdk by preferring conduit@0.7.2 (#28871) 2022-02-10 21:45:07 +01:00
Massimiliano Culpo
e6e109cbc5 ASP-based solver: reduce input facts and add heuristic (#28848)
* Remove node_target_satisfies/3 in favor of target_satisfies/2

When emitting input facts we don't need to couple target with
packages, but we can emit fewer facts independently and let
the grounder combine them.

* Remove compiler_version_satisfies/4 in favor of compiler_version_satisfies/3

When emitting input facts we don't need to couple compilers with
packages, but we can emit fewer facts independently and let
the grounder combine them.

* Introduce heuristic in the ASP-program

With heuristic we can drive clingo to make better
initial guesses, which lead to fewer choices and
conflicts in the overall solve
2022-02-10 11:37:10 -08:00
eugeneswalker
81a6d17f4c e4s: new specs: nccmp, nco, wannier90, lammps (#28833) 2022-02-10 10:47:19 -08:00
eugeneswalker
1e4c08f3a5 llvm-doe: rename @clacc to @develop.clacc for proper version matching (#28859) 2022-02-10 10:08:54 -08:00
Olivier Cessenat
8b39aa1b50 cvs: add the external find feature for cvs (#28863) 2022-02-10 12:35:22 -05:00
Christoph Junghans
5206bca19b lammps: add new versions (#27462)
* lammps: add new versions
2022-02-10 11:37:21 -05:00
Seth R. Johnson
92b26257f4 Fix CMakePackage.define for libs/headers (#28838)
The 'libs' property returned by a spec is not a list nor tuple.

Closes #28836.
2022-02-10 13:43:22 +00:00
luker
fa38af285c Adding support for rocmcc to cray-libsci package (#28601) 2022-02-10 10:50:33 +01:00
Greg Becker
130354b867 spack audit: fix spurious failures for target/platform conflicts (#28860) 2022-02-10 09:10:23 +01:00
Tamara Dahlgren
36ef59bc67 Tests: move has_test_method to spack.package (#28813) 2022-02-09 22:27:48 -08:00
Mark Grondona
634cba930e flux-core: add v0.34, v0.35 and deprecate v0.27.0 and earlier (#28852)
* flux-core: add versions 0.34.0 and 0.35.0

* flux-core: deprecate versions <= 0.27.0
2022-02-09 16:12:39 -08:00
Massimiliano Culpo
549c785227 Detecting "Cray" as "linux" during bootstrap (#28726)
* bootstrap: avoid detecting "Cray" and treat the platform as "linux"

* bootstrap: create a proper context manager to disable cray
2022-02-09 17:41:11 -05:00
Cory Bloor
a582670e15 rocrand: add spack test support and cleanup (#27437) 2022-02-09 14:30:56 -07:00
Robert Cohn
7f1759b52e Remove danvev as maintainer of intel packages (#28806)
* Remove danvev as maintainer of intel packages
* Update hash to trigger gitlab again
2022-02-09 09:51:36 -08:00
Olivier Cessenat
d4ca803fc5 freetype: add 2.11.1 and update Intel conflict (#28606) 2022-02-08 21:34:38 +01:00
Massimiliano Culpo
ffa58a20c6 CI: pin the version of pathlib to v2.3.6 (#28832) 2022-02-08 20:00:20 +00:00
G-Ragghianti
500e05ee50 SLATE package: tests (#28723)
This improves the stand-alone tests for slate by providing most
of the dependencies to the test framework and enabling stand-alone
tests on all versions except the oldest.
2022-02-08 10:30:57 -08:00
Toyohisa Kameyama
c1b51d6e99 fujitsu frontistr: New package (#28514)
* fujitsu-frontistr: new package.

* Add frontistr@5.3
Add fujitsu-frontistr static variant
style fix.

* update copyrigght year.
2022-02-07 18:42:26 -08:00
Michael Bentley
e97bffc3e8 flit: remove dependency from development branch version (#28789) 2022-02-07 18:35:18 -07:00
Adam J. Stewart
457fe842f0 py-scipy: add v1.8.0 (#28798) 2022-02-07 16:35:32 -07:00
Adam J. Stewart
1809a122ef py-pymumps: remove install_options (#28452) 2022-02-07 14:27:17 -08:00
Axel Huebl
8430e28a52 AMReX: +tiny_profile (#28785)
* AMReX: +tiny_profile

The tiny profiler options in AMReX are by default off but needed
by WarpX. Adds a new variant to control it.

* Add Erik Palmer as Co-Maintainer

... so he receives pings on updates of the package for review.
2022-02-07 15:15:25 -07:00
Tim Haines
c791ddc742 libiberty: add versions from v2.34.1 to v2.37 (#28792) 2022-02-07 06:12:08 -07:00
Harmen Stoppels
9a194dd0a9 Bump ca-certificates-mozilla (#28803) 2022-02-07 06:11:50 -07:00
VladimirUspenskii
0ce71b38b0 Add oneAPI packages from the 2022.1.2 release (#28750)
Co-authored-by: Robert Cohn <rscohn2@gmail.com>
Co-authored-by: Robert Cohn <robert.s.cohn@intel.com>
2022-02-07 14:01:50 +01:00
Stephen Sachs
14902a5821 intel-mkl: BLACS with intel-oneapi-mpi (#28476)
Identify the correct BLACS libaries when `intel-oneapi-mpi` is used.
2022-02-07 13:26:20 +01:00
Seth R. Johnson
efc35c2ffc gcc: fix build on apple-clang@13 (#28801) 2022-02-07 13:04:37 +01:00
Jordan Galby
37ae4c0fdb Support config variables in config.yaml extensions paths (#17772) 2022-02-07 11:40:52 +01:00
Adam J. Stewart
f3139555b1 py-torch: update dep constraints (#28743)
The version of the ONNX submodule was updated between the PyTorch
1.9 and 1.10 releases, which fixed builds with newer protobuf but
broke builds with older protobuf.

Also this adds minimum version reqs for numpy/typing-extensions
(which were not present before).
2022-02-06 21:33:12 -08:00
Harmen Stoppels
aa5e1a0723 git: new versions (#28777) 2022-02-06 10:58:17 -08:00
Seth R. Johnson
6e36c71d68 Fix GCC 8 build on macOS bigsur %apple-clang@12.0.5 (#28795)
* gcc: revise patch range on darwin

* gcc: add conflict to work around bootstrap failure

closes #23296 . See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100340
.

```
Comparing stages 2 and 3
Bootstrap comparison failure!
gcc/tree-ssa-operands.o differs
gcc/tree-ssanames.o differs
gcc/ipa-inline.o differs
gcc/tree-ssa-pre.o differs
gcc/gimple-loop-interchange.o differs
...
```
639 total differences.

* gcc: bump conflict up to correct later version
2022-02-06 07:48:16 -05:00
Axel Huebl
d82dcd35b3 WarpX: add v22.02 (#28742) 2022-02-04 23:53:51 -07:00
Toyohisa Kameyama
797c061743 openfdtd: add version 2.6.3, 2.7.1, 2.7.3 and support Fujitsu Compiler. (#28472) 2022-02-04 11:54:39 -08:00
Toyohisa Kameyama
c29e6dbd20 wrf: Add New version, support fujitsu compiler, refactor and bug fix. (#28567)
* wrf: Add version 4.3, support fujitsu compioler, output build log, and fix to build diffwrf.
2022-02-04 11:53:59 -08:00
Toyohisa Kameyama
cccd1ce376 atompaw: use autotoolsPackage and support Fujitsu compiler. (#28471)
* atompaw: use autotoolsPackage and support Fujitsu compiler.
2022-02-04 11:50:55 -08:00
Harmen Stoppels
73077f3a67 database: fix reindex with uninstalled deps (#28764)
* Fix reindex with uninstalled deps

When a prefix of a dep is removed, and the db is reindexed, it is added
through the dependent, but until now it incorrectly listed the spec as
'installed'.

There was also some questionable behavior in the db when the same spec
was added multiple times, it would always be marked installed.

* Always reserve path

* Only add installed spec's prefixes to install prefixes set

* Improve warning, and ensure ensure only ensures

* test: reindex with every file system remnant removed except for the old index; it should give a database with nothing installed, including records with installed==False,external==False,ref_count==0,explicit=True, and these should be removable from the database
2022-02-04 19:31:39 +00:00
Massimiliano Culpo
5881a03408 Use Spec.constrain to construct spec lists for stacks (#28783)
* stacks: add regression tests for matrix expansion

* Use constrain semantics to construct spec lists for stacks

* Fix semantics for constraining an anonymous spec. Add tests
2022-02-04 19:17:23 +00:00
Axel Huebl
d668dea97d WarpX/HiPACE: noacc PSATD also needs FFTW (#28756)
Forgot to add that `compute=noacc` also needs FFTW3 for PSATD builds.
2022-02-04 10:59:47 -08:00
Valentin Volkl
45a285a751 py-kubernetes: add new versions up to v21.7.0 (#28687)
* py-kubernetes: add new versions up to v21.7.0

* py-kubernetes: update python dependency
2022-02-04 11:25:10 -06:00
Marko Kabic
7af48f4570 Adding new package: COSTA (#28727) 2022-02-04 10:02:32 -07:00
Glenn Johnson
d0019d7049 cntk: fix build and add comments (#28676) 2022-02-04 10:56:21 -06:00
Adam J. Stewart
caa1a5cec7 py-mpi4py: fix install_options (#28759) 2022-02-04 11:22:11 +01:00
Axel Huebl
172ec0e3a1 py-warpx: needs no py-cmake (#28761)
Since in Spack we pull binaries out of the `warpx` package, we don't
need `py-cmake` to build `py-warpx`.
Generally, `py-cmake` in `pyproject.toml` is just a mean for us to
tell `pip` to make a `cmake` CLI tool available.
2022-02-04 11:21:32 +01:00
eugeneswalker
4c04a0c0b7 e4s ci: uncomment variorum following pr #28754 (#28763) 2022-02-04 11:15:35 +01:00
Adam J. Stewart
9ca4c10b34 py-numpy: add v1.22.2 (#28771) 2022-02-04 11:11:41 +01:00
Tim Haines
fda89b3b4c flit: add version for development branch (#28773) 2022-02-04 11:10:11 +01:00
Tim Haines
1ba6e27830 fpchecker: add version for master branch (#28774) 2022-02-04 11:09:22 +01:00
Tim Haines
9c686a12c1 pruners-ninja: Add version for master branch (#28765) 2022-02-03 14:59:42 -08:00
Weiqun Zhang
c7def4121a amrex: add v22.02 (#28757) 2022-02-03 14:37:52 -08:00
Pieter Ghysels
bdf37db9e4 STRUMPACK new versions 6.3.0, 6.2.1, 6.2.0 (#28762)
* Add new versions for STRUMPACK, newer ButterflyPACK dependency

* small fix
2022-02-03 12:42:36 -08:00
liuyangzhuan
f503b3770b Bump butterflypack versions to v.2.1.0 (#28758)
* added package gptune with all its dependencies: adding py-autotune, pygmo, py-pyaml, py-autotune, py-gpy, py-lhsmdu, py-hpbandster, pagmo2, py-opentuner; modifying superlu-dist, py-scikit-optimize

* adding gptune package

* minor fix for macos spack test

* update patch for py-scikit-optimize; update test files for gptune

* fixing gptune package style error

* fixing unit tests

* a few changes reviewed in the PR

* improved gptune package.py with a few newly added/improved dependencies

* fixed a few style errors

* minor fix on package name py-pyro4

* fixing more style errors

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

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

* resolved a few issues in the PR

* fixing file permissions

* a few minor changes

* style correction

* minor correction to jq package file

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

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

* fixing a few issues in the PR

* adding py-selectors34 required by py-pyro4

* improved the superlu-dist package

* improved the superlu-dist package

* moree changes to gptune and py-selectors34 based on the PR

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

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

* improved gptune package: 1. addressing comments of tldahlgren in PR 26936; 2. adding variant openmpi

* fixing style issue of gptune

* changing file mode

* improved gptune package: add variant mpispawn which depends on openmpi; add variant superlu and hypre for installing the drivers; modified hypre package file to add a gptune variant

* fixing style error

* corrected pddrive_spawn path in gptune test; enforcing gcc>7

* fixing style error

* setting environment variables when loading gptune

* removing debug print in hypre/package.py

* adding superlu-dist v7.2.0; fixing an issue with CMAKE_INSTALL_LIBDIR

* changing site_packages_dir to python_platlib

* not using python3.9 for py-gpy, which causes due to dropped support of tp_print

* more replacement of site_packages_dir

* fixing a few dependencies in gptune; added a gptune version

* adding url for gptune

* minor correction of gptune

* updating versions in butterflypack

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-03 12:42:21 -08:00
Matthieu Dorier
4a308d0d4b [py-xonsh] added py-xonsh package (#28746)
* [py-xonsh] added py-xonsh package

* [py-xonsh] change dependency to python 3.6

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-03 14:09:10 -06:00
eugeneswalker
48b2cf54cf variorum: needs jansson (#28754) 2022-02-03 10:45:19 -08:00
Mosè Giordano
5208fcf1ea libblastrampoline: Add versions 4.1.0, 5.0.0, 5.0.1 (#28732) 2022-02-03 11:55:48 +01:00
Chris White
98fe047671 Sundials: update version sha, add -D to cmake option (#28720) 2022-02-03 11:48:18 +01:00
Satish Balay
95f77dacd6 petsc, py-petsc4py: add versions 3.16.4 (#28729) 2022-02-03 11:47:34 +01:00
Harmen Stoppels
4134b318ac libgit2: add mmap variant, disabling it makes it work on filesystems that do not implement mmap (#28520) 2022-02-03 11:31:53 +01:00
liuyangzhuan
932408ac2b gptune: add v2.1.0 (#28739) 2022-02-03 11:02:46 +01:00
kwryankrattiger
5a640f9063 conduit: convert HDF5 constaint to compile flag (#28735) 2022-02-03 10:43:39 +01:00
Greg Sjaardema
7c5db7678a seacas: add v2022-01-27 (#28738) 2022-02-03 10:41:48 +01:00
Cyrus Harrison
cdf17fdfe5 conduit: add v0.8.2 (#28730) 2022-02-03 10:39:46 +01:00
Harmen Stoppels
2ada0fa5a2 julia: fix gfortran version detection (#28741) 2022-02-03 10:37:14 +01:00
Nils Vu
18b83c3833 Change my name (#28737) 2022-02-02 15:21:45 -08:00
Glenn Johnson
22b7d9cf67 llvm: patch for gcc-11 (#28547)
* llvm: patch for gcc-11

- added llvm-gcc11.patch
- adjusted version constraints on existing missing-includes patch.

* remove unnecessary comment

Co-authored-by: Tom Scogland <scogland1@llnl.gov>
2022-02-02 13:32:16 -07:00
Adam J. Stewart
fa8c9e4939 py-torch: avoid build issue with newer protobuf (#28721) 2022-02-02 12:23:47 -07:00
Adam J. Stewart
3576e5f3d6 Revert "Deprecate Python 2 installations" (#28411)
This reverts commit 7b76e3982f.
2022-02-02 10:12:33 -08:00
Massimiliano Culpo
cd04109e17 Add a "sticky" property to variants (#28630)
* Add sticky variants

* Add unit tests for sticky variants

* Add documentation for sticky variants

* Revert "Revert 19736 because conflicts are avoided by clingo by default (#26721)"

This reverts commit 33ef7d57c1.

* Add stickiness to "allow-unsupported-compiler"
2022-02-02 10:05:24 -08:00
dependabot[bot]
dd7acecf3d build(deps): bump docker/build-push-action from 2.8.0 to 2.9.0 (#28719)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.8.0 to 2.9.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](1814d3dfb3...7f9d37fa54)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-02-02 11:57:31 +01:00
Carlos Bederián
d3bfdcb566 gromacs: Add versions 2021.4 and 2021.5 (#28722) 2022-02-02 03:44:12 -07:00
Marcus Boden
e1ec08b749 Snakemake: add v6.15.1 (#28724) 2022-02-02 10:32:36 +01:00
Glenn Johnson
3b5afef842 new packages: py-rst2pdf and py-smartypants (#28697)
* new packages: py-rst2pdf and py-smartypants

The py-smartypants package is a dependency of py-rst2pdf.

* add missing dependencies
2022-02-01 23:56:09 -07:00
Sebastian Pipping
b9bb303063 expat: Add latest release 2.4.4 with security fixes (#28692) 2022-02-01 16:29:29 -07:00
Adam J. Stewart
7144af9c3a py-argparse: skip dep for newer Python (#28718) 2022-02-01 15:38:11 -07:00
Rao Garimella
50c6075509 Jali package: add version 1.1.6 (#28545)
Boost dependency is only needed for @:1.1.5
2022-02-01 14:22:24 -08:00
Harmen Stoppels
b93b64ca67 TermStatusLine: fix python 2.7 and add test (#28715)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-02-01 21:59:29 +01:00
Massimiliano Culpo
7c31d4d279 CI: macOS try to build latest GCC (#28709) 2022-02-01 21:29:27 +01:00
Nils Leif Fischer
4a29512113 py-rich: fix installation with poetry (#28710) 2022-02-01 14:19:40 -06:00
Teodor Nikolov
9cf20b9d32 Sarus: Add 1.4.1, use commits instead of tarballs, tests (#28705)
- To retrieve the correct spack version we need to get it from the git
  repo.

- Recommend installing the package with root for production

- Add Tomas as maintainer to sarus' spack package

- Add the option to disable unit tests in latest versions
2022-02-01 11:49:58 -07:00
Harmen Stoppels
165f686400 lua: add fetcher for luarocks (#28707) 2022-02-01 10:44:51 -07:00
Jose E. Roman
427d281d15 SLEPc: add v3.16.2 (#28706) 2022-02-01 09:38:28 -07:00
estewart08
0a595d488b rocm-openmp-extras: add v4.3.1 and v4.5.0 (#27653) 2022-02-01 16:39:33 +01:00
kwryankrattiger
099a16ed8f ParaView/VTK: Update hdf5 constraints (#28691)
hdf5@1.10: is required for the new version of vtkHDFReader
2022-02-01 09:50:11 -05:00
kwryankrattiger
eb7bc7fc4b Ascent/Conduit: Update the +fortran build config (#28646)
Do not silently turn off fortran support based on checking if
a fortran compiler exists. Let the build fail if there is no
working fortran compiler.
2022-02-01 07:44:48 -07:00
Adam J. Stewart
bdfcf7c92b py-torchgeo: specify libtiff variants (#28681) 2022-02-01 08:43:54 -06:00
Cyrus Harrison
3f6d045c53 conduit: add new variant and hcfg entry (#27822) 2022-02-01 13:53:30 +01:00
Cyrus Harrison
b300a9d7a5 dray: add new variant and host config entry (#28598) 2022-02-01 13:52:12 +01:00
Torbjörn Lönnemark
218b1c153c p7zip: fix build on gcc 11 (#28376)
Fixes the following build failure when building with gcc 11:

         478    ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
      >> 479    ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
         480      308 |           numMethods++;
         481          |           ^~~~~~~~~~
      >> 482    ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
         483      318 |         numMethods++;
         484          |         ^~~~~~~~~~
2022-02-01 12:26:00 +01:00
Nils Leif Fischer
c3bad2a935 gettext: find external (#28610) 2022-02-01 12:25:02 +01:00
Brent Huisman
dedf4a1470 Add version v0.6 to Arbor package. (#28628)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-02-01 12:24:28 +01:00
Sergey Kosukhin
0e28356aba Eccodes: update urls and add new versions (#28614) 2022-02-01 12:20:06 +01:00
Massimiliano Culpo
80a3f01bbb gcc: allow building 11.2.0 on macOS (#28662) 2022-02-01 11:19:24 +00:00
Cyrus Harrison
f5a70dece8 ascent: add patch for gcc 10 + 11 (#28592) 2022-02-01 12:18:48 +01:00
Mikhail Titov
d7e7542486 Update package versions: RADICAL-Cybertools (RE, RP, RS, RU) (#28523)
* rct: update packages (RE, RP, RS, RU) with new versions

* rct: minor version release for RP

* rct: fixed versions for dependencies (RS and RU)
2022-02-01 11:35:14 +01:00
Glenn Johnson
a3f0c3ca93 saga-gis: tweak dependencies and deprecate some versions (#28677)
- deprecate versions 2 and 3
- set needed opencv variants
- adjust proj constraint
- patch header path for opencv
2022-02-01 11:09:50 +01:00
Glenn Johnson
ab2187780b libdc1394: update dependencies and add libraw1394 dependency (#28675) 2022-02-01 11:09:00 +01:00
Adam J. Stewart
7ac66547da py-black: add v22.1.0 (#28680) 2022-02-01 11:06:24 +01:00
Pat Riehecky
4b52f0e4d7 jsonnet: add new package (#28645)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-02-01 10:22:52 +01:00
Mikael Simberg
d8dcb91297 pika: add v0.1.0 (#28684)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-02-01 10:20:01 +01:00
Valentin Volkl
5e8ef57a82 alpaka: add v0.8.0 (#28689) 2022-02-01 10:19:40 +01:00
Vicente Bolea
c9e135729c vtk-m: add v1.7.1 release (#28690) 2022-02-01 10:19:19 +01:00
Nils Leif Fischer
8ccc4df6ff charmpp: default backend to 'multicore' on macOS (#28443) 2022-02-01 10:17:48 +01:00
Tom Scogland
545a429646 llvm: add llvm_config helper (#28670)
Add a helper as a base to build better libs etc. methods
2022-02-01 09:58:39 +01:00
Paul Kuberry
bff5d253cf xyce: add 'plugin' variant (#28698) 2022-02-01 09:49:57 +01:00
Ryan Marcellino
3456a355ce maven: add v3.8.4 (#28699) 2022-02-01 09:48:52 +01:00
Dylan Jude
aedb106c5f samrai: add "--enable-shared" option as "+shared" (#28695) 2022-02-01 09:48:19 +01:00
Adam J. Stewart
a4a23ff713 py-torch: fix python_platlib reference (#28565) 2022-02-01 09:44:08 +01:00
Adam J. Stewart
728ac61bd8 pygmo: fix build (#28702) 2022-02-01 09:38:06 +01:00
Glenn Johnson
21524f5149 opencv: add new version, variant, and patch (#27374)
* opencv: add new version, variant, and patch

- added version 4.5.4
- added tesseract variant
- added patch to not add system paths

* Add leptonica depends and contrib conflicts

* Add dependencies for 1394 support

- new package: libraw1394
- add sdl dependency to libdc1394
- add conflict for openjpeg and jasper

* Adjust dependencies and conflicts for opencv modules

* rewrite of opencv

- all prebuilt apps are now variants and can be installed
- core is no longer a variant. It was always built anyway so it was not
  really a variant.
- contrib is no longer a variant. All of the contrib modules are now
  available as variants.
- components that can not be built with Spack are no longer variants.
  They are set to 'off' to prevent pulling from system.
- handle the case where a module and a component have the same name
- use `with when` framework
- adjust dependencies and conflicts
- new package: libraw1394
- have libdc1394 depend on libraw1394
- patch to find clp
- patch to find onnx
- patch for cvv to find Qt
- format with black

* Incorporate recommended changes

- fix variants and dependencies on packages that depend on opencv
- remove opencv-3.2 and patches
- add some new patches to handle different versions
- cntk needs further work
- the openvslam package was markde deprecated as it is no longer an
  active project and the repository has no code

* Remove gmake dependency.

* Remove sdl support

SDL is only used in an example case, but the examples are not built.

* remove openvslam

* Remove opencv+flann variant from 3dtk

* Back out cfitsio constraint from py-astropy

* remove opencv+flann variant from dlib

* remove boost constraint from 3dtk

* Remove non-opencv related bohrium changes

* Adjustments for cntk

- protobuf constraint at version 3.10
- need specific variants for opencv
- improve patch

* Deprecate CNTK package

* variant tweaks

- added appropriate conflicts for cublas
- made cuda/cudev relationship explicit
- moved openx to pending components as it needs an openvx package

* fix isort style error

* Use date version from kaldi rather than commit

* Revert changes from a bad rebase

* Add +flann to 3dtk and dlib

* Use compression support with libtiff

* remove `+datasets` from opencv dependency 

The py-torchgeo package does not need opencv+datasets.

* fix typo

zip --> zlib
2022-01-31 21:24:03 -06:00
eugeneswalker
6e99f328b6 e4s ci: add spec: gptune (#28604) 2022-01-31 18:44:25 -08:00
eugeneswalker
d6d29f7c09 mesa18: depends on python@3.8.99 max (#28345) 2022-01-31 13:20:33 -07:00
Pat Riehecky
a5d0687115 Update Packages: py-asgiref, py-h11, py-websockets (#28649) 2022-01-31 14:13:44 -06:00
iarspider
a909f2d910 Add checksum for py-cryptography 3.2.1 (#28685) 2022-01-31 14:11:41 -06:00
liuyangzhuan
3b64ca30c7 changing site_packages_dir to python_platlib for gptune (#28669)
* added package gptune with all its dependencies: adding py-autotune, pygmo, py-pyaml, py-autotune, py-gpy, py-lhsmdu, py-hpbandster, pagmo2, py-opentuner; modifying superlu-dist, py-scikit-optimize

* adding gptune package

* minor fix for macos spack test

* update patch for py-scikit-optimize; update test files for gptune

* fixing gptune package style error

* fixing unit tests

* a few changes reviewed in the PR

* improved gptune package.py with a few newly added/improved dependencies

* fixed a few style errors

* minor fix on package name py-pyro4

* fixing more style errors

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

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

* resolved a few issues in the PR

* fixing file permissions

* a few minor changes

* style correction

* minor correction to jq package file

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

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

* fixing a few issues in the PR

* adding py-selectors34 required by py-pyro4

* improved the superlu-dist package

* improved the superlu-dist package

* moree changes to gptune and py-selectors34 based on the PR

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

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

* improved gptune package: 1. addressing comments of tldahlgren in PR 26936; 2. adding variant openmpi

* fixing style issue of gptune

* changing file mode

* improved gptune package: add variant mpispawn which depends on openmpi; add variant superlu and hypre for installing the drivers; modified hypre package file to add a gptune variant

* fixing style error

* corrected pddrive_spawn path in gptune test; enforcing gcc>7

* fixing style error

* setting environment variables when loading gptune

* removing debug print in hypre/package.py

* adding superlu-dist v7.2.0; fixing an issue with CMAKE_INSTALL_LIBDIR

* changing site_packages_dir to python_platlib

* not using python3.9 for py-gpy, which causes due to dropped support of tp_print

* more replacement of site_packages_dir

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-01-31 11:21:06 -08:00
Massimiliano Culpo
68cf57d0d0 Fix SECURITY.md file by adding v0.17.x to supported versions (#28661) 2022-01-31 10:04:06 -08:00
Harmen Stoppels
f080e593cb julia: add targets constraint to llvm (#28682) 2022-01-31 06:29:23 -07:00
Paul Kuberry
fff9a29401 trilinos: Fix cxxstd effects for Trilinos versions <13 (#28663) 2022-01-31 00:41:21 -07:00
Adam J. Stewart
1679274ac2 py-horovod: add py-tensorflow-estimator dependency (#28674) 2022-01-29 20:22:19 -06:00
Jen Herting
c78a754e5d New package: py-kaldiio (#28643)
* espnet first build with depends

* fixed flake8

* updated to lastest version and removed python dependency

* changed to pypi and version 2.17.2

* [py-kaldiio] depends on py-pytest-runner

* [py-kaldiio] updated copyright

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-01-29 12:52:23 -06:00
Valentin Volkl
813a0d9b19 prmon: better testing, fix checksums (#28672)
* prmon: make sure integration tests do not run in parallel

Some integration tests fail if not run on an otherwise idle machine.

* prmon: run unittests based on googletest

* prmon: fix checksums
2022-01-29 14:32:57 +01:00
Seth R. Johnson
aece700e14 superlu: simplify cmake logic and fix cuda conflict (#28658)
* superlu-dist: use CMakePackage helper functions

* Fix #28609

It's OK to have CUDA in the dependency tree as long as it's not being
used for superlu-cuda.
2022-01-29 12:58:09 +00:00
Pat Riehecky
a98a261b74 Update Packages: py-celery py-kombu py-amqp py-pytz py-click-plugins (#28648) 2022-01-28 16:47:10 -07:00
Pat Riehecky
6f3670d1eb New Package: py-python-dotenv (#28651) 2022-01-28 14:23:25 -07:00
Pat Riehecky
f189e5eb1c Update Package: py-pre-commit (#28665) 2022-01-28 14:36:48 -06:00
Massimiliano Culpo
bc06c1206d macholib, altgraph: update vendored dependency (#28664) 2022-01-28 10:55:12 -08:00
Massimiliano Culpo
4bd761d1d5 Update actions/setup-python to latest version (#28634) 2022-01-28 14:17:59 +01:00
Graeme A Stewart
02b48f5206 prmon: add up to v3.0.1, add new maintainers (#28657)
* Update prmon package to latest versions

Add recent versions of the prmon package
Add the spdlog dependency for versions >=3
Add package developers as additional maintainers
Update name of development branch to 'main'

* Correct checksum for v3.0.1
2022-01-28 04:42:02 -07:00
Michele Martone
cce8f3faf5 librsb: added v1.2.0.11/v1.3.0.0 (#28637) 2022-01-28 11:46:54 +01:00
Tim Haines
5519289f1d fpchecker: add v0.3.5 (#28639)
Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
2022-01-28 11:44:18 +01:00
Nils Leif Fischer
d80241a203 spectre: allow disabling debug symbols (#28511)
* spectre: allow disabling debug symbols

* spectre: fix PCH builds

* spectre: support builds with shared libs
2022-01-28 11:40:02 +01:00
Desmond Orton
1e1e3ae80a metabat: switch to CMakePackage, deprecate old versions (#28384) 2022-01-28 11:34:35 +01:00
kwryankrattiger
a3755e5c76 ParaView: Require Ninja for builds (#28650) 2022-01-28 11:30:23 +01:00
Satish Balay
4c3bc0d3dc slepc: switch from using -with-arpack-dir to --with-arpack-include/lib options (#28654)
Also save configure.log, make.log
2022-01-28 11:20:35 +01:00
Adam J. Stewart
46b9911289 py-torch: add v1.10.2 (#28653) 2022-01-28 11:01:17 +01:00
Vasileios Karakasis
e06319a3dc Add more ReFrame versions (#28655) 2022-01-28 02:42:07 -07:00
Desmond Orton
bf80a9f83a at-spi2-core: patch for version 2.40.1 and beyond (#28497)
at-spi2-core is automatically selecting dbus-broker and enabling systemd if it finds dbus-broker-launch which some systems might have even without systemd being part of the actual spack environment. This is not ideal for a spack package.
2022-01-28 10:40:26 +01:00
Tom Vander Aa
f7f7a168e9 ucx backtrace-detail variant (#28625)
ucx has the configure option --[enable|disable]-backtrace detail.
This option is not explicitely set by spack, causing problems on my system, because
./configure does not find the bfd.h header file / libbfd.so library.

Added variant + dependencies (binutils). Disabled by default
2022-01-28 10:35:10 +01:00
liuyangzhuan
80f92cfdde gptune: add variants (mpispawn, hypre) (#27733)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-01-28 10:31:56 +01:00
Toyohisa Kameyama
693f0958b5 trilinos: version 12 cxxstd flags (#28582)
* trilinos: version 12 requires cxxstd=11

* trilinos: use cmake version 3.21 or old when trilinos version 12

* conflict cxxstd=17 and cmake@3.2.[01]

* trilinos: version 12 requires cxxstd=11.

* Trilinos_CXX11_FLAGS is set to ' ' to avoid inject C++11 flag.

* set Trilinos_CXX11_FLAGS only version 12 or older.
2022-01-28 01:29:18 -07:00
Seth R. Johnson
2fd26be988 Trilinos: minimize E4S CUDA build (#28591)
* trilinos: update dependencies

Use the tribits deps to clarify some dependencies, and group some together
using `with` statements, eliminating some transitive conflict duplication.

* trilinos: Restricit cuda incompatibility

* e4s: vastly reduce number of packages in trilinos-cuda build

Not clear who the customers of cuda-enabled trilinos are, or what options
they need, or which sets of options conflict...

* e4s: remove ~wrapper from trilinos+cuda
2022-01-27 21:08:15 -07:00
Jen Herting
405adce5ae New package: py-wordcloud (#28482)
* [py-wordcloud] created template

* [py-wordcloud]

- added dependencies
- added homepage
- added description
- removed fixmes
- updated copyright
2022-01-27 15:08:57 -07:00
Jen Herting
a2170c9e04 New package: py-spectral (#28481)
* simple build of spectral

* fixed trailing whitespace for style

* [py-spectral] updated copyright

* [py-spectral] runtime imports py-numpy

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-01-27 14:57:14 -07:00
Jen Herting
bae2a2660e New package: py-deepecho (#28488)
* [py-deepecho] created template

* [py-deepecho]

- added dependencies
- added homepage
- added description
- removed fixmes
- updated copyright

* [py-deepecho] flake8

* [py-deepecho] removed .999

* [py-deepecho] added dependency on py-pytest-runner
2022-01-27 15:25:28 -06:00
Harmen Stoppels
08fb190264 python: 3.9.10, 3.10.2 (#28635) 2022-01-27 14:03:02 -07:00
Massimiliano Culpo
b9b1665cb2 Pin the version of "coverage" in CI to 6.2 (#28638)
Hotfix for coverage v6.3 blocking our CI workflows
2022-01-27 20:35:05 +01:00
Paul Kuberry
ec9748eaf3 xyce: Add cxxstd variant with only valid value of 11 (#28616) 2022-01-27 11:40:57 -05:00
Max Zeyen
28ea1bab68 gpi-space: add new package (#27989) 2022-01-27 07:35:20 -07:00
Gregory Lee
61ea456f5d conduit: add v0.8.1 and patch to add algorithm for std sort (#28618) 2022-01-27 12:26:18 +01:00
Tim Moon
71c8375862 Update CMake to 3.21 in LBANN-related projects (#28507)
* Update CMake to 3.21 in LBANN-related projects

* Allow CMake 3.17 for older versions of LBANN, Hydrogen, Aluminum
2022-01-27 12:21:45 +01:00
kwryankrattiger
8106983ddb Vtkm kokkos variant (#28363)
* VTK-m: Make vtk-m consistent with ROCmPackage

* VTKm: Add kokkos variant

Specifying +kokkos will enable kokkos backend.
Specifying +kokkos with +rocm will require a kokkos with a ROCm backend.
Specifying +cuda enables VTK-m native CUDA backend. VTK-m native cuda backend
  is not compatible with the kokkos +cuda backend.

* VTK-m: Add cuda_native variant

Required to allow specifying a vtk-m spec the selects a
cuda_arch and predictably propagate that to the underlying kokkos
dependency.

This also makes explicit selecting kokkos with a cuda backend or using
the VTK-m cuda backend.
2022-01-27 01:08:13 -07:00
Nils Leif Fischer
28bda22e52 New packages: py-quaternionic and py-spherical (#28611) 2022-01-26 17:48:43 -05:00
kwryankrattiger
991438a242 Mesa(18): Use libllvm virtual package (#28365)
* Mesa(18): Use libllvm virtual package

* Mesa patch configuration

Patch Mesa to define LLVM_VERSION_SUFFIX if llvm is pre-release

* Patch llvm-config to define LLVM_VERSION_SUFFIX
2022-01-26 15:16:41 -05:00
Harmen Stoppels
92abffa2d4 cmake: new version 3.22.2 (#28608) 2022-01-26 11:28:00 -07:00
Massimiliano Culpo
3cf5df7e3b Ensure "spack unit-test" can bootstrap clingo (#28572) 2022-01-26 14:19:15 +01:00
Valentin Volkl
b700335be7 lhapdfsets: add new package (#25477) 2022-01-26 04:58:58 -07:00
haralmha
b7bb687d17 vbfnlo: use patch method and filter_file instead of patch directive (#28506)
* Patch only for @3.0.0beta5

* Replace version specific patch file with patch function

Co-authored-by: root <root@hahansencs8.cern.ch>
2022-01-26 11:16:02 +01:00
Harmen Stoppels
e3d62b2f7b Print 'Waiting for another process to install x, y, z' in distributed builds (#28535)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-01-26 10:42:08 +01:00
Seth R. Johnson
5300cbbb2e trilinos: Enable LAPACK functionality in amesos2 (#28577) 2022-01-25 17:30:40 -08:00
Richarda Butler
38a1036c46 Bugfix: Tasmanian stand alone test (#28496) 2022-01-26 01:10:28 +00:00
Ryan Marcellino
75db515af2 alluxio: new version v2.7.2 (#28589) 2022-01-25 19:46:37 -05:00
Adam J. Stewart
2ace2a750b Fix build of libnetworkit/py-networkit (#28458) 2022-01-25 17:07:43 -06:00
Cyrus Harrison
7134cab8c4 occa: new release 1.2.0 release, and commit refs for prior releases (#28590) 2022-01-25 13:26:32 -07:00
Adam J. Stewart
4c57503e7e py-tensorboard-plugin-wit: install wheel (#28566) 2022-01-25 14:00:17 -06:00
Daniele Cesarini
1f3f1100b3 New packages: BigDFT suite (#26853) 2022-01-25 10:35:09 -08:00
Seth R. Johnson
edb99a2b05 Nalu wind: simplify version dependencies with trilinos (#28588)
* nalu-wind: simplify trilinos variant requirements

* nalu-wind: simplify version dependencies

With spack versioning, 'master' < 'develop' and 'develop' > 2.18.2.
2022-01-25 12:22:21 -05:00
eugeneswalker
fe76d6563a tau: %clang needs cmake for build (#28531)
* tau%clang needs cmake for build

* specify cmake@3.14:
2022-01-25 09:18:56 -08:00
Mark Grondona
4af334fb7e flux-pmix: add new package (#28559)
* pmix: add v4.1.0

* flux-pmix: add flux-pmix package
2022-01-25 09:35:36 -07:00
Daniele Cesarini
bed3a69498 mosquitto, cjson: added new packages (#28550)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-01-25 05:08:29 -07:00
Kai Torben Ohlhus
b36920283d octave: add maintainer @siko1056 (#28584) 2022-01-25 04:33:02 -07:00
Mikael Simberg
5cfaead675 Rename hpx-local to pika (#28585) 2022-01-25 04:32:39 -07:00
Wouter Deconinck
79d28db558 geant4: GEANT4_INSTALL_DATA=OFF and depends_on geant4-data type=run (#28581)
* [geant4] set GEANT4_INSTALL_DATA=OFF

* [geant4] downgrade geant4-data dependency to type=run
2022-01-25 11:38:13 +01:00
Jordan Ogas
5cb10f7362 charliecloud: add v0.26 (#28571) 2022-01-25 11:07:43 +01:00
Kai Torben Ohlhus
13eee02b41 octave: add v6.4.0 (#28580) 2022-01-25 09:44:31 +01:00
Andrew Davison
9fd870388c py-lazyarray: add versions from 0.3.3 to 0.5.2 (#28574)
* py-lazyarray: add versions from 0.3.3 to 0.5.2

* Restore py-setuptools dependency since pip replaces distutils with setuptools
2022-01-24 12:26:31 -07:00
Mark Grondona
a40d064030 flux-core: add v0.32.0 and v0.33.0 (#28347)
Additional changes:

 - update documentation of C4.1 link
 - do not set FLUX_PMI_LIBRARY_PATH
 - remove unnecessary ",master" from depends_on()
2022-01-24 09:20:49 -08:00
Wouter Deconinck
520b80fd5d gaudi: add v36.1, v36.2 and v36.3 (#28078) 2022-01-24 09:08:29 -07:00
Daniele Cesarini
ebedf3f83b cassandra: add v4.0.1, changed download url (#28551) 2022-01-24 10:09:38 +01:00
Adam J. Stewart
947c270446 Resource stage: no space before colon (#28560) 2022-01-24 10:01:28 +01:00
Adam J. Stewart
1c12e964ac grep: prevent recursive symlink (#28561) 2022-01-24 10:00:31 +01:00
Adam J. Stewart
471fa04c4b py-pandas: add v1.4.0 (#28563) 2022-01-24 09:59:52 +01:00
Adam J. Stewart
68c23549b0 py-pillow: add v9.0.0 (#28564) 2022-01-24 09:59:32 +01:00
Peter Brady
20f2ee99bc glm: add develop version (#28499)
* Add a new version to track development

The released versions do not properly install via cmake which leads to
errors when linking against the library.  These upstream problems have
been addressed on the glm development branch.

* Move git to class level and remove redundant depends
2022-01-24 09:47:43 +01:00
Sebastian Ehlert
03ba35920d dftd4: add v3.3.0 (#28558) 2022-01-23 08:14:13 -07:00
Timo Heister
8c85f72322 aspect: development branch is called main now (#28512) 2022-01-23 13:37:17 +01:00
Todd Gamblin
ecfc57ea3e m4: move patches hosted at savannah into the repo (#28515)
These URLs were giving 404's to me and to some of our users --
they do not seem to be reliable, so moving them into the tree.
2022-01-23 13:35:05 +01:00
iarspider
7e5afd1e73 libzmq: add variants "docs", "libbsd" (#28503) 2022-01-23 13:27:18 +01:00
Erik Schnetter
03e93345b1 compose: add new package (#28371) 2022-01-23 12:18:29 +01:00
Erik Schnetter
065e445e4d openmpi: declare more build dependencies for @master (#28309) 2022-01-23 11:10:02 +01:00
Jordan Galby
b526eafa45 Fix spack -C command_line_scope with other flags (#28418)
The option `spack -C` was broken if another flag that touched config was
also set (`spack -C ... -d`, `-c config:...` etc...).
2022-01-23 11:02:13 +01:00
Peter Brady
551c44f0fd petaca: add shared library variant (#28543) 2022-01-23 10:44:29 +01:00
John Wohlbier
3893b90cb9 palisade: add a named version for the "fppe-logreg" branch (#28544)
Co-authored-by: John Wohlbier <jgwohlbier@sei.cmu.edu>
2022-01-23 10:43:32 +01:00
Wouter Deconinck
5ff72ca079 acts: add v15.0.1 (#28539)
This is a bugfix version only, for an issue observed in production environments.
2022-01-23 10:32:20 +01:00
Erik Schnetter
4d70e4f281 libfyaml: add v0.7.12 (#28555) 2022-01-23 10:17:12 +01:00
Wouter Deconinck
ffb3f3a20d Python: ensurepip install instead of upgrade (#28553) 2022-01-22 21:55:56 -06:00
Axel Huebl
c38d34223a openPMD-api: add version 0.14.4 (#28546) 2022-01-21 17:35:16 -08:00
Danny McClanahan
0c2de252f1 introduce llnl.util.compat to remove sys.version_info checks (#21720)
- also split typing.py into typing_extensions and add py2 shims
2022-01-21 12:32:52 -08:00
Sebastian Schmitt
796f5a3cbc Bump py-brian2 to 2.5.0.2 (#28533) 2022-01-21 13:34:23 -06:00
Sreenivasa Murthy Kolam
417227e1eb bump up the version for 3.10.5 release (#28536) 2022-01-21 09:53:37 -07:00
Seth R. Johnson
9ac207c901 vecgeom/veccore: fix version interdependency (#28164)
* vecgeom: require exact version of veccore

Fixes configure error from downstream package:
```
CMake Error at /rnsdhpc/code/spack/opt/spack/apple-clang/cmake/7zgbrwt/share/cmake-3.22/Modules/CMakeFindDependencyMacro.cmake:47 (find_package):
  Could not find a configuration file for package "VecCore" that is
  compatible with requested version "0.8.0".

  The following configuration files were considered but not accepted:

    /rnsdhpc/code/spack/var/spack/environments/celeritas/.spack-env/view/lib/cmake/VecCore/VecCoreConfig.cmake, version: 0.6.0
```

* veccore: add new versions
2022-01-21 13:11:12 +00:00
Bram Veenboer
bd43467cbf CUDA: add v11.6.0 (#28439) 2022-01-21 11:08:20 +00:00
Wouter Deconinck
9b803a00b3 [geant4-data] depends_on g4ensdfstate also @11 (#28388)
I guess that one got dropped by mistake in the geant4 upgrade...
2022-01-21 10:54:19 +00:00
Danny McClanahan
645b40b249 add six.raise_from() to preserve exception traceback (#28532)
* add six.raise_from() to preserve exception traceback

* add tests for code coverage
2022-01-21 00:24:12 -08:00
Scott Wittenburg
282fd57114 trilinos: conflict with cuda >= 11.6.0 (#28530) 2022-01-20 21:08:34 -05:00
Patrick Bridges
76b7095445 Add flags to cabana to enable hypre and heffte when they are part of … (#28517)
* Add flags to cabana to enable hypre and heffte when they are part of spec. Also add googletest to build dependencies

* Fixed mixed spaced and tabs

* Update package.py

* Update package.py

* Update package.py

* Modified to request specifically heFFTe version 2.0.0 due to
limitations in heFFTe cmakefiles.

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

Co-authored-by: Christoph Junghans <christoph.junghans@gmail.com>

* Integrated more heffte and hypre versions into cabana requests

Co-authored-by: Christoph Junghans <christoph.junghans@gmail.com>
2022-01-20 15:32:25 -07:00
Anton Kozhevnikov
5719b40ded SIRIUS: add Eigen dependency (#28525)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-01-20 22:10:03 +01:00
Erik Schnetter
de7de9778f hdf5: Add missing "close" statement (#28317)
* hdf5: Add missing "close" statement

* hdf5: Apply fortran-kinds patch only to @1.10.7
2022-01-20 14:11:34 -06:00
Harmen Stoppels
9a23fbbcf0 Julia: build without vendored dependencies (#27280)
* Julia unvendored

* restrict LBT
2022-01-20 11:07:04 -05:00
Mosè Giordano
1a5add3021 libblastrampoline: Add v4.0.0 and co-maintainer (#28521) 2022-01-20 05:08:24 -07:00
Jon Rood
5e699d5354 Remove unnecessary CMAKE_C_COMPILER from nalu-wind. (#28513) 2022-01-19 18:57:31 -08:00
Nils Leif Fischer
c11ce3bd1f New package: SpECTRE numerical relativity code (#28399)
* New package: SpECTRE numerical relativity code
2022-01-19 10:18:07 -08:00
kwryankrattiger
d5297b29be ParaView/VTK: Constrain version for ADIOS2 patch. (#28505)
* ParaView/VTK: Constrain version for ADIOS2 patch.

Older available versions of ParaView/VTK predate
ADIODS2 support.

ParaView lower bound is 5.8 and VTK lower bound is 8.2.0

* ParaView: Gate the ADIOS2 by verison
2022-01-19 13:15:24 -05:00
Adam J. Stewart
5e351ffff4 py-shiboken: fix build with new Python (#28464) 2022-01-19 10:32:29 -07:00
Charles Doutriaux
192f5cf66d Adding Kosh python package v2.0 (#28426) 2022-01-19 09:14:31 -07:00
Adam J. Stewart
22426f17d1 SIPPackage: fix build system (#28447) 2022-01-19 12:35:46 +01:00
Adam J. Stewart
cb95a30be7 py-astropy: remove install_options (#28448) 2022-01-19 12:35:01 +01:00
Adam J. Stewart
5688252a1f py-pygpu: remove install_options (#28449)
* py-pygpu: remove install_options

* Fix dependencies
2022-01-19 12:34:36 +01:00
Adam J. Stewart
cdac2cd4f2 py-pymol: don't install with pip (#28450) 2022-01-19 12:33:59 +01:00
Adam J. Stewart
d12bc3121a py-pyodbc: remove install_options (#28454) 2022-01-19 12:33:08 +01:00
Adam J. Stewart
3b2c7633eb py-numpy: remove install_options (#28459) 2022-01-19 12:31:47 +01:00
Adam J. Stewart
abe77ec8ab py-scipy: remove -j flag (#28460) 2022-01-19 12:31:23 +01:00
Adam J. Stewart
d6c841f67c py-python-meep: remove install_options (#28461)
* py-python-meep: remove install_options

* Remove unused import
2022-01-19 12:27:38 +01:00
Adam J. Stewart
e6ba8eb060 py-scs: fix CUDA build (#28463) 2022-01-19 12:17:22 +01:00
Stephen Sachs
d25e4889ba Remove '==> OpenFOAM bashrc env: ' from module (#28444)
It seems that spack reads the output of `setup_run_environment` to build the actual spack modules and lmod modules. So, any output here will used verbatim on the shell.

This patch fixes https://github.com/spack/spack/issues/26733
2022-01-19 12:00:31 +01:00
Richarda Butler
7fb11ea84f caliper: fix stand alone test (#28390) 2022-01-19 11:59:46 +01:00
Adam J. Stewart
d853e2db57 py-pyside2: fix various build issues (#28455) 2022-01-19 11:57:40 +01:00
Jen Herting
017c6786da py-smac: new package (#28490) 2022-01-19 11:51:53 +01:00
Logan Harbour
9723d918bb spack compiler info exit 1 when no compilers are found (#28493)
fixes #28492
2022-01-19 11:50:15 +01:00
dependabot[bot]
93ebc4f47b build(deps): bump docker/build-push-action from 2.7.0 to 2.8.0 (#28495)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](a66e35b9cb...1814d3dfb3)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 11:27:59 +01:00
Cameron Rutherford
4918b7d007 exago: add v1.3.0 (#28498) 2022-01-19 11:15:15 +01:00
Hadrien G
7ae2d2e387 acts: update requirements on autodiff (#28501) 2022-01-19 10:59:04 +01:00
Thomas Helfer
8da204de61 mgis, tfel: add explicit dependency to py-numpy (#28502) 2022-01-19 10:57:13 +01:00
Harmen Stoppels
3dccb913a9 spack: add tcl/lmod as dependencies(#28355) 2022-01-19 10:02:04 +01:00
Jen Herting
97376f4694 New package: py-meldmd (#28479)
* [py-meldmd] created template

* [py-meldmd] added dependencies

* [py-meldmd]

- added homepage
- added description
- removed fixmes

* [py-meldmd] updated copyright
2022-01-18 20:17:24 -07:00
Melven Roehrig-Zoellner
10a0ce8c49 valgrind package: add versions 3.18.0 and 3.18.1 (#28453) 2022-01-18 18:28:05 -08:00
Adam J. Stewart
95fe66cb18 Add xgboost 1.5.2 (#28462)
Also remove obsolete py-dask-xgboost package
2022-01-18 18:11:08 -08:00
Adam J. Stewart
05df2c3371 py-sphinx: add v4.4.0 (#28465) 2022-01-18 18:06:44 -08:00
Adam J. Stewart
c5b1fcf5f9 py-torchmetrics: add v0.7.0 (#28489) 2022-01-18 18:00:09 -08:00
Jen Herting
68c0bdb698 New package: py-pyrfr (#28485)
* [py-pyrfr] create template

* [py-pyrfr]

- added homepage
- added description
- added dependencies
- updated copyright
- removed fixmes
2022-01-18 16:20:42 -07:00
Mathew Cleveland
e7b4a9bfd7 draco: new version 7.13.0 (#28359)
* Add release draco-7.13.0

* fix hash

Co-authored-by: Cleveland <cleveland@lanl.gov>
2022-01-18 17:40:04 -05:00
Jen Herting
24d9d4544e renamed package to align with usage (#28487)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-01-18 16:27:33 -06:00
Jen Herting
cac86345e5 New package: py-fastai (#28151)
* [py-fastai] new package

* [py-fastai] flake8

* [py-fastai] added dependencies from settings.ini

* [py-fastai] py-pillow -> pil

* [py-fastai] set version for py-setuptools

* [py-fastai] removed .999

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-01-18 13:44:29 -07:00
Peter Brady
b5bb06cc36 New package: cppcoro (#28467)
A library for c++ coroutine abstractions
2022-01-18 12:03:33 -08:00
Tom Payerle
4d10df3003 petsc: add libspqr.so to list of suite-sparse libraries (#28478)
Should fix  #28477
2022-01-18 11:20:40 -07:00
Harmen Stoppels
e72f87ec64 Switch lmod default all:autoload from none to direct (#28357)
* Switch lmod module all autoload default from none to direct

* Fix the docs
2022-01-18 09:06:41 -08:00
Paul Kuberry
612430859e Xyce: add version 7.4.0 and '+shared' variant (#28469) 2022-01-18 10:05:39 -07:00
Jen Herting
bd987d9278 [py-tpot] fixed dependency and added version 0.11.7 (#28484)
* [py-tpot] fixed py-scipy dependency

* [py-tpot] added version 0.11.7
2022-01-18 10:45:49 -06:00
Joe Kaushal
58c598ffe6 new package: op2-dsl (#28396) 2022-01-18 09:20:33 -07:00
renjithravindrankannath
2f7a32a74d Updated recipes for 4.5.2 and corrected run style errors (#28413) 2022-01-18 14:12:22 +01:00
Jon Rood
7ae8a5d55b Add ROCmPackage to trilinos (#28424)
* Add ROCmPackage to trilinos.

* Simplify Trilinos ROCm support. Add MI200 to Kokkos AMD GPU arch map.
2022-01-18 06:24:32 -05:00
Teodor Nikolov
64913af04a New package: Sarus (#28349)
And tini
2022-01-18 03:59:09 -07:00
Mark W. Krentel
d642a396af hpctoolkit: add version 2022.01.15 (#28473) 2022-01-18 10:41:11 +01:00
Adam J. Stewart
5ca6ba6c8b py-tomopy: add v1.11.0 (#28466) 2022-01-17 21:50:43 -06:00
Hadrien G
f88b40308d ACTS: fix autodiff version requirements (#28440) 2022-01-17 12:14:29 -07:00
Tamara Dahlgren
f238835b65 is_system_path: return False if path is None (#28403) 2022-01-17 08:44:10 -07:00
kwryankrattiger
7e3677db6f Fix issue when propagating cuda with other variant (#28377)
+cuda was hiding propagation of hdf5 and adios2 to paraview
2022-01-17 13:57:43 +01:00
Erik Schnetter
b2f92a1307 mpc: add v1.2.1 (#28307) 2022-01-17 13:49:45 +01:00
Timothy Brown
e17434b9e2 WRF: add the ability to compile with Intel. (#28382) 2022-01-17 13:48:47 +01:00
Luc Berger
6add69d658 Kokkos Kernels: release maintenance (#28409)
1. adding latest release 3.5.0
2. updating cmake requirement to match that of Kokkos
3. adding logic to depend on the right version of Kokkos by default
2022-01-17 12:48:20 +00:00
Eric Brugger
20796b2045 VTK-m: Add testlib variant. (#28324) 2022-01-17 13:43:41 +01:00
Sreenivasa Murthy Kolam
53801f3ebb deprecate rocm-4.1.0 and older rocm releases (#28395) 2022-01-17 13:08:24 +01:00
eugeneswalker
0f3637e332 nalu-wind: depends on trilinos +gtest (#28414) 2022-01-17 12:55:42 +01:00
Adam J. Stewart
6c4e765f40 Open3D: use Spack-installed 3rd party deps when possible (#28422) 2022-01-17 12:54:22 +01:00
Adam J. Stewart
e7c9f05cd9 miniconda: source conda.sh setup script (#28321) 2022-01-17 12:53:41 +01:00
Adam J. Stewart
5d56a3b306 py-numpy: add v1.22.1 (#28423) 2022-01-17 12:52:43 +01:00
Glenn Horton-Smith
58fd0d859a net-snmp: add v5.9.1 (#28268) 2022-01-17 12:51:15 +01:00
Hadrien G
f5a2f693dc acts: add v16.0.0 (#28438) 2022-01-17 04:11:27 -07:00
Mark W. Krentel
905c6973c9 hpcviewer: add v2022.01. (#28425) 2022-01-17 10:15:48 +01:00
Erik Schnetter
350d2da8b9 findutils: ensure __nonnull is defined on macOS (#28316) 2022-01-17 10:14:39 +01:00
Adam J. Stewart
20bccc3843 mesa18: explicitly specify python executable (#28420) 2022-01-17 09:50:44 +01:00
Nils Leif Fischer
624b3a00ff brigand: only build tests when requested (#28228) 2022-01-17 09:45:34 +01:00
Adam J. Stewart
b93ff6fdff PyTorch: specify CUDA version incompatibility (#28432) 2022-01-17 09:41:23 +01:00
Adam J. Stewart
5c4a250bf9 NCCL: specify cuda_arch (#28433) 2022-01-17 09:40:38 +01:00
Adam J. Stewart
5e595586a7 zip: add external detection (#28434) 2022-01-17 09:39:17 +01:00
Vanessasaurus
dbb36ef8b1 Fixing pthread-stack-min-fix.patch patch version range (#28437)
pthread-stack-min-fix.patch should no be applied to 1.73.0
See https://github.com/spack/spack/issues/28436
2022-01-17 01:32:11 -07:00
Sebastian Pipping
425995db3e expat: Add latest release 2.4.3 with security fixes (#28435) 2022-01-16 17:23:02 -07:00
Luc Berger
e093187266 Kokkos: updating package list, maintainers and minimum cmake version (#28410)
* Kokkos: updating package list, maintainers and minimum cmake version
* Kokkos: updating maintainers list

Updating maintainers list to have the correct GitHub handle for Jan.
2022-01-16 11:50:34 -08:00
Christoph Junghans
a817538870 votca: add v2022 (#28431) 2022-01-16 07:50:02 -07:00
Brian Van Essen
b8d159c62d hwloc: added support to find external (#28348) 2022-01-15 16:44:13 -07:00
Peter Brady
415d662ec0 Fix boost build failures on newer glibc 2022-01-15 14:02:30 -08:00
Peter Brady
30b3cd3b44 chaco: new package (#28342)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-01-15 14:08:18 -07:00
Peter Brady
1dd9238021 chaparral: add new package (#28343) 2022-01-15 14:05:03 -07:00
Nicholas Knoblauch
a5c0a4dca4 Add libdeflate as variant for htslib (#24141) 2022-01-15 10:07:45 -07:00
Sreenivasa Murthy Kolam
ebdf1cb73e rocm ecosystem: bump version for 4.5.2 release (#28358) 2022-01-15 08:59:15 -07:00
Marcus Boden
9e87a6a4b7 snakemake: add v6.13.1 and new variant (#28393) 2022-01-15 08:56:01 -07:00
Nils Leif Fischer
3f903c49e4 charmpp: use CMake for versions 7.0.0+ (#28401) 2022-01-14 23:56:16 -07:00
Todd Gamblin
93377942d1 Update copyright year to 2022 2022-01-14 22:50:21 -08:00
Todd Gamblin
e3527983ac spack license update-copyright-year now updates the LICENSE-MIT file
`spack license update-copyright-year` was updating license headers but not the MIT
license file. Make it do that and add a test.

Also simplify the way we bump the latest copyright year so that we only need to
update it in one place.
2022-01-14 22:50:21 -08:00
Jen Herting
1422bde25a kaldi: new version 2021-11-16 (#28154)
* [kaldi] Added version 2021-11-16

* [kaldi] Added logic for new version and when cuda 11 is used

* [kaldi] Added patch file when cuda 11 as cub is now built into it

* [kaldi] removed .999 and simplified some logic

Co-authored-by: Doug Heckman <dahdco@rit.edu>
2022-01-14 23:08:15 -07:00
Chris White
ed105fcc76 New Package: ATS (#28013)
* add py-ats package

* add new 7.0.10 tag

* add myself as a maintainer

* add dependencies for python and setuptools

* style

* added todo for flux

* words

* update versions users should use
2022-01-14 22:32:12 -07:00
Brian Spilner
39f19bcc16 CDO package: add version 2.0.3 (#28416) 2022-01-14 18:53:55 -08:00
Adam J. Stewart
a2181e9d25 Python: add ensurepip variant (#28205) 2022-01-14 20:09:42 -06:00
Adam J. Stewart
6235184522 valgrind: default to ~ubsan (#28389) 2022-01-14 16:29:16 -07:00
Satish Balay
9ed32a3c65 gdbm@1.22: fix build on MacOS (#28379) 2022-01-14 14:02:50 -07:00
Peter Brady
2917aad6f9 scorpio: add new package (#28375)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-01-14 13:47:36 -07:00
Adam J. Stewart
3540f8200a PythonPackage: install packages with pip (#27798)
* Use pip to bootstrap pip

* Bootstrap wheel from source

* Update PythonPackage to install using pip

* Update several packages

* Add wheel as base class dep

* Build phase no longer exists

* Add py-poetry package, fix py-flit-core bootstrapping

* Fix isort build

* Clean up many more packages

* Remove unused import

* Fix unit tests

* Don't directly run setup.py

* Typo fix

* Remove unused imports

* Fix issues caught by CI

* Remove custom setup.py file handling

* Use PythonPackage for installing wheels

* Remove custom phases in PythonPackages

* Remove <phase>_args methods

* Remove unused import

* Fix various packages

* Try to test Python packages directly in CI

* Actually run the pipeline

* Fix more packages

* Fix mappings, fix packages

* Fix dep version

* Work around bug in concretizer

* Various concretization fixes

* Fix gitlab yaml, packages

* Fix typo in gitlab yaml

* Skip more packages that fail to concretize

* Fix? jupyter ecosystem concretization issues

* Solve Jupyter concretization issues

* Prevent duplicate entries in PYTHONPATH

* Skip fenics-dolfinx

* Build fewer Python packages

* Fix missing npm dep

* Specify image

* More package fixes

* Add backends for every from-source package

* Fix version arg

* Remove GitLab CI stuff, add py-installer package

* Remove test deps, re-add install_options

* Function declaration syntax fix

* More build fixes

* Update spack create template

* Update PythonPackage documentation

* Fix documentation build

* Fix unit tests

* Remove pip flag added only in newer pip

* flux: add explicit dependency on jsonschema

* Update packages that have been added since this was branched off of develop

* Move Python 2 deprecation to a separate PR

* py-neurolab: add build dep on py-setuptools

* Use wheels for pip/wheel

* Allow use of pre-installed pip for external Python

* pip -> python -m pip

* Use python -m pip for all packages

* Fix py-wrapt

* Add both platlib and purelib to PYTHONPATH

* py-pyyaml: setuptools is needed for all versions

* py-pyyaml: link flags aren't needed

* Appease spack audit packages

* Some build backend is required for all versions, distutils -> setuptools

* Correctly handle different setup.py filename

* Use wheels for py-tomli to avoid circular dep on py-flit-core

* Fix busco installation procedure

* Clarify things in spack create template

* Test other Python build backends

* Undo changes to busco

* Various fixes

* Don't test other backends
2022-01-14 12:37:57 -06:00
eugeneswalker
0b2507053e hsakmt-roct@4.5.0: needs pkgconf (#28400) 2022-01-14 08:38:19 -07:00
Adam J. Stewart
e0f044561e Python: improve site_packages_dir handling (#28346)
* Python: improve site_packages_dir handling

* Replace all site_packages_dir with purelib/platlib
2022-01-13 20:11:16 -06:00
Adam J. Stewart
2e238307c7 Python: add maintainers for Python 2 (#28386) 2022-01-13 20:05:42 -06:00
Jim Galarowicz
b7accb6a9d Add new survey package to spack. (#25518)
* Add new package to spack.  survey is a lightweight application performance tool that also gathers system information and stores it as metadata.

* Add maintainer and note about source access.

* Update the man path per spack reviewer suggestion.

* Remove redundant settings for PYTHONPATH, PATH, and MANPATH.

* Move to a one mpi collector approach for cce/tce integration.

* Add pyyaml dependency

* Make further spack reviewer changes to python type specs, mpi args, build type variant.

* Add reviewer requested changes.

* Add reviewer docstring requested changes.

* Add more updates from spack reviewer comments.

* Update the versions to use tags, not branches

* Redo dashes to fix issue with spack testing.

Co-authored-by: Jim Galarowicz <jgalarowicz@newmexicoconsortium.org>
2022-01-13 19:59:05 -06:00
Erik
eda565f3b1 AMReX Smoke Test (#27411) 2022-01-13 17:43:43 +00:00
Andrew W Elble
1ea4497802 musl: set syslibdir correctly, new versions (#28373) 2022-01-13 03:50:11 -07:00
Adam J. Stewart
7d3a696d27 fenics: specify python exe (#28323) 2022-01-12 12:47:21 -07:00
Harmen Stoppels
d74396ad21 Do not initialize config on spack compiler list (#28042)
When `spack compiler list` is run without being restricted to a
particular scope, and no compilers are found, say that none are 
available, and hint that the use should run spack compiler find to 
auto detect compilers.

* Improve docs
* Check if stdin is a tty
* add a test
2022-01-12 16:26:28 +00:00
Massimiliano Culpo
91fc4cf28f bootstrap: fix bootstrapping GnuPG from different macOS versions (#28350) 2022-01-12 08:18:16 -08:00
Nils Leif Fischer
38fee7e0da libogg: patch stdint include, add v1.3.5 (#28332)
Backport a patch for v1.3.4 that fixes an unsigned typedef problem
on macOS: https://github.com/xiph/ogg/pull/64

Also add v1.3.5 that has this issue fixed.
2022-01-12 09:17:52 -07:00
Andrew W Elble
b3043cae8f grace: workaround for buffer overflows (#28232)
spack paths can be long and this overflows (at least) these buffers
inside of the bundled T1lib inside of the grace distribution, leading
to crashes on startup.
2022-01-12 17:14:37 +01:00
kwryankrattiger
6c9b781e6e ECP-DAV: Propagate adios2 variant to paraview (#26747)
Depends on #26728 and #26175
2022-01-12 11:14:12 -05:00
Matthieu Dorier
04b9d87fca gptune: fix build by setting compilers to mpi wrappers (#28235) 2022-01-12 17:13:37 +01:00
Harmen Stoppels
868eaeb70e lmod: add v8.6.5 (#28353) 2022-01-12 08:26:43 -07:00
Nils Leif Fischer
0e1e705e15 charmpp: disable pre-7.0.0 macOS builds with clang@7: (#28221)
Charm++ versions below 7.0.0 have build issues on macOS, mainly due to the
pre-7.0.0 `VERSION` file conflicting with other version files on the
system: https://github.com/UIUC-PPL/charm/issues/2844. Specifically, it
conflicts with LLVM's `<version>` header that was added in llvm@7.0.0 to
comply with the C++20 standard:
https://en.cppreference.com/w/cpp/header/version. The conflict only occurs
on case-insensitive file systems, as typically used on macOS machines.
2022-01-12 15:53:49 +01:00
Adam J. Stewart
faaf38ca7d py-torch: use conditional variants (#28242) 2022-01-12 15:52:16 +01:00
Todd Gamblin
54d741ba54 unparser: handle package-level loops, if statements, and with blocks
Many packages implement logic at the class level to handle complex dependencies and
conflicts. Others have started using `with when("@1.0"):` blocks since we added that
capability. The loops and other control logic can cause some pure directive logic not to
be removed by our package hashing logic -- and in many cases that's a lot of code that
will cause unnecessary rebuilds.

This commit changes the unparser so that it will descend into these blocks. Specifically:

  1. Descend into loops, if statements, and with blocks at the class level.
  2. Don't look inside function definitions (in or outside a class).
  3. Don't look at nested class definitions (they don't have directives)
  4. Add logic to *remove* empty loops/with blocks/if statements if all directives
     in them were removed.

This allows our package hash to ignore a lot of pure metadata that it was not ignoring
before, and makes it less sensitive.

In addition, we add `maintainers` and `tags` to the list of metadata attributes that
Spack should remove from packages when constructing canonoical source for a package
hash.

- [x] Make unparser handle if/for/while/with at class level.
- [x] Add tests for control logic removal.
- [x] Add a test to ensure that all packages are not only unparseable, but also
      that their canonical source is still compilable. This is a test for
      our control logic removal.
- [x] Add another unparse test package that has complex logic.
2022-01-12 06:14:18 -08:00
Todd Gamblin
101f080138 unparser: add unparser unit tests
These are the unit tests from astunparse, converted to pytest, with a few backports from
upstream cpython. These should hopefully keep `unparser.py` well covered as we change it.
2022-01-12 06:14:18 -08:00
Todd Gamblin
4d7226832d unparser: rename t to node to mirror upstream
These refactors have happened in upstream `ast.unparse()`
2022-01-12 06:14:18 -08:00
Todd Gamblin
0370324f1f unparser: rename _Class() methods to visit_Class() to mirror upstream
These are refactors that have happened in upstream `ast.unparse()`
2022-01-12 06:14:18 -08:00
Todd Gamblin
ec16c2d7c2 unparser: do a better job of roundtripping strings
Handle complex f-strings.  Backport of:

    a993e901eb#
2022-01-12 06:14:18 -08:00
Todd Gamblin
e9612696fd unparser: treat print(a, b, c) and print((a, b, c)) the same
We can't tell `print(a, b, c)` and `print((a, b, c))` apart -- both of these expressions
generate different ASTs in Python 2 and Python 3.  However, we can decide that we don't
care.  This commit treats both of them the same when `py_ver_consistent` is set with
`unparse()`.

This means that the package hash won't notice changes from printing a tuple to printing
multiple values, but we don't care, because this is extremely unlikely to affect the build.
More than likely this is just an error message for the user of the package.

- [x] treat `print(a, b, c)` and `print((a, b, c))` the same in py2 and py3
- [x] add another package parsing test -- legion -- that exercises this feature
2022-01-12 06:14:18 -08:00
Todd Gamblin
a18a0e7a47 commands: add spack pkg source and spack pkg hash
To make it easier to see how package hashes change and how they are computed, add two
commands:

* `spack pkg source <spec>`: dumps source code for a package to the terminal

* `spack pkg source --canonical <spec>`: dumps canonicalized source code for a
   package to the terminal. It strips comments, directives, and known-unused
   multimethods from the package. It is used to generate package hashes.

* `spack pkg hash <spec>`: This gives the package hash for a particular spec.
  It is generated from the canonical source code for the spec.

- [x] `add spack pkg source` and `spack pkg hash`
- [x] add tests
- [x] fix bug in multimethod resolution with boolean `@when` values

Co-authored-by: Greg Becker <becker33@llnl.gov>
2022-01-12 06:14:18 -08:00
Todd Gamblin
106ae7abe6 package_hash: switch to using canonical source instead of AST repr
We are planning to switch to using full hashes for Spack specs, which means that the
package hash will be included in the deployment descriptor. This means we need a more
robust package hash than simply dumping the `repr` of the AST.

The AST repr that we previously used for package content is unreliable because it can
vary between python versions (Python's AST actually changes fairly frequently).

- [x] change `package_hash`, `package_ast`, and `canonical_source` to accept a string for
      alternate source instead of a filename.
- [x] consolidate package hash tests in `test/util/package_hash.py`.
- [x] remove old `package_content` method.
- [x] make `package_hash` do what `canonical_source_hash` was doing before.
- [x] modify `content_hash` in `package.py` to use the new `package_hash` function.

Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2022-01-12 06:14:18 -08:00
Todd Gamblin
39afe946a0 unparser: Don't omit parenthesis when unparsing a slice
Backport of
  c102a14825

Includes support for Python 2.
2022-01-12 06:14:18 -08:00
Todd Gamblin
0776c3b4d6 unparser: Don't put unnecessary parentheses on class declarations
Backport of
* 25160cdc47
2022-01-12 06:14:18 -08:00
Todd Gamblin
ff5e73d6eb package_hash: add test to ensure that every package in Spack can be unparsed
- [x] add option to canonical source to *not* filter multimethods
- [x] add test to unparse every package in builtin
2022-01-12 06:14:18 -08:00
Todd Gamblin
b6dde510bd package_hash: add test to ensure consistency across Python versions
Our package hash is supposed to be consistent from python version to python version.
Test this by adding some known unparse inputs and ensuring that they always have the
same canonical hash.  This test relies on the fact that we run Spack's unit tests
across many python versions.  We can't compute for several python versions within the
same test run so we precompute the hashes and check them in CI.
2022-01-12 06:14:18 -08:00
Todd Gamblin
800229a448 package_hash: fix handling of multimethods and add tests
Package hashing was not properly handling multimethods. In particular, it was removing
any functions that had decorators from the output, so we'd miss things like
`@run_after("install")`, etc.

There were also problems with handling multiple `@when`'s in a single file, and with
handling `@when` functions that *had* to be evaluated dynamically.

- [x] Rework static `@when` resolution for package hash
- [x] Ensure that functions with decorators are not removed from output
- [x] Add tests for many different @when scenarios (multiple @when's,
      combining with other decorators, default/no default, etc.)

Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2022-01-12 06:14:18 -08:00
Todd Gamblin
93a6c51d88 package_hash: rework RemoveDirectives and add a test
Previously we used `directives.__all__` to get directive names, but it wasn't
quite right -- it included `DirectiveMeta`, etc.  It's not wrong, but it's also
not the clearest way to do this.

- [x] Refactor `@directive` to track names in `directive_names` global
- [x] Rename `_directive_names` to `_directive_dict_names` in `DirectiveMeta`
- [x] Add a test for `RemoveDirectives`

Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2022-01-12 06:14:18 -08:00
Todd Gamblin
8880a00862 package_hash: remove all unassigned strings, not just docstrings
Some packages use top-level unassigned strings instead of comments, either just after a
docstring on in the body somewhere else. Ignore those strings becasue they have no
effect on package behavior.

- [x] adjust RemoveDocstrings to remove all free-standing strings.
- [x] move tests for util/package_hash.py to test/util/package_hash.py

Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2022-01-12 06:14:18 -08:00
Todd Gamblin
572fbf4f49 unparser: handle unicode string literals consistently across Python versions
Python 2 and 3 represent string literals differently in the AST. Python 2 requires '\x'
literals, and Python 3 source is always unicode, and allows unicode to be written
directly.  These also unparse differently by default.

- [x] modify unparser to write both out the way `repr` would in Python 2 when
  `py_ver_consistent` is provided.
2022-01-12 06:14:18 -08:00
Todd Gamblin
396c37d82f unparser: implement operator precedence algorithm for unparser
Backport operator precedence algorithm from here:
    397b96f6d7

This eliminates unnecessary parentheses from our unparsed output and makes Spack's unparser
consistent with the one in upstream Python 3.9+, with one exception.

Our parser normalizes argument order when `py_ver_consistent` is set, so that star arguments
in function calls come last.  We have to do this because Python 2's AST doesn't have information
about their actual order.

If we ever support only Python 3.9 and higher, we can easily switch over to `ast.unparse`, as
the unparsing is consistent except for this detail (modulo future changes to `ast.unparse`)
2022-01-12 06:14:18 -08:00
Todd Gamblin
afb358313a unparser: refactor delimiting with context managers in ast.unparse
Backport of 4b3b1226e8
2022-01-12 06:14:18 -08:00
Todd Gamblin
5847eb1e65 unparser: add block() context manager for indentation
This is a backport of a refactor from cpython 3.9
2022-01-12 06:14:18 -08:00
Todd Gamblin
2badd6500e unparse: Make unparsing consistent for 2.7 and 3.5-3.10
Previously, there were differences in the unparsed code for Python 2.7 and for 3.5-3.10.
This makes unparsed code the same across these Python versions by:

    1. Ensuring there are no spaces between unary operators and
       their operands.
    2. Ensuring that *args and **kwargs are always the last arguments,
       regardless of the python version.
    3. Always unparsing print as a function.
    4. Not putting an extra comma after Python 2 class definitions.

Without these changes, the same source can generate different code for different
Python versions, depending on subtle AST differences.

One place where single source will generate an inconsistent AST is with
multi-argument print statements, e.g.:

```
    print("foo", "bar", "baz")
```

In Python 2, this prints a tuple; in Python 3, it is the print function with
multiple arguments.  Use `from __future__ import print_function` to avoid
this inconsistency.
2022-01-12 06:14:18 -08:00
Todd Gamblin
b324fe5d95 externals: add astunparse
Add `astunparse` as `spack_astunparse`. This library unparses Python ASTs and we're
adding it under our own name so that we can make modifications to it.

Ultimately this will be used to make `package_hash` consistent across Python versions.
2022-01-12 06:14:18 -08:00
Andrew W Elble
a38cdddd37 perl-tk: add missing dependencies (#28240) 2022-01-12 14:53:25 +01:00
Dylan Simon
2cf22ad5f2 e2fsprogs: fix non-root install (#28255) 2022-01-12 14:52:46 +01:00
Harmen Stoppels
c8e01752a1 Use depends_on over load in lmod module files generated by Spack (#28352) 2022-01-12 13:29:22 +00:00
snehring
640a4f7dcd poamsa: fix build errors for gcc10+ (#28262) 2022-01-12 14:09:55 +01:00
Danny McClanahan
435a241869 yarn: add runtime dependency on node-js@4.0: (#27654) 2022-01-12 13:05:49 +00:00
H. Joe Lee
a5ff3206f9 HDF5 GPU VFD: add new package. (#28272) 2022-01-12 13:59:51 +01:00
Melven Roehrig-Zoellner
5bb5bf3efb ITensor: add v3.1.10 and 'shared' variant (#28370) 2022-01-12 05:20:10 -07:00
Adam J. Stewart
55a62a1ee5 py-async-timeout: fix checksum issue (#28329) 2022-01-12 10:53:12 +01:00
Nils Leif Fischer
7fa81a66af libtheora: disable docs by default (#28330) 2022-01-12 10:24:58 +01:00
Nils Leif Fischer
4e0372b9b7 curl: add support for external detection (#28331) 2022-01-12 10:24:10 +01:00
Massimiliano Culpo
5476e5d035 Remove tut since it requires deprecated Python 3.6 (#28360) 2022-01-12 09:34:50 +01:00
kwryankrattiger
363a565ce3 Packaging: Virtual package for libllvm (#27200)
Add an abstraction around libllvm to allow libllvm
providers to be specified for all packages.

This is targeting allowing mesa to build against
llvm-amdgpu or intel-llvm or llvm or any other
custom llvm variant that arises for specific GPU
toolchains
2022-01-11 13:28:13 -08:00
Erik Schnetter
d4a468c160 memkind: add v1.12.0 (#28306) 2022-01-11 11:23:36 -07:00
Erik Schnetter
6690bb7411 openblas: New version 0.3.19 (#28308) 2022-01-11 16:55:23 +01:00
Adam J. Stewart
2ab871dd17 py-aiohttp: switch to PyPI tarball (#28333) 2022-01-11 14:33:02 +01:00
Adam J. Stewart
2ea8abef34 Open3D: add missing LLVM dep (#28334) 2022-01-11 14:32:34 +01:00
Erik Schnetter
67d9abb5f1 ffmpeg: add v4.4.1 (#28300) 2022-01-11 14:21:43 +01:00
Harmen Stoppels
f611eb0283 hdf5: prefer stable over experimental releases (#28340) 2022-01-11 10:32:28 +01:00
Harmen Stoppels
78debc1143 mbedtls: add v2.16.12, v2.28.0 and v3.1.0(#28281) 2022-01-11 10:28:58 +01:00
Adam J. Stewart
7b76e3982f Deprecate Python 2 installations (#28003)
* Deprecate Python 2 installations

* Deprecate py-python-meep

* Deprecate older easybuild backend libs

* Deprecate Python 3.6

* Deprecate miniconda2
2022-01-10 15:45:35 -06:00
Erik Schnetter
675210bd8b automake: New version 1.16.5 (#28299) 2022-01-10 21:33:14 +01:00
Erik Schnetter
0236e88af4 gawk: New version 5.1.1 (#28301) 2022-01-10 21:32:53 +01:00
Erik Schnetter
c939af8185 gdbm: New version 1.22 (#28302) 2022-01-10 21:32:40 +01:00
Erik Schnetter
33d8e8f31c grep: New version 3.7 (#28303) 2022-01-10 21:32:33 +01:00
Erik Schnetter
f678d5818f lorene: Beautify package title in documentation (#28305) 2022-01-10 21:32:20 +01:00
Erik Schnetter
4ef8e15ed3 wi4mpi: New version 3.5.0 (#28313) 2022-01-10 21:31:30 +01:00
Erik Schnetter
09ca7c4d9c wget: New version 1.21.2 (#28312) 2022-01-10 21:31:13 +01:00
Erik Schnetter
76d9adae8c openssl: New version 1.1.1m (#28310) 2022-01-10 21:30:58 +01:00
Peter Scheibel
9f7fb6d01a stage.steal_source: preserve symlinks
This avoids dangling symlink errors. ignore_dangling_symlinks option would be more-targeted but is only available for Python >= 3.2 (#28318)
2022-01-10 10:10:49 -08:00
Adam J. Stewart
cc32b08205 Python: set default config_vars (#28290)
* Python: set default config_vars

* Add missing commas

* dso_suffix not present for some reason

* Remove use of default_site_packages_dir

* Use config_vars during bootstrapping too

* Catch more errors

* Fix unit tests

* Catch more errors

* Update docstring
2022-01-10 12:00:06 -06:00
Marcus Boden
5958306466 New packages: google-crc32c and py-google-crc32c (#28293) 2022-01-10 08:58:02 -06:00
Erik Schnetter
464d294b63 z3: New version 4.8.14 (#28314) 2022-01-10 14:31:52 +01:00
Erik Schnetter
b7f4a421e4 hwloc: New version 2.7.0 (#28298) 2022-01-10 12:00:51 +01:00
Peter Brady
fe64afb479 New package: petaca (#28326)
* Add the petaca fortran/c package

* Adopt date for version name and remove variants
2022-01-09 19:49:49 -05:00
luker
0277067e5f blaspp: set BLA_VENDOR for cray (#28104)
* for Cray's libsci in blaspp, set BLA_VENDOR=all

* Update package.py

* Update package.py

* Update package.py
2022-01-08 15:41:50 -05:00
Adam J. Stewart
334102addd SQLite: add new version/variant (#28204) 2022-01-08 12:57:57 -06:00
Erik Schnetter
52d475e89b openssh: New version 8.8p1 (#28325) 2022-01-08 13:10:28 +01:00
Martin Diehl
2bb844ee0e Damask improvements (#28178) 2022-01-08 06:50:38 -05:00
Jógvan Magnus Haugaard Olsen
897616f073 Dalton package: add versions and variants (#28226)
* Update existing 2020.0 version to use tag
* Add versions 2018.2 and master
* Add patches for GCC/Intel
* Use MPI compiler wrappers when +mpi
* Constrain CMake build dependency (need >= 3.1)
* Add variants for optional components (e.g QFIT library)
2022-01-07 18:59:17 -08:00
Anton Kozhevnikov
34f0222fdd ELPA package: don't check threading support during build (#28227)
./configure tries to execute an MPI test, which is not possible on
most HPC platforms (if you don't build on a compute node), so this
check is disabled to allow the build to proceed. Ideally we could
check this by placing constraints on the MPI that Spack builds (e.g.
require building a version that is guaranteed to have threading
support).
2022-01-07 18:13:46 -08:00
Peter Brady
d125bdfaa0 Catch2 package: add versions 2.13.8 and 3.0.0-preview4 (#28297) 2022-01-07 16:55:49 -08:00
Satish Balay
6a60201e80 petsc, py-petsc4py: add versions 3.16.3 (#28277) 2022-01-07 17:15:27 -06:00
Glenn Johnson
a3f5b712d3 py-pyzmq: adjust constraints for python-3.9 (#28264)
Version 18.1 builds with python-3.9
2022-01-07 15:08:02 -06:00
Filippo Spiga
b2336402a7 NVIDIA HPC SDK package: add version 22.1 (#28288) 2022-01-07 12:02:46 -08:00
Glenn Johnson
5091dc2124 r-kegg-db: mark deprecated, removed from bioconductor-3.13 (#28271) 2022-01-07 11:17:36 -07:00
Robert Cohn
7bed76786d py-matplotlib: fix config for oneapi compiler (#28265)
* py-matplotlib: fix config for oneapi compiler

* Small change to trigger CI restart
2022-01-07 11:17:14 -07:00
Glenn Johnson
0e45ad2d7f r-illuminahumanmethylationepicmanifest: remove invalid homepage (#28269) 2022-01-07 10:59:19 -07:00
Sebastian Pipping
43e064880e uriparser: Add latest release 0.9.6 with security fixes (#28291) 2022-01-07 10:14:11 -07:00
Kyle Gerheiser
04a95e3425 ip package: add v4.0.0 (#28237)
Keep 3.3.3 the preferred version until other packages can be updated
2022-01-06 19:46:31 -08:00
snehring
496b28bb58 viennarna package: add version 2.5.0 (#28261) 2022-01-06 19:44:50 -08:00
Sreenivasa Murthy Kolam
94bd667ba6 Update the rocm recipes for 4.5.0 release (#27535)
* rocm recipes updates for 4.5.0

* update to rocm recipes for 4.5.0 release

* updates to the rocm recipes for rocm-4.5.0 release

* fix style errors

* update to rocm-validation-suite for rocm-4.5.0 release

* bump up rccl recipe for rocm-4.5.0

* bump up version for rdc for rocm-4.5.0

* update miopengemm, miopen-opencl,rocm-opencl recipes for 4.5.0 release

* bump up version for mivisiox for rocm-4.5.0 release

* update the rocm-validation-suite recipe

* no need to change the perl path for 4.5.0

* fix the build failure with the recent change made for hip package

* modify checksum for the llvm-amdgpu for 4.5.0

* fix the build issue aftere recent changes made for enabling test

* fix the build issue with 4.5.0

* add new recipe for hipsolver

* address review comments
2022-01-06 13:24:00 -08:00
Adam J. Stewart
186730a284 bazel: python executable required (#28286)
* bazel: python executable required

* python: add autodetection of +pythoncmd
2022-01-06 15:16:43 -06:00
Adam J. Stewart
6e31094d77 GDAL: add new version (#28238)
* GDAL: add new version

* Use conflicts for PCRE
2022-01-06 12:26:24 -07:00
luker
27cbf46dd6 lapackpp: set BLA_VENDOR for cray (#28125) 2022-01-06 13:44:28 -05:00
Glenn Johnson
83a98c3807 r-genomeinfodbdata: add version 1.2.7 (#28266)
Also adjust formatting.
2022-01-06 11:30:31 -06:00
Glenn Johnson
2262bd1797 r package: add version 4.1.2 (#28244)
Set +libidn2 for the curl dependency. This is necessary after #25166.
2022-01-06 11:28:58 -06:00
Harmen Stoppels
f0b70b7c8e Fix spack install --v[tab] spec (#28278) 2022-01-06 14:47:03 +01:00
Harmen Stoppels
f8d4b4746c Fix double space in prompt after 'spack env activate -p' (#28279) 2022-01-06 04:59:07 -07:00
Glenn Johnson
f33f67ebd3 r-illuminahumanmethylationepicanno-ilm10b4-hg19: remove invalid homepage (#28267) 2022-01-06 11:35:40 +01:00
Axel Huebl
cc866f3c02 WarpX: 22.01 (#28225)
* WarpX: 22.01

Update `warpx` & `py-warpx` to the latest release, `22.01`.

* Python in 22.01+: Relax even further

See: https://github.com/ECP-WarpX/WarpX/pull/2664
2022-01-05 20:50:45 -08:00
Glenn Johnson
a43ed9286f GCC package: allow building gcc-5 on newer Linux (#27386)
Remove cyclades support so gcc-5 can build against newer glibc
versions (e.g. 2.31).
2022-01-05 14:14:28 -08:00
Harmen Stoppels
071778b919 llvm: make targets a multivalued variant (#27735)
* llvm: make targets a multivalued variant

* Fix the targets variant values

1. Make them lowercase and add a mapping to cmake equivalent
2. auto -> all
2. Restore composability by using a multivalued variant, so that
   `targets=all` and `targets=x86` is combined to `targets=all,x86`
   which is then transformed into LLVM_TARGETS_TO_BUILD=all.

* use targets=x86 in iwyu

* Default to nvptx/amdgpu/host arch targets

* default to none

* Update var/spack/repos/builtin/packages/zig/package.py
2022-01-05 14:11:05 -07:00
Andrew W Elble
a4f0fbafbb Add function to determine Linux kernel version (#27855)
This reports the kernel version (vs. the distro version) on Linux and
returns a valid Version (stripping characters like '+' which may be
present for custom-built kernels).
2022-01-05 10:22:43 -08:00
Pat McCormick
52cfd17917 Address legion package build issue on macOS with apple-clang-12 (#28241)
* Added C++ standard variant as a primary work-around for issues with apple-clang 12.x
but could also be helpful for broader uses.
2022-01-05 10:20:24 -08:00
Dylan Simon
f34598214b py-pyzmq: fix deptype of libzmq (#28254) 2022-01-05 10:59:33 -07:00
Severin Strobl
f064c5ee4f py-appdirs: patch for encoding issue (#28253)
Reading appdirs.py without explicitly requesting UTF-8 decoding results
in the build process to fail for Python 3.6.

See https://github.com/ActiveState/appdirs/pull/152 for the upstream
fix.
2022-01-05 10:59:12 -07:00
Marcus Boden
3e992aa283 Snakemake: New Version 6.12.3 (#28252)
* snakemake: New version
The newer versions of snakemake have a lot of new dependencies. The
optional dependencies still have to be added.

* removed comment

* some changes

* added reports variant

* deprecate older version and add me as maintainer

* Added dependency py-ratelimiter
2022-01-05 09:53:30 -07:00
Adam J. Stewart
c226835aa5 py-zipfile-deflate64: add new package (#27971) 2022-01-05 09:29:25 -07:00
kwryankrattiger
9e616ca7b7 VTK: Patch ADIOS2 module to fix cyclic dependency (#27784) 2022-01-05 11:21:08 -05:00
Harmen Stoppels
b23bd81cd9 ccache: add v4.5 and v4.5.1 (#28249) 2022-01-05 15:49:56 +01:00
Harmen Stoppels
39a346bde0 subversion: add v1.14.1, build in parallel (#28250) 2022-01-05 15:48:45 +01:00
Harmen Stoppels
89d3590300 sirius, spfft: make rocm arch variants conditional (#28251) 2022-01-05 15:47:40 +01:00
Massimiliano Culpo
0f74b7ec44 GnuPG: add v2.3.4 and update dependencies (#28248) 2022-01-05 15:42:18 +01:00
Andrew W Elble
422ae20a45 new package: py-lmdb (#28239) 2022-01-04 17:59:16 -07:00
snehring
efc5d0a3b4 snap-korf: version update + fix for compilers newer than gcc5 (#28243) 2022-01-04 17:44:04 -07:00
Marcus Boden
431473ea9b py-smart-open: Adding new version and dependencies (#28220)
* py-smart-open: Adding new version and dependencies

* fix python version and variant description/default
2022-01-04 14:20:15 -07:00
Jen Herting
cbe47f2066 New package: py-fastdownload (#28150)
* [py-fastdownload] created template

* [py-fastdownload]

- added homepage
- added description
- added dependencies
- removed fixmes
2022-01-04 15:14:59 -06:00
Axel Huebl
e43795de28 Fix: py-adios Cython run (#28223)
* Fix: py-adios Cython run

Always run Cython before `py-adios` installs.
This makes sure the `.cpp` files from `.pyx` files are freshly
created and work with newer CPython versions than the one checked
in.

* Cleanup: `rm` -> `os.remove`
2022-01-04 12:05:18 -07:00
Andrew W Elble
dc1b6aa8c6 new package: r-cca and dependencies (#28229)
Co-authored-by: Andrew W Elble <aweits@skl-a-00.rc.rit.edu>
2022-01-04 11:41:21 -07:00
Andrew W Elble
b924a5db14 new package: r-rpsychi (#28231)
Co-authored-by: Andrew W Elble <aweits@skl-a-00.rc.rit.edu>
2022-01-04 12:39:37 -06:00
Andrew W Elble
0264bb8343 new package: r-ccp (#28230)
Co-authored-by: Andrew W Elble <aweits@skl-a-00.rc.rit.edu>
2022-01-04 12:37:40 -06:00
Matthieu Dorier
c24bb64792 [py-gpustat] Added new version (#28135)
* [py-gpustat] Added new version

* [py-gpustat] marking 0.6.0 as preferred

* [py-gpustat] updated dependencies

* [py-gpustat] added dependency on python 3.4+

* [py-gpustat] corrected dependency to py-pytest-runner
2022-01-04 11:20:57 -06:00
Teodor Nikolov
cdb04931ab New version of neovim (#28222) 2022-01-04 07:14:01 -07:00
Harmen Stoppels
dce4f161d4 Drop preferred hdf5 version (#28091)
* Drop preferred hdf5 version

* Fix conduit

* Add compat bound for silo on hdf5

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

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>

* hdf5 <= 1.10 for conduit <= 0.7

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2022-01-04 02:24:37 -08:00
Nils Leif Fischer
ffc3272a2b charmpp: add conflict with +shared on macOS with GCC (#28211) 2022-01-04 10:31:55 +01:00
Stephen McDowell
8d19db8628 cudnn: add v8.3.1 (#28071) 2022-01-04 09:25:13 +01:00
Nils Leif Fischer
1250b77607 doxygen: fix build issue with external Py3 (#28216)
Doxygen's build system uses CMake's deprecated `FindPythonInterp`,
which can get confused by other `python` executables in the PATH.
See issue: https://github.com/spack/spack/issues/28215
2022-01-04 09:10:39 +01:00
Nils Leif Fischer
1b5eaf62de doxygen: add v1.9.3 (#28217) 2022-01-04 09:08:14 +01:00
Weiqun Zhang
dd03a1a91e amrex: add v22.01 (#28214) 2022-01-04 09:06:59 +01:00
Tom Payerle
7cd8bae799 namd: Fix issue when building with interface=python ^python@3.8 (#28218)
Patch to add --embed flag to config-python when interface=python and
using python@3.8:

This is because python@3.8 changed behavior of python-config --ldflags
(and --libs) such that it no longer includes -lpython unless --embed
flag is used.

See e.g. https://github.com/mesonbuild/meson/issues/5629
2022-01-04 09:04:46 +01:00
Wouter Deconinck
ae2509339d qt: depends_on assimp@5.0 when @5.14: +opengl (#28191)
* qt: depends_on assimp@5.0 when @5.14: +opengl

* [qt] patch for assimp@5.14:5

* [qt] depends_on assimp@5.0.0:5.0

* [qt] remove depends_on gmake again
2022-01-03 12:56:11 -07:00
Matthieu Dorier
7a8862e316 [py-aiohttp] added new version (#28210)
* [py-aiohttp] added new version

* [py-aiohttp] changed dependency on setuptools

* [py-aiohttp] fixed some of the dependencies

* [py-aiohttp] updated dependency to py-typing-extensions

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-01-03 12:38:15 -07:00
Marcus Boden
20780ec61c New package: py-azure-storage-blob (#28209)
* New package: py-azure-storage-blob

* fixed typo

* Update var/spack/repos/builtin/packages/py-azure-storage-blob/package.py

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

* Update var/spack/repos/builtin/packages/py-azure-storage-blob/package.py

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

* Update var/spack/repos/builtin/packages/py-azure-storage-blob/package.py

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-01-03 12:34:59 -07:00
Matthieu Dorier
98dfe7e7e0 [py-asynctest] Added py-asynctest package (#28194)
* [py-asynctest] Added py-asynctest package

* [py-asynctest] added dependency to py-setuptools
2022-01-03 11:25:11 -06:00
Marcus Boden
94f5d0a3f4 py-azure-core: Added v1.21.1 (#28208) 2022-01-03 11:24:04 -06:00
Marcus Boden
997dba8ffd py-msrest: new version 0.6.21 (#28207) 2022-01-03 11:22:48 -06:00
AMD Toolchain Support
6f95296972 cp2k: fix dependency libraries (#28128)
* fixing build issues in cp2k dependencies

* fixing style issues

* reverting elpa.prefix.lib and grammer correction

* addressing the suggestions
2022-01-03 10:32:26 -05:00
Cyrus Harrison
c85c725b08 apcomp add v0.4.0 and new variant (#27820) 2022-01-03 10:40:18 +00:00
Vicente Bolea
a06d93f6cb VTKm: add v1.7.0 (#27864)
Co-authored-by: Cyrus Harrison <cyrush@llnl.gov>
2022-01-03 11:36:11 +01:00
Seth R. Johnson
8daaee3ed6 ROOT: unset MACOSX_DEPLOYMENT_TARGET for macOS (#28163) 2022-01-03 11:21:15 +01:00
Adam J. Stewart
e40eceba4c py-torchgeo: add v0.2.0 (#28200) 2022-01-03 11:20:07 +01:00
Tiziano Müller
c220abb011 elpa: add version 2021.11.001, add +autotune variant (#28134) 2022-01-02 22:56:03 -07:00
AMD Toolchain Support
71cb9fd9fd openmpi: extend version range for cray flags (#28107)
Co-authored-by: mohan babu <mohbabul@amd.com>
2022-01-02 21:17:24 -05:00
Maciej Wójcik
8fdb6e2b61 gromacs-swaxs: add new versions (#28157)
* Deprecate invalid versions

* Add new gromacs-swaxs releases
2022-01-02 21:02:25 -05:00
Eric Berquist
676d321b28 direnv: new version 2.30.2 (#28179) 2022-01-02 21:00:32 -05:00
Adam J. Stewart
d6d1d33e88 libtiff: fix build on macOS Monterey (#28185)
* libtiff: fix build on macOS Monterey

* patch configure, not configure.ac

* Revert "patch configure, not configure.ac"

This reverts commit 8bf315cb22.

* Force Spack to run autoreconf using new patch
2022-01-02 20:50:26 -05:00
Adam J. Stewart
89830c2117 Revert "[py-aiohttp] added new version (#28132)" (#28192)
This reverts commit fee855030d.
2022-01-02 13:22:28 -05:00
Nils Leif Fischer
4e16948a1f libsharp: add pic option (#28197) 2022-01-02 13:19:03 -05:00
Adam J. Stewart
c530672f0e py-nbsphinx: add v0.8.8 (#28198) 2022-01-02 13:17:40 -05:00
Adam J. Stewart
38af2c6c9b py-numpy: add v1.22.0 (#28199) 2022-01-02 13:17:25 -05:00
Matthieu Dorier
a99d485016 [py-aiosignal] Added new py-aiosignal package (#28138) 2022-01-02 10:31:47 -06:00
Matthieu Dorier
fc9bfe5317 [py-async-timeout] new versions (#28195)
* [py-async-timeout] new versions

* [py-async-timeout] corrected dependency

* [py-async-timeout] more fixes to dependencies
2021-12-31 10:58:57 -07:00
Wouter Deconinck
4e80b18851 [qt] depends_on zstd@1.3 when @5.13: (#28193) 2021-12-30 19:05:00 -07:00
Matthieu Dorier
fee855030d [py-aiohttp] added new version (#28132)
* [py-aiohttp] added new version

* [py-aiohttp] updated py-setuptools version dependency

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-30 11:58:04 -06:00
Enrico Usai
c06aaebefd Fix pyyaml dependency conflicts (#28177)
For versions of aws-parallelcluster >= 2.9, the pyyaml dependency had to be >= 5.3.1 and == 5.1.2
at the same time making impossible to install ParallelCluster >= 2.9 from spack repository.
See issue: https://github.com/spack/spack/issues/28172

Fixed by limiting pyyaml 5.1.2 version to aws-parallelcluster < 2.8, according to this commit:
7255d314b7

Tested with a manual installation of aws-parallelcluster@2.11.4
2021-12-30 11:53:28 -06:00
Massimiliano Culpo
c2e1a12cdf Ensure some version known to Spack can satisfy constraints in depends_on (#28131)
Add a new check to `spack audit` to scan and verify that version constraints may be satisfied

Modifications:
 - [x] Add a new check to `spack audit` to scan and verify that version constraints may be satisfied by some version declared in the built-in repository
- [x] Fix issues found by CI

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-29 12:16:07 -08:00
Marcus Boden
27202b2240 py-datrie: New package, initial commit (#28126)
* py-datrie: New package, initial commit

* removed boilerplate

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-29 10:12:09 -06:00
Marcus Boden
c2015f6a9c new package: py-pulp (#28174) 2021-12-29 10:11:33 -06:00
Marcus Boden
e09ab1a01c new package: py-connectionpool (#28173) 2021-12-29 10:10:43 -06:00
Marcus Boden
2018606c32 new package: py-toposort (#28171)
* new package: py-toposort

* style fix
2021-12-29 10:09:44 -06:00
Tom Payerle
eba3e1a20c trilinos: fix x11 noheaderserror (#27966)
* trilinos: fix define_tpl to handle depspecs w/out headers

This should address #27758 (i.e. errors due to netlib-scalapack not
having headers)

* trilinos: This fixes a mismatch in variant name and spec name for x11/libx11
2021-12-29 15:28:20 +00:00
Brian Spilner
95f2b10b4f ruby: add v3.1.0 (#28159) 2021-12-29 16:16:45 +01:00
Adam J. Stewart
04f298a34f py-scikit-learn: add v1.0.2 (#28160) 2021-12-29 16:15:33 +01:00
Joel Falcou
bcf497a5fa eve: new package (#28169) 2021-12-29 15:41:27 +01:00
Joseph Wang
e0d8964453 geant4: sha256sum has changed (#28158) 2021-12-28 19:01:00 -06:00
Matthieu Dorier
ae15c87bf0 [py-frozenlist] Added py-frozenlist package (#28137) 2021-12-28 14:05:09 -07:00
Matthieu Dorier
cd19782943 [py-minio] Added py-minio package (#28139)
* [py-minio] Added py-minio package

* [py-minio] added missing dependencies for py-minio

* [py-minio] added type=('build', 'run') in dependencies

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-28 10:44:03 -07:00
Matthieu Dorier
9d5ce4962d [py-dh-scikit-optimize] Added new versions (#28133)
* [py-dh-scikit-optimize] Added new versions

* [py-dh-scikit-optimize] fixing dependencies

* making py-configspace a required dependency of py-dh-scikit-learn
2021-12-28 09:59:14 -07:00
Matthieu Dorier
b5b54dbd02 [py-blessed] added new versions (#28167) 2021-12-28 10:43:07 -06:00
Martin Diehl
3cd599d6f6 Fixed typos: 'wtih' instead of 'with' (#28166) 2021-12-28 09:45:43 +01:00
Morten Kristensen
2f5c8ee699 py-vermin: add latest version 1.3.3 (#28162) 2021-12-27 10:09:00 -06:00
Jen Herting
e028ee0d59 New package: py-kaggle (#28152)
* new package

* changed py-six dependency

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-24 10:47:44 -06:00
snehring
7fa31911fe satsuma2: add v2021-03-04 and build error fix (#28120) 2021-12-24 09:41:07 -07:00
Wouter Deconinck
f181b6fef6 root: depends_on fcgi and re-enabled +http support (#28115) 2021-12-24 09:20:13 -07:00
Adam J. Stewart
e2bda65947 py-blessings: fix setuptools version (#28141) 2021-12-24 09:02:09 -07:00
Jen Herting
50a3e3bfd3 New package: py-pyts (#28142)
* [py-pyts] new package

* [py-pyts] removed upperbound for python

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-24 08:38:09 -07:00
Olivier Cessenat
eda8151fa0 banner: new package (#26743) 2021-12-24 15:12:47 +01:00
Mikael Simberg
edd55bc73d Add HPXLocal package file (#28106)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2021-12-24 15:00:40 +01:00
Cyrus Harrison
0863148c4f conduit: add v0.8.0 release and change def for parmetis var (#28102) 2021-12-24 14:46:56 +01:00
Glenn Johnson
d098f92c4a r-hdf5r: use pkg-config to find hdf5 (#27847)
* r-hdf5r: use pkg-config to find hdf5

Since hdf5 was switched from autotools to cmake, the hdf5 compiler
wrappers can not be used to find and configure hdf5. This PR switches to
using pkg-config for configuration.

* Add comment about configure patch
2021-12-24 14:43:13 +01:00
albestro
6ed282bb2d ccls: add v0.20210330 (#28111) 2021-12-24 14:13:50 +01:00
Ye Luo
e945d3763b quantum-espresso: add v7.0 (#28144) 2021-12-24 14:13:05 +01:00
albestro
262c680997 neovim: add tree-sitter dependency + add v0.6.0 (#28145) 2021-12-24 13:57:15 +01:00
Jen Herting
054149698b py-fastprogress: new package (#28149) 2021-12-24 13:50:45 +01:00
Wouter Deconinck
a294acfb73 pythia8: bugfix for pythia8 +fastjet (#28153) 2021-12-24 13:47:18 +01:00
Cyrus Harrison
9602d0a03c dray: add v0.1.8 and v0.1.7 (#28147) 2021-12-24 13:43:11 +01:00
snehring
a3048438c3 lordec update and gatb-core (#28119)
* lordec: version update to 0.9 adding gatb-core as dep

* gatb-core: adding new package gatb-core
2021-12-24 13:42:30 +01:00
Vicente Bolea
6331778552 ParaView: add v5.10.0 (#28121) 2021-12-24 13:40:33 +01:00
Cody Balos
1513e57eee sundials: add v6.0.0 (#28032) 2021-12-24 13:38:36 +01:00
AMD Toolchain Support
d52e55d8de vasp: add support for aocc (#27950)
Co-authored-by: mohan babu <mohbabul@amd.com>
2021-12-24 13:36:15 +01:00
kjrstory
9c8a75ff9c npb package: add version 3.4.1 (#28122)
* The Class F problem has been added to seven of the benchmarks
  (BT, SP, LU, CG, MG, FT, and EP).
* The Class E problem has been added to the IS benchmark.
* In version 3.4.1, 'the number of processes' option does not apply.
* MPIFC and FC flags were added.
2021-12-23 18:52:59 -07:00
Glenn Johnson
f3035f98e1 r-htmltools: fix version 0.5.2 (#28124)
The lastest version of r-htmltools needs version 1.1.0 of r-fastmap.
This is not specified in the DESCRIPTION file.
2021-12-23 16:35:09 -07:00
Jen Herting
15951f0e6b New package: py-fastcore (#28148)
* [py-fastcore] created template

* [py-fastcore]

- added dependencies
- added homepage
- added description
- removed fixmes

* [py-fastcore] depends on setuptools
2021-12-23 14:11:17 -07:00
Axel Huebl
1c3881b48a HDF5 package: change 1.10.8/1.13.0 CMake Path (#28103)
These versions change the install location of CMake files used
by dependents, but most dependents don't seem to look in this
new location.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
Co-authored-by: Chris White <white238@llnl.gov>
2021-12-23 12:11:50 -08:00
Jen Herting
704c81eda4 amber package: add ambertools21 for @20 (#28064)
* [amber] added 3 more patches for amber20
* [amber] updated dependencies for @20 (cuda, parallel-netcdf)
2021-12-23 11:39:09 -08:00
Massimiliano Culpo
60a5b2a85e Merge tag 'v0.17.1' into develop 2021-12-23 19:48:36 +01:00
Massimiliano Culpo
4381cb5957 New subcommand: spack bootstrap status (#28004)
This command pokes the environment, Python interpreter
and bootstrap store to check if dependencies needed by
Spack are available.

If any are missing, it shows a comprehensible message.
2021-12-23 10:34:04 -08:00
Andrew W Elble
74d64fd61a py-pymol: update package, new version 2.5.0 (#28044)
* py-pymol: update package, new version 2.5.0

* ensure legacy plugins still load/work
2021-12-23 12:33:53 -05:00
Massimiliano Culpo
82bdda9a89 Reduce the unit tests jobs for the original concretizer
Only test Python 2.7, 3.6 and 3.9
2021-12-23 16:45:06 +01:00
Massimiliano Culpo
e974b44e86 Fix execution of style tests 2021-12-23 16:34:31 +01:00
Massimiliano Culpo
69b8cddb1b Bump version and update CHANGELOG.md 2021-12-23 16:02:09 +01:00
Tom Scogland
8e659f512e locks: allow locks to work under high contention (#27846)
* locks: allow locks to work under high contention

This is a bug found by Harshitha Menon.  

The `lock=None` line shouldn't be a release but should be 
```
return (lock_type, None)
``` 
to inform the caller it couldn't get the lock type requested without
disturbing the existing lock object in the database.  There were also a
couple of bugs due to taking write locks at the beginning without any
checking or release, and not releasing read locks before requeueing.
This version no longer gives me read upgrade to write errors, even
running 200 instances on one box.

* Change lock in check_deps_status to read, release if not installed,
  not sure why this was ever write, but read definitely is more
  appropriate here, and the read lock is only held out of the scope if
  the package is installed.

* Release read lock before requeueing to reduce chance of livelock, the
  timeout that caused the original issue now happens in roughly 3 of 200
  workers instead of 199 on average.
2021-12-23 16:02:09 +01:00
Harmen Stoppels
5daf023aec Regenerate views when specs already installed (#28113)
With this commit:
```
$ spack env activate --temp
$ spack install zlib
==> All of the packages are already installed
==> Updating view at /tmp/spack-faiirgmt/.spack-env/view
$ spack install zlib
==> All of the packages are already installed
```

Before this PR:
```
$ spack env activate --temp
$ spack install zlib
==> All of the packages are already installed
$ spack install zlib
==> All of the packages are already installed
```

No view was generated
2021-12-23 16:02:09 +01:00
Massimiliano Culpo
87abda4cdd py-pandas: fix issue reported by vermin 2021-12-23 16:02:09 +01:00
Morten Kristensen
fa5e186d4a py-vermin: add latest version 1.3.2 (#28072)
* py-vermin: add latest version 1.3.2

* [vermin] Fixed usages of super() without arguments (v3+)
2021-12-23 16:02:09 +01:00
Paul Spencer
e1cc28a30a sbang: respect package permissive package permissions for sbang (#25764)
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-12-23 16:02:09 +01:00
victorusu
17edf1ae90 Add setdefault option to tcl module (#14686)
This commit introduces the command

spack module tcl setdefault <package>

similar to the one already available for lmod

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-23 16:02:09 +01:00
Harmen Stoppels
79fd1c5114 Set backup=False by default in filter_file (#28036) 2021-12-23 16:02:09 +01:00
Harmen Stoppels
13e36c5457 Fix table formatting (#28037) 2021-12-23 16:02:09 +01:00
Harmen Stoppels
b2694013d4 Revert "patches: make re-applied patches idempotent (#26784)" (#27625)
This reverts commit c5ca0db27f.
2021-12-23 16:02:09 +01:00
Andrew W Elble
8f3b025b55 MANPATH needs a trailing ':' to utilize system defaults (#21682)
otherwise spack breaks using system man pages by default.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-23 16:02:09 +01:00
Christian Goll
37fbe30c4a Added opensuse/leap:15 to spack containerize (#27837)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-23 16:02:09 +01:00
Tamara Dahlgren
314867e635 Provide meaningful message for empty environment installs (#28031)
* Provide a meaningful failure message for installation of an empty environment

* Allow regenerating view per offline discussion
2021-12-23 16:02:09 +01:00
Greg Becker
9345bf81b9 Add option to minimize full debug cores. include warning message about performance (#27970)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-23 16:02:09 +01:00
Dan Bonachea
adf4e91658 upcxx: Update the UPC++ package to 2021.9.0 (#26996)
* upcxx: Update the UPC++ package to 2021.9.0

* Add the new release, and a missing older one.

* Remove the spack package cruft for supporting the obsolete build system that
  was present in older versions that are no longer supported.

* General cleanups.

Support for library versions older than 2020.3.0 is officially retired,
for two reasons:

1. Releases prior to 2020.3.0 had a required dependency on Python 2,
   which is [officially EOL](https://www.python.org/doc/sunset-python-2/)
   as of Jan 1 2020, and is no longer considered secure.
2. (Most importantly) The UPC++ development team is unable/unwilling to
   support releases more than two years old.  UPC++ provides robust
   backwards-compatibility to earlier releases of UPC++ v1.0, with very
   rare well-documented/well-motivated exceptions.  Users are strongly
   encouraged to update to a current version of UPC++.

NOTE: Most of the lines changed in this commit are simply re-indentation,
and thus might be best reviewed in a diff that ignores whitespace.

* upcxx: Detect Cray XC more explicitly

This change is necessary to prevent false matches occuring on new Cray Shasta
systems, which do not use the aries network but were incorrectly being treated
as a Cray XC + aries platform.

UPC++ has not yet deployed official native support for Cray Shasta, but this
change is sufficient to allow building the portable backends there.
2021-12-23 16:02:09 +01:00
Harmen Stoppels
20ad47f9e1 Install dir creation message demoted to "debug" level (#27911) 2021-12-23 16:02:09 +01:00
Greg Becker
7e5de95a30 Improve debug info from concretizer (#27707) 2021-12-23 16:02:09 +01:00
Massimiliano Culpo
e9f7fb03c9 spack audit: fix API calls (#27713)
This broke in #24858
2021-12-23 16:02:09 +01:00
Paul Ferrell
9d4291e590 Handle byte sequences which are not encoded as UTF8 while logging. (#21447)
Fix builds which produce a lines with non-UTF8 output while logging
The alternative is to read in binary mode, and then decode while
ignoring errors.
2021-12-23 16:02:09 +01:00
Harmen Stoppels
8f98f1d182 Use bash in setup_git.sh (#27676) 2021-12-23 16:02:09 +01:00
Harmen Stoppels
654f6839eb ci: run style unit tests only if we target develop (#27472)
Some tests assume the base branch is develop, but this branch may not
have been checked out.
2021-12-23 16:02:09 +01:00
Harmen Stoppels
c8daa7218d Turn some verbose messages into debug messages (#27408) 2021-12-23 16:02:09 +01:00
Harmen Stoppels
d862507bcf Fix overloaded argparse keys (#27379)
Commands should not reuse option names defined in main.
2021-12-23 16:02:09 +01:00
Jordan Galby
7c6b253d89 Fix log-format reporter ignoring install errors (#25961)
When running `spack install --log-format junit|cdash ...`, install
errors were ignored. This made spack continue building dependents of
failed install, ignoring `--fail-fast`, and exit 0 at the end.
2021-12-23 16:02:09 +01:00
Robert Underwood
abd418cc31 openmpi fix external find for 0.17 (#27255) 2021-12-23 16:02:09 +01:00
Dylan Simon
544826c825 make --enable-locks actually enable locks (#24675) 2021-12-23 16:02:09 +01:00
Vinícius
afd65a4cd0 simgrid package: add versions 3.28 and 3.29 (#28118) 2021-12-23 02:53:14 -07:00
Hadrien G
b6da473800 acts: add v15.1 and record incompatibility (#27942)
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2021-12-22 23:02:16 -07:00
Christoph Junghans
eee0f2b9d5 votca-*: merge packages into one (#28073)
* votca-*: merge packages into one

* Update package.py

* votca-*: make old version as deprecated

* votca-*: mark stable deprecated as well
2021-12-22 21:42:14 -07:00
Jen Herting
cb5d53e5a9 New package: py-qpth (#28047)
Co-authored-by: Doug Heckman <dahdco@rit.edu>
2021-12-22 20:29:08 -07:00
albestro
b5ba20ada4 New package: tree-sitter (#28110) 2021-12-22 19:18:09 -08:00
Bernhard Kaindl
d236b9438d llvm: Fix the llvm versions for using the MicrosoftDemange patch (#28140) 2021-12-22 16:53:10 -07:00
Tom Scogland
b7b6542804 locks: allow locks to work under high contention (#27846)
* locks: allow locks to work under high contention

This is a bug found by Harshitha Menon.  

The `lock=None` line shouldn't be a release but should be 
```
return (lock_type, None)
``` 
to inform the caller it couldn't get the lock type requested without
disturbing the existing lock object in the database.  There were also a
couple of bugs due to taking write locks at the beginning without any
checking or release, and not releasing read locks before requeueing.
This version no longer gives me read upgrade to write errors, even
running 200 instances on one box.

* Change lock in check_deps_status to read, release if not installed,
  not sure why this was ever write, but read definitely is more
  appropriate here, and the read lock is only held out of the scope if
  the package is installed.

* Release read lock before requeueing to reduce chance of livelock, the
  timeout that caused the original issue now happens in roughly 3 of 200
  workers instead of 199 on average.
2021-12-22 16:25:05 +01:00
Joseph Snyder
34873f5fe7 Use consistent method of checking for presence of info in connection (#27694)
Fixes #27652

Ensure that mirror's to_dict function returns a syaml_dict object for all code
paths.

Switch to using the .get function for accessing the potential information from
the S3 mirror objects.  If the key is not there, it will gracefully return
None instead of failing with a KeyError

Additionally, check that the connection object is a dictionary before trying
to "get" from it.

Add a test for the capturing of the new S3 information.
2021-12-22 16:15:49 +01:00
Pat Riehecky
522a7c8ee0 New package: microsocks (#27859) 2021-12-21 16:55:15 -08:00
Mark Olesen
433f743074 openfoam package: add v2112 release and latest patched v2106 (#28108)
Also remove x86_64-only handling for Darwin
2021-12-21 16:47:39 -08:00
Seth R. Johnson
38196894db perl: fix macOS build (#26290)
* perl: fix macOS build

With both 5.34.0 and 5.32.1 the build fails on macos-bigsur-skylake
%clang@12.0.5 and %clang13.0.0 :
```
2 errors found in build log:
     579013    /private/var/folders/fy/x2xtwh1n7fn0_0q2kk29xkv9vvmbqb/T/s3j/spack-stage/spack-stage-perl-5.34.0-tpha2u52qfwaraidpzzbf6u4dbqg7dk5/spack-src/cpan/
               Math-BigInt-FastCalc/../../miniperl "-I../../lib" -MExtUtils::Command::MM -e 'cp_nonempty' -- FastCalc.bs ../../lib/auto/Math/BigInt/FastCalc/Fas
               tCalc.bs 644
     579014
     579015    	Everything is up to date. Type '/Applications/Xcode.app/Contents/Developer/usr/bin/make test' to run test suite.
     579016    DYLD_LIBRARY_PATH=/private/var/folders/fy/x2xtwh1n7fn0_0q2kk29xkv9vvmbqb/T/s3j/spack-stage/spack-stage-perl-5.34.0-tpha2u52qfwaraidpzzbf6u4dbqg7d
               k5/spack-src  ./perl -Ilib -I. installperl --destdir=
     579017    WARNING: You've never run 'make test' or some tests failed! (Installing anyway.)
     579018      /rnsdhpc/code/spack/opt/spack/apple-clang/perl/tpha2u5/bin/perl5.34.0
  >> 579019    install_name_tool: error: sh -c '/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild -sdk /Applications/Xcode.app/Contents/Developer/Pl
               atforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk -find install_name_tool 2> /dev/null' failed with exit code 256: (null) (errno=Invalid argument
               )
     579020    xcode-select: Failed to locate 'install_name_tool', requesting installation of command line developer tools.
     579021    Cannot update /rnsdhpc/code/spack/opt/spack/apple-clang/perl/tpha2u5/bin/perl5.34.0 dependency paths
  >> 579022    make: *** [install-all] Error 72
```
This is due to SYSTEM_VERSION_COMPAT being set.

* perl: conditionally set SYSTEM_VERSION_COMPAT based on CLT

The version of command line tools is the only difference between
@alalazo and my builds: his (v11) works only when SYSTEM_VERSION_COMPAT
is set to 1, and mine (v12.5 and v13) only work when it is unset.
2021-12-21 22:22:35 +01:00
Harmen Stoppels
db69a291d4 Regenerate views when specs already installed (#28113)
With this commit:
```
$ spack env activate --temp
$ spack install zlib
==> All of the packages are already installed
==> Updating view at /tmp/spack-faiirgmt/.spack-env/view
$ spack install zlib
==> All of the packages are already installed
```

Before this PR:
```
$ spack env activate --temp
$ spack install zlib
==> All of the packages are already installed
$ spack install zlib
==> All of the packages are already installed
```

No view was generated
2021-12-21 18:41:12 +01:00
snehring
389beaef97 structure: fixing build errors with gcc10+ removing unused dep (#28097) 2021-12-21 18:39:26 +01:00
iarspider
8ebad6963b New package: py-onnxmltools and dependencies (#28023)
* New package: py-onnxmltools and dependencies

* Small fix

* Changes from review

* Apply suggestions from code review

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

* Update recipe following review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-21 11:15:13 -06:00
dependabot[bot]
43042c14e0 build(deps): bump docker/login-action from 1.10.0 to 1.12.0 (#28100)
Bumps [docker/login-action](https://github.com/docker/login-action) from 1.10.0 to 1.12.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](f054a8b539...42d299face)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-21 11:29:40 +01:00
snehring
6b91d3700b soapdenovo2: fixing compiler errors in gcc10+ (#28098) 2021-12-21 10:51:47 +01:00
Adam J. Stewart
7aa2bdca44 py-build: add virtualenv variant (#28099) 2021-12-21 10:43:42 +01:00
snehring
5005e9a856 pcma: fixing compilation issues with gcc10+ (#28101) 2021-12-21 10:41:44 +01:00
Chris White
0a43dd1019 axom: add v0.6.1, fixed e4s builds (#28067) 2021-12-21 10:40:16 +01:00
Marie Houillon
a6d89853d4 openCARP packages: add version 8.2 (#28087)
Co-authored-by: openCARP consortium <info@opencarp.org>
2021-12-20 19:09:41 -08:00
Brian Spilner
116deb0386 CDO package: add version 2.0.2 (#28086)
Also fix URL for version 2.0.1 (sha256 is not changed)
2021-12-20 19:08:49 -08:00
Jen Herting
6647b2a4ca New package: py-ctgan (#28050)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-20 19:07:21 -08:00
Valentin Volkl
6c62fa461e harfbuzz package: add version 2.9.1 (#27927) 2021-12-20 18:29:52 -08:00
Jen Herting
e9edb5c96b New package: py-liac-arff (#28046) 2021-12-20 18:18:09 -08:00
Jen Herting
9869a2d0da New package: py-rdt (#28048)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-20 18:10:52 -08:00
Jen Herting
024c2b690a New package: py-faker (#28049)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-20 18:08:53 -08:00
Enrico Usai
cd211acd80 aws-parallelcluster: add v2.11.4 (#28094)
Also remove tilne from admins.
2021-12-20 16:49:49 -08:00
Anton Kozhevnikov
494f0053ae add sha256 sum (#28095) 2021-12-20 15:50:18 -07:00
Robert Cohn
d45280369f Intel oneAPI packages: add 2022.1.1 release (#28096)
Co-authored-by: Egorov, Andrey <andrey.egorov@intel.com>
2021-12-20 14:06:32 -08:00
Adam J. Stewart
c68652c88c py-torchgeo: add v0.1.1 (#28082) 2021-12-20 16:18:27 +01:00
Vanessasaurus
a94b4eef79 Fixing spacing of libabigail to : (#28085) 2021-12-20 03:56:03 -07:00
Erik Schnetter
94dd9685cc nsimd: Declare missing py-chardet dependency (#28030)
Found by @stevenrbrandt.
2021-12-20 08:43:31 +01:00
Adam J. Stewart
a0f175f327 py-nbconvert: add v6.3.0 (#28075) 2021-12-20 07:57:27 +01:00
Wouter Deconinck
ea692ca6f7 assimp: add v5.1.4 (#28079) 2021-12-20 07:48:07 +01:00
Adam J. Stewart
02aab770db py-kornia: add v0.6.2 (#28080) 2021-12-20 07:30:34 +01:00
Adam J. Stewart
cdc5c44bb1 py-numpy: add v1.21.5 (#28081) 2021-12-20 07:30:17 +01:00
Vanessasaurus
da9e152ed1 Fix bugs in spack monitor (#27511)
Updates to installer.py did not account for spack monitor, so as currently implemented
there are three cases of failure that spack monitor will not account for. To fix this we add additional
hooks, including an on cancel and also do a custom action on concretization fail.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-12-20 06:54:41 +01:00
Seth R. Johnson
ece1e3905e cmake: new versions 3.22.x (#28077) 2021-12-19 19:59:00 -07:00
Todd Gamblin
bfc69f0e4b jsonschema: use more specific schema identifiers
The latest version of `jsonschema` fails if we're not specific about which schema draft
specification we're using.  Update all of them to use the latest one (draft-07).
2021-12-19 12:55:42 -08:00
Todd Gamblin
7703043195 externals: Upgrade jsonschema to v3.2.0
Our `jsonschema` external won't support Python 3.10, so we need to upgrade it.
It currently generates this warning:

    lib/spack/external/jsonschema/compat.py:6: DeprecationWarning: Using or importing the ABCs
        from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and
        in 3.10 it will stop working

This upgrades `jsonschema` to 3.2.0, the latest version with support for Python 2.7.  The next
version after this (4.0.0) drops support for 2.7 and 3.6, so we'll have to wait to upgrade to it.

Dependencies have been added in prior commits.
2021-12-19 12:55:42 -08:00
Todd Gamblin
f83e0fb81a externals: add attrs for new jsonschema
Updating `jsonschema` to 3.2.0 requires `attrs`. Add it to externals.
2021-12-19 12:55:42 -08:00
Todd Gamblin
90592b3cbe externals: add pyrsistent for new jsonschema
Updating `jsonschema` to 3.2.0 requires `pyrsistent`. Adding just the pieces of it
that are needed for `jsonschema`.
2021-12-19 12:55:42 -08:00
Todd Gamblin
04536db387 externals: add functools32 for new jsonschema
Updating `jsonschema` to 3.2.0 requires `functools32`, just for Python 2.
2021-12-19 12:55:42 -08:00
Tamara Dahlgren
e470131a77 Tests: remove test_get_stage_root_in_spack since it writes to the spack directory (#28056) 2021-12-19 11:31:38 -08:00
Wouter Deconinck
1e35d06bf0 geant4: new version 11.0.0 (preferred remains 10.7.3) (#27931)
* [geant4] new version 11.0.0

* [geant4] prefer 10.7.3 for now

* [vecgeom] new version 1.1.18

* [clhep] new version 2.4.5.1

* [g4emlow] new version 8.0

* [g4particlexs] new version 4.p

* [geant4-data] new version 11.0.0

* [geant4] @11.0.0: cxxstd=17: ^clhep@2.4.5.1: ^vecgeom@1.1.18:

* [geant4] depends_on cmake@3.16:

* [geant4-data] remove g4tendl comment

* [g4tendl] new version 1.4

* [geant4] default cxxstd=11 when @10, 17 when @11; use CMAKE_CXX_STANDARD

* [geant4] variant tbb whe @11:, depends_on tbb, sets GEANT4_USE_TBB

* [geant4] new variant vtk when @11:, depends_on vtk@8.2:

* [geant4] simplify GEANT4_USE_VTK with define_from_variant

* [geant4] remove variant cxxstd conditional again

* [geant4] flake8 space after comma
2021-12-19 10:43:59 -05:00
Adam J. Stewart
1a576e732e Python: default to 3.9 (#27997)
Both [Anaconda](https://www.anaconda.com/products/individual) and [Homebrew](https://formulae.brew.sh/formula/python@3.9) now default to Python 3.9, so Spack should follow suit.

I also added Python 3.10 while I was at it. Confirmed that it builds successfully on macOS 10.15.7 with Apple Clang 12.0.0. I'm unable to test the Cray and Fujitsu patches.

Fixes #27921
2021-12-19 00:08:20 -08:00
Paul Spencer
30244c2c40 sbang: respect package permissive package permissions for sbang (#25764)
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-12-18 22:07:20 -08:00
Morten Kristensen
9ace418371 py-vermin: add latest version 1.3.2 (#28072)
* py-vermin: add latest version 1.3.2

* [vermin] Fixed usages of super() without arguments (v3+)
2021-12-18 11:17:02 -07:00
Stephen McDowell
87978f7989 skip googletest and googlebenchmark for header only library (#28068) 2021-12-18 10:29:05 -06:00
Larry Knox
e96b91dd37 HDF5 package: add version 1.13.0 (#28010) 2021-12-17 14:47:47 -08:00
AMD Toolchain Support
541ccd6669 What's new in AOCL 3.1 (#27988)
* What's new in AOCL 3.1

1) AMD BLIS:
    1.a) Supports Dynamic Dispatch and AOCL Dynamic feature
    1.b) Improvements in DGEMM, ZGEMM, DTRSM, DSYRK, xGEMV, and DOTV
2) AMD libFLAME:
    2.a) Supports LAPACK 3.10.0 specification
    2.b) Optimized factorization and ZGEEV routines
3) AMD FFTW:
    3.a) Features like 'AMD application optimization layer', 'Fast MPI transpose algorithm' and 'Top N planner' are added
4) AMD LibM:
    4.a) Optimized exp2, log2 (Single and Double precision) scalar and vector
    4.b) Optimized log10f (scalar and vector) and powf vector variants to support WRF4.1.2 benchmark
5) AOCL-Sparse:
    5.a) New API for sparse matrix and dense matrix multiplication
6) AMD ScaLAPACK:
    6.a) ILP64 support has been enabled
7) AOCL enabled MUMPS library:
    7.a) CMake based build system on Windows for AOCL enabled MUMPS sparse solver library will be available shortly on GitHub
        7.a.i)	Refer https://github.com/amd/mumps-build
    7.b) Spack-based recipe on Linux for AOCL enabled MUMPS sparse solver library will be enabled shortly

* Fix invalid version range error

* Incorporated review comments

1) Restore to previous url value
2) Instead of if else statements, used spack's enable_or_disable feature

* Incorporated following review comments:

1. Use of satisfies() for spec checks
2. Seperate conflict statements to check for minimum and maximum GCC versions
3. Used CMakePackage helpers
4. Code rearrangement to have the directives listed before methods
2021-12-17 09:28:41 -08:00
Valentin Volkl
140e8085dd sherpa: add new package (#27592)
Co-authored-by: Wouter Deconinck <wdconinc@gmail.com>
2021-12-17 18:16:58 +01:00
AMD Toolchain Support
2597fff76b FFTW3 library inclusion (#27936)
Co-authored-by: mohan babu <mohbabul@amd.com>
2021-12-17 18:11:59 +01:00
iarspider
225595235c New package: py-xrootdpyfs (#28058)
* New package: py-xrootdpyfs

* Add old version of py-fs

* Replace 2to3.patch with running 2to3

* Just restriuct setuptools version

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-17 10:11:20 -07:00
Vanessasaurus
d9c4b91af3 Remove ability to run spack monitor without auth (#27888)
spack monitor now requires authentication as each build must be associated
with a user, so it does not make sense to allow the --monitor-no-auth flag
and this commit will remove it
2021-12-17 18:00:43 +01:00
Max Zeyen
ee2974869c gpi-2: add version 1.3.3 (#27881) 2021-12-17 17:57:48 +01:00
Adeeb Arif Kor
c940e9fc7e dolfinx: add ADIOS2 variant (#27540) 2021-12-17 17:55:30 +01:00
Tom Payerle
c3a929fdfc suite-sparse: fix issues with tbb (#28054)
* suite-sparse: Fix check for +/- tbb variant

Changed
'tbb' in spec
to
'+tbb' in spec

The former would configure suite-sparse to use tbb if any dependency
package (e.g. intel-oneapi-mkl) depends on tbb, even if
suite-sparse~tbb was specified.

* suite-sparse: conflict when trying to use 2021.x versions of tbb

See https://github.com/DrTimothyAldenDavis/SuiteSparse/issues/72

suite-sparse depends on task_schedule_init to control the number
of threads when e.g. interfacing with MATLAB.  However, Intel
dropped task_schedule_init in the 2021.x releases of TBB (it has
been deprecated since TBB 4.3.5).

We just raise a spack conflict when using tbb @2021.x and +tbb

Because tbb is a virtual package and is not versioned, I have
instead checked for either intel-oneapi-tbb@2021: or
intel-tbb@2021:, not the most elegant but should do the job

* suite-sparse: fix style issues
2021-12-17 09:32:59 -07:00
Manuela Kuhn
6313d84d38 r-viridislite: add 0.4.0 (#27872) 2021-12-17 17:19:42 +01:00
snehring
10ccbc9a2c bridger: fixing issues with newer compilers (#28008) 2021-12-17 17:14:44 +01:00
Drew Whitehouse
bbe69aa725 libcxxwrap-julia: fix the git branch name master -> main (#28033) 2021-12-17 17:03:03 +01:00
Adam J. Stewart
8b3858081d py-mypy: add v0.920 (#28034) 2021-12-17 17:02:06 +01:00
Adam J. Stewart
809d0523d9 Add py-pytorch v1.10.1 and py-pytorchvision v0.11.2 (#28055) 2021-12-17 16:14:54 +01:00
haralmha
e1f6a2e6b5 Specify dependencies to py-setuptools@:57.99 for packages using 2to3 (#27777) 2021-12-17 08:08:01 -06:00
Wouter Deconinck
956bb91cfe [autodiff] new package for optional dependency of acts (#28028) 2021-12-17 14:22:46 +01:00
Wouter Deconinck
23cb7d761e [vecmem] new package for optional dependency of acts (#28029) 2021-12-17 14:21:51 +01:00
Wouter Deconinck
1813a809ff [acts] depends_on dd4hep +dddetectors (+ddg4 when +geant4) (#27861) 2021-12-17 14:17:52 +01:00
ravil-mobile
e3f0be41d4 Updated dpcpp package (#27953)
* Added installation of OpenMP as an option
* Added a softlink (dpcpp) to clang++ to
mimic the packaged version of dpcpp

Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
2021-12-17 14:16:13 +01:00
iarspider
618fd04729 py-vector: add new package (#28057) 2021-12-17 14:14:38 +01:00
Harmen Stoppels
04bed42831 libtree: add v3.0.1 (#28040) 2021-12-17 10:34:24 +01:00
Massimiliano Culpo
661fd7bb67 Fix building container images (#28063)
* Fix building container images

Patchelf is bootstrapped from sources, so we cannot
disable that mechanism until a finer selection is
possible in the configuration.

* Build on changes to the Dockerfile

* Don't login to Dockerhub on PRs
2021-12-17 09:19:21 +00:00
victorusu
18615b1485 Add setdefault option to tcl module (#14686)
This commit introduces the command

spack module tcl setdefault <package>

similar to the one already available for lmod

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-17 10:05:32 +01:00
AMD Toolchain Support
f754ed9788 Additional flags for ROMS (#27951)
Co-authored-by: mohan babu <mohbabul@amd.com>
2021-12-16 19:47:20 -08:00
iarspider
6443086222 CMake: fix rhash detection (#27944)
* RHash: update version; create symlink librash.so

* Install headers

* Flake-8

* Update package.py

* Update package.py

* Update package.py (#19)

* Update package.py

* Update package.py

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

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

* Fix installation on macOS

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-16 18:02:26 -07:00
Larry Knox
556565ca0d hdf5: add version 1.10.8 (#27613)
* Update hdf5/package.py to add HDF5 1.10.8 release and move
  preferred version from 1.10.7 to 1.10.8.
* silo: versions before 4.11 conflict with hdf5 >= 1.10.8.
* Add patch file for silo@4.11 with hdf5 1.10 >=1.10.8 and
  hdf5 1.12 >= 1.12.1.
2021-12-16 16:51:02 -08:00
Satish Balay
40886599ce petsc: enable +rocm+kokkos (#27779)
Also fix kokkos-kernels when kokkos is built with +rocm
2021-12-16 14:47:31 -08:00
eugeneswalker
2310da0070 rocprofiler-dev package: needs numactl as link dep for tests (#27839) 2021-12-16 14:17:05 -08:00
Jen Herting
e76de4138e New package: py-pynisher (#28052)
* [py-pynisher] created template

* [py-pynisher]

- Added homepage
- Added description
- Removed fixmes
- added dependencies
2021-12-16 14:21:45 -06:00
Howard Pritchard
43aeb4e48e OpenMPI Package: add variant for romio (#27897)
Add option to disable the internal romio build.
2021-12-16 10:49:28 -08:00
iarspider
305f1d68d6 New package: py-scinum (#28041)
* New package: py-scinum

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-16 11:29:14 -07:00
Tracy-Pantleo
1b273ed5c9 wonton package: fix reference error (#27963) 2021-12-16 09:55:37 -08:00
iarspider
bb1d0d1900 New package: py-schema (#28039) 2021-12-16 11:54:59 -06:00
iarspider
f262693983 New package: py-shellingham (#28043) 2021-12-16 11:43:52 -06:00
iarspider
8c81469f94 New version: py-correctionlib 2.1.0 (#28051) 2021-12-16 10:36:57 -07:00
vijay kallesh
6c250640c4 aocc: add v3.2.0 (#27946)
Co-authored-by: amd-toolchain-support <toolchainsupport@amd.com>
2021-12-16 14:37:59 +01:00
Harmen Stoppels
fb93979b94 Set backup=False by default in filter_file (#28036) 2021-12-16 13:50:20 +01:00
Harmen Stoppels
6357de4e61 Fix table formatting (#28037) 2021-12-16 12:13:12 +00:00
Andrew W Elble
96535cc4f9 MANPATH needs a trailing ':' to utilize system defaults (#21682)
otherwise spack breaks using system man pages by default.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-16 10:54:35 +00:00
Christian Goll
bd0ffa8a3c Added opensuse/leap:15 to spack containerize (#27837)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-16 09:47:15 +00:00
Tamara Dahlgren
ac49ce8b3b Provide meaningful message for empty environment installs (#28031)
* Provide a meaningful failure message for installation of an empty environment

* Allow regenerating view per offline discussion
2021-12-15 22:56:54 -08:00
Tamara Dahlgren
9240614928 Bugfix: Simplify preferred-test versions; set checksum defaults (#28026)
* Simplify preferred-test versions; set checksum defaults

* Fix test_preferred failure
2021-12-16 06:55:28 +01:00
snehring
89044ff5d5 delly2: updating to v0.9.1 (#28000) 2021-12-16 06:47:11 +01:00
Thomas Green
315f01fc96 meep: fixed dependencies (#27574)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-16 06:44:26 +01:00
snehring
e99aff93e1 samtools: fixing build issue due to change in 1.14 (#28024) 2021-12-16 06:34:22 +01:00
AMD Toolchain Support
42677ded8e Fix for OpenFOAM pthread issue for AOCC 3.2 (#27949)
* Fix for OpenFOAM pthread issue for AOCC 3.2

* addressing the review comments

* updating when command for aocc v3.2.0 and above

Co-authored-by: mohan babu <mohbabul@amd.com>
2021-12-15 21:45:17 -06:00
Dennis R Kennetz
d375a7ea0a pcre package: update download URL (#27867)
* ftp url is dead as stated in the home page. The sha256 is the same in the sourceforge dl.
* added myself as a maintainer per spackbot's rec
2021-12-15 18:58:13 -08:00
Jen Herting
3b4c622661 New package: py-copulas (#27920)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-15 18:56:13 -08:00
Erik Schnetter
ba87593afd mpitrampoline package: add versions up to 2.8.0 (#27928) 2021-12-15 18:53:03 -08:00
Adam J. Stewart
af1ec6275d py-matplotlib: add v3.5.1 (#27929) 2021-12-15 18:52:21 -08:00
Adam J. Stewart
3ff2fb43cf py-pandas: add v1.3.5 (#27930) 2021-12-15 18:52:02 -08:00
Wouter Deconinck
a148e37c4c assimp package: add version 5.1.3 (#27934) 2021-12-15 18:51:01 -08:00
Thomas Gruber
4d876bac0c likwid package: add version 5.2.1 (#27935) 2021-12-15 18:49:19 -08:00
Asher Mancinelli
114b35144e ExaGO package: add version 1.2.0; update dependency constraints (#27961)
* PETSc is a core dependency, yet we left a variant for PETSc.
  This was removed, and ExaGO always depends on PETSc. The CMake
  arguments were updated accordingly.
* camp+cuda is only a dependency when we build with RAJA and CUDA.
2021-12-15 18:23:36 -08:00
snehring
69184dc390 opa-psm2 package: add version 11.2.206 (#27968) 2021-12-15 18:13:22 -08:00
Mikhail Titov
70aea4cd82 RADICAL-Cybertools packages: add versions (#28002)
* py-radical-entk: add version 1.9.0
* py-radical-pilot: add version 1.10.1
* py-radical-utils: add version 1.9.1
* py-radical-utils: requires py-pymongo less than version 4
2021-12-15 17:53:05 -08:00
Adam J. Stewart
e091eacde0 New package: py-trojanzoo-sphinx-theme (#27972) 2021-12-15 17:48:43 -08:00
Adam J. Stewart
9447ec9600 py-sphinx package: add version 4.3.1 (#27933) 2021-12-15 16:22:22 -08:00
iarspider
351a1d8d37 New package: py-pysqlite3 (#28020)
* New package: py-pysqlite3

* Apply suggestions from code review

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-15 14:35:07 -07:00
iarspider
b0f996c8ef New package: py-prwlock (#28017) 2021-12-15 12:00:28 -06:00
iarspider
4de197f778 New package: py-pybrain (#28019) 2021-12-15 11:59:04 -06:00
iarspider
bd7d3faa10 New package: py-parsimonious (#28015) 2021-12-15 11:29:36 -06:00
iarspider
bc152da68b New version: py-prompt-toolkit 3.0.24 (#28016) 2021-12-15 11:17:25 -06:00
Harmen Stoppels
72ca7d6ee5 Revert "patches: make re-applied patches idempotent (#26784)" (#27625)
This reverts commit c5ca0db27f.
2021-12-15 08:56:03 -08:00
Harmen Stoppels
acc688b5e1 libtree: add v3.0.0 (#28011) 2021-12-15 17:38:10 +01:00
Adam J. Stewart
0cf3176462 open3d: add new package (#27577) 2021-12-15 17:34:22 +01:00
kwryankrattiger
116e1bb6cb mesa: check correct LLVM variant for dylib (#27862) 2021-12-15 16:37:35 +01:00
Wouter Deconinck
9c1be2a510 mesa: add v21.2.6, v21.3.1 (#27796) 2021-12-15 14:13:52 +01:00
Greg Becker
5319b6e3b1 Add option to minimize full debug cores. include warning message about performance (#27970)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-12-15 08:52:53 +01:00
iarspider
ce94a786ae New package: py-neurolab (#27996)
* New package: py-neurolab

* Update package.py

* Update package.py
2021-12-14 15:23:06 -07:00
iarspider
25c29d277f New package: py-lizard (#27994)
* New package: py-lizard

* Update package.py
2021-12-14 14:44:19 -07:00
iarspider
e51337fcd9 New package: py-nbdime (#27995) 2021-12-14 15:22:24 -06:00
Zack Galbreath
3139894794 ci: Catch Exceptions when attempting to register a CDash build (#27883)
This PR also slightly changes the behavior in ci_rebuild().
We now still attempt to submit `spack install` results to CDash
even if the initial registration failed due to connection issues.

This commit follows in the spirit of #24299. We do not want `spack install`
to exit with a non-zero status when something goes wrong while attempting to
report results to CDash.
2021-12-14 14:18:08 -07:00
iarspider
5bbb63ed93 New package: py-law (#27993) 2021-12-14 15:04:46 -06:00
iarspider
bc618c2c6c OpenLDAP package: update dependencies for 2.6.0 (#27830)
Update a number of dependency constraints for @2.6.0: (including
adding new optional dependency package wiredtiger).
2021-12-14 11:27:02 -08:00
downloadico
97a1d48512 Abinit package: add option to install tests (#27842) 2021-12-14 11:04:28 -08:00
Harmen Stoppels
9ec638c7bb Add libtree 3.0.0-rc9 (#27990) 2021-12-14 14:17:38 +01:00
iarspider
c1d51593d1 New packages: py-keras2onnx, py-onnxconverter-common (#27962)
* New packages: py-keras2onnx, py-onnxconverter-common

* Update package.py (#18)

* Update package.py

* Update package.py
2021-12-13 12:47:27 -07:00
Massimiliano Culpo
948bc98fa6 Add a CI job to audit all the packages in the built-in repository (#27945)
* Add a CI job to audit all the packages in the built-in repository

* flecsi: fixed typo for dependency on legion

* py-pythonqwt: fix a typo in variant name

* sollve: removed a conflict with a non-existing variant

* acts: fixed use of wrong variant in dd4hep

Also removed duplicated variant declaration in dd4hep

* aoflagger: update variant of a dependency

Issues introduced indirectly in #22925

* camellia: removed unused variant

Issue introduced indirectly in #26150

* cbtf-*: remove cti variants and dependency on mrnet+cti

Issue introduced in #14178

* flecsale: update variants to match flecsi

Issue introduced in #11679

* grnboost: fixed issue with non-existing variant in a dependency

This package possibly never worked since #8763

* nalu: fixed issue with non-existing variant in a dependency

* open-iscsi: fixed issue with non-existing variant in a dependency

* openspeedshop-*: remove use of non-existing mrnet+cti variant

* percept: fixed issue with non-existing variant in a dependency

* phyluce: fixed issue with non-existing variant in a dependency

Issue introduced in #12952

* phyluce: fixed issue with non-existing variant in a dependency

Issue introduced in #22340
2021-12-13 10:44:15 -08:00
Scot Halverson
28d31316b7 CPU Architecture support (#27924)
* CPU Architecture Support

This commit removes the `native` variant in favor of Spack's built-in support for specifying a target cpu architecture.  It also passes this information to the Legion build system so that it correctly passes the architecture to GASNet when built internally

* fixing whitespace

* Update package.py

based on a conversation with @streichler, this change sets `BUILD_MARCH` to an empty string, which will prevent legion's CMake build system from inserting `-march=native` and allow Spack to provide the correct architecture flags.

* Update package.py

adding a comment on what problem this MR solves.

* Update package.py

formatting
2021-12-13 10:06:57 -08:00
iarspider
f876813531 New package: py-histbook (#27956) 2021-12-13 11:55:57 -06:00
iarspider
ec8ef9d292 New package: py-histogrammar (#27957) 2021-12-13 11:55:09 -06:00
iarspider
7836b60825 New package: py-jupyter-server-mathjax (#27958) 2021-12-13 11:54:01 -06:00
Manuela Kuhn
17367a702e r-packrat: add 0.7.0 (#27901) 2021-12-13 11:19:39 -06:00
Manuela Kuhn
1bd2c40228 r-rsconnect: add 0.8.17 (#27900) 2021-12-13 11:19:18 -06:00
Manuela Kuhn
71e71c0b60 r-vroom: add 1.5.7 (#27874) 2021-12-13 11:18:38 -06:00
Manuela Kuhn
f920976fa6 r-r6: add 2.5.1 (#27871) 2021-12-13 11:16:47 -06:00
eugeneswalker
26dcb0ffc4 vtk-m +cuda: conflicts with cuda_arch=none (#27916) 2021-12-13 08:46:09 -08:00
Harmen Stoppels
f6802b733a Install dir creation message demoted to "debug" level (#27911) 2021-12-13 11:45:31 +01:00
iarspider
7b9ce3a940 New package: py-hep-ml (#27909) 2021-12-11 14:41:08 -07:00
iarspider
dc88538e80 New package: py-grpcio-tools; add new version of py-grpcio (#27907) 2021-12-11 14:35:07 -07:00
Axel Huebl
9875a0e228 PICMI: 0.16 & 0.18 & WarpX 1D (#27876)
* PICMI: 0.16 & 0.18 & WarpX 1D

Update the `py-picmistandard` and the latest WarpX release.
Preparing 1D support (testable inputs coming for 22.01+).

* Fix style: overlong line

* Update pypi example link

* Fix requirement ranges

* WarpX 21.12: Update Patch

Follow-up from
  https://github.com/ECP-WarpX/WarpX/pull/2646

* fix style

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-11 14:14:00 -07:00
Sergey Kosukhin
ee46a1077c openjpeg: add missing dependencies and optionally disable them (#27904)
* openjpeg: add missing dependencies and optionally disable them

* openjpeg: remove variant 'ownlibs'

* openjpeg: bugfix

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

* openjpeg: do not build CODEC executables by default

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-11 11:51:17 -06:00
Manuela Kuhn
5d11bc9a77 r-emmeans: add 1.7.1-1 (#27870) 2021-12-10 22:27:06 -06:00
Manuela Kuhn
a9b2a18880 r-dt: add 0.20 (#27868) 2021-12-10 22:26:10 -06:00
Peter Brady
27ba835236 lua package: fix build with ncurses~termlib (#27863)
Get link flags directly from dependencies rather than hardcoding
2021-12-10 20:24:33 -08:00
Satish Balay
e4da7db567 superlu-dist: superlu-cray-ftn-case.patch patch does not apply for versions older than 7.1.0 (#27913) 2021-12-10 21:58:22 -06:00
Satish Balay
2f35b0487b petsc, py-petsc4py: add versions 3.16.2 (#27841) 2021-12-10 21:58:09 -06:00
Manuela Kuhn
81bb380916 r-cpp11 package: add version 0.4.2 (#27869) 2021-12-10 19:53:16 -08:00
Manuela Kuhn
08573b4cb8 r-htmltools package: add version 0.5.2 (#27899) 2021-12-10 19:03:38 -08:00
eugeneswalker
b9717ca261 vtk-h +cuda: pass cuda_arch to vtk-m dependency (#27923) 2021-12-10 17:32:11 -07:00
Filippo Spiga
5d6a9a70c8 Adding NVIDIA HPC SDK 21.11 (#27910) 2021-12-10 15:04:38 -08:00
Timothy Brown
f3b5704663 [parallelio] add variant to turn off timing messages. (#27590)
* [parallelio] add variant to turn off timing messages.
2021-12-10 14:58:49 -08:00
iarspider
d5773ac5bf New package: py-hist and it's dependencies (#27914)
* New package: py-hist and it's dependencies

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

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

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

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

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

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

* Update py-hist recipe

* Update package.py

* Fix py-iminuit recipe (requires py-cmake now)

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-10 18:31:22 +00:00
Ye Luo
363a263114 Update quantum-espresso package (#27808)
* Override compiler as MPI wrapper in CMake.

* Refine quantum-espresso variant interations.

* Correct formatting.
2021-12-10 10:18:32 -08:00
iarspider
140a2721e6 New package: py-correctionlib (#27882)
* New package: py-correctionlib

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

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

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

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

* Add py-make and update py-correctionlib recipe

* Add py-bind11 dependency

* Update package.py

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-10 11:34:31 -06:00
iarspider
8b6bb245db New package: py-flawfinder (#27887)
* New package: py-flawfinder

* Build py-flawfinder from source

* Update package.py
2021-12-10 11:25:21 -06:00
iarspider
059bc53760 New package: py-hepdata-lib (#27912) 2021-12-10 11:24:22 -06:00
Adam J. Stewart
0960c0810c Extends: support spec, not just package name (#27754) 2021-12-10 13:30:21 +01:00
Greg Becker
dc87157e80 Improve debug info from concretizer (#27707) 2021-12-10 10:49:33 +01:00
Massimiliano Culpo
d17511a806 Refactor "spack buildcache" command (#27776)
This PR is meant to move code with "business logic" from `spack.cmd.buildcache` to appropriate core modules[^1]. 

Modifications:
- [x] Add `spack.binary_distribution.push` to create a binary package from a spec and push it to a mirror
- [x] Add `spack.binary_distribution.install_root_node` to install only the root node of a concrete spec from a buildcache (may check the sha256 sum if it is passed in as input)
- [x] Add `spack.binary_distribution.install_single_spec` to install a single concrete spec from a buildcache
- [x] Add `spack.binary_distribution.download_single_spec` to download a single concrete spec from a buildcache to a local destination
- [x] Add `Spec.from_specfile` that construct a spec given the path of a JSON or YAML spec file
- [x] Removed logic from `spack.cmd.buildcache`
- [x] Removed calls to `spack.cmd.buildcache` in `spack.bootstrap`
- [x] Deprecate `spack buildcache copy` with a message that says it will be removed in v0.19.0

[^1]: The rationale is that commands should be lightweight wrappers of the core API, since that helps with both testing and scripting (easier mocking and no need to invoke `SpackCommand`s in a script).
2021-12-10 10:23:14 +01:00
eugeneswalker
e199d7ef6b umpire: needs cmake@:3.20 when +rocm (#27893) 2021-12-09 16:14:56 -08:00
eugeneswalker
b286c62feb raja +rocm: depends on cmake@:3.20 for now (#27895) 2021-12-09 16:14:10 -08:00
iarspider
32c442afdb New package: py-cmsml (#27880)
* New package: py-cmsml

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-09 16:47:12 -07:00
iarspider
75154318af New package: py-cx-oracle (#27884)
* New package: py-cx-oracle

* Add dependencies from pyproject.toml

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

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-09 16:54:29 -06:00
iarspider
74f4c73c24 Add py-climate (#27879)
* fixing bugs in spack monitor

updates to installer.py did not account for spack monitor, so as currently implemented
there are three cases of failure that spack monitor will not account for. To fix this we add additional
hooks, including an on cancel and also do a custom action on concretization fail.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

* New package: py-climate

* Revert "fixing bugs in spack monitor"

This reverts commit bf7f6bf0e3.

* Flake-8

* Update package.py

* Update package.py

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-12-09 15:26:18 -07:00
eugeneswalker
9445b931ec llvm-doe: update maintainer to vlkale (#27894) 2021-12-09 15:14:12 -07:00
iarspider
621760a8b8 New packages: py-backports-os, py-fs (#27886) 2021-12-09 13:29:39 -06:00
iarspider
065f349813 New package: py-downhill (#27885) 2021-12-09 13:27:14 -06:00
eugeneswalker
48b1531966 boost: add v1.78 (#27889) 2021-12-09 12:14:07 -07:00
Hans Fangohr
262d5e6791 New package: dust (#27845) 2021-12-09 09:44:18 -08:00
Mikael Simberg
361a2ccdf6 Add conflict to HPX package for Boost/HIP noinline issue (#27878) 2021-12-09 13:33:51 +01:00
eugeneswalker
c930f871f3 llvm-doe: incorporate updates to official llvm Spack package (#27866)
* llvm-doe: incorporate select configurations from llvm package

* add newline at end of file
2021-12-08 16:21:11 -08:00
eugeneswalker
b9a2e71a8b e4s ci: expand +cuda specs (#27272) 2021-12-08 16:13:45 -08:00
Massimiliano Culpo
01d077d4bc Make external detection more resilient to individual package errors (#27854)
After this PR an error in a single package while detecting
external software won't abort the entire procedure.

The error is reported to screen as a warning.
2021-12-08 13:58:21 -08:00
iarspider
79a04605d3 New package: py-aiosqlite (#27852)
* New package: py-aiosqlite

* Update package.py
2021-12-08 18:24:44 +00:00
iarspider
a873c7f456 New package: py-boost-histogram (#27853)
* New package: py-boost-histogram

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-08 18:19:06 +00:00
Jerome Soumagne
5881ec5389 mercury: add version 2.1.0 (#27825)
Update package recipe to be more idiomatic
2021-12-08 15:16:19 +01:00
Valentin Volkl
50cb742377 libdrm: fix build error with clang (#27848) 2021-12-08 15:05:38 +01:00
Valentin Volkl
4ccfe5108c dd4hep: add version 0.19 and variants for subpackages (#27717)
* dd4hep: add version 0.19 and variants for subpackages

* dd4hep: deprecate old versions, add tbb variant
2021-12-08 14:04:43 +01:00
Dylan Simon
39e6f987bb ncurses: keep ncurses and ncursesw headers (#27372)
- Copy ncursesw headers to include/ (matches prior behavior)
- include/ncurses no-longer keeps a copy of ncursesw headers
2021-12-08 00:04:49 -07:00
Tamara Dahlgren
d458e82286 rocm: add gfx90a (#27823) 2021-12-07 17:19:48 -08:00
Manuela Kuhn
1314273a42 r-rio: add 0.5.29 (#27838) 2021-12-07 17:56:24 -06:00
Manuela Kuhn
0337bb50d9 r-diffobj: 0.3.5 (#27836) 2021-12-07 17:53:28 -06:00
Manuela Kuhn
4227a546a1 r-desc: add 1.4.0 (#27834) 2021-12-07 17:52:54 -06:00
Manuela Kuhn
5f4af3ac8a r-dbi: add 1.1.1 (#27833) 2021-12-07 17:51:20 -06:00
Manuela Kuhn
4a53536464 r-crosstalk: add 1.2.0 (#27832) 2021-12-07 17:50:07 -06:00
Manuela Kuhn
3b491ccbbd r-rmarkdown: add 2.11 (#27831) 2021-12-07 17:48:36 -06:00
Harmen Stoppels
3d1b9e4dbc "spack buildcache install": don't catch exception (#27674)
Remove a try/catch for an error with no handling. If the affected
code doesn't execute successfully, then the associated variable
is undefined and another (more-obscure) error occurs shortly after.
2021-12-07 13:17:17 -08:00
Massimiliano Culpo
f81d84dfc6 Release procedure: add a step to update docs (#27734) 2021-12-07 11:30:14 +00:00
Asher Mancinelli
7254d0fe94 HiOp: add versions, variants for rocm (#27824) 2021-12-07 11:38:10 +01:00
Glenn Johnson
3160ab66db 3dtk: set boost constraint (#27806) 2021-12-07 11:28:41 +01:00
Axel Huebl
941e6505d0 WarpX: 21.12 (#27800)
Update `warpx` & `py-warpx` to the latest release, `21.12`.
2021-12-06 17:16:46 -08:00
iarspider
687bc7d40e py-rich: add version 10.9.0 (#27826) 2021-12-06 15:32:01 -07:00
Manuela Kuhn
949923c03f r-blob: add 1.2.2 (#27797) 2021-12-06 22:00:59 +00:00
Manuela Kuhn
1d8575cd83 r-colorspace: add 2.0-2 (#27815) 2021-12-06 15:43:26 -06:00
Manuela Kuhn
3949cd567d r-jquerylib: add new package (#27716) 2021-12-06 15:42:20 -06:00
Manuela Kuhn
4ece86c64a r-brio: add 1.1.3 (#27801) 2021-12-06 15:25:43 -06:00
Manuela Kuhn
1a2d522eaa r-conquer: add 1.2.1 (#27802) 2021-12-06 15:24:56 -06:00
Manuela Kuhn
c18e91d771 r-crayon: 1.4.2 (#27803) 2021-12-06 15:23:32 -06:00
Manuela Kuhn
451a4f2cfa r-brms: add 2.16.3 (#27809) 2021-12-06 15:22:34 -06:00
Manuela Kuhn
88175417bb r-cli: add 3.1.0 (#27810) 2021-12-06 15:20:26 -06:00
Manuela Kuhn
4de7c6a901 r-car: add 3.0-12 (#27811) 2021-12-06 15:14:21 -06:00
Manuela Kuhn
0d5eb2657a r-colourpicker: add 1.1.1 (#27816) 2021-12-06 14:09:58 -06:00
Manuela Kuhn
9b3ac00c2d r-backports: add 1.4.0 (#27710) 2021-12-06 14:08:31 -06:00
Manuela Kuhn
b4f47cbdec r-bh: add 1.75.0-0 (#27711) 2021-12-06 14:07:01 -06:00
Manuela Kuhn
ccda43673a r-rcpparmadillo: add 0.10.7.3.0 (#27712) 2021-12-06 14:04:55 -06:00
Jen Herting
3b8a34240e [py-pyspellchecker] New package (#27788)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-06 10:57:50 -06:00
Jen Herting
d0fffa9212 apktool: new package (#27782) 2021-12-06 17:20:31 +01:00
Hector Barrios
0106e6ec9c mumps: fix problem when using Intel OneAPI mkl static lib (#27725) 2021-12-06 17:14:33 +01:00
Glenn Johnson
37a4c0ff59 r-prettydoc: fix dependency (#27791)
The markdown dependency is `r-rmarkdown` rather than `r-markdown`.
2021-12-06 17:13:44 +01:00
Glenn Johnson
30007f7897 r-affy: set r version constraint (#27792) 2021-12-06 17:00:03 +01:00
Glenn Johnson
caba5c4692 Remove the autotools resources (#27793)
This essentially reverts #18917 as it seems to no longer be necessary
due to recent autotools changes in core spack.
2021-12-06 16:59:25 +01:00
Wouter Deconinck
bc3a3d9249 opencascade: add v7.6.0 (#27799) 2021-12-06 16:44:19 +01:00
Glenn Johnson
599b8c3533 suite-sparse: Add CXSparse and SPQR to targets (#27804) 2021-12-06 16:40:07 +01:00
Michael Kuhn
e6432d2380 glib: add 2.70.2 (#27812) 2021-12-06 16:34:26 +01:00
Glenn Johnson
39ebf9c5a7 Set preferred version of vtk to 9.0.3 (#27817)
There is a library symbol issue with libioss and python with version
9.1.0 so set preferred version to 9.0.3.
2021-12-06 16:28:35 +01:00
Wouter Deconinck
a332c26780 acts: use variants['cuda_arch'] only when +cuda (#27813)
Since #27185, the cuda_arch variant values are conditional on +cuda. This means that for -cuda specs, the installation fails with:
```
==> acts: Executing phase: 'cmake'
==> Error: KeyError: 'cuda_arch'

/home/wdconinc/git/spack/var/spack/repos/builtin/packages/acts/package.py:222, in cmake_args:
        219        log_failure_threshold = spec.variants['log_failure_threshold'].value
        220        args.append("-DACTS_LOG_FAILURE_THRESHOLD={0}".format(log_failure_threshold))
        221
  >>    222        cuda_arch = spec.variants['cuda_arch'].value
        223        if cuda_arch != 'none':
        224            args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
        225
```
2021-12-06 16:25:27 +01:00
Glenn Johnson
a8a226b748 bohrium: missing dependencies (#27807) 2021-12-06 16:23:25 +01:00
Wouter Deconinck
9b1b38d2de librsvg,libcroco: add doc variant to avoid unsolvable constraints due to gtkplus (#27790)
* [libcroco] add variant doc, depends_on gtk-doc when +doc
* [librsvg] add variant doc, depends_on gtk-doc when +doc
2021-12-06 14:08:22 +01:00
Wouter Deconinck
2bb075c850 rivet: hepmc=3: Fix prefix of --with-hepmc3 (#27814) 2021-12-06 10:42:54 +01:00
Glenn Johnson
235edd0742 new package: py-tensorflow-datasets (#27746)
* new package: py-tensorflow-datasets

- includes new dependency package: py-tensorflow-metadata

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-12-05 12:06:43 -06:00
Glenn Johnson
252cd48b9c py-astropy: set version constraint on cfitsio (#27805) 2021-12-05 12:06:09 -06:00
Ben Bergen
c2def5c2f4 cgdb: add depends_on('gdb', type='run') (#27753)
* Added gdb Dependency

When using spack to install cgdb, a spack-built gdb is necessary to
avoid dynamic link errors.

- Added maintainer: tuxfan
- Set preferred to 'master' (best version for spack currently)

* Update: The gdb dependency added by this PR is for runtime

Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-12-05 08:02:23 -07:00
Manuela Kuhn
25a9888102 r-v8: add 3.6.0 (#27714)
* r-v8: add 3.6.0

* Add conflict and deprecate version 3.4.0
2021-12-05 00:56:47 -06:00
Manuela Kuhn
1eec99ce1d py-imagesize: add 1.3.0 (#27787) 2021-12-03 21:05:05 -07:00
Manuela Kuhn
c0dab7617f py-jeepney: add 0.7.1 (#27786) 2021-12-03 20:16:56 -07:00
Chung ShinYee
041973d1d5 julia: update versions and add znver3 to Julia's CPU target (#27770)
* julia: new versions.

* julia: Support AMD Milan CPU znver3.
2021-12-03 18:31:47 -07:00
kwryankrattiger
203ccdd976 LLVM: Revert build_llvm_dylib to llvm_dylib (#27761) 2021-12-03 23:47:05 +01:00
Tamara Dahlgren
6f9dc1c926 berkeley-db: Add minimal external detection (#27752) 2021-12-03 23:42:45 +01:00
Manuela Kuhn
324e046f06 r-tictoc: add 1.0.1 (#27715) 2021-12-03 16:14:29 -06:00
Asher Mancinelli
21d1e03e37 ExaGO: add new versions (#27768) 2021-12-03 13:59:16 -08:00
Mark W. Krentel
34c1d196a4 hpctoolkit: add support for smoke tests (#27783)
This adds support in spack for both build/install tests (spack install
--run-tests) and post-install smoke tests (spack test run).

Hpctoolkit itself only recently added tests, so for now, this only
applies to branch master.
2021-12-03 12:52:34 -08:00
Jen Herting
bd2b5cc7aa [libzmq] added version 4.3.4 (#27780) 2021-12-03 13:44:04 -07:00
Simo Tuomisto
cfb8d6f8ac New package: mujoco (#27656) 2021-12-03 11:40:09 -08:00
Weiqun Zhang
0a656de60b amrex: add new release 21.12 (#27781) 2021-12-03 11:00:14 -08:00
Hans Pabst
23bd0f3178 LIBXSMM 1.17 (#27775) 2021-12-03 10:48:40 -08:00
Hans Pabst
0e7220b2f2 Fixed typo (NAMD). (#27774) 2021-12-03 10:40:34 -08:00
Bernhard Kaindl
53eb24af9b singularity, singularityce: Add 3.8.5 and ce-3.9.1 (#27778) 2021-12-03 11:23:08 -07:00
Richarda Butler
86b17193de Parallel-netcdf: Update Spack test dir (#27232)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-12-03 10:03:14 -08:00
Filippo Spiga
96a50db344 CUDA: add v11.5.1 (#27689) 2021-12-03 06:13:51 -07:00
Ethan Stam
4c922ec572 ParaView: add dependencies needed in paraview@master (#27745)
* The proj and nlohmann-json packages are needed in paraview@master
* ParaView: bump master subdir version to 5.10
2021-12-02 17:18:23 -08:00
Terry Cojean
b80b085575 Ginkgo package: add oneAPI support (#26868)
To use this, you can "spack install intel-oneapi-compilers" and then
"spack compiler add" the new compiler. You would need to install with
"spack install ginkgo+oneapi%dpcpp"
2021-12-02 17:13:25 -08:00
Michael Kuhn
fbd67feead nss: add 3.73 (#27767) 2021-12-03 00:55:57 +01:00
Peter Scheibel
edb971a10e Support packages which need to explicitly refer to dpcpp by name (#27168)
* Hack to support packages which need to explicitly refer to dpcpp by name
* cc script needs to know about dpcpp
2021-12-02 15:49:20 -08:00
Michael Kuhn
693a15ea00 nspr: add 4.32 (#27766) 2021-12-03 00:36:50 +01:00
Bernhard Kaindl
4d1a6cd362 libseccomp package: add version 2.5.3 (#27756)
- Use .tar.gz archive
- Update 2.3.3 to use .tar.gz archive (and update checksum)
- autoreconf dependency is no-longer required
- The new version depends on gperf
2021-12-02 14:52:23 -08:00
Bernhard Kaindl
9e1e7fa1d7 lvm2 package: add version 2.03.14 (#27760) 2021-12-02 14:37:59 -08:00
Ben Darwin
07ab4623e6 New package: f3d (add version 1.1.1) (#27755) 2021-12-02 14:35:55 -08:00
Jen Herting
66c5199362 New package: py-fire (#27731)
* dependency for stylegan2

* fixed copyright

* [py-fire]

- fixed some formatting
- url -> pypi

* [py-fire] removed extra https://

* [py-fire]

- removed python version restriction
- enum34 -> py-enum34

* [py-fire] removed .999

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-02 14:58:25 -06:00
Jen Herting
ca32b08825 New package: py-vector-quantize-pytorch (#27759)
* [py-vector-quantize-pytorch] New package

* [py-vector-quantize-pytorch] flake8

* [py-vector-quantize-pytorch] removed unnecessary dependency

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-02 14:53:49 -06:00
Ye Luo
1cdb764422 QMCPACK: fix use of MPI wrappers (#27744) 2021-12-01 18:39:06 -08:00
Tiziano Müller
d0beab8012 elpa package: add version 2021.05.002_bugfix (#27748)
* elpa: filter _bugfix in version for include dir
* libxc: add version 5.1.7
2021-12-01 18:29:23 -08:00
Bernhard Kaindl
04519d261d New package: goshimmer (#27339) 2021-12-01 17:05:30 -08:00
Axel Huebl
e590ec6f3f Add: openPMD-viewer (#27516)
* Add: openPMD-viewer

Add the `py-openpmd-viewer` package.

* openPMD-viewer: Improve Variant Control

* openPMD-viewer: Update to Source from Pip/PyPA

https://spack.readthedocs.io/en/latest/build_systems/pythonpackage.html#pypi-vs-github

* Fix style: comment

* openPMD-viewer: fix requirements

add reviewer feedback
2021-12-01 16:19:54 -07:00
Tiziano Müller
08b00f8804 cp2k: fix build issues without cuda, and with elpa on openSUSE (#27738) 2021-12-01 17:00:01 -06:00
Vanessasaurus
326acea29d py-tern: new package (#27599)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-12-01 14:41:05 -07:00
Jen Herting
97126cac4b New package: py-yq (#27729)
* pypi build of yq

* [py-yq]

- removed duplicate py-yaml dependency
- fixed py-yaml version number

* [py-yq] fix py-xmltodict version range

* [py-yq] self assign maintainer

* [py-yq] setuptools is runtime dependency

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-01 13:25:24 -08:00
Jen Herting
2ddc522864 New package: py-retry (#27730)
* package dependency

* [py-retry]

- added homepage
- removed unnecessary depends_on

* [py-retry] added dependencies back

* [py-retry] removed .999

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-12-01 14:14:55 -07:00
Joseph Wang
d7b21fc40b madgraph5amc package: use Spack compiler wrapper (#27523)
This fix allows madgraph5amc to build with Clang.
2021-12-01 12:18:07 -08:00
kwryankrattiger
041f91b176 ECP-DAV package: Add sensei to SDK (#27537)
- Add sensei to the SDK with appropriate propagations
- Rework variants to SENSEI package to avoid providing broken builds
- Turn off miniapps by default, these are examples and not critical to using sensei
2021-12-01 12:10:22 -08:00
Thomas Green
ab85e79a91 py-pybind11: add CMake dependency (#27573) 2021-12-01 11:57:27 -08:00
Manuela Kuhn
faa04a03c0 seacas: fix x11 dependency (#27737) 2021-12-01 10:11:14 -08:00
Mark W. Krentel
820d49b84e libmonitor: add version 2021.11.08 (#27740) 2021-12-01 10:09:49 -08:00
Marc Joos
81bdf1a386 wi4mpi: add new package (#27530) 2021-12-01 09:29:08 -07:00
Jen Herting
5a9bc4bfb2 New package: py-gin-config (#27732)
* [py-gin-config] created template

* [py-gin-config]

- depends on setup tools
- added homepage
- added description
- removed fixmes
2021-12-01 09:52:59 -06:00
Severin Strobl
67c8a63a0a adol-c: add variant stdczero (#27721) 2021-12-01 16:24:15 +01:00
Luis Yanes
4859649229 portcullis: add v1.2.3 (#27661)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-12-01 05:34:52 -07:00
Vicente Bolea
6e90a853f4 ParaView: Add 5.10.0-RC2 release (#27696) 2021-12-01 11:53:54 +01:00
Howard Pritchard
aacbc64a23 OPENMPI: add 4.0.7 release (#27697)
add the 4.0.7 release to the OMPI spack package

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-12-01 11:53:16 +01:00
ravil-mobile
658f42ef0f dpcpp: added a new package (#25130)
dpcpp stands for Data Parallel C++
dpcpp is Intel's implementation of SYCL

Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
2021-12-01 11:43:38 +01:00
Ye Luo
787cc535e9 qmcpack: more restriction on openblas variants (#27723) 2021-12-01 11:30:58 +01:00
Vasileios Karakasis
452a693aab Add more ReFrame versions (#27728) 2021-11-30 15:56:03 -07:00
Ye Luo
23206fa4b5 quantum-espresso: add CMake and libxc variants (#27724) 2021-11-30 23:26:39 +01:00
Glenn Johnson
bcaa87574d vtk package: add version 9.1.0; add new dependencies (#27467)
This PR updates the vtk package to use new variable names and adds some
dependencies.

- add version 9.1.0
- add version 1.4.2 to gl2ps package. This is needed to use gl2ps as a
  dependency.
- new package: utf8cpp, used as a dependency for version 9.
- add dependencies when possible
    - pugixml
    - libogg
    - libtheora
    - utf8cpp
    - gl2ps
    - proj
- turn off configuring MPI if ~mpi
- always use the package-provided FindHDF5.cmake for versions up to 8.
  Version @9: already does this so does not need a patch.
- use new CMake variables for version 9
- remove unused CMake variables depending on version
2021-11-30 15:14:05 -07:00
Piotr Luszczek
d57bcc0b85 cpio: reuse patch for %gcc10: for %clang as well (#27589)
and replace patch download with simple filter_file() to fix the duplicate definition.

Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-11-30 23:09:00 +01:00
Sebastian Schmitt
c96a6f990e Bump Brian2 (#27700)
* Bump Brian2

* Remove doc variant; the documentation is not build anyways
2021-11-30 11:32:04 -07:00
Marco De La Pierre
88cf4ce865 updated recipe for quantum-espresso 6.8 (#27607) 2021-11-30 10:05:53 -08:00
Manuela Kuhn
5e193618cb gtk-doc: fix source url and add 1.33.2 (#27719) 2021-11-30 09:29:06 -07:00
Davide Mancusi
0e83c0e792 gtkplus: fix generation of configure_args (#27718) 2021-11-30 17:26:39 +01:00
Massimiliano Culpo
645a7dc14c spack audit: fix API calls (#27713)
This broke in #24858
2021-11-30 14:59:55 +01:00
Adam J. Stewart
5044df88ab Add citation information to GitHub (#27518) 2021-11-30 01:37:50 -07:00
Manuela Kuhn
ab2bc933b8 py-idna: add 3.3 (#27708) 2021-11-29 21:28:57 -07:00
Valentin Volkl
b13778c2c6 py-iminuit: add new versions 2.8.4 (#27680)
* py-iminuit: add new versions 2.8.4

* py-iminuit: update python dependency

* py-iminuit: fix typo

* flake8
2021-11-29 20:19:52 -07:00
Manuela Kuhn
54df6d0a56 py-setuptools: add 59.4.0 (#27692) 2021-11-29 19:52:50 -07:00
Manuela Kuhn
44746dfbd6 r-tidyverse: add 1.3.1 (#27291) 2021-11-29 18:24:44 -06:00
Harmen Stoppels
a86d574208 dsfmt package: fix shared libs (#27628)
Also:

* Remove 2.2.3 (doesn't build shared libs)
* Add versions 2.2.4 and 2.2.5
2021-11-29 15:57:32 -08:00
Satish Balay
cb71308d22 petsc: archive configure.log make.log from the build (#27677)
Also enable verbose build
2021-11-29 16:10:50 -07:00
Ben Darwin
02b4a65086 py-intensity-normalization: add package (at version 2.1.1) (#27593)
* py-scikit-fuzzy: new package (at version 0.4.2)

* py-intensity-normalization: new package (at version 2.1.1)
2021-11-29 15:33:16 -06:00
Manuela Kuhn
838294b10d py-gevent: add 21.8.0 (#27699) 2021-11-29 15:29:09 -06:00
Manuela Kuhn
22eebff261 py-pyparsing: add 3.0.6 (#27693)
* py-pyparsing: add 3.0.6

* Add suggestions
2021-11-29 14:02:08 -07:00
Manuela Kuhn
a98e8ad4b5 py-packaging: add 21.3 (#27691)
* py-packaging: add 21.3

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-29 13:56:09 -07:00
Bernhard Kaindl
2d34082b0c llvm: Fix building llvm@4:9 using %clang@6: and %gcc@10: (#27233)
Add z3 variant, fix @:9%gcc@9: with glibc2.31, fix no_cyclades range
2021-11-29 12:48:18 -08:00
Manuela Kuhn
1f1da6806c py-tifffile: add 2021.11.2 (#27695) 2021-11-29 12:52:55 -07:00
Manuela Kuhn
647a26bc9e py-httpretty: add 1.1.4 (#27687) 2021-11-29 11:42:58 -06:00
Manuela Kuhn
561b0ca029 py-zope-interface: add 5.4.0 (#27596) 2021-11-29 11:42:00 -06:00
Manuela Kuhn
3c5295ee8a py-gast: add 0.5.3 (#27686) 2021-11-29 11:40:59 -06:00
Manuela Kuhn
914cf5ff87 py-importlib-metadata: add 4.8.2 (#27690) 2021-11-29 11:40:17 -06:00
Thomas Madlener
ecb588740a Speed up install of environments with dev packages (#27167)
* only check file modification times once per dev package
2021-11-29 09:34:23 -08:00
Manuela Kuhn
4858a26400 py-humanize: add 3.12.0 (#27688) 2021-11-29 10:58:09 -06:00
Eric Brugger
995a29d2f3 VisIt: remove upper range restriction on llvm. (#27648) 2021-11-29 17:38:31 +01:00
Adam J. Stewart
fcd5f960f8 py-matplotlib: add v3.5.0 (#27486)
* py-matplotlib: add v3.5.0

* Remove deprecated versions, update setup.cfg filename

* Add additional dependencies, save config file

* Add patch to fix matplotlibrc
2021-11-29 17:19:01 +01:00
Howard Pritchard
54d88f1a1c OpenMPI: add version 4.1.2 (#27645)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-11-29 16:45:20 +01:00
Adam J. Stewart
fee8ac9721 py-scipy: add v1.7.3 (#27649) 2021-11-29 16:44:17 +01:00
Manuela Kuhn
1326e9d538 py-greenlet: add v1.1.2 (#27594) 2021-11-29 16:43:38 +01:00
Bernhard Kaindl
bd0960cda8 gpgme: Add 0.16.0 and address test suite issues (#27604)
A part of the gpgme testsuite by default even runs during normal
make and make install phases, creating a public keyring in ~/.gnupg.
Prevent this and avoid build failures in containers due to another
problem of the test suite and fix a test case of the new 0.16.0 release.
2021-11-29 16:43:12 +01:00
Ethan Stam
cfd2ea0cff ParaView: Build edition strings should be uppercase (#27534) 2021-11-29 16:38:25 +01:00
Adam J. Stewart
e5e9dc2d92 py-pytorch-lightning: add v1.5.3 (#27650) 2021-11-29 16:31:58 +01:00
Derek Ryan Strong
f8d03b1060 pixz: add v1.0.7 (#27651) 2021-11-29 16:29:10 +01:00
Harmen Stoppels
037ece674b distro: don't use deprecated linux_distribution (#27658) 2021-11-29 16:26:19 +01:00
Nicolas Cornu
87cf38a427 Random123: add v1.14.0 from github (#27660) 2021-11-29 16:13:50 +01:00
Massimiliano Culpo
0d10408a25 bootstrap: restrict patchelf to v0.13.x (#27685) 2021-11-29 15:41:25 +01:00
Bernhard Kaindl
48d98b4c9e podman: new package (with dependencies) (#27603)
When the uidmap tools are installed on a system, this allows to run
containers as unprivileged user (rootless and daemonless) slimilar
to singularity, but using a familiar CLI: "alias docker=podman"

This is helpful to run e.g. spack builds in containers to reproduce
build failures from CI without requiring a installation of docker.
The required dependencies of podman are added as well.
2021-11-29 15:39:19 +01:00
Valentin Volkl
64c4fbd220 edm4hep: update hepmc dependency (#27678) 2021-11-29 14:55:07 +01:00
Bernhard Kaindl
af0ba4e3ef gtkplus: fix build of GTK2 versions with gcc-11, skip X tests (#26970)
Fix to not attempt to patch a nonexisting file for old versions
when building with gcc-11. Skip the build-time tests as all access
the X DISPLAY and open many windows on the screen.
2021-11-29 14:46:51 +01:00
Harmen Stoppels
5dce4d79bd patchelf: add v0.13.1, v0.14, v0.14.1 (#27681) 2021-11-29 13:46:15 +01:00
Paul Ferrell
c0edb17b93 Handle byte sequences which are not encoded as UTF8 while logging. (#21447)
Fix builds which produce a lines with non-UTF8 output while logging
The alternative is to read in binary mode, and then decode while
ignoring errors.
2021-11-29 13:27:02 +01:00
Vanessasaurus
bdde70c9d3 "branch" spelling mistake in libbeato (#27682)
I was browsing package metadata, as one does on a Sunday, and stumbled across a new kind of version attribute - brancch! I suspect this is supposed to be "branch."
2021-11-29 13:17:40 +01:00
iarspider
8ff81d4362 Fix py-astroid recipe (#27670) 2021-11-28 11:07:53 -06:00
Mark Grondona
1b71ceb384 add flux-core v0.31.0 and flux-sched v0.20.0 (#27336)
Update flux-core and flux-sched package.py to include latest releases.

For flux-sched:

 - Add patch to disable false-positive-happy valgrind test
 - pin yaml-cpp to 0.6.3 due to issue described at:
   https://github.com/flux-framework/flux-sched/issues/886
2021-11-28 02:18:00 +01:00
Joseph Wang
0ab5828d0d gdk-pixbuf: Fix 2.42.2 and add 2.42.6 (#27254)
Starting with meson 0.60, unknown args produce errors and
the -Dx11 arg is only present in @:2.40
https://gitlab.gnome.org/GNOME/gtk-osx/-/issues/44

Add tiff variant: Default disabled since fails the tests in part.
Only libtiff@:3.9 pass, but these old versions have severe security issues.

Deprecate @:2.41 as they are affected by the high-severity CVE-2021-20240:
https://nvd.nist.gov/vuln/detail/CVE-2021-20240
2021-11-28 01:30:14 +01:00
iarspider
d5b243de14 py-scipy: update pybind11 versions (#27679) 2021-11-27 16:03:43 -06:00
iarspider
1d8d975721 Apply requested fix from #27643 (#27672) 2021-11-26 16:45:38 -06:00
iarspider
96ce0e393d New version: py-send2trash 1.8.0 (#27583) 2021-11-26 14:35:03 -07:00
Jannis Schönleber
cf3762369c dyninst: use spack libiberty path (#25779) 2021-11-26 15:58:53 -05:00
iarspider
8138ebaa32 New version: py-tomlkit 0.7.2 (#27633) 2021-11-26 13:11:20 -07:00
iarspider
eb42514124 New version: py-threadpoolctl 3.0.0 (#27632) 2021-11-26 13:10:58 -07:00
Harmen Stoppels
4d6891162d Use bash in setup_git.sh (#27676) 2021-11-26 18:03:05 +00:00
iarspider
978f091822 Fix py-aiohttp recipe (#27671) 2021-11-26 08:17:01 -07:00
Massimiliano Culpo
a96f2f603b Bootstrap patchelf like GnuPG (#27532)
Remove a custom bootstrapping procedure to
use spack.bootstrap instead

Modifications:
* Reference count the bootstrap context manager
* Avoid SpackCommand to make the bootstrapping
  procedure more transparent
* Put back requirement on patchelf being in PATH for unit tests
* Add an e2e test to check bootstrapping patchelf
2021-11-26 15:32:13 +01:00
iarspider
2cdc758860 Fix version constraint in py-ipykernel (#27665)
* Fix version constrains in py-ipykernel and py-ipython

Before the fix:
```
$ spack spec  py-ipykernel@6.4.1  ^py-jupyter-client@7.0.6
==> Error: py-ipykernel@6.4.1 ^py-jupyter-client@7.0.6 is unsatisfiable, conflicts are:
  no version satisfies the given constraints
```

After the fix:
```
```
(thanks god the old concretizer is still there - it provides sane error messages!)

* Fix py-ipython recipe

* Revert "Fix py-ipython recipe"

This reverts commit d65071665f.
2021-11-25 17:58:43 -07:00
Seth R. Johnson
9904159356 New package: py-sphinx-argparse (#27663) 2021-11-25 13:54:34 -06:00
Maxim Belkin
6e095a9741 module_file_support: update format for configuration (#27598) 2021-11-25 08:41:32 +01:00
iarspider
90b4f55001 New version: py-theano 1.0.5 (#27631) 2021-11-24 18:16:48 -07:00
iarspider
60e683f5d3 New version: py-requests 2.26.0 (redo of #27579) (#27647) 2021-11-24 17:38:01 -07:00
iarspider
a9a6e00d14 New version: py-rsa 4.7.2 (#27581) 2021-11-24 16:52:44 -07:00
iarspider
6fa0feb7de New version: py-rich 10.14.0 (redo of #27580) (#27646) 2021-11-24 16:04:53 -07:00
iarspider
0db93a5dea py-virtualenv package: add version 20.10.0; new dependency py-distlib (#27637)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-24 15:38:03 -07:00
Massimiliano Culpo
270ba10962 spack flake8: remove deprecated command (#27290)
The "spack flake8" command wwas deprecated in favor
of "spack style". The deprecation wwarning is in the
0.17.X series, so removing it for v0.18.x
2021-11-24 14:20:11 -08:00
iarspider
f8025d4f88 New version: py-requests-oauthlib 1.3.0 (#27578) 2021-11-24 16:20:02 -06:00
liuyangzhuan
83f97e8eba Adding packages for gptune and its dependencies (#26936)
* added package gptune with all its dependencies: adding py-autotune, pygmo, py-pyaml, py-autotune, py-gpy, py-lhsmdu, py-hpbandster, pagmo2, py-opentuner; modifying superlu-dist, py-scikit-optimize

* adding gptune package

* minor fix for macos spack test

* update patch for py-scikit-optimize; update test files for gptune

* fixing gptune package style error

* fixing unit tests

* a few changes reviewed in the PR

* improved gptune package.py with a few newly added/improved dependencies

* fixed a few style errors

* minor fix on package name py-pyro4

* fixing more style errors

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

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

* resolved a few issues in the PR

* fixing file permissions

* a few minor changes

* style correction

* minor correction to jq package file

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

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

* fixing a few issues in the PR

* adding py-selectors34 required by py-pyro4

* improved the superlu-dist package

* improved the superlu-dist package

* moree changes to gptune and py-selectors34 based on the PR

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-24 16:06:43 -06:00
Brian Spilner
d6b0c838dd cdo package: add version 2.0.1 (#27608) 2021-11-24 13:20:28 -08:00
Paul
94bcd21ccd Go package: add versions 1.17.3 and 1.16.10 (#27614) 2021-11-24 13:10:23 -08:00
Satish Balay
d8ac578ce1 petsc: add variant kokkos (with +cuda) (#27624) 2021-11-24 13:09:14 -08:00
Tim Haines
f9bae91dea Dyninst package: Add versions 12.0.0 and 12.0.1 (#27623) 2021-11-24 12:23:30 -08:00
iarspider
6147b47719 py-terminado package: add version 0.12.1 (#27629) 2021-11-24 12:03:04 -08:00
iarspider
191de76ccb py-testpath package: add version 0.5.0 (#27630) 2021-11-24 12:02:18 -08:00
iarspider
b500d40a25 py-uproot package: add version 4.1.8 (#27635) 2021-11-24 12:01:25 -08:00
iarspider
43c663c5cf py-virtualenv-clone package: add version 0.5.7 (#27636) 2021-11-24 11:58:41 -08:00
iarspider
3fdab96728 py-virtualenvwrapper package: add version 4.8.4 (#27638) 2021-11-24 11:45:36 -08:00
iarspider
fcd51d81d9 py-wcwidth package: add version 0.2.5 (#27639) 2021-11-24 11:44:51 -08:00
iarspider
83a2014ede py-websocket-client package: add version 1.2.1 (#27640) 2021-11-24 11:43:42 -08:00
iarspider
1c38810e11 py-wheel package: add version 0.37.0 (#27641) 2021-11-24 11:42:02 -08:00
Maciej Wójcik
10ca5f1cd2 GROMACS-SWAXS package: add versions including 2021.4-0.1 (#27642) 2021-11-24 11:41:16 -08:00
iarspider
e7eaebebd4 py-yarl package: add version 1.7.2 (#27643) 2021-11-24 11:40:06 -08:00
Robert Cohn
76ad803f25 intel-oneapi-mkl: add cluster libs and option for static linking (#26256) 2021-11-24 11:04:05 -08:00
Harmen Stoppels
dbf67d912c Make patchelf test use the realpath (#27618)
I think this test should be removed, but when it stays, it should at
least follow the symlink, cause it fails for me if I let spack build
patchelf and have a symlink in a view.
2021-11-24 11:17:23 +01:00
Massimiliano Culpo
5c3dfacdc5 Update distro to v1.6.0 (#27263) 2021-11-24 10:10:11 +00:00
albestro
635984f077 umpire: fix gcc@10.3.0 conflict (#27620)
Make sure that `gcc@10.3.0-[number]` also matches the conflict.
2021-11-24 02:49:51 -07:00
Massimiliano Culpo
70d5d234db Update Jinja2 to v2.11.3 and MarkupSafe to v1.1.1 (#27264) 2021-11-24 10:21:35 +01:00
Massimiliano Culpo
12da0a9a69 Update six to v1.16.0 (#27265) 2021-11-24 10:20:04 +01:00
Harmen Stoppels
97ebcb99b4 libblastrampoline: use tarballs and add maintainer (#27619)
* Use tarballs for libblastrampoline

* Add myself as maintainer
2021-11-24 09:45:57 +01:00
Vanessasaurus
a5bd6acd90 Adding oras go package (#27605)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-11-24 07:06:29 +01:00
Sreenivasa Murthy Kolam
d6d78b8457 rocm-tensile: Add new GPUs to tensile-architecture list (#26913) 2021-11-23 18:35:16 -08:00
Thomas Dickerson
c263b64d2e Racket package: disable parallel build; add variants (#27506)
- Prevent `-j` flags to `make`, which has been known to cause problems
  with Racket builds.
- Add variants for various common build flags, including support
  for both versions of the Racket VM environment.

In addition:

- Prefer the minimal release to improve install times. Bells and
  whistles carry their own runtime dependencies and should be
  installed via `raco`. An enterprising user may even create a
  `RacoPackage` class to make spack aware of `raco` installed packages.
- Match the official version numbering scheme.
2021-11-23 16:45:18 -08:00
Harmen Stoppels
dfc95cdf1c llvm: use ninja by default (#27521)
* llvm: use ninja by default

* Use ninja for omp when it's not a runtime
2021-11-23 16:28:17 -08:00
John Wohlbier
0f1c04ed7e Add encryption library packages: helib, palisade-development, and seal (#27495)
Add packages for three common homomorphic encryption libraries.
HElib, Palisade, and Seal. Also add package for number theoretic library NTL.
2021-11-23 15:11:37 -08:00
Harmen Stoppels
cced832cac Fix leaky tests (#27616)
* fix: cc.py should use a function not session scope
* fix: don't let build env vars leak to other tests
* fix: don't leak build env in dev_build test
2021-11-23 14:10:48 -08:00
Manuela Kuhn
2d20e557df py-flask: add 2.0.2 (#27615) 2021-11-23 11:11:12 -07:00
Vanessasaurus
14607b352c adding new package go cosign (#27606)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-11-23 09:56:45 -08:00
Massimiliano Culpo
fa7189b480 Remove support for Python 2.6 (#27256)
Modifications:
- [x] Removed `centos:6` unit test, adjusted vermin checks
- [x] Removed backport of `collections.OrderedDict`
- [x] Removed backport of `functools.total_ordering`
- [x] Removed Python 2.6 specific skip markers in unit tests
- [x] Fixed a few minor Python 2.6 related TODOs in code

Updating the vendored dependencies will be done in separate PRs
2021-11-23 09:06:17 -08:00
Manuela Kuhn
812663de62 py-cython: add 3.0.0a9 (#27609)
* py-cython: add 3.0.0a9

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-23 16:33:29 +00:00
Larry Knox
f96e3371a0 Update to latest commit hash for vol-log-based. (#27612)
Update minimum hdf5 version to 1.13.0.
2021-11-23 10:09:19 -05:00
Larry Knox
8476a2e4a1 Add hdf5-vol-external-passthrough package. (#27289)
* Add hdf5-vol-external-passthrough package.

* Add version v1.0 for vol-external-passthrough release.

* Remove incorrect comment.

* Add source url and checksum.  Update HDF5 minimum version.
2021-11-23 10:06:48 -05:00
Nathan Hanford
2104f1273a bugfix: Allow legacy tests to be read after hash break (#26078)
* added a test case

Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
2021-11-22 21:49:41 -07:00
iarspider
feb66cba01 New version: py-stevedore 3.5.0 (#27586) 2021-11-22 18:31:31 -06:00
Manuela Kuhn
b961491ad2 py-zope-event: add 4.5.0 (#27595) 2021-11-22 16:05:13 -07:00
iarspider
411b3ecc37 New version: py-singledispatch 3.7.0 (#27584)
* New version: py-singledispatch 3.7.0

* Apply suggestions from code review

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-22 15:44:07 -07:00
Robert Blake
3e63bc08ee ncurses: fix external package detection on OS X (#27490) 2021-11-22 14:37:58 -08:00
Piotr Luszczek
e90d5ad6cf Intel packages: add support for LLVM OpenMP (#26517) 2021-11-22 13:41:43 -08:00
Harmen Stoppels
abec10fcd5 suite-sparse package: add support for blas symbol suffix (#27510) 2021-11-22 13:18:39 -08:00
Massimiliano Culpo
6f8fd5b7a7 raja: fix recipe for old versions (#27591)
Raja didn't depend on camp prior to v0.12.0
2021-11-22 22:07:54 +01:00
Massimiliano Culpo
5eba5dc271 Make CUDA and ROCm architecture conditional (#27185)
* Make CUDA and ROCm architecture conditional

fixes #14337

The variant to specify which architecture to use
for CUDA and ROCm are now conditional on +cuda and
+rocm respectively.

* cp2k: make all CUDA related variants conditional on +cuda
2021-11-22 07:54:19 -05:00
Wouter Deconinck
5f10562ad1 [geant4] new version geant4@10.7.3 (#27568)
* [geant4] new version geant4@10.7.3

Release notes: https://geant4-data.web.cern.ch/ReleaseNotes/Patch4.10.7-3.txt, no build system changes.

* [geant4] depends_on geant4-data@10.7.3

* [geant4-data] new version @10.7.3
2021-11-22 12:37:11 +00:00
Hadrien G
596f2e7c4d acts: add v15, embrace conditional variants (#27529) 2021-11-22 10:49:54 +01:00
Mahendra Paipuri
1a95b979d8 Disable rsmi for hwloc when rocm is not enabled (#27547)
Co-authored-by: mahendrapaipuri <mahendra.paipuri@inria.fr>
2021-11-22 10:47:56 +01:00
Harmen Stoppels
0024e5cc9b Make _enable_or_disable(...) return an empty array for conditional variants whose condition is not met (#27504) 2021-11-22 10:47:09 +01:00
Adam J. Stewart
cda9d6d981 py-rapidfuzz: add new package (#27559) 2021-11-22 10:38:33 +01:00
Manuela Kuhn
d3b35c4063 py-itsdangerous: add 2.0.1 (#27556) 2021-11-22 10:38:10 +01:00
Harmen Stoppels
3bfd78e6b8 ccache: speed up builds, don't build tests (#27567) 2021-11-22 10:28:05 +01:00
psakievich
c167b7d532 nalu-wind: remove cxxstd from trilinos dependency to enable testing for cpp17 (#27563) 2021-11-22 10:18:30 +01:00
Wouter Deconinck
6d30d87d7e mesa: add v21.2.4 and v21.2.5 (#27571)
Last bugfix versions before just released version @21.3.0 which will be part of a separate PR.
2021-11-22 10:14:00 +01:00
Thomas Green
e7b97c9473 harminv: update for blas/lapack (#27572) 2021-11-22 09:51:46 +01:00
Sebastian Ehlert
8d1e66a627 fpm: add v0.5.0 (#27575) 2021-11-22 09:48:10 +01:00
Adam J. Stewart
7c14c86ffd py-laspy: add new package (#27576) 2021-11-22 09:45:30 +01:00
Tracy-Pantleo
49b0952371 portage, tangram, wonton: update dependencies (#26886)
* tangram/wonton spack

* portage spack update

* wonton spack updated

* tangram spack updated

* white space removed

* Update package.py

* Update package.py

* Update package.py

* Update package.py

portage spack upstream

* Update package.py

for loop test

* Update package.py

style errors

* Update package.py

* tangram

* Update package.py

* Update package.py

* Update package.py

* Update package.py

* Update package.py

edits

* Update package.py

* Update package.py

remove @master

* Update package.py

remove @master

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

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>

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

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>

* Update package.py

* Update package.py

* Update package.py

* Update package.py

Co-authored-by: Tracy Nicole Pantleo <tpantleo@varan.lanl.gov>
Co-authored-by: Tracy Nicole Pantleo - 361537 <tpantleo@darwin-fe1.lanl.gov>
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-11-19 22:09:56 -05:00
iarspider
e47fa05eb8 New version: py-pyzmq 22.3.0 (#27543)
* New version: py-pyzmq 22.3.0

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

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-19 13:53:02 -07:00
Adam J. Stewart
2c5fc14bf9 py-progressbar2: add v3.55.0 (#27558) 2021-11-19 14:35:44 -06:00
Adam J. Stewart
fd0f0e564d py-ruamel-yaml-clib: link to python (#27557) 2021-11-19 14:35:31 -06:00
Manuela Kuhn
aa934d00e3 py-jinja2: add 3.0.3 (#27560) 2021-11-19 14:35:18 -06:00
Raghu Raja
f26d25e24b libfabric: Add v1.14.0 release (#27562)
Signed-off-by: Raghu Raja <raghu@enfabrica.net>
2021-11-19 13:35:00 -07:00
Jen Herting
99f954f1c1 [py-pickle5] New package (#27533)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-11-19 14:31:22 -06:00
Joseph Snyder
d759612523 Add connection specification to mirror creation (#24244)
* Add connection specification to mirror creation

This allows each mirror to contain information about the credentials
used to access it.

Update command and tests based on comments

Switch to only "long form" flags for the s3 connection information.
Use the "any" function instead of checking for an empty list when looking
for s3 connection information.

Split test to use the access token separately from the access id and key.
Use long flag form in test.

Add endpoint_url to available S3 options.

Extend the special parameters for an S3 mirror to accept the
endpoint_url parameter.

Add a test.

* Add connection information per URL not per mirror

Expand the mirror-based connection information to be per-URL.
This will allow a user to specify different S3 connection information
for both the fetch and the push URLs.

Add a parameter for "profile", another way of storing the id/secret pair.

* Switch from "access_profile" to "profile"
2021-11-19 15:28:34 -05:00
Manuela Kuhn
a5c50220db py-werkzeug: add 2.0.2 (#27555) 2021-11-19 12:17:06 -07:00
Manuela Kuhn
cdc5b32240 py-cycler: add 0.11.0 and get sources from pypi (#27550)
* py-cycler: add 0.11.0

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-19 11:20:14 -07:00
Manuela Kuhn
efe635a3f8 py-debugpy: add 1.5.1 (#27551) 2021-11-19 11:05:12 -07:00
iarspider
0288ef8733 New version: py-pyaml 6.0 (#27542) 2021-11-19 11:35:50 -06:00
iarspider
e08ebff139 New version: py-qtconsole 5.2.0 (#27554)
* New version: py-qtconsole 5.2.0

* Apply suggestions from code review

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-19 10:10:59 -07:00
Jen Herting
af1b61569f New package: py-lws (#27536)
* [py-lws] added package

* added cython support

* updates for upstream

* updated py-lws with cython only option

* changes to py-lws for flake8

* [py-lws]

- update copyright
- url -> pypi

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-11-19 11:03:52 -06:00
Manuela Kuhn
7784ff55d6 py-filelock: add 3.4.0 (#27553) 2021-11-19 09:35:07 -07:00
iarspider
7be632b558 New version: openldap 2.6.0; (#27520)
* New version: openldap 2.6.0;
fix recipe for groff (requires pkg-config to find uchardet);
fix recipe for openldap (requires groff to build documentation)

* Restrict openldap versions of py-python-ldap and percona-server

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

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-19 10:31:40 -06:00
iarspider
047062eedf New versopn: py-python-daemon 2.3.0 (#27519)
* New versopn: py-python-daemon 2.3.0

* Update package.py
2021-11-19 10:30:47 -06:00
iarspider
f472716e96 New version: py-pythran 0.10.0 (#27528)
* New version: py-pythran 0.10.0

* Update package.py
2021-11-19 10:21:21 -06:00
Manuela Kuhn
347da5f7b3 py-babel: add 2.9.1 (#27544) 2021-11-19 10:20:58 -06:00
Manuela Kuhn
4a18957093 py-coverage: add 6.1.2 (#27545) 2021-11-19 10:20:07 -06:00
Harmen Stoppels
3fcc6c669f Spack requires Python 2.7: from 0.18.0: (#27505)
* Spack requires Python 2.7: from 0.18.0:

* Better bounds
2021-11-19 10:18:21 -06:00
Manuela Kuhn
33b380937a py-cryptography: add 3.4.8 and 35.0.0 (#27548) 2021-11-19 10:16:21 -06:00
Manuela Kuhn
eb515b87d7 py-click: add 8.0.3 (#27549) 2021-11-19 10:13:24 -06:00
Harmen Stoppels
c5aee4d9b4 define_from_variant: return an empty string for non-existing variants (#27503)
This permits to use conditional variants without a lot of boilerplate.
2021-11-19 14:10:00 +01:00
iarspider
3db918b1cd New version: py-pytools 2021.2.9 (#27531) 2021-11-19 02:23:03 -07:00
Michael Kuhn
eefff81289 otf: specify zlib prefix explicitly (#27491)
This causes `otfconfig` to also list zlib's library directory.
Otherwise, `-lz` cannot be found. Also remove `--with-zlibsymbols`,
which doesn't seem to be supported anymore.
2021-11-19 09:37:27 +01:00
Michael Davis
3375db12a5 Adding --reuse to dev-build command. (#27487) 2021-11-19 09:25:45 +01:00
Diego Alvarez
4d059ead8c nextflow: add v21.10.1 (#27538) 2021-11-19 09:21:14 +01:00
Eric Brugger
4cf71b2c7f VisIt: update for building with 3.2.1. (#27036)
Include several several patches to vtk 8.1 for building on a 
system with no system install X11 libraries or include files.

Specify specific versions of dependent packages that are known to work with 3.2.1.

Tested on spock.olcf.ornl.gov. The GUI came up and rendered images 
and an image was successfully saved using off screen rendering from 
data from curv2d.silo.
2021-11-19 09:05:13 +01:00
Massimiliano Culpo
57d3b02800 Remove spurious debug print (#27541) 2021-11-19 09:02:22 +01:00
haralmha
4d1f09c752 thepeg: fix version condition bug (#27501) 2021-11-19 08:56:00 +01:00
iarspider
c183111a61 py-rapidjson: add version 1.5 (#27527) 2021-11-18 17:52:06 -08:00
Manuela Kuhn
0b6ce17dc4 py-ply: get sources from pypi (#27526)
* py-ply: use pypi

* Add py-setuptools dependency
2021-11-18 16:52:51 -07:00
Massimiliano Culpo
e3cd91af53 Refactor bootstrap of "spack style" dependencies (#27485)
Remove the "get_executable" function from the
spack.bootstrap module. Now "flake8", "isort",
"mypy" and "black" will use the same
bootstrapping method as GnuPG.
2021-11-18 15:23:09 +01:00
iarspider
d0c4aeb0c0 Fix cyrus-sasl recipe: requires groff to build documentation (#27522) 2021-11-18 15:10:37 +01:00
Massimiliano Culpo
f981682bdc Allow recent pytest versions to be used with Spack (#25371)
Currently Spack vendors `pytest` at a version which is three major 
versions behind the latest (3.2.5 vs. 6.2.4). We do that since v3.2.5 
is the latest version supporting Python 2.6. Remaining so much 
behind the currently supported versions though might introduce 
some incompatibilities and is surely a technical debt.

This PR modifies Spack to:
- Use the vendored `pytest@3.2.5` only as a fallback solution, 
  if the Python interpreter used for Spack doesn't provide a newer one
- Be able to parse `pytest --collect-only` in all the different output 
  formats from v3.2.5 to v6.2.4 and use it consistently for `spack unit-test --list-*`
- Updating the unit tests in Github Actions to use a more recent `pytest` version
2021-11-18 15:08:59 +01:00
Harmen Stoppels
8f7640dbef ci: run style unit tests only if we target develop (#27472)
Some tests assume the base branch is develop, but this branch may not
have been checked out.
2021-11-18 13:00:39 +01:00
Alec Scott
7ee736a158 Add Clingo v5.5.1 (#27512) 2021-11-18 06:27:01 +01:00
Glenn Johnson
b260efd9c4 new package: py-scikit-learn-extra (#27439)
* new package: py-scikit-learn-extra

* Remove extra blank line

* Add missing py-cython dependency
2021-11-17 23:13:19 -06:00
Manuela Kuhn
b4fcb4d43c py-envisage: add 6.0.1 (#27517) 2021-11-17 23:12:28 -06:00
haralmha
301a506aa2 py-pygraphviz: Add version 1.7 (#26712)
* Add version 1.7

* Fixup! Add version 1.7
2021-11-17 23:08:56 -06:00
Harmen Stoppels
40a6ac62d3 llvm: introduce [build/link]_llvm_dylib (#27450)
Apart from building a single dylib for LLVM, users should also be able
to link tools against it.
2021-11-17 20:10:59 -07:00
Alec Scott
d24d13559b Add Htslib v1.14, Samtools v1.14, and Bcftools v1.14 (#27515) 2021-11-17 14:30:18 -08:00
Axel Huebl
367c3d8a83 openPMD-validator: 1.1.0.2 (#27514)
Add the latest versions.
2021-11-17 14:26:23 -08:00
Alec Scott
684d9cef23 Add LMOD v8.5.27 (#27513) 2021-11-17 14:21:57 -08:00
Ben Bergen
c459adbf6a Updated Repository Information (#27496) 2021-11-17 10:02:41 -08:00
Jose E. Roman
d9a39d6128 New patch release SLEPc 3.16.1 (#27509) 2021-11-17 09:57:53 -08:00
Manuela Kuhn
26c5001ec4 py-ipykernel: add 5.5.6 (#27498) 2021-11-17 11:06:08 -06:00
Harmen Stoppels
c05746eac2 llvm: use LIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON (#27448)
The previous workaround of using CMAKE_INSTALL_RPATH=ON was used to
avoid CMake trying to write an RPATH into the linker script libcxx.so,
which is nonsensical. See commit f86ed1e.

However, CMAKE_INSTALL_RPATH=ON seems to disable the build RPATH, which
breaks LLVM during the build when it has to locate its build-time shared
libraries (e.g. libLLVM.so). That required yet another workaround, where
some shared libraries were installed "by hand", so that they were picked
up from the install libdir. See commit 8a81229.

This was a dirty workaround, and also makes it impossible to use ninja,
since we explicitly invoked make.

This commit removes the two old workaround, and sets
LIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON, so that libc++abi.a is linked into
libc++.so, which makes it enough to link with -lc++ or invoke clang++
with -stdlib=libc++, so that our install succeeds and linking LLVM's c++
standard lib is still easy.
2021-11-17 09:14:05 -07:00
Harmen Stoppels
d900abe7e1 openblas: add a symbol suffix variant (#27500)
Some packages use a 64_ or _64 symbol suffix for the ilp64 (= 64-bit
integers) intefrace for BLAS. In particular if we want to support shim
libraries like libopenblastrampoline supporting both the 32 and 64 bit
integer version of blas, it must be possible to distinguish between the
two.
2021-11-17 08:52:56 -07:00
Bernhard Kaindl
2765861705 qt+webkit: Build needs Py2, but mesa/Meson needs Py3 (#27466)
mesa inherits MesonPackage (since October 2020) which depends on Py@3.
The conflicts('mesa') enables a regular build of `qt@5.7:5.15+webkit`
without having to specify the exact version by causing the concretizer
to select mesa18 which does not depend on python@3.

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-11-17 07:42:49 -05:00
Harmen Stoppels
ac8993ac38 New version of Spack and new conflicts (#27384) 2021-11-17 11:25:33 +01:00
Harmen Stoppels
cc62689504 Fix overly generic exceptions in log parser (#27413)
This type of error is skipped:

make[1]: *** [Makefile:222: /tmp/user/spack-stage/.../spack-src/usr/lib/julia/libopenblas64_.so.so] Error 1

but it's useful to have it, especially when a package sets a variable
incorrectly in makefiles
2021-11-17 11:24:14 +01:00
Vasileios Karakasis
9260c38408 Add ReFrame 3.9.1 (#27493) 2021-11-17 00:44:59 +00:00
iarspider
b4ac385d70 New version: py-pytest-cov 3.0.0; add 'toml' variant to py-coverage (#27478)
* New version: py-pytest-cov 3.0.0; add 'toml' variant to py-coverage

* Update package.py
2021-11-16 17:16:59 -07:00
iarspider
85a98fc758 New version: py-pylint 2.8.2; new package py-platformdirs (#27473)
* New version: py-pylint 2.8.2; new package py-platformdirs

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-16 17:10:52 -07:00
Harmen Stoppels
0221639e8a llvm: maintainers (#27482) 2021-11-16 15:41:02 -07:00
Brian Spilner
7ad9fc7fdb cdo: new release cdo-2.0.0 (#27457) 2021-11-16 22:08:43 +01:00
Robert Cohn
67cba372e8 Intel mpi: allow use of external libfabric (#27292)
Intel mpi comes with an installation of libfabric (which it needs as a
dependency). It can use other implementations of libfabric at runtime
though, so if you install a package that depends on `mpi` and
`libfabric`, you can specify `intel-mpi+external-libfabric` and ensure
that the Spack-built instance is used (both by `intel-mpi` and the
root).

Apply analogous change to intel-oneapi-mpi.
2021-11-16 12:55:24 -08:00
iarspider
b194b957ce New versions: py-pyasn1 0.4.8, py-pyasn1-modules 0.2.8 (#27453)
* New versions: py-pyasn1 0.4.8, py-pyasn1-modules 0.2.8

* Update package.py
2021-11-16 13:52:56 -07:00
Thomas Kluyver
df5892ac89 Add py-h5py 3.6.0 (#27476) 2021-11-16 13:28:08 -06:00
iarspider
a432d971b1 New version: py-pyrsistent 0.18.0 (#27477)
* New version: py-pyrsistent 0.18.0

* Update package.py

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-16 12:20:04 -07:00
Manuela Kuhn
85cf8af026 py-pyqt-builder: add new package (#27484) 2021-11-16 12:11:30 -07:00
iarspider
a867320021 New version: py-pytest 6.2.5 (#27481)
* New version: py-pytest 6.2.5

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

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-16 12:11:08 -07:00
Harmen Stoppels
a70d917da6 Bump curl (#27471) 2021-11-16 10:30:28 -08:00
iarspider
b9314fd887 New version: py-pu 1.11.0 (#27452) 2021-11-16 11:49:42 -06:00
iarspider
de916bd27b New version: py-pycuda 2021.1 (#27458) 2021-11-16 11:46:23 -06:00
iarspider
9f6dd08e1c New version: py-pycurl 7.44.1 (#27470) 2021-11-16 11:40:43 -06:00
iarspider
db307f9946 New version: py-pymongo 3.12.1 (#27474) 2021-11-16 11:39:28 -06:00
Harmen Stoppels
7c3b146789 llvm: flang implies mlir (#27449) 2021-11-16 10:08:07 -07:00
Harmen Stoppels
54fc26bf34 Add Python 3.9.9 (#27475) 2021-11-16 10:17:23 -06:00
Harmen Stoppels
a780f96a25 Add a symbol suffix option to LLVM (#27445) 2021-11-16 06:06:07 -08:00
Arjun Guha
bb54e9a4be racket: fix URL extrapolation (#27459) 2021-11-16 08:38:47 +01:00
Bernhard Kaindl
ada598668b mesa: Use the llvm-config of spec['llvm'] for '+llvm' (#27235)
Fix builds on hosts where /usr/bin/llvm-config-* is found and provides an
incompatible version: Ensure that the llvm-config of spec['llvm'] is used.
2021-11-16 08:07:48 +01:00
Robert Cohn
8c7fdadeba Add a maintainer for Intel packages (#27465) 2021-11-16 08:03:12 +01:00
Ben Bergen
5a8271d0c6 lanl-cmake-modules: new package (#27447)
Several projects have not yet added modern CMake support. This package
adds find_package support for some of these projects.
2021-11-16 07:31:24 +01:00
Hans Fangohr
35bf91012f oommf: new package (#26933)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-11-15 15:04:08 +01:00
Erik Schnetter
beddcd6a6d pgplot: Correct build error with shared libraries (#27154)
When building pgplot as shared library, dependencies need to be listed explicitly.
2021-11-15 13:51:43 +01:00
Thomas Madlener
6ce4a5ce8c lcio: add v2.17 (#27238) 2021-11-15 13:49:43 +01:00
Edgar Leon
4a71704ae4 mpibind: add python bindings (#27127) 2021-11-15 13:48:14 +01:00
Kyle Gerheiser
ce9ae3c70d Add module variables for NCEPLIBS (#27162)
Use setup_run_environment to search for libraries and set env variables for module generation.

Libraries are installed with CMAKE_INSTALL_LIBDIR, which can be lib or lib64 depending on the machine, which makes it impossible to hardcode through modules.yaml.
2021-11-15 13:21:53 +01:00
Harmen Stoppels
55e853c160 mbedtls: fix shared libs needed section and add new version (#27285) 2021-11-15 13:10:51 +01:00
Sinan
90a92c4efc libspatialite: add v5.0.1 (#27181)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-11-15 11:48:08 +01:00
kwryankrattiger
fbfc27d707 ECP-DAV-SDK: remove catalyst (#27204)
Temporarily remove +catalyst, assumes catalyst is on when +paraview
2021-11-15 11:46:14 +01:00
Michael Kuhn
aac505d4ff libfuse: fix build with new glibc (#27376)
glibc 2.34+ breaks libfuse@2 (see https://bugs.gentoo.org/803923). While
we are at it, backport a few patches from upstream.
2021-11-15 11:29:44 +01:00
laestrada
e5a0986433 gchp: add v13.2.1 (#27318)
Co-authored-by: laestrada <lestrada00@gmail.com>
2021-11-15 11:28:25 +01:00
Glenn Johnson
2ea1037369 llvm: remove cyclades code from llvm-10:11 (#27385) 2021-11-15 11:27:00 +01:00
Glenn Johnson
faeea04712 star-ccm-plus: add version and environment setup (#27388)
- add version 16.06.008_01
- set up run environment
2021-11-15 11:26:05 +01:00
Glenn Johnson
cdcde36f51 perl-forks: handle non-threaded perl (#27392)
If the perl that perl-forks is built against is non-threaded the build
system will drop into interactive mode to ask about simulating ithreads.
This causes the build to hang. Set FORKS_SIMULATE_USEITHREADS to avoid
going into interactive mode.
2021-11-15 11:24:36 +01:00
Glenn Johnson
85a33bd2f1 perl-dbd-mysql: depend on mysql-client (#27393) 2021-11-15 11:24:09 +01:00
Glenn Johnson
19493e4932 ncl: add dependencies (#27394)
- zstd
- makedepend
2021-11-15 11:23:50 +01:00
Glenn Johnson
557556bbfd maker: add perl-dbd-mysql dependency (#27395) 2021-11-15 11:23:30 +01:00
Glenn Johnson
d01129e9c8 mariadb-c-client: add krb5 dependency (#27396) 2021-11-15 11:23:08 +01:00
Diego Alvarez
972ae2393a nextflow: add v21.10.0 (#27400) 2021-11-15 11:22:39 +01:00
Harmen Stoppels
21308eb5cc Turn some verbose messages into debug messages (#27408) 2021-11-15 11:21:37 +01:00
Valentin Volkl
4c0f5f85c0 edm4hep: add v0.4 (#27412) 2021-11-15 11:17:17 +01:00
Harmen Stoppels
9573eb5315 dsfmt: new package (#27415) 2021-11-15 11:15:42 +01:00
Glenn Johnson
d1df044b42 asciidoc: add autotools dependencies (#27418) 2021-11-15 11:13:00 +01:00
Glenn Johnson
9171d56146 czmq: use Spack's docbook (#27419) 2021-11-15 11:11:29 +01:00
Glenn Johnson
8dc8282651 dbus: use Spack's docbook (#27420) 2021-11-15 11:11:11 +01:00
Glenn Johnson
6e646e42a5 gpu-burn: set spack compiler (#27421) 2021-11-15 11:10:57 +01:00
Glenn Johnson
91b8a87fc7 interproscan: add missing dependency (#27423) 2021-11-15 11:10:27 +01:00
Glenn Johnson
5aaee953c5 libbeagle: add opencl variant (#27424) 2021-11-15 11:10:02 +01:00
Glenn Johnson
9d9fc522c8 libdrm: use Spack docbook (#27425) 2021-11-15 11:09:04 +01:00
Glenn Johnson
5e8368d0c9 libint: fix build (#27426)
- use project autogen.sh script
- set boost path
- make sure to build the compiler before the library
2021-11-15 11:08:48 +01:00
Glenn Johnson
c91b2b42a8 libzmq: use Spack docbook (#27427) 2021-11-15 11:07:30 +01:00
Desmond Orton
4cc42789db py-mxfold2: new package at v0.1.1 (#27383) 2021-11-15 11:07:02 +01:00
Glenn Johnson
f281b59394 hdf-eos5: use szip virtual (#27422) 2021-11-15 11:05:44 +01:00
Oliver Perks
4bd6a11c25 MEEP: update version and libctl (#27433) 2021-11-15 11:03:49 +01:00
Chris White
7b4c08db21 umpire: disable building docs (#27434) 2021-11-15 11:01:20 +01:00
Brian Van Essen
100b212538 Added support for new version of Cray libsci. (#27435) 2021-11-15 11:00:43 +01:00
Arjun Guha
9877c21c50 racket: add new package at v8.3.0 (#27446) 2021-11-15 10:56:26 +01:00
Adam J. Stewart
54cc7d0f30 py-pytorch-lightning: add v1.5.0 (#27266) 2021-11-15 10:49:35 +01:00
Adam J. Stewart
ee8f46e826 py-build: add new package (#27270) 2021-11-15 10:48:43 +01:00
Manuela Kuhn
d9a687af45 py-sip: add 5.5.0 and 6.4.0 (#27357) 2021-11-14 22:18:08 -06:00
Mark W. Krentel
f92a2d688d elfutils: add version 0.186 (#27345) 2021-11-13 18:49:53 -06:00
iarspider
3706fef9af New version: py-pexpect 4.8.0 (#27401) 2021-11-13 17:31:56 -07:00
iarspider
76fed9c04d New version: py-plac; fix tests (#27405) 2021-11-13 17:28:27 -07:00
Glenn Johnson
7a00cef055 qt: turn off features if not supported by the kernel (#27438)
If building Qt on a system with a recent glibc but an older kernel, it
is possible that Qt configures features based on glibc that are not
supported in the kernel. This PR tests the kernel version and ensures
certain features are disabled if the kernel does not support them.
2021-11-13 15:39:50 -05:00
Manuela Kuhn
9fb9399487 py-pycortex: add new package (#27432) 2021-11-13 12:24:51 -06:00
Manuela Kuhn
94eb175e07 py-lxml: add 4.6.4 (#27440) 2021-11-13 12:19:46 -06:00
Manuela Kuhn
8e9ef0f6f6 py-neurokit2: add 0.1.5 (#27441) 2021-11-13 12:17:14 -06:00
Manuela Kuhn
02355d32bd py-deepdiff: add new package (#27442) 2021-11-13 12:14:46 -06:00
Manuela Kuhn
e3389e9017 py-pytest-runner: add 5.3.1 (#27443) 2021-11-13 12:12:59 -06:00
Manuela Kuhn
984715e859 py-imageio: add 2.10.3 (#27431) 2021-11-13 05:22:27 -07:00
Seth R. Johnson
31fec1f730 py-h5sh: replace github with pypi (#27409) 2021-11-12 19:01:25 -06:00
Satish Balay
446e4ff54b xsdk: add version @0.7.0 (#27250)
- add xsdk_depends_on() that propagates cuda, rocm options
- enable +cuda for hypre, mfem, amrex
- enable +rocm for mfem, sundials, magma, amrex, tasmanian, ginkgo, heffte
- deprecate @0.5.0
- remove 'debug' variant as it doesn't really exist
- heffte: remove binding to openmpi+cuda
- dtk: use 3.1-rc2 on macos (3.1-rc3 elsewhere)
- petsc: disable trilinos

Co-authored-by: Cody Balos <balos1@llnl.gov>
2021-11-12 17:20:35 -06:00
Cody Balos
203a5a0f71 sundials: fix for rocm support (#27295) 2021-11-12 16:13:32 -06:00
Manuela Kuhn
98fbfa2739 py-pybids: add 0.14.0 (#27430) 2021-11-12 15:04:51 -07:00
Cody Balos
c4b52098f3 superlu-dist: fix case for cce fortran compiler (#27296)
* superlu-dist: fix build with cce fortran compiler
2021-11-12 15:27:15 -06:00
iarspider
3f4d0943d7 New version: py-pkgconfig 1.5.5 (#27402)
* New version: py-pkgconfig 1.5.5

* Actually add version 1.5.5; fix dependency
2021-11-12 12:59:00 -07:00
iarspider
67f4e2674f New version: py-prettytable 2.4.0; update homepage (#27407)
* New version: py-prettytable 2.4.0; update homepage

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-12 12:52:48 -07:00
iarspider
441a76b646 New version: py-prometheus-client 0.12.0 ... (#27410)
* New version: py-prometheus-client 0.12.0; new dependency (py-twisted) version 21.7.0 + it's dependencies

* Apply suggestions from code review (1/?)

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

* Changes from review (2/?)

* Changes from review (3/?)

* Changes from review (4/?)

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-12 11:31:47 -07:00
Harmen Stoppels
4b16c6fb0c bump python 3.9.8 (#27381) 2021-11-12 11:17:16 -06:00
Glenn Johnson
8d06abb8ed py-numpy: add support for intel-oneapi-mkl (#27390) 2021-11-12 11:16:09 -06:00
Glenn Johnson
77203c940c py-grpcio: add re2 dependency and set paths (#27391) 2021-11-12 11:14:45 -06:00
iarspider
f9c4cb5f8a New version: py-pathlib2 2.3.6 (#27398) 2021-11-12 11:12:03 -06:00
iarspider
1d166a2151 New version: py-pbr 5.7.0 (#27399) 2021-11-12 11:11:04 -06:00
Jen Herting
79e520957b New package: py-pyscipopt (#27363)
* build of pyscipopt w/ scipoptsuite 7.0.1

* removed type from scipoptsuite"

* removed url

* updated to 3.4.0

* [py-pyscipopt] removed redundant python dependency and fixed dependency types

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-11-12 10:07:59 -07:00
iarspider
9c386b181a New version: py-pkginfo 1.7.1 (#27403) 2021-11-12 11:04:36 -06:00
iarspider
c9e96018be New version: py-pluggy 1.0.0 (#27406) 2021-11-12 11:03:25 -06:00
Seth R. Johnson
a04cc4470e Add PyPI docs and warning in auto-generated package (#27404)
* docs: Add cross-references for pypi setup

* create: add warning for missing pypi
2021-11-12 10:58:44 -06:00
Andrew W Elble
407f68a67b new package: py-qiskit-aer and dependencies (#27198)
* new package: py-qiskit-aer and dependencies

+updates for dependencies

* flake8 fix

* forgot homepages

* incorporate feedback

* py-cmake and py-ninja to py-tweedledum, prevent py-cmake from
completely rebuilding cmake

* py-ninja: avoid rebuilding ninja

* other feedback fixes

* additional fixes
2021-11-12 10:45:07 -06:00
Massimiliano Culpo
c5dd3265ed Update the Public key of the tutorial (#27370) 2021-11-12 11:46:02 +01:00
Harmen Stoppels
9637ed05f5 Fix overloaded argparse keys (#27379)
Commands should not reuse option names defined in main.
2021-11-11 23:34:18 -08:00
Desmond Orton
11f6aac1e3 New Package: py-setuptools-cpp (#27382) 2021-11-11 23:30:18 -08:00
Adam J. Stewart
dbad9fd58a py-torchgeo: add version 0.1.0 (#27274) 2021-11-11 23:25:20 -08:00
Harmen Stoppels
62b1c3411c suite-sparse: general fixes (#27283)
- disable graphblas by default (very slow to compile)
- fix patch upperbound for cuda 11
- remove find_system_libs; not sure why it was added in the first place,
but it makes spack rather unusable as it introduces an rpath to /lib/...
2021-11-11 23:21:53 -08:00
Ben Cowan
f5e107e046 gcc package: Mac OS patch not needed for @12: 2021-11-11 23:15:38 -08:00
Robert Cohn
c91074514a intel-oneapi-mkl: define MKLROOT for dependents (#27302)
Fixes #27260
2021-11-11 23:12:48 -08:00
Adam J. Stewart
c8fdce28e6 PyTorch: fix compilation of +distributed~tensorpipe (#27337) 2021-11-11 23:09:10 -08:00
Tiziano Müller
38592b9e4f boost: ensure Spack wrappers are used for %intel (#27348)
Fixes #26117
2021-11-11 23:02:08 -08:00
Manuela Kuhn
f777cc079d py-formulaic: add new package (#27373) 2021-11-11 22:22:51 -07:00
Adam J. Stewart
17025f5354 GDAL: add v3.4.0 (#27288) 2021-11-11 19:31:51 -07:00
Charles Doutriaux
7858a2f05c Adds Sina Python Package to Spack (#27219) 2021-11-11 17:20:23 -08:00
eugeneswalker
a35d3b895b e4s ci: enable tau +mpi +python variants (#27273) 2021-11-11 17:14:31 -08:00
Chris White
1d8c2498ee update exercise build option for 0.14.0 (#27338) 2021-11-11 17:06:08 -08:00
Mark W. Krentel
f548243e9e elfutils: add version 0.186 (#27345) 2021-11-11 17:04:53 -08:00
Timothy Brown
eb9a520adb Adding a new ESMF version and checksum. (#27367) 2021-11-11 17:02:08 -08:00
Adam J. Stewart
89a59b98e7 py-scipy: add v1.7.2 (#27252) 2021-11-12 00:40:29 +01:00
Adam J. Stewart
e3645d666e py-numpy: add v1.21.4 (#27251) 2021-11-12 00:11:26 +01:00
Manuela Kuhn
dcef7b066c py-pillow: add 8.4.0 (#27371) 2021-11-11 16:04:45 -07:00
Seth R. Johnson
c9ed4bce66 py-wurlitzer: new package (#27328)
* py-wurlitzer: new package

* py-wurlitzer: use PyPI repository

* py-wurlitzer: use pypi attribute
2021-11-11 14:34:50 -07:00
Jen Herting
44b5c1e41a New package: py-parmed (#27362)
* [py-parmed] created template

* [py-parmed]

- added homepage
- added description
- removed fixmes
- added dependencies
2021-11-11 13:58:29 -06:00
iarspider
0d06bf6027 New version: py-nbconvert 6.2.0 (#27350)
* New version: py-nbconvert 6.2.0

* Update package.py
2021-11-11 11:58:56 -07:00
iarspider
a2eadbbcdf New version: py-pandocfilters 1.5.0 (#27359) 2021-11-11 11:07:53 -07:00
iarspider
347ad11b68 New version: py-parso 0.8.2 (#27360)
* New version: py-parso 0.8.2

* Update package.py
2021-11-11 10:58:45 -07:00
eugeneswalker
f2920cbf62 tau: add v2.31 (#27342) 2021-11-11 09:53:07 -08:00
Manuela Kuhn
7513a644b9 py-h5py: add v3.5.0 (#27344) 2021-11-11 18:51:52 +01:00
Harmen Stoppels
f097a24253 fuse-overlayfs: add maintainer, add v1.7, v1.7.1 (#27349) 2021-11-11 18:50:32 +01:00
iarspider
53168d4e57 New version: py-notebook 6.4.5 (#27353) 2021-11-11 09:55:44 -07:00
Manuela Kuhn
72f41a6591 py-interface-meta: add new package (#27340) 2021-11-11 10:48:46 -06:00
iarspider
00c84aa54f New version: py-oauthlib 3.1.1 (#27356)
* New version: py-oauthlib 3.1.1

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-11 09:43:50 -07:00
haralmha
e32dd27eb7 Generalize env var PYTHON to avoid version conflicts (#27334)
* Generalize env var PYTHON to avoid version conflicts

* Use available python executable

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-11 10:37:54 -06:00
iarspider
9ce0abf34f New version: py-nbconvert 0.5.5 (#27347) 2021-11-11 10:37:10 -06:00
iarspider
569a9a9dcc New version: py-nest-asyncio 1.5.1 (#27351) 2021-11-11 10:35:33 -06:00
iarspider
945594fa98 New version: py-networkx 2.6.3 (#27352) 2021-11-11 10:29:45 -06:00
Daryl W. Grunau
770bbba676 Trilinos: fix DEP_INCLUDE_DIRS definition (#27341) 2021-11-11 05:30:44 -05:00
Dan Bonachea
8d021a2915 upcxx: Update the UPC++ package to 2021.9.0 (#26996)
* upcxx: Update the UPC++ package to 2021.9.0

* Add the new release, and a missing older one.

* Remove the spack package cruft for supporting the obsolete build system that
  was present in older versions that are no longer supported.

* General cleanups.

Support for library versions older than 2020.3.0 is officially retired,
for two reasons:

1. Releases prior to 2020.3.0 had a required dependency on Python 2,
   which is [officially EOL](https://www.python.org/doc/sunset-python-2/)
   as of Jan 1 2020, and is no longer considered secure.
2. (Most importantly) The UPC++ development team is unable/unwilling to
   support releases more than two years old.  UPC++ provides robust
   backwards-compatibility to earlier releases of UPC++ v1.0, with very
   rare well-documented/well-motivated exceptions.  Users are strongly
   encouraged to update to a current version of UPC++.

NOTE: Most of the lines changed in this commit are simply re-indentation,
and thus might be best reviewed in a diff that ignores whitespace.

* upcxx: Detect Cray XC more explicitly

This change is necessary to prevent false matches occuring on new Cray Shasta
systems, which do not use the aries network but were incorrectly being treated
as a Cray XC + aries platform.

UPC++ has not yet deployed official native support for Cray Shasta, but this
change is sufficient to allow building the portable backends there.
2021-11-10 13:48:02 -08:00
Manuela Kuhn
8411cc934d py-setupmeta: add new package (#27327)
* py-setupmeta: add new package

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-10 13:43:46 -07:00
iarspider
5e0208a710 New version: py-mpld3 0.5.5 (#27329)
* New version: py-mpld3 0.5.5

* Update package.py

* Update package.py
2021-11-10 11:07:51 -07:00
Manuela Kuhn
335bcdc206 py-traits: add 6.3.1 (#27321) 2021-11-10 11:49:13 -06:00
Manuela Kuhn
89d98a780d py-traitlets: add 5.1.1 (#27322) 2021-11-10 11:48:14 -06:00
iarspider
b5e0ac35c8 New versions: py-more-itertools 8.9.0, 8.11.0 (#27325) 2021-11-10 11:45:27 -06:00
Manuela Kuhn
a31f2be91a py-wrapt: add 1.13.3 (#27326) 2021-11-10 11:42:28 -06:00
iarspider
4633f19971 New verison of py-mpmath: 1.2.1 (#27331) 2021-11-10 11:33:20 -06:00
iarspider
0e5cc0d79b New versions of py-multidict: 5.1.0 and 5.2.0 (#27332) 2021-11-10 10:31:46 -07:00
Veselin Dobrev
ceabb96c89 Add a patch for mfem v4.3 to support cusparse >= 11.4 (#27267) 2021-11-09 20:29:06 -06:00
iarspider
723f2f465b New version: py-markdown 3.3.4 (#27310)
* New version: py-markdown 3.3.4

* Changes from review

* Update package.py
2021-11-09 17:19:41 -07:00
Karen C. Tsai
376e5ffd6e fix typo (#27319) 2021-11-09 17:16:41 -07:00
Massimiliano Culpo
b16bfe4f5f spack tutorial: fix output to screen (#27316)
Spack was checking out v0.17, the output reported v0.16
2021-11-09 15:10:22 -08:00
Maxim Belkin
0ab5d42bd5 Fix typos (ouptut) (#27317) 2021-11-09 16:11:34 -06:00
Harmen Stoppels
0322431c5c libssh2: add new versions and crypto=mbedtls|openssl (#27284) 2021-11-09 22:24:23 +01:00
Karen C. Tsai
81a0f7222c create py-sphinx-multiversion spackage (#27314) 2021-11-09 14:09:13 -07:00
iarspider
d8f4339c18 New version: py-mako 1.1.5 (#27308) 2021-11-09 13:39:34 -06:00
Manuela Kuhn
41d4473df4 py-pooch: add 1.5.2 (#27305) 2021-11-09 13:37:16 -06:00
Olivier Cessenat
31c932eec9 octave: override qtchooser, add bz2 variant (#26802)
* octave: override qtchooser, add bz2 variant

* fix texinfo not found from "spack install --test=root -v"

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-11-09 19:36:42 +01:00
Kyle Gerheiser
86c8c3306b Add variant for the --enable-two-level-namespace option in MPICH (#27230) 2021-11-09 15:48:01 +00:00
Jordan Galby
6e9c0a8155 Fix log-format reporter ignoring install errors (#25961)
When running `spack install --log-format junit|cdash ...`, install
errors were ignored. This made spack continue building dependents of
failed install, ignoring `--fail-fast`, and exit 0 at the end.
2021-11-09 15:47:32 +00:00
Larry Knox
8a836213f7 Add hdf5-vol-async package. (#26874)
* Add hdf5-vol-async package.
Add HDF5 1.13.0-rc6 version for building vol-async.

* Style test required another blank line.

* Change hdf5 dependency to develop-1.13+mpi+threadsafe.

* Update args for hdf5-vol-async.
2021-11-09 10:31:34 -05:00
Harmen Stoppels
6e6847d9c7 openlibm: new package (#27286) 2021-11-09 04:52:12 -08:00
Harmen Stoppels
321604b4e5 utf8proc: add new versions (#27287) 2021-11-09 04:50:34 -08:00
iarspider
a7363af47e New version: py-jsonpickle 2.0.0 (#27145) 2021-11-09 05:46:51 -07:00
eugeneswalker
560abc9c14 flecsi 2.1.0: requires gcc>=9 (#27195) 2021-11-09 12:32:41 +00:00
Martin Pokorny
65b0588e80 Fix usage of CMakePackage.define_from_variant() (#27307)
Added `self` target to method calls
2021-11-09 04:52:46 -07:00
Alec Scott
a193e6a204 Add v1.57.0 to Rclone (#27205) 2021-11-09 04:34:48 -07:00
Andrey Prokopenko
7763c7a1cc Deprecate pre-release ArborX version (#27248) 2021-11-09 12:04:54 +01:00
Mikhail Titov
e272e5039d rct: update packages (RP, RU) with new versions (#27306) 2021-11-09 12:03:35 +01:00
Jean-Paul Pelteret
8f88f34973 SymEngine: Update package to 0.8.1 (#27304) 2021-11-09 12:03:07 +01:00
Jean-Paul Pelteret
b4a2fd1fcd deal.II: Update for 9.3.2 release (#27303) 2021-11-09 12:02:51 +01:00
Massimiliano Culpo
752aa7adde Allow triggering the "Bootstrap" workflow manually (#27298) 2021-11-09 12:02:24 +01:00
Robert Underwood
2153ac5863 openmpi fix external find for 0.17 (#27255) 2021-11-09 11:58:14 +01:00
TZ
808375429d openmpi: does not support "--without-pmix" (#27258)
Open MPI currently fails to build with scheduler=slurm if +pmix is
not given with a fatal error due to ``config_args +=
self.with_or_without('pmix', ...)`` resulting in --without-pmix.
However, Open MPI's configure points out "Note that Open MPI does
not support --without-pmix."

The PR only adds "--with-pmix=PATH" if +pmix is part of the spec.
Otherwise, nothing is added and Open MPI can fall back to its
internal PMIX sources.

(The other alternative would be to depend on +pmix in for
scheduler=slurm as is done for +pmi.)
2021-11-09 11:55:56 +01:00
Dylan Simon
2b990b400e make --enable-locks actually enable locks (#24675) 2021-11-09 10:52:08 +00:00
Desmond Orton
34be8d0670 Rebased develop to fix pipeline issues (#27209) 2021-11-09 11:47:59 +01:00
Desmond Orton
eae2027db7 Build Fix (#27210) 2021-11-09 11:46:51 +01:00
Hanwen
65aadf0332 aws-parallelcluster: add v2.11.3 (#27244) 2021-11-09 11:42:09 +01:00
Glenn Johnson
44bf54edee xrootd: add new version and variant (#27245)
- add version 5.3.2
- add krb variant
- add patch to not look for systemd
2021-11-09 11:41:39 +01:00
estewart08
daa8a2fe87 [AMD][rocm-openmp-extras] Update for ROCm 4.3. (#25482)
- Added new checksums for 4.3.
- Now using llvm-amdgpu ~openmp in order to use the rocm-device-libs
  build as external project in llvm-amdgpu package. We still need
  to pull device-libs in using resource for the build as some headers
  are not installed.
- Updated symlink creation to now remove an existing link if  present
  to avoid issues on partial reinstalls when debugging.
- Adjusted the flang_warning to be a part of Cmake options instead of
  a filter_file for better compatability.
- The dependency on hsa-rocr-dev created some problems as type was changed
  to the default build/link. This issue was because ROCr uses libelf and
  the build of openmp expects elfutils. When link is specified libelf
  was being found in the path first, causing errors. This was
  introduced with the llvm-amdgpu external project build of device-libs.
- On a bare bone installation of sles15 it was noted that libquadmath0 was
  needed as a dependency. On 18.04 gcc-multilib was also needed.

* Workaround for libelf headers being used instead of elfutils.
2021-11-09 10:36:13 +00:00
Cameron Rutherford
b8d6351f80 Remove requiring hiop+shared in ExaGO. (#27141) 2021-11-09 11:35:10 +01:00
Cory Bloor
7cb3e9bf43 hipblas: Add spack test support (#27074) 2021-11-09 11:32:36 +01:00
luker
8ce37d9153 HPCG Fix for the Cray complier (CCE) (#25197)
CCE's c++ compiler (Clang based) does not accept the '-ftree-vectorizer-verbose=0'
flag. That flag is removed and a suitable substitution is made.
2021-11-09 10:26:02 +00:00
Cory Bloor
a9c6881bbc rocsolver: Add spack test support (#26919) 2021-11-09 11:25:03 +01:00
Ben Darwin
7c118ee22b ants: fix build by setting BUILD_TESTING=OFF (#26768)
Due to Kitware API changes, default ANTs builds were failing, presumably for all versions (https://github.com/ANTsX/ANTs/issues/1236).
This commit defaults BUILD_TESTING to OFF, preventing calls against
these APIs and fixing all versions.
Note that the ANTs test suite was not clean anyway (e.g. ANTs/#842).
2021-11-09 11:19:32 +01:00
Valentin Volkl
a3dd0e7861 build_environment: clean *_ROOT variables (#26474)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-11-09 11:16:42 +01:00
Joseph Wang
abdd206f65 add libtirpc for rpc/types.h (#26628)
rpc/types.h has been removed in recent glibc
2021-11-09 11:14:28 +01:00
Sreenivasa Murthy Kolam
1d09474975 fix rvs build issue by using yaml-cpp spack recipe (#26000) 2021-11-09 11:09:15 +01:00
Tsuyoshi Yamaura
3484434fe2 New package: SCALE (#25574) 2021-11-09 00:19:47 -08:00
iarspider
f164bae4a3 Python tests: skip importing weirdly-named modules (#27151)
* Python tests: allow importing weirdly-named modules

e.g. with dashes in name

* SIP tests: allow importing weirdly-named modules

* Skip modules with invalid names

* Changes from review

* Update from review

* Update from review

* Cleanup
2021-11-08 19:22:33 +00:00
Brian Van Essen
db504db9aa Added new hash values for recent versions. (#27294) 2021-11-08 19:02:30 +00:00
iarspider
bff894900e New version: py-lz4 3.1.3; use external lz4 instead of bundled one (#27282)
* New version: py-lz4 3.1.3; use external lz4 instead of bundled one

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

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

* Changes from review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-08 18:14:46 +00:00
iarspider
71f8460357 New versions of py-keyring: 23.1.0, 23.2.0, 23.2.1 (#27276) 2021-11-08 10:59:40 -06:00
iarspider
f9d0007546 New version: py-lazy-object-proxy 1.6.0 (#27277) 2021-11-08 10:58:26 -06:00
iarspider
14232b40d9 New version: py-lockfile 0.12.2 (#27279) 2021-11-08 10:56:34 -06:00
Seth R. Johnson
18d506c7fb trilinos: disable optional packages by default (#26815) 2021-11-08 08:29:35 -05:00
Maciej Wójcik
c384ac88a0 gromacs-swaxs: new package (#26902) 2021-11-08 13:51:23 +01:00
Maciej Wójcik
8f59707f04 gromacs-chain-coordinate: inherit from gromacs package (#27246) 2021-11-08 13:50:42 +01:00
Massimiliano Culpo
62f0c70a8c OpenSUSE: try to apply workaround to avoid CI error (#27275) 2021-11-08 11:56:19 +00:00
Ben Bergen
1fc753af66 Updated Versions (#27268)
- Added 7.1 release
- Added master git branch
2021-11-07 19:41:49 -07:00
Brice Videau
f02dec2bbb Update py-ytopt package and add necessary dependencies (#26879)
* Add spack package py-ytopt-team-ytopt and required dependencies.

* Removed old ytop package.

* Added author as maintainer.

* Fix style.

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

Update python dependency to 3.7

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

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

Remove run dependency from py-cython.

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

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

Added run dependency type for py-pyparsing.

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

* Updated description of py-dh-scikit-optimize.

* Source py-dh-scikit-optimize from PyPI.

* Added latest py-dh-scikit-optimize version.

* Made plots option False by default for py-dh-scikit-optimize.

* Removed 0.9.4 as it needs additional dependencies.

* Added version dependencies.

* Added missing py-joblib dependencies.

* Added run dependency type.

* Added python 2.7+ as supported for py-pyaml.

* Change py-config-space to py-configspace.

* Added dependency on python 3.6+.

* Fix py-configspace package naming.

* Changed py-autotune to py-ytopt-autotune.

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

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

* Added debug variant with py-ray dependency.

* Added missing py-mpi4py missing dependency.

* Removed erroneous variant.

* Added debug variant to py-ray.

* Fix indentation.

* Removed debug variant of py-ray.

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-11-06 10:52:30 -05:00
7557 changed files with 70922 additions and 31062 deletions

View File

@@ -16,19 +16,29 @@ body:
attributes:
label: Steps to reproduce the issue
description: |
Fill in the exact spec you are trying to build and the relevant part of the error message
placeholder: |
Fill in the console output from the exact spec you are trying to build.
value: |
```console
$ spack install <spec>
$ spack spec -I <spec>
...
```
- type: textarea
id: error
attributes:
label: Error message
description: |
Please post the error message from spack inside the `<details>` tag below:
value: |
<details><summary>Error message</summary><pre>
...
</pre></details>
validations:
required: true
- type: textarea
id: information
attributes:
label: Information on your system
description: Please include the output of `spack debug report`
description: Please include the output of `spack debug report`.
validations:
required: true
- type: markdown

View File

@@ -1,6 +1,8 @@
name: Bootstrapping
on:
# This Workflow can be triggered manually
workflow_dispatch:
pull_request:
branches:
- develop
@@ -29,7 +31,7 @@ jobs:
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
make patch unzip which xz python3 python3-devel tree \
cmake bison bison-devel libstdc++-static
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
@@ -59,7 +61,7 @@ jobs:
bzip2 curl file g++ gcc gfortran git gnupg2 gzip \
make patch unzip xz-utils python3 python3-dev tree \
cmake bison
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
@@ -76,18 +78,47 @@ jobs:
spack -d solve zlib
tree ~/.spack/bootstrap/store/
ubuntu-clingo-binaries-and-patchelf:
runs-on: ubuntu-latest
container: "ubuntu:latest"
steps:
- name: Install dependencies
env:
DEBIAN_FRONTEND: noninteractive
run: |
apt-get update -y && apt-get upgrade -y
apt-get install -y \
bzip2 curl file g++ gcc gfortran git gnupg2 gzip \
make patch unzip xz-utils python3 python3-dev tree
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
git fetch --unshallow
. .github/workflows/setup_git.sh
useradd -m spack-test
chown -R spack-test .
- name: Bootstrap clingo
shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
spack -d solve zlib
tree ~/.spack/bootstrap/store/
opensuse-clingo-sources:
runs-on: ubuntu-latest
container: "opensuse/leap:latest"
steps:
- name: Install dependencies
run: |
zypper update -y
# Harden CI by applying the workaround described here: https://www.suse.com/support/kb/doc/?id=000019505
zypper update -y || zypper update -y
zypper install -y \
bzip2 curl file gcc-c++ gcc gcc-fortran tar git gpg2 gzip \
make patch unzip which xz python3 python3-devel tree \
cmake bison
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
@@ -107,7 +138,7 @@ jobs:
- name: Install dependencies
run: |
brew install cmake bison@2.7 tree
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Bootstrap clingo
run: |
source share/spack/setup-env.sh
@@ -126,8 +157,8 @@ jobs:
- name: Install dependencies
run: |
brew install tree
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Bootstrap clingo
@@ -143,8 +174,8 @@ jobs:
matrix:
python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9']
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Setup repo and non-root user
@@ -171,7 +202,7 @@ jobs:
apt-get install -y \
bzip2 curl file g++ gcc patchelf gfortran git gzip \
make patch unzip xz-utils python3 python3-dev tree
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- name: Setup repo and non-root user
run: |
git --version
@@ -200,7 +231,7 @@ jobs:
bzip2 curl file g++ gcc patchelf gfortran git gzip \
make patch unzip xz-utils python3 python3-dev tree \
gawk
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- name: Setup repo and non-root user
run: |
git --version
@@ -225,7 +256,7 @@ jobs:
brew install tree
# Remove GnuPG since we want to bootstrap it
sudo rm -rf /usr/local/bin/gpg
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- name: Bootstrap GnuPG
run: |
source share/spack/setup-env.sh
@@ -241,7 +272,7 @@ jobs:
brew install gawk tree
# Remove GnuPG since we want to bootstrap it
sudo rm -rf /usr/local/bin/gpg
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- name: Bootstrap GnuPG
run: |
source share/spack/setup-env.sh

View File

@@ -12,6 +12,7 @@ on:
- develop
paths:
- '.github/workflows/build-containers.yml'
- 'share/spack/docker/*'
# Let's also build & tag Spack containers on releases.
release:
types: [published]
@@ -36,7 +37,7 @@ jobs:
name: Build ${{ matrix.dockerfile[0] }}
steps:
- name: Checkout
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Set Container Tag Normal (Nightly)
run: |
@@ -66,20 +67,21 @@ jobs:
uses: docker/setup-buildx-action@94ab11c41e45d028884a99163086648e898eed25 # @v1
- name: Log in to GitHub Container Registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 # @v1
uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7 # @v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to DockerHub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 # @v1
if: ${{ github.event_name != 'pull_request' }}
uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7 # @v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Deploy ${{ matrix.dockerfile[1] }}
uses: docker/build-push-action@a66e35b9cbcf4ad0ea91ffcaf7bbad63ad9e0229 # @v2
uses: docker/build-push-action@7f9d37fa544684fb73bfe4835ed7214c255ce02b # @v2
with:
file: share/spack/docker/${{matrix.dockerfile[1]}}
platforms: ${{ matrix.dockerfile[2] }}

View File

@@ -2,19 +2,7 @@
. share/spack/setup-env.sh
echo -e "config:\n build_jobs: 2" > etc/spack/config.yaml
spack config add "packages:all:target:[x86_64]"
# TODO: remove this explicit setting once apple-clang detection is fixed
cat <<EOF > etc/spack/compilers.yaml
compilers:
- compiler:
spec: apple-clang@11.0.3
paths:
cc: /usr/bin/clang
cxx: /usr/bin/clang++
f77: /usr/local/bin/gfortran-9
fc: /usr/local/bin/gfortran-9
modules: []
operating_system: catalina
target: x86_64
EOF
spack compiler find
spack compiler info apple-clang
spack debug report
spack solve zlib

View File

@@ -24,23 +24,23 @@ jobs:
name: gcc with clang
runs-on: macos-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: spack install
run: |
. .github/workflows/install_spack.sh
# 9.2.0 is the latest version on which we apply homebrew patch
spack install -v --fail-fast gcc@9.2.0 %apple-clang
spack install -v --fail-fast gcc@11.2.0 %apple-clang
install_jupyter_clang:
name: jupyter
runs-on: macos-latest
timeout-minutes: 700
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: spack install
@@ -52,8 +52,8 @@ jobs:
name: scipy, mpl, pd
runs-on: macos-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: spack install

View File

@@ -1,9 +1,8 @@
#!/usr/bin/env sh
#!/bin/bash -e
git config --global user.email "spack@example.com"
git config --global user.name "Test User"
# With fetch-depth: 0 we have a remote develop
# but not a local branch. Don't do this on develop
if [ "$(git branch --show-current)" != "develop" ]
then
git branch develop origin/develop
# create a local pr base branch
if [[ -n $GITHUB_BASE_REF ]]; then
git fetch origin "${GITHUB_BASE_REF}:${GITHUB_BASE_REF}"
fi

View File

@@ -15,8 +15,8 @@ jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: Install Python Packages
@@ -24,17 +24,17 @@ jobs:
pip install --upgrade pip
pip install --upgrade vermin
- name: vermin (Spack's Core)
run: vermin --backport argparse --violations --backport typing -t=2.6- -t=3.5- -vvv lib/spack/spack/ lib/spack/llnl/ bin/
run: vermin --backport argparse --violations --backport typing -t=2.7- -t=3.5- -vvv lib/spack/spack/ lib/spack/llnl/ bin/
- name: vermin (Repositories)
run: vermin --backport argparse --violations --backport typing -t=2.6- -t=3.5- -vvv var/spack/repos
run: vermin --backport argparse --violations --backport typing -t=2.7- -t=3.5- -vvv var/spack/repos
# Run style checks on the files that have been changed
style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: Install Python packages
@@ -57,7 +57,7 @@ jobs:
packages: ${{ steps.filter.outputs.packages }}
with_coverage: ${{ steps.coverage.outputs.with_coverage }}
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
if: ${{ github.event_name == 'push' }}
with:
fetch-depth: 0
@@ -97,12 +97,19 @@ jobs:
strategy:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
concretizer: ['original', 'clingo']
concretizer: ['clingo']
include:
- python-version: 2.7
concretizer: original
- python-version: 3.6
concretizer: original
- python-version: 3.9
concretizer: original
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install System packages
@@ -114,12 +121,16 @@ jobs:
patchelf cmake bison libbison-dev kcov
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage[toml]
pip install --upgrade pip six setuptools pytest codecov "coverage[toml]<=6.2"
# ensure style checks are not skipped in unit tests for python >= 3.6
# note that true/false (i.e., 1/0) are opposite in conditions in python and bash
if python -c 'import sys; sys.exit(not sys.version_info >= (3, 6))'; then
pip install --upgrade flake8 isort>=4.3.5 mypy>=0.900 black
fi
- name: Pin pathlib for Python 2.7
if: ${{ matrix.python-version == 2.7 }}
run: |
pip install -U pathlib2==2.3.6
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
@@ -160,10 +171,10 @@ jobs:
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: Install System packages
@@ -173,7 +184,7 @@ jobs:
sudo apt-get install -y coreutils kcov csh zsh tcsh fish dash bash
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage[toml]
pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
@@ -193,37 +204,6 @@ jobs:
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: shelltests,linux
# Test for Python2.6 run on Centos 6
centos6:
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
container: spack/github-actions:centos6
steps:
- name: Run unit tests (full test-suite)
# The CentOS 6 container doesn't run with coverage, but
# under the same conditions it runs the full test suite
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
HOME: /home/spack-test
SPACK_TEST_SOLVER: original
run: |
whoami && echo $HOME && cd $HOME
git clone "${{ github.server_url }}/${{ github.repository }}.git" && cd spack
git fetch origin "${{ github.ref }}:test-branch"
git checkout test-branch
bin/spack unit-test -x
- name: Run unit tests (only package tests)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
env:
HOME: /home/spack-test
ONLY_PACKAGES: true
SPACK_TEST_SOLVER: original
run: |
whoami && echo $HOME && cd $HOME
git clone "${{ github.server_url }}/${{ github.repository }}.git" && cd spack
git fetch origin "${{ github.ref }}:test-branch"
git checkout test-branch
bin/spack unit-test -x -m "not maybeslow" -k "package_sanity"
# Test RHEL8 UBI with platform Python. This job is run
# only on PRs modifying core Spack
@@ -238,7 +218,7 @@ jobs:
dnf install -y \
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
make patch tcl unzip which xz
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
@@ -257,10 +237,10 @@ jobs:
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: Install System packages
@@ -272,7 +252,7 @@ jobs:
patchelf kcov
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage[toml] clingo
pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2 clingo
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
@@ -306,16 +286,16 @@ jobs:
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools
pip install --upgrade codecov coverage[toml]
pip install --upgrade pytest codecov coverage[toml]==6.2
- name: Setup Homebrew packages
run: |
brew install dash fish gcc gnupg2 kcov
@@ -345,3 +325,32 @@ jobs:
with:
files: ./coverage.xml
flags: unittests,macos
# Run audits on all the packages in the built-in repository
package-audits:
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@0ebf233433c08fb9061af664d501c3f3ff0e9e20 # @v2
with:
python-version: 3.9
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools pytest codecov coverage[toml]==6.2
- name: Package audits (with coverage)
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
run: |
. share/spack/setup-env.sh
coverage run $(which spack) audit packages
coverage combine
coverage xml
- name: Package audits (wwithout coverage)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
run: |
. share/spack/setup-env.sh
$(which spack) audit packages
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: unittests,linux,audits

View File

@@ -1,3 +1,28 @@
# v0.17.1 (2021-12-23)
### Spack Bugfixes
* Allow locks to work under high contention (#27846)
* Improve errors messages from clingo (#27707 #27970)
* Respect package permissions for sbang (#25764)
* Fix --enable-locks behavior (#24675)
* Fix log-format reporter ignoring install errors (#25961)
* Fix overloaded argparse keys (#27379)
* Allow style commands to run with targets other than "develop" (#27472)
* Log lock messages to debug level, instead of verbose level (#27408)
* Handle invalid unicode while logging (#21447)
* spack audit: fix API calls to variants (#27713)
* Provide meaningful message for empty environment installs (#28031)
* Added opensuse leap containers to spack containerize (#27837)
* Revert "patches: make re-applied patches idempotent" (#27625)
* MANPATH can use system defaults (#21682)
* Add "setdefault" subcommand to `spack module tcl` (#14686)
* Regenerate views when specs already installed (#28113)
### Package bugfixes
* Fix external package detection for OpenMPI (#27255)
* Update the UPC++ package to 2021.9.0 (#26996)
* Added py-vermin v1.3.2 (#28072)
# v0.17.0 (2021-11-05)
`v0.17.0` is a major feature release.

58
CITATION.cff Normal file
View File

@@ -0,0 +1,58 @@
# If you are referencing Spack in a publication, please cite the SC'15 paper
# described here.
#
# Here's the raw citation:
#
# Todd Gamblin, Matthew P. LeGendre, Michael R. Collette, Gregory L. Lee,
# Adam Moody, Bronis R. de Supinski, and W. Scott Futral.
# The Spack Package Manager: Bringing Order to HPC Software Chaos.
# In Supercomputing 2015 (SC15), Austin, Texas, November 15-20 2015. LLNL-CONF-669890.
#
# Or, in BibTeX:
#
# @inproceedings{Gamblin_The_Spack_Package_2015,
# address = {Austin, Texas, USA},
# author = {Gamblin, Todd and LeGendre, Matthew and
# Collette, Michael R. and Lee, Gregory L. and
# Moody, Adam and de Supinski, Bronis R. and Futral, Scott},
# doi = {10.1145/2807591.2807623},
# month = {November 15-20},
# note = {LLNL-CONF-669890},
# series = {Supercomputing 2015 (SC15)},
# title = {{The Spack Package Manager: Bringing Order to HPC Software Chaos}},
# url = {https://github.com/spack/spack},
# year = {2015}
# }
#
# And here's the CITATION.cff format:
#
cff-version: 1.2.0
message: "If you are referencing Spack in a publication, please cite the paper below."
preferred-citation:
type: conference-paper
doi: "10.1145/2807591.2807623"
url: "https://github.com/spack/spack"
authors:
- family-names: "Gamblin"
given-names: "Todd"
- family-names: "LeGendre"
given-names: "Matthew"
- family-names: "Collette"
given-names: "Michael R."
- family-names: "Lee"
given-names: "Gregory L."
- family-names: "Moody"
given-names: "Adam"
- family-names: "de Supinski"
given-names: "Bronis R."
- family-names: "Futral"
given-names: "Scott"
title: "The Spack Package Manager: Bringing Order to HPC Software Chaos"
conference:
name: "Supercomputing 2015 (SC15)"
city: "Austin"
region: "Texas"
country: "USA"
month: November 15-20
year: 2015
notes: LLNL-CONF-669890

View File

@@ -34,10 +34,22 @@ includes the sbang tool directly in bin/sbang. These packages are covered
by various permissive licenses. A summary listing follows. See the
license included with each package for full details.
PackageName: altgraph
PackageHomePage: https://altgraph.readthedocs.io/en/latest/index.html
PackageLicenseDeclared: MIT
PackageName: argparse
PackageHomePage: https://pypi.python.org/pypi/argparse
PackageLicenseDeclared: Python-2.0
PackageName: astunparse
PackageHomePage: https://github.com/simonpercivall/astunparse
PackageLicenseDeclared: Python-2.0
PackageName: attrs
PackageHomePage: https://github.com/python-attrs/attrs
PackageLicenseDeclared: MIT
PackageName: ctest_log_parser
PackageHomePage: https://github.com/Kitware/CMake
PackageLicenseDeclared: BSD-3-Clause
@@ -46,8 +58,8 @@ PackageName: distro
PackageHomePage: https://pypi.python.org/pypi/distro
PackageLicenseDeclared: Apache-2.0
PackageName: functools
PackageHomePage: https://github.com/python/cpython/blob/2.7/Lib/functools.py
PackageName: functools32
PackageHomePage: https://github.com/MiCHiLU/python-functools32
PackageLicenseDeclared: Python-2.0
PackageName: jinja2
@@ -58,6 +70,10 @@ PackageName: jsonschema
PackageHomePage: https://pypi.python.org/pypi/jsonschema
PackageLicenseDeclared: MIT
PackageName: macholib
PackageHomePage: https://macholib.readthedocs.io/en/latest/index.html
PackageLicenseDeclared: MIT
PackageName: markupsafe
PackageHomePage: https://pypi.python.org/pypi/MarkupSafe
PackageLicenseDeclared: BSD-3-Clause
@@ -70,6 +86,10 @@ PackageName: py
PackageHomePage: https://pypi.python.org/pypi/py
PackageLicenseDeclared: MIT
PackageName: pyrsistent
PackageHomePage: http://github.com/tobgu/pyrsistent
PackageLicenseDeclared: MIT
PackageName: pytest
PackageHomePage: https://pypi.python.org/pypi/pytest
PackageLicenseDeclared: MIT
@@ -85,11 +105,3 @@ PackageLicenseDeclared: Apache-2.0 OR MIT
PackageName: six
PackageHomePage: https://pypi.python.org/pypi/six
PackageLicenseDeclared: MIT
PackageName: macholib
PackageHomePage: https://macholib.readthedocs.io/en/latest/index.html
PackageLicenseDeclared: MIT
PackageName: altgraph
PackageHomePage: https://altgraph.readthedocs.io/en/latest/index.html
PackageLicenseDeclared: MIT

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2013-2020 LLNS, LLC and other Spack Project Developers.
Copyright (c) 2013-2022 LLNS, LLC and other Spack Project Developers.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View File

@@ -125,6 +125,9 @@ If you are referencing Spack in a publication, please cite the following paper:
[**The Spack Package Manager: Bringing Order to HPC Software Chaos**](https://www.computer.org/csdl/proceedings/sc/2015/3723/00/2807623.pdf).
In *Supercomputing 2015 (SC15)*, Austin, Texas, November 15-20 2015. LLNL-CONF-669890.
On GitHub, you can copy this citation in APA or BibTeX format via the "Cite this repository"
button. Or, see the comments in `CITATION.cff` for the raw BibTeX.
License
----------------

View File

@@ -10,6 +10,7 @@ For more on Spack's release structure, see
| Version | Supported |
| ------- | ------------------ |
| develop | :white_check_mark: |
| 0.17.x | :white_check_mark: |
| 0.16.x | :white_check_mark: |
## Reporting a Vulnerability

View File

@@ -1,7 +1,7 @@
#!/bin/sh
# -*- python -*-
#
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# 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)
@@ -33,11 +33,11 @@ import sys
min_python3 = (3, 5)
if sys.version_info[:2] < (2, 6) or (
if sys.version_info[:2] < (2, 7) or (
sys.version_info[:2] >= (3, 0) and sys.version_info[:2] < min_python3
):
v_info = sys.version_info[:3]
msg = "Spack requires Python 2.6, 2.7 or %d.%d or higher " % min_python3
msg = "Spack requires Python 2.7 or %d.%d or higher " % min_python3
msg += "You are running spack with Python %d.%d.%d." % v_info
sys.exit(msg)
@@ -54,8 +54,6 @@ spack_external_libs = os.path.join(spack_lib_path, "external")
if sys.version_info[:2] <= (2, 7):
sys.path.insert(0, os.path.join(spack_external_libs, "py2"))
if sys.version_info[:2] == (2, 6):
sys.path.insert(0, os.path.join(spack_external_libs, "py26"))
sys.path.insert(0, spack_external_libs)

View File

@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# 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)

View File

@@ -0,0 +1,17 @@
# -------------------------------------------------------------------------
# This is the default spack configuration file.
#
# Settings here are versioned with Spack and are intended to provide
# sensible defaults out of the box. Spack maintainers should edit this
# file to keep it current.
#
# Users can override these settings by editing
# `$SPACK_ROOT/etc/spack/concretizer.yaml`, `~/.spack/concretizer.yaml`,
# or by adding a `concretizer:` section to an environment.
# -------------------------------------------------------------------------
concretizer:
# Whether to consider installed packages or packages from buildcaches when
# concretizing specs. If `true`, we'll try to use as many installs/binaries
# as possible, rather than building. If `false`, we'll always give you a fresh
# concretization.
reuse: false

View File

@@ -155,14 +155,17 @@ config:
# The concretization algorithm to use in Spack. Options are:
#
# 'original': Spack's original greedy, fixed-point concretizer. This
# algorithm can make decisions too early and will not backtrack
# sufficiently for many specs.
#
# 'clingo': Uses a logic solver under the hood to solve DAGs with full
# backtracking and optimization for user preferences. Spack will
# try to bootstrap the logic solver, if not already available.
#
# 'original': Spack's original greedy, fixed-point concretizer. This
# algorithm can make decisions too early and will not backtrack
# sufficiently for many specs. This will soon be deprecated in
# favor of clingo.
#
# See `concretizer.yaml` for more settings you can fine-tune when
# using clingo.
concretizer: clingo

View File

@@ -46,7 +46,13 @@ modules:
enable:
- tcl
tcl:
all:
autoload: none
# Default configurations if lmod is enabled
lmod:
all:
autoload: direct
hierarchy:
- mpi

View File

@@ -34,6 +34,7 @@ packages:
java: [openjdk, jdk, ibm-java]
jpeg: [libjpeg-turbo, libjpeg]
lapack: [openblas, amdlibflame]
libllvm: [llvm, llvm-amdgpu]
lua-lang: [lua, lua-luajit]
mariadb-client: [mariadb-c-client, mariadb]
mkl: [intel-mkl]

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -59,7 +59,7 @@ are available:
install_files : install file listing read from install_manifest.json
environment_variables : environment variables parsed from spack-build-env.txt
config_args : config args loaded from spack-configure-args.txt
abigail : Application Binary Interface (ABI) features for objects
libabigail : Application Binary Interface (ABI) features for objects
In the above, the first three are fairly simple - parsing metadata files from

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -194,9 +194,9 @@ Reusing installed dependencies
.. warning::
The ``--reuse`` option described here is experimental, and it will
likely be replaced with a different option and configuration settings
in the next Spack release.
The ``--reuse`` option described here will become the default installation
method in the next Spack version, and you will be able to get the current
behavior by using ``spack install --fresh``.
By default, when you run ``spack install``, Spack tries to build a new
version of the package you asked for, along with updated versions of
@@ -216,6 +216,9 @@ the ``mpich`` will be build with the installed versions, if possible.
You can use the :ref:`spack spec -I <cmd-spack-spec>` command to see what
will be reused and what will be built before you install.
You can configure Spack to use the ``--reuse`` behavior by default in
``concretizer.yaml``.
.. _cmd-spack-uninstall:
^^^^^^^^^^^^^^^^^^^
@@ -1280,7 +1283,7 @@ Normally users don't have to bother specifying the architecture if they
are installing software for their current host, as in that case the
values will be detected automatically. If you need fine-grained control
over which packages use which targets (or over *all* packages' default
target), see :ref:`concretization-preferences`.
target), see :ref:`package-preferences`.
.. admonition:: Cray machines

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -209,11 +209,49 @@ Specific limitations include:
then Spack will not add a new external entry (``spack config blame packages``
can help locate all external entries).
.. _concretization-preferences:
.. _concretizer-options:
--------------------------
Concretization Preferences
--------------------------
----------------------
Concretizer options
----------------------
``packages.yaml`` gives the concretizer preferences for specific packages,
but you can also use ``concretizer.yaml`` to customize aspects of the
algorithm it uses to select the dependencies you install:
.. _code-block: yaml
concretizer:
# Whether to consider installed packages or packages from buildcaches when
# concretizing specs. If `true`, we'll try to use as many installs/binaries
# as possible, rather than building. If `false`, we'll always give you a fresh
# concretization.
reuse: false
^^^^^^^^^^^^^^^^
``reuse``
^^^^^^^^^^^^^^^^
This controls whether Spack will prefer to use installed packages (``true``), or
whether it will do a "fresh" installation and prefer the latest settings from
``package.py`` files and ``packages.yaml`` (``false``). .
You can use ``spack install --reuse`` to enable reuse for a single installation,
and you can use ``spack install --fresh`` to do a fresh install if ``reuse`` is
enabled by default.
.. note::
``reuse: false`` is the current default, but ``reuse: true`` will be the default
in the next Spack release. You will still be able to use ``spack install --fresh``
to get the old behavior.
.. _package-preferences:
-------------------
Package Preferences
-------------------
Spack can be configured to prefer certain compilers, package
versions, dependencies, and variants during concretization.
@@ -269,6 +307,7 @@ concretization rules. A provider lists a value that packages may
``depend_on`` (e.g, MPI) and a list of rules for fulfilling that
dependency.
.. _package_permissions:
-------------------

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -420,6 +420,24 @@ Or when one variant controls multiple flags:
config_args += self.with_or_without('memchecker', variant='debug_tools')
config_args += self.with_or_without('profiler', variant='debug_tools')
""""""""""""""""""""
Conditional variants
""""""""""""""""""""
When a variant is conditional and its condition is not met on the concrete spec, the
``with_or_without`` and ``enable_or_disable`` methods will simply return an empty list.
For example:
.. code-block:: python
variant('profiler', when='@2.0:')
config_args += self.with_or_without('profiler)
will neither add ``--with-profiler`` nor ``--without-profiler`` when the version is
below ``2.0``.
""""""""""""""""""""
Activation overrides
""""""""""""""""""""

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -145,6 +145,20 @@ and without the :meth:`~spack.build_systems.cmake.CMakePackage.define` and
return args
Spack supports CMake defines from conditional variants too. Whenever the condition on
the variant is not met, ``define_from_variant()`` will simply return an empty string,
and CMake simply ignores the empty command line argument. For example the following
.. code-block:: python
variant('example', default=True, when='@2.0:')
def cmake_args(self):
return [self.define_from_variant('EXAMPLE', 'example')]
will generate ``'cmake' '-DEXAMPLE=ON' ...`` when `@2.0: +example` is met, but will
result in ``'cmake' '' ...`` when the spec version is below ``2.0``.
^^^^^^^^^^
Generators

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -649,7 +649,7 @@ follow `the next section <intel-install-libs_>`_ instead.
* If you specified a custom variant (for example ``+vtune``) you may want to add this as your
preferred variant in the packages configuration for the ``intel-parallel-studio`` package
as described in :ref:`concretization-preferences`. Otherwise you will have to specify
as described in :ref:`package-preferences`. Otherwise you will have to specify
the variant everytime ``intel-parallel-studio`` is being used as ``mkl``, ``fftw`` or ``mpi``
implementation to avoid pulling in a different variant.
@@ -811,13 +811,13 @@ by one of the following means:
$ spack install libxc@3.0.0%intel
* Alternatively, request Intel compilers implicitly by concretization preferences.
* Alternatively, request Intel compilers implicitly by package preferences.
Configure the order of compilers in the appropriate ``packages.yaml`` file,
under either an ``all:`` or client-package-specific entry, in a
``compiler:`` list. Consult the Spack documentation for
`Configuring Package Preferences <https://spack-tutorial.readthedocs.io/en/latest/tutorial_configuration.html#configuring-package-preferences>`_
and
:ref:`Concretization Preferences <concretization-preferences>`.
:ref:`Package Preferences <package-preferences>`.
Example: ``etc/spack/packages.yaml`` might simply contain:
@@ -867,7 +867,7 @@ virtual package, in order of decreasing preference. To learn more about the
``providers:`` settings, see the Spack tutorial for
`Configuring Package Preferences <https://spack-tutorial.readthedocs.io/en/latest/tutorial_configuration.html#configuring-package-preferences>`_
and the section
:ref:`Concretization Preferences <concretization-preferences>`.
:ref:`Package Preferences <package-preferences>`.
Example: The following fairly minimal example for ``packages.yaml`` shows how
to exclusively use the standalone ``intel-mkl`` package for all the linear

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -9,224 +9,94 @@
PythonPackage
-------------
Python packages and modules have their own special build system.
Python packages and modules have their own special build system. This
documentation covers everything you'll need to know in order to write
a Spack build recipe for a Python library.
^^^^^^
Phases
^^^^^^
^^^^^^^^^^^
Terminology
^^^^^^^^^^^
The ``PythonPackage`` base class provides the following phases that
can be overridden:
In the Python ecosystem, there are a number of terms that are
important to understand.
* ``build``
* ``build_py``
* ``build_ext``
* ``build_clib``
* ``build_scripts``
* ``install``
* ``install_lib``
* ``install_headers``
* ``install_scripts``
* ``install_data``
**PyPI**
The `Python Package Index <https://pypi.org/>`_, where most Python
libraries are hosted.
These are all standard ``setup.py`` commands and can be found by running:
**sdist**
Source distributions, distributed as tarballs (.tar.gz) and zip
files (.zip). Contain the source code of the package.
.. code-block:: console
**bdist**
Built distributions, distributed as wheels (.whl). Contain the
pre-built library.
$ python setup.py --help-commands
**wheel**
A binary distribution format common in the Python ecosystem. This
file is actually just a zip file containing specific metadata and
code. See the
`documentation <https://packaging.python.org/en/latest/specifications/binary-distribution-format/>`_
for more details.
**build frontend**
Command-line tools used to build and install wheels. Examples
include `pip <https://pip.pypa.io/>`_,
`build <https://pypa-build.readthedocs.io/>`_, and
`installer <https://installer.readthedocs.io/>`_.
By default, only the ``build`` and ``install`` phases are run:
**build backend**
Libraries used to define how to build a wheel. Examples
include `setuptools <https://setuptools.pypa.io/>`__,
`flit <https://flit.readthedocs.io/>`_, and
`poetry <https://python-poetry.org/>`_.
#. ``build`` - build everything needed to install
#. ``install`` - install everything from build directory
^^^^^^^^^^^
Downloading
^^^^^^^^^^^
If for whatever reason you need to run more phases, simply modify your
``phases`` list like so:
.. code-block:: python
phases = ['build_ext', 'install']
Each phase provides a function ``<phase>`` that runs:
.. code-block:: console
$ python -s setup.py --no-user-cfg <phase>
Each phase also has a ``<phase_args>`` function that can pass arguments to
this call. All of these functions are empty except for the ``install_args``
function, which passes ``--prefix=/path/to/installation/prefix``. There is
also some additional logic specific to setuptools and eggs.
If you need to run a phase that is not a standard ``setup.py`` command,
you'll need to define a function for it like so:
.. code-block:: python
phases = ['configure', 'build', 'install']
def configure(self, spec, prefix):
self.setup_py('configure')
^^^^^^
Wheels
^^^^^^
Some Python packages are closed-source and distributed as wheels.
Instead of using the ``PythonPackage`` base class, you should extend
the ``Package`` base class and implement the following custom installation
procedure:
.. code-block:: python
def install(self, spec, prefix):
pip = which('pip')
pip('install', self.stage.archive_file, '--prefix={0}'.format(prefix))
This will require a dependency on pip, as mentioned below.
^^^^^^^^^^^^^^^
Important files
^^^^^^^^^^^^^^^
Python packages can be identified by the presence of a ``setup.py`` file.
This file is used by package managers like ``pip`` to determine a
package's dependencies and the version of dependencies required, so if
the ``setup.py`` file is not accurate, the package will not build properly.
For this reason, the ``setup.py`` file should be fairly reliable. If the
documentation and ``setup.py`` disagree on something, the ``setup.py``
file should be considered to be the truth. As dependencies are added or
removed, the documentation is much more likely to become outdated than
the ``setup.py``.
The Python ecosystem has evolved significantly over the years. Before
setuptools became popular, most packages listed their dependencies in a
``requirements.txt`` file. Once setuptools took over, these dependencies
were listed directly in the ``setup.py``. Newer PEPs introduced additional
files, like ``setup.cfg`` and ``pyproject.toml``. You should look out for
all of these files, as they may all contain important information about
package dependencies.
Some Python packages are closed-source and are distributed as Python
wheels. For example, ``py-azureml-sdk`` downloads a ``.whl`` file. This
file is simply a zip file, and can be extracted using:
.. code-block:: console
$ unzip *.whl
The zip file will not contain a ``setup.py``, but it will contain a
``METADATA`` file which contains all the information you need to
write a ``package.py`` build recipe.
^^^^
PyPI
^^^^
The vast majority of Python packages are hosted on PyPI - The Python
Package Index. ``pip`` only supports packages hosted on PyPI, making
it the only option for developers who want a simple installation.
Search for "PyPI <package-name>" to find the download page. Note that
some pages are versioned, and the first result may not be the newest
version. Click on the "Latest Version" button to the top right to see
if a newer version is available. The download page is usually at::
The first step in packaging a Python library is to figure out where
to download it from. The vast majority of Python packages are hosted
on `PyPI <https://pypi.org/>`_, which is
:ref:`preferred over GitHub <pypi-vs-github>` for downloading
packages. Search for the package name on PyPI to find the project
page. The project page is usually located at::
https://pypi.org/project/<package-name>
Since PyPI is so common, the ``PythonPackage`` base class has a
``pypi`` attribute that can be set. Once set, ``pypi`` will be used
to define the ``homepage``, ``url``, and ``list_url``. For example,
the following:
.. code-block:: python
homepage = 'https://pypi.org/project/setuptools/'
url = 'https://pypi.org/packages/source/s/setuptools/setuptools-49.2.0.zip'
list_url = 'https://pypi.org/simple/setuptools/'
is equivalent to:
.. code-block:: python
pypi = 'setuptools/setuptools-49.2.0.zip'
^^^^^^^^^^^
Description
^^^^^^^^^^^
The top of the PyPI downloads page contains a description of the
package. The first line is usually a short description, while there
may be a several line "Project Description" that follows. Choose whichever
is more useful. You can also get these descriptions on the command-line
using:
.. code-block:: console
$ python setup.py --description
$ python setup.py --long-description
^^^^^^^^
Homepage
^^^^^^^^
Package developers use ``setup.py`` to upload new versions to PyPI.
The ``setup`` method often passes metadata like ``homepage`` to PyPI.
This metadata is displayed on the left side of the download page.
Search for the text "Homepage" under "Project links" to find it. You
should use this page instead of the PyPI page if they differ. You can
also get the homepage on the command-line by running:
.. code-block:: console
$ python setup.py --url
^^^
URL
^^^
If ``pypi`` is set as mentioned above, ``url`` and ``list_url`` will
be automatically set for you. If both ``.tar.gz`` and ``.zip`` versions
are available, ``.tar.gz`` is preferred. If some releases offer both
``.tar.gz`` and ``.zip`` versions, but some only offer ``.zip`` versions,
use ``.zip``.
Some Python packages are closed-source and do not ship ``.tar.gz`` or ``.zip``
files on either PyPI or GitHub. If this is the case, you can still download
and install a Python wheel. For example, ``py-azureml-sdk`` is closed source
and can be downloaded from::
On the project page, there is a "Download files" tab containing
download URLs. Whenever possible, we prefer to build Spack packages
from source. If PyPI only has wheels, check to see if the project is
hosted on GitHub and see if GitHub has source distributions. The
project page usually has a "Homepage" and/or "Source code" link for
this. If the project is closed-source, it may only have wheels
available. For example, ``py-azureml-sdk`` is closed-source and can
be downloaded from::
https://pypi.io/packages/py3/a/azureml_sdk/azureml_sdk-1.11.0-py3-none-any.whl
Once you've found a URL to download the package from, run:
You may see Python-specific or OS-specific URLs. Note that when you add a
``.whl`` URL, you should add ``expand=False`` to ensure that Spack doesn't
try to extract the wheel:
.. code-block:: console
.. code-block:: python
$ spack create <url>
version('1.11.0', sha256='d8c9d24ea90457214d798b0d922489863dad518adde3638e08ef62de28fb183a', expand=False)
to create a new package template.
.. _pypi-vs-github:
"""""""""""""""
PyPI vs. GitHub
"""""""""""""""
Many packages are hosted on PyPI, but are developed on GitHub or another
version control systems. The tarball can be downloaded from either
location, but PyPI is preferred for the following reasons:
Many packages are hosted on PyPI, but are developed on GitHub or
another version control system hosting service. The source code can
be downloaded from either location, but PyPI is preferred for the
following reasons:
#. PyPI contains the bare minimum number of files needed to install the package.
#. PyPI contains the bare minimum number of files needed to install
the package.
You may notice that the tarball you download from PyPI does not
have the same checksum as the tarball you download from GitHub.
@@ -263,249 +133,124 @@ location, but PyPI is preferred for the following reasons:
PyPI is nice because it makes it physically impossible to
re-release the same version of a package with a different checksum.
^^^^^^^^^^^^^^^^^^^^^^^^^
Build system dependencies
^^^^^^^^^^^^^^^^^^^^^^^^^
The only reason to use GitHub instead of PyPI is if PyPI only has
wheels or if the PyPI sdist is missing a file needed to build the
package. If this is the case, please add a comment above the ``url``
explaining this.
There are a few dependencies common to the ``PythonPackage`` build system.
^^^^
PyPI
^^^^
""""""
Python
""""""
Obviously, every ``PythonPackage`` needs Python at build-time to run
``python setup.py build && python setup.py install``. Python is also
needed at run-time if you want to import the module. Due to backwards
incompatible changes between Python 2 and 3, it is very important to
specify which versions of Python are supported. If the documentation
mentions that Python 3 is required, this can be specified as:
Since PyPI is so commonly used to host Python libraries, the
``PythonPackage`` base class has a ``pypi`` attribute that can be
set. Once set, ``pypi`` will be used to define the ``homepage``,
``url``, and ``list_url``. For example, the following:
.. code-block:: python
depends_on('python@3:', type=('build', 'run'))
homepage = 'https://pypi.org/project/setuptools/'
url = 'https://pypi.org/packages/source/s/setuptools/setuptools-49.2.0.zip'
list_url = 'https://pypi.org/simple/setuptools/'
If Python 2 is required, this would look like:
is equivalent to:
.. code-block:: python
depends_on('python@:2', type=('build', 'run'))
pypi = 'setuptools/setuptools-49.2.0.zip'
If Python 2.7 is the only version that works, you can use:
If a package has a different homepage listed on PyPI, you can
override it by setting your own ``homepage``.
^^^^^^^^^^^
Description
^^^^^^^^^^^
The top of the PyPI project page contains a short description of the
package. The "Project description" tab may also contain a longer
description of the package. Either of these can be used to populate
the package docstring.
^^^^^^^^^^^^^
Build backend
^^^^^^^^^^^^^
Once you've determined the basic metadata for a package, the next
step is to determine the build backend. ``PythonPackage`` uses
`pip <https://pip.pypa.io/>`_ to install the package, but pip
requires a backend to actually build the package.
To determine the build backend, look for a ``pyproject.toml`` file.
If there is no ``pyproject.toml`` file and only a ``setup.py`` or
``setup.cfg`` file, you can assume that the project uses
:ref:`setuptools`. If there is a ``pyproject.toml`` file, see if it
contains a ``[build-system]`` section. For example:
.. code-block:: toml
[build-system]
requires = [
"setuptools>=42",
"wheel",
]
build-backend = "setuptools.build_meta"
This section does two things: the ``requires`` key lists build
dependencies of the project, and the ``build-backend`` key defines
the build backend. All of these build dependencies should be added as
dependencies to your package:
.. code-block:: python
depends_on('python@2.7:2.8', type=('build', 'run'))
depends_on('py-setuptools@42:', type='build')
The documentation may not always specify supported Python versions.
Another place to check is in the ``setup.py`` or ``setup.cfg`` file.
Look for a line containing ``python_requires``. An example from
`py-numpy <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/py-numpy/package.py>`_
looks like:
Note that ``py-wheel`` is already listed as a build dependency in the
``PythonPackage`` base class, so you don't need to add it unless you
need to specify a specific version requirement or change the
dependency type.
.. code-block:: python
See `PEP 517 <https://www.python.org/dev/peps/pep-0517/>`_ and
`PEP 518 <https://www.python.org/dev/peps/pep-0518/>`_ for more
information on the design of ``pyproject.toml``.
python_requires='>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*'
Depending on which build backend a project uses, there are various
places that run-time dependencies can be listed.
"""""""""
distutils
"""""""""
You may also find a version check at the top of the ``setup.py``:
Before the introduction of setuptools and other build backends,
Python packages had to rely on the built-in distutils library.
Distutils is missing many of the features that setuptools and other
build backends offer, and users are encouraged to use setuptools
instead. In fact, distutils was deprecated in Python 3.10 and will be
removed in Python 3.12. Because of this, pip actually replaces all
imports of distutils with setuptools. If a package uses distutils,
you should instead add a build dependency on setuptools. Check for a
``requirements.txt`` file that may list dependencies of the project.
.. code-block:: python
if sys.version_info[:2] < (2, 7) or (3, 0) <= sys.version_info[:2] < (3, 4):
raise RuntimeError("Python version 2.7 or >= 3.4 required.")
This can be converted to Spack's spec notation like so:
.. code-block:: python
depends_on('python@2.7:2.8,3.4:', type=('build', 'run'))
If you are writing a recipe for a package that only distributes
wheels, look for a section in the ``METADATA`` file that looks like::
Requires-Python: >=3.5,<4
This would be translated to:
.. code-block:: python
extends('python')
depends_on('python@3.5:3', type=('build', 'run'))
Many ``setup.py`` or ``setup.cfg`` files also contain information like::
Programming Language :: Python :: 2
Programming Language :: Python :: 2.6
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.3
Programming Language :: Python :: 3.4
Programming Language :: Python :: 3.5
Programming Language :: Python :: 3.6
This is a list of versions of Python that the developer likely tests.
However, you should not use this to restrict the versions of Python
the package uses unless one of the two former methods (``python_requires``
or ``sys.version_info``) is used. There is no logic in setuptools
that prevents the package from building for Python versions not in
this list, and often new releases like Python 3.7 or 3.8 work just fine.
.. _setuptools:
""""""""""
setuptools
""""""""""
Originally, the Python language had a single build system called
distutils, which is built into Python. Distutils provided a common
framework for package authors to describe their project and how it
should be built. However, distutils was not without limitations.
Most notably, there was no way to list a project's dependencies
with distutils. Along came setuptools, a non-builtin build system
designed to overcome the limitations of distutils. Both projects
use a similar API, making the transition easy while adding much
needed functionality. Today, setuptools is used in around 90% of
the Python packages in Spack.
Since setuptools isn't built-in to Python, you need to add it as a
dependency. To determine whether or not a package uses setuptools,
search the file for an import statement like:
.. code-block:: python
import setuptools
or:
.. code-block:: python
from setuptools import setup
Some packages are designed to work with both setuptools and distutils,
so you may find something like:
.. code-block:: python
try:
from setuptools import setup
except ImportError:
from distutils.core import setup
This uses setuptools if available, and falls back to distutils if not.
In this case, you would still want to add a setuptools dependency, as
it offers us more control over the installation.
Unless specified otherwise, setuptools is usually a build-only dependency.
That is, it is needed to install the software, but is not needed at
run-time. This can be specified as:
.. code-block:: python
depends_on('py-setuptools', type='build')
"""
pip
"""
Packages distributed as Python wheels will require an extra dependency
on pip:
.. code-block:: python
depends_on('py-pip', type='build')
We will use pip to install the actual wheel.
""""""
cython
""""""
Compared to compiled languages, interpreted languages like Python can
be quite a bit slower. To work around this, some Python developers
rewrite computationally demanding sections of code in C, a process
referred to as "cythonizing". In order to build these package, you
need to add a build dependency on cython:
.. code-block:: python
depends_on('py-cython', type='build')
Look for references to "cython" in the ``setup.py`` to determine
whether or not this is necessary. Cython may be optional, but
even then you should list it as a required dependency. Spack is
designed to compile software, and is meant for HPC facilities
where speed is crucial. There is no reason why someone would not
want an optimized version of a library instead of the pure-Python
version.
Note that some release tarballs come pre-cythonized, and cython is
not needed as a dependency. However, this is becoming less common
as Python continues to evolve and developers discover that cythonized
sources are no longer compatible with newer versions of Python and
need to be re-cythonized.
^^^^^^^^^^^^^^^^^^^
Python dependencies
^^^^^^^^^^^^^^^^^^^
When you install a package with ``pip``, it reads the ``setup.py``
file in order to determine the dependencies of the package.
If the dependencies are not yet installed, ``pip`` downloads them
and installs them for you. This may sound convenient, but Spack
cannot rely on this behavior for two reasons:
#. Spack needs to be able to install packages on air-gapped networks.
If there is no internet connection, ``pip`` can't download the
package dependencies. By explicitly listing every dependency in
the ``package.py``, Spack knows what to download ahead of time.
#. Duplicate installations of the same dependency may occur.
Spack supports *activation* of Python extensions, which involves
symlinking the package installation prefix to the Python installation
prefix. If your package is missing a dependency, that dependency
will be installed to the installation directory of the same package.
If you try to activate the package + dependency, it may cause a
problem if that package has already been activated.
For these reasons, you must always explicitly list all dependencies.
Although the documentation may list the package's dependencies,
often the developers assume people will use ``pip`` and won't have to
worry about it. Always check the ``setup.py`` to find the true
dependencies.
If the package relies on ``distutils``, it may not explicitly list its
dependencies. Check for statements like:
.. code-block:: python
try:
import numpy
except ImportError:
raise ImportError("numpy must be installed prior to installation")
Obviously, this means that ``py-numpy`` is a dependency.
If the package uses ``setuptools``, check for the following clues:
If the ``pyproject.toml`` lists ``setuptools.build_meta`` as a
``build-backend``, or if the package has a ``setup.py`` that imports
``setuptools``, or if the package has a ``setup.cfg`` file, then it
uses setuptools to build. Setuptools is a replacement for the
distutils library, and has almost the exact same API. Dependencies
can be listed in the ``setup.py`` or ``setup.cfg`` file. Look for the
following arguments:
* ``python_requires``
As mentioned above, this specifies which versions of Python are
required.
This specifies the version of Python that is required.
* ``setup_requires``
@@ -517,43 +262,88 @@ If the package uses ``setuptools``, check for the following clues:
These packages are required for building and installation. You can
add them with ``type=('build', 'run')``.
* ``extra_requires``
* ``extras_require``
These packages are optional dependencies that enable additional
functionality. You should add a variant that optionally adds these
dependencies. This variant should be False by default.
* ``test_requires``
* ``tests_require``
These are packages that are required to run the unit tests for the
package. These dependencies can be specified using the
``type='test'`` dependency type. However, the PyPI tarballs rarely
contain unit tests, so there is usually no reason to add these.
In the root directory of the package, you may notice a
``requirements.txt`` file. It may look like this file contains a list
of all of the package's dependencies. Don't be fooled. This file is
used by tools like Travis to install the pre-requisites for the
package... and a whole bunch of other things. It often contains
dependencies only needed for unit tests, like:
See https://setuptools.pypa.io/en/latest/userguide/dependency_management.html
for more information on how setuptools handles dependency management.
See `PEP 440 <https://www.python.org/dev/peps/pep-0440/#version-specifiers>`_
for documentation on version specifiers in setuptools.
* mock
* nose
* pytest
""""
flit
""""
It can also contain dependencies for building the documentation, like
sphinx. If you can't find any information about the package's
dependencies, you can take a look in ``requirements.txt``, but be sure
not to add test or documentation dependencies.
There are actually two possible ``build-backend`` for flit, ``flit``
and ``flit_core``. If you see these in the ``pyproject.toml``, add a
build dependency to your package. With flit, all dependencies are
listed directly in the ``pyproject.toml`` file. Older versions of
flit used to store this info in a ``flit.ini`` file, so check for
this too.
Newer PEPs have added alternative ways to specify a package's dependencies.
If you don't see any dependencies listed in the ``setup.py``, look for a
``setup.cfg`` or ``pyproject.toml``. These files can be used to store the
same ``install_requires`` information that ``setup.py`` used to use.
Either of these files may contain keys like:
If you are write a recipe for a package that only distributes wheels,
check the ``METADATA`` file for lines like::
* ``requires-python``
This specifies the version of Python that is required
* ``dependencies`` or ``requires``
These packages are required for building and installation. You can
add them with ``type=('build', 'run')``.
* ``project.optional-dependencies`` or ``requires-extra``
This section includes keys with lists of optional dependencies
needed to enable those features. You should add a variant that
optionally adds these dependencies. This variant should be False
by default.
See https://flit.readthedocs.io/en/latest/pyproject_toml.html for
more information.
""""""
poetry
""""""
Like flit, poetry also has two possible ``build-backend``, ``poetry``
and ``poetry_core``. If you see these in the ``pyproject.toml``, add
a build dependency to your package. With poetry, all dependencies are
listed directly in the ``pyproject.toml`` file. Dependencies are
listed in a ``[tool.poetry.dependencies]`` section, and use a
`custom syntax <https://python-poetry.org/docs/dependency-specification/#version-constraints>`_
for specifying the version requirements. Note that ``~=`` works
differently in poetry than in setuptools and flit for versions that
start with a zero.
""""""
wheels
""""""
Some Python packages are closed-source and are distributed as Python
wheels. For example, ``py-azureml-sdk`` downloads a ``.whl`` file. This
file is simply a zip file, and can be extracted using:
.. code-block:: console
$ unzip *.whl
The zip file will not contain a ``setup.py``, but it will contain a
``METADATA`` file which contains all the information you need to
write a ``package.py`` build recipe. Check for lines like::
Requires-Python: >=3.5,<4
Requires-Dist: azureml-core (~=1.11.0)
Requires-Dist: azureml-dataset-runtime[fuse] (~=1.11.0)
Requires-Dist: azureml-train (~=1.11.0)
@@ -565,62 +355,58 @@ check the ``METADATA`` file for lines like::
Requires-Dist: azureml-train-automl (~=1.11.0); extra == 'automl'
Lines that use ``Requires-Dist`` are similar to ``install_requires``.
Lines that use ``Provides-Extra`` are similar to ``extra_requires``,
and you can add a variant for those dependencies. The ``~=1.11.0``
syntax is equivalent to ``1.11.0:1.11``.
""""""""""
setuptools
""""""""""
Setuptools is a bit of a special case. If a package requires setuptools
at run-time, how do they express this? They could add it to
``install_requires``, but setuptools is imported long before this and is
needed to read this line. And since you can't install the package
without setuptools, the developers assume that setuptools will already
be there, so they never mention when it is required. We don't want to
add run-time dependencies if they aren't needed, so you need to
determine whether or not setuptools is needed. Grep the installation
directory for any files containing a reference to ``setuptools`` or
``pkg_resources``. Both modules come from ``py-setuptools``.
``pkg_resources`` is particularly common in scripts found in
``prefix/bin``.
``Requires-Python`` is equivalent to ``python_requires`` and
``Requires-Dist`` is equivalent to ``install_requires``.
``Provides-Extra`` is used to name optional features (variants) and
a ``Requires-Dist`` with ``extra == 'foo'`` will list any
dependencies needed for that feature.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Passing arguments to setup.py
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The default build and install phases should be sufficient to install
most packages. However, you may want to pass additional flags to
either phase.
The default install phase should be sufficient to install most
packages. However, the installation instructions for a package may
suggest passing certain flags to the ``setup.py`` call. The
``PythonPackage`` class has two techniques for doing this.
You can view the available options for a particular phase with:
""""""""""""""
Global options
""""""""""""""
.. code-block:: console
$ python setup.py <phase> --help
Each phase provides a ``<phase_args>`` function that can be used to
pass arguments to that phase. For example,
`py-numpy <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/py-numpy/package.py>`_
adds:
These flags are added directly after ``setup.py`` when pip runs
``python setup.py install``. For example, the ``py-pyyaml`` package
has an optional dependency on ``libyaml`` that can be enabled like so:
.. code-block:: python
def build_args(self, spec, prefix):
args = []
def global_options(self, spec, prefix):
options = []
if '+libyaml' in spec:
options.append('--with-libyaml')
else:
options.append('--without-libyaml')
return options
# From NumPy 1.10.0 on it's possible to do a parallel build.
if self.version >= Version('1.10.0'):
# But Parallel build in Python 3.5+ is broken. See:
# https://github.com/spack/spack/issues/7927
# https://github.com/scipy/scipy/issues/7112
if spec['python'].version < Version('3.5'):
args = ['-j', str(make_jobs)]
return args
"""""""""""""""
Install options
"""""""""""""""
These flags are added directly after ``install`` when pip runs
``python setup.py install``. For example, the ``py-pyyaml`` package
allows you to specify the directories to search for ``libyaml``:
.. code-block:: python
def install_options(self, spec, prefix):
options = []
if '+libyaml' in spec:
options.extend([
spec['libyaml'].libs.search_flags,
spec['libyaml'].headers.include_flags,
])
return options
^^^^^^^
@@ -662,9 +448,9 @@ a "package" is a directory containing files like:
whereas a "module" is a single Python file.
The ``PythonPackage`` base class automatically detects these module
names for you. If, for whatever reason, the module names detected
are wrong, you can provide the names yourself by overriding
The ``PythonPackage`` base class automatically detects these package
and module names for you. If, for whatever reason, the module names
detected are wrong, you can provide the names yourself by overriding
``import_modules`` like so:
.. code-block:: python
@@ -685,10 +471,8 @@ This can be expressed like so:
@property
def import_modules(self):
modules = ['yaml']
if '+libyaml' in self.spec:
modules.append('yaml.cyaml')
return modules
@@ -706,10 +490,10 @@ Unit tests
""""""""""
The package may have its own unit or regression tests. Spack can
run these tests during the installation by adding phase-appropriate
test methods.
run these tests during the installation by adding test methods after
installation.
For example, ``py-numpy`` adds the following as a check to run
For example, ``py-numpy`` adds the following as a check to run
after the ``install`` phase:
.. code-block:: python
@@ -733,34 +517,14 @@ when testing is enabled during the installation (i.e., ``spack install
Setup file in a sub-directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In order to be compatible with package managers like ``pip``, the package
is required to place its ``setup.py`` in the root of the tarball. However,
not every Python package cares about ``pip`` or PyPI. If you are installing
a package that is not hosted on PyPI, you may find that it places its
``setup.py`` in a sub-directory. To handle this, add the directory containing
``setup.py`` to the package like so:
Many C/C++ libraries provide optional Python bindings in a
subdirectory. To tell pip which directory to build from, you can
override the ``build_directory`` attribute. For example, if a package
provides Python bindings in a ``python`` directory, you can use:
.. code-block:: python
build_directory = 'source'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Alternate names for setup.py
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
As previously mentioned, packages need to call their setup script ``setup.py``
in order to be compatible with package managers like ``pip``. However, some
packages like
`py-meep <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/py-meep/package.py>`_ and
`py-adios <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/py-adios/package.py>`_
come with multiple setup scripts, one for a serial build and another for a
parallel build. You can override the default name to use like so:
.. code-block:: python
def setup_file(self):
return 'setup-mpi.py' if '+mpi' in self.spec else 'setup.py'
build_directory = 'python'
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -774,10 +538,14 @@ on Python are not necessarily ``PythonPackage``'s.
Choosing a build system
"""""""""""""""""""""""
First of all, you need to select a build system. ``spack create`` usually
does this for you, but if for whatever reason you need to do this manually,
choose ``PythonPackage`` if and only if the package contains a ``setup.py``
file.
First of all, you need to select a build system. ``spack create``
usually does this for you, but if for whatever reason you need to do
this manually, choose ``PythonPackage`` if and only if the package
contains one of the following files:
* ``pyproject.toml``
* ``setup.py``
* ``setup.cfg``
"""""""""""""""""""""""
Choosing a package name
@@ -850,10 +618,9 @@ having to add that module to ``PYTHONPATH``.
When deciding between ``extends`` and ``depends_on``, the best rule of
thumb is to check the installation prefix. If Python libraries are
installed to ``prefix/lib/python2.7/site-packages`` (where 2.7 is the
MAJOR.MINOR version of Python you used to install the package), then
you should use ``extends``. If Python libraries are installed elsewhere
or the only files that get installed reside in ``prefix/bin``, then
installed to ``<prefix>/lib/pythonX.Y/site-packages``, then you
should use ``extends``. If Python libraries are installed elsewhere
or the only files that get installed reside in ``<prefix>/bin``, then
don't use ``extends``, as symlinking the package wouldn't be useful.
^^^^^^^^^^^^^^^^^^^^^
@@ -886,4 +653,17 @@ External documentation
^^^^^^^^^^^^^^^^^^^^^^
For more information on Python packaging, see:
https://packaging.python.org/
* https://packaging.python.org/
For more information on build and installation frontend tools, see:
* pip: https://pip.pypa.io/
* build: https://pypa-build.readthedocs.io/
* installer: https://installer.readthedocs.io/
For more information on build backend tools, see:
* setuptools: https://setuptools.pypa.io/
* flit: https://flit.readthedocs.io/
* poetry: https://python-poetry.org/

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# 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)
@@ -30,6 +30,7 @@
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('_spack_root/lib/spack/external'))
sys.path.insert(0, os.path.abspath('_spack_root/lib/spack/external/pytest-fallback'))
if sys.version_info[0] < 3:
sys.path.insert(

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -13,12 +13,16 @@ Spack has many configuration files. Here is a quick list of them, in
case you want to skip directly to specific docs:
* :ref:`compilers.yaml <compiler-config>`
* :ref:`concretizer.yaml <concretizer-options>`
* :ref:`config.yaml <config-yaml>`
* :ref:`mirrors.yaml <mirrors>`
* :ref:`modules.yaml <modules>`
* :ref:`packages.yaml <build-settings>`
* :ref:`repos.yaml <repositories>`
You can also add any of these as inline configuration in ``spack.yaml``
in an :ref:`environment <environment-configuration>`.
-----------
YAML Format
-----------

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -129,6 +129,9 @@ are currently supported are summarized in the table below:
* - CentOS 7
- ``centos:7``
- ``spack/centos7``
* - openSUSE Leap
- ``opensuse/leap``
- ``spack/leap15``
All the images are tagged with the corresponding release of Spack:

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -71,7 +71,7 @@ locally to speed up the review process.
new release that is causing problems. If this is the case, please file an issue.
We currently test against Python 2.6, 2.7, and 3.5-3.7 on both macOS and Linux and
We currently test against Python 2.7 and 3.5-3.9 on both macOS and Linux and
perform 3 types of tests:
.. _cmd-spack-unit-test:

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -671,6 +671,13 @@ If you need to write a hook that is relevant to a failure within a build
process, you would want to instead use ``on_phase_failure``.
"""""""""""""""""""""""""""
``on_install_cancel(spec)``
"""""""""""""""""""""""""""
The same, but triggered if a spec install is cancelled for any reason.
"""""""""""""""""""""""""""""""""""""""""""""""
``on_phase_success(pkg, phase_name, log_file)``
"""""""""""""""""""""""""""""""""""""""""""""""
@@ -1177,6 +1184,10 @@ completed, the steps to make the major release are:
If CI is not passing, submit pull requests to ``develop`` as normal
and keep rebasing the release branch on ``develop`` until CI passes.
#. Make sure the entire documentation is up to date. If documentation
is outdated submit pull requests to ``develop`` as normal
and keep rebasing the release branch on ``develop``.
#. Follow the steps in :ref:`publishing-releases`.
#. Follow the steps in :ref:`merging-releases`.

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -38,8 +38,7 @@ obtained by cloning the corresponding git repository:
.. code-block:: console
$ pwd
/home/user
$ cd ~/
$ mkdir tmp && cd tmp
$ git clone https://github.com/alalazo/spack-scripting.git
Cloning into 'spack-scripting'...
@@ -62,7 +61,7 @@ paths to ``config.yaml``. In the case of our example this means ensuring that:
config:
extensions:
- /home/user/tmp/spack-scripting
- ~/tmp/spack-scripting
is part of your configuration file. Once this is setup any command that the extension provides
will be available from the command line:

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -271,9 +271,10 @@ Compiler configuration
----------------------
Spack has the ability to build packages with multiple compilers and
compiler versions. Spack searches for compilers on your machine
automatically the first time it is run. It does this by inspecting
your ``PATH``.
compiler versions. Compilers can be made available to Spack by
specifying them manually in ``compilers.yaml``, or automatically by
running ``spack compiler find``, but for convenience Spack will
automatically detect compilers the first time it needs them.
.. _cmd-spack-compilers:
@@ -281,7 +282,7 @@ your ``PATH``.
``spack compilers``
^^^^^^^^^^^^^^^^^^^
You can see which compilers spack has found by running ``spack
You can see which compilers are available to Spack by running ``spack
compilers`` or ``spack compiler list``:
.. code-block:: console
@@ -320,9 +321,10 @@ An alias for ``spack compiler find``.
``spack compiler find``
^^^^^^^^^^^^^^^^^^^^^^^
If you do not see a compiler in this list, but you want to use it with
Spack, you can simply run ``spack compiler find`` with the path to
where the compiler is installed. For example:
Lists the compilers currently available to Spack. If you do not see
a compiler in this list, but you want to use it with Spack, you can
simply run ``spack compiler find`` with the path to where the
compiler is installed. For example:
.. code-block:: console

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -273,29 +273,30 @@ of the installed software. For instance, in the snippet below:
.. code-block:: yaml
modules:
tcl:
# The keyword `all` selects every package
all:
environment:
set:
BAR: 'bar'
# This anonymous spec selects any package that
# depends on openmpi. The double colon at the
# end clears the set of rules that matched so far.
^openmpi::
environment:
set:
BAR: 'baz'
# Selects any zlib package
zlib:
environment:
prepend_path:
LD_LIBRARY_PATH: 'foo'
# Selects zlib compiled with gcc@4.8
zlib%gcc@4.8:
environment:
unset:
- FOOBAR
default:
tcl:
# The keyword `all` selects every package
all:
environment:
set:
BAR: 'bar'
# This anonymous spec selects any package that
# depends on openmpi. The double colon at the
# end clears the set of rules that matched so far.
^openmpi::
environment:
set:
BAR: 'baz'
# Selects any zlib package
zlib:
environment:
prepend_path:
LD_LIBRARY_PATH: 'foo'
# Selects zlib compiled with gcc@4.8
zlib%gcc@4.8:
environment:
unset:
- FOOBAR
you are instructing Spack to set the environment variable ``BAR=bar`` for every module,
unless the associated spec satisfies ``^openmpi`` in which case ``BAR=baz``.
@@ -322,9 +323,10 @@ your system. If you write a configuration file like:
.. code-block:: yaml
modules:
tcl:
whitelist: ['gcc', 'llvm'] # Whitelist will have precedence over blacklist
blacklist: ['%gcc@4.4.7'] # Assuming gcc@4.4.7 is the system compiler
default:
tcl:
whitelist: ['gcc', 'llvm'] # Whitelist will have precedence over blacklist
blacklist: ['%gcc@4.4.7'] # Assuming gcc@4.4.7 is the system compiler
you will prevent the generation of module files for any package that
is compiled with ``gcc@4.4.7``, with the only exception of any ``gcc``
@@ -349,8 +351,9 @@ shows how to set hash length in the module file names:
.. code-block:: yaml
modules:
tcl:
hash_length: 7
default:
tcl:
hash_length: 7
To help make module names more readable, and to help alleviate name conflicts
with a short hash, one can use the ``suffixes`` option in the modules
@@ -360,11 +363,12 @@ For instance, the following config options,
.. code-block:: yaml
modules:
tcl:
all:
suffixes:
^python@2.7.12: 'python-2.7.12'
^openblas: 'openblas'
default:
tcl:
all:
suffixes:
^python@2.7.12: 'python-2.7.12'
^openblas: 'openblas'
will add a ``python-2.7.12`` version string to any packages compiled with
python matching the spec, ``python@2.7.12``. This is useful to know which
@@ -379,10 +383,11 @@ covered in :ref:`adding_projections_to_views`.
.. code-block:: yaml
modules:
tcl:
projections:
all: '{name}/{version}-{compiler.name}-{compiler.version}-module'
^mpi: '{name}/{version}-{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}-module'
default:
tcl:
projections:
all: '{name}/{version}-{compiler.name}-{compiler.version}-module'
^mpi: '{name}/{version}-{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}-module'
will create module files that are nested in directories by package
name, contain the version and compiler name and version, and have the
@@ -403,15 +408,16 @@ that are already in the LMod hierarchy.
.. code-block:: yaml
modules:
enable:
- tcl
tcl:
projections:
all: '{name}/{version}-{compiler.name}-{compiler.version}'
all:
conflict:
- '{name}'
- 'intel/14.0.1'
default:
enable:
- tcl
tcl:
projections:
all: '{name}/{version}-{compiler.name}-{compiler.version}'
all:
conflict:
- '{name}'
- 'intel/14.0.1'
will create module files that will conflict with ``intel/14.0.1`` and with the
base directory of the same module, effectively preventing the possibility to
@@ -431,16 +437,17 @@ that are already in the LMod hierarchy.
.. code-block:: yaml
modules:
enable:
- lmod
lmod:
core_compilers:
- 'gcc@4.8'
core_specs:
- 'python'
hierarchy:
- 'mpi'
- 'lapack'
default:
enable:
- lmod
lmod:
core_compilers:
- 'gcc@4.8'
core_specs:
- 'python'
hierarchy:
- 'mpi'
- 'lapack'
that will generate a hierarchy in which the ``lapack`` and ``mpi`` layer can be switched
independently. This allows a site to build the same libraries or applications against different
@@ -591,11 +598,12 @@ do so by using the environment blacklist:
.. code-block:: yaml
modules:
tcl:
all:
filter:
# Exclude changes to any of these variables
environment_blacklist: ['CPATH', 'LIBRARY_PATH']
default:
tcl:
all:
filter:
# Exclude changes to any of these variables
environment_blacklist: ['CPATH', 'LIBRARY_PATH']
The configuration above will generate module files that will not contain
modifications to either ``CPATH`` or ``LIBRARY_PATH``.
@@ -607,42 +615,39 @@ modifications to either ``CPATH`` or ``LIBRARY_PATH``.
Autoload dependencies
"""""""""""""""""""""
In some cases it can be useful to have module files that automatically load
their dependencies. This may be the case for Python extensions, if not
activated using ``spack activate``:
Often it is required for a module to have its (transient) dependencies loaded as well.
One example where this is useful is when one package needs to use executables provided
by its dependency; when the dependency is autoloaded, the executable will be in the
PATH. Similarly for scripting languages such as Python, packages and their dependencies
have to be loaded together.
Autoloading is enabled by default for LMod, as it has great builtin support for through
the ``depends_on`` function. For Environment Modules it is disabled by default.
Autoloading can also be enabled conditionally:
.. code-block:: yaml
modules:
tcl:
^python:
autoload: 'direct'
modules:
default:
tcl:
all:
autoload: none
^python:
autoload: direct
The configuration file above will produce module files that will
load their direct dependencies if the package installed depends on ``python``.
The allowed values for the ``autoload`` statement are either ``none``,
``direct`` or ``all``. The default is ``none``.
.. tip::
Building external software
Setting ``autoload`` to ``direct`` for all packages can be useful
when building software outside of a Spack installation that depends on
artifacts in that installation. E.g. (adjust ``lmod`` vs ``tcl``
as appropriate):
.. code-block:: yaml
modules:
lmod:
all:
autoload: 'direct'
``direct`` or ``all``.
.. note::
TCL prerequisites
In the ``tcl`` section of the configuration file it is possible to use
the ``prerequisites`` directive that accepts the same values as
``autoload``. It will produce module files that have a ``prereq``
statement instead of automatically loading other modules.
statement, which can be used to autoload dependencies in some versions
of Environment Modules.
------------------------
Maintaining Module Files

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)
@@ -705,7 +705,8 @@ as follows:
#. The following special strings are considered larger than any other
numeric or non-numeric version component, and satisfy the following
order between themselves: ``develop > main > master > head > trunk``.
order between themselves:
``develop > main > master > head > trunk > stable``.
#. Numbers are ordered numerically, are less than special strings, and
larger than other non-numeric components.
@@ -1441,6 +1442,32 @@ The ``when`` clause follows the same syntax and accepts the same
values as the ``when`` argument of
:py:func:`spack.directives.depends_on`
^^^^^^^^^^^^^^^
Sticky Variants
^^^^^^^^^^^^^^^
The variant directive can be marked as ``sticky`` by setting to ``True`` the
corresponding argument:
.. code-block:: python
variant('bar', default=False, sticky=True)
A ``sticky`` variant differs from a regular one in that it is always set
to either:
#. An explicit value appearing in a spec literal or
#. Its default value
The concretizer thus is not free to pick an alternate value to work
around conflicts, but will error out instead.
Setting this property on a variant is useful in cases where the
variant allows some dangerous or controversial options (e.g. using unsupported versions
of a compiler for a library) and the packager wants to ensure that
allowing these options is done on purpose by the user, rather than
automatically by the solver.
^^^^^^^^^^^^^^^^^^^
Overriding Variants
^^^^^^^^^^^^^^^^^^^
@@ -2443,6 +2470,24 @@ Now, the ``py-numpy`` package can be used as an argument to ``spack
activate``. When it is activated, all the files in its prefix will be
symbolically linked into the prefix of the python package.
A package can only extend one other package at a time. To support packages
that may extend one of a list of other packages, Spack supports multiple
``extends`` directives as long as at most one of them is selected as
a dependency during concretization. For example, a lua package could extend
either lua or luajit, but not both:
.. code-block:: python
class LuaLpeg(Package):
...
variant('use_lua', default=True)
extends('lua', when='+use_lua')
extends('lua-luajit', when='~use_lua')
...
Now, a user can install, and activate, the ``lua-lpeg`` package for either
lua or luajit.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Adding additional constraints
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2832,7 +2877,7 @@ be concretized on their system. For example, one user may prefer packages
built with OpenMPI and the Intel compiler. Another user may prefer
packages be built with MVAPICH and GCC.
See the :ref:`concretization-preferences` section for more details.
See the :ref:`package-preferences` section for more details.
.. _group_when_spec:
@@ -2943,7 +2988,7 @@ The package base class, usually specialized for a given build system, determines
actual set of entities available for overriding.
The classes that are currently provided by Spack are:
+-------------------------=--------------------------------+----------------------------------+
+----------------------------------------------------------+----------------------------------+
| **Base Class** | **Purpose** |
+==========================================================+==================================+
| :class:`~spack.package.Package` | General base class not |

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

View File

@@ -1,4 +1,4 @@
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# 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)

View File

@@ -1,5 +1,5 @@
Name, Supported Versions, Notes, Requirement Reason
Python, 2.6/2.7/3.5-3.9, , Interpreter for Spack
Python, 2.7/3.5-3.9, , Interpreter for Spack
C/C++ Compilers, , , Building software
make, , , Build software
patch, , , Build software
1 Name Supported Versions Notes Requirement Reason
2 Python 2.6/2.7/3.5-3.9 2.7/3.5-3.9 Interpreter for Spack
3 C/C++ Compilers Building software
4 make Build software
5 patch Build software

View File

@@ -1,4 +1,4 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
.. 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)

4
lib/spack/env/cc vendored
View File

@@ -1,7 +1,7 @@
#!/bin/sh
# shellcheck disable=SC2034 # evals in this script fool shellcheck
#
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# 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)
@@ -248,7 +248,7 @@ case "$command" in
lang_flags=C
debug_flags="-g"
;;
c++|CC|g++|clang++|armclang++|icpc|icpx|pgc++|nvc++|xlc++|xlc++_r|FCC)
c++|CC|g++|clang++|armclang++|icpc|icpx|dpcpp|pgc++|nvc++|xlc++|xlc++_r|FCC)
command="$SPACK_CXX"
language="C++"
comp="CXX"

1
lib/spack/env/oneapi/dpcpp vendored Symbolic link
View File

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

View File

@@ -1,4 +1,4 @@
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# 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)
@@ -6,6 +6,13 @@
"""This module contains the following external, potentially separately
licensed, packages that are included in Spack:
altgraph
--------
* Homepage: https://altgraph.readthedocs.io/en/latest/index.html
* Usage: dependency of macholib
* Version: 0.17.2
archspec
--------
@@ -17,13 +24,36 @@
--------
* Homepage: https://pypi.python.org/pypi/argparse
* Usage: We include our own version to be Python 2.6 compatible.
* Usage: We include our own version to be Python 3.X compatible.
* Version: 1.4.0
* Note: This package has been slightly modified to improve
error message formatting. See the following commit if the
vendored copy ever needs to be updated again:
https://github.com/spack/spack/pull/6786/commits/dfcef577b77249106ea4e4c69a6cd9e64fa6c418
astunparse
----------------
* Homepage: https://github.com/simonpercivall/astunparse
* Usage: Unparsing Python ASTs for package hashes in Spack
* Version: 1.6.3 (plus modifications)
* Note: This is in ``spack.util.unparse`` because it's very heavily
modified, and we want to track coverage for it.
Specifically, we have modified this library to generate consistent unparsed ASTs
regardless of the Python version. It is based on:
1. The original ``astunparse`` library;
2. Modifications for consistency;
3. Backports from the ``ast.unparse`` function in Python 3.9 and later
The unparsing is now mostly consistent with upstream ``ast.unparse``, so if
we ever require Python 3.9 or higher, we can drop this external package.
attrs
----------------
* Homepage: https://github.com/python-attrs/attrs
* Usage: Needed by jsonschema.
* Version: 21.2.0 (83d3cd70f90a3f4d19ee8b508e58d1c58821c0ad)
ctest_log_parser
----------------
@@ -37,49 +67,43 @@
* Homepage: https://pypi.python.org/pypi/distro
* Usage: Provides a more stable linux distribution detection.
* Version: 1.0.4 (last version supporting Python 2.6)
* Version: 1.6.0 (64946a1e2a9ff529047070657728600e006c99ff)
* Note: Last version supporting Python 2.7
functools
---------
* Homepage: https://github.com/python/cpython/blob/2.7/Lib/functools.py
* Usage: Used for implementation of total_ordering.
* Version: Unversioned
* Note: This is the functools.total_ordering implementation
from Python 2.7 backported so we can run on Python 2.6.
functools32
-----------
* Homepage: https://github.com/MiCHiLU/python-functools32
* Usage: Needed by jsonschema when using Python 2.7.
* Version: 3.2.3-2
jinja2
------
* Homepage: https://pypi.python.org/pypi/Jinja2
* Usage: A modern and designer-friendly templating language for Python.
* Version: 2.10
* Version: 2.11.3 (last version supporting Python 2.7)
jsonschema
----------
* Homepage: https://pypi.python.org/pypi/jsonschema
* Usage: An implementation of JSON Schema for Python.
* Version: 2.4.0 (last version before functools32 dependency was added)
* Note: functools32 doesn't support Python 2.6 or 3.0, so jsonschema
cannot be upgraded any further until we drop 2.6.
Also, jsonschema/validators.py has been modified NOT to try to import
requests (see 7a1dd517b8).
* Version: 3.2.0 (last version before 2.7 and 3.6 support was dropped)
* Note: We don't include tests or benchmarks; just what Spack needs.
macholib
--------
* Homepage: https://macholib.readthedocs.io/en/latest/index.html#
* Usage: Manipulation of Mach-o binaries for relocating macOS buildcaches on Linux
* Version: 1.15.2
markupsafe
----------
* Homepage: https://pypi.python.org/pypi/MarkupSafe
* Usage: Implements a XML/HTML/XHTML Markup safe string for Python.
* Version: 1.0
orderddict
----------
* Homepage: https://pypi.org/project/ordereddict/
* Usage: A drop-in substitute for Py2.7's new collections.OrderedDict
that works in Python 2.4-2.6.
* Version: 1.1
* Version: 1.1.1 (last version supporting Python 2.7)
py
--
@@ -91,6 +115,14 @@
* Note: This packages has been modified:
* https://github.com/pytest-dev/py/pull/186 was backported
pyrsistent
----------
* Homepage: http://github.com/tobgu/pyrsistent/
* Usage: Needed by `jsonschema`
* Version: 0.16.1 (last version supporting Python 2.7)
* Note: We only include the parts needed for `jsonschema`.
pytest
------
@@ -120,20 +152,6 @@
* Homepage: https://pypi.python.org/pypi/six
* Usage: Python 2 and 3 compatibility utilities.
* Version: 1.11.0
macholib
--------
* Homepage: https://macholib.readthedocs.io/en/latest/index.html#
* Usage: Manipulation of Mach-o binaries for relocating macOS buildcaches on Linux
* Version: 1.12
altgraph
--------
* Homepage: https://altgraph.readthedocs.io/en/latest/index.html
* Usage: dependency of macholib
* Version: 0.16.1
* Version: 1.16.0
"""

View File

@@ -1,4 +1,4 @@
'''
"""
altgraph.Dot - Interface to the dot language
============================================
@@ -107,7 +107,7 @@
- for more details on how to control the graph drawing process see the
`graphviz reference
<http://www.research.att.com/sw/tools/graphviz/refs.html>`_.
'''
"""
import os
import warnings
@@ -115,25 +115,34 @@
class Dot(object):
'''
"""
A class providing a **graphviz** (dot language) representation
allowing a fine grained control over how the graph is being
displayed.
If the :command:`dot` and :command:`dotty` programs are not in the current
system path their location needs to be specified in the contructor.
'''
"""
def __init__(
self, graph=None, nodes=None, edgefn=None, nodevisitor=None,
edgevisitor=None, name="G", dot='dot', dotty='dotty',
neato='neato', graphtype="digraph"):
'''
self,
graph=None,
nodes=None,
edgefn=None,
nodevisitor=None,
edgevisitor=None,
name="G",
dot="dot",
dotty="dotty",
neato="neato",
graphtype="digraph",
):
"""
Initialization.
'''
"""
self.name, self.attr = name, {}
assert graphtype in ['graph', 'digraph']
assert graphtype in ["graph", "digraph"]
self.type = graphtype
self.temp_dot = "tmp_dot.dot"
@@ -148,8 +157,10 @@ def __init__(
if graph is not None and nodes is None:
nodes = graph
if graph is not None and edgefn is None:
def edgefn(node, graph=graph):
return graph.out_nbrs(node)
if nodes is None:
nodes = ()
@@ -177,20 +188,19 @@ def edgefn(node, graph=graph):
self.edge_style(head, tail, **edgestyle)
def style(self, **attr):
'''
"""
Changes the overall style
'''
"""
self.attr = attr
def display(self, mode='dot'):
'''
def display(self, mode="dot"):
"""
Displays the current graph via dotty
'''
"""
if mode == 'neato':
if mode == "neato":
self.save_dot(self.temp_neo)
neato_cmd = "%s -o %s %s" % (
self.neato, self.temp_dot, self.temp_neo)
neato_cmd = "%s -o %s %s" % (self.neato, self.temp_dot, self.temp_neo)
os.system(neato_cmd)
else:
self.save_dot(self.temp_dot)
@@ -199,24 +209,24 @@ def display(self, mode='dot'):
os.system(plot_cmd)
def node_style(self, node, **kwargs):
'''
"""
Modifies a node style to the dot representation.
'''
"""
if node not in self.edges:
self.edges[node] = {}
self.nodes[node] = kwargs
def all_node_style(self, **kwargs):
'''
"""
Modifies all node styles
'''
"""
for node in self.nodes:
self.node_style(node, **kwargs)
def edge_style(self, head, tail, **kwargs):
'''
"""
Modifies an edge style to the dot representation.
'''
"""
if tail not in self.nodes:
raise GraphError("invalid node %s" % (tail,))
@@ -229,10 +239,10 @@ def edge_style(self, head, tail, **kwargs):
def iterdot(self):
# write graph title
if self.type == 'digraph':
yield 'digraph %s {\n' % (self.name,)
elif self.type == 'graph':
yield 'graph %s {\n' % (self.name,)
if self.type == "digraph":
yield "digraph %s {\n" % (self.name,)
elif self.type == "graph":
yield "graph %s {\n" % (self.name,)
else:
raise GraphError("unsupported graphtype %s" % (self.type,))
@@ -240,11 +250,11 @@ def iterdot(self):
# write overall graph attributes
for attr_name, attr_value in sorted(self.attr.items()):
yield '%s="%s";' % (attr_name, attr_value)
yield '\n'
yield "\n"
# some reusable patterns
cpatt = '%s="%s",' # to separate attributes
epatt = '];\n' # to end attributes
cpatt = '%s="%s",' # to separate attributes
epatt = "];\n" # to end attributes
# write node attributes
for node_name, node_attr in sorted(self.nodes.items()):
@@ -256,25 +266,24 @@ def iterdot(self):
# write edge attributes
for head in sorted(self.edges):
for tail in sorted(self.edges[head]):
if self.type == 'digraph':
if self.type == "digraph":
yield '\t"%s" -> "%s" [' % (head, tail)
else:
yield '\t"%s" -- "%s" [' % (head, tail)
for attr_name, attr_value in \
sorted(self.edges[head][tail].items()):
for attr_name, attr_value in sorted(self.edges[head][tail].items()):
yield cpatt % (attr_name, attr_value)
yield epatt
# finish file
yield '}\n'
yield "}\n"
def __iter__(self):
return self.iterdot()
def save_dot(self, file_name=None):
'''
"""
Saves the current graph representation into a file
'''
"""
if not file_name:
warnings.warn(DeprecationWarning, "always pass a file_name")
@@ -284,19 +293,18 @@ def save_dot(self, file_name=None):
for chunk in self.iterdot():
fp.write(chunk)
def save_img(self, file_name=None, file_type="gif", mode='dot'):
'''
def save_img(self, file_name=None, file_type="gif", mode="dot"):
"""
Saves the dot file as an image file
'''
"""
if not file_name:
warnings.warn(DeprecationWarning, "always pass a file_name")
file_name = "out"
if mode == 'neato':
if mode == "neato":
self.save_dot(self.temp_neo)
neato_cmd = "%s -o %s %s" % (
self.neato, self.temp_dot, self.temp_neo)
neato_cmd = "%s -o %s %s" % (self.neato, self.temp_dot, self.temp_neo)
os.system(neato_cmd)
plot_cmd = self.dot
else:
@@ -305,5 +313,9 @@ def save_img(self, file_name=None, file_type="gif", mode='dot'):
file_name = "%s.%s" % (file_name, file_type)
create_cmd = "%s -T%s %s -o %s" % (
plot_cmd, file_type, self.temp_dot, file_name)
plot_cmd,
file_type,
self.temp_dot,
file_name,
)
os.system(create_cmd)

View File

@@ -13,9 +13,10 @@
#--Nathan Denny, May 27, 1999
"""
from altgraph import GraphError
from collections import deque
from altgraph import GraphError
class Graph(object):
"""
@@ -58,8 +59,10 @@ def __init__(self, edges=None):
raise GraphError("Cannot create edge from %s" % (item,))
def __repr__(self):
return '<Graph: %d nodes, %d edges>' % (
self.number_of_nodes(), self.number_of_edges())
return "<Graph: %d nodes, %d edges>" % (
self.number_of_nodes(),
self.number_of_edges(),
)
def add_node(self, node, node_data=None):
"""
@@ -111,7 +114,7 @@ def add_edge(self, head_id, tail_id, edge_data=1, create_nodes=True):
self.nodes[tail_id][0].append(edge)
self.nodes[head_id][1].append(edge)
except KeyError:
raise GraphError('Invalid nodes %s -> %s' % (head_id, tail_id))
raise GraphError("Invalid nodes %s -> %s" % (head_id, tail_id))
# store edge information
self.edges[edge] = (head_id, tail_id, edge_data)
@@ -124,13 +127,12 @@ def hide_edge(self, edge):
time.
"""
try:
head_id, tail_id, edge_data = \
self.hidden_edges[edge] = self.edges[edge]
head_id, tail_id, edge_data = self.hidden_edges[edge] = self.edges[edge]
self.nodes[tail_id][0].remove(edge)
self.nodes[head_id][1].remove(edge)
del self.edges[edge]
except KeyError:
raise GraphError('Invalid edge %s' % edge)
raise GraphError("Invalid edge %s" % edge)
def hide_node(self, node):
"""
@@ -144,7 +146,7 @@ def hide_node(self, node):
self.hide_edge(edge)
del self.nodes[node]
except KeyError:
raise GraphError('Invalid node %s' % node)
raise GraphError("Invalid node %s" % node)
def restore_node(self, node):
"""
@@ -157,7 +159,7 @@ def restore_node(self, node):
self.restore_edge(edge)
del self.hidden_nodes[node]
except KeyError:
raise GraphError('Invalid node %s' % node)
raise GraphError("Invalid node %s" % node)
def restore_edge(self, edge):
"""
@@ -170,7 +172,7 @@ def restore_edge(self, edge):
self.edges[edge] = head_id, tail_id, data
del self.hidden_edges[edge]
except KeyError:
raise GraphError('Invalid edge %s' % edge)
raise GraphError("Invalid edge %s" % edge)
def restore_all_edges(self):
"""
@@ -203,7 +205,7 @@ def edge_by_id(self, edge):
head, tail, data = self.edges[edge]
except KeyError:
head, tail = None, None
raise GraphError('Invalid edge %s' % edge)
raise GraphError("Invalid edge %s" % edge)
return (head, tail)
@@ -339,7 +341,7 @@ def out_edges(self, node):
try:
return list(self.nodes[node][1])
except KeyError:
raise GraphError('Invalid node %s' % node)
raise GraphError("Invalid node %s" % node)
def inc_edges(self, node):
"""
@@ -348,7 +350,7 @@ def inc_edges(self, node):
try:
return list(self.nodes[node][0])
except KeyError:
raise GraphError('Invalid node %s' % node)
raise GraphError("Invalid node %s" % node)
def all_edges(self, node):
"""
@@ -488,7 +490,7 @@ def iterdfs(self, start, end=None, forward=True):
The forward parameter specifies whether it is a forward or backward
traversal.
"""
visited, stack = set([start]), deque([start])
visited, stack = {start}, deque([start])
if forward:
get_edges = self.out_edges
@@ -515,7 +517,7 @@ def iterdata(self, start, end=None, forward=True, condition=None):
condition callback is only called when node_data is not None.
"""
visited, stack = set([start]), deque([start])
visited, stack = {start}, deque([start])
if forward:
get_edges = self.out_edges
@@ -547,7 +549,7 @@ def _iterbfs(self, start, end=None, forward=True):
traversal. Returns a list of tuples where the first value is the hop
value the second value is the node id.
"""
queue, visited = deque([(start, 0)]), set([start])
queue, visited = deque([(start, 0)]), {start}
# the direction of the bfs depends on the edges that are sampled
if forward:

View File

@@ -1,7 +1,7 @@
'''
"""
altgraph.GraphAlgo - Graph algorithms
=====================================
'''
"""
from altgraph import GraphError
@@ -28,9 +28,9 @@ def dijkstra(graph, start, end=None):
Adapted to altgraph by Istvan Albert, Pennsylvania State University -
June, 9 2004
"""
D = {} # dictionary of final distances
P = {} # dictionary of predecessors
Q = _priorityDictionary() # estimated distances of non-final vertices
D = {} # dictionary of final distances
P = {} # dictionary of predecessors
Q = _priorityDictionary() # estimated distances of non-final vertices
Q[start] = 0
for v in Q:
@@ -44,7 +44,8 @@ def dijkstra(graph, start, end=None):
if w in D:
if vwLength < D[w]:
raise GraphError(
"Dijkstra: found better path to already-final vertex")
"Dijkstra: found better path to already-final vertex"
)
elif w not in Q or vwLength < Q[w]:
Q[w] = vwLength
P[w] = v
@@ -76,7 +77,7 @@ def shortest_path(graph, start, end):
# Utility classes and functions
#
class _priorityDictionary(dict):
'''
"""
Priority dictionary using binary heaps (internal use only)
David Eppstein, UC Irvine, 8 Mar 2002
@@ -92,22 +93,22 @@ class _priorityDictionary(dict):
order. Each item is not removed until the next item is requested,
so D[x] will still return a useful value until the next iteration
of the for-loop. Each operation takes logarithmic amortized time.
'''
"""
def __init__(self):
'''
"""
Initialize priorityDictionary by creating binary heap of pairs
(value,key). Note that changing or removing a dict entry will not
remove the old pair from the heap until it is found by smallest()
or until the heap is rebuilt.
'''
"""
self.__heap = []
dict.__init__(self)
def smallest(self):
'''
"""
Find smallest item after removing deleted items from front of heap.
'''
"""
if len(self) == 0:
raise IndexError("smallest of empty priorityDictionary")
heap = self.__heap
@@ -115,9 +116,11 @@ def smallest(self):
lastItem = heap.pop()
insertionPoint = 0
while 1:
smallChild = 2*insertionPoint+1
if smallChild+1 < len(heap) and \
heap[smallChild] > heap[smallChild+1]:
smallChild = 2 * insertionPoint + 1
if (
smallChild + 1 < len(heap)
and heap[smallChild] > heap[smallChild + 1]
):
smallChild += 1
if smallChild >= len(heap) or lastItem <= heap[smallChild]:
heap[insertionPoint] = lastItem
@@ -127,22 +130,24 @@ def smallest(self):
return heap[0][1]
def __iter__(self):
'''
"""
Create destructive sorted iterator of priorityDictionary.
'''
"""
def iterfn():
while len(self) > 0:
x = self.smallest()
yield x
del self[x]
return iterfn()
def __setitem__(self, key, val):
'''
"""
Change value stored in dictionary and add corresponding pair to heap.
Rebuilds the heap if the number of deleted items gets large, to avoid
memory leakage.
'''
"""
dict.__setitem__(self, key, val)
heap = self.__heap
if len(heap) > 2 * len(self):
@@ -152,15 +157,15 @@ def __setitem__(self, key, val):
newPair = (val, key)
insertionPoint = len(heap)
heap.append(None)
while insertionPoint > 0 and newPair < heap[(insertionPoint-1)//2]:
heap[insertionPoint] = heap[(insertionPoint-1)//2]
insertionPoint = (insertionPoint-1)//2
while insertionPoint > 0 and newPair < heap[(insertionPoint - 1) // 2]:
heap[insertionPoint] = heap[(insertionPoint - 1) // 2]
insertionPoint = (insertionPoint - 1) // 2
heap[insertionPoint] = newPair
def setdefault(self, key, val):
'''
"""
Reimplement setdefault to pass through our customized __setitem__.
'''
"""
if key not in self:
self[key] = val
return self[key]

View File

@@ -1,11 +1,11 @@
'''
"""
altgraph.GraphStat - Functions providing various graph statistics
=================================================================
'''
"""
def degree_dist(graph, limits=(0, 0), bin_num=10, mode='out'):
'''
def degree_dist(graph, limits=(0, 0), bin_num=10, mode="out"):
"""
Computes the degree distribution for a graph.
Returns a list of tuples where the first element of the tuple is the
@@ -15,10 +15,10 @@ def degree_dist(graph, limits=(0, 0), bin_num=10, mode='out'):
Example::
....
'''
"""
deg = []
if mode == 'inc':
if mode == "inc":
get_deg = graph.inc_degree
else:
get_deg = graph.out_degree
@@ -34,38 +34,38 @@ def degree_dist(graph, limits=(0, 0), bin_num=10, mode='out'):
return results
_EPS = 1.0/(2.0**32)
_EPS = 1.0 / (2.0 ** 32)
def _binning(values, limits=(0, 0), bin_num=10):
'''
"""
Bins data that falls between certain limits, if the limits are (0, 0) the
minimum and maximum values are used.
Returns a list of tuples where the first element of the tuple is the
center of the bin and the second element of the tuple are the counts.
'''
"""
if limits == (0, 0):
min_val, max_val = min(values) - _EPS, max(values) + _EPS
else:
min_val, max_val = limits
# get bin size
bin_size = (max_val - min_val)/float(bin_num)
bin_size = (max_val - min_val) / float(bin_num)
bins = [0] * (bin_num)
# will ignore these outliers for now
for value in values:
try:
if (value - min_val) >= 0:
index = int((value - min_val)/float(bin_size))
index = int((value - min_val) / float(bin_size))
bins[index] += 1
except IndexError:
pass
# make it ready for an x,y plot
result = []
center = (bin_size/2) + min_val
center = (bin_size / 2) + min_val
for i, y in enumerate(bins):
x = center + bin_size * i
result.append((x, y))

View File

@@ -1,31 +1,29 @@
'''
"""
altgraph.GraphUtil - Utility classes and functions
==================================================
'''
"""
import random
from collections import deque
from altgraph import Graph
from altgraph import GraphError
from altgraph import Graph, GraphError
def generate_random_graph(
node_num, edge_num, self_loops=False, multi_edges=False):
'''
def generate_random_graph(node_num, edge_num, self_loops=False, multi_edges=False):
"""
Generates and returns a :py:class:`~altgraph.Graph.Graph` instance with
*node_num* nodes randomly connected by *edge_num* edges.
'''
"""
g = Graph.Graph()
if not multi_edges:
if self_loops:
max_edges = node_num * node_num
else:
max_edges = node_num * (node_num-1)
max_edges = node_num * (node_num - 1)
if edge_num > max_edges:
raise GraphError(
"inconsistent arguments to 'generate_random_graph'")
raise GraphError("inconsistent arguments to 'generate_random_graph'")
nodes = range(node_num)
@@ -52,17 +50,16 @@ def generate_random_graph(
return g
def generate_scale_free_graph(
steps, growth_num, self_loops=False, multi_edges=False):
'''
def generate_scale_free_graph(steps, growth_num, self_loops=False, multi_edges=False):
"""
Generates and returns a :py:class:`~altgraph.Graph.Graph` instance that
will have *steps* \* *growth_num* nodes and a scale free (powerlaw)
will have *steps* \\* *growth_num* nodes and a scale free (powerlaw)
connectivity. Starting with a fully connected graph with *growth_num*
nodes at every step *growth_num* nodes are added to the graph and are
connected to existing nodes with a probability proportional to the degree
of these existing nodes.
'''
# FIXME: The code doesn't seem to do what the documentation claims.
"""
# The code doesn't seem to do what the documentation claims.
graph = Graph.Graph()
# initialize the graph
@@ -113,7 +110,7 @@ def filter_stack(graph, head, filters):
in *removes*.
"""
visited, removes, orphans = set([head]), set(), set()
visited, removes, orphans = {head}, set(), set()
stack = deque([(head, head)])
get_data = graph.node_data
get_edges = graph.out_edges
@@ -137,8 +134,6 @@ def filter_stack(graph, head, filters):
visited.add(tail)
stack.append((last_good, tail))
orphans = [
(lg, tl)
for (lg, tl) in orphans if tl not in removes]
orphans = [(lg, tl) for (lg, tl) in orphans if tl not in removes]
return visited, removes, orphans

View File

@@ -27,7 +27,7 @@ def __init__(self, graph=None, debug=0):
graph.add_node(self, None)
def __repr__(self):
return '<%s>' % (type(self).__name__,)
return "<%s>" % (type(self).__name__,)
def flatten(self, condition=None, start=None):
"""
@@ -58,6 +58,7 @@ def iter_edges(lst, n):
if ident not in seen:
yield self.findNode(ident)
seen.add(ident)
return iter_edges(outraw, 3), iter_edges(incraw, 2)
def edgeData(self, fromNode, toNode):
@@ -87,12 +88,12 @@ def filterStack(self, filters):
visited, removes, orphans = filter_stack(self.graph, self, filters)
for last_good, tail in orphans:
self.graph.add_edge(last_good, tail, edge_data='orphan')
self.graph.add_edge(last_good, tail, edge_data="orphan")
for node in removes:
self.graph.hide_node(node)
return len(visited)-1, len(removes), len(orphans)
return len(visited) - 1, len(removes), len(orphans)
def removeNode(self, node):
"""
@@ -135,7 +136,7 @@ def getRawIdent(self, node):
"""
if node is self:
return node
ident = getattr(node, 'graphident', None)
ident = getattr(node, "graphident", None)
return ident
def __contains__(self, node):
@@ -192,8 +193,7 @@ def msg(self, level, s, *args):
Print a debug message with the given level
"""
if s and level <= self.debug:
print("%s%s %s" % (
" " * self.indent, s, ' '.join(map(repr, args))))
print("%s%s %s" % (" " * self.indent, s, " ".join(map(repr, args))))
def msgin(self, level, s, *args):
"""

View File

@@ -1,4 +1,4 @@
'''
"""
altgraph - a python graph library
=================================
@@ -138,13 +138,11 @@
@newfield contributor: Contributors:
@contributor: U{Reka Albert <http://www.phys.psu.edu/~ralbert/>}
'''
# import pkg_resources
# __version__ = pkg_resources.require('altgraph')[0].version
# pkg_resources is not finding the altgraph import despite the fact that it is in sys.path
# there is no .dist-info or .egg-info for pkg_resources to query the version from
# so it must be set manually
__version__ = '0.16.1'
"""
import pkg_resources
__version__ = pkg_resources.require("altgraph")[0].version
class GraphError(ValueError):
pass

21
lib/spack/external/attr/LICENSE vendored Normal file
View File

@@ -0,0 +1,21 @@
The MIT License (MIT)
Copyright (c) 2015 Hynek Schlawack
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

78
lib/spack/external/attr/__init__.py vendored Normal file
View File

@@ -0,0 +1,78 @@
from __future__ import absolute_import, division, print_function
import sys
from functools import partial
from . import converters, exceptions, filters, setters, validators
from ._cmp import cmp_using
from ._config import get_run_validators, set_run_validators
from ._funcs import asdict, assoc, astuple, evolve, has, resolve_types
from ._make import (
NOTHING,
Attribute,
Factory,
attrib,
attrs,
fields,
fields_dict,
make_class,
validate,
)
from ._version_info import VersionInfo
__version__ = "21.2.0"
__version_info__ = VersionInfo._from_version_string(__version__)
__title__ = "attrs"
__description__ = "Classes Without Boilerplate"
__url__ = "https://www.attrs.org/"
__uri__ = __url__
__doc__ = __description__ + " <" + __uri__ + ">"
__author__ = "Hynek Schlawack"
__email__ = "hs@ox.cx"
__license__ = "MIT"
__copyright__ = "Copyright (c) 2015 Hynek Schlawack"
s = attributes = attrs
ib = attr = attrib
dataclass = partial(attrs, auto_attribs=True) # happy Easter ;)
__all__ = [
"Attribute",
"Factory",
"NOTHING",
"asdict",
"assoc",
"astuple",
"attr",
"attrib",
"attributes",
"attrs",
"cmp_using",
"converters",
"evolve",
"exceptions",
"fields",
"fields_dict",
"filters",
"get_run_validators",
"has",
"ib",
"make_class",
"resolve_types",
"s",
"set_run_validators",
"setters",
"validate",
"validators",
]
if sys.version_info[:2] >= (3, 6):
from ._next_gen import define, field, frozen, mutable
__all__.extend((define, field, frozen, mutable))

152
lib/spack/external/attr/_cmp.py vendored Normal file
View File

@@ -0,0 +1,152 @@
from __future__ import absolute_import, division, print_function
import functools
from ._compat import new_class
from ._make import _make_ne
_operation_names = {"eq": "==", "lt": "<", "le": "<=", "gt": ">", "ge": ">="}
def cmp_using(
eq=None,
lt=None,
le=None,
gt=None,
ge=None,
require_same_type=True,
class_name="Comparable",
):
"""
Create a class that can be passed into `attr.ib`'s ``eq``, ``order``, and
``cmp`` arguments to customize field comparison.
The resulting class will have a full set of ordering methods if
at least one of ``{lt, le, gt, ge}`` and ``eq`` are provided.
:param Optional[callable] eq: `callable` used to evaluate equality
of two objects.
:param Optional[callable] lt: `callable` used to evaluate whether
one object is less than another object.
:param Optional[callable] le: `callable` used to evaluate whether
one object is less than or equal to another object.
:param Optional[callable] gt: `callable` used to evaluate whether
one object is greater than another object.
:param Optional[callable] ge: `callable` used to evaluate whether
one object is greater than or equal to another object.
:param bool require_same_type: When `True`, equality and ordering methods
will return `NotImplemented` if objects are not of the same type.
:param Optional[str] class_name: Name of class. Defaults to 'Comparable'.
See `comparison` for more details.
.. versionadded:: 21.1.0
"""
body = {
"__slots__": ["value"],
"__init__": _make_init(),
"_requirements": [],
"_is_comparable_to": _is_comparable_to,
}
# Add operations.
num_order_functions = 0
has_eq_function = False
if eq is not None:
has_eq_function = True
body["__eq__"] = _make_operator("eq", eq)
body["__ne__"] = _make_ne()
if lt is not None:
num_order_functions += 1
body["__lt__"] = _make_operator("lt", lt)
if le is not None:
num_order_functions += 1
body["__le__"] = _make_operator("le", le)
if gt is not None:
num_order_functions += 1
body["__gt__"] = _make_operator("gt", gt)
if ge is not None:
num_order_functions += 1
body["__ge__"] = _make_operator("ge", ge)
type_ = new_class(class_name, (object,), {}, lambda ns: ns.update(body))
# Add same type requirement.
if require_same_type:
type_._requirements.append(_check_same_type)
# Add total ordering if at least one operation was defined.
if 0 < num_order_functions < 4:
if not has_eq_function:
# functools.total_ordering requires __eq__ to be defined,
# so raise early error here to keep a nice stack.
raise ValueError(
"eq must be define is order to complete ordering from "
"lt, le, gt, ge."
)
type_ = functools.total_ordering(type_)
return type_
def _make_init():
"""
Create __init__ method.
"""
def __init__(self, value):
"""
Initialize object with *value*.
"""
self.value = value
return __init__
def _make_operator(name, func):
"""
Create operator method.
"""
def method(self, other):
if not self._is_comparable_to(other):
return NotImplemented
result = func(self.value, other.value)
if result is NotImplemented:
return NotImplemented
return result
method.__name__ = "__%s__" % (name,)
method.__doc__ = "Return a %s b. Computed by attrs." % (
_operation_names[name],
)
return method
def _is_comparable_to(self, other):
"""
Check whether `other` is comparable to `self`.
"""
for func in self._requirements:
if not func(self, other):
return False
return True
def _check_same_type(self, other):
"""
Return True if *self* and *other* are of the same type, False otherwise.
"""
return other.value.__class__ is self.value.__class__

242
lib/spack/external/attr/_compat.py vendored Normal file
View File

@@ -0,0 +1,242 @@
from __future__ import absolute_import, division, print_function
import platform
import sys
import types
import warnings
PY2 = sys.version_info[0] == 2
PYPY = platform.python_implementation() == "PyPy"
if PYPY or sys.version_info[:2] >= (3, 6):
ordered_dict = dict
else:
from collections import OrderedDict
ordered_dict = OrderedDict
if PY2:
from collections import Mapping, Sequence
from UserDict import IterableUserDict
# We 'bundle' isclass instead of using inspect as importing inspect is
# fairly expensive (order of 10-15 ms for a modern machine in 2016)
def isclass(klass):
return isinstance(klass, (type, types.ClassType))
def new_class(name, bases, kwds, exec_body):
"""
A minimal stub of types.new_class that we need for make_class.
"""
ns = {}
exec_body(ns)
return type(name, bases, ns)
# TYPE is used in exceptions, repr(int) is different on Python 2 and 3.
TYPE = "type"
def iteritems(d):
return d.iteritems()
# Python 2 is bereft of a read-only dict proxy, so we make one!
class ReadOnlyDict(IterableUserDict):
"""
Best-effort read-only dict wrapper.
"""
def __setitem__(self, key, val):
# We gently pretend we're a Python 3 mappingproxy.
raise TypeError(
"'mappingproxy' object does not support item assignment"
)
def update(self, _):
# We gently pretend we're a Python 3 mappingproxy.
raise AttributeError(
"'mappingproxy' object has no attribute 'update'"
)
def __delitem__(self, _):
# We gently pretend we're a Python 3 mappingproxy.
raise TypeError(
"'mappingproxy' object does not support item deletion"
)
def clear(self):
# We gently pretend we're a Python 3 mappingproxy.
raise AttributeError(
"'mappingproxy' object has no attribute 'clear'"
)
def pop(self, key, default=None):
# We gently pretend we're a Python 3 mappingproxy.
raise AttributeError(
"'mappingproxy' object has no attribute 'pop'"
)
def popitem(self):
# We gently pretend we're a Python 3 mappingproxy.
raise AttributeError(
"'mappingproxy' object has no attribute 'popitem'"
)
def setdefault(self, key, default=None):
# We gently pretend we're a Python 3 mappingproxy.
raise AttributeError(
"'mappingproxy' object has no attribute 'setdefault'"
)
def __repr__(self):
# Override to be identical to the Python 3 version.
return "mappingproxy(" + repr(self.data) + ")"
def metadata_proxy(d):
res = ReadOnlyDict()
res.data.update(d) # We blocked update, so we have to do it like this.
return res
def just_warn(*args, **kw): # pragma: no cover
"""
We only warn on Python 3 because we are not aware of any concrete
consequences of not setting the cell on Python 2.
"""
else: # Python 3 and later.
from collections.abc import Mapping, Sequence # noqa
def just_warn(*args, **kw):
"""
We only warn on Python 3 because we are not aware of any concrete
consequences of not setting the cell on Python 2.
"""
warnings.warn(
"Running interpreter doesn't sufficiently support code object "
"introspection. Some features like bare super() or accessing "
"__class__ will not work with slotted classes.",
RuntimeWarning,
stacklevel=2,
)
def isclass(klass):
return isinstance(klass, type)
TYPE = "class"
def iteritems(d):
return d.items()
new_class = types.new_class
def metadata_proxy(d):
return types.MappingProxyType(dict(d))
def make_set_closure_cell():
"""Return a function of two arguments (cell, value) which sets
the value stored in the closure cell `cell` to `value`.
"""
# pypy makes this easy. (It also supports the logic below, but
# why not do the easy/fast thing?)
if PYPY:
def set_closure_cell(cell, value):
cell.__setstate__((value,))
return set_closure_cell
# Otherwise gotta do it the hard way.
# Create a function that will set its first cellvar to `value`.
def set_first_cellvar_to(value):
x = value
return
# This function will be eliminated as dead code, but
# not before its reference to `x` forces `x` to be
# represented as a closure cell rather than a local.
def force_x_to_be_a_cell(): # pragma: no cover
return x
try:
# Extract the code object and make sure our assumptions about
# the closure behavior are correct.
if PY2:
co = set_first_cellvar_to.func_code
else:
co = set_first_cellvar_to.__code__
if co.co_cellvars != ("x",) or co.co_freevars != ():
raise AssertionError # pragma: no cover
# Convert this code object to a code object that sets the
# function's first _freevar_ (not cellvar) to the argument.
if sys.version_info >= (3, 8):
# CPython 3.8+ has an incompatible CodeType signature
# (added a posonlyargcount argument) but also added
# CodeType.replace() to do this without counting parameters.
set_first_freevar_code = co.replace(
co_cellvars=co.co_freevars, co_freevars=co.co_cellvars
)
else:
args = [co.co_argcount]
if not PY2:
args.append(co.co_kwonlyargcount)
args.extend(
[
co.co_nlocals,
co.co_stacksize,
co.co_flags,
co.co_code,
co.co_consts,
co.co_names,
co.co_varnames,
co.co_filename,
co.co_name,
co.co_firstlineno,
co.co_lnotab,
# These two arguments are reversed:
co.co_cellvars,
co.co_freevars,
]
)
set_first_freevar_code = types.CodeType(*args)
def set_closure_cell(cell, value):
# Create a function using the set_first_freevar_code,
# whose first closure cell is `cell`. Calling it will
# change the value of that cell.
setter = types.FunctionType(
set_first_freevar_code, {}, "setter", (), (cell,)
)
# And call it to set the cell.
setter(value)
# Make sure it works on this interpreter:
def make_func_with_cell():
x = None
def func():
return x # pragma: no cover
return func
if PY2:
cell = make_func_with_cell().func_closure[0]
else:
cell = make_func_with_cell().__closure__[0]
set_closure_cell(cell, 100)
if cell.cell_contents != 100:
raise AssertionError # pragma: no cover
except Exception:
return just_warn
else:
return set_closure_cell
set_closure_cell = make_set_closure_cell()

23
lib/spack/external/attr/_config.py vendored Normal file
View File

@@ -0,0 +1,23 @@
from __future__ import absolute_import, division, print_function
__all__ = ["set_run_validators", "get_run_validators"]
_run_validators = True
def set_run_validators(run):
"""
Set whether or not validators are run. By default, they are run.
"""
if not isinstance(run, bool):
raise TypeError("'run' must be bool.")
global _run_validators
_run_validators = run
def get_run_validators():
"""
Return whether or not validators are run.
"""
return _run_validators

395
lib/spack/external/attr/_funcs.py vendored Normal file
View File

@@ -0,0 +1,395 @@
from __future__ import absolute_import, division, print_function
import copy
from ._compat import iteritems
from ._make import NOTHING, _obj_setattr, fields
from .exceptions import AttrsAttributeNotFoundError
def asdict(
inst,
recurse=True,
filter=None,
dict_factory=dict,
retain_collection_types=False,
value_serializer=None,
):
"""
Return the ``attrs`` attribute values of *inst* as a dict.
Optionally recurse into other ``attrs``-decorated classes.
:param inst: Instance of an ``attrs``-decorated class.
:param bool recurse: Recurse into classes that are also
``attrs``-decorated.
:param callable filter: A callable whose return code determines whether an
attribute or element is included (``True``) or dropped (``False``). Is
called with the `attr.Attribute` as the first argument and the
value as the second argument.
:param callable dict_factory: A callable to produce dictionaries from. For
example, to produce ordered dictionaries instead of normal Python
dictionaries, pass in ``collections.OrderedDict``.
:param bool retain_collection_types: Do not convert to ``list`` when
encountering an attribute whose type is ``tuple`` or ``set``. Only
meaningful if ``recurse`` is ``True``.
:param Optional[callable] value_serializer: A hook that is called for every
attribute or dict key/value. It receives the current instance, field
and value and must return the (updated) value. The hook is run *after*
the optional *filter* has been applied.
:rtype: return type of *dict_factory*
:raise attr.exceptions.NotAnAttrsClassError: If *cls* is not an ``attrs``
class.
.. versionadded:: 16.0.0 *dict_factory*
.. versionadded:: 16.1.0 *retain_collection_types*
.. versionadded:: 20.3.0 *value_serializer*
"""
attrs = fields(inst.__class__)
rv = dict_factory()
for a in attrs:
v = getattr(inst, a.name)
if filter is not None and not filter(a, v):
continue
if value_serializer is not None:
v = value_serializer(inst, a, v)
if recurse is True:
if has(v.__class__):
rv[a.name] = asdict(
v,
True,
filter,
dict_factory,
retain_collection_types,
value_serializer,
)
elif isinstance(v, (tuple, list, set, frozenset)):
cf = v.__class__ if retain_collection_types is True else list
rv[a.name] = cf(
[
_asdict_anything(
i,
filter,
dict_factory,
retain_collection_types,
value_serializer,
)
for i in v
]
)
elif isinstance(v, dict):
df = dict_factory
rv[a.name] = df(
(
_asdict_anything(
kk,
filter,
df,
retain_collection_types,
value_serializer,
),
_asdict_anything(
vv,
filter,
df,
retain_collection_types,
value_serializer,
),
)
for kk, vv in iteritems(v)
)
else:
rv[a.name] = v
else:
rv[a.name] = v
return rv
def _asdict_anything(
val,
filter,
dict_factory,
retain_collection_types,
value_serializer,
):
"""
``asdict`` only works on attrs instances, this works on anything.
"""
if getattr(val.__class__, "__attrs_attrs__", None) is not None:
# Attrs class.
rv = asdict(
val,
True,
filter,
dict_factory,
retain_collection_types,
value_serializer,
)
elif isinstance(val, (tuple, list, set, frozenset)):
cf = val.__class__ if retain_collection_types is True else list
rv = cf(
[
_asdict_anything(
i,
filter,
dict_factory,
retain_collection_types,
value_serializer,
)
for i in val
]
)
elif isinstance(val, dict):
df = dict_factory
rv = df(
(
_asdict_anything(
kk, filter, df, retain_collection_types, value_serializer
),
_asdict_anything(
vv, filter, df, retain_collection_types, value_serializer
),
)
for kk, vv in iteritems(val)
)
else:
rv = val
if value_serializer is not None:
rv = value_serializer(None, None, rv)
return rv
def astuple(
inst,
recurse=True,
filter=None,
tuple_factory=tuple,
retain_collection_types=False,
):
"""
Return the ``attrs`` attribute values of *inst* as a tuple.
Optionally recurse into other ``attrs``-decorated classes.
:param inst: Instance of an ``attrs``-decorated class.
:param bool recurse: Recurse into classes that are also
``attrs``-decorated.
:param callable filter: A callable whose return code determines whether an
attribute or element is included (``True``) or dropped (``False``). Is
called with the `attr.Attribute` as the first argument and the
value as the second argument.
:param callable tuple_factory: A callable to produce tuples from. For
example, to produce lists instead of tuples.
:param bool retain_collection_types: Do not convert to ``list``
or ``dict`` when encountering an attribute which type is
``tuple``, ``dict`` or ``set``. Only meaningful if ``recurse`` is
``True``.
:rtype: return type of *tuple_factory*
:raise attr.exceptions.NotAnAttrsClassError: If *cls* is not an ``attrs``
class.
.. versionadded:: 16.2.0
"""
attrs = fields(inst.__class__)
rv = []
retain = retain_collection_types # Very long. :/
for a in attrs:
v = getattr(inst, a.name)
if filter is not None and not filter(a, v):
continue
if recurse is True:
if has(v.__class__):
rv.append(
astuple(
v,
recurse=True,
filter=filter,
tuple_factory=tuple_factory,
retain_collection_types=retain,
)
)
elif isinstance(v, (tuple, list, set, frozenset)):
cf = v.__class__ if retain is True else list
rv.append(
cf(
[
astuple(
j,
recurse=True,
filter=filter,
tuple_factory=tuple_factory,
retain_collection_types=retain,
)
if has(j.__class__)
else j
for j in v
]
)
)
elif isinstance(v, dict):
df = v.__class__ if retain is True else dict
rv.append(
df(
(
astuple(
kk,
tuple_factory=tuple_factory,
retain_collection_types=retain,
)
if has(kk.__class__)
else kk,
astuple(
vv,
tuple_factory=tuple_factory,
retain_collection_types=retain,
)
if has(vv.__class__)
else vv,
)
for kk, vv in iteritems(v)
)
)
else:
rv.append(v)
else:
rv.append(v)
return rv if tuple_factory is list else tuple_factory(rv)
def has(cls):
"""
Check whether *cls* is a class with ``attrs`` attributes.
:param type cls: Class to introspect.
:raise TypeError: If *cls* is not a class.
:rtype: bool
"""
return getattr(cls, "__attrs_attrs__", None) is not None
def assoc(inst, **changes):
"""
Copy *inst* and apply *changes*.
:param inst: Instance of a class with ``attrs`` attributes.
:param changes: Keyword changes in the new copy.
:return: A copy of inst with *changes* incorporated.
:raise attr.exceptions.AttrsAttributeNotFoundError: If *attr_name* couldn't
be found on *cls*.
:raise attr.exceptions.NotAnAttrsClassError: If *cls* is not an ``attrs``
class.
.. deprecated:: 17.1.0
Use `evolve` instead.
"""
import warnings
warnings.warn(
"assoc is deprecated and will be removed after 2018/01.",
DeprecationWarning,
stacklevel=2,
)
new = copy.copy(inst)
attrs = fields(inst.__class__)
for k, v in iteritems(changes):
a = getattr(attrs, k, NOTHING)
if a is NOTHING:
raise AttrsAttributeNotFoundError(
"{k} is not an attrs attribute on {cl}.".format(
k=k, cl=new.__class__
)
)
_obj_setattr(new, k, v)
return new
def evolve(inst, **changes):
"""
Create a new instance, based on *inst* with *changes* applied.
:param inst: Instance of a class with ``attrs`` attributes.
:param changes: Keyword changes in the new copy.
:return: A copy of inst with *changes* incorporated.
:raise TypeError: If *attr_name* couldn't be found in the class
``__init__``.
:raise attr.exceptions.NotAnAttrsClassError: If *cls* is not an ``attrs``
class.
.. versionadded:: 17.1.0
"""
cls = inst.__class__
attrs = fields(cls)
for a in attrs:
if not a.init:
continue
attr_name = a.name # To deal with private attributes.
init_name = attr_name if attr_name[0] != "_" else attr_name[1:]
if init_name not in changes:
changes[init_name] = getattr(inst, attr_name)
return cls(**changes)
def resolve_types(cls, globalns=None, localns=None, attribs=None):
"""
Resolve any strings and forward annotations in type annotations.
This is only required if you need concrete types in `Attribute`'s *type*
field. In other words, you don't need to resolve your types if you only
use them for static type checking.
With no arguments, names will be looked up in the module in which the class
was created. If this is not what you want, e.g. if the name only exists
inside a method, you may pass *globalns* or *localns* to specify other
dictionaries in which to look up these names. See the docs of
`typing.get_type_hints` for more details.
:param type cls: Class to resolve.
:param Optional[dict] globalns: Dictionary containing global variables.
:param Optional[dict] localns: Dictionary containing local variables.
:param Optional[list] attribs: List of attribs for the given class.
This is necessary when calling from inside a ``field_transformer``
since *cls* is not an ``attrs`` class yet.
:raise TypeError: If *cls* is not a class.
:raise attr.exceptions.NotAnAttrsClassError: If *cls* is not an ``attrs``
class and you didn't pass any attribs.
:raise NameError: If types cannot be resolved because of missing variables.
:returns: *cls* so you can use this function also as a class decorator.
Please note that you have to apply it **after** `attr.s`. That means
the decorator has to come in the line **before** `attr.s`.
.. versionadded:: 20.1.0
.. versionadded:: 21.1.0 *attribs*
"""
try:
# Since calling get_type_hints is expensive we cache whether we've
# done it already.
cls.__attrs_types_resolved__
except AttributeError:
import typing
hints = typing.get_type_hints(cls, globalns=globalns, localns=localns)
for field in fields(cls) if attribs is None else attribs:
if field.name in hints:
# Since fields have been frozen we must work around it.
_obj_setattr(field, "type", hints[field.name])
cls.__attrs_types_resolved__ = True
# Return the class so you can use it as a decorator too.
return cls

3052
lib/spack/external/attr/_make.py vendored Normal file

File diff suppressed because it is too large Load Diff

158
lib/spack/external/attr/_next_gen.py vendored Normal file
View File

@@ -0,0 +1,158 @@
"""
These are Python 3.6+-only and keyword-only APIs that call `attr.s` and
`attr.ib` with different default values.
"""
from functools import partial
from attr.exceptions import UnannotatedAttributeError
from . import setters
from ._make import NOTHING, _frozen_setattrs, attrib, attrs
def define(
maybe_cls=None,
*,
these=None,
repr=None,
hash=None,
init=None,
slots=True,
frozen=False,
weakref_slot=True,
str=False,
auto_attribs=None,
kw_only=False,
cache_hash=False,
auto_exc=True,
eq=None,
order=False,
auto_detect=True,
getstate_setstate=None,
on_setattr=None,
field_transformer=None,
):
r"""
The only behavioral differences are the handling of the *auto_attribs*
option:
:param Optional[bool] auto_attribs: If set to `True` or `False`, it behaves
exactly like `attr.s`. If left `None`, `attr.s` will try to guess:
1. If any attributes are annotated and no unannotated `attr.ib`\ s
are found, it assumes *auto_attribs=True*.
2. Otherwise it assumes *auto_attribs=False* and tries to collect
`attr.ib`\ s.
and that mutable classes (``frozen=False``) validate on ``__setattr__``.
.. versionadded:: 20.1.0
"""
def do_it(cls, auto_attribs):
return attrs(
maybe_cls=cls,
these=these,
repr=repr,
hash=hash,
init=init,
slots=slots,
frozen=frozen,
weakref_slot=weakref_slot,
str=str,
auto_attribs=auto_attribs,
kw_only=kw_only,
cache_hash=cache_hash,
auto_exc=auto_exc,
eq=eq,
order=order,
auto_detect=auto_detect,
collect_by_mro=True,
getstate_setstate=getstate_setstate,
on_setattr=on_setattr,
field_transformer=field_transformer,
)
def wrap(cls):
"""
Making this a wrapper ensures this code runs during class creation.
We also ensure that frozen-ness of classes is inherited.
"""
nonlocal frozen, on_setattr
had_on_setattr = on_setattr not in (None, setters.NO_OP)
# By default, mutable classes validate on setattr.
if frozen is False and on_setattr is None:
on_setattr = setters.validate
# However, if we subclass a frozen class, we inherit the immutability
# and disable on_setattr.
for base_cls in cls.__bases__:
if base_cls.__setattr__ is _frozen_setattrs:
if had_on_setattr:
raise ValueError(
"Frozen classes can't use on_setattr "
"(frozen-ness was inherited)."
)
on_setattr = setters.NO_OP
break
if auto_attribs is not None:
return do_it(cls, auto_attribs)
try:
return do_it(cls, True)
except UnannotatedAttributeError:
return do_it(cls, False)
# maybe_cls's type depends on the usage of the decorator. It's a class
# if it's used as `@attrs` but ``None`` if used as `@attrs()`.
if maybe_cls is None:
return wrap
else:
return wrap(maybe_cls)
mutable = define
frozen = partial(define, frozen=True, on_setattr=None)
def field(
*,
default=NOTHING,
validator=None,
repr=True,
hash=None,
init=True,
metadata=None,
converter=None,
factory=None,
kw_only=False,
eq=None,
order=None,
on_setattr=None,
):
"""
Identical to `attr.ib`, except keyword-only and with some arguments
removed.
.. versionadded:: 20.1.0
"""
return attrib(
default=default,
validator=validator,
repr=repr,
hash=hash,
init=init,
metadata=metadata,
converter=converter,
factory=factory,
kw_only=kw_only,
eq=eq,
order=order,
on_setattr=on_setattr,
)

View File

@@ -0,0 +1,85 @@
from __future__ import absolute_import, division, print_function
from functools import total_ordering
from ._funcs import astuple
from ._make import attrib, attrs
@total_ordering
@attrs(eq=False, order=False, slots=True, frozen=True)
class VersionInfo(object):
"""
A version object that can be compared to tuple of length 1--4:
>>> attr.VersionInfo(19, 1, 0, "final") <= (19, 2)
True
>>> attr.VersionInfo(19, 1, 0, "final") < (19, 1, 1)
True
>>> vi = attr.VersionInfo(19, 2, 0, "final")
>>> vi < (19, 1, 1)
False
>>> vi < (19,)
False
>>> vi == (19, 2,)
True
>>> vi == (19, 2, 1)
False
.. versionadded:: 19.2
"""
year = attrib(type=int)
minor = attrib(type=int)
micro = attrib(type=int)
releaselevel = attrib(type=str)
@classmethod
def _from_version_string(cls, s):
"""
Parse *s* and return a _VersionInfo.
"""
v = s.split(".")
if len(v) == 3:
v.append("final")
return cls(
year=int(v[0]), minor=int(v[1]), micro=int(v[2]), releaselevel=v[3]
)
def _ensure_tuple(self, other):
"""
Ensure *other* is a tuple of a valid length.
Returns a possibly transformed *other* and ourselves as a tuple of
the same length as *other*.
"""
if self.__class__ is other.__class__:
other = astuple(other)
if not isinstance(other, tuple):
raise NotImplementedError
if not (1 <= len(other) <= 4):
raise NotImplementedError
return astuple(self)[: len(other)], other
def __eq__(self, other):
try:
us, them = self._ensure_tuple(other)
except NotImplementedError:
return NotImplemented
return us == them
def __lt__(self, other):
try:
us, them = self._ensure_tuple(other)
except NotImplementedError:
return NotImplemented
# Since alphabetically "dev0" < "final" < "post1" < "post2", we don't
# have to do anything special with releaselevel for now.
return us < them

111
lib/spack/external/attr/converters.py vendored Normal file
View File

@@ -0,0 +1,111 @@
"""
Commonly useful converters.
"""
from __future__ import absolute_import, division, print_function
from ._compat import PY2
from ._make import NOTHING, Factory, pipe
if not PY2:
import inspect
import typing
__all__ = [
"pipe",
"optional",
"default_if_none",
]
def optional(converter):
"""
A converter that allows an attribute to be optional. An optional attribute
is one which can be set to ``None``.
Type annotations will be inferred from the wrapped converter's, if it
has any.
:param callable converter: the converter that is used for non-``None``
values.
.. versionadded:: 17.1.0
"""
def optional_converter(val):
if val is None:
return None
return converter(val)
if not PY2:
sig = None
try:
sig = inspect.signature(converter)
except (ValueError, TypeError): # inspect failed
pass
if sig:
params = list(sig.parameters.values())
if params and params[0].annotation is not inspect.Parameter.empty:
optional_converter.__annotations__["val"] = typing.Optional[
params[0].annotation
]
if sig.return_annotation is not inspect.Signature.empty:
optional_converter.__annotations__["return"] = typing.Optional[
sig.return_annotation
]
return optional_converter
def default_if_none(default=NOTHING, factory=None):
"""
A converter that allows to replace ``None`` values by *default* or the
result of *factory*.
:param default: Value to be used if ``None`` is passed. Passing an instance
of `attr.Factory` is supported, however the ``takes_self`` option
is *not*.
:param callable factory: A callable that takes no parameters whose result
is used if ``None`` is passed.
:raises TypeError: If **neither** *default* or *factory* is passed.
:raises TypeError: If **both** *default* and *factory* are passed.
:raises ValueError: If an instance of `attr.Factory` is passed with
``takes_self=True``.
.. versionadded:: 18.2.0
"""
if default is NOTHING and factory is None:
raise TypeError("Must pass either `default` or `factory`.")
if default is not NOTHING and factory is not None:
raise TypeError(
"Must pass either `default` or `factory` but not both."
)
if factory is not None:
default = Factory(factory)
if isinstance(default, Factory):
if default.takes_self:
raise ValueError(
"`takes_self` is not supported by default_if_none."
)
def default_if_none_converter(val):
if val is not None:
return val
return default.factory()
else:
def default_if_none_converter(val):
if val is not None:
return val
return default
return default_if_none_converter

92
lib/spack/external/attr/exceptions.py vendored Normal file
View File

@@ -0,0 +1,92 @@
from __future__ import absolute_import, division, print_function
class FrozenError(AttributeError):
"""
A frozen/immutable instance or attribute have been attempted to be
modified.
It mirrors the behavior of ``namedtuples`` by using the same error message
and subclassing `AttributeError`.
.. versionadded:: 20.1.0
"""
msg = "can't set attribute"
args = [msg]
class FrozenInstanceError(FrozenError):
"""
A frozen instance has been attempted to be modified.
.. versionadded:: 16.1.0
"""
class FrozenAttributeError(FrozenError):
"""
A frozen attribute has been attempted to be modified.
.. versionadded:: 20.1.0
"""
class AttrsAttributeNotFoundError(ValueError):
"""
An ``attrs`` function couldn't find an attribute that the user asked for.
.. versionadded:: 16.2.0
"""
class NotAnAttrsClassError(ValueError):
"""
A non-``attrs`` class has been passed into an ``attrs`` function.
.. versionadded:: 16.2.0
"""
class DefaultAlreadySetError(RuntimeError):
"""
A default has been set using ``attr.ib()`` and is attempted to be reset
using the decorator.
.. versionadded:: 17.1.0
"""
class UnannotatedAttributeError(RuntimeError):
"""
A class with ``auto_attribs=True`` has an ``attr.ib()`` without a type
annotation.
.. versionadded:: 17.3.0
"""
class PythonTooOldError(RuntimeError):
"""
It was attempted to use an ``attrs`` feature that requires a newer Python
version.
.. versionadded:: 18.2.0
"""
class NotCallableError(TypeError):
"""
A ``attr.ib()`` requiring a callable has been set with a value
that is not callable.
.. versionadded:: 19.2.0
"""
def __init__(self, msg, value):
super(TypeError, self).__init__(msg, value)
self.msg = msg
self.value = value
def __str__(self):
return str(self.msg)

52
lib/spack/external/attr/filters.py vendored Normal file
View File

@@ -0,0 +1,52 @@
"""
Commonly useful filters for `attr.asdict`.
"""
from __future__ import absolute_import, division, print_function
from ._compat import isclass
from ._make import Attribute
def _split_what(what):
"""
Returns a tuple of `frozenset`s of classes and attributes.
"""
return (
frozenset(cls for cls in what if isclass(cls)),
frozenset(cls for cls in what if isinstance(cls, Attribute)),
)
def include(*what):
"""
Whitelist *what*.
:param what: What to whitelist.
:type what: `list` of `type` or `attr.Attribute`\\ s
:rtype: `callable`
"""
cls, attrs = _split_what(what)
def include_(attribute, value):
return value.__class__ in cls or attribute in attrs
return include_
def exclude(*what):
"""
Blacklist *what*.
:param what: What to blacklist.
:type what: `list` of classes or `attr.Attribute`\\ s.
:rtype: `callable`
"""
cls, attrs = _split_what(what)
def exclude_(attribute, value):
return value.__class__ not in cls and attribute not in attrs
return exclude_

77
lib/spack/external/attr/setters.py vendored Normal file
View File

@@ -0,0 +1,77 @@
"""
Commonly used hooks for on_setattr.
"""
from __future__ import absolute_import, division, print_function
from . import _config
from .exceptions import FrozenAttributeError
def pipe(*setters):
"""
Run all *setters* and return the return value of the last one.
.. versionadded:: 20.1.0
"""
def wrapped_pipe(instance, attrib, new_value):
rv = new_value
for setter in setters:
rv = setter(instance, attrib, rv)
return rv
return wrapped_pipe
def frozen(_, __, ___):
"""
Prevent an attribute to be modified.
.. versionadded:: 20.1.0
"""
raise FrozenAttributeError()
def validate(instance, attrib, new_value):
"""
Run *attrib*'s validator on *new_value* if it has one.
.. versionadded:: 20.1.0
"""
if _config._run_validators is False:
return new_value
v = attrib.validator
if not v:
return new_value
v(instance, attrib, new_value)
return new_value
def convert(instance, attrib, new_value):
"""
Run *attrib*'s converter -- if it has one -- on *new_value* and return the
result.
.. versionadded:: 20.1.0
"""
c = attrib.converter
if c:
return c(new_value)
return new_value
NO_OP = object()
"""
Sentinel for disabling class-wide *on_setattr* hooks for certain attributes.
Does not work in `pipe` or within lists.
.. versionadded:: 20.1.0
"""

379
lib/spack/external/attr/validators.py vendored Normal file
View File

@@ -0,0 +1,379 @@
"""
Commonly useful validators.
"""
from __future__ import absolute_import, division, print_function
import re
from ._make import _AndValidator, and_, attrib, attrs
from .exceptions import NotCallableError
__all__ = [
"and_",
"deep_iterable",
"deep_mapping",
"in_",
"instance_of",
"is_callable",
"matches_re",
"optional",
"provides",
]
@attrs(repr=False, slots=True, hash=True)
class _InstanceOfValidator(object):
type = attrib()
def __call__(self, inst, attr, value):
"""
We use a callable class to be able to change the ``__repr__``.
"""
if not isinstance(value, self.type):
raise TypeError(
"'{name}' must be {type!r} (got {value!r} that is a "
"{actual!r}).".format(
name=attr.name,
type=self.type,
actual=value.__class__,
value=value,
),
attr,
self.type,
value,
)
def __repr__(self):
return "<instance_of validator for type {type!r}>".format(
type=self.type
)
def instance_of(type):
"""
A validator that raises a `TypeError` if the initializer is called
with a wrong type for this particular attribute (checks are performed using
`isinstance` therefore it's also valid to pass a tuple of types).
:param type: The type to check for.
:type type: type or tuple of types
:raises TypeError: With a human readable error message, the attribute
(of type `attr.Attribute`), the expected type, and the value it
got.
"""
return _InstanceOfValidator(type)
@attrs(repr=False, frozen=True, slots=True)
class _MatchesReValidator(object):
regex = attrib()
flags = attrib()
match_func = attrib()
def __call__(self, inst, attr, value):
"""
We use a callable class to be able to change the ``__repr__``.
"""
if not self.match_func(value):
raise ValueError(
"'{name}' must match regex {regex!r}"
" ({value!r} doesn't)".format(
name=attr.name, regex=self.regex.pattern, value=value
),
attr,
self.regex,
value,
)
def __repr__(self):
return "<matches_re validator for pattern {regex!r}>".format(
regex=self.regex
)
def matches_re(regex, flags=0, func=None):
r"""
A validator that raises `ValueError` if the initializer is called
with a string that doesn't match *regex*.
:param str regex: a regex string to match against
:param int flags: flags that will be passed to the underlying re function
(default 0)
:param callable func: which underlying `re` function to call (options
are `re.fullmatch`, `re.search`, `re.match`, default
is ``None`` which means either `re.fullmatch` or an emulation of
it on Python 2). For performance reasons, they won't be used directly
but on a pre-`re.compile`\ ed pattern.
.. versionadded:: 19.2.0
"""
fullmatch = getattr(re, "fullmatch", None)
valid_funcs = (fullmatch, None, re.search, re.match)
if func not in valid_funcs:
raise ValueError(
"'func' must be one of %s."
% (
", ".join(
sorted(
e and e.__name__ or "None" for e in set(valid_funcs)
)
),
)
)
pattern = re.compile(regex, flags)
if func is re.match:
match_func = pattern.match
elif func is re.search:
match_func = pattern.search
else:
if fullmatch:
match_func = pattern.fullmatch
else:
pattern = re.compile(r"(?:{})\Z".format(regex), flags)
match_func = pattern.match
return _MatchesReValidator(pattern, flags, match_func)
@attrs(repr=False, slots=True, hash=True)
class _ProvidesValidator(object):
interface = attrib()
def __call__(self, inst, attr, value):
"""
We use a callable class to be able to change the ``__repr__``.
"""
if not self.interface.providedBy(value):
raise TypeError(
"'{name}' must provide {interface!r} which {value!r} "
"doesn't.".format(
name=attr.name, interface=self.interface, value=value
),
attr,
self.interface,
value,
)
def __repr__(self):
return "<provides validator for interface {interface!r}>".format(
interface=self.interface
)
def provides(interface):
"""
A validator that raises a `TypeError` if the initializer is called
with an object that does not provide the requested *interface* (checks are
performed using ``interface.providedBy(value)`` (see `zope.interface
<https://zopeinterface.readthedocs.io/en/latest/>`_).
:param interface: The interface to check for.
:type interface: ``zope.interface.Interface``
:raises TypeError: With a human readable error message, the attribute
(of type `attr.Attribute`), the expected interface, and the
value it got.
"""
return _ProvidesValidator(interface)
@attrs(repr=False, slots=True, hash=True)
class _OptionalValidator(object):
validator = attrib()
def __call__(self, inst, attr, value):
if value is None:
return
self.validator(inst, attr, value)
def __repr__(self):
return "<optional validator for {what} or None>".format(
what=repr(self.validator)
)
def optional(validator):
"""
A validator that makes an attribute optional. An optional attribute is one
which can be set to ``None`` in addition to satisfying the requirements of
the sub-validator.
:param validator: A validator (or a list of validators) that is used for
non-``None`` values.
:type validator: callable or `list` of callables.
.. versionadded:: 15.1.0
.. versionchanged:: 17.1.0 *validator* can be a list of validators.
"""
if isinstance(validator, list):
return _OptionalValidator(_AndValidator(validator))
return _OptionalValidator(validator)
@attrs(repr=False, slots=True, hash=True)
class _InValidator(object):
options = attrib()
def __call__(self, inst, attr, value):
try:
in_options = value in self.options
except TypeError: # e.g. `1 in "abc"`
in_options = False
if not in_options:
raise ValueError(
"'{name}' must be in {options!r} (got {value!r})".format(
name=attr.name, options=self.options, value=value
)
)
def __repr__(self):
return "<in_ validator with options {options!r}>".format(
options=self.options
)
def in_(options):
"""
A validator that raises a `ValueError` if the initializer is called
with a value that does not belong in the options provided. The check is
performed using ``value in options``.
:param options: Allowed options.
:type options: list, tuple, `enum.Enum`, ...
:raises ValueError: With a human readable error message, the attribute (of
type `attr.Attribute`), the expected options, and the value it
got.
.. versionadded:: 17.1.0
"""
return _InValidator(options)
@attrs(repr=False, slots=False, hash=True)
class _IsCallableValidator(object):
def __call__(self, inst, attr, value):
"""
We use a callable class to be able to change the ``__repr__``.
"""
if not callable(value):
message = (
"'{name}' must be callable "
"(got {value!r} that is a {actual!r})."
)
raise NotCallableError(
msg=message.format(
name=attr.name, value=value, actual=value.__class__
),
value=value,
)
def __repr__(self):
return "<is_callable validator>"
def is_callable():
"""
A validator that raises a `attr.exceptions.NotCallableError` if the
initializer is called with a value for this particular attribute
that is not callable.
.. versionadded:: 19.1.0
:raises `attr.exceptions.NotCallableError`: With a human readable error
message containing the attribute (`attr.Attribute`) name,
and the value it got.
"""
return _IsCallableValidator()
@attrs(repr=False, slots=True, hash=True)
class _DeepIterable(object):
member_validator = attrib(validator=is_callable())
iterable_validator = attrib(
default=None, validator=optional(is_callable())
)
def __call__(self, inst, attr, value):
"""
We use a callable class to be able to change the ``__repr__``.
"""
if self.iterable_validator is not None:
self.iterable_validator(inst, attr, value)
for member in value:
self.member_validator(inst, attr, member)
def __repr__(self):
iterable_identifier = (
""
if self.iterable_validator is None
else " {iterable!r}".format(iterable=self.iterable_validator)
)
return (
"<deep_iterable validator for{iterable_identifier}"
" iterables of {member!r}>"
).format(
iterable_identifier=iterable_identifier,
member=self.member_validator,
)
def deep_iterable(member_validator, iterable_validator=None):
"""
A validator that performs deep validation of an iterable.
:param member_validator: Validator to apply to iterable members
:param iterable_validator: Validator to apply to iterable itself
(optional)
.. versionadded:: 19.1.0
:raises TypeError: if any sub-validators fail
"""
return _DeepIterable(member_validator, iterable_validator)
@attrs(repr=False, slots=True, hash=True)
class _DeepMapping(object):
key_validator = attrib(validator=is_callable())
value_validator = attrib(validator=is_callable())
mapping_validator = attrib(default=None, validator=optional(is_callable()))
def __call__(self, inst, attr, value):
"""
We use a callable class to be able to change the ``__repr__``.
"""
if self.mapping_validator is not None:
self.mapping_validator(inst, attr, value)
for key in value:
self.key_validator(inst, attr, key)
self.value_validator(inst, attr, value[key])
def __repr__(self):
return (
"<deep_mapping validator for objects mapping {key!r} to {value!r}>"
).format(key=self.key_validator, value=self.value_validator)
def deep_mapping(key_validator, value_validator, mapping_validator=None):
"""
A validator that performs deep validation of a dictionary.
:param key_validator: Validator to apply to dictionary keys
:param value_validator: Validator to apply to dictionary values
:param mapping_validator: Validator to apply to top-level mapping
attribute (optional)
.. versionadded:: 19.1.0
:raises TypeError: if any sub-validators fail
"""
return _DeepMapping(key_validator, value_validator, mapping_validator)

View File

@@ -150,8 +150,6 @@
": note",
" ok",
"Note:",
"makefile:",
"Makefile:",
":[ \\t]+Where:",
"[^ :]:[0-9]+: Warning",
"------ Build started: .* ------",
@@ -189,8 +187,6 @@
"/usr/.*/X11/XResource\\.h:[0-9]+: war.*: ANSI C\\+\\+ forbids declaration",
"WARNING 84 :",
"WARNING 47 :",
"makefile:",
"Makefile:",
"warning: Clock skew detected. Your build may be incomplete.",
"/usr/openwin/include/GL/[^:]+:",
"bind_at_load",

File diff suppressed because it is too large Load Diff

View File

@@ -1,47 +0,0 @@
#
# Backport of Python 2.7's total_ordering.
#
def total_ordering(cls):
"""Class decorator that fills in missing ordering methods"""
convert = {
'__lt__': [('__gt__', lambda self, other: not (self < other or self == other)),
('__le__', lambda self, other: self < other or self == other),
('__ge__', lambda self, other: not self < other)],
'__le__': [('__ge__', lambda self, other: not self <= other or self == other),
('__lt__', lambda self, other: self <= other and not self == other),
('__gt__', lambda self, other: not self <= other)],
'__gt__': [('__lt__', lambda self, other: not (self > other or self == other)),
('__ge__', lambda self, other: self > other or self == other),
('__le__', lambda self, other: not self > other)],
'__ge__': [('__le__', lambda self, other: (not self >= other) or self == other),
('__gt__', lambda self, other: self >= other and not self == other),
('__lt__', lambda self, other: not self >= other)]
}
roots = set(dir(cls)) & set(convert)
if not roots:
raise ValueError('must define at least one ordering operation: < > <= >=')
root = max(roots) # prefer __lt__ to __le__ to __gt__ to __ge__
for opname, opfunc in convert[root]:
if opname not in roots:
opfunc.__name__ = opname
opfunc.__doc__ = getattr(int, opname).__doc__
setattr(cls, opname, opfunc)
return cls
@total_ordering
class reverse_order(object):
"""Helper for creating key functions.
This is a wrapper that inverts the sense of the natural
comparisons on the object.
"""
def __init__(self, value):
self.value = value
def __eq__(self, other):
return other.value == self.value
def __lt__(self, other):
return other.value < self.value

28
lib/spack/external/jinja2/LICENSE.rst vendored Normal file
View File

@@ -0,0 +1,28 @@
Copyright 2007 Pallets
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View File

@@ -1,83 +1,44 @@
# -*- coding: utf-8 -*-
"""Jinja is a template engine written in pure Python. It provides a
non-XML syntax that supports inline expressions and an optional
sandboxed environment.
"""
jinja2
~~~~~~
from markupsafe import escape
from markupsafe import Markup
Jinja2 is a template engine written in pure Python. It provides a
Django inspired non-XML syntax but supports inline expressions and
an optional sandboxed environment.
from .bccache import BytecodeCache
from .bccache import FileSystemBytecodeCache
from .bccache import MemcachedBytecodeCache
from .environment import Environment
from .environment import Template
from .exceptions import TemplateAssertionError
from .exceptions import TemplateError
from .exceptions import TemplateNotFound
from .exceptions import TemplateRuntimeError
from .exceptions import TemplatesNotFound
from .exceptions import TemplateSyntaxError
from .exceptions import UndefinedError
from .filters import contextfilter
from .filters import environmentfilter
from .filters import evalcontextfilter
from .loaders import BaseLoader
from .loaders import ChoiceLoader
from .loaders import DictLoader
from .loaders import FileSystemLoader
from .loaders import FunctionLoader
from .loaders import ModuleLoader
from .loaders import PackageLoader
from .loaders import PrefixLoader
from .runtime import ChainableUndefined
from .runtime import DebugUndefined
from .runtime import make_logging_undefined
from .runtime import StrictUndefined
from .runtime import Undefined
from .utils import clear_caches
from .utils import contextfunction
from .utils import environmentfunction
from .utils import evalcontextfunction
from .utils import is_undefined
from .utils import select_autoescape
Nutshell
--------
Here a small example of a Jinja2 template::
{% extends 'base.html' %}
{% block title %}Memberlist{% endblock %}
{% block content %}
<ul>
{% for user in users %}
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
</ul>
{% endblock %}
:copyright: (c) 2017 by the Jinja Team.
:license: BSD, see LICENSE for more details.
"""
__docformat__ = 'restructuredtext en'
__version__ = '2.10'
# high level interface
from jinja2.environment import Environment, Template
# loaders
from jinja2.loaders import BaseLoader, FileSystemLoader, PackageLoader, \
DictLoader, FunctionLoader, PrefixLoader, ChoiceLoader, \
ModuleLoader
# bytecode caches
from jinja2.bccache import BytecodeCache, FileSystemBytecodeCache, \
MemcachedBytecodeCache
# undefined types
from jinja2.runtime import Undefined, DebugUndefined, StrictUndefined, \
make_logging_undefined
# exceptions
from jinja2.exceptions import TemplateError, UndefinedError, \
TemplateNotFound, TemplatesNotFound, TemplateSyntaxError, \
TemplateAssertionError, TemplateRuntimeError
# decorators and public utilities
from jinja2.filters import environmentfilter, contextfilter, \
evalcontextfilter
from jinja2.utils import Markup, escape, clear_caches, \
environmentfunction, evalcontextfunction, contextfunction, \
is_undefined, select_autoescape
__all__ = [
'Environment', 'Template', 'BaseLoader', 'FileSystemLoader',
'PackageLoader', 'DictLoader', 'FunctionLoader', 'PrefixLoader',
'ChoiceLoader', 'BytecodeCache', 'FileSystemBytecodeCache',
'MemcachedBytecodeCache', 'Undefined', 'DebugUndefined',
'StrictUndefined', 'TemplateError', 'UndefinedError', 'TemplateNotFound',
'TemplatesNotFound', 'TemplateSyntaxError', 'TemplateAssertionError',
'TemplateRuntimeError',
'ModuleLoader', 'environmentfilter', 'contextfilter', 'Markup', 'escape',
'environmentfunction', 'contextfunction', 'clear_caches', 'is_undefined',
'evalcontextfilter', 'evalcontextfunction', 'make_logging_undefined',
'select_autoescape',
]
def _patch_async():
from jinja2.utils import have_async_gen
if have_async_gen:
from jinja2.asyncsupport import patch_all
patch_all()
_patch_async()
del _patch_async
__version__ = "2.11.3"

View File

@@ -1,22 +1,12 @@
# -*- coding: utf-8 -*-
"""
jinja2._compat
~~~~~~~~~~~~~~
Some py2/py3 compatibility support based on a stripped down
version of six so we don't have to depend on a specific version
of it.
:copyright: Copyright 2013 by the Jinja team, see AUTHORS.
:license: BSD, see LICENSE for details.
"""
# flake8: noqa
import marshal
import sys
PY2 = sys.version_info[0] == 2
PYPY = hasattr(sys, 'pypy_translation_info')
PYPY = hasattr(sys, "pypy_translation_info")
_identity = lambda x: x
if not PY2:
unichr = chr
range_type = range
@@ -30,6 +20,7 @@
import pickle
from io import BytesIO, StringIO
NativeStringIO = StringIO
def reraise(tp, value, tb=None):
@@ -46,6 +37,9 @@ def reraise(tp, value, tb=None):
implements_to_string = _identity
encode_filename = _identity
marshal_dump = marshal.dump
marshal_load = marshal.load
else:
unichr = unichr
text_type = unicode
@@ -59,11 +53,13 @@ def reraise(tp, value, tb=None):
import cPickle as pickle
from cStringIO import StringIO as BytesIO, StringIO
NativeStringIO = BytesIO
exec('def reraise(tp, value, tb=None):\n raise tp, value, tb')
exec("def reraise(tp, value, tb=None):\n raise tp, value, tb")
from itertools import imap, izip, ifilter
intern = intern
def implements_iterator(cls):
@@ -73,14 +69,25 @@ def implements_iterator(cls):
def implements_to_string(cls):
cls.__unicode__ = cls.__str__
cls.__str__ = lambda x: x.__unicode__().encode('utf-8')
cls.__str__ = lambda x: x.__unicode__().encode("utf-8")
return cls
def encode_filename(filename):
if isinstance(filename, unicode):
return filename.encode('utf-8')
return filename.encode("utf-8")
return filename
def marshal_dump(code, f):
if isinstance(f, file):
marshal.dump(code, f)
else:
f.write(marshal.dumps(code))
def marshal_load(f):
if isinstance(f, file):
return marshal.load(f)
return marshal.loads(f.read())
def with_metaclass(meta, *bases):
"""Create a base class with a metaclass."""
@@ -90,10 +97,36 @@ def with_metaclass(meta, *bases):
class metaclass(type):
def __new__(cls, name, this_bases, d):
return meta(name, bases, d)
return type.__new__(metaclass, 'temporary_class', (), {})
return type.__new__(metaclass, "temporary_class", (), {})
try:
from urllib.parse import quote_from_bytes as url_quote
except ImportError:
from urllib import quote as url_quote
try:
from collections import abc
except ImportError:
import collections as abc
try:
from os import fspath
except ImportError:
try:
from pathlib import PurePath
except ImportError:
PurePath = None
def fspath(path):
if hasattr(path, "__fspath__"):
return path.__fspath__()
# Python 3.5 doesn't have __fspath__ yet, use str.
if PurePath is not None and isinstance(path, PurePath):
return str(path)
return path

View File

@@ -1,2 +1,6 @@
import re
# generated by scripts/generate_identifier_pattern.py
pattern = '·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఃా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑅳𑄴𑆀-𑆂𑆳-𑇊𑇀-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯'
pattern = re.compile(
r"[\w·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఃా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഁ-ഃാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪽ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳸᳹᷀-᷵᷻-᷿‿⁀⁔⃐-⃥⃜⃡-⃰℘℮⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯︳︴﹍-﹏_𐇽𐋠𐍶-𐍺𐨁-𐨃𐨅𐨆𐨌-𐨏𐨸-𐨿𐨺𐫦𐫥𑀀-𑀂𑀸-𑁆𑁿-𑂂𑂰-𑂺𑄀-𑄂𑄧-𑅳𑄴𑆀-𑆂𑆳-𑇊𑇀-𑇌𑈬-𑈷𑈾𑋟-𑋪𑌀-𑌃𑌼𑌾-𑍄𑍇𑍈𑍋-𑍍𑍗𑍢𑍣𑍦-𑍬𑍰-𑍴𑐵-𑑆𑒰-𑓃𑖯-𑖵𑖸-𑗀𑗜𑗝𑘰-𑙀𑚫-𑚷𑜝-𑜫𑰯-𑰶𑰸-𑰿𑲒-𑲧𑲩-𑲶𖫰-𖫴𖬰-𖬶𖽑-𖽾𖾏-𖾒𛲝𛲞𝅥-𝅩𝅭-𝅲𝅻-𝆂𝆅-𝆋𝆪-𝆭𝉂-𝉄𝨀-𝨶𝨻-𝩬𝩵𝪄𝪛-𝪟𝪡-𝪯𞀀-𞀆𞀈-𞀘𞀛-𞀡𞀣𞀤𞀦-𞣐𞀪-𞣖𞥄-𞥊󠄀-󠇯]+" # noqa: B950
)

View File

@@ -1,12 +1,13 @@
from functools import wraps
from jinja2.asyncsupport import auto_aiter
from jinja2 import filters
from . import filters
from .asyncsupport import auto_aiter
from .asyncsupport import auto_await
async def auto_to_seq(value):
seq = []
if hasattr(value, '__aiter__'):
if hasattr(value, "__aiter__"):
async for item in value:
seq.append(item)
else:
@@ -16,8 +17,7 @@ async def auto_to_seq(value):
async def async_select_or_reject(args, kwargs, modfunc, lookup_attr):
seq, func = filters.prepare_select_or_reject(
args, kwargs, modfunc, lookup_attr)
seq, func = filters.prepare_select_or_reject(args, kwargs, modfunc, lookup_attr)
if seq:
async for item in auto_aiter(seq):
if func(item):
@@ -26,14 +26,19 @@ async def async_select_or_reject(args, kwargs, modfunc, lookup_attr):
def dualfilter(normal_filter, async_filter):
wrap_evalctx = False
if getattr(normal_filter, 'environmentfilter', False):
is_async = lambda args: args[0].is_async
if getattr(normal_filter, "environmentfilter", False) is True:
def is_async(args):
return args[0].is_async
wrap_evalctx = False
else:
if not getattr(normal_filter, 'evalcontextfilter', False) and \
not getattr(normal_filter, 'contextfilter', False):
wrap_evalctx = True
is_async = lambda args: args[0].environment.is_async
has_evalctxfilter = getattr(normal_filter, "evalcontextfilter", False) is True
has_ctxfilter = getattr(normal_filter, "contextfilter", False) is True
wrap_evalctx = not has_evalctxfilter and not has_ctxfilter
def is_async(args):
return args[0].environment.is_async
@wraps(normal_filter)
def wrapper(*args, **kwargs):
@@ -55,6 +60,7 @@ def wrapper(*args, **kwargs):
def asyncfiltervariant(original):
def decorator(f):
return dualfilter(original, f)
return decorator
@@ -63,19 +69,22 @@ async def do_first(environment, seq):
try:
return await auto_aiter(seq).__anext__()
except StopAsyncIteration:
return environment.undefined('No first item, sequence was empty.')
return environment.undefined("No first item, sequence was empty.")
@asyncfiltervariant(filters.do_groupby)
async def do_groupby(environment, value, attribute):
expr = filters.make_attrgetter(environment, attribute)
return [filters._GroupTuple(key, await auto_to_seq(values))
for key, values in filters.groupby(sorted(
await auto_to_seq(value), key=expr), expr)]
return [
filters._GroupTuple(key, await auto_to_seq(values))
for key, values in filters.groupby(
sorted(await auto_to_seq(value), key=expr), expr
)
]
@asyncfiltervariant(filters.do_join)
async def do_join(eval_ctx, value, d=u'', attribute=None):
async def do_join(eval_ctx, value, d=u"", attribute=None):
return filters.do_join(eval_ctx, await auto_to_seq(value), d, attribute)
@@ -109,7 +118,7 @@ async def do_map(*args, **kwargs):
seq, func = filters.prepare_map(args, kwargs)
if seq:
async for item in auto_aiter(seq):
yield func(item)
yield await auto_await(func(item))
@asyncfiltervariant(filters.do_sum)
@@ -118,7 +127,10 @@ async def do_sum(environment, iterable, attribute=None, start=0):
if attribute is not None:
func = filters.make_attrgetter(environment, attribute)
else:
func = lambda x: x
def func(x):
return x
async for item in auto_aiter(iterable):
rv += func(item)
return rv
@@ -130,17 +142,17 @@ async def do_slice(value, slices, fill_with=None):
ASYNC_FILTERS = {
'first': do_first,
'groupby': do_groupby,
'join': do_join,
'list': do_list,
"first": do_first,
"groupby": do_groupby,
"join": do_join,
"list": do_list,
# we intentionally do not support do_last because that would be
# ridiculous
'reject': do_reject,
'rejectattr': do_rejectattr,
'map': do_map,
'select': do_select,
'selectattr': do_selectattr,
'sum': do_sum,
'slice': do_slice,
"reject": do_reject,
"rejectattr": do_rejectattr,
"map": do_map,
"select": do_select,
"selectattr": do_selectattr,
"sum": do_sum,
"slice": do_slice,
}

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