Compare commits

..

4055 Commits

Author SHA1 Message Date
Danny McClanahan
ed26276e45 update ffmpeg to avoid building for non-web environments 2022-05-05 20:50:50 -04:00
Danny McClanahan
1b793c0b72 update ffmpeg package to auto-detect variants for emscripten 2022-05-03 23:51:21 -04:00
Danny McClanahan
0af9331015 fix zlib and bzip2 2022-04-28 00:42:33 -04:00
Danny McClanahan
da423cdbac fix npm docstring 2022-04-24 16:58:33 -04:00
Danny McClanahan
fe0323f7a3 default -Wl,--allow-multiple-definition to on 2022-04-23 15:32:40 -04:00
Danny McClanahan
0c3d3afb01 subjective change -- prefer ninja over unix makefiles in cmake 2022-04-23 14:44:46 -04:00
Danny McClanahan
f4b094834a make ffmpeg build with emscripten!!!!!! 2022-04-23 14:44:45 -04:00
Danny McClanahan
2170120f40 fix emscripten and llvm to be able to produce runnable binaries
fix binaryen for emscripten
2022-04-23 14:44:45 -04:00
Danny McClanahan
58a71a5307 yasm bootstrap is no longer necessary 2022-04-23 14:44:45 -04:00
Danny McClanahan
203cebb081 make zlib and other makefile packages able to use emscripten
- also, bzip2 fix
2022-04-23 14:44:37 -04:00
Danny McClanahan
13362f6c86 make emscripten test work 2022-04-23 03:56:14 -04:00
Danny McClanahan
29dbae0c20 add emscripten package 2022-04-23 03:29:54 -04:00
Danny McClanahan
4f2b9ca6dc add several new variants to llvm to make it build on alpine 2022-04-23 03:29:54 -04:00
Danny McClanahan
bf50833d58 add note about python version necessary to install node-js 2022-04-23 03:29:54 -04:00
Danny McClanahan
5adf17f8a3 add binaryen package 2022-04-23 03:29:54 -04:00
Danny McClanahan
856dee5b0a add very hacky compatibility layer for npm on alpine 2022-04-23 03:29:53 -04:00
Danny McClanahan
9baf586a2e fix python2 build dep for node-js 2022-04-23 03:29:53 -04:00
Danny McClanahan
d38310fa02 not working -- look at nix emscripten support first before further work 2022-04-23 03:29:53 -04:00
Danny McClanahan
cc87de83cd make emconfigure and emcmake work, kinda 2022-04-23 03:29:53 -04:00
Danny McClanahan
187c0f1d04 fix doc issue with executables regex 2022-04-23 03:29:53 -04:00
Danny McClanahan
1a0b11ca43 random unrelated change 2022-04-23 03:29:53 -04:00
Danny McClanahan
982f883bcc rename emcc to emscripten 2022-04-23 03:29:52 -04:00
Danny McClanahan
2487a75422 implement spack external find for node-js 2022-04-23 03:29:52 -04:00
Danny McClanahan
b9bedba68c make emsdk use spack's node and llvm instead of downloading its own 2022-04-23 03:29:52 -04:00
Danny McClanahan
620575f505 add emscripten compiler emcc, which can't compile executables (yet!) 2022-04-23 03:29:52 -04:00
Danny McClanahan
43eaa713a3 add emsdk package 2022-04-23 03:29:52 -04:00
Danny McClanahan
e4f602632c add gnu plotutils 2022-04-23 03:27:53 -04:00
Danny McClanahan
5fe1a036a0 fix gsl build with openblas 2022-04-23 03:27:53 -04:00
eugeneswalker
58ee164777 hiop +rocm: add amdgpu_target for deps (#30184)
* hiop +rocm: add amdgpu_target for deps

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

Perfect! Thanks!

Co-authored-by: Asher Mancinelli <ashermancinelli@gmail.com>

* don't use f-string, not compatible with py 2

Co-authored-by: Asher Mancinelli <ashermancinelli@gmail.com>
2022-04-22 16:26:38 -07:00
Bernd Riederer
78d87c71f6 Uncrustify package: add versions up to 0.74 (#27621) 2022-04-22 21:43:44 +00:00
eugeneswalker
9633145374 exago: depend on petsc@3.16:3.16 when @1.3.0: (#30238)
* exago: depend on petsc@3.16.0:3.16.99 when @1.3.0:

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

Co-authored-by: Cameron Rutherford <cameron.rutherford@me.com>

* constrain petsc to @3.16.0:3.16

Co-authored-by: Cameron Rutherford <cameron.rutherford@me.com>
2022-04-22 14:13:22 -07:00
Harmen Stoppels
29d96633ee openssl: enable nvhpc build by disabling asm (#30248) 2022-04-22 14:34:41 -06:00
Peter Scheibel
267da78559 Package-level submodule attribute: support explicit versions (#30085) 2022-04-22 11:02:17 -07:00
Andrea Valenzuela
013a0a04a4 Add checksum for jupyter-console@6.4.3 (#30156)
* Add checksum for jupyter-console@6.4.3

* Update py-jupyter-console dependency

* Extend jupyter-client@7.0.0 dependency to newer versions

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

Co-authored-by: aandvalenzuela <andrea.valenzuela.ramirez@cern.ch>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-22 16:42:49 +00:00
Ken Raffenetti
a6a7c3ce88 mpich: Add CUDA variant (#29901)
CUDA device memory is supported with the ch4 device.

Update provides to include MPI-4.0 functionality
2022-04-22 17:02:27 +02:00
haralmha
960b48b613 py-pystan: Add new package (#29772)
* py-pystan: Add new package

* Fix dependencies

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

* Add run dependency to py-setuptools

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

* Add py-httpstan@4.7.2 and py-pysimdjson@3.2.0

* Dependency

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-22 09:56:07 -05:00
Michael Kuhn
84bb8e316d fix pkgconfig dependencies (#30246)
`pkgconfig` is the correct virtual dependency, `pkg-config` and
`pkgconf` are providers of it.
2022-04-22 07:34:30 -06:00
Harmen Stoppels
010068c50a netcdf-fortran: add v4.5.4 (#30242) 2022-04-22 14:30:58 +02:00
Harmen Stoppels
a7ebdd2d10 osu-micro-benchmarks: set NVCCFLAGS (#30221) 2022-04-22 13:59:26 +02:00
Tom Scogland
62553e7521 openssl: exclude more dangerous environment variables (#30208)
* pkg/openssl: blacklist more dangerous environment variables

* fix style
2022-04-22 04:51:18 -07:00
Massimiliano Culpo
f961a11187 Update Dockerfiles and images for Spack v0.18.0 (#30216)
This PR updates the list of images we build nightly, deprecating 
Ubuntu 16.04 and CentOS 8 and adding Ubuntu 20.04, Ubuntu 22.04
and CentOS Stream. It also removes a lot of duplication by generating
the Dockerfiles during the CI workflow and uploading them as artifacts
for later inspection or reuse.
2022-04-22 08:51:26 +02:00
Ethan Stam
b00983439f py-cinemasci: new version 1.7.0 (#30193)
* py-cinemasci: new version 1.7.0

* remove preferred version

* add py-pyyaml dependency
2022-04-21 21:34:26 -06:00
Thomas Madlener
5fe4ac2b05 lcio: install more missing files for python bindings (#29739) 2022-04-21 20:30:28 -06:00
Alex Hedges
c60ded8ccc findutils: new version 4.9.0 (#30170) 2022-04-22 00:15:20 +02:00
Michael Kuhn
ce7c8b44d5 gcc: add 11.3.0 (#30226) 2022-04-21 23:22:52 +02:00
eugeneswalker
4817e4c80c exago: use hipcc for +rocm builds (#30232) 2022-04-21 14:22:41 -06:00
eugeneswalker
111aeeb0ae exago: depends on pkgconfig (#30231) 2022-04-21 13:21:16 -07:00
Erik Schnetter
3a70df9f64 fftw: Link explicitly against -lmpi (#29279)
* fftw: Link explicitly against `-lmpi`

Closes https://github.com/spack/spack/issues/29224.

* Generalize MPI flags

Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>

* Add platform guard

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Dom Heinzeller <dom.heinzeller@icloud.com>
2022-04-21 13:14:21 -06:00
Scott McMillan
616a8eebcd perl: fix issues when compiling 5.34 with nvhpc compilers (#30110)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2022-04-21 11:10:46 -06:00
Harmen Stoppels
ac9bd3d72d openssh: no pie for %nvhpc (#30189) 2022-04-21 11:21:35 +02:00
Tim Haines
7118602251 boost: add v1.79.0 (#30137) 2022-04-21 01:09:23 -05:00
marcost2
7ebce6191a nvtop: add versions up to v2.0.1, rework package recipe (#30180) 2022-04-21 07:58:37 +02:00
Michael Kuhn
03832a0b0f meson: add 0.62.0 and 0.61.4 (#30201) 2022-04-20 21:26:38 -06:00
Geoffrey Oxberry
b2534171be ipopt: update urls to use github instead of coin-or.org, add version 3.14.5, add maintainer (#30207)
* ipopt: add goxberry as maintainer

This commit adds 'goxberry' (me, Geoff Oxberry) as a maintainer of the
Ipopt Spack package.

* ipopt: use github url instead of coin-or.org url

This commit changes the package URL for Ipopt from one containing
`coin-or.org` to one containing `github.com`. The rationale for
using `github.com` is as follows:

- The COIN-OR webpage now directs users interested in Ipopt source to
  GitHub.

- Ipopt used to have a COIN-OR project homepage actually hosted on
  coin-or.org using an SVN-Trac web page. A link to this project
  homepage no longer appears within the "Projects" section of
  COIN-OR's website.

- COIN-OR issued a 2021-12-15 post on the News section of its web site
  (see https://www.coin-or.org/news/) that discusses the impact that
  lack of financial support has on COIN-OR software maintenance. It
  seems reasonable to suspect that the GitHub project is likely to
  outlast the COIN-OR web site.

The sha256 hashes for ipopt@:3.12 downloaded from GitHub differ from
the corresponding COIN-OR versions, so these hashes are also updated.

* ipopt 3.14.5: add new version

This commit adds the latest version of Ipopt, 3.14.5, to the Ipopt
Spack package.
2022-04-20 19:18:55 -07:00
Tom Scogland
4905a71d6d refactor powershell setup to make it sourceable (#29987)
* refactor powershell setup to make it sourceable

* only set editor if it is unset

* change directory to spack root in subshell

* Update share/spack/setup-env.ps1

Co-authored-by: John W. Parent <45471568+johnwparent@users.noreply.github.com>

Co-authored-by: John W. Parent <45471568+johnwparent@users.noreply.github.com>
2022-04-20 17:11:44 -07:00
eugeneswalker
0abc4564ae hiop +rocm: use hipcc for cxx (#30182)
* hiop +rocm: use hipcc for cxx

* move CMAKE_CXX_COMPILER arg for +rocm case to existing block
2022-04-20 13:39:19 -07:00
eugeneswalker
13d05848ad ipopt: use url_for_version to handle different urls for 3.13.4 onwards (#30197)
* ipopt: use url_for_version to handle different urls for 3.13.4 onwards

* ipopt: new versions: 3.14.1, 3.14.2, 3.14.3, 3.14.4

* fix indent
2022-04-20 13:38:21 -07:00
Giacomo Marciani
6f2f9653c5 [aws-parallelcluster] Fix maintainers (#30194) 2022-04-20 20:27:47 +02:00
Erik Schnetter
8556f83238 mpitrampoline: New version 4.0.0 (#30106) 2022-04-20 18:15:45 +02:00
haralmha
a717c5df40 py-httpstan: Add new package (#29770)
* py-httpstan: Add new package

* Fix dependencies

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

* Add run dependency to py-setuptools

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-20 11:07:43 -05:00
Wileam Y. Phan
3552cfac1a fpm: add dependency on git (#30158) 2022-04-20 09:54:50 -06:00
Alex Hedges
b792e08c15 openssh: new version 9.0p1 (#30172) 2022-04-20 09:39:22 -06:00
snehring
d1d86d68f1 casper: fix compilation errors on newer compilers (#30142) 2022-04-20 17:11:05 +02:00
Harmen Stoppels
974beb4ffc git: add 2.35.2 + deprecations (CVE-2022-24765) (#30040)
* git: add 2.35.2, explicit version(...)

git 2.35.2 fixes CVE-2022-24765 which seems to only affect Windows. But
nonetheless we should maybe set deprecated=True on older versions... The
restructure allows for that.

* deprecate over CVE-2022-24765
2022-04-20 07:22:20 -07:00
Harmen Stoppels
b7f8899d45 docs: add (config.yaml) to sections for faster lookup by config file (#30157) 2022-04-20 15:00:43 +02:00
Harmen Stoppels
e47ec07ffc ucx: fix simd_values (#30186) 2022-04-20 10:00:45 +00:00
Axel Huebl
778eee1579 WarpX 22.04+: Fix RZ Test (#30185)
In WarpX 22.04, we introduced the openPMD `thetaMode` for fields in
RZ geometry. That means we need to name the fields differently than
the reconstructured Cartesian slice that we default to in plotfiles.
2022-04-20 02:18:46 -06:00
Ken Raffenetti
a43a633b2a yaksa: add new package (#29877) 2022-04-20 09:56:02 +02:00
Asher Mancinelli
5e00dffe7f Add new hiop version, add ginkgo glu version (#30178) 2022-04-20 09:51:58 +02:00
Dylan Simon
7aa1fef506 ncurses: add query parameters to select wide/nowide; readline: use wide only (#30144)
* ncurses: add wide, nowide headers, libs query parameter options

* readline: only link with libncursesw

Needed for python to detect proper ncurses library #27369
2022-04-20 09:44:34 +02:00
Giacomo Marciani
2d94624d0a updated v2.11.6 (#30165) 2022-04-20 09:44:10 +02:00
Thomas Madlener
cc6cc4c7e5 dd4hep: Add latest version (#30164) 2022-04-20 09:43:54 +02:00
Mikael Simberg
943d463a2d Configure nvhpc GCC from Spack variables (#29769)
Alter the `install_components/install` script to pass the `-gcc $SPACK_CC`,
`-gpp $SPACK_CXX`, and `-g77 $SPACK_F77` flags to `makelocalrc`.  This
ensures that nvhpc is configured to use the spack gcc spec, rather than
whatever gcc is found on the path.

Co-authored-by: Mikael Simberg <simberg@cscs.ch>

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-04-20 09:40:03 +02:00
Alex Hedges
53eb044b28 wget: new version 1.21.3 (#30175) 2022-04-20 07:31:33 +00:00
Alex Hedges
4f3553ae7c util-linux: new version 2.38 (#30174) 2022-04-20 07:28:07 +00:00
Tim Haines
e59d7fcb9b precice: conflict with boost@1.79.0 (#30179)
See https://github.com/precice/precice/pull/1250 for details.
2022-04-20 09:13:26 +02:00
Mark Grondona
056ea79d2c flux-core: add v0.36.0-0.38.0, flux-sched: add v0.21.0-0.22.0 (#30176)
* flux-core: add v0.36, v0.37 and v0.38

 - add flux-core versions v0.36.0, v0.37.0, and v0.38.0.
 - add libarchive requirement for v0.38.0.
 - remove yaml-cpp depends which hasn't been required since v0.11

* flux-sched: add v0.21.0, v0.21.1, and v0.22.0

Add versions 0.21.0, 0.21.1 and 0.22.0 of flux-sched.
2022-04-20 09:12:33 +02:00
Adam J. Stewart
83533fc31f PythonPackage docs: Spack now supports Windows (#30177) 2022-04-20 09:11:19 +02:00
Alex Hedges
0420c829c6 gzip: new version 1.12 (#30171) 2022-04-20 09:07:56 +02:00
Alex Hedges
c664a31f7b strace: new version 5.17 (#30173) 2022-04-19 23:18:40 +00:00
Scott Wittenburg
a710a2425a ci: Make test independent from any changes in spack repo (#30150)
Fix test_ci_generate_prune_untouched(), which would fail if run when
the latest commit changed the .gitlab-ci.yml.  This change mocks the
get_stack_changed() method in that test to disregard the state of
the current spack repo in favor of a mock repo under test control.
2022-04-19 16:27:24 -06:00
Erik Schnetter
5e014be8b7 hpx: Add missing boost+context dependency (#30108) 2022-04-19 16:48:49 -04:00
Harmen Stoppels
abc162cf3b environment.py: write lockfile last (#30039)
This makes it easier to write `spack.lock: spack.yaml` type of rules in `Makefiles`.
2022-04-19 12:32:59 -07:00
John W. Parent
dc3cf5c6b0 OpenSSL package: fix ./configure error; restore parallel build (#29928)
* The configure script on Windows requires that CC/CXX be enclosed
  in quotes if the paths to those compiler executables contain
  spaces (so unlike most instances of Executable, the arguments
  need to contain the quotes)
* OpenSSL requires the nasm package on Windows
* Restore parallel build from 075e942 (accidentally reverted in
  #27021)
2022-04-19 11:04:26 -07:00
Harmen Stoppels
75638c1e88 ncurses: fix nvhpc, allow cmake+ncurses %nvhpc (#30162) 2022-04-19 10:19:19 -06:00
Jen Herting
fb5b78335b [py-hpack] added version 3.0.0 (#29802)
* [py-hpack] py-wheel is implied by PythonPackage

* [py-hpack] fixes python dependency version

* [py-hpack] added version 3.0.0
2022-04-19 10:19:00 -06:00
haralmha
63600c0d0d py-ipympl: Add new package (#29442)
* py-ipympl: Add new package

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

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

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

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

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

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

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

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

* Remove trailing whitespaces

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-19 11:12:06 -05:00
haralmha
beaf1c7fcc py-webargs: Add new package (#29768)
* py-webargs: Add new package

* Fix python requirement

* Add run dependency to py-packaging

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-19 11:11:25 -05:00
Jen Herting
2da7f40cbc [py-librosa] added version 0.9.1 and reformatted dependency list (#29544) 2022-04-19 11:10:10 -05:00
Jen Herting
4c446d54b1 New package: py-python-crfsuite (#29450)
* [py-python-crfsuite] created template

* [py-python-crfsuite]

- added homepage
- added description
- added dependencies
- removed fixmes
2022-04-19 11:09:47 -05:00
Christopher Kotfila
4067a28182 Set resource requests on package builds (#29922)
gitlab ci: Set resource requests explicitly

This PR sets resource requests for the Kubernetes executor, which should aid in
better workload scheduling in the cluster.  The specific values were derived from
profile data taken from several full "from scratch" rebuilds in a separate worker pool.

Co-authored-by: Zack Galbreath <zack.galbreath@kitware.com>
2022-04-19 10:09:32 -06:00
Sergey Kosukhin
f0ceeac0a8 serialbox: setup the run and dependent build environments (#29892)
* serialbox: setup the run and dependent build environments

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-19 11:08:26 -05:00
snehring
2965a7a7e9 andi: add v0.14 (#30100) 2022-04-19 09:54:56 -06:00
snehring
3273928ddc aperture-photometry: add v3.0.2, change url (#30103)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-04-19 15:50:53 +00:00
Sergey Kosukhin
a4f32dbf8d netcdf-c: prevent overlinking to a system installation of libcurl (#28537) 2022-04-19 09:26:33 -06:00
Sergey Kosukhin
823b982ee1 netcdf-c: fix configure check for the -fno-strict-aliasing flag (#30159) 2022-04-19 08:50:47 -06:00
Andrea Valenzuela
afbbbf9921 jupyterlab-widgets: add v1.1.0 (#30161)
Co-authored-by: aandvalenzuela <andrea.valenzuela.ramirez@cern.ch>
2022-04-19 08:38:50 -06:00
Andrea Valenzuela
68d32f7fdc py-fonttools: add v4.31.2 (#30153)
Co-authored-by: aandvalenzuela <andrea.valenzuela.ramirez@cern.ch>
2022-04-19 08:11:05 -06:00
Theofilos Manitaras
e13655b584 Add a shared variant for libaec (#30087) 2022-04-19 16:03:00 +02:00
Cory Bloor
78facf0761 rocmlibs: relax rocm-cmake version requirements (#29857)
* rocmlibs: relax rocm-cmake version requirements

The rocm-cmake modules tend to be backwards-compatible, to the extent
that most ROCm math libraries were built using rocm-cmake@master
for a long while without anybody noticing. (That was fixed in
97f0c3ccd9f0a40896998a7580150a514ec3bc37.)

Some packages, like comgr, barely use rocm-cmake for anything, and
we can easily set a very minimal version requirement. For most
packages, however, it would be a lot of effort to determine the
minimum rocm-cmake version required for each release. For those
packages, I just turned the exact version requirement into a
minimum version requirement.

Since I was looking through the CMakeLists.txt for a large number of
libraries, I also took note of the cmake_minimum_required and adjusted
the cmake minimum requirements to match.

* Add rocblas build dependency to hipblas

The rocblas library is required both for both building and linking
hipblas.

* Remove rocm-cmake from vtk-m dependency list

The rocm-cmake package provides CMake scripts that facilitate common
build configuration tasks in the ROCm libraries. It is never needed at
link-time. Also, there are no calls to find_package(ROCM) or
include(ROCM.*)in vtk-m, so this dependency will never be used.
2022-04-19 07:26:40 -06:00
Glenn Johnson
17c264b30a motioncor2: update (#30094)
- older versions are no longer available for download so mark them
  deprecated
- set manual_download
- set url_for_version
- only install the binary that matches the cuda version
2022-04-19 12:38:07 +00:00
Glenn Johnson
634d51cec2 ctffind: update to version 4.1.14 and add MKL support (#30095)
- patch error in configure for 4.1.8
- use fftw-api
- enable support for MKL FFT
- add needed dependencies for libtiff and jpeg
2022-04-19 12:30:28 +00:00
iarspider
bf1ef4bc37 valgrind: add support for shared and static libs(#30028)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-04-19 14:26:26 +02:00
Robert Underwood
6b62a15ab6 which: add external find support (#30056)
Co-authored-by: Robert Underwood <runderwood@anl.gov>
2022-04-19 14:24:47 +02:00
Harmen Stoppels
9a05a7a714 nvhpc: gcc is a direct dep (#29963) 2022-04-19 08:17:58 -04:00
H. Joe Lee
1c13b3707c or-tools: add new package. (#29858) 2022-04-19 14:12:05 +02:00
Valentin Volkl
bad6ebc910 pacparser: fix compilation with clang (#29589) 2022-04-19 14:10:05 +02:00
Erik Schnetter
48122affbd memkind: fix minor typo (#30069) 2022-04-19 14:07:40 +02:00
Peter Brady
e72afede17 truchas: add new package (#29980) 2022-04-19 13:54:26 +02:00
Erik Schnetter
0d2044c659 simgrid: update package description (#30111) 2022-04-19 11:45:44 +02:00
Jean-Paul Pelteret
a37dd23403 ADOL-C: Add traceless refcounting as a default variant (#30114) 2022-04-19 11:43:19 +02:00
Jean-Paul Pelteret
d6483fe483 SymEngine: add v0.9 (#30115) 2022-04-19 11:42:41 +02:00
iarspider
be12fea11e lwtnn: add v2.13 (#30151) 2022-04-19 11:41:20 +02:00
Andrea Valenzuela
65cf6b0d5c py-frozenlist: add v1.3.0 (#30154)
Co-authored-by: aandvalenzuela <andrea.valenzuela.ramirez@cern.ch>
2022-04-19 11:40:40 +02:00
Alex Hedges
21ef70d807 less: add v590 (#30127) 2022-04-19 09:28:12 +00:00
Alex Hedges
82a6d6f5d8 direnv: add v2.31.0 (#30118) 2022-04-19 11:03:35 +02:00
Andrea Valenzuela
a4bead73b1 py-avro: add v1.11.0 (#30152)
Co-authored-by: aandvalenzuela <andrea.valenzuela.ramirez@cern.ch>
2022-04-19 08:50:21 +00:00
Jeremy L Thompson
d4b68995c3 ratel: add develop and v0.1 (#29474) 2022-04-19 10:41:53 +02:00
Bernhard Kaindl
0ce88521ce glew,vapor: Move depends_on("glu") from glew to vapor (#30112)
In #26630, I assumed "glu" was needed by glew because it included glu.h, but
actually, glew can be used without glu when GLEW_NO_GLU is defined and this
is documented in the announcement of glew-1.6.0:

> https://www.geeks3d.com/20110430/opengl-glew-1-6-0-available/
> * Define GLEW_NO_GLU for no glu dependency

It is therefore the duty of users of glew to decide if they use glu,
and then they need to have a depends_on("glu").

Thus, move the depends_on("glu") which I changed from "gl" in #26630
to vapor, which itself uses glu as well.
2022-04-19 10:22:32 +02:00
Alex Hedges
aac7176924 coreutils: add v9.0 and v9.1 (#30128) 2022-04-19 02:18:33 -06:00
Harmen Stoppels
bc347f1f1c bubblewrap: add versions up to v0.6.1, use configure script (#30129) 2022-04-19 10:09:26 +02:00
Harmen Stoppels
6eac7acb93 libcap: add v2.64 (#30130) 2022-04-19 10:07:26 +02:00
John W. Parent
08ea458814 CMake: add v3.23.1 and v3.22.4 (#30131) 2022-04-19 10:06:39 +02:00
snehring
b6c1143f3f mysqlpp: add v3.3.0 (#30136) 2022-04-19 10:02:39 +02:00
Tim Haines
1cba551fe6 Dyninst: deprecate unsupported versions (#30138) 2022-04-19 09:54:17 +02:00
snehring
326fa2392b gaussian: adding tcsh dependency (#30096) 2022-04-19 01:50:44 -06:00
dlkuehn
0c4a866c2e trinotate: add v3.2.2 (#30141)
Co-authored-by: David Kuehn <las_dkuehn@iastate.edu>
2022-04-19 09:29:30 +02:00
Adam J. Stewart
54e9b6b8fb py-rtree: add v1.0.0 (#30140) 2022-04-19 09:28:42 +02:00
Harmen Stoppels
a3a61241fc openmpi: no nvc -fexceptions support (#30044) 2022-04-19 09:21:08 +02:00
snehring
7133838fa5 diamond: add v2.0.14 (#30143) 2022-04-19 09:20:20 +02:00
Sam Grayson
8de726336f Add music package (#30147) 2022-04-18 20:51:13 -05:00
Peter Brady
3835ac0c41 spdlog: use external fmt (#30051) 2022-04-18 09:41:00 -04:00
range3
a405a6efe3 py-torch: fix cuda dependencies (#30117) 2022-04-16 21:06:43 -06:00
Harmen Stoppels
b0c8affbd9 gcc: avoid excessive stat calls (#30005)
For about a decade GCC has an option `-f[no]-canonical-system-headers`
which basically runs `realpath` on all "system headers", to possibly
reduce the length of paths in diagnostics. [1]

Spack usually installs the "system headers" of GCC in very deeply nested
directories. Calling `realpath` there results in stat calls on every
level, for every header file. On some slow filesystem I have,
`-fno-canonical-system-headers` gives about 5x speedup to compile hello
world in C, meaning that ./configure scripts would be much faster when
using this flag by default.

[1] https://codereview.appspot.com/6495088
2022-04-16 21:12:03 +02:00
marcost2
03a7643816 mpich: Fix @4 build with gcc@10+ (#30084)
* Also set FCFLAGS for gcc@10
* Set FCFLAGS for clang/apple-clang too
2022-04-16 19:53:44 +02:00
Kai Torben Ohlhus
1ada151d80 octave: add version 7.1.0 (#30089)
https://octave.org/news/release/2022/04/06/octave-7.1.0-released.html
2022-04-16 06:28:10 +02:00
John W. Parent
840858c215 CMake package: use Windows SSL implementation (#29943)
Add option to allow using OpenSSL (by default this uses the SSL
implementation that comes with Windows, since that is more likely
to have needed certificates).
2022-04-16 00:38:28 +00:00
John W. Parent
0f80a5a9d5 Remove assert in favor of error message (#29797) 2022-04-15 22:44:44 +00:00
dlkuehn
c8f85ebea3 Update: bamtools to version 2.5.2 (#29021)
Co-authored-by: las_dkuehn <las_dkuehn@gilman-0107-02.las.iastate.edu>
2022-04-15 14:18:47 -07:00
Dom Heinzeller
3b8256ef6a Backport f2py's define for threading bugfix to numpy versions 1.20.3:1.22.1 (#30065) 2022-04-15 15:47:01 -05:00
Erik Schnetter
33d791bd1c compose: New package (#30073)
* compose: New package

* compose: Add maintainer

* compose: Remove unused import

* compose: Switch copyright date to 2021
2022-04-15 11:17:50 -07:00
Chris White
374ebe5840 Adiak package: use correct CMake MPI variables (#30086) 2022-04-15 10:33:56 -07:00
Sajid Ali
cf21fd837f llvm@14: Fix build: Add hwloc include directory for libompd (#29757) 2022-04-15 17:44:22 +02:00
Thomas Madlener
01609b3111 py-awkward: Add latest versions (#29744)
* py-awkward: Add new versions

* py-awkward: Update dependencies

* Make setuptools a runtime dependency as well

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-15 09:53:27 -05:00
Theofilos Manitaras
fdc9a29a9b Patch libfabric for the Nvidia compilers (#30090)
* Patch libfabric@1.6.0:1.14.0 for the Nvidia compilers

Signed-off-by: Theofilos Manitaras <manitaras@cscs.ch>
2022-04-15 06:42:26 -06:00
Robert Underwood
0e0c438dd6 Fix R build in containers (#30055)
R needs which as a build dependency, but it may not be provided in a
minimal container.

Co-authored-by: Robert Underwood <runderwood@anl.gov>
2022-04-14 23:06:15 -05:00
Axel Huebl
015046cb97 Add: openPMD-viewer 1.4.0 & validator update (#30083) 2022-04-15 06:03:59 +02:00
Matthieu Dorier
388d5fada3 mochi-thallium: add v0.10.1, update cereal dependency (#30059)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-04-14 21:55:35 -06:00
John W. Parent
2d3a613128 NASM package: fix install on Windows (#29905)
* Don't rely on NASM's nmake to export install target. Spack
  now handles NASM installation; the install tree structure
  mimics NASM Windows installer behavior.
* Add dependency on perl
2022-04-14 12:20:41 -07:00
Jen Herting
ce0346abd9 New package: py-nara-wpe (#29451)
* espnet first build with depends

* [py-nara-wpe] fixed copyright

* [py-nara-wpe] fixing up dependencies

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2022-04-14 14:09:03 -05:00
Jen Herting
00313f9e20 New package: py-distance (#29546)
* [py-distance] created template

* [py-distance]

- added homepage
- added description
- removed fixmes

* [py-distance] depends on setuptools
2022-04-14 14:08:09 -05:00
Howard Pritchard
6c03e1efb6 openmpi: main no longer depends on pandoc (#30068)
we switched to an optional sphinx based way of
generating docs, so remove pandoc, which can cause
issues with latex conflicts.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2022-04-14 12:58:30 -06:00
John W. Parent
b1de8a5680 Windows platform: don't allow MakefilePackage (#29904) 2022-04-14 11:41:12 -07:00
Jason Lee
02a1f6f0f1 New package: SICM (#30066) 2022-04-14 12:30:42 -06:00
Cyrus Harrison
79be21c8e4 add conduit 0.8.3 release (#30067) 2022-04-14 11:42:31 -06:00
Dom Heinzeller
bb70e6ffcd netcdf-cxx4 Package: updates to build on Mac OS (#29246)
Bug fixes for package netcdf-cxx4 so that it builds on macOS semi
case-sensitive filesystems; this includes additional changes to build
netcdf-cxx4 consistently with netcdf-fortran.

* netcdf-fortran: remove unused config_flags
* netcdf-fortran: avoid building without the optimization flags
* netcdf-cxx4: do not enforce autoreconf. This was a rudiment from the
  times when the package was fetched with git, which broke timestamp
  order of the automatically generated Autoconf files.
* netcdf-cxx4: inject PIC flags for C++ when '+pic'
* netcdf-cxx4: inject C/CXXFLAGS via the wrapper
* netcdf-cxx4: fix the underlinking problem for platforms other than darwin
  (add netcdf-c libs netcdf-cxx4 ldlibs flags)
* netcdf-cxx4: remove redundant extension of CPPFLAGS
* netcdf-cxx4: only need to use MPI compiler wrapper when building C
  (vs both C and C++)
* netcdf-cxx4: remove variant 'static'
  This makes it consistent with other packages from the NetCDF
  constellation: always build the static libraries and additionally
  build the shared ones when '+shared'.
* netcdf-cxx4: do not configure --with/--without-pic.
  This makes it consistent with other packages from the NetCDF
  constellation: build the shared libraries with the PIC flag and
  the static ones without it (the default for Autotools) when
  '~pic', and build the static libraries with PIC when '+pic' (to
  make them injectable into other shared libraries).
* netcdf-cxx4: run the tests serially
* netcdf-cxx4: build the plugins only when the tests are run

Co-authored-by: Sergey Kosukhin <sergey.kosukhin@mpimet.mpg.de>
2022-04-14 10:10:30 -07:00
dlkuehn
b09fb467f1 Package rna-seqc: Change jdk dependency to java (#30049)
Co-authored-by: David Kuehn <las_dkuehn@iastate.edu>
2022-04-14 10:02:06 -07:00
Zack Galbreath
dec3e31e60 spack ci: remove relate-CDash-builds functionality (#29950)
gitlab ci: Remove code for relating CDash builds

Relating CDash builds to their dependencies was a seldom used feature.  Removing
it will make it easier for us to reorganize our CDash projects & build groups in the 
future by eliminating the needs to keep track of CDash build ids in our binary mirrors.
2022-04-14 10:42:30 -06:00
Olivier Cessenat
f5520de4bd libefence: add package for the Electric Fence library from B. Perens (#29595) 2022-04-14 08:53:52 -07:00
Massimiliano Culpo
be99a72d57 Add CHANGELOG for v0.17.2 2022-04-14 16:19:37 +02:00
Kevin Huck
6f1a5c8fee apex: add v2.5.0 (#30018) 2022-04-14 11:45:02 +02:00
Valentin Volkl
a482970a35 sherpa: fix build of recola interface (#30000) 2022-04-14 11:43:39 +02:00
dependabot[bot]
bbb3f724af build(deps): bump actions/setup-python from 3.1.1 to 3.1.2 (#30017)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](21c0493ecf...98f2ad02fd)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-14 10:47:01 +02:00
Peter Scheibel
89f6db21f1 Ad-hoc Git commit versions: support submodules (#30037)
* Allow packages to add a 'submodules' property that determines when ad-hoc Git-commit-based versions should initialize submodules

* add support for ad-hoc git-commit-based versions to instantiate submodules if the associated package has a 'submodules' property and it indicates this should happen for the associated spec

* allow Package-level submodule request to influence all explicitly-defined version() in the Package

* skip test on windows which fails because of long paths
2022-04-13 20:05:14 -07:00
dlkuehn
b28b24ccf8 express: version update to 1.5.3 (#29760)
Co-authored-by: snehring <snehring@iastate.edu>
2022-04-13 20:02:53 -06:00
Chris White
3dfa64edab BLT package: add version 0.5.1 (#30053) 2022-04-13 20:02:27 -06:00
iarspider
2046ca7722 Add checksum for libisl 0.24 and update URL (#30025) 2022-04-13 17:41:34 -07:00
Mikael Simberg
4f5d5bb2ef Add hpx-kokkos package (#29766)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-04-14 00:23:33 +00:00
Veselin Dobrev
34d9d58924 New package version: mfem v4.4 (#29658) 2022-04-13 16:27:54 -07:00
Dylan Simon
0804637228 distcc: add 3.3.5 for gcc@10 (#29666) 2022-04-13 16:11:36 -07:00
Matthieu Dorier
a837008ff7 [mochi-thallium] added new version of mochi-thallium (#29791) 2022-04-13 14:51:06 -07:00
Jeremy L Thompson
1ffad2073d libceed - add v0.9 and 0.10.1 (#29820) 2022-04-13 14:47:11 -07:00
Massimiliano Culpo
c846b5149d Add support for Python 3.10 (#29581)
* Add support for Python 3.10

* Update unit-tests to use 3.10

* Update Getting started section of the docs

* Update bootstrap action
2022-04-13 14:32:23 -07:00
Seth R. Johnson
4c1250854a perl: fix mac patch (#30001)
- Apply macosx version workaround to all 5.35 and less
- Delete an obsolete mac patch file that I didn't notice when adding
  #28797
2022-04-13 12:34:48 -06:00
iarspider
fbd94b9ad2 Add checksums for xtensor 0.24.1 and xtl 0.7.4 (#30032) 2022-04-13 11:22:59 -06:00
mcourtois
10a3822728 mumps: install header files as compiled (#29940)
Co-authored-by: Mathieu Courtois <mathieu.courtois@edf.fr>
2022-04-13 09:45:47 -07:00
Umar Arshad
586df30f9a ArrayFire: new version and update CUDA usage (#29988)
* Set CUDA architectures in ArrayFire based on cuda_arch

The cuda_arch flag was not recognized by the ArrayFire package and
therefore any setting was not respected. This commit adds the appropriate
cmake flags if cuda_arch is specified. If no cuda_arch is specified,
then the flag is set to "Auto" which checks the installed compute
architectures on the build system.

* ArrayFire only requires boost headers to build. Update version to 1.75

ArrayFire only requires boost headers at build time. This commit also
updates the version to 1.75 to avoid some errors in Boost Compute

* Disable tests in ArrayFire by default

* Add support for ArrayFire v3.8.1

* Add maintainer for ArrayFire package

* Remove test variant from ArrayFire. Use comprehensions

* Reduce boost requirement in ArrayFire

* Address cuda_arch suggestions

* Add commit hashes to Release versions of ArrayFire

* Fix style issues in ArrayFire package
2022-04-13 09:31:40 -07:00
Paul
803900ddc5 Add Go 1.18 and 1.17.8 (#30035) 2022-04-13 09:29:12 -07:00
Massimiliano Culpo
0480afe29d CI: avoid issues with Ubuntu patched git by adding safe.directory (#30042)
Ubuntu patched git v2.25.1 with a security fix that also
introduced a breaking change, so v2.25.1 behaves like
v2.35.2 with respect to the use cases in CVE-2022-24765
2022-04-13 11:10:00 +00:00
Harmen Stoppels
cb56e9b745 libbsd: fixes for %nvhpc (#29848) 2022-04-13 11:24:02 +02:00
renjithravindrankannath
6a8aa59717 reverting the changes present in 29017 as CFLAGS and CXXFLAGS which overrides defaults in other packages (#30036) 2022-04-13 08:29:56 +02:00
Daryl W. Grunau
110ade1804 Apply llvm7_intel.patch with intel@19.1.3 (#29955)
* llvm7_intel.patch required for intel@19.1.3 too

* apply llvm7_intel.patch forall intel@19.0 and intel@19.1

Co-authored-by: Daryl W. Grunau <dwg@lanl.gov>
2022-04-12 15:38:11 -07:00
Adam J. Stewart
5db279f986 py-numpy: add v1.21.6 (#30034) 2022-04-12 22:30:13 +00:00
Sergey Kosukhin
67a90a644f hdf5: remove redundant dependency on numactl (#29914) 2022-04-12 14:55:28 -07:00
Jose E. Roman
fef84f2265 New patch release SLEPc 3.17.1 (#30010)
Co-authored-by: Satish Balay <balay@mcs.anl.gov>
2022-04-12 14:50:32 -07:00
Kyle Gerheiser
b0e35dffa3 Add grib_util v1.2.4 (#30033) 2022-04-12 13:32:19 -07:00
Nathan Hanford
a3520d14bd Splice differing virtual packages (#27919)
Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
2022-04-12 13:31:39 -07:00
psakievich
7d534f38d6 Don't allow replacement of root develop specs with --reuse (#28605)
* Fix to concretize.lp

do not allow dev specs to be reused

Co-authored-by: Gregory Becker <becker33@llnl.gov>
2022-04-12 10:37:24 -07:00
Peter Scheibel
2aec5b65f3 Git commit versions bugfix: Environments and Concretization (#29717)
Spack added support in #24639 for ad-hoc Git-commit-hash-based
versions: A user can install a package x@hash, where X is a package
that stores its source code in a Git repository, and the hash refers
to a commit in that repository which is not recorded as an explicit
version in the package.py file for X.

A couple issues were found relating to this:

* If an environment defines an alternative package repo (i.e. with
  repos.yaml), and spack.yaml contains user Specs with ad-hoc
  Git-commit-hash-based versions for packages in that repo,
  then as part of retrieving the data needed for version comparisons
  it will attempt to retrieve the package before the environment's
  configuration is instantiated.
* The bookkeeping information added to compare ad-hoc git versions was
  being stripped from Specs during concretization (such that user
  Specs which succeeded before concretizing would then fail after)

This addresses the issues:

* The first issue is resolved by deferring access to the associated
  Package until the versions are actually compared to one another.
* The second issue is resolved by ensuring that the Git bookkeeping
  information is explicitly applied to Specs after they are concretized.

This also:

* Resolves an ambiguity in the mock_git_version_info fixture used to
  create a tree of Git commits and provide a list where each index
  maps to a known commit.
* Isolates the cache used for Git repositories in tests using the
  mock_git_version_info fixture
* Adds a TODO which points out that if the remote Git repository
  overwrites tags, that Spack will then fail when using
  ad-hoc Git-commit-hash-based versions
2022-04-12 09:58:26 -07:00
Mikael Simberg
17e2fb0ef6 Add missing Boost dependencies to pika+generic_coroutines variant (#30026)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-04-12 12:36:14 +02:00
Carlos Bederián
ce09b42cdd curl: nss deprecated since 7.82 (#30020)
* curl: nss deprecated since 7.82
2022-04-12 03:30:24 -06:00
Brian Van Essen
433d404a93 lbann (and related stack): avoid bug in cmake 3.23.0 (#30019) 2022-04-12 08:56:48 +02:00
Massimiliano Culpo
8d56728984 vmd: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
39b58abd9c siesta: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
d7a6cb3e53 qbank: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
fd724fb38d py-sip: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
2bb9eeac28 py-gosam: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
b7ce6a5ec1 openmx: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
1999135cab ntl: remove custom phases 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
a708844e87 nsimd: remove custom phases, refactor variants 2022-04-12 08:39:15 +02:00
Massimiliano Culpo
4dd5bcb3ef npb: remove custom phases 2022-04-12 08:39:15 +02:00
liuyangzhuan
dc44642bfb bump py-statsmodels versions to 0.13.2 for gptune (#29972) 2022-04-11 17:10:28 -06:00
Doug Jacobsen
a9b4f33f23 Update gpg publish to work with mirror arguments (#28740)
This commit updates the `gpg publish` command to work with the mirror
arguments, when trying to push keys to a mirror.

- [x] update `gpg publish command
- [x] add test for publishing GPG keys and rebuilding the key index within a mirror
2022-04-11 14:48:08 -07:00
Sergey Kosukhin
6e5cba7b82 cray platform: unload cray-mpich (#29898) 2022-04-11 14:34:09 -07:00
Ken Raffenetti
b45e734b59 mpich: add v4.0.2 (#30012) 2022-04-11 15:22:34 -06:00
marcosmazz
624077e629 Fix typo in package wrf (#30014) 2022-04-11 14:11:19 -07:00
iarspider
da0a7836f3 ROOT: allow c++20, default to c++14 (#30006) 2022-04-11 12:39:11 -07:00
Massimiliano Culpo
271f0c024a libceed: remove custom phases, slight refactor of variants (#29970) 2022-04-11 20:20:25 +02:00
Harmen Stoppels
8deb50fea5 zstd: bring back libs=shared,static and compression=zlib,lz4,lzma variants (#29995)
* zstd: bring back libs=shared,static and compression=zlib,lz4,lzma variants

Should make building `gcc+binutils ^zstd libs=static` a bit easier (this
is the case where we don't control the compiler wrappers of gcc because
of bootstrapping, nor of ld because of how gcc invokes the linker).
2022-04-11 09:30:30 -06:00
Cory Bloor
b71661eaa6 rocmlibs: cleanup amdgpu_target variant behaviour (#28907)
* Use auto_or_any_combination_of for AMD GPU architecture variant

* Make consistent rocmlibs amdgpu_target variants

* Propagate amdgpu_target variant

* Fix amdgpu_target=auto

* Fix amdgpu_target=auto setting HCC_AMDGPU_TARGET

* Tighten HIP CMake requirements

Co-authored-by: Teodor Nikolov <teodor.nikolov22@gmail.com>
2022-04-11 15:08:28 +02:00
Massimiliano Culpo
f110d0848a nasm: remove custom phases (#29986) 2022-04-11 15:07:15 +02:00
Massimiliano Culpo
b033dbbbd0 minigmg: remove custom phases 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
1a999d6e2d minigmg: remove custom phases 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
9740c3b300 mg: remove custom phases, turn it into a Makefile package 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
b9d12df7a9 memkind: remove custom phases, add v1.13.0 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
a9a7ac71fa madgraph5amc: remove custom phases 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
c8f37797a4 matlab: remove custom phases 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
6bdd9db594 libplist: remove custom phases, make it an Autotools package 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
92531ca773 libimagequant: remove custom phases, make it a Makefile package 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
495dd61218 libgridxc: remove custom phases, make it a Makefile package 2022-04-11 11:42:45 +02:00
Massimiliano Culpo
d0ad644ea6 Remove custom phases in packages (1/n) (#29968)
* abi-dumper: remove custom phases

* apktool: remove custom phases, add v2.6.1

* aragorn: remove custom phases

* ascent: remove custom phases

* astral: remove custom phases, add v5.7.1

* bigdft: remove redundant phase definitions

* bazel: remove custom phases phase definitions

* blasr: remove custom phases phase definitions

* bmake: remove custom phases phase definitions, add v20220330

* botan: remove custom phases phase definitions

* breakdancer: remove custom phases phase definitions

* dnstracer: remove custom phases phase definitions

* conduit: remove custom phases phase definitions

* eclipse-gcj-parser: remove custom phases phase definitions

* eem: remove custom phases phase definitions

* fasttree: remove custom phases phase definitions

* fleur: remove custom phases phase definitions

* fpm: remove custom phases phase definitions

* genie: remove custom phases phase definitions

* gluegen: remove custom phases phase definitions

* gnat: remove custom phases phase definitions

* hpgmg: remove custom phases phase definitions

* karma: remove custom phases phase definitions

* libc: remove custom phases phase definitions
2022-04-11 11:39:50 +02:00
Sebastian Pipping
c2f470f4a6 expat: Deprecate 2.4.6 (#29973)
* expat: Deprecate 2.4.6

* expat: Increase detail on deprecation of 2.4.5
2022-04-11 03:22:32 -06:00
Adam J. Stewart
831346a3fb py-pyupgrade: add new package (#29747) 2022-04-11 11:00:32 +02:00
AMD Toolchain Support
ae76834f3d Python: fix build with AOCC compiler (#28708)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-11 02:50:29 -06:00
dependabot[bot]
714573cdbc build(deps): bump actions/setup-python from 3.1.0 to 3.1.1 (#29956)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](9c644ca2ab...21c0493ecf)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-04-11 10:50:08 +02:00
Glenn Johnson
7d67577156 heasoft: add new package (#29841) 2022-04-11 10:47:38 +02:00
Wouter Deconinck
7dc569ceeb intel-oneapi-compilers package: add rpath for lib/ directory (#29931) 2022-04-11 02:22:34 -06:00
Sajid Ali
7475eba798 cereal: add v1.3.1, v1.3.2 (#29385)
Restrict lbann to use v1.3.0 of this package

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-04-11 10:19:48 +02:00
Harmen Stoppels
25ae8c526b openmpi: ucx >= 1.9.0 for 4.0.x, 4.1.x and 5.x (#29971) 2022-04-11 10:13:50 +02:00
Peter Brady
c364a04a42 chaco: fix build on macOS with Apple Clang 12 or greater (#29975) 2022-04-11 10:11:34 +02:00
Peter Brady
f229f746db scorpio: fix build on macOS with Apple Clang 12 or greater (#29977) 2022-04-11 10:10:47 +02:00
dependabot[bot]
7385ea5f01 build(deps): bump actions/upload-artifact from 2 to 3 (#29981)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  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-04-11 09:56:04 +02:00
dependabot[bot]
8e177a45d2 build(deps): bump actions/download-artifact from 2 to 3 (#29982)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  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-04-11 09:55:32 +02:00
Joseph Wang
b1b9ed298d davix: add v0.8.0, v0.8.1 (#29991) 2022-04-11 09:37:52 +02:00
Wouter Deconinck
70f6496f08 vecmem: add versions up to v0.12.0 (#29989) 2022-04-11 09:34:01 +02:00
Harmen Stoppels
9bc5b0cad5 gmp,mpc,mpfr: libs=static,shared variant (#29996) 2022-04-11 09:33:15 +02:00
Seth R. Johnson
1ea05cd456 macos: fewer calls to sw_vers (#29997)
In a typical call to spack, the OperatingSystem gets instantiated
multiple times. For macOS, each one requires a call to `sw_vers`, which
is done through the Executable helper class. Memoizing
reduces the call count from "spac spec" from three to one.
2022-04-11 09:31:24 +02:00
Jakub Krajniak
65763d18fb wps: add tools and utils to PATH at runtime (#29998) 2022-04-11 09:30:11 +02:00
Harmen Stoppels
796ce7fe84 gdrcopy: don't run ldconfig (#29999) 2022-04-11 09:20:31 +02:00
Tim Haines
4564aa4549 Remove versions 1.34.0:1.38.0 (#29983)
These versions have never been buildable because they do not include a 'bootstrap.sh' file.
2022-04-10 20:08:39 -07:00
Adam J. Stewart
646a4bb26c py-pytorch-lightning: add v1.6.0 (#29785) 2022-04-10 15:34:09 -06:00
Massimiliano Culpo
7893be7712 musl: remove custom phases, add v1.2.3 (#29985) 2022-04-09 23:07:59 +02:00
Massimiliano Culpo
3ad3e53ff8 blis, amdblis: remove custom phases, add v0.9.0 for blis (#29969)
Also refactor a few variants
2022-04-09 10:08:36 +02:00
Carlos Bederián
f6795ae46d netlib-scalapack: add v2.2.0 (#29880) 2022-04-08 15:26:36 -06:00
Massimiliano Culpo
23e85f4086 Environments: unify the spec objects on first concretization (#29948)
Currently environments are indexed by build hashes. When looking into this bug I noticed there is a disconnect between environments that are concretized in memory for the first time and environments that are read from a `spack.lock`. The issue is that specs read from a `spack.lock` don't have a full hash, since they are indexed by a build hash which is strictly coarser. They are also marked "final" as they are read from a file, so we can't compute additional hashes. 

This bugfix PR makes "first concretization" equivalent to re-reading the specs from a corresponding `spack.lock`, and doing so unveiled a few tests were we were making wrong assumptions and relying on the fact that a `spack.lock` file was not there already.

* Add unit test
* Modify mpich to trigger jobs in pipelines
* Fix two failing unit tests
* Fix another full_hash vs. build_hash mismatch in tests
2022-04-08 15:26:17 -06:00
downloadico
dfff935f17 trinity: Add version 2.14.0.FULL (#29753) 2022-04-08 14:26:29 -06:00
haralmha
b662a5968b rapidjson: Add version 1.2.0-2022-03-09 (#29869) 2022-04-08 13:08:41 -07:00
Harmen Stoppels
99083f1706 Deprecate top-level module config (#28659)
* Ignore top-level module config; add auto-update

In Spack 0.17 we got module sets (modules:[name]:[prop]), and for
backwards compat modules:[prop] was short for modules:default:[prop].

But this makes it awkward to define default config for the "default"
module set.

Since 0.17 is branched off, we can now deprecate top-level module config
(that is, just ignore it with a warning).

This PR does that, and it implements `spack config update modules` to
make upgrading easy (we should have added that to 0.17 already...)

It also removes references to  `dotkit` stuff which was already
deprecated in 0.13 and could have been removed in 0.14.

Prefix inspections are the only exception, since the top-level prefix inspections
used for `spack load` and `spack env activate`.
2022-04-08 19:00:35 +00:00
Harmen Stoppels
13f3bd533d ucx: fix opt default value and typo (#29967) 2022-04-08 18:28:57 +02:00
Mikael Simberg
8c0b695f13 pika 0.3.0 : fix +mpi build (#29966)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-04-08 09:31:54 -04:00
Greg Becker
79ba0c50c1 concretize.lp: enforce target compatibility through DAG (#29694)
Spack currently allows dependencies to be concretized for an 
architecture incompatible with the root. This commit adds rules
to make this situation impossible by design.
2022-04-08 11:01:04 +02:00
Harmen Stoppels
b667be470e zstd: improve %nvhpc conflict (#29867) 2022-04-08 09:28:31 +02:00
Carlos Bederián
99425e273b ucx: +cm dropped in 1.11 (#29958) 2022-04-08 09:26:34 +02:00
Carlos Bederián
dbf947599f blis: add conflict with nvhpc/pgi (#29959) 2022-04-08 09:25:39 +02:00
mcourtois
bc34bcfbc2 metis: install more headers files (#29939)
* update metis: install more all files

* ok to be a package reviewer

Co-authored-by: Mathieu Courtois <mathieu.courtois@edf.fr>
2022-04-07 20:10:29 -06:00
iarspider
08c73e456c New package: dwz (#29832) 2022-04-07 17:30:40 -07:00
iarspider
3a6ff4dd92 New package: millepede (#29911) 2022-04-08 00:17:07 +00:00
Jim Galarowicz
012889bc40 survey package: add dependencies for @1.0.3: (#29902) 2022-04-07 17:30:37 -06:00
iarspider
8ab6af9ed9 Add checksum for lwtnn@2.10 (#29873) 2022-04-07 16:29:34 -07:00
haralmha
170613ff6b py-protobuf: Add version 3.20.0 (#29903) 2022-04-07 17:18:26 -06:00
Massimiliano Culpo
ff04d1bfc1 Use the non-deprecated MetaPathFinder interface (#29745)
* Extract the MetaPathFinder and Loaders for packages in their own classes

https://peps.python.org/pep-0451/

Currently, RepoPath and Repo implement the (deprecated) interface of
MetaPathFinder (find_module) and of Loader (load_module). This commit
extracts both of them and places the code in their own classes.

The MetaPathFinder interface is updated to contain both the deprecated
"find_module" (for Python 2.7 support) and the recommended "find_spec".
Update of the Loader interface is deferred at a subsequent commit.

* Move the lines to be prepended inside "RepoLoader"

Also adjust the naming of a few variables too

* Remove spack.util.imp, since code is only used in spack.repo

* Remove support from loading Python modules Python > 3 but < 3.5

* Remove `Repo._create_namespace`

This function was interacting badly with the MetaPathFinder
and causing issues with "normal" imports. Removing the
function allows to do things like:
```python
import spack.pkg.builtin.mpich
cls = spack.pkg.builtin.mpich.Mpich
```

* Remove code needed to trigger the Singleton evaluation

The finder is coded in a way to trigger the Singleton,
so we don't need external code now that we register it
at module level into `sys.meta_path`.

* Add unit tests
2022-04-07 15:58:20 -07:00
iarspider
48b222c36b Add checksum for log4cplus@2.0.7 (#29912) 2022-04-07 15:52:40 -07:00
iarspider
6058d52746 Add checksum for libxml2@6.2.0 (#29918) 2022-04-07 15:37:25 -07:00
eugeneswalker
5f996edde9 e4s ci: expand mac mini stack (#29929) 2022-04-07 15:28:33 -07:00
Alexander Van Craen
ea8c9ae6b7 Add dpcpp version 2021.12 (#29934) 2022-04-07 15:25:08 -07:00
iarspider
b92a6d106b Update ucx to 1.12.0; add variants (#29944) 2022-04-07 14:58:50 -07:00
Kyle Gerheiser
2474609395 Fix OpenMPI external detection logic (#29946)
MPICH and OpenMPI share the same logic for these and these fixes have already been applied to MPICH.

See: https://github.com/spack/spack/pull/29284
2022-04-07 14:45:00 -07:00
iarspider
dd6f4e680a Add checksum for rdma-core@39.1 (#29921) 2022-04-07 15:34:19 -06:00
Harmen Stoppels
e73cf5df44 mpich: no longer a need for custom urls (#29941) 2022-04-07 14:13:57 -07:00
Harmen Stoppels
544486538c libtool: new version 2.4.7 (#29932) 2022-04-07 13:26:38 -06:00
Alexander Van Craen
f5b1d513e1 Add cxxopts version 3.0.0 (#29935) 2022-04-07 12:18:34 -06:00
Peter Brady
fa6f1336c1 petaca: add v22.03, update variants (#29752) 2022-04-07 18:44:55 +02:00
Scott Wittenburg
b2eda32e55 ci: clean up env between tests with working_dir (#29807) 2022-04-07 17:11:58 +02:00
Scott Wittenburg
ff33978b0d ci: do not prune specs when stacks are touched (#29825) 2022-04-07 08:55:40 -06:00
Harmen Stoppels
43577beb9c autotools.py: pic flags for %nvhpc (#29920) 2022-04-07 14:52:47 +02:00
Carlos Bederián
656074a96d python: add 3.10.4, 3.9.12, 3.9.11 (#29927) 2022-04-07 14:50:31 +02:00
Harmen Stoppels
cd0b6b9088 openmpi: inherit CudaPackage (#29917)
OpenMPI includes cuda_runtime.h, which errors with `#error --
unsupported GNU version! gcc versions later than 9 are not supported!`

By inheriting CudaPackage, the proper conflicts between `cuda` and
`gcc`/`clang` are added.
2022-04-07 09:08:37 +02:00
Andrea Valenzuela
57f5c92a39 Add checksum for py-fonttools@4.26.2 (#29897)
* Add checksum for fonttools@4.26.2

* Add python 3.6 dependency for py-fonttools@4.26.2 and update to 3.7 as of py-fonttools@4.28

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

Co-authored-by: Andrea Valenzuela <avalenzu@pccms161.dyndns.cern.ch>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-04-06 10:20:49 -05:00
Chuck Atkins
7477161a05 mesa, mesa18: Package updates (#29573)
* mesa, mesa18: Implement the swr variant consistently between mesa and mesa18

* mesa: Bump to 21.3.7

* mesa: Build release by default tie swr to release builds

* mesa, mesa18: re-enable the llvm variant by default

This reverts the change made in #29360
2022-04-06 10:11:19 -05:00
Harmen Stoppels
5283ca5781 mfem: fix for mpich@4 (#29913) 2022-04-06 15:07:24 +00:00
Harmen Stoppels
beff697cc0 web.py: set User-Agent (#29919)
Some servers require `User-Agent` to be set, and otherwise error with
access denied. One such example is mpich.

To fix this, set `User-Agent: Spackbot/[version]` as a header.
Apparently by convention, it should include the word `bot`.
2022-04-06 15:59:20 +02:00
Mikael Simberg
0dc3c85a90 Add pika 0.3.0 (#29916) 2022-04-06 05:02:23 -06:00
Harmen Stoppels
558f7f007e link_tree.py: format conflict error message (#29870)
Show each `[src a] and [src b] both project to [dst]` on a separate
line.
2022-04-06 07:27:02 +02:00
Harmen Stoppels
a717ba9b87 xxhash: add v0.8.1 (#29868) 2022-04-06 07:25:23 +02:00
iarspider
419c2ecb95 gdrcopy: add v2.3 (#29874) 2022-04-06 07:10:34 +02:00
SXS Bot
532182db52 spectre: add v2022.04.04 (#29876)
Co-authored-by: sxs-bot <sxs-bot@users.noreply.github.com>
2022-04-06 07:08:50 +02:00
Carlos Bederián
bd3e86ee28 scotch: @7: no longer builds libptesmumps.so (#29842) 2022-04-06 07:08:21 +02:00
Axel Huebl
7613b8a3bc WarpX: add v22.04 (#29883)
Update `warpx` & `py-warpx` to the latest release, `22.04`.
2022-04-06 07:03:24 +02:00
Rémi Lacroix
49f9a2136d mpiFileUtils: Add missing dependency with attr. (#29886)
This was added in version 0.11.1.
2022-04-06 07:02:01 +02:00
Hadrien G
57e2ea1ac4 Make dd4hep boost deps explicit (#29890) 2022-04-06 06:58:19 +02:00
Sergey Kosukhin
2816d28e90 claw: enable building with clang@11: and aocc@3: (#29891) 2022-04-06 06:57:38 +02:00
Auriane R
da6d9a33c1 pika: add hipblas dependency when rocm variant (#29681)
Hipblas is now compulsory when building with rocm.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-04-06 06:54:53 +02:00
Valentin Volkl
c8728a1526 gdb: depend only on python, not python+debug (#29374) 2022-04-06 06:52:42 +02:00
Andrea Valenzuela
24800c3de5 py-awkward: add v1.5.1 and fix rapidjson dependency (#29896)
Co-authored-by: Andrea Valenzuela <avalenzu@pccms161.dyndns.cern.ch>
2022-04-06 06:50:32 +02:00
Seth R. Johnson
e520d77760 libproxy: add perl/python variants (#29875) 2022-04-06 06:47:06 +02:00
Jean Luca Bez
90c4b43274 h5bench: add v1.2, use git to get submodules, add variants (#29819) 2022-04-06 06:31:49 +02:00
iarspider
2d6ba6663a Add checksums for cuDNN 8.3.2, 8.3.3; fix URLs on ARM (#29895) 2022-04-06 06:12:03 +02:00
dependabot[bot]
764a97d428 build(deps): bump codecov/codecov-action from 2.1.0 to 3 (#29908)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.1.0 to 3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](f32b3a3741...e3c560433a)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  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-04-06 06:08:22 +02:00
Erik Schnetter
69b3a88fa3 Bugfix: CVS fetching (#29793)
#27021 broke fetching for CVS-based packages because:

- The mirror logic was using URL parsing to extract a path from the
  CVS repository location
- #27021 added sanity checks to enforce that strings passed to the
  URL parser were actually URLs

This replaces the call to "url_util.parse" with logic that is
customized for CVS. This implies that VCSFetchStrategy should
rename the "url_attr" attribute to something more generic, but
that should be handled separately.
2022-04-05 18:45:45 -07:00
Hadrien G
6a3c0825e3 It's already established that we want Boost +python above (#29894) 2022-04-05 12:34:42 -06:00
Harmen Stoppels
935faeb0c0 cmake: improve ~/+ownlibs (#29847)
* remove openssl variant

* require internal curl to have external openssl.

* Fix dependencies

* mono: remove ~openssl reference
2022-04-05 18:59:09 +02:00
Ken Raffenetti
16c5091026 mpich: add new releases (#28573)
* mpich: add 3.4.3, 4.0, 4.0.1
* mpich: add url_for_version function

For versions 4.0 and up, get tarballs from GitHub. This will help with
CI builds, since the MPICH website denies the urllib user-agent from
downloading release tarballs.

* mpich: disable cuda support

MPICH is failing to build in CI due to a configuration script bug in
detecting CUDA support. Disable CUDA support by default until we add a
proper variant.
2022-04-05 17:02:58 +02:00
eugeneswalker
b2717a8abf cub: new versions (#29878) 2022-04-04 18:23:58 -07:00
psakievich
4b3f6cede8 Update exawind openfast dependencies (#29884) 2022-04-04 18:15:30 -07:00
Massimiliano Culpo
f2fc4ee9af Allow conditional possible values in variants (#29530)
Allow declaring possible values for variants with an associated condition. If the variant takes one of those values, the condition is imposed as a further constraint.

The idea of this PR is to implement part of the mechanisms needed for modeling [packages with multiple build-systems]( https://github.com/spack/seps/pull/3). After this PR the build-system directive can be implemented as:
```python
variant(
    'build-system',
    default='cmake',
    values=(
        'autotools',
        conditional('cmake', when='@X.Y:')
    ), 
    description='...',
)
```

Modifications:
- [x] Allow conditional possible values in variants
- [x] Add a unit-test for the feature
- [x] Add documentation
2022-04-04 17:37:57 -07:00
iarspider
d64de54ebe Add shared/static variants to gmp and mpfr (#29836)
* Add shared/static variants to gmp and mpfr

* Update package.py

* Update package.py
2022-04-04 16:20:04 -07:00
Harmen Stoppels
b7eb4af98f expat: 2.4.x (#29872) 2022-04-04 16:00:13 -07:00
Wouter Deconinck
075457db00 Build tests/benchmarks only when self.run_tests (#29862) 2022-04-04 17:21:34 -05:00
Nathan Hanford
88d8ca9b65 rewiring of spliced specs (#26873)
* tests for rewiring pure specs to spliced specs

* relocate text, binaries, and links

* using llnl.util.symlink for windows compat.

Note: This does not include CLI hooks for relocation.

Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
2022-04-04 14:45:35 -07:00
Josh Bowden
8ddaa08ed2 Damaris package: add version 1.6.0; master branch (#29083)
Also add options to build documentation and Python support.
2022-04-04 09:18:12 -07:00
Tracy-Pantleo
6d42a1e0f0 Wonton, Tangram, Portage packages: ctest update (#29823) 2022-04-04 09:12:54 -07:00
Harmen Stoppels
36c0a1eec3 curl: libs variant (#29865) 2022-04-04 07:30:30 -06:00
Valentin Volkl
d7aac3af24 root: add conflict for removed feature vmc (#29777)
Co-authored-by: Hadrien G. <knights_of_ni@gmx.com>
2022-04-04 06:10:26 -06:00
Harmen Stoppels
5680c90c7d curl: 7.82.0 (#29864) 2022-04-04 13:15:56 +02:00
Matthias Diener
b9cdc7ed55 charmpp: avoid setting MPICC for mpi backend (#23645) 2022-04-04 09:49:15 +00:00
Gianluca Ficarelli
fbf50fbfa8 Remove "dir=/tmp" when using tempfile.mkdtemp in packages (#29866)
From the tempfile module docs:

  The default directory is chosen from a platform-dependent list, but the
  user of the application can control the directory location by setting
  the TMPDIR, TEMP or TMP environment variables
2022-04-04 09:40:09 +00:00
Harmen Stoppels
a3de8eb8bb libuv: new versions, new url, drop autotools (#29846) 2022-04-04 03:02:29 -06:00
Andrey Prokopenko
a3c3f9f98b arborx: add v1.2 (#29853) 2022-04-04 02:58:32 -06:00
Satish Balay
a24306dad7 petsc,py-petsc4py,slepc,py-slepc4py: add version 3.17.0 (#29822) 2022-04-04 10:55:18 +02:00
Sajid Ali
fc00119e52 PETSc: add fortran variant to allow builds without fortran (#29800) 2022-04-04 10:54:45 +02:00
Glenn Johnson
1e437bbc66 ncbi-rmblastn: add missing dependencies (#29606)
missing dependencies
- boost
- lzo

Also, turn off libuv. This does not build properly with libuv so it is
not a dependency. However, configure will look for libuv on the system
and try to use it if found, thus breaking the build.
2022-04-04 10:50:36 +02:00
Weiqun Zhang
d04f6e47ff amrex: add v22.04 (#29838) 2022-04-04 10:34:54 +02:00
Thomas Dickerson
ee505e6c69 Add support for racket packages (#27564)
- Add variants for various common build flags, including support for both versions of the Racket VM environment.
- Prevent `-j` flags to `make`, which has been known to cause problems with Racket builds.
- 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 `RacketPackage` class to make spack aware of `raco` installed packages.
- Match the official version numbering scheme.
2022-04-04 10:32:25 +02:00
Cody Balos
d61e54b4c7 sundials: add magma variant (#29844) 2022-04-04 10:12:56 +02:00
Adam J. Stewart
443db0b8c3 py-pandas: add v1.4.2 (#29856) 2022-04-04 10:05:23 +02:00
dependabot[bot]
105b42c15f build(deps): bump actions/setup-python from 2 to 3.1.0 (#29843)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v2...9c644ca2ab8e57ea0a487b5ec2f8290740378bfd)

---
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-04-04 09:55:49 +02:00
Harmen Stoppels
9cc45f66b7 zstd: doesn't build with %nvhpc (#29849) 2022-04-04 09:48:24 +02:00
Harmen Stoppels
28a9da9130 cmake: build with %nvhpc (#29851) 2022-04-04 09:47:59 +02:00
marcost2
21cb859b4f amber20 + ambertools21: fix build issues (#29809)
* Amber: fix must be declared before the namelist is declared

[1]: http://archive.ambermd.org/202105/0098.html
2022-04-04 09:47:09 +02:00
Erik Schnetter
dc7fbafdb2 zlib: Update to 1.2.12 (#29792)
- Update to version 1.2.12.
- Mark older versions as deprecated because they have security bugs.
- mfem: Update list of system library directories
- zlib patch: cc patch

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-04-04 09:03:00 +02:00
Harmen Stoppels
d5a78d49fe mbedtls: fix build with %nvhpc (#29850) 2022-04-04 00:58:19 -06:00
Harmen Stoppels
8ef299ed16 perl: conflict with unpatched releases for %nvhpc (#29854) 2022-04-04 08:33:09 +02:00
Harmen Stoppels
79bc2949ce openssl: add conflict for %nvhpc (#29855) 2022-04-04 08:31:44 +02:00
Chuck Atkins
542f46065a adios2: Bump version and cleanup package code (#29779) 2022-04-02 18:16:07 -07:00
John W. Parent
c7b9354810 Perl package: add version 5.34.1 (#29840)
Versions at or after 5.34.1 don't build with MSVC <= 19.29.30136
2022-04-02 04:38:30 -06:00
Brian Spilner
a94e47743f cdo: new version 2.0.5 (#29558) 2022-04-02 02:26:23 -06:00
Keita Iwabuchi
bfb846a513 Metall package: add v0.18 and v0.19 (#28982)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2022-04-02 01:46:19 -06:00
Jen Herting
14c5d26c48 [py-httpcore] added version 0.14.7 (#29805)
* [py-httpcore] py-wheel is implied by PythonPackage

* [py-httpcore] python packages are type=('build', 'run')

* [py-httpcore] fixed dependency versions

* [py-httpcore] added version 0.14.7
2022-04-02 00:42:33 -06:00
Jen Herting
dfc6c2a437 [py-hyperframe] added version 5.2.0 (#29803)
* [py-hyperframe] py-wheel is implied by PythonPackage

* [py-hyperframe] fixed python version requirement

* [py-hyperframe] added version 5.2.0
2022-04-02 00:26:38 -06:00
Jen Herting
5874d1fbd8 New package: py-jamo (#29545)
* [py-jamo] created template

* [py-jamo]

- added homepage
- added dependencies
- added description
- removed fixmes
2022-04-02 00:06:31 -06:00
Valentin Volkl
a53ffbd621 dd4hep, podio: add new versions, fix tests (#29541) 2022-04-01 23:58:31 -06:00
iarspider
54491a5d96 New package: gbl (#29834) 2022-04-01 17:27:14 -07:00
haralmha
f12c3fcd55 fplll package: Add version 5.4.1 (#29829) 2022-04-01 17:02:32 -07:00
Brian Van Essen
29da99427e "spack external find": also find library-only packages (#28005)
Update "spack external find --all" to also find library-only packages.
A Package can add a ".libraries" attribute, which is a list of regular
expressions to use to find libraries associated with the Package.
"spack external find --all" will search LD_LIBRARY_PATH for potential
libraries.

This PR adds examples for NCCL, RCCL, and hipblas packages. These
examples specify the suffix ".so" for the regular expressions used
to find libraries, so generally are only useful for detecting library
packages on Linux.
2022-04-01 13:30:10 -07:00
Peter Scheibel
a58fa289b9 Allow "spack install foo@git-hash" without terminal prompt (#29827)
Do not prompt user with checksum warning when using git commit hashes
as versions. Spack was incorrectly reporting this as a potential
problem: it would display a prompt asking the user whether they
want to proceed if Spack was running in a terminal, or it would
terminate the running instance of Spack if running as part of a
script.
2022-04-01 10:27:03 -07:00
Harmen Stoppels
ea61a657ae hwloc: 2.0.x, 2.7.x (#29816) 2022-04-01 06:02:33 -06:00
Ben Morgan
56695bb09c vecgeom: add v1.1.20 (#29831) 2022-04-01 07:15:44 -04:00
Howard Pritchard
6237d54936 openmpi: add 4.1.3 release (#29824)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2022-04-01 04:26:22 -06:00
Harmen Stoppels
a7b91321e5 osu-micro-benchmarks: add v5.9 (#29814)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-04-01 00:46:43 -06:00
Harmen Stoppels
9dac0dea25 ca-certificates-mozilla: 2022-03-18, 2022-03-29 (#29813) 2022-04-01 00:46:21 -06:00
Cory Bloor
9a977cb694 rocm-cmake: remove ldconfig variant (#29508)
* rocm-cmake: remove ldconfig variant

The packages built for `rocm-cmake~ldconfig` and `rocm-cmake+ldconfig`
are identical, so the variant is unnecessary.

The `ROCM_DISABLE_LDCONFIG` option changes how `rocm_create_package`
generates DEB and RPM packages with CPack. rocm-cmake itself uses
`rocm_create_package`, however, this option is has no effect because
Spack does not build the CPack packages. It is also unnecessary on
rocm-cmake, because rocm-cmake does not contain any shared libraries
for ldconfig to configure. The rocm-cmake package is purely composed
of CMake scripts.

* Tighten CMake version dependency

* Improve package description
2022-03-31 19:34:11 -06:00
John W. Parent
88b1bf751d Windows Support: Fixup Perl build (#29711)
* Add pl2bat to PATH: Windows on Perl requires the script pl2bat.bat
  and Perl to be available to the installer via the PATH. The build
  and dependent environments of Perl on Windows have the install
  prefix bin added to the PATH.
* symlink with win32file module instead of using Executable to
  call mklink (mklink is a shell function and so is not accessible
  in this manner).
2022-03-31 11:47:11 -07:00
Harmen Stoppels
90da5dc909 pmix: new versions (#29817) 2022-03-31 19:15:09 +02:00
Ivo Steinbrecher
44263b7226 Allow use of "git:"-based URLs (#29765) 2022-03-31 10:14:18 -07:00
Tyler Funnell
1ecb19894c fish: add v3.4.1 (#29818) 2022-03-31 09:58:30 -06:00
haralmha
81e9e47337 py-marshmallow: Add new package (#29764)
* py-marshmallow: Add new package

* Modify py-packaging dependency type

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

* Add run dependency to py-packaging

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-31 09:56:18 -05:00
iarspider
cbba0ffc0c pacparser: add v1.3.8, v1.3.9 (#29677) 2022-03-31 09:34:06 +02:00
haralmha
f20db5fc61 lwtnn: add new package (#29763) 2022-03-31 07:22:48 +02:00
Brice Videau
40154d83ae ytopt: add v0.0.3 (#29655)
Co-authored-by: Jaehoon Koo <jkoo@mcswl052.mcs.anl.gov>
2022-03-31 04:40:54 +00:00
haralmha
5c5da19b0c hto4l: Add new package (#29794) 2022-03-31 06:22:55 +02:00
Mark W. Krentel
75d692eed3 libunwind: restore version 1.6.2 to preferred (#29796)
Version 1.6.2 is now available from mirror.spack.io, so this avoids
problems fetching from savannah.nongnu.org.
2022-03-31 06:21:28 +02:00
Glenn Johnson
f6f89677a7 giflib: add libs property (#29604) 2022-03-30 22:14:31 -06:00
Max Zeyen
26bcbc521e gpi-space: fix boost dependency (#29787) 2022-03-31 06:14:13 +02:00
Jen Herting
c99b3c31db New package: py-pypinyin (#29547)
* [py-pypinyin] created template

* [py-pypinyin]

- added homepage
- added dependencies
- removed some fixmes

* [py-pypinyin] added description
2022-03-30 22:02:41 -06:00
Jon Rood
768c35dd23 amr-wind: does not require hypre with unified memory any longer. (#29799) 2022-03-31 05:56:30 +02:00
Auriane R
c9054a66af pika: add conflict with gcc versions strictly inferior to 9 (#29798) 2022-03-31 05:53:51 +02:00
Vicente Bolea
5d47347d8c ParaView: add v5.10.1 (#29516) 2022-03-31 05:38:22 +02:00
Qian Jianhua
f136f62407 exciting: fix bug on aarch64 (#29762) 2022-03-30 21:30:27 -06:00
Richarda Butler
63b981dba4 Bugfix: Kokkos stand alone test (#29403)
* Use the cmake in the user's path

* Use test_suite cache

* Clean up the code
2022-03-30 18:39:41 -07:00
Scott Wittenburg
685e3d7ae9 spack ci: filter untouched pkgs from PR pipelines (#29697)
We've previously generated CI pipelines for PRs, and they rebuild any packages that don't have
a binary in an existing build cache.  The assumption we were making was that ALL prior merged
builds would be in cache, but due to the way we do security in the pipeline, they aren't. `develop`
pipelines can take a while to catch up with the latest PRs, and while it does that, there may be a
bunch of redundant builds on PRs that duplicate things being rebuilt on `develop`.  Until we can
do better caching of PR builds, we'll have this problem.

We can do better in PRs, though, by *only* rebuilding things in the CI environment that are actually
touched by the PR.  This change computes exactly what packages are changed by a PR branch and
*only* includes those packages' dependents and dependencies in the generated pipeline.  Other
as-yet unbuilt packages are pruned from CI for the PR.

For `develop` pipelines, we still want to build everything to ensure that the stack works, and to ensure
that `develop` catches up with PRs. This is especially true since we do not do rebuilds for *every* commit
on `develop` -- just the most recent one after each `develop` pipeline finishes.  Since we skip around,
we may end up missing builds unless we ensure that we rebuild everything.

We differentiate between `develop` and PR pipelines in `.gitlab-ci.yml` by setting 
`SPACK_PRUNE_UNTOUCHED` for PRs. `develop` will still have the old behavior.

- [x] Add `SPACK_PRUNE_UNTOUCHED` variable to `spack ci`
- [x] Refactor `spack pkg` command by moving historical package checking logic to `spack.repo`
- [x] Implement pruning logic in `spack ci` to remove untouched packages
- [x] add tests
2022-03-30 17:17:29 -07:00
Adam J. Stewart
f97be99f2a Mixed compilers: drop warning message to debug level (#29748) 2022-03-30 15:18:37 -06:00
haralmha
1eb61dd9f3 py-pysimdjson: Add new package (#29767)
* py-pysimdjson: Add new package

* Cleanup

* Fix python requirement

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-30 14:58:36 -06:00
Jörg Behrmann
4571f4c994 Add completion of locals to spack python (#29702) 2022-03-30 14:38:39 -06:00
Glenn Johnson
20000493f3 libtiff: add missing dependencies (#29605)
* libtiff: add missing dependencies

- gl
- glu
- freeglut

* Make X/GL only for Darwin/Mac

* Catch the force_autoreconf property

* add platform=darwin to the autotools deps as well

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-30 14:27:01 -05:00
Harmen Stoppels
36fcf461d9 cmake: add v3.23.0 (#29790) 2022-03-30 08:23:22 -06:00
Greg Becker
58a32b04d9 patch cache: fix bug finding inherited packages (#29574) 2022-03-30 14:19:52 +02:00
Olivier Cessenat
d13c1cfa9f keepassxc: adding version 2.6.6 and major release 2.7.0 (#29676) 2022-03-30 10:55:56 +02:00
Valentin Volkl
a77ce04005 krb5: add v1.19.3, fix build on clang13 (#29683)
Fixes the following error on %clang@13.0.1
  >> 2413    bison: error while loading shared libraries: libtextstyle.so.0: cannot open shared object file: No such file or directory
  >> 2414    make[2]: *** [<builtin>: getdate.c] Error 127
2022-03-30 10:53:57 +02:00
Weston Ortiz
cd6e70f539 goma: add v7.0.4 (#29685) 2022-03-30 10:53:25 +02:00
Seth R. Johnson
1b067ee3e6 veccore: drop useless variants and switch to new repository location (#29678)
VecCore's new home is on github (hashes have changed even though commit
IDs and presumably contents are the same), and it does not need any configuration
options. See discussion at https://gitlab.cern.ch/VecGeom/VecCore/-/merge_requests/1 .
2022-03-30 10:50:41 +02:00
dlkuehn
cd2b2898a1 kallisto: add v0.48.0 (#29689)
Co-authored-by: David Kuehn <las_dkuehn@iastate.edu>
2022-03-30 10:48:44 +02:00
dlkuehn
4c437a8683 freebayes: add v1.3.6 (#29692)
Co-authored-by: David Kuehn <las_dkuehn@iastate.edu>
2022-03-30 10:45:31 +02:00
Tom Scogland
4898759eab gcc: add missing dependencies (#29671)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-30 10:42:38 +02:00
Cameron Smith
295507129b simmetrix-simmodsuite: add opencascade variant and version 16.0-220312 (#29759)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-30 02:33:45 -06:00
Matthieu Dorier
eba0997521 ftxui: add new package (#29724) 2022-03-30 10:10:45 +02:00
Glenn Johnson
acb982f7fa py-m2r: constrain py-mistune to version 0.8.1 (#29608)
* py-m2r: constrain py-mistune to version 0.8.1

* Remove lower half of py-mistune version constraint
2022-03-30 08:00:39 +00:00
Greg Sjaardema
ef1e96def4 cgns: add maintainer (#29775) 2022-03-30 09:42:18 +02:00
Niclas Jansson
fdab17a4d4 neko: add new package (#28791)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-30 09:34:10 +02:00
Thomas Dickerson
8806f9f826 proj: add v8.2.1, v8.2.0 and v8.1.1 (#29774)
Version 9.0.0 drops Autotools support in favor of CMake and will presumably require larger changes to package.py
2022-03-30 01:31:56 -06:00
Robert Pavel
54d738ff9c Flecsi: updated version semantic (#29780)
Updated flecsi spackage to better support changes in control variables
in post 2.1.0 releases while also making legacy versions clearer as to
what is a tagged release and what is a rolling-ish development branch
2022-03-30 09:21:17 +02:00
Mikael Simberg
e58ac0705d Add patch to fix compilation of boost with compilers not in path (#29718)
Co-authored-by: Mikael Simberg <mikael.simberg@iki.if>
2022-03-30 09:14:03 +02:00
Glenn Johnson
0182e39d44 r-quantreg: add v5.88 (#29621) 2022-03-29 21:02:41 -06:00
Glenn Johnson
7cfe626e21 py-reportlab: add missing dependency on freetype (#29611)
* py-reportlab: add missing dependency on freetype

* Add missing dependencies

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

Use pil virtual.

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-29 20:43:12 -05:00
Seth R. Johnson
0367b73ed5 Trilinos: add linker flags to improve behavior (#29492) 2022-03-29 18:13:09 -04:00
Nichols A. Romero
f66e7aea94 Support DASK backend in XARRAY. (#29726)
* Support DASK backend in XARRAY.

* Create XARRAY parallel variant with correct py-dask dependency.
2022-03-29 14:02:40 -06:00
MicK7
ef23c3b122 Update cgns for new release (#29709)
Add CGNS 4.3.0 version
2022-03-29 20:36:05 +02:00
Asher Mancinelli
078ee48c4b ExaGO: add v1.4.0 and v1.4.1 (#29712)
* ExaGO: Handling of cuda architectures and amdgpu targets changed
  to effectively handle multiple targets. See #28441.
* Add ROCm support to ExaGO and update ROCm support in HiOp
* ExaGO+rocm requires HiOp+rocm
* Newer versions of CMake may set HIP_CLANG_INCLUDE_PATH incorrectly:
  add comments to the ExaGO/HiOp packages explaining how to address
  this problem if it occurs.
2022-03-29 10:01:30 -07:00
Harmen Stoppels
9516fa9447 cmake: use CMAKE_INSTALL_RPATH_USE_LINK_PATH (#29703)
* cmake: use CMAKE_INSTALL_RPATH_USE_LINK_PATH

Spack has a heuristic to add rpaths for packages it knows are required,
but it's really a heuristic, and it does not work when the dependencies
put their libraries in a different folder than `<prefix>/lib{64,}`.

CMake patches binaries after install with the "install rpaths", which by
default are provided by Spack and its heuristic through
`CMAKE_INSTALL_RPATH`.

CMake however knows better what libraries are effectively being linked
to, and has an option to include those in the install rpath too, through
`CMAKE_INSTALL_RPATH_USE_LINK_PATH`.

These two CMake options are complementary, repeated rpaths seem to be
filtered, and the "use link path" paths are appended to Spack's
heuristic "install rpath".

So, it seems like a good idea to enable "use link path" by default, so
that:
- `dlopen` by library name uses Spack's heuristic search paths
- linked libraries in non-standard locations within a prefix get an
rpath thanks to CMake.

* docs
2022-03-29 12:24:10 -04:00
Greg Sjaardema
c0b400c422 cgns: add v4.3.0 (#29773) 2022-03-29 09:46:55 -06:00
Matthieu Dorier
134debc518 mochi-margo: add v0.9.8 (#29771) 2022-03-29 17:39:14 +02:00
Seth R. Johnson
ed1a48f50a SUNDIALS: refactor CMake recipe (#29585)
- Use define/define_from_variant
- Remove unused "fortran_flags"
- Fix CUDA architectures when using multiple (needs semicolon not comma
  separators)
- Add `when=` variant restrictions to simplify logic
2022-03-29 17:09:02 +02:00
Carlos Bederián
02cbb8ffaa cuda: add 11.6.2 (#29756) 2022-03-28 17:38:38 -06:00
Tamara Dahlgren
fd055d4678 spack info: make sections optional; add build/stand-alone test information (#22097)
Add output of build- and install-time tests to info command

Enable dependencies, variants, and versions by default (i.e., provide --no* 
options; add gcc to test_info_fields to increase coverage for c_names->v_names
2022-03-28 22:15:38 +00:00
Thomas Dickerson
40fad1472a Convert git-over-ssh package URLs to canonical format (#29754)
Use canonical SSH urls for git-over-ssh package urls. See also: discussion on #29706, #29749, and https://forum.gitlab.com/t/provided-ssh-url-is-in-the-wrong-format/14320
2022-03-28 14:48:20 -07:00
Richard Berger
00469d84e7 spiner: fix +cuda (#29758) 2022-03-28 15:30:44 -06:00
John W. Parent
1c2fff2cb7 Add ssh to filter of valid urls (#29749) 2022-03-28 14:13:55 -07:00
eugeneswalker
5424e4bdc1 e4s ci spack.yaml: add h5bench (#29755) 2022-03-28 20:55:14 +00:00
Richard Berger
5fe20b462c New package: spiner (#29719)
* New package: spiner

* Update dependencies for spiner package

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

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

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

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

* Remove versions that can't be installed and use ports-of-call@1.1.0

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2022-03-28 13:22:46 -06:00
Massimiliano Culpo
2856b29740 Removed unneeded conflicts in CudaPackage and RocmPackage (#29699)
Since the variant is conditional there's no need to add
conflicts too.
2022-03-28 10:58:56 -06:00
Jim Galarowicz
a7e365536b survey package: add versions 1.0.2/1.0.3; add tls model variant (#29375) 2022-03-28 09:20:14 -07:00
Richard Berger
6aedbb32da ports-of-call: new version 1.1.0 (#29723)
Version 1.0.0 was uninstallable.
2022-03-28 11:30:57 -04:00
FJ-NaokiMatsumura
9e169ae243 batchedblas: new package (#29028) 2022-03-28 17:16:03 +02:00
Max Zeyen
1dbab78db1 gpi-space: add v22.03 (#29736) 2022-03-28 14:50:21 +02:00
Filippo Spiga
8228ac7d62 Adding NVIDIA HPC SDK 22.3 (#29737)
Co-authored-by: Filippo Spiga <fspiga@nvidia.com>
2022-03-28 05:18:29 -06:00
Harmen Stoppels
3f41f8d093 julia: add patch reverting llvm rpath changes (#29731) 2022-03-28 02:34:27 -06:00
Harmen Stoppels
1ac7f2b02b julia 1.6/1.7: constrain libgit2, libssh2 (#29728) 2022-03-28 10:28:09 +02:00
FJ-NaokiMatsumura
26f94b24e8 py-torch: fix to build with fujitsu-ssl2 (#29283)
* py-torch: fix build with fujitsu-ssl2

* fix to use fujitsu-ssl2 in py-torch v1.5.0 to v1.11.0

* fix to use fujitsu-ssl2 in py-torch v1.2.0 to v1.11.0

* Delete fj-ssl2.patch

* renamed the patches

* Rename fj-ssl2.1.5.patch to fj-ssl2_1.5.patch

* Delete fj-ssl2_1.5.patch
2022-03-27 19:22:18 -06:00
Matthieu Dorier
c75fb4da20 mochi-thallium: new package (#29722) 2022-03-27 18:18:24 -06:00
百地 希留耶
cd00eba9d6 autotools doc: add missing right quote (#29734) 2022-03-27 22:42:29 +00:00
David M. Rogers
073330e893 h5z-zfp: fix build when ^hdf5+mpi (#29733) 2022-03-27 13:50:53 -04:00
Howard Pritchard
bb9ac2be9c openmpi: switch to using main (#29725)
The Open MPI project has elected to name our development branch - main.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2022-03-27 13:01:33 +02:00
Glenn Johnson
b1f38f6fa2 py-torchvision: adjust jpeg dependency (#29614) 2022-03-26 21:21:37 -05:00
eugeneswalker
8e4e69e91d llvm: add @14.0.0 (#29732)
* llvm: add @14.0.0

* llvm@14 provides virtual
2022-03-26 15:42:24 -06:00
Glenn Johnson
a785eeb896 r-rsqlite: add v2.2.10 (#29624) 2022-03-25 21:06:19 -06:00
Jen Herting
1b41e7408d [julia] gfortran patch required for 1.7.2 (#29720) 2022-03-25 19:20:22 +01:00
Sreenivasa Murthy Kolam
15bdc6b3e1 Update rocm recipes for rocm-5.0.0 release (#29269)
* update rocm recipes for ROCm-5.0.0 release

* revert address sanitizer changes

* fix style errors

* update to the rocm recipes for 5.0.2 release

* fix review comments inside the rocfft recipe

* update the rocfft recipe for sqlite dependency
2022-03-25 10:56:52 -07:00
Richard Berger
56717e8b85 New package: ports-of-call (#29696) 2022-03-25 09:13:06 -06:00
Massimiliano Culpo
048a0de35b Use the appropriate function to remove files in the stage directory (#29690)
We shouldn't be using "remove_linked_tree" to remove the lock file,
since that function expects to receive a directory path as an
argument.

Also, as a further measure to avoid regression, this commit restores
the "ignore_errors=True" argument on linux and adds a unit test
checking that "remove_linked_tree" doesn't change file permissions
as a side effect of a failure to remove.
2022-03-25 08:39:09 +01:00
iarspider
4702b49094 Sherpa: add several new variants used by CMS (#29338) 2022-03-24 19:30:33 -06:00
Valentin Volkl
0168047429 vecgeom: fix install error when ~cuda (#29716) 2022-03-24 18:38:56 -06:00
Jean Luca Bez
0a3d496db1 PDC: add version 0.2 and branches (#29572)
* Update package.py

* Update package.py

* Fixes on versions

* Fix style

* Remove code

* Include latest version and removed code

* Remove unecessary cmake dependency

* Apply suggestions
2022-03-24 18:34:44 -06:00
Harmen Stoppels
e22fbdb6b8 environment.py: ensure view dir does not exist (#29641) 2022-03-24 15:42:33 -06:00
iarspider
f8201f4acc Fix py-onnx-runtime recipe (#29646)
* Fix py-onnx-runtime recipe

* Add missing dependencies

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

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

* Update package.py

* Better fix for py-onnx-runtime

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-24 14:23:52 -05:00
Cameron Smith
27e57c444e omega-h: add v10.1.0 from fork (#29528)
* omegah: v10.1.0

this version is from the SCOREC fork of Omega_h

* prefix version with scorec

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

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2022-03-24 12:03:23 -06:00
Harmen Stoppels
1b55057f36 add_files_to_view: flip incorrect default (#29700) 2022-03-24 11:59:03 -06:00
Harmen Stoppels
f8224f284c environment.py: concrete root specs to view (#29634)
Slight simplification of the code: just pass the list of concrete root
specs to the view
2022-03-24 14:59:24 +01:00
Harmen Stoppels
1a728c98ff fix --reuse w/ upstreams in env (#29680) 2022-03-24 13:25:00 +00:00
Harmen Stoppels
59e522e815 environment views: single pass view generation (#29443)
Reduces the number of stat calls to a bare minimum:
- Single pass over src prefixes
- Handle projection clashes in memory

Symlinked directories in the src prefixes are now conditionally
transformed into directories with symlinks in the dst dir. Notably
`intel-mkl`, `cuda` and `qt` has top-level symlinked directories that
previously resulted in empty directories in the view. We now avoid
cycles and possible exponential blowup by only expanding symlinks that:
- point to dirs deeper in the folder structure;
- are a fixed depth of 2.
2022-03-24 03:54:33 -06:00
Harmen Stoppels
011a8b3f3e environment.py: clean up broken views on failure (#29643)
When view creation fails for some reason, remove it, so that the next
time around it can start from scratch.
2022-03-24 09:04:42 +01:00
Ralf Gommers
20255b6161 Update py-numpy dependency on Python to avoid build failures (#29682) 2022-03-23 17:51:56 -06:00
Valentin Volkl
34732c57b3 py-cffi: add compiler flags to fix build with clang (#29679)
* py-cffi: add compiler flags to fix build with clang

For %clang@13.0.1, this avoids the
```
clang-13: warning: optimization flag '-ffat-lto-objects' is not supported [-Wignored-optimization-argument]
```
warning being turned into an error, and fixes this link error:
```
build/temp.linux-x86_64-3.10/c/_cffi_backend.o: file not recognized: file format not recognized
```

* style
2022-03-23 13:49:36 -05:00
Harmen Stoppels
c300b92047 environment: be more defensive when deleting roots for old views (#29636)
Currently `old_root` is computed by reading the symlink at `self.root`.
We should be more defensive in removing it by checking that it is in the
same directory as the new root. Otherwise, in the worst case, when
someone runs `spack env create --with-view=./view -d .` and `view`
already exists and is a symlink to `/`, Spack effectively runs `rm -rf /`.
2022-03-23 08:54:55 -06:00
Ce Qin
f41c3a0fe9 tetgen: add v1.5.1 and v1.6.0 (#29630) 2022-03-23 11:00:07 +01:00
Harmen Stoppels
773da7ceba python: drop dependency on file for script check (#29513)
`file` was used to detect Python scripts with shebangs, so that the interpreter could be changed from <python prefix> to <view path>. With this change, we detect shebangs using Python instead, so that `file` is no longer required.
2022-03-23 10:31:23 +01:00
Matthew Archer
487b1c3690 kahip: add v3.12, v3.13 and v3.14 (#29648)
Co-authored-by: cleathart <c.leathart@hotmail.co.uk>
2022-03-23 10:22:27 +01:00
luker
5afdccba06 variorum: update package for CCE (#29656)
CCE needs additional compiler flags.
2022-03-23 09:19:01 +01:00
eugeneswalker
49498af9ec libgit2: add versions 1.2.0, 1.3.0, 1.4.0, 1.4.1, 1.4.2, 1.4.3 (#29675) 2022-03-23 09:16:23 +01:00
Adam J. Stewart
5df10c04cd Use stable URLs and ?full_index=1 for all github patches (#29239)
The number of commit characters in patch files fetched from GitHub can change,
so we should use `full_index=1` to enforce full commit hashes (and a stable
patch `sha256`).

Similarly, URLs for branches like `master` don't give us stable patch files,
because branches are moving targets. Use specific tags or commits for those.

- [x] update all github patch URLs to use `full_index=1`
- [x] don't use `master` or other branches for patches
- [x] add an audit check and a test for `?full_index=1`

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2022-03-23 08:50:00 +01:00
Massimiliano Culpo
8f89932aad Remove known issues from documentation (#29664)
Known issues reports only 2 issues, among the bugs reported on GitHub.
One of the two is also outdated, since the issue has been solved
with the new concretizer. Thus, this commit removes the section.
2022-03-23 08:06:49 +01:00
Carlos Bederián
b936168224 ucx: add 1.12.1 (#29665) 2022-03-22 19:18:57 -07:00
Harmen Stoppels
80195bd1ed sbang.py: single lstat (#29670) 2022-03-22 23:12:06 +01:00
Abhik Sarkar
eda5b854a5 Feature/composed boost pkg deps p1 (#28959)
* This commit removes the Boost.with_default_variants to variants
that packages are precisely dependant upon. This is the first batch
of 20 packages with modified boost dependencies.

* Style fixes

* Tested bridger: works for gcc-4.9.3 and gcc-8.3.1
2022-03-22 13:42:15 -06:00
François Trahay
6760175289 New package: Vite (#29489) 2022-03-22 10:46:39 -06:00
John W. Parent
a14901f792 Windows PWSH setup fix (#29649)
A command in the script to make Spack accessible in PWSH was invoked with
multiple arguments when it in fact requires a single argument.
2022-03-22 09:42:21 -07:00
Massimiliano Culpo
9177f223c3 libunwind: make v1.5.0 preferred (#29660)
Commit 26ff443 made the Gitlab pipeline failing on develop 
(while it was not failing in the original PR) due to errors in the 
fetcher. This change preserves the new versions, but will give
some time for use to sync our tarball mirror for better reliability
2022-03-22 11:33:27 +01:00
eugeneswalker
ad6d28d9ad e4s mini mac stack: add bzip2 (#29650) 2022-03-21 21:22:21 -06:00
Mark W. Krentel
26ff44388f libunwind: add versions 1.6.2 and 1.6-stable (#29639) 2022-03-21 22:30:36 +00:00
Seth R. Johnson
075c76128a numactl: add explicit darwin conflict (#29481) 2022-03-21 15:50:01 -06:00
Seth R. Johnson
226004b960 Add conflicts/updates for HEP tools on Summit (#29556)
* Fix bad `-mfma` flag on summit

* ROOT: new version and ppc conflict

See https://github.com/root-project/root/issues/9297
2022-03-21 15:43:01 -06:00
Thomas Madlener
3448a4642a geant4-data: Add latest version to make it available for geant4 (#29462) 2022-03-21 15:14:43 -06:00
Joe Schoonover
dae656405f hohqmesh: add v1.2.1 (#29454) 2022-03-21 20:24:48 +00:00
Valentin Volkl
3c0e422509 xapian-core: add v1.4.19 (#29583) 2022-03-21 14:02:57 -06:00
Valentin Volkl
b08f147cf3 edm4hep: add version 0.4.1 (#29542)
* edm4hep: add version 0.4.1

* style
2022-03-21 13:10:40 -06:00
Glenn Johnson
15dbc86177 r-insight: add v0.16.0 (#29617) 2022-03-21 11:53:21 -06:00
Glenn Johnson
2f3a31cef6 py-pyvcf: constrain py-setuptools to 0.57 (#29610)
This package can not use setuptools newer than 0.57 due to needing
features removed in later versions of setuptools.
2022-03-21 11:03:12 -06:00
Seth R. Johnson
fa554d763e vecgeom: fix cuda arch (#29582)
* vecgeom: fix cuda arch

* vecgeom: change 'options' to 'args'

* vecgeom: add spec to locals

* vecgeom: suppress architecture specializations when cuda
2022-03-21 10:54:58 -06:00
Glenn Johnson
b4b8aaf3bc r-sf: add v1.0.7 (#29625) 2022-03-21 10:47:01 -06:00
Valentin Volkl
c4b3b9ed9a mariadb: add version 10.8.2 (#29586) 2022-03-21 10:41:45 -06:00
Glenn Johnson
674030ce62 r-yaml: add v2.3.5 (#29628) 2022-03-21 17:27:09 +01:00
haralmha
0b7eca36d1 lcgenv: add new package (#29436) 2022-03-21 17:03:20 +01:00
Felix Liu
3c1f87099b Updated configure flags in newer versions of ipopt (#29445) 2022-03-21 17:01:13 +01:00
David M. Rogers
6d0b59b7ea sparrow: add new package (#29291) 2022-03-21 16:59:11 +01:00
Greg Becker
dba7a03daa config add: fix parsing of validator error to infer type from oneOf (#29475) 2022-03-21 16:55:02 +01:00
miheer vaidya
560abdc46d Barvinok: fix pet variant description, add maintainer (#29421) 2022-03-21 16:53:44 +01:00
Glenn Johnson
9c2465173e r-tinytex: add v0.37 (#29627) 2022-03-21 09:51:00 -06:00
Thomas Madlener
06a9496a39 geant4: Add external find support (#29642)
* geant4: Add external find support (partial)

* Fix style

* Fix style another time
2022-03-21 15:50:42 +00:00
Glenn Johnson
8fcfde62df r-terra: add v1.5-21 (#29626) 2022-03-21 09:43:42 -06:00
dependabot[bot]
b65054881f build(deps): bump docker/build-push-action from 2.9.0 to 2.10.0 (#29506)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.9.0 to 2.10.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](7f9d37fa54...ac9327eae2)

---
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-03-21 16:39:45 +01:00
Cameron Smith
6b6f67e90f pumi: add v2.2.7 (#29521) 2022-03-21 16:36:23 +01:00
Larry Knox
e485d16c62 hdf5: add v1.13.1 (#29514)
Also add preferred=True to all "maintenance versions".
2022-03-21 16:23:41 +01:00
Harmen Stoppels
18f71aef1e elfio: add v3.10 (#29644) 2022-03-21 08:27:08 -06:00
Glenn Johnson
ef0bc71035 r-recipes: add v0.2.0 (#29623)
Also add new package: r-hardhat.
2022-03-21 09:21:02 -05:00
Glenn Johnson
b4ab4ddc27 augustus: explicitly depend on ncurses (#29597) 2022-03-21 15:18:19 +01:00
Glenn Johnson
f2b123760c bamtools: add missing dependency on jsoncpp (#29598) 2022-03-21 15:16:34 +01:00
Glenn Johnson
db5bd7134a cistem: add missing dependency on libtiff (#29599) 2022-03-21 15:15:59 +01:00
Glenn Johnson
26a62a3258 cnvnator: tweak dependencies (#29600)
- constrain samtools to version 1.13
- replace lzma dependency with xz
- add missing dependencies for libdeflate and openssl
- explicitly set LD_FLAGS for dependencies in makefile
2022-03-21 15:15:27 +01:00
Glenn Johnson
732f1dd14d gate: add v9.1 (#29601) 2022-03-21 15:14:54 +01:00
Glenn Johnson
e05f453531 gatetools: add v0.11.2 (#29602) 2022-03-21 15:14:20 +01:00
Glenn Johnson
d69e8dbace relion: add dependency on libpng for version 4 (#29615) 2022-03-21 15:10:52 +01:00
Glenn Johnson
3ec27332ec r-future: add v1.24.0 (#29616) 2022-03-21 15:09:51 +01:00
Glenn Johnson
311dc67536 r-jsonlite: add v1.8.0 (#29618) 2022-03-21 15:08:56 +01:00
Glenn Johnson
1b849aaa2c r-philentropy: add v0.6.0 (#29619)
This also adds r-poorman as a new package.
2022-03-21 15:08:34 +01:00
Glenn Johnson
b67c7e593b r-pillar: add v1.7.0 (#29620) 2022-03-21 15:08:08 +01:00
Glenn Johnson
daaac3e2f0 r-rcurl: add v1.98-1.6 (#29622) 2022-03-21 15:06:41 +01:00
haralmha
c7f9431e1b crmc: new package (#29371) 2022-03-21 14:53:06 +01:00
haralmha
b0a712097a ftjam: add new package (#29320) 2022-03-21 14:52:12 +01:00
Paul Kuberry
558e99ecca xyce: switch to Trilinos 13.2.0 and add dependencies for +pymi (#29331)
* xyce: switch to Trilinos 13.2.0 and add dependencies for +pymi

* xyce: clean up Trilinos dependency logic
2022-03-21 14:26:41 +01:00
Adam J. Stewart
12ed453707 py-torchgeo: add v0.2.1 (#29632) 2022-03-21 14:24:15 +01:00
Jörg Behrmann
8fdc2ff462 python: add v3.10.3 (#29640)
From the release announcement: "This is a special bugfix release ahead of
schedule to address a memory leak that was happening on certain function calls
when using Cython. The memory leak consisted of a small constant amount of bytes
in certain function calls from Cython code. Although in most cases this was not
very noticeable, it was very impactful for long-running applications and certain
usage patterns. Check bpo-46347 for more information."
2022-03-21 13:18:52 +01:00
Harmen Stoppels
cf3cfab86c libtree: add upperbound for elfio (#29637) 2022-03-21 12:59:15 +01:00
Harmen Stoppels
8f5b9a89fb major.minor.micro.dev0 Spack version (#25267)
When you install Spack from a tarball, it will always show an exact
version for Spack itself, even when you don't download a tagged commit:

```
$ wget -q https://github.com/spack/spack/archive/refs/heads/develop.tar.gz
$ tar -xf develop.tar.gz
$ ./spack-develop/bin/spack --version
0.16.2
```

This PR sets the Spack version to `0.18.0.dev0` on develop, following [PEP440](https://github.com/spack/spack/pull/25267#issuecomment-896340234) as
suggested by Adam Stewart.

```
spack (fix/set-dev-version)$ spack --version
0.18.0.dev0 (git 0.17.1-1526-e270464ae0)
spack (fix/set-dev-version)$ mv .git .git_
spack $ spack --version
0.18.0.dev0
```

- [x] Update the release guide
- [x] Add __version__ to spack's __init__.py
- [x] Use PEP 440 canonical version strings
- [x] Make spack --version output [actual version] (git version)

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2022-03-20 22:37:55 -06:00
Harmen Stoppels
6d1da528f7 cmake: 3.21.x, 3.22.x bump (#29633) 2022-03-20 17:50:20 -06:00
Valentin Volkl
6611f0bf4b rivet: fix dependency build types (#29358)
* rivet: fix dependency build types

If it isn't a python package, there is no good reason to change the default build type to remove link

* rivet: turn swig into build dependency
2022-03-20 14:18:12 -06:00
Luca Heltai
3d6156d3b2 dealii: new version and restrict sundials version (#29631) 2022-03-20 15:47:37 -04:00
Glenn Johnson
c6b69a8244 py-torch: set INTEL_MKL_DIR (#29613)
Add the INTEL_MKL_DIR variable so py-torch can find mkl if provided by
intel-oneapi-mkl.
2022-03-20 10:35:18 -05:00
Diego Alvarez
d349677dcb OpenJDK: add 11.0.14.1, 17.0.2 (#29167)
* Added OpenJDK 11.0.14.1 and 17.0.2

* Fix preferred_defined change.
2022-03-20 08:55:22 -04:00
Vivian Hafener
b5dc0c63ea rust: new version 1.58.1 and deprecate older (#29322)
* Added rust version 1.58.1

* Fixed flake8 style errors

Co-authored-by: Viv Eric Hafener <vehrc@sporcbuild.rc.rit.edu>
2022-03-20 08:49:08 -04:00
Martin Aumüller
048b5ad2d0 botan: new versions 2.18.2, 2.19.0 and 2.19.1 (#29361) 2022-03-20 08:42:30 -04:00
Doug Jacobsen
9b0d5cbabf Enable GCS urls as valid (#29592)
* Add tests to ensure google cloud storage urls work as mirrors

This commit adds two tests to track that GCS buckets can work as
mirrors, and can be parsed as valid URLs.

Currently, gs:// format URLs are not correctly parsed.

* Fix URL parsing for GCS buckets

This commit adds GCS bucket URLs as valid URLs.
2022-03-20 01:13:00 -07:00
Peter Scheibel
26552533be We were doing a check in a metaclass to ensure that Package classes weren't defining a function themselves; this check failed (erroneously) if that Package class subclassed another package class (because the check examined all superclasses and thought the definition we automatically add was an offender) (#29569) 2022-03-19 21:37:40 -07:00
Adam J. Stewart
4b0cddb674 GDAL: add v3.4.2 (#29496) 2022-03-19 20:08:11 -05:00
Glenn Johnson
c3a1dd0bdb py-torch-sparse: add missing dependency on py-torch (#29612) 2022-03-19 20:00:35 -05:00
Nils Vu
bfb6873ce3 Revert "Add command for reading a json-based DB description (#24894)" (#29603)
This reverts commit 531b1c5c3d.
2022-03-19 16:30:46 -06:00
Glenn Johnson
71c9334e30 py-pysam: update to version 0.18.0 (#29609) 2022-03-19 15:50:28 -06:00
Carlos Bederián
8c508b530b mmg: add vtk variant (#29533) 2022-03-19 10:02:25 -06:00
Adam J. Stewart
7f3a63aaa6 py-rasterio: add v1.2.10 (#29497) 2022-03-19 08:38:55 -04:00
Ben Darwin
38cce0355c ants: add version 20220205 (#29500)
A new release hasn't been tagged in over a year.
2022-03-19 08:36:24 -04:00
Timothy Brown
892aa0fd16 WRF: Update AOCC patches for latest WRF version. (#29529) 2022-03-19 08:26:30 -04:00
Joel Falcou
a627684115 EVE: new version 2022.03.0 (#29511) 2022-03-19 08:23:46 -04:00
lorddavidiii
9c780ac413 opencl-c-headers and opencl-clhpp: add new versions (#29535)
- these versions are a synchronization with the OpenCL v3.0.10
  specification release.
2022-03-19 08:19:03 -04:00
Qian Jianhua
8537634283 dicom3tools: fix build error with Fujitsu compiler (#29435) 2022-03-18 23:03:36 -05:00
Tom Scogland
3ffe9a27b2 allow ci reproduce to work when spack is cloned to a directory not named spack (#29518) 2022-03-18 20:22:28 -06:00
Tom Scogland
9e01e17dc6 R versions (#29258)
* lower priority of package-provided urls

This change favors urls found in a scraped page over those provided by
the package from `url_for_version`.  In most cases this doesn't matter,
but R specifically returns known bad URLs in some cases, and the
fallback path for a failed fetch uses `fetch_remote_versions` to find a
substitute.  This fixes that problem.

fixes #29204

* consider what links actually exist in all cases

Checksum was only actually scraping when called with no versions.  It
now always scrapes and then selects URLs from the set of URLs known to
exist whenever possible.

fixes #25831

* bow to the wrath of flake8

* test-fetch urls from package, prefer if successful

* Update lib/spack/spack/package.py

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

* reword as suggested

* re-enable mypy specific ignore and ignore pyflakes

* remove flake8 ignore from .flake8

* address review comments

* address comments

* add sneaky missing substitute

I missed this one because we call substitute on a URL that doesn't
contain a version component.  I'm not sure how that's supposed to work,
but apparently it's required by at least one mock package, so back in it
goes.

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2022-03-18 18:42:17 -06:00
Peter Scheibel
531b1c5c3d Add command for reading a json-based DB description (#24894)
Adds `spack external read-cray-manifest`, which reads a json file that describes a set of package DAGs. The parsed results are stored directly in the database. A user can see these installed specs with `spack find` (like any installed spec). The easiest way to use them right now as dependencies is to run `spack spec ... ^/hash-of-external-package`.

Changes include:

* `spack external read-cray-manifest --file <path/to/file>` will add all specs described in the file to Spack's installation DB and will also install described compilers to the compilers configuration (the expected format of the file is described in this PR as well including examples of the file)
* Database records now may include an "origin" (the command added in this PR registers the origin as "external-db"). In the future, it is assumed users may want to be able to treat installs registered with this command differently (e.g. they may want to uninstall all specs added with this command)
* Hash properties are now always preserved when copying specs if the source spec is concrete
  * I don't think the hashes of installed-and-concrete specs should change and this was the easiest way to handle that
  * also specs that are concrete preserve their `.normal` property when copied (external specs may mention compilers that are not registered, and without this change they would fail in `normalize` when calling `validate_or_raise`)
  * it might be this should only be the case if the spec was installed

- [x] Improve testing
- [x] Specifically mark DB records added with this command (so that users can do something like "uninstall all packages added with `spack read-external-db`)
  * This is now possible with `spack uninstall --all --origin=external-db` (this will remove all specs added from manifest files)
- [x] Strip variants that are listed in json entries but don't actually exist for the package

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-03-18 17:07:22 -07:00
Larry Knox
be0d611dc1 hdf5-vol-log: new version 1.1 (#29553) 2022-03-18 17:43:08 -04:00
JDBetteridge
e0e3443f3a PETSc: split install() into configure(), build(), install() (#29126) 2022-03-18 07:59:11 -05:00
haralmha
56ba61c52f hepmcanalysis: propagate cxxstd from root (#29512)
* Use same cxx value as root

* Remove pointer syntax from non-pointer type in source

* Run patch function before build

* Use raw string in filter_file and merge edit function with patch

* Escape parentheses

* Use gDirectory from ROOT instead of CurrentDirectory function
2022-03-18 08:52:05 -04:00
Carlos Bederián
dd67f46c6b mmg: add 5.6.0 (#29534) 2022-03-18 08:51:02 -04:00
Harmen Stoppels
62fcf407e2 environment: Don't print 'updating view at' when no specs (#29536) 2022-03-18 08:49:47 -04:00
Massimiliano Culpo
2fa495154e Split the workflow section and remove outdated advices (#29344)
This PR removes a few outdated sections from the "Basics" part of the 
documentation. It also makes a few topic under the environment section
more prominent by removing an unneeded spack.yaml subsection and 
promoting everything under it.
2022-03-18 10:41:27 +01:00
Abhik Sarkar
0ce8b9d398 Make boost minimal and composable (Original PR#22303) (#28623)
* Make boost composable

Currently Boost enables a few components through variants by default,
which means that if you want to use only what you need and no more, you
have to explicitly disable these variants, leading to concretization
errors whenever a second package explicitly needs those components.

For instance if package A only needs `+component_a` it might depend on
`boost +component_a ~component_b`. And if packge B only needs
`+component_b` it might depend on `boost ~component_a +component_b`. If
package C now depends on both A and B, this leads to unsatisfiable
variants and hence a concretization error.

However, if we default to disabling all components, package A can simply
depend on `boost +component_a` and package B on `boost +component_b` and
package C will concretize to depending on `boost +component_a
+component_b`, and whatever you install, you get the bare minimum.

* Fix style

* Added composable boost dependencies for folly

* fixing akantu merge issue

* hpctoolkit boost dependencies already defined

* Fix Styles

* Fixup style once more

* Adding isort fix

* isort one more time

* Fix for package audit issue

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
Co-authored-by: Ryan O'Malley <rd.omalley@comcast.net>
2022-03-17 17:42:07 -06:00
lorddavidiii
f8f4aafe81 clinfo: add new versions (#29537) 2022-03-17 23:19:33 +01:00
Harmen Stoppels
ea13122f3c Add deprecation warnings for activate/deactivate/view (#29430) 2022-03-17 14:52:56 -07:00
Harmen Stoppels
282a366fc4 windows ci: make conditional on style tests etc (#29567) 2022-03-17 14:20:02 -07:00
Zack Galbreath
5a72204d38 Remove references to features/windows-support branch (#29565) 2022-03-17 10:29:29 -07:00
Jen Herting
27f608c800 New package: py-jaconv (#29548)
* [py-jaconv] created template

* [py-jaconv]

- added homepage
- added description
- depends on setuptools
- removed fixmes
2022-03-17 12:15:04 -05:00
Toyohisa Kameyama
5a85b181d3 octa: new package. (#29333) 2022-03-17 09:58:51 -07:00
John Parent
99c1f9b987 PWSH Support
Include support for powershell

Prepend cmd and pwsh with [spack] to denote spack enabled shell
2022-03-17 09:01:01 -07:00
John Parent
4aee27816e Windows Support: Testing Suite integration
Broaden support for execution of the test suite
on Windows.
General bug and review fixups
2022-03-17 09:01:01 -07:00
Peter Josef Scheibel
e63b4f752a Failed _write now track that the DB is inconsistent
Consistency is restored on next transaction
2022-03-17 09:01:01 -07:00
John Parent
cf1349ba35 "spack commands --update-completion" 2022-03-17 09:01:01 -07:00
John W. Parent
e4d4a5193f Path handling (#28402)
Consolidate Spack's internal filepath logic to a select
few places and refactor to consistent internal useage of
os.path utilities. Creates a prefix, and a series of utilities
in the path utility module that facilitate handling paths
in a platform agnostic manner.

Convert Windows paths to posix paths internally

Prefer posixpath.join instead of os.path.join

Updated util/ directory to account for Windows integration

Co-authored-by: Stephen Crowell <stephen.crowell@khq.kitware.com>
Co-authored-by: John Parent <john.parent@kitware.com>

Module template format for windows (#23041)
2022-03-17 09:01:01 -07:00
John Parent
df4129d395 Expand external find for Windows (#27588)
* Incorporate new search location

* Add external user option

* proper doc string

* Explicit commands in getting started

* raise during chgrp on Win

recover installer changes

Notate admin privleges

Windows phase install hooks

Find external python and install ninja (#23496)

Allow external find python to find windows python and spack install ninja

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
Co-authored-by: Betsy McPhail <betsy.mcphail@kitware.com>
2022-03-17 09:01:01 -07:00
Betsy McPhail
06aef626cb Update tests support for Windows
Fixup common tests

    * Remove requirement for Python 2.6
    * Skip new failing test

Windows: Update url util to handle Windows paths (#27959)

    * update url util to handle windows paths

    * Update tests to handle fixed url handling

    * canonicalize path only when the path type matches the host platform

    * Skip some url tests on Windows

Co-authored-by: Omar Padron <omar.padron@kitware.com>

Use threading.TIMEOUT_MAX when available (#24246)

This value was introduced in Python 3.2. Specifying a timeout greater than
this value will raise an OverflowError.

Co-authored-by: Lou Lawrence <lou.lawrence@kitware.com>
Co-authored-by: John Parent <john.parent@kitware.com>
Co-authored-by: Betsy McPhail <betsy.mcphail@kitware.com>
2022-03-17 09:01:01 -07:00
John Parent
31daf0f2b6 Add Windows to platform and target changes
Add compiler hint to the root spec for Windows

Reporters on Windows (#26038)

Reporters use Jinja2 as the templating engine, and Jinja2 indexes
templates by Unix separators, even on Windows, so search using Unix paths
on all systems.

Support patching on win via git (#25871)

Handle GRP on windows
2022-03-17 09:01:01 -07:00
John Parent
3a994032f8 Spack on Windows package ports
CMake - Windows Bootstrap (#25825)

Remove hardcoded cmake compiler (#26410)

Revert breaking cmake changes
Ensure no autotools on Windows

Perl on Windows (#26612)

Python source build windows (#26313)

Reconfigure sysconf for Windows

Python2.6 compatibility

Fxixup new sbang tests for windows

Ruby support (#28287)

Add NASM support (#28319)

Add mock Ninja package for testing
2022-03-17 09:01:01 -07:00
John Parent
90c773488c Add Github Actions for Windows (#24504)
Setup Installer CI (#25184), (#25191)

Co-authored-by: Zack Galbreath <zack.galbreath@kitware.com>
Co-authored-by: lou.lawrence@kitware.com <lou.lawrence@kitware.com>
Co-authored-by: Betsy McPhail <betsy.mcphail@kitware.com>
2022-03-17 09:01:01 -07:00
John W. Parent
e65d3d14b4 Relocate spack_cmd and scripts from installer to root bin (#24651)
Relocate spack_cmd and scripts from installer
to root bin

Refactor documentation, installer, and launcher
to facilitate that change
2022-03-17 09:01:01 -07:00
Betsy McPhail
4a73bfc3b9 Use Python's zipfile, if available (#24556)
* Style fixes

* Use Python's zipfile, if available

The compression libs are optional in Python. Rely on python as a
first attempt then fall back to `unzip`
2022-03-17 09:01:01 -07:00
Betsy McPhail
f8782c46d7 Windows: VS and CMake support
Fix: Building packages with CMake is broken (#24241)

vsInstallPaths needs to be renamed vs_install_paths (#24297)
2022-03-17 09:01:01 -07:00
Jared Popelar
15ef85e161 Packaging of netlib-lapack for windows (#24993)
MSVC's internal CMake and Ninja now detected by spack external find and added to packages.yaml

Saving progress on packaging zlib for Windows

Fixing the shared CMake flag

* Loading Intel's ifx Fortran compiler into MSVC; if there are multiple
versions of MSVC installed and detected, ifx will only be placed into
the first block written in compilers.yaml. The version number of ifx can
be detected using MSVC's version flag (instead of /QV) by using
ignore_version_errors. This commit also provides support for detection
of Intel compilers in their own compiler block by adding ifx.exe to the
fc/f77_name blocks inside intel.py

* Giving CMake a Fortran compiler argument

* Adding patch file for removing duplicated mangling header for versions 3.9.1 and older; static and shared now successfully building on Windows

* Have netlib-lapack depend  on ninja@1.10

Co-authored-by: John R. Cary <cary@txcorp.com>
Co-authored-by: Jared Popelar <jpopelar@txcorp.com>

Making a default config.yaml for Windows

Small path length for build_stage

Provide more prerequisite details, mention default config.yaml

Killing an unnecessary setvars call

Replacing some lost changes, proofreading, updating windows-supported package list

Co-authored-by: John Parent <john.parent@kitware.com>
2022-03-17 09:01:01 -07:00
lou.lawrence@kitware.com
012758c179 Windows: Create installer and environment
* Add 'make-installer' command for Windows

* Add '--bat' arg to env activate, env deactivate and unload commands

* An equivalent script to setup-env on linux: spack_cmd.bat. This script
has a wrapper to evaluate cd, load/unload, env activate/deactivate.(#21734)

* Add spacktivate and config editor (#22049)

* spack_cmd: will find python and spack on its own. It preferentially
tries to use python on your PATH (#22414)

* Ignore Windows python installer if found (#23134)

* Bundle git in windows installer (#23597)

* Add Windows section to Getting Started document
(#23131), (#23295), (#24240)

Co-authored-by: Stephen Crowell <stephen.crowell@kitware.com>
Co-authored-by: lou.lawrence@kitware.com <lou.lawrence@kitware.com>
Co-authored-by: Betsy McPhail <betsy.mcphail@kitware.com>
Co-authored-by: Jared Popelar <jpopelar@txcorp.com>
Co-authored-by: Ben Cowan <benc@txcorp.com>

Update Installer CI

Co-authored-by: John Parent <john.parent@kitware.com>
2022-03-17 09:01:01 -07:00
Betsy McPhail
a7101db39d MSVC Compiler Find and vcvars env integration (#22856)
Made the vcvars batch script location a member variable of the msvc compiler subclass, initialized from the compiler executable path.  Added a setup_custom_environment() method to the msvc subclass that sources the vcvars script, dumps the environment, and copies the relevant environment variables to the Spack environment.  Added class variables to the Windows OS and MSVC compiler subclasses to enable finding the compiler executables and determining their versions.
2022-03-17 09:01:01 -07:00
loulawrence
f587a9ce68 use pytest stdout/err capture (#22584)
* On windows, write to StringIO without redirection in test cases to avoid conflicting with logger
2022-03-17 09:01:01 -07:00
Ben Cowan
a0164793cb Features/windows install (#22204)
* Fixed path and uid issues.

* Added needed import statement; kluged .exe extension.

* Got package to build.  Some manual intervention necessary, including sourcing the MSVC setup script and having certain configuration parameters.

* Removed CMake executable suffix hack.
2022-03-17 09:01:01 -07:00
Betsy McPhail
d4d101f57e Allow 'spack external find' to find executables on the system path (#22091)
Co-authored-by: Lou Lawrence <lou.lawrence@kitware.com>
2022-03-17 09:01:01 -07:00
Betsy McPhail
fb0e91c534 Windows: Symlink support
To provide Windows-compatible functionality, spack code should use
llnl.util.symlink instead of os.symlink. On non-Windows platforms
and on Windows where supported, os.symlink will still be used.

Use junctions when symlinks aren't supported on Windows (#22583)

Support islink for junctions (#24182)

Windows: Update llnl/util/filesystem

* Use '/' as path separator on Windows.
* Recognizing that Windows paths start with '<Letter>:/' instead of '/'

Co-authored-by: lou.lawrence@kitware.com <lou.lawrence@kitware.com>
Co-authored-by: John Parent <john.parent@kitware.com>
2022-03-17 09:01:01 -07:00
Betsy McPhail
a7de2fa380 Create rename utility function
os.rename() fails on Windows if file already exists.

Create getuid utility function (#21736)

On Windows, replace os.getuid with ctypes.windll.shell32.IsUserAnAdmin().

Tests: Use getuid util function

Co-authored-by: lou.lawrence@kitware.com <lou.lawrence@kitware.com>
Co-authored-by: Betsy McPhail <betsy.mcphail@kitware.com>
2022-03-17 09:01:01 -07:00
Betsy McPhail
b60a0eea01 Workarounds for install errors on Windows (#21890)
1. Forwarding sys.stdin, e.g. use input_multiprocess_fd,
gives an error on Windows. Skipping for now

3.  subprocess_context needs to serialize for Windows, like it does
for Mac.

Co-authored-by: lou.lawrence@kitware.com <lou.lawrence@kitware.com>
Co-authored-by: John Parent <john.parent@kitware.com>
2022-03-17 09:01:01 -07:00
Ben Cowan
81bc00d61f Adding basic Windows features (#21259)
* Snapshot of some MSVC infrastructure added during experiments a while ago.  Rebasing from spack/develop.

* Added platform and OS definitions for Windows.

* Updated Windows platform file to conform to new archspec use.

* Added Windows as a platform; introduced some debugging code.

* Added type annotations.

* Fixed copyright.

* Removed print statements.

* Ensure `spack arch` returns correctly on Windows (#21428)

* Correctly identify windows as 'windows-Windows10-AMD64'
2022-03-17 09:01:01 -07:00
Wouter Deconinck
b26b3bebb4 assimp: depends on pkgconfig; disable bundled dependencies (#29551)
* [assimp] depends_on pkgconfig and disable hunter, build zlib/minizip
2022-03-17 15:56:33 +01:00
Erik Schnetter
e174623edf openssh: Update to version 8.9 (#29539) 2022-03-17 08:18:51 -06:00
Harmen Stoppels
55544950e2 PackageViewMixin: fix symlinks conflict issue (#29515)
`stat`'ing a file in the dst dir is the wrong thing to do, you should
`lstat` to capture broken symlinks.
2022-03-17 08:18:28 -06:00
Valentin Volkl
3544b0274f fastjet: use mirror for sources (#29357)
as a workaround for https://github.com/spack/spack/issues/20050
2022-03-17 12:21:36 +00:00
haralmha
9ba41449a9 Add intermediate folder in lib to LD_LIBRARY_PATH (#29519) 2022-03-17 12:20:22 +00:00
Erik Schnetter
5fd05a8cbe openssl: Deprecate old versions (#29554) 2022-03-17 06:02:56 -06:00
Jen Herting
5f3ab83e2d New package: py-quart (#29142)
* [py-quart] created template

* [py-quart]

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

* [py-quart] removed setuptools dependency
2022-03-17 05:42:31 -06:00
Wouter Deconinck
fa9894ae16 assimp: remove -Werror to allow compilation on Intel oneAPI (#29552) 2022-03-17 03:54:53 -06:00
Tom Scogland
3648adc2a7 python: allow versions with garbage suffix (#29543)
* python: allow versions with garbage suffix

Ubuntu 22.04 preview python prints version as 3.10.2+, the + causes
version parsing to fail and breaks detection.

* Add version comment

* match VALID_VERSION regex
2022-03-17 03:54:29 -06:00
Seth R. Johnson
4ef534b19b libiconv,lmod: improvements for static builds (#29493)
* libiconv: compile with pic even when static build

* lmod: require shared lua

It seems to be unable to detect lua-posix when using a static lua:
```
Error: The follow lua module(s) are missing:  posix
```
2022-03-16 22:31:33 +01:00
Erik Schnetter
73287df7c5 openssl: Security update (#29538) 2022-03-16 13:47:04 -06:00
Jen Herting
993ce4c095 [py-configparser] added version 5.2.0 (#29136)
* [py-configparser] added version 5.2.0

* [py-configparser] fixed setuptools versions and added setuptools_scm
2022-03-16 14:13:08 -05:00
Jen Herting
4b9f216c11 New package: py-hypercorn (#29141)
* [py-hypercorn] created template

* [py-hypercorn]

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

* [py-hypercorn] removed setuptools dependency and added version restriction for py-typing-extensions
2022-03-16 14:12:27 -05:00
Adam J. Stewart
508e3e03b9 py-numpy: add v1.22.3 (#29425) 2022-03-16 19:24:10 +01:00
Olivier Cessenat
9b0c2cb954 diffutils: work around for nvhpc not 11 compliant for __builtin_add_overflow (#28451) 2022-03-16 12:34:58 -04:00
Charles Doutriaux
ea93b1a03b Py kosh (#29532) 2022-03-16 09:16:55 -05:00
Alberto Invernizzi
d3131cd2da constrain dependency as needed by neovim (#29252) 2022-03-15 19:38:21 -06:00
Simon Flood
3a5ae0fb66 Added R 4.1.3 to package.py (#29495) 2022-03-15 20:11:11 -05:00
Tom Scogland
94794d061a optimize instantiation and comparison of versions (#29429)
Re-work the checks and comparisons around commit versions, when no
commit version is involved the overhead is now in the noise, where one
is the overhead is now constant rather than linear.
2022-03-15 18:53:28 +00:00
Larry Knox
1250fac467 Add changes to test functions for checking spack versions of hdf5 with (#29159)
develop in the version string.  The versions from the HDF5 code were not
matching because 'develop-' is not part of the HDF5 version.  Also, the
develop-x.x versions in spack omit the release version (third) number
because the branch spans all of the release versions.
2022-03-15 12:22:30 -06:00
Harmen Stoppels
8c59736ff9 libdrm: add docs variants and missing dependency (#29423) 2022-03-15 17:38:57 +01:00
Simon Frasch
825fed2ffa spla: add version 1.5.4 (#29509) 2022-03-15 16:14:17 +01:00
haralmha
be58d354ac py-stomp-py: Add new package (#29380)
* py-stomp-py: Add package

* Specify python and py-docopt dependencies
2022-03-15 08:02:41 -06:00
FJ-NaokiMatsumura
4176ce5c07 h5z-zfp: fix build with Fujitsu compiler (#29029) 2022-03-15 05:46:21 -06:00
Toyohisa Kameyama
8409443b1f jogl: new package (#29332) 2022-03-15 04:10:59 -06:00
Toyohisa Kameyama
aee763015e glugen: new package. (#29312) 2022-03-15 00:01:15 -07:00
Carlos Bederián
50b5b314b3 petsc, py-petsc4py: add 3.16.5 (#29505)
* petsc: add 3.16.5

* py-petsc4py: add 3.16.5
2022-03-14 19:15:04 -07:00
Jon Rood
8a754ad502 amr-wind: Fix hypre dependency. (#29504) 2022-03-14 19:10:21 -06:00
Axel Huebl
7f03724db2 py-pybind11: 2.9.1 (#29387)
* py-pybind11: 2.9.1

Add the latest releases of pybind11.

* Bump requirements

according to `pyproject.toml`
2022-03-14 16:06:12 -05:00
Axel Huebl
ed359cb00b Update: py-cmake (#28760)
* Update: py-cmake

Add additional dependencies as declared by the `py-cmake` repository.

Note: for either from-source or from-binary builds, this downloads
additional software via the network. We might want to propose upstream
patches to make this work on nodes without internet connection.

* Add Review Comments + Newest Version

* Add: Ninja

Preferred generator according to outputs and upstream repo logic

* Attempt to use resource() for CMake source
2022-03-14 13:21:54 -07:00
Jen Herting
f5a2d87eb2 [py-watchdog] added version 2.1.6 (#29137)
* [py-watchdog] switched to pypi and audited dependencies

* [py-watchdog] added version 2.1.6

* [py-watchdog] updated dependencies for old versions

* [py-watchdog] added when for variant

* [py-watchdog] added some newlines to make flake8 happy
2022-03-14 14:46:53 -05:00
eugeneswalker
c3b6b3036d ci: add e4s mac stack (#29476) 2022-03-14 09:32:09 -07:00
Sergey Kosukhin
f1bdbefd46 mpich: fix the detection of the package (#29284) 2022-03-14 16:33:56 +01:00
Tim Haines
f14840fcf2 Dyninst: add v12.1.0 (#29482) 2022-03-14 07:53:00 -07:00
Ben Morgan
2e3bea8e17 vecgeom: add v1.1.19 (#29488)
Adjust build args for new CUDA build mechanism.
2022-03-14 06:34:33 -06:00
Harmen Stoppels
474493713b compiler.py: early return in compiler_environment when no modules (#29441) 2022-03-14 11:27:49 +00:00
François Trahay
ccfaec7b1c eztrace: new version and refactor for cmake/autotools build (#29458) 2022-03-14 06:32:19 -04:00
Mark W. Krentel
4635c813e0 hsa-rocr-dev, llvm-amdgpu: change dependency libelf to elf (#29408)
* hsa-rocr-dev, llvm-amdgpu: change dependency libelf to elf

Change the libelf dependency to the virtual elf for two rocm packages.
This allows other packages (hpctoolkit) to combine rocm and dyninst
(with elfutils) while still being able to build rocm with libelf when
needed, eg darwin.

* add comment describing include path for libelf vs elfutils
2022-03-14 04:30:55 -06:00
Seth R. Johnson
a4f9d4fa4a hdf5: relax fortran constraint (#29472) 2022-03-14 09:39:35 +01:00
Axel Huebl
32281ee40e toml11: v3.7.1 (#29483)
Add the latest toml11 release :)
2022-03-14 08:18:14 +01:00
Vicente Mataix Ferrándiz
8ab3b56e00 FreeFem: new version 4.10 (#29438)
* Adding release 4.10

* Incorrect checksum

* Update sums

* Revert tar

* Update sum for tar
2022-03-13 11:57:06 -04:00
Thomas Madlener
f93107fff3 rapidjson: Add doc variant (#29460) 2022-03-13 11:52:30 -04:00
Massimiliano Culpo
a6eed4a7c7 Remove "setup_environment" and "setup_dependent_environment" (#29463)
fixes #29446

The new setup_*_environment functions have been falling back
to calling the old functions and warn the user since #11115.

This commit removes the fallback behavior and any use of:
- setup_environment
- setup_dependent_environment
in the codebase
2022-03-13 11:51:55 -04:00
liuyangzhuan
406939f485 butterflypack: add 2.1.1 (#29467)
* added version2.1.1 for butterflypack

* fixing a tag in butterflypack

* minor fix for superlu-dist
2022-03-13 11:46:57 -04:00
Ben Darwin
a649ee9b69 itk: add verion 5.3rc02 (contains fix for ITK/issues/2674) (#29471) 2022-03-13 11:44:45 -04:00
Ben Darwin
0a9e41770b itk: add MINC file support (#29470) 2022-03-13 11:44:34 -04:00
Timothy Brown
717ac6ca0a wps: new version 4.3 (#29473)
* Adding new version [WPS].

* Making `spack style` happy.
2022-03-13 11:43:39 -04:00
Massimiliano Culpo
2c11d5f2a8 python: fix build after change in Spec.dependencies signature (#29480)
fixes #29478

As was written Python was looking for dependencies named "link"
rather than dependencies of type "link".
2022-03-12 19:42:21 -07:00
Harmen Stoppels
8adc6b7e8e module_cmd.py: use posix awk; fix stderr redirection (#29440)
Emulates `env -0` in a posix compliant way, avoiding a slow python process, speeds up setting up the build env when modules should load.
2022-03-11 18:29:11 +01:00
Adam J. Stewart
7ad8937d7a Add py-torch 1.11, py-torchvision 0.12 (#29455) 2022-03-11 16:52:10 +01:00
Ryan Marcellino
abab284996 new package: py-pytest-parallel (#29431)
* new package: py-pytest-parallel

* depend on python@3.7:

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2022-03-11 09:39:47 -06:00
Harmen Stoppels
1caa3107b3 perl: prefer all stable releases (#29456) 2022-03-11 15:02:16 +01:00
haralmha
5590f7385a py-hepdata-converter: Add new package (#29422) 2022-03-10 22:10:19 -06:00
Paul R. C. Kent
037c73c387 Add v0.3.20 (#29453) 2022-03-10 20:14:33 -07:00
Jon Rood
ca3354bdea amr-wind: Add ROCmPackage (#29448)
* Add ROCmPackage to amr-wind and simplify package.

* Add MPI_ROOT.

* Fix error.

* Fix error.

* Fix append.

* Add hypre rocm dependency.

* Remove itertools import.
2022-03-10 17:49:10 -08:00
Pieter Ghysels
da7419c035 Scotch: new v7.0.1 with CMake (#29355)
* Add Scotch v7.0.1, now supporting CMake

* Fix for shared lib build

* Add pghysels (myself) as scotch maintainer

* Simplify mpi variant

* Change @:6.9.99 to @:6 (couple times)
2022-03-10 19:16:02 -05:00
Harmen Stoppels
88fbba3e1e intel-mkl: load compiler modules when querying compiler (#29439) 2022-03-10 14:14:17 -08:00
Massimiliano Culpo
2cd5c00923 Allow for multiple dependencies/dependents from the same package (#28673)
Change the internal representation of `Spec` to allow for multiple dependencies or
dependents stemming from the same package. This change permits to represent cases
which are frequent in cross compiled environments or to bootstrap compilers.

Modifications:
- [x] Substitute `DependencyMap` with `_EdgeMap`. The main differences are that the
      latter does not support direct item assignment and can be modified only through its
      API. It also provides a `select_by` method to query items.
- [x] Reworked a few public APIs of `Spec` to get list of dependencies or related edges.
- [x] Added unit tests to prevent regression on #11983 and prove the synthetic construction
      of specs with multiple deps from the same package. 

Since #22845 went in first, this PR reuses that format and thus it should not change hashes.
The same package may be present multiple times in the list of dependencies with different
associated specs (each with its own hash).
2022-03-10 11:53:45 -08:00
Harmen Stoppels
3d624d204f patchelf: 0.14.x (#29444) 2022-03-10 10:18:25 -08:00
Chris White
428c63087a lock down blt versions for umpire and raja, add upcoming release to use new blt release (#29433) 2022-03-10 08:48:00 -08:00
Tracy-Pantleo
9ab21024e2 Jali/Wonton packages: add version 1.1.6 and 1.3.2, respectively (#28597)
* The new version of Wonton requires the new version of Jali
* Wonton: versions after 1.2.10 don't require boost at all

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2022-03-09 17:11:14 -08:00
Jon Rood
a4703b1220 amdscalapack: Remove build_type variant (#29383)
* amdscalapack: Fix CMake build_type.

* Remove build_type variant from amdscalapack.
2022-03-09 21:35:15 +00:00
eugeneswalker
9493da2536 fms: add v2021.04 (#29424) 2022-03-09 13:07:03 -08:00
Harmen Stoppels
dc78f4c58a environment.py: allow link:run (#29336)
* environment.py: allow link:run

Some users want minimal views, excluding run-type dependencies, since
those type of dependencies are covered by rpaths and the symlinked
libraries in the view aren't used anyways.

With this change, an environment like this:

```
spack:
  specs: ['py-flake8']
  view:
    default:
      root: view
      link: run
```

includes python packages and python, but no link type deps of python.
2022-03-09 12:35:26 -08:00
Brian Van Essen
bedc9fe665 Removed excessive constraints on dependent packages in LBANN (#29416) 2022-03-09 19:48:29 +01:00
Brian Van Essen
ff7230c0cf lbann: allow unsupported compiler (#29417) 2022-03-09 19:47:55 +01:00
Jen Herting
033647c8b1 New package: py-wsproto (#29140)
* [py-wsproto] created template

* [py-wsproto]

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

* [py-wsproto] removed unicode character
2022-03-09 18:29:17 +00:00
Jen Herting
43c768f4b7 New package: py-yaspin (#29138)
* [py-yaspin] created template

* [py-yaspin]

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

* [py-yaspin]

- removed setuptools
- added dependency on py-dataclasses

* [py-yaspin] removed range for py-dataclasses version
2022-03-09 11:09:38 -06:00
百地 希留耶
3270aa106b Hide package repository count when redirecting stdout (#29402) 2022-03-09 17:07:07 +00:00
kwryankrattiger
2dd9414bbb Diffutils: Conflict nvhpc when not 3.7 (#29420) 2022-03-09 16:27:19 +00:00
kwryankrattiger
30a9bfe38f ECP-SDK/VTK-m: Make ROCm + VTK-m contraints (#28712)
* ECP-SDK/VTK-m: Update ROCm variant

VTK-m set contraint for when rocm/kokkos are available.
SDK Make ROCmPackage and propagate amdgpu_arch and rocm variant to
VTK-m.

Note: SDK has to check vtk-m@ 1.7: and :1.6 explicitly in orderer to have 1.7
be selected by default if +rocm in the SDK.

* ECP-SDK: Enable ROCm + VTK-m constraints
2022-03-09 11:23:47 -05:00
百地 希留耶
3370d3f57e Fix tab completion erroring with spack unit-test (#29405) 2022-03-09 16:09:57 +01:00
Harmen Stoppels
3df90e3e33 ci.py: fix utf-8 issue with git log output (#29419) 2022-03-09 13:13:37 +00:00
haralmha
89e2ee70e2 hadoop-xrootd: add new package (#29401) 2022-03-09 02:14:33 -07:00
haralmha
2111cf8044 thepeg: Add zlib dependency (#29370)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-09 02:02:37 -07:00
Robert Romero
811abf5d00 HiCOPS: add new package (#26767)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2022-03-09 09:47:04 +01:00
iarspider
37e14ee1ac sigcpp: add new package (#29341) 2022-03-09 09:41:13 +01:00
Jon Rood
68f0973339 hypre: add rocm support (#29147)
Co-authored-by: Sarah Osborn <30503782+osborn9@users.noreply.github.com>
2022-03-09 09:39:59 +01:00
Wouter Deconinck
9d1d52d51f geant4: new version 11.0.1 (#29411) 2022-03-09 09:32:35 +01:00
haralmha
27e3b34d6d qmtest: add new package (#29377) 2022-03-09 09:28:27 +01:00
kentaw77
c523e22575 zpares: add new package (#29278) 2022-03-09 09:25:22 +01:00
Mosè Giordano
5064ad6cad libblastrampoline: add v5.0.2 (#29407) 2022-03-09 09:19:23 +01:00
Brian Van Essen
990a620d52 rdkit: added new versions up to 1021_09_05 (#29415) 2022-03-09 09:02:59 +01:00
haralmha
a9996db35c py-control: add new package (#29386)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-08 13:22:40 -07:00
haralmha
ddc5b4422d py-param: add new package (#29384)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2022-03-08 12:58:46 -07:00
Keita Teranishi
b2a02861bb trilinos: new variant for the Panzer package (#29256)
* Adding Panzer as Default

* Set Panzer as non-default

* Updated the conflict for Panzer.

* Updated the conflict for Panzer.

* Resolve the issue with Stratimikos and Thyra

* Fixing stk build issues.

* Fixing stk build issues.

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

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

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

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

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

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

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

* silo: refine hdf5 conflicts to avoid building old version

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

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

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

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

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

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

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

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

* silo: fix dependency conflicts

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

* e4s: remove slightly outdated hdf5 requirement

* e4s: remove excessive hdf5 variant constraints

These I think are holdovers from the old concretizer.

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

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

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

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

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

In [2]: %timeit v < w

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

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

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

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

* Fix style errors

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

From da3fcc305d:

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

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

* py-jupytext: update dependencies

* Apply suggestions from code review

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

* Apply suggestions from code review

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

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

* [py-priority]

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

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

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

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

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

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

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

* Add conflict gcc 8.4 and aarch64.

* update conflicts version.

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

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

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

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

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

* fix python dependency
2022-03-03 14:16:54 -06:00
Manuela Kuhn
4d5eff11b4 py-mistune: add 2.0.2 and change source to pypi (#29215) 2022-03-03 19:23:41 +01:00
Manuela Kuhn
8db12b72ec py-multidict: add 6.0.2 and get sources fom pypi (#29219) 2022-03-03 19:23:21 +01:00
Manuela Kuhn
9900d348d7 py-matplotlib-inline: add v0.1.3 (#29208) 2022-03-03 19:22:27 +01:00
TZ
85c454bdb0 kokkos: make Spack accept CUDA compute capability 8.6 (#27257)
The Kokkos sources already know AMPERE86 since some time; make
Spack accept and pass it, too.
2022-03-03 18:20:25 +00:00
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
Todd Gamblin
285548588f Update CHANGELOG.md for 0.17.0 2021-11-05 17:22:32 -07:00
Todd Gamblin
0e3d0516e6 bump version number to 0.17.0 2021-11-05 17:11:37 -07:00
Ben Darwin
12429bda35 py-itk: fix dependencies (#27164) 2021-11-05 16:26:18 -05:00
Seth R. Johnson
c5be548046 New package: GNDS (#27176)
Adds a new package for the AMPX/SCALE implementation of the GNDS
interface,
https://www.oecd.org/publications/specifications-for-the-generalised-nuclear-database-structure-gnds-94d5e451-en.htm
.
2021-11-05 14:04:47 -06:00
Bernhard Kaindl
d9d1319442 qt: replace conflicts('%gcc@11:', when='@5.9:5.14') with -include limits (#27241)
Noting that missing numeric_limits was the cause of the compile issues
with gcc-11, I tested adding -include limits fixing @5.9:5.14%gcc@11.
Therefore, we can replace the conflicts('%gcc@11:', when='@5.9:5.14').

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-11-05 14:06:31 -04:00
Theofilos Manitaras
549bd70449 py-mpi4py: Add newer versions (#27239)
* py-mpi4py: Add newer versions

* Address PR comments
2021-11-05 11:07:44 -06:00
Axel Huebl
4f692e4d9f openPMD-api: 0.14.3 (#27211)
Add the latest release.
2021-11-05 10:53:03 -06:00
Massimiliano Culpo
0feb5ec70a Prevent additional properties to be in the answer set when reusing specs (#27240)
* Prevent additional properties to be in the answer set when reusing specs

fixes #27237

The mechanism to reuse concrete specs relies on imposing
the set of constraints stemming from the concrete spec
being reused.

We also need to prevent that other constraints get added
to this set.
2021-11-05 10:52:44 -06:00
Peter Brady
178e15c39d ctags uses custom autogen.sh script (#27229) 2021-11-05 09:46:09 -07:00
Sinan
0b4b731479 package/py-zarr_add_v2.10.2 (#27212)
* package/py-zarr_add_v2.10.2

* improve python dep version constraints

Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-11-05 09:23:41 -05:00
Bernhard Kaindl
91c7c24260 hdf5: Skip racy test cases(which loop endless on many cores) (#27068) 2021-11-05 09:59:45 -04:00
Seth R. Johnson
42d8e9eeb5 trilinos: explicitly use variants instead of spec for TPLs (#27221)
Fixes https://github.com/spack/spack/pull/27188#issuecomment-961212214
2021-11-05 09:07:33 -04:00
Manuela Kuhn
d2c26fef46 r-readr: add 2.0.2 (#27177) 2021-11-05 06:34:40 -06:00
Mikhail Titov
d7ae9414c2 exaworks: swift-t package (#27234) 2021-11-05 10:46:35 +01:00
Carlos Bederián
b06198f1d4 gmsh: add dependency on gl and glu providers when +fltk (#27169) 2021-11-05 10:45:53 +01:00
Harmen Stoppels
8bb5ed8464 make version docs reflect reality (#27149)
* make version docs reflect reality

* typo and make things

* 2.6 -> 2.7 in example
2021-11-05 09:39:31 +00:00
Massimiliano Culpo
e93a2db8b7 hpx: simplify instrumentation_args function (#27226) 2021-11-05 02:34:40 -06:00
Todd Gamblin
e13e697067 commands: spack load --list alias for spack find --loaded (#27184)
See #25249 and https://github.com/spack/spack/pull/27159#issuecomment-958163679.
This adds `spack load --list` as an alias for `spack find --loaded`.  The new command is
not as powerful as `spack find --loaded`, as you can't combine it with all the queries or
formats that `spack find` provides.  However, it is more intuitively located in the command
structure in that it appears in the output of `spack load --help`.

The idea here is that people can use `spack load --list`  for simple stuff but fall back to
`spack find --loaded` if they need more.

- add help to `spack load --list` that references `spack find`
- factor some parts of `spack find` out to be called from `spack load`
- add shell tests
- update docs

Co-authored-by: Peter Josef Scheibel <scheibel1@llnl.gov>
Co-authored-by: Richarda Butler <39577672+RikkiButler20@users.noreply.github.com>
2021-11-05 00:58:29 -07:00
Simon Frasch
bfbf9deb74 spfft: add version 1.0.5 (#27223) 2021-11-05 01:52:37 -06:00
Simon Frasch
6bae3cd6bb spla: add version 1.5.2 (#27222) 2021-11-05 08:45:34 +01:00
Todd Gamblin
8e76244266 docs for experimental --reuse argument to spack install
Add docs for `--reuse`, along with a warning that it will likely be
removed and refactored.
2021-11-05 00:15:47 -07:00
Gregory Becker
5efa76a033 error message for reusing multiple hashes for package 2021-11-05 00:15:47 -07:00
Todd Gamblin
ac1e05fe1b concretizer: add error messages and simplify asp.py 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
0186f0f955 Fix logic program for multi-valued variants
Reformulate variant rules so that we minimize both

1. The number of non-default values being used
2. The number of default values not-being used

This is crucial for MV variants where we may have
more than one default value
2021-11-05 00:15:47 -07:00
Todd Gamblin
e0c3d074c0 bugfix: handle hashes that only exist in input specs
In our tests, we use concrete specs generated from mock packages,
which *only* occur as inputs to the solver. This fixes two problems:

1. We weren't previously adding facts to encode the necessary
   `depends_on()` relationships, and specs were unsatisfiable on
   reachability.

2. Our hash lookup for reconstructing the DAG does not
   consider that a hash may have come from the inputs.
2021-11-05 00:15:47 -07:00
Todd Gamblin
a4a2ed3c34 concretizer: exempt already-installed specs from compiler and variant rules
Concrete specs that are already installed or that come from a buildcache
may have compilers and variant settings that we do not recognize, but that
shouldn't prevent reuse (at least not until we have a more detailed compiler
model).

- [x] make sure compiler and variant consistency rules only apply to
      built specs
- [x] don't validate concrete specs on input, either -- they're concrete
      and we shouldn't apply today's rules to yesterday's build
2021-11-05 00:15:47 -07:00
Todd Gamblin
49ed41b028 spack diff: more flexible tests, restore transitive diff with spec_clauses
In switching to hash facts for concrete specs, we lost the transitive facts
from dependencies. This was fine for solves, because they were implied by
the imposed constraints from every hash. However, for `spack diff`, we want
to see what the hashes mean, so we need another mode for `spec_clauses()` to
show that.

This adds a `expand_hashes` argument to `spec_clauses()` that allows us to
output *both* the hashes and their implications on dependencies. We use
this mode in `spack diff`.
2021-11-05 00:15:47 -07:00
Massimiliano Culpo
3e3e84ba30 Add a missing definition in the logic program 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
be2cf16b67 Add buildcache to reusable specs 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
31dfad9c16 spack install: add --reuse argument 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
e2744fafa1 spack concretize: add --reuse argument 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
290f57c779 spack spec: add --reuse argument 2021-11-05 00:15:47 -07:00
Todd Gamblin
652fa663b5 concretizer: get rid of last maximize directive in concretize.lp
- [x] Get rid of forgotten maximize directive.
- [x] Simplify variant handling
- [x] Fix bug in treatment of defaults on externals (don't count
      non-default variants on externals against them)
2021-11-05 00:15:47 -07:00
Massimiliano Culpo
da57b8775f Update command completion 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
0d74a4f46e Trim dependencies on externals 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
0b80035eaa Fix a unit test to match the new OS semantics
CNL, debian6 and Suse are not compatible
2021-11-05 00:15:47 -07:00
Massimiliano Culpo
4d25fc0068 ASP-based solve: if an OS is set, respect the value 2021-11-05 00:15:47 -07:00
Massimiliano Culpo
6e297b9ba1 Fix a type in "variant_not_default" rule 2021-11-05 00:15:47 -07:00
Todd Gamblin
ace4586bf8 concretizer: rework spack solve output to handle reuse better 2021-11-05 00:15:47 -07:00
Todd Gamblin
c537785f6f spec: ensure_valid_variants() should not validate concrete specs
Variants in concrete specs are "always" correct -- or at least we assume
them to be b/c they were concretized before. Their variants need not match
the current version of the package.
2021-11-05 00:15:47 -07:00
Todd Gamblin
b60a95cd5d concretizer: unify handling of single- and multi-valued variants
Multi-valued variants previously maximized default values to handle
cases where the default contained two values, e.g.:

    variant("foo", default="bar,baz")

This is because previously we were minimizing non-default values, and
`foo=bar`, `foo=baz`, and `foo=bar,baz` all had the same score, as
none of them had any "non-default" values.

This commit changes the approach and considers a non-default value
to be either a value set to something not default *or* the absence
of a default value from the set value.  This allows multi- and
single-valued variants to be handled the same way, with the same
minimization criterion.  It alse means that the "best" value for every
optimization criterion is now zero, which allows us to make useful
assumptions about the optimization criteria.
2021-11-05 00:15:47 -07:00
Todd Gamblin
b88da9d73d concretizer: reuse installs, but assign default values for new builds
Minimizing builds is tricky. We want a minimizing criterion because
we want to reuse the avaialble installs, but we also want things that
have to be built to stick to *default preferences* from the package
and from the user. We therefore treat built specs differently and
apply a different set of optimization criteria to them. Spack's *first*
priority is to reuse what it can, but if it builds something, the built
specs will respect defaults and preferences.

This is implemented by bumping the priority of optimization criteria
for built specs -- so that they take precedence over the otherwise
topmost-priority criterion to reuse what is installed.

The scheme relies on all of our optimization criteria being minimizations.
That is, we need the case where all specs are reused to be better than
any built spec could be. Basically, if nothing is built, all the build
criteria are zero (the best possible) and the number of built packages
dominates. If something *has* to be built, it must be strictly worse
than full reuse, because:

  1. it increases the number of built specs
  2. it must have either zero or some positive number for all criteria

Our optimziation criteria effectively sum into two buckets at once to
accomplish this. We use a `build_priority()` number to shift the
priority of optimization criteria for built specs higher.
2021-11-05 00:15:47 -07:00
Todd Gamblin
cfb60ab9e1 tests: make spack diff test more lenient
The constraints in the `spack diff` test were very specific and assumed
a lot about the structure of what was being diffed. Relax them a bit to
make them more resilient to changes.
2021-11-05 00:15:47 -07:00
Todd Gamblin
9eb94be6dd concretizer: only minimize builds when --reuse is enabled.
Make the first minimization conditional on whether `--reuse` is enabled in the solve.
If `--reuse` is not enabled, there will be nothing in the set to minimize and the
objective function (for this criterion) will be 0 for every answer set.
2021-11-05 00:15:47 -07:00
Todd Gamblin
40b914503e concretizer: adjust integrity constraints to only apply to builds.
Many of the integrity constraints in the concretizer are there to restrict how solves are done, but
they ignore that past solves may have had different initial conditions. For example, for things
we're building, we want the allowed variants to be restricted to those currently in Spack packages,
but if we are reusing a concrete spec, we need to be flexible about names that may have existed in
old packages.

Similarly, restrictions around compatibility of OS's, compiler versions, compiler OS support, etc.
are really only about what is supported by the *current* set of compilers/build tools known to
Spack, not about what we may get from concrete specs.

- [x] restrict certain integrity constraints to only apply to packages that we need to build, and
      omit concrete specs from consideration.
2021-11-05 00:15:47 -07:00
Todd Gamblin
2c142f9dd4 concretizer: rework operating system semantics for installed packages
The OS logic in the concretizer is still the way it was in the first version.
Defaults are implemented in a fairly inflexible way using straight logic. Most
of the other sections have been reworked to leave these kinds of decisions to
optimization. This commit does that for OS's as well.

As with targets, we optimize for target matches. We also try to optimize for
OS matches between nodes. Additionally, this commit adds the notion of
"OS compatibility" where we allow for builds to depend on binaries for certain
other OS's. e.g, for macos, a bigsur build can depend on an already installed
(concrete) catalina build. One cool thing about this is that we can declare
additional compatible OS's later, e.g. CentOS and RHEL.
2021-11-05 00:15:47 -07:00
Todd Gamblin
9c70d51a4f concretizer: impose() for concrete specs should use body facts.
The concretizer doesn't get a say in whether constraints from
concrete specs are imposed, so use body facts for them.
2021-11-05 00:15:47 -07:00
Todd Gamblin
3866b3e7d3 include installed hashes in solve and optimize for reuse 2021-11-05 00:15:47 -07:00
Todd Gamblin
7abe4ab309 rename checked_spec_clauses() to spec_clauses() 2021-11-05 00:15:47 -07:00
Todd Gamblin
ad5d632eeb add --reuse option to spack solve 2021-11-05 00:15:47 -07:00
Sinan
288176326c new package: librttopo (#27182)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-11-04 21:01:42 -06:00
Alec Scott
82b45d112f [New Package] Add Restic v0.12.1 (#27208)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-11-04 17:12:34 -07:00
Massimiliano Culpo
839057e98d Rename the temporary scope for bootstrap buildcache (#27231)
If we don't rename Spack will fail with:
```
ImportError: cannot bootstrap the "clingo" Python module from spec "clingo-bootstrap@spack+python %gcc target=x86_64" due to the following failures:
    'spack-install' raised ValueError: Invalid config scope: 'bootstrap'.  Must be one of odict_keys(['_builtin', 'defaults', 'defaults/cray', 'bootstrap/cray', 'disable_modules', 'overrides-0'])
    Please run `spack -d spec zlib` for more verbose error messages
```
in case bootstrapping from binaries fails and we are
falling back to bootstrapping from sources.
2021-11-04 16:17:00 -07:00
Ben Darwin
f2a42ac4c6 c3d: add new package (#27155) 2021-11-04 15:38:28 -07:00
Tamara Dahlgren
080f1872b8 Add the spack tutorial environment as a cloud pipeline stack (#27137) 2021-11-04 15:14:46 -07:00
Jerome Soumagne
c25a4ecfc2 libfabric: add 1.13.2 (#27202) 2021-11-04 15:04:40 -07:00
Massimiliano Culpo
79f754a968 Sort arguments lexicographically in command's help (#27196) 2021-11-04 12:41:58 -07:00
downloadico
084ce46107 exciting: add "oxygen" version, multiple fixes (#27217)
ensure that none of ^intel-mkl, ^intel-mpi, and ^mkl are used, unless
the compiler is intel.
Fix bad logic in the src/src_xs/m_makespectrum.f90 file in the oxygen version.
Add the -fallow-argument-mismatch for gcc >= 10.
2021-11-04 12:24:27 -07:00
Cameron Smith
7542d8adc8 omega-h: add support for stand-alone testing (#26931)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-11-04 12:02:02 -07:00
Joe Schoonover
4cc2adcbc3 Add new versions for HOHQMesh and switch to tar-ball releases (#27194)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-11-04 11:54:02 -07:00
Jon Rood
ed3d459a83 Add RelWithDebInfo to protobuf build_type list. (#27220) 2021-11-04 10:16:44 -07:00
Andre Merzky
f6ed8b6150 Feature/exaworks spack (#27216)
* add exaworks spack meta package

* add maintainer

* switch to `BundlePackage`

* flake8

* another flake8 fix

* remove incorrect dependency
2021-11-04 06:07:45 -06:00
Massimiliano Culpo
1dcabdbc8d mfem, hpx: fix recipes after conditional variants (#27215) 2021-11-04 03:52:38 -06:00
Seth R. Johnson
503576c017 kokkos: refactor defines to use helper functions (#27189) 2021-11-04 09:31:29 +01:00
Erik Schnetter
6a7b07c60b ssht: New version 1.5.1 (#27173) 2021-11-03 22:10:56 -06:00
Cameron Stanavige
7102e295b9 scr: 3.0rc2 release, variants and deps updates (#27178)
* scr: 3.0rc2 release, variants and deps updates

This adds 3.0rc2 release for end users to aid in testing scr for
upcoming 3.0 release.

Included in this change:
- Require most recent component versions for this release
- Add a variant for PDSH as it is now an optional dependency with
this release
- Add bbapi and datawarp (dw) variants
- bbapi_fallback variant now requires bbapi variant with latest
release
- Add variants to enable/disable examples and tests
- Add shared variant and current conflicts with ~shared
- Update cmake_args to account for added variants where needed

Additional updates:
- Add maintainers
- Use lists and for loops to clean up repetitive code involving all
components
- Use self.define and self.define_from_variant to clean up cmake_args
- Use consistent quoting throughout package

* Un-deprecate v2 and legacy

* Use new conditional variants
2021-11-03 20:06:02 -07:00
Erik Schnetter
b9cdaa5429 simulationio package: add variants asdf, hdf5, rnpl, silo (#27172)
Define new variants asdf, hdf5, rnpl, silo to allow disabling or
enabling dependencies.
2021-11-03 18:07:35 -07:00
Erik Schnetter
0d30799bef hwloc: New version 2.6.0 (#27170) 2021-11-03 15:45:38 -07:00
Erik Schnetter
4045ab45de mpitrampoline: New version 2.2.0 (#27171) 2021-11-03 15:42:14 -07:00
Erik Schnetter
91a6e38404 shtools: disable libtool, add 4.9.1, fix --test=root (#27014)
The Makefile expects the "other" libtool, not the GNU libtool we have in Spack.
Closes https://github.com/spack/spack/issues/26993
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-11-03 23:33:52 +01:00
Thomas Helfer
c0a81399bf tfel and mgis: add new versions and fix tests (#27011)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-11-03 23:24:28 +01:00
Andrew W Elble
7b3e02471b new package: telegraf (#27201) 2021-11-03 15:00:33 -07:00
David Boehme
47babb2518 Add Caliper v2.7.0 (#27197) 2021-11-03 13:22:43 -06:00
Seth R. Johnson
12a0738030 trilinos: mark conflicts in @:13.1+tpetra^cuda@11 (#27188)
* trilinos: fix @13.0.1+tpetra^cuda@11
* Mark CUDA conflict with old versions and always define TPL
* trilinos: patch doesn't build so just mark as conflict
2021-11-03 12:38:03 -06:00
Axel Huebl
e5a9beed28 WarpX: 21.11 (#27158)
Update `warpx` & `py-warpx` to the latest release, `21.11`.
2021-11-03 11:18:23 -07:00
Kyle Gerheiser
25f1aad1c8 nemsio package: add version 2.5.4; add option to build without MPI (#27030)
Version 2.5.4 adds an option which allows Nemsio to be built without MPI
2021-11-03 10:18:17 -07:00
Manuela Kuhn
09eb79b571 r-reprex: add 2.0.1 (#27174) 2021-11-03 12:05:28 -05:00
Satish Balay
346f3652c6 petsc, py-petsc4py: add versions 3.16.1 (#27152) 2021-11-03 10:52:35 -05:00
Manuela Kuhn
78b1512966 py-datalad: add 0.15.3 (#27193) 2021-11-03 09:49:46 -06:00
iarspider
dede8c9d6b New version: py-jupyterlab-pygments 0.1.2 (#27186) 2021-11-03 10:27:55 -05:00
Manuela Kuhn
8e4d5a0922 sip: fix python_include_dir (#26953) 2021-11-03 10:27:04 -05:00
Manuela Kuhn
5c13c5892b py-nibetaseries: add new package (#27187) 2021-11-03 10:26:30 -05:00
Greg Becker
67cd92e6a3 Allow conditional variants (#24858)
A common question from users has been how to model variants 
that are new in new versions of a package, or variants that are 
dependent on other variants. Our stock answer so far has been
an unsatisfying combination of "just have it do nothing in the old
version" and "tell Spack it conflicts".

This PR enables conditional variants, on any spec condition. The 
syntax is straightforward, and matches that of previous features.
2021-11-03 08:11:31 +01:00
Massimiliano Culpo
78c08fccd5 Bootstrap GnuPG (#24003)
* GnuPG: allow bootstrapping from buildcache and sources

* Add a test to bootstrap GnuPG from binaries

* Disable bootstrapping in tests

* Add e2e test to bootstrap GnuPG from sources on Ubuntu

* Add e2e test to bootstrap GnuPG on macOS
2021-11-02 23:15:24 -07:00
Richarda Butler
1a3747b2b3 Update docs how to display loaded modules (#27159)
* Update spack load docs
2021-11-02 22:12:08 -07:00
dependabot[bot]
a382a6c0e2 build(deps): bump actions/checkout from 2.3.5 to 2.4.0 (#27179)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.5 to 2.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1e204e9a92...ec3a7ce113)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-03 02:52:28 +00:00
Manuela Kuhn
61ded65888 r-dtplyr: add new package (#27112) 2021-11-03 00:24:21 +00:00
Dan Lipsa
f1fb816d93 Add build editions for catalyst builds. (#22676)
* Add build editions for catalyst builds.

* Fix style.

* Build edition works only for 5.8:
2021-11-02 17:36:53 -04:00
kwryankrattiger
f1afd5ff27 Add and propagate CUDA variants for DAV SDK (#26476) 2021-11-02 17:31:50 -04:00
Satish Balay
c9f8dd93f3 trilinos: new version 13.2.0 (#27106)
* trilinos: add @13.2.0, and switch default to cxxstd=14

* trilinos: fix python dependency when using +ifpack or +ifpack2

* trilinos: add conflict for ~epetra +ml when @13.2.0:

* trilinos: keep 13.0.1 as the preferred version

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

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

* update

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-11-02 13:07:42 -06:00
Greg Becker
b3711c0d9d Improved error messages from clingo (#26719)
This PR adds error message sentinels to the clingo solve, attached to each of the rules that could fail a solve. The unsat core is then restricted to these messages, which makes the minimization problem tractable. Errors that can only be generated by a bug in the logic program or generating code are prefaced with "Internal error" to make clear to users that something has gone wrong on the Spack side of things.

* minimize unsat cores manually

* only errors messages are choices/assumptions for performance

* pre-check for unreachable nodes

* update tests for new error message

* make clingo concretization errors show up in cdash reports fully

* clingo: make import of clingo.ast parsing routines robust to clingo version

Older `clingo` has `parse_string`; newer `clingo` has `parse_files`.  Make the
code work wtih both.

* make AST access functions backward-compatible with clingo 5.4.0

Clingo AST API has changed since 5.4.0; make some functions to help us
handle both versions of the AST.

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-11-02 10:55:50 -07:00
Manuela Kuhn
3187689862 r-googlesheets4: add new package (#27114) 2021-11-02 11:46:48 -06:00
Manuela Kuhn
00b6927c65 r-dbplyr: add 2.1.1 (#27111) 2021-11-02 17:35:56 +00:00
Manuela Kuhn
9dc790bbe2 r-haven: add 2.4.3 (#27115) 2021-11-02 17:07:55 +00:00
Manuela Kuhn
ae76692c2e r-lubridate: add 1.8.0 (#27117) 2021-11-02 16:55:27 +00:00
iarspider
fa63bebf36 New versions of py-jupyter-server; fix tests (#27153)
* New versions of py-jupyter-server; fix tests

* Update package.py
2021-11-02 10:37:53 -06:00
Tom Payerle
eee4522103 trilinos: Additional fix for linking C code when built with PyTrilinos (#19834)
This removes `-lpytrilinos` from Makefile.export.Trilinos so that C code
trying to link against a Trilinos built with PyTrilinos does not fail
due to undefined references to python routines (libpytrilinos is only
used when importing PyTrilinos in python, in which case those references
are already defined by Python).

There was already a bit of code to do something similar for C codes
importing Trilinos via a CMake mechanism, this extends that to a basic
Makefile mechanism as well.  This patch also updates the comments to
remove a stale link discussing this issue, and replacing with links to
the some Trilinos issue reports related to the matter.
2021-11-02 12:31:10 -04:00
Manuela Kuhn
b8a44870a4 r-vroom: add new package (#27118) 2021-11-02 11:28:43 -05:00
Manuela Kuhn
426033bc5b r-brms: add 2.16.1 (#27148) 2021-11-02 11:21:54 -05:00
Manuela Kuhn
c2a7f8c608 r-rvest: add 1.0.2 (#27147) 2021-11-02 11:21:09 -05:00
Manuela Kuhn
429a60c703 r-callr: add 3.7.0 (#27146) 2021-11-02 11:19:09 -05:00
Manuela Kuhn
23f8a7331e r-forcats: add 0.5.1 (#27113) 2021-11-02 11:17:22 -05:00
Manuela Kuhn
6e2de9e41f r-processx-3.5.2 (#27119) 2021-11-02 11:13:13 -05:00
Seth R. Johnson
9cfecec002 relocate: do not change library id to use rpaths on package install (#27139)
After #26608 I got a report about missing rpaths when building a
downstream package independently using a spack-installed toolchain
(@tmdelellis). This occurred because the spack-installed libraries were
being linked into the downstream app, but the rpaths were not being
manually added. Prior to #26608 autotools-installed libs would retain
their hard-coded path and would thus propagate their link information
into the downstream library on mac.

We could solve this problem *if* the mac linker (ld) respected
`LD_RUN_PATH` like it does on GNU systems, i.e. adding `rpath` entries
to each item in the environment variable. However on mac we would have
to manually add rpaths either using spack's compiler wrapper scripts or
manually (e.g. using `CMAKE_BUILD_RPATH` and pointing to the libraries of
all the autotools-installed spack libraries).

The easier and safer thing to do for now is to simply stop changing the
dylib IDs.
2021-11-02 17:04:29 +01:00
Manuela Kuhn
34b2742817 r-hms: add 1.1.1 (#27116) 2021-11-02 11:03:52 -05:00
Manuela Kuhn
9d124bdac6 r-crayon: add 1.4.1 (#27110) 2021-11-02 10:49:56 -05:00
Manuela Kuhn
507f7a94d9 r-broom: add 0.7.9 and 0.7.10 (#27109) 2021-11-02 10:48:32 -05:00
Sinan
5fdf6e5f68 package/qgis_revert_incorrect_constraint (#27140)
* package/qgis_revert_incorrect_constraint

* fix bug

* also update dependency constraints

* also update python version constraints

Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-11-02 10:43:29 -05:00
iarspider
669954a71d New version: py-isort 5.9.3 (#27144) 2021-11-02 10:42:34 -05:00
iarspider
6f44bf01e0 New version: py-jupyter-console 6.4.0; download sources from pip (#27150) 2021-11-02 10:37:37 -05:00
Joseph Wang
372fc78e98 yoda: add zlib as a dependency (#26454)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-11-02 12:37:23 +01:00
Cameron Smith
ca30940868 pumi: support build/install time and stand-alone testing (#26832) 2021-11-02 12:18:46 +01:00
Bernhard Kaindl
5a4d03060b gtk packages: fix dependencies (#26960)
gconf depends on gettext and libintl (dep: intltool)
glibmm, gtkmm, libcanberra and cups need pkgconfig
glibmm needs libsigc++ < 2.9x(which are 3.x pre-releases)
libsigc++@:2.9 depends on m4 for the build

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-11-02 10:39:25 +00:00
Chien-Chang Feng
bf411c7c55 pgplot: add intel compiler support and add more driver (#26761) 2021-11-02 11:30:28 +01:00
Massimiliano Culpo
3f3048e157 Fix GitHub Action's container build (#27143)
#26538 introduced a typo that causes the Docker image
build to fail.
2021-11-02 04:02:04 -06:00
Jean Luca Bez
85bdf4f74e h5bench: update maintainers and versions (#27083) 2021-11-02 10:52:36 +01:00
Glenn Johnson
cf50905ee9 modifications to docbook-xml (#27131)
- added more versions in case packages request a specific version of
  docbook-xml
- added a "current" alias to handle when packages use that
2021-11-02 10:50:07 +01:00
Glenn Johnson
f972863712 fsl: new version, updated constraints and patches (#27129)
- add version 6.0.5
- add patch to allow fsl to use newer gcc versions
- add patch to allow fsl to use newer cuda versions
- remove constraints on gcc and cuda versions
- add filters to prevent using system headers and libraries
- clean up the installed tree
2021-11-02 10:49:22 +01:00
Michael Kuhn
1e26e25bc8 spack arch: add --generic argument (#27061)
The `--generic` argument allows printing the best generic target for the
current machine. This can be quite handy when wanting to find the
generic architecture to use when building a shared software stack for
multiple machines.
2021-11-02 10:19:23 +01:00
Tamara Dahlgren
9d3d7c68fb Add tag filters to spack test list (#26842) 2021-11-02 10:00:21 +01:00
dependabot[bot]
94e0bf0112 build(deps): bump actions/checkout from 2.3.4 to 2.3.5 (#27135)
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.3.4 to 2.3.5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](5a4ac9002d...1e204e9a92)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-11-02 08:55:28 +01:00
iarspider
80807e6dd4 Add missing dependency to py-setuptools-scm (#27132) 2021-11-01 20:04:43 -06:00
Weiqun Zhang
840c9b7b4a amrex: add new release 21.11 (#27126) 2021-11-02 02:49:03 +01:00
Vicente Bolea
6a5ea3db99 vtkm: add v1.7.0-rc1 (#26882) 2021-11-02 02:42:10 +01:00
Manuela Kuhn
78a073218f r-tzdb: add new package (#27105) 2021-11-01 17:10:13 -05:00
Manuela Kuhn
881b2dcf05 r-rcpp: add 1.0.7 (#27088) 2021-11-01 17:09:18 -05:00
eugeneswalker
8bc01ff63c py-pylint needs pip for build (#27123)
* py-pylint: needs py-pip for build

* alphabetize py- dependencies

* add comment pointing to issue

* fix style
2021-11-01 21:50:36 +00:00
Andre Merzky
e0a929ba60 New package: exaworks (#27054) 2021-11-01 14:15:41 -07:00
Tamara Dahlgren
d4cecd9ab2 feature: add "spack tags" command (#26136)
This PR adds a "spack tags" command to output package tags or 
(available) packages with those tags. It also ensures each package
is listed in the tag cache ONLY ONCE per tag.
2021-11-01 20:40:29 +00:00
Chuck Atkins
b56f464c29 GCC 11 fixes (#27122)
* adios2: Fix compile errors for gcc 11

* unifyfs: Suppress bogus warnings for gcc 11

* conduit: Fix compile errors for gcc 11
2021-11-01 14:31:39 -06:00
Harmen Stoppels
6845307384 Pin actions to a commit sha instead of tag (#26538) 2021-11-01 10:44:03 -07:00
Bernhard Kaindl
02aa1d5d48 intel-gpu-tools: add v1.20 (#26588)
Add version 1.20, fix including the glib-2.0 header files
and add missing dependencies: libunwind and kmod.
2021-11-01 17:35:14 +01:00
Bernhard Kaindl
8ca411c749 glib: skip tests which we cannot make pass (#26693)
glib has a few tests which have external dependencies or
try to access the X server. We cannot run those.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-11-01 17:33:35 +01:00
Jon Rood
888de27210 kokkos-nvcc-wrapper: add HPE MPT to MPI environment variables (#27069) 2021-11-01 17:31:33 +01:00
Chuck Atkins
15d407c674 ci: Enable more packages in the DVSDK CI pipeline (#27025)
* ci: Enable more packages in the DVSDK CI pipeline

* doxygen: Add conflicts for gcc bugs

* dray: Add version constraints for api breakage with newer deps
2021-11-01 08:54:50 -07:00
Satish Balay
a1eb5596ec kokkos-kernels: add variant 'shared' (#27097)
* kokkos-kernels: add variant 'shared'

* Update var/spack/repos/builtin/packages/kokkos-kernels/package.py
2021-11-01 11:45:26 -04:00
iarspider
6c4f891b8f New version: py-typing-extensions 3.10.0.2 (#27120) 2021-11-01 10:04:18 -05:00
iarspider
99ee9a826a New version: py-beautifulsoup4 4.10.0 (#27121) 2021-11-01 10:02:57 -05:00
iarspider
8dcbd2ee6f alpgen: fix cms recipe (#26812) 2021-11-01 15:13:25 +01:00
Mahendra Paipuri
be0df5c47a ucx:add rocm variant (#26992)
Co-authored-by: mahendrapaipuri <mahendra.paipuri@inria.fr>
2021-11-01 15:05:56 +01:00
Ben Boeckel
80ba7040f8 python: detect Python from custom Xcode installations (#27023) 2021-11-01 07:55:15 -05:00
Hans Pabst
9094d6bb68 Updated LIBXSMM. (#27108) 2021-11-01 04:34:52 -06:00
Kenny Shen
3253faf01e cpp-argparse: new package (#27107) 2021-11-01 10:54:25 +01:00
Massimiliano Culpo
d73b1b9742 Fix caching of spack.repo.all_package_names() (#26991)
fixes #24522
2021-11-01 02:16:30 -06:00
Manuela Kuhn
b87678c2dd r-tidyr: add 1.1.4 (#27099) 2021-10-31 21:44:33 -05:00
Manuela Kuhn
8b8e7bd8e9 r-cpp11: add 0.4.0 (#27103) 2021-10-31 21:42:52 -05:00
Manuela Kuhn
200a1079d3 r-curl: add 4.3.2 (#27102) 2021-10-31 21:42:25 -05:00
Manuela Kuhn
3cd8381eb2 r-tidyselect: add 1.1.1 (#27101) 2021-10-31 21:41:16 -05:00
Manuela Kuhn
6b76b76d26 r-data-table: add 1.14.2 (#27100) 2021-10-31 21:40:36 -05:00
Manuela Kuhn
3406e8e632 r-dplyr: add 1.0.7 (#27098) 2021-10-31 21:40:07 -05:00
Manuela Kuhn
f363864f7f r-posterior: add new package (#27093) 2021-10-31 21:39:04 -05:00
Manuela Kuhn
543e5480a1 r-googledrive: add new package (#27095) 2021-10-31 21:37:26 -05:00
Manuela Kuhn
f8be56c941 r-withr: add 2.4.2 (#27094) 2021-10-31 21:35:41 -05:00
Manuela Kuhn
b6f6bbe371 r-nlme: add 3.1-153 (#27092) 2021-10-31 21:34:11 -05:00
Manuela Kuhn
ec8dc1830b r-bayesplot-1.8.1 (#27091) 2021-10-31 21:31:29 -05:00
Manuela Kuhn
86d2ab5240 r-mgcv: add 1.8-38 (#27090) 2021-10-31 21:30:34 -05:00
Manuela Kuhn
885e4d50e8 r-matrix: add 1.3-4 (#27089) 2021-10-31 21:29:54 -05:00
Manuela Kuhn
9397ca0a9f r-tibble: add 3.1.5 (#27087) 2021-10-31 21:25:19 -05:00
Manuela Kuhn
2b3207073d r-matrixstats: add 0.61.0 (#27086) 2021-10-31 21:23:10 -05:00
Manuela Kuhn
75a6d50fdc r-ids: add new package (#27104) 2021-10-31 21:21:54 -05:00
Bernhard Kaindl
6344d163b3 qt: @5.8:5.14.2 don't build with gcc@11, fix build of 5.6.3 (#27072)
5.14.2 fails with %gcc@11 with Error: 'numeric_limits' is not a class template
5.8.0 has multiple compile failures as well: Extend the conflict to those too.
- Fix also the confgigure of @5.6.3 (tested with %gcc@11)
2021-10-31 21:22:15 -04:00
Sinan
6c1f952bda package/qgis: fix runtime issue, improve package file, add new versions (#27084)
* package/qgis: fix runtime issue, improve package file, add new versions

* replace conflict with depends_on

* tidy up

Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-10-31 18:24:44 -05:00
iarspider
f45ef21e37 New versions of py-gitpython: 3.1.13 - 3.1.24 (#27052)
* New versions of py-gitpython

* Update package.py
2021-10-30 11:19:51 -05:00
iarspider
30573f5e5c New versions: py-gitdb 4.0.7, 4.0.8, 4.0.9 (#27051)
* New versions: py-gitdb 4.0.7, 4.0.8, 4.0.9

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

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

* Update package.py

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-30 11:19:22 -05:00
iarspider
4262a66f5e New versions of py-google-auth and py-google-auth-oauthlib (#27056)
* New versions of py-google-auth and py-google-auth-oauthlib

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-30 11:18:48 -05:00
iarspider
bdfb281a35 New version: py-deprecation 2.1.0 (#27001)
* New version: py-deprecation 2.1.0

* Update package.py
2021-10-30 07:25:31 -06:00
iarspider
0ef0a27ea0 New version: py-html5lib 1.1 (#27059)
* New verion: py-html5lib 1.1

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

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

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

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

* Update package.py

* Update package.py

* Update package.py

* Update package.py

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-30 06:10:32 -06:00
Glenn Johnson
15e5508fcf r-vctrs: Fix checksums after setting url to CRAN (#27080)
This package had its url set to a github url and was then changed to a
CRAN url. The checksums need to change as a result.
2021-10-30 09:51:20 +02:00
Vasileios Karakasis
b1c4c1b6ca Add more ReFrame versions (#27082) 2021-10-30 09:17:30 +02:00
Jon Rood
c19a4e12c7 trilinos: Avoid Intel compiler segfaults in Trilinos with STK (#27073) 2021-10-29 22:03:46 -04:00
Kyle Gerheiser
c19514e540 w3emc package: add versions 2.9.2 and 2.7.3 (#27031) 2021-10-29 16:39:45 -07:00
Manuela Kuhn
657b9204ca New package: r-distributional (#27048) 2021-10-29 16:37:59 -07:00
Adam J. Stewart
1aaa7bd089 GDAL package: add version 3.3.3 (#27071) 2021-10-29 16:21:28 -07:00
iarspider
9448864c0e New versions: ipython 7.27.0 and 7.28.0 (#27066)
* New versions: ipython 7.27.0 and 7.28.0

* Changes from MR (1/2)

* Fix dep name (2/2)
2021-10-29 17:13:44 -06:00
Scott Wittenburg
f2a36bdf14 pipelines: llvm kills the xlarge, use huge (#27079) 2021-10-29 22:01:35 +00:00
Peter Scheibel
7eddf3ae9b For Spack commands that fail but don't throw exceptions, we were discarding the return code (#27077) 2021-10-29 14:14:41 -07:00
iarspider
b9e63c9f42 New version: py-importlib-resources 5.3.0 (#27064)
* New version: py-importlib-resources 5.3.0

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-29 15:07:59 -06:00
Jen Herting
c38d3044fa New package: py-pypulse (#27026)
* python package py-pypulse created - per Andy

* URL fixed

* [py-pypulse]

- removed duplicate dependency
- updated copyright

* [py-pypulse] added version 0.1.1

* [py-pypulse] depends on setuptools

* [py-pypulse] url -> pypi

* [py-pypulse] simplified python dependency

Co-authored-by: Alex C Leute <aclrc@sporcsubmit.rc.rit.edu>
2021-10-29 14:58:58 -06:00
iarspider
ec23ce4176 New version: py-immutables 0.16 (#27060)
* New version: py-immutables 0.16

* Changes from review
2021-10-29 14:53:12 -06:00
Bernhard Kaindl
9a1626e54a py-slurm-pipeline: Add 4.0.4, Fix base.py: import six for @:3 (#26968)
* py-slurm-pipeline: Add 4.0.4, Fix base.py: import six for @:3

Before 4.0.0, slurm_pipeline/base.py has: `from six import string_types`

* Added depends_on('py-pytest@6.2.2:', type='build') as requested by Adam

* remove comment requested to be removed
2021-10-29 14:52:57 -06:00
Jon Rood
91408ef6ad trilinos: add MPICH and HPE MPT MPI environment variables (#27070) 2021-10-29 14:05:10 -06:00
genric
749640faf9 py-ipyparallel: add 7.1.0 (#26984) 2021-10-29 14:10:36 -05:00
Simon Pintarelli
494ba67704 sirius: add mpi datatypes patch for recent cray mpich (#27065) 2021-10-29 12:31:56 -06:00
Baptiste Jonglez
b8bc030a3c py-torch: Add a breakpad variant, disable it for ppc64 and ppc64le (#26990) 2021-10-29 13:00:48 -05:00
Massimiliano Culpo
3eb52b48b8 config add: infer type based on JSON schema validation errors (#27035)
- [x] Allow dding enumerated types and types whose default value is forbidden by the schema
- [x] Add a test for using enumerated types in the tests for `spack config add`
- [x] Make `config add` tests use the `mutable_config` fixture so they do not
      affect other tests

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-10-29 18:44:49 +02:00
Manuela Kuhn
20b7485cd4 r-cli: add 3.0.1 (#27047) 2021-10-29 10:57:14 -05:00
Manuela Kuhn
d36b045e2d r-afex: add 1.0-1 (#27032) 2021-10-29 10:55:46 -05:00
Thomas Madlener
874f06e29c curl: fix mbedtls versions and certs config (#26877)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-10-29 08:55:48 -06:00
Jon Rood
962d06441e m4: set times of m4.texi to fix build on Summit GPFS (#26994)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-29 16:05:41 +02:00
Bernhard Kaindl
fd10e54409 libssh2: skip the testsuite when docker is not installed (#26962)
The build-time testsuite which would be run when building
with tests needs docker. Check that it exists before
attempting to execute the tests.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-10-29 07:04:40 -06:00
Harmen Stoppels
49034abd76 Fix exit codes posix shell wrapper (#27012)
* Correct exit code in sh wrapper

* Fix tests

* SC2069
2021-10-29 08:10:22 +00:00
Harmen Stoppels
f610b506cd elfio: add minimum version requirements to cmake (#27033) 2021-10-29 09:28:19 +02:00
Axel Huebl
5a7496eb82 WarpX & HiPACE++: Constrain FFTW for No-MPI (#27043)
Contrain FFTW for no-MPI to simplify builds and logic to handle.
2021-10-29 09:19:23 +02:00
Valentin Churavy
7a6a232730 add Julia 1.7.0-rc2 (#27016) 2021-10-29 08:24:38 +02:00
Manuela Kuhn
4031ea5e03 r-gargle: add new (#27046) 2021-10-29 05:19:50 +00:00
Manuela Kuhn
852e14a655 r-openssl: add 1.4.5 (#27045) 2021-10-29 04:17:35 +00:00
Manuela Kuhn
5b2d9ae0b0 r-car: add 3.0-11 (#27044) 2021-10-29 04:14:06 +00:00
Manuela Kuhn
dc3b818192 r-future: add 1.22.1 (#27041) 2021-10-29 03:58:00 +00:00
Manuela Kuhn
5c1874c387 r-pillar: add 1.6.4 (#27040) 2021-10-29 03:47:42 +00:00
Manuela Kuhn
fcf6a46aeb r-digest: add 0.6.28 (#27039) 2021-10-29 03:00:10 +00:00
Manuela Kuhn
180bb5003c r-farver: add 2.1.0 (#27038) 2021-10-29 02:46:55 +00:00
Manuela Kuhn
2e880c5513 r-ggplot2: add 3.3.5 (#27037) 2021-10-29 02:36:49 +00:00
Manuela Kuhn
71412f547d r-generics: add 0.1.1 (#27034) 2021-10-29 01:44:13 +00:00
Harmen Stoppels
574395af93 Fix exit codes in fish (#27028) 2021-10-29 01:10:31 +00:00
Manuela Kuhn
c04b2fa26a r-rappdirs: add 0.3.3 (#26989) 2021-10-28 17:55:38 -05:00
Manuela Kuhn
19c77f11b6 r-emmeans: add 1.7.0 (#26987) 2021-10-28 17:54:24 -05:00
Manuela Kuhn
1f4ada6b22 r-fansi: add 0.5.0 (#26986) 2021-10-28 17:51:45 -05:00
Manuela Kuhn
4ff87ea04f r-lifecycle: add 1.0.1 (#26975) 2021-10-28 17:42:56 -05:00
Manuela Kuhn
d5520a264b r-parallelly: add 1.28.1 (#26974) 2021-10-28 17:40:58 -05:00
Manuela Kuhn
999044033b r-vctrs: add 0.3.8 (#26966) 2021-10-28 17:39:09 -05:00
Todd Gamblin
233dabbd4f bugfix: config edit should work with a malformed spack.yaml
If you don't format `spack.yaml` correctly, `spack config edit` still fails and
you have to edit your `spack.yaml` manually.

- [x] Add some code to `_main()` to defer `ConfigFormatError` when loading the
  environment, until we know what command is being run.

- [x] Make `spack config edit` use `SPACK_ENV` instead of the config scope
  object to find `spack.yaml`, so it can work even if the environment is bad.

Co-authored-by: scheibelp <scheibel1@llnl.gov>
2021-10-28 15:37:44 -07:00
Todd Gamblin
374e3465c5 bugfix: spack config get <section> in environments
`spack config get <section>` was erroneously returning just the `spack.yaml`
for the environment.

It should return the combined configuration for that section (including
anything from `spack.yaml`), even in an environment.

- [x] reorder conditions in `cmd/config.py` to fix
2021-10-28 15:37:44 -07:00
Todd Gamblin
2bd513d659 config: ensure that options like --debug are set first
`spack --debug config edit` was not working properly -- it would not do show a
stack trace for configuration errors.

- [x] Rework `_main()` and add some notes for maintainers on where things need
      to go for configuration to work properly.
- [x] Move config setup to *after* command-line parsing is done.

Co-authored-by: scheibelp <scheibel1@llnl.gov>
2021-10-28 15:37:44 -07:00
Todd Gamblin
56ad721eb5 errors: Rework error handling in main()
`main()` has grown, and in some cases code that can generate errors has gotten
outside the top-level try/catch in there. This means that simple errors like
config issues give you large stack traces, which shouldn't happen without
`--debug`.

- [x] Split `main()` into `main()` for the top-level error handling and
      `_main()` with all logic.
2021-10-28 15:37:44 -07:00
Manuela Kuhn
732be7dec6 r-ellipsis: add 0.3.2 (#26965) 2021-10-28 17:36:10 -05:00
Manuela Kuhn
895bd75762 r-rlang: add 0.4.12 (#26963) 2021-10-28 17:34:06 -05:00
Manuela Kuhn
dd1eb7ea18 r-mvtnorm: add 1.1-3 (#26957) 2021-10-28 17:31:43 -05:00
Manuela Kuhn
494dc0bd13 r-lme4: add 1.1-27.1 (#26955)
* r-lme4: add 1.1-27.1

* Use cran instead of explicit url
2021-10-28 17:30:21 -05:00
Manuela Kuhn
4b2564a2d6 llvm: fix gcc11 build for @11 (#27013) 2021-10-28 16:07:56 -06:00
iarspider
eb2d44a57b New versions of py-flake8 and py-pyflakes (#27008)
* New versions of py-flake8 and py-pyflakes

* Changes from review
2021-10-28 21:56:28 +00:00
Todd Gamblin
a1216138f6 config: fix SPACK_DISABLE_LOCAL_CONFIG, remove $user_config_path (#27022)
There were some loose ends left in ##26735 that cause errors when
using `SPACK_DISABLE_LOCAL_CONFIG`.

- [x] Fix hard-coded `~/.spack` references in `install_test.py` and `monitor.py`

Also, if `SPACK_DISABLE_LOCAL_CONFIG` is used, there is the issue that
`$user_config_path`, when used in configuration files, makes no sense,
because there is no user config scope.

Since we already have `$user_cache_path` in configuration files, and since there
really shouldn't be *any* data stored in a configuration scope (which is what
you'd configure in `config.yaml`/`bootstrap.yaml`/etc., this just removes
`$user_config_path`.

There will *always* be a `$user_cache_path`, as Spack needs to write files, but
we shouldn't rely on the existence of a particular configuration scope in the
Spack code, as scopes are configurable, both in number and location.

- [x] Remove `$user_config_path` substitution.
- [x] Fix reference to `$user_config_path` in `etc/spack/deaults/bootstrap.yaml`
      to refer to `$user_cache_path`, which is where it was intended to be.
2021-10-28 21:33:44 +00:00
Daryl W. Grunau
d0e177e711 depend on libevent when +pmix (#27020)
Co-authored-by: Daryl W. Grunau <dwg@lanl.gov>
2021-10-28 23:19:19 +02:00
Phil Carns
7fd1d2b03f mochi-margo: add version 0.9.6 (#26951) 2021-10-28 23:11:30 +02:00
Valentin Churavy
7f8b0d4820 add MPItrampoline 2.0.0 (#27019) 2021-10-28 22:20:38 +02:00
iarspider
612639534a New version: py-distro 1.6.0 (#27003) 2021-10-28 14:38:36 -05:00
iarspider
f512bb1dc1 New versions: docutils 0.17, 0.17.1, 0.18 (#27005) 2021-10-28 13:53:02 -05:00
Harmen Stoppels
6d030ba137 Deactivate previous env before activating new one (#25409)
* Deactivate previous env before activating new one

Currently on develop you can run `spack env activate` multiple times to switch
between environments, but they leave traces, even though Spack only supports
one active environment at a time.

Currently:

```console
$ spack env create a
$ spack env create b
$ spack env activate -p a
[a] $ spack env activate -p b
[b] [a] $ spack env activate -p b
[a] [b] [a] $ spack env activate -p a
[a] [b] [c] $ echo $MANPATH | tr ":" "\n"
/path/to/environments/a/.spack-env/view/share/man
/path/to/environments/a/.spack-env/view/man
/path/to/environments/b/.spack-env/view/share/man
/path/to/environments/b/.spack-env/view/man
```

This PR fixes that:

```console
$ spack env activate -p a
[a] $ spack env activate -p b
[b] $ spack env activate -p a
[a] $ echo $MANPATH | tr ":" "\n"
/path/to/environments/a/.spack-env/view/share/man
/path/to/environments/a/.spack-env/view/man
```
2021-10-28 11:39:25 -07:00
Tom Scogland
87e456d59c spack setup-env.sh: make zsh loading async compatible, and ~10x faster (in some cases) (#26120)
Currently spack is a bit of a bad actor as a zsh plugin, and it was my
fault.  The autoload and compinit should really be handled by the user,
as was made abundantly clear when I found spack was doing completion
initialization for *all* of my plugins due to a deferred setup that was
getting messed up by it.

Making this conditional took spack load time from 1.5 seconds (with
module loading disabled) to 0.029 seconds. I can actually afford to load
spack by default with this change in.

Hopefully someday we'll do proper zsh completion support, but for now
this helps a lot.

* use zsh hist expansion in place of dirname
* only run (bash)compinit if compdef/complete missing
* add zsh compiled files to .gitignore
* move changes to .in file, because spack
2021-10-28 11:32:59 -07:00
iarspider
5faa457a35 New version: py-fasteners 0.16.3 (#27006) 2021-10-28 13:15:50 -05:00
Harmen Stoppels
8ca3a0fdf8 Remove failing macOS test (#27009) 2021-10-28 09:30:51 -07:00
Brent Huisman
63fcb0331b Add Pybind11 v2.8 (#26867)
* Add Pybind11 v2.8

* Add Python dependency

* Update package.py

* Added Pybind v2.8.1
2021-10-28 16:14:49 +00:00
Robert Blackwell
8fd94e3114 YamlFilesystemView: improve file removal performance via batching (#24355)
* Drastically improve YamlFilesystemView file removal via batching

The `remove_file` routine has to check if the file is owned by multiple packages, so it doesn't
remove necessary files. This is done by the `get_all_specs` routine, which walks the entire
package tree. With large numbers of packages on shared file systems, this can take seconds
per file tree traversal, which adds up extremely quickly. For example, a single deactivate
of a largish python package in our software stack on GPFS took approximately 40 minutes.

This patch simply replaces `remove_file` with a batch `remove_files` routine. This routine
removes a list of files rather than a single file, requiring only one traversal per batch. In
practice this means a package can be removed in seconds time, rather than potentially hours,
essentially a ~100x speedup (ignoring initial deactivation logic, which takes about 3 minutes
in our test setup).
2021-10-28 07:39:16 -07:00
Harmen Stoppels
c13f915735 cmake: add v3.21.4, v3.20.6 (#27004) 2021-10-28 13:59:46 +00:00
Cameron Stanavige
afbc67fdd8 dtcmp & lwgrp: add shared variant (#26999) 2021-10-28 15:00:54 +02:00
Michael Kuhn
e9f3ef785d Fix sbang hook for non-writable files (#27007)
* Fix sbang hook for non-writable files

PR #26793 seems to have broken the sbang hook for files with missing
write permissions. Installing perl now breaks with the following error:
```
==> [2021-10-28-12:09:26.832759] Error: PermissionError: [Errno 13] Permission denied: '$SPACK/opt/spack/linux-fedora34-zen2/gcc-11.2.1/perl-5.34.0-afuweplnhphcojcowsc2mb5ngncmczk4/bin/cpanm'
```

Temporarily add write permissions to the original file so it can be
overwritten with the patched one.

And test that file permissions are preserved in sbang even for non-writable files

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-10-28 14:49:23 +02:00
Erik Schnetter
7c886bcac1 nsimd: add v3.0.1, determine SIMD variant automatically by default (#26850) 2021-10-28 14:38:48 +02:00
Paul Ferrell
4ee37c37de buildcaches: fix directory link relocation (#26948)
When relocating a binary distribution, Spack only checks files to see
if they are a link that needs to be relocated. Directories can be
such links as well, however, and need to undergo the same checks
and potential relocation.
2021-10-28 14:34:31 +02:00
Seth R. Johnson
890095e876 llvm: use cmake helper functions (#26988)
* llvm: use cmake helper functipack stns

* llvm: review feedback
2021-10-27 20:26:22 +00:00
iarspider
7416df692a New versions: py-cffi 1.15.0, 1.14.6 (#26979)
* New versions: py-cffi 1.15.0, 1.14.6

* Changes from review
2021-10-27 15:01:15 -05:00
iarspider
dd0770fd64 New versions of py-cachetools (#26976)
* New versions of py-cachetools

* Changes from review
2021-10-27 15:00:48 -05:00
iarspider
704c94429b New version: py-bottle@0.12.19 (#26973)
* New version: py-bottle@0.12.19

* Changes from review
2021-10-27 15:00:19 -05:00
Mark W. Krentel
21d909784c hpcviewer: add support for macosx, add version 2021.10 (#26823) 2021-10-27 19:51:14 +00:00
Kyle Gerheiser
e35eacf87b Add w3emc version 2.9.1 (#26880) 2021-10-27 12:05:06 -06:00
iarspider
dc40405fd6 New version: py-contextlib2 21.6.0 (#26985) 2021-10-27 11:08:25 -06:00
Massimiliano Culpo
3d5444fdd8 Remove documentation tests from GitHub Actions (#26981)
We moved documentation tests to readthedocs since a while,
so remove the one on GitHub.
2021-10-27 19:02:52 +02:00
iarspider
80d4a83636 New versions: py-boken@2.3.3, 2.4.0, 2.4.1 (#26972) 2021-10-27 11:59:42 -05:00
iarspider
39f46b1c3b New version: py-certifi 2021.10.8 (#26978) 2021-10-27 11:54:37 -05:00
H. Joe Lee
1fcc9c6552 hdf5-vol-log: add new package (#26956) 2021-10-27 16:48:44 +00:00
iarspider
1842785eae New version: py-commonmark 0.9.1 (#26983) 2021-10-27 11:47:28 -05:00
Mosè Giordano
acb8ab338d fftw: add v3.3.10 (#26982) 2021-10-27 15:29:53 +00:00
Bernhard Kaindl
d1803af957 fontconfig: add v2.13.94 and fix test with dash (#26961)
Fix install --test=root with /bin/sh -> dash: A test uses
SIGINT SIGTERM SIGABRT EXIT for trap -> use signal numbers
2021-10-27 16:20:57 +02:00
Bernhard Kaindl
f4431851ab perl-extutils-installpaths: depend on perl-extutils-config (#26969) 2021-10-27 16:02:14 +02:00
Pieter Ghysels
1f728ab4ce strumpack: add v6.1.0, remove unused variants (#26971) 2021-10-27 15:58:54 +02:00
Valentin Volkl
9fa20b8a39 recola: fix compilation (#26634)
* recola: fix compilation

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

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

* flake8

* fixes

* fix typo

* fix typo

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-10-27 07:19:35 -06:00
Todd Gamblin
4f124bc9e7 tests: speed up spack list tests (#26958)
`spack list` tests are not using mock packages for some reason, and many
are marked as potentially slow. This isn't really necessary; we don't need
6,000 packages to test the command.

- [x] update tests to use `mock_packages` fixture
- [x] remove `maybeslow` annotations
2021-10-27 05:10:39 -06:00
Harmen Stoppels
e04b172eb0 Allow non-UTF-8 encoding in sbang hook (#26793)
Currently Spack reads full files containing shebangs to memory as
strings, meaning Spack would have to guess their encoding. Currently
Spack has a fixed guess of UTF-8.

This is unnecessary, since e.g. the Linux kernel does not assume an
encoding on paths at all, it's just bytes and some delimiters on the
byte level.

This commit does the following:

1. Shebangs are treated as bytes, so that e.g. latin1 encoded files do
not throw UnicodeEncoding errors, and adds a test for this.
2. No more bytes than necessary are read to memory, we only have to read
until the first newline, and from there on we an copy the file byte by
bytes instead of decoding and re-encoding text.
3. We cap the number of bytes read to 4096, if no newline is found
before that, we don't attempt to patch it.
4. Add support for luajit too.

This should make Spack both more efficient and usable for non-UTF8
files.
2021-10-27 02:59:10 -07:00
Harmen Stoppels
2fd87046cd Fix assumption v.concrete => isinstance(v, Version) (#26537)
* Add test
* Only extend with Git version when using Version
* xfail v.concrete test
2021-10-27 02:58:04 -07:00
Harmen Stoppels
ae6e83b1d5 config: overrides for caches and system and user scopes (#26735)
Spack's `system` and `user` scopes provide ways for administrators and
users to set global defaults for all Spack instances, but for use cases
where one wants a clean Spack installation, these scopes can be undesirable.
For example, users may want to opt out of global system configuration, or
they may want to ignore their own home directory settings when running in
a continuous integration environment.

Spack also, by default, keeps various caches and user data in `~/.spack`,
but users may want to override these locations.

Spack provides three environment variables that allow you to override or
opt out of configuration locations:

 * `SPACK_USER_CONFIG_PATH`: Override the path to use for the
   `user` (`~/.spack`) scope.

 * `SPACK_SYSTEM_CONFIG_PATH`: Override the path to use for the
   `system` (`/etc/spack`) scope.

 * `SPACK_DISABLE_LOCAL_CONFIG`: set this environment variable to completely
   disable *both* the system and user configuration directories. Spack will
   only consider its own defaults and `site` configuration locations.

And one that allows you to move the default cache location:

 * `SPACK_USER_CACHE_PATH`: Override the default path to use for user data
   (misc_cache, tests, reports, etc.)

With these settings, if you want to isolate Spack in a CI environment, you can do this:

   export SPACK_DISABLE_LOCAL_CONFIG=true
   export SPACK_USER_CACHE_PATH=/tmp/spack

This is a stop-gap approach until we have figured out how to deal with
the system and user config scopes more generally, as there are plans to
potentially / eventually get rid of them.

**User config**

Spack is a bit of a pain when you have:

- a shared $HOME folder across different systems.
- multiple Spack versions on the same system.

**System config**

- On shared systems with a versioned programming environment / toolkit,
  system administrators want to provide config for each version (e.g.
  21.09, 21.10) of the programming environment, and the user Spack
  instance should be able to pick this up without a steep learning
  curve.
- On shared systems the user should be able to opt out of the
  hard-coded config scope in /etc/spack, since it may be incompatible
  with their particular instance. Currently Spack can only opt out of all
  config scopes through overrides with `"config:":`, `"packages:":`, but that
  also drops the defaults config, which would have to be repeated, which
  is undesirable, especially the lengthy packages.yaml.

An example use case is: having config in this folder:

```
/path/to/programming/environment/{version}/{compilers,packages}.yaml
```

and have `module load spack-system-config` set the variable

```
SPACK_SYSTEM_CONFIG_PATH=/path/to/programming/environment/{version}
```

where the user no longer has to worry about what `{version}` they are
on.

**Continuous integration**

Finally, there is the use case of continuous integration, which may
clone an arbitrary Spack version, which optimally should not pick up
system or user config from the previous run (like may happen in
classical bare metal non-containerized filesystem side effect ridden
jenkins pipelines). In fact this is very similar to how spack itself
tries to avoid picking up system dependencies during builds...

**But environments solve this?**

- You could do `include`s in environment files to get similar behavior
  to the spack_system_config_path example, but environments require you
  to:
  1) require paths to individual config files, not directories.
  2) fail if the listed config file does not exist
- They allow you to override config scopes, but this is generally too
  rigurous, as it requires you to repeat the default config, in
  particular packages.yaml, and just defies the point of layered config.

Co-authored-by: Tom Scogland <tscogland@llnl.gov>
Co-authored-by: Tim Fuller <tjfulle@sandia.gov>
Co-authored-by: Steve Leak <sleak@lbl.gov>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-10-26 18:08:25 -07:00
Ye Luo
7dc94b6683 Build OpenMP in LLVM via LLVM_ENABLE_RUNTIMES. (#26870) 2021-10-26 17:43:28 -06:00
Hao Lyu
02bea6d2d2 fix bug when there is version id in the path of compiler (#26916) 2021-10-26 14:12:58 -07:00
Greg Becker
9a637bbd09 modules: allow user to remove arch dir (#24156)
* allow no arch-dir modules

* add tests for modules with no arch

* document arch-specific module roots
2021-10-26 13:26:09 -07:00
Mark W. Krentel
444e156685 hpctoolkit: add version 2021.10.15 (#26881) 2021-10-26 13:15:09 -07:00
Richarda Butler
bc616a60b7 Py-Libensemble: Add E4S testsuite stand alone test (#26270) 2021-10-26 13:11:53 -07:00
Miroslav Stoyanov
ad03981468 fix the spack test dir (#26816) 2021-10-26 13:07:04 -07:00
Sreenivasa Murthy Kolam
5ee2ab314c ROCm packages: add RelWithDebInfo build_type (#26888)
Also set default build_type to Release for many ROCm packages.
2021-10-26 12:18:38 -07:00
Greg Becker
a8a08f66ad modules: configurable module defaults (#24367)
Any spec satisfying a default will be symlinked to `default`

If multiple specs have modulefiles in the same directory and satisfy
configured module defaults, then whichever was written last will be
default.
2021-10-26 19:34:06 +02:00
Kyle Gerheiser
dee75a4945 upp: Add version 10.0.10 (#26946) 2021-10-26 19:26:34 +02:00
Seth R. Johnson
aacdd5614e htop: add new URL and versions (#26928) 2021-10-26 19:14:06 +02:00
Ben Morgan
a2e5a28892 virtest: prevent out-of-order build/test (#26944)
Use of `-R` flag to CTest command causes "empty-14" test to run,
by matching "empty", before the empty-14 target is built.

Patch CTest command in buildscript to match name exactly.
2021-10-26 18:55:54 +02:00
Asher Mancinelli
94a9733822 hiop: update constraints and add new version (#26905)
* Update hiop package dependencies

* Use single quotes to shrink diff

* add hiop 0.5.1

* apply flake8

* Apply formatting suggestions
2021-10-26 11:43:03 -04:00
iarspider
fb1f3b1a1c Add checksum for py-argon2-cffi 21.1.0 and update python dependency (#26894)
* Add checksum for py-argon2-cffi 21.1.0 and update python dependency

* Update package.py
2021-10-26 09:32:11 -06:00
iarspider
d673e634d0 New versions: py-bleach 4.0.0 and 4.1.0 (#26947) 2021-10-26 09:23:10 -06:00
iarspider
1f1f121e8f New version: py-beniget 0.4.1 (#26945) 2021-10-26 09:02:03 -06:00
Wouter Deconinck
ba2a03e1da geant4: depends_on vecgeom@1.1.8:1.1 range (#26917)
* [geant4] depends_on vecgeom@1.1.8:1.1 range

While previous versions were unclear, the [geant4.10.7 release notes](https://geant4-data.web.cern.ch/ReleaseNotes/ReleaseNotes4.10.7.html) indicate that vecgeom@1.1.8 is a minimum required version, not an exact required version ("Set VecGeom-1.1.8 as minimum required version for optional build with VecGeom."). This will allow some more freedom on the concretizer solutions while allowing geant4 to take advantage of bugfixes and improvements in vecgeom.

* [vecgeom] new version 1.1.17
2021-10-26 10:31:37 -04:00
Seth R. Johnson
dad68e41e0 freetype: explicitly specify dependencies (#26942)
Freetype picked up 'brotli' from homebrew, causing issues downstream.
2021-10-26 04:07:48 -06:00
eugeneswalker
1ae38037ef tau: add version 2.30.2 (#26941) 2021-10-26 05:36:29 -04:00
Chuck Atkins
80d8c93452 unifyfs: Remove the hdf5 variant (examples only) (#26932)
UnifyFS doesn't actually use HDF5 for anything.  Enabling it only enables
a few examples to be built so it's not actually a dependency of the package.
2021-10-26 09:42:52 +02:00
Seth R. Johnson
bdcbc4cefe qt package: versions @:5.13 don't build with gcc@11: (#26922) 2021-10-25 18:20:54 -07:00
Ronak Buch
1d53810d77 charmpp: add version 7.0.0 (#26940) 2021-10-25 18:16:37 -07:00
Adam J. Stewart
4a8c53472d py-kornia: add version 0.6.1 (#26939) 2021-10-25 18:15:57 -07:00
Adam J. Stewart
b05df2cdc7 py-shapely: add version 1.8.0 (#26937) 2021-10-25 18:15:22 -07:00
Adam J. Stewart
92cef8d7ad py-scikit-learn: add version 1.0.1 (#26934) 2021-10-25 18:14:17 -07:00
Adam J. Stewart
912c6ff6e8 PyTorch/torchvision: add version 1.10.0/0.11.1 (#26889)
* For py-torch: Also update dependencies: many version constraints
  with an upper bound of @1.9 are now open (e.g. `@1.8.0:1.9` is
  converted to `@1.8.0:`).
* For py-torchvision: Also add 0.11.0 and update ^pil constraint
  to avoid building with 8.3.0
2021-10-25 15:26:12 -07:00
iarspider
cdcdd71b41 Add new versions of py-autopep8 and py-pycodestyle (#26924)
* Add new versions of py-autopep8 (1.5.7, 1.6.0) and py-pycodestyle (2.7.0, 2.8.0)

* Update package.py

* Restore old versions
2021-10-25 22:08:52 +00:00
Daniel Arndt
e221617386 deal.II package: Update CMake variable for >=9.3.0 (#26909) 2021-10-25 15:00:40 -07:00
Massimiliano Culpo
6063600a7b containerize: pin the Spack version used in a container (#21910)
This PR permits to specify the `url` and `ref` of the Spack instance used in a container recipe simply by expanding the YAML schema as outlined in #20442:
```yaml
container:
  images:
    os: amazonlinux:2
    spack:
      ref: develop
      resolve_sha: true
```
The `resolve_sha` option, if true, verifies the `ref` by cloning the Spack repository in a temporary directory and transforming any tag or branch name to a commit sha. When this new ability is leveraged an additional "bootstrap" stage is added, which builds an image with Spack setup and ready to install software. The Spack repository to be used can be customized with the `url` keyword under `spack`.

Modifications:
- [x] Permit to pin the version of Spack, either by branch or tag or sha
- [x] Added a few new OSes (centos:8, amazonlinux:2, ubuntu:20.04, alpine:3, cuda:11.2.1)
- [x] Permit to print the bootstrap image as a standalone
- [x] Add documentation on the new part of the schema
- [x] Add unit tests for different use cases
2021-10-25 13:09:27 -07:00
iarspider
ff65e6352f py-avro: new version 1.10.2 (#26927)
* Add checksum for py-avro@1.10.2

* Update package.py
2021-10-25 11:45:33 -05:00
Olli Lupton
06c983d38f cuda: add 11.4.1, 11.4.2, 11.5.0. (#26892)
* cuda: add 11.4.1, 11.4.2, 11.5.0.

Note that the curses dependency from cuda-gdb was dropped in 11.4.0.

* Update clang/gcc constraints.

* Address review, assume clang 12 is OK from 11.4.1 onwards.

* superlu-dist@7.1.0 conflicts with cuda@11.5.0.

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

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-10-25 09:05:21 -07:00
iarspider
b0752bf1b3 Add checksum for py-atomicwrites@1.4.0 (#26923) 2021-10-25 10:54:04 -05:00
Kendra Long!
c9847766e4 draco: new version 7_12_0 (#26907)
* Add draco-7_12_0 to package file

* Update hash to zip version
2021-10-25 11:35:38 -04:00
Kelly (KT) Thompson
86a9c703db eospac: new default version 6.5.0 (#26723)
* [pkg][new version] Provide eospac@6.5.0 and mark it as default.

* Merge in changes found in #21629

* Mark all alpha/beta versions as deprecated.

- Addresses @sethrj's recommendation
- Also add a note indicated why these versions are marked this way.
2021-10-25 11:10:46 -04:00
Harmen Stoppels
276e637522 Reduce verbosity of module files warning
1. Currently it prints not just the spec name, but the dependencies +
their variants + their compilers + their architectures + ...
2. It's clear from the context what spec the message applies to, so,
let's not print the spec at all.
2021-10-25 17:07:56 +02:00
Olivier Cessenat
b51e0b363e silo: new release 4.11 (#26876) 2021-10-25 08:13:54 -06:00
Manuela Kuhn
e9740a9978 py-nipype: add 1.7.0 (#26883) 2021-10-25 06:55:50 -06:00
Harmen Stoppels
cc8d8cc9cb Return early in do_fetch when there is no code or a package is external (#26926)
Co-authored-by: Ryan Krattiger <ryan.krattiger@kitware.com>
2021-10-25 13:51:23 +02:00
Todd Gamblin
de8e795563 virtuals: simplify virtual handling
These three rules in `concretize.lp` are overly complex:

```prolog
:- not provider(Package, Virtual),
   provides_virtual(Package, Virtual),
   virtual_node(Virtual).
```

```prolog
  :- provides_virtual(Package, V1), provides_virtual(Package, V2), V1 != V2,
     provider(Package, V1), not provider(Package, V2),
     virtual_node(V1), virtual_node(V2).
```

```prolog
provider(Package, Virtual) :- root(Package), provides_virtual(Package, Virtual).
```

and they can be simplified to just:

```prolog
provider(Package, Virtual) :- node(Package), provides_virtual(Package, Virtual).
```

- [x] simplify virtual rules to just one implication
- [x] rename `provides_virtual` to `virtual_condition_holds`
2021-10-25 09:11:04 +02:00
Massimiliano Culpo
6d69d23aa5 Add a unit test to prevent regression 2021-10-25 09:11:04 +02:00
Massimiliano Culpo
dd4d7bae1d ASP-based solver: a package eligible to provide a virtual must provide it
fixes #26866

This semantics fits with the way Spack currently treats providers of
virtual dependencies. It needs to be revisited when #15569 is reworked
with a new syntax.
2021-10-25 09:11:04 +02:00
Miguel Dias Costa
1e90160d68 berkeleygw: force openmp propagation on some providers of blas / ffw-api (#26918) 2021-10-25 07:42:05 +02:00
Michael Kuhn
dfcd5d4c81 hyperfine: new package (#26901) 2021-10-24 20:47:56 -04:00
Satish Balay
e3b7eb418f Add new math solver versions (#26903)
* tasmanian: add @7.7
* butterflypack: add @2.0.0
* pflotran: add @3.0.2
* alquimia: add @1.0.9
* superlu-dist: add @7.1.1
2021-10-24 20:45:44 -04:00
Michael Kuhn
fb5d4d9397 meson: add 0.60.0 (#26921) 2021-10-24 20:35:11 -04:00
Scott Wittenburg
2003fa1b35 Mark flaky test_ci_rebuild as xfail (#26911) 2021-10-24 22:46:26 +02:00
Michael Kuhn
b481b5114a Fix pkg-config dependencies (#26912)
pkg-config and pkgconf are implementations of the pkgconfig provider.
2021-10-24 20:39:50 +02:00
Michael Kuhn
d7148a74a0 glib: add 2.70.0 (#26915) 2021-10-24 20:39:30 +02:00
Seth R. Johnson
c255e91bba gcc: support alternate mechanism for providing GCC rpaths (#26590)
* gcc: support runtime ability to not install spack rpaths

Fixes #26582 .

* gcc: Fix malformed specs file and add docs

The updated docs point out that the spack-modified GCC does *not*
follow the usual behavior of LD_RUN_PATH!

* gcc: fix bad rpath on macOS

This bug has been around since the beginning of the GCC package file:
the rpath command it generates for macOS writes a single (invalid)
rpath entry.

* gcc: only write rpaths for directories with shared libraries

The original lib64+lib was just a hack for "in case either has one" but
it's easy to tell whether either has libraries that can be directly
referenced.
2021-10-24 13:46:52 -04:00
Michael Kuhn
5a38165674 python: add 3.9.7, 3.8.12, 3.7.12 and 3.6.15 (#26914) 2021-10-24 11:43:39 -06:00
Morten Kristensen
9e11e62bca py-vermin: add latest version 1.3.1 (#26920)
* py-vermin: add latest version 1.3.1

* Exclude line from Vermin since version is already being checked for

Vermin 1.3.1 finds that `encoding` kwarg of builtin `open()` requires Python 3+.
2021-10-24 16:49:05 +00:00
Mark Grondona
7fee7a7ce1 flux-core, -sched: update to latest versions, fix czmq build error (#26840)
* flux-core: fix compile error with czmq_containers
* Fix build with clang and gcc-11
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-23 17:37:44 +02:00
Jen Herting
7380161ea6 [py-emcee] added versions 3.0.2 and 3.1.1 (#26910)
* [py-emcee] added version 3.0.2

* [py-emcee] added version 3.1.1
2021-10-22 17:52:45 -06:00
eugeneswalker
0baec34dd7 E4S amd64 CI: add parsec (#26906) 2021-10-22 15:02:47 -06:00
Wouter Deconinck
d04b6e0fb5 acts: fix misspelled variant in depends_on (#26904)
Correct variant is plural `unit_tests`.
2021-10-22 12:19:51 -06:00
Harmen Stoppels
336c60c618 Document backport in py (#26897) 2021-10-22 19:14:35 +02:00
iarspider
0beb2e1ab2 Update py-aiohttp to 3.7.4 and py-chartdet to 4.0 (#26893)
* Update py-aiohttp to 3.7.4 and py-chartdet to 4.0

* Changes from review

* Update package.py

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-22 16:36:56 +00:00
iarspider
aa2bcbdc12 Use pypi for astroid; add versions 2.7.3 and 2.8.3; update dependencies (#26900)
* Use pypi for astroid; add versions 2.7.3 and 2.8.3; update dependencies

* py-six is not required for recent versions
2021-10-22 16:21:22 +00:00
Wouter Deconinck
d5880f3e7e acts: add v14.0.0, v14.1.0 added "python" and "analysis" variants (#26657) 2021-10-22 17:43:35 +02:00
Robert Cimrman
2d41d6fc9e py-sfepy: fix version 2021.3 tar.gz hash (#26890) 2021-10-22 10:23:58 -05:00
iarspider
8349a8ac60 Add py-asn1crypto@1.4.0 (#26895) 2021-10-22 10:22:30 -05:00
Manuela Kuhn
edc7341625 py-jupyterlab: add 3.1.18 and 3.2.1 (#26896) 2021-10-22 10:21:00 -05:00
Harmen Stoppels
609a42d63b Shorten long shebangs only if the execute permission is set (#26899)
The OS should only interpret shebangs, if a file is executable. 

Thus, there should be no need to modify files where no execute bit is set. 

This solves issues that are e.g. encountered while packaging software as 
COVISE (https://github.com/hlrs-vis/covise), which includes example data
in Tecplot format. The sbang post-install hook is applied to every installed
file that starts with the two characters #!, but this fails on the binary Tecplot
files, as they happen to start with #!TDV. Decoding them with UTF-8 fails 
and an exception is thrown during post_install.

Co-authored-by: Martin Aumüller <aumuell@reserv.at>
2021-10-22 16:55:19 +02:00
Harmen Stoppels
d274769761 Backport #186 from py-py to fix macOS failures (#26653)
Backports the relevant bits of 0f77b6e66f
2021-10-22 13:52:46 +02:00
Harmen Stoppels
7cec6476c7 Remove hard-coded repository in centos6 unit test (#26885)
This makes it easier to run tests in a fork.
2021-10-22 10:24:03 +02:00
Doug Jacobsen
d1d0021647 Add GCS Bucket Mirrors (#26382)
This commit contains changes to support Google Cloud Storage 
buckets as mirrors, meant for hosting Spack build-caches. This 
feature is beneficial for folks that are running infrastructure on 
Google Cloud Platform. On public cloud systems, resources are
ephemeral and in many cases, installing compilers, MPI flavors,
and user packages from scratch takes up considerable time.

Giving users the ability to host a Spack mirror that can store build
caches in GCS buckets offers a clean solution for reducing
application rebuilds for Google Cloud infrastructure.

Co-authored-by: Joe Schoonover <joe@fluidnumerics.com>
2021-10-22 06:22:38 +02:00
Miroslav Stoyanov
d024faf044 heffte: new version with rocm (#26878) 2021-10-22 01:12:46 +00:00
Cameron Stanavige
8b8bec2179 scr/veloc: component releases (#26716)
* scr/veloc: component releases

Update the ECP-VeloC component packages in preparation for an
upcoming scr@3.0rc2 release.

All
- Add new release versions
- Add new `shared` variant for all components
- Add zlib link dependency to packages that were missing it
- Add maintainers
- Use self.define and self.define_from_variant to clean up cmake_args

axl
- Add independent vendor async support variants

rankstr
- Update older version sha that fails checksum on install

* Fix scr build error

Lock dependencies for scr@3.0rc1 to the versions released at the same
time.
2021-10-21 18:05:59 -07:00
Frank Willmore
a707bf345d Add vacuumms package (#26838) 2021-10-21 17:12:08 -07:00
Robert Cimrman
9b28f99dd2 py-sfepy: add v2021.3 (#26865) 2021-10-21 23:50:38 +00:00
Manuela Kuhn
dbe1060420 py-neurokit2: add 0.1.4.1 (#26871)
* py-neurokit2: add 0.1.4.1

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-21 21:03:04 +00:00
eugeneswalker
3720d06e26 update E4S CI environments in preparation for 21.11 release (#26826)
* update E4S CI environments in preparation for 21.11 release

* e4s ci env: use clingo
2021-10-21 07:06:02 -07:00
Alexander Jaust
3176c6d860 [py-pyprecice] add v2.3.0.1 and fix hash of v2.2.1.1 (#26846) 2021-10-21 08:36:24 -05:00
Harmen Stoppels
3fa0654d0b Make 'spack location -e' print the current env, and 'spack cd -e' go to the current env (#26654) 2021-10-21 13:19:48 +02:00
Eric Brugger
7f4bf2b2e1 vtk: make use of system GLEW dependent on osmesa being disabled. (#26764) 2021-10-21 09:53:13 +02:00
Vanessasaurus
3fe1785d33 libabigail: support source install (#26807)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-10-21 09:22:22 +02:00
Wouter Deconinck
b65937e193 kassiopeia: add v3.8.0; new variants log4cxx, boost (#26841) 2021-10-21 07:44:57 +02:00
Alexander Jaust
97d244eb95 Make superlu-dist@7.1.0 request CMake 3.18.1 or newer (#26849) 2021-10-21 07:43:30 +02:00
Edward Hartnett
88591536c8 bacio: add v2.5.0 (#26851) 2021-10-21 07:41:47 +02:00
RichardABunt
f78e5383cc arm-forge: add v21.1 (#26852) 2021-10-21 07:41:06 +02:00
downloadico
34d4091dbc tramonto: add new package (#26858) 2021-10-21 07:18:33 +02:00
Stephen Hudson
afd4a72937 libEnsemble: add v0.8.0 (#26864) 2021-10-21 07:14:31 +02:00
Adam J. Stewart
342f89e277 py-numpy: add v1.21.3 (#26860) 2021-10-21 07:13:43 +02:00
Luc Berger
fc7178da17 Kokkos Kernels: updating maintainers and releases (#26855)
Adding the latests releases of Kokkos Kernels and the official maintainers for the package.
2021-10-20 12:19:56 -07:00
iarspider
594325ae09 Add py-sniffio version 1.2.0 and fix dependencies (#26847)
* Add py-sniffio version 1.2.0 and fix dependencies

* Changes from review
2021-10-20 16:30:26 +00:00
iarspider
fcff01aaaf Update py-anyio to 3.3.4 (#26821)
* Update py-anyio to 3.3.4

* Changes from PR
2021-10-20 10:36:45 -05:00
Manuela Kuhn
b9c633d086 py-bids-validator: add 1.8.4 (#26844) 2021-10-20 10:33:27 -05:00
kwryankrattiger
45bea7cef7 Update ECP dav helper for propagating variants (#26175) 2021-10-20 11:22:07 -04:00
Martin Aumüller
029b47ad72 embree: add checksums for 3.12.2 & 3.13.1 (#26675)
Includes fix for for dependency ispc: fix build if cc -m32 is not possible
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-20 16:41:18 +02:00
Tamara Dahlgren
cc8b6ca69f Add --preferred and --latest tospack checksum (#25830) 2021-10-20 13:38:55 +00:00
Adam J. Stewart
f184900b1a damask: fix maintainer GitHub handle (#26829) 2021-10-20 14:57:13 +02:00
Wouter Deconinck
abc8cfe8fa cppgsl: branch master is now main (#26834) 2021-10-20 14:56:01 +02:00
Massimiliano Culpo
56209cb114 Reduce verbosity of error messages when concretizing environments (#26843)
With this commit stacktraces of subprocesses are shown only if debug mode is active
2021-10-20 11:30:07 +00:00
Alexander Jaust
26b58701bc Fix typo in repositories.rst (#26845) 2021-10-20 11:11:17 +00:00
Wouter Deconinck
42a6e1fcee root: prepend dependent_spec.prefix.include to ROOT_INCLUDE_PATH (#26379)
Spack is not populating CPATH anymore (e3f97b37e6 (diff-259adc895c0b2e8fca42ffb99d8051eec0712c868d12d8da255d32f1663acdc7)), and downstream packages ([gaudi](1aa7758dbb/var/spack/repos/builtin/packages/gaudi/package.py (L116))) have alrady started to include this in their package.py files. Instead of propagating this to all downstream packages, it tries to address the issue at the source.
2021-10-20 09:15:14 +02:00
Massimiliano Culpo
1983d6d9d0 Pipelines: pin importlib-metadata and setuptools-scm versions (#26831)
This will hopefully be a hotfix for the issue with pipelines
in #26813 and #26820
2021-10-19 16:09:40 -07:00
Chris White
b7d94ebc4f allow camp to use blt package (#26765) 2021-10-19 16:09:15 -07:00
Harmen Stoppels
1b634f05e0 A single process pool is not something to boast about (#26837) 2021-10-19 23:04:52 +00:00
Greg Becker
7dc0ca4ee6 cray architecture detection for zen3/milan (#26827)
* Update cray architecture detection for milan

Update the cray architecture module table with x86-milan -> zen3
Make cray architecture more robust to back off from frontend
architecture to a recent ancestor if necessary. This should make
future cray updates less paingful for users.

Co-authored-by: Gregory Becker <becker33.llnl.gov>
Co-authored-by: Todd Gamblin <gamblin2@llnl.gov>
2021-10-19 21:39:50 +00:00
Kai Germaschewski
501fa6767b adios2: fix unresolved symbols in 2.6.0 when built with gcc10 (#23871) 2021-10-19 21:09:07 +00:00
Harmen Stoppels
e7c7f44bb6 Reduce verbosity of threaded concretization (#26822)
1. Don't use 16 digits of precision for the seconds, round to 2 digits after the comma
2. Don't print if we don't concretize (i.e. `spack concretize` without `-f` doesn't have to tell me it did nothing in `0.00` seconds)
2021-10-19 18:33:17 +00:00
iarspider
bc99d8a2fd Update py-zipp (#26819)
* Update py-zipp

* Fix typo
2021-10-19 13:29:32 -05:00
Garth N. Wells
2bfff5338f py-fenics-ffcx: dependency updates (#26783)
* Update py-fenics-ffcx dependencies

* Relax some version numbering

* Remove stray colon
2021-10-19 13:28:20 -05:00
iarspider
a678a66683 py-setuptools-scm: make py-tomli dependency an open range (#26820) 2021-10-19 16:08:56 +00:00
Massimiliano Culpo
4c082a5357 Relax os constraints in e4s pipelines (#26547) 2021-10-19 10:51:37 -05:00
Massimiliano Culpo
2d45a9d617 Speed-up environment concretization on linux with a process pool (#26264)
* Speed-up environment concretization with a process pool

We can exploit the fact that the environment is concretized
separately and use a pool of processes to concretize it.

* Add module spack.util.parallel

Module includes `pool` and `parallel_map` abstractions,
along with implementation details for both.

* Add a new hash type to pass specs across processes

* Add tty msg with concretization time
2021-10-19 10:09:34 -05:00
Ryan Mast
64a323b22d spdlog: add v1.9.0, v1.9.1 and v1.9.2 (#26777) 2021-10-19 16:55:36 +02:00
Ryan Mast
f7666f0074 asio: Add versions up to 1.20.0 (#26778) 2021-10-19 16:54:55 +02:00
Ryan Mast
b72723d5d9 cli11: added v2.1.1, v2.1.0 (#26780) 2021-10-19 16:54:33 +02:00
Ryan Mast
65d344b2f8 cli11: disable building the examples (#26781) 2021-10-19 16:53:45 +02:00
Adam J. Stewart
9afc5ba198 py-pandas: add v1.3.4 (#26788) 2021-10-19 16:50:42 +02:00
Christopher Kotfila
ad35251860 Fix trigger and child links in pipeline docs (#26814) 2021-10-19 14:44:36 +00:00
Paul
9eaccf3bbf Add Go 1.17.2 and 1.16.9 (#26794) 2021-10-19 16:30:59 +02:00
Mark Grondona
bb1833bc8c flux: update maintainer of flux-core, flux-sched (#26800) 2021-10-19 16:30:33 +02:00
Robert Pavel
c66aa858c2 Made Legion Dependency on Gasnet Tarball Explicit (#26805)
Made legion dependency on a gasnet tarball explicit so as to take
advantage of spack mirrors for the purpose of deploying on machines with
firewalls
2021-10-19 16:28:43 +02:00
Erik Schnetter
4fc8ed10cb nsimd: add v3.0 (#26806) 2021-10-19 16:27:29 +02:00
Adam J. Stewart
0de8c65a2d Libtiff: improve compression support (#26809) 2021-10-19 16:17:37 +02:00
genric
42fb34e903 py-xarray: add v0.18.2 (#26811) 2021-10-19 16:15:56 +02:00
iarspider
d6fc914a9b Update py-importlib-metadata and py-setuptools-scm (#26813) 2021-10-19 16:08:53 +02:00
Massimiliano Culpo
79c92062a8 Gitlab pipelines: use images from the Spack organization (#26796) 2021-10-19 14:38:39 +02:00
Scott Wittenburg
95538de731 Speed up pipeline generation (#26622)
- [x] Stage already concretized specs instead of abstract ones
- [x] Reduce number of network calls by reading naughty list up front
2021-10-18 20:58:02 -07:00
Miguel Dias Costa
d41ddb8a9c new package: berkeleygw (#21455) 2021-10-18 18:17:58 -07:00
Harmen Stoppels
2b54132b9a cosma: add new versions and improve package (#24136)
* cosma: add new versions and improve package

* Move method below depends_on's
2021-10-18 18:06:14 -07:00
Todd Gamblin
c5ca0db27f patches: make re-applied patches idempotent (#26784)
We use POSIX `patch` to apply patches to files when building, but
`patch` by default prompts the user when it looks like a patch
has already been applied. This means that:

1. If a patch lands in upstream and we don't disable it
   in a package, the build will start failing.
2. `spack develop` builds (which keep the stage around) will
   fail the second time you try to use them.

To avoid that, we can run `patch` with `-N` (also called
`--forward`, but the long option is not in POSIX). `-N` causes
`patch` to just ignore patches that have already been applied.
This *almost* makes `patch` idempotent, except that it returns 1
when it detects already applied patches with `-N`, so we have to
look at the output of the command to see if it's safe to ignore
the error.

- [x] Remove non-POSIX `-s` option from `patch` call
- [x] Add `-N` option to `patch`
- [x] Ignore error status when `patch` returns 1 due to `-N`
- [x] Add tests for applying a patch twice and applying a bad patch
- [x] Tweak `spack.util.executable` so that it saves the error that
      *would have been* raised with `fail_on_error=True`. This lets
      us easily re-raise it.

Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-10-18 23:11:42 +00:00
Mickaël Schoentgen
a118e799ae httpie: add v2.6.0 (#26791)
Signed-off-by: Mickaël Schoentgen <contact@tiger-222.fr>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-18 21:21:08 +00:00
Seth R. Johnson
bf42d3d49b file and python dependents: add missing dependencies (#26785)
* py-magic: delete redundant package

This package is actually named py-python-magic (since the project itself
is "python-magic").

* New package: libmagic

* Py-python-magic: add required runtime dependency on libmagic and new version

* Py-filemagic: add required runtime dependency

* py-magic: restore and mark as redundant

This reverts commit 4cab7fb69e.

* file: add implicit dependencies and static variant

Replaces redundant libmagic that I added. Compression headers were previously
being picked up from the system.

* Fix py-python-magic dependency

* Update python version requirements
2021-10-18 21:11:16 +00:00
Miroslav Stoyanov
e0ff44a056 tasmanian: add smoke test (#26763) 2021-10-18 16:09:46 -04:00
Seth R. Johnson
c48b733773 Make macOS installed libraries more relocatable (#26608)
* relocate: call install_name_tool less

* zstd: fix race condition

Multiple times on my mac, trying to install in parallel led to failures
from multiple tasks trying to simultaneously create `$PREFIX/lib`.

* PackageMeta: simplify callback flush

* Relocate: use spack.platforms instead of platform

* Relocate: code improvements

* fix zstd

* Automatically fix rpaths for packages on macOS

* Only change library IDs when the path is already in the rpath

This restores the hardcoded library path for GCC.

* Delete nonexistent rpaths and add more testing

* Relocate: Allow @executable_path and @loader_path
2021-10-18 13:34:16 -04:00
Shahzeb Siddiqui
3c013b5be6 docutils > 0.17 issue with rendering list items in sphinx (#26355)
* downgrade_docutils_version

* invalid version

* Update requirements.txt

* Improve spelling and shorten the reference link

* Update spack.yaml

* update version requirement

* update version to maximum of 0.16

Co-authored-by: bernhardkaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-10-18 16:55:46 +00:00
Harmen Stoppels
30e8dd95b5 Remove unused exist_errors in installer.py (#26650) 2021-10-18 15:53:51 +02:00
Harmen Stoppels
1e5f7b3542 Don't print error output in the test whether gpgconf works (#26682) 2021-10-18 15:52:53 +02:00
Sreenivasa Murthy Kolam
1156c7d0a9 allow multiple values for tensile_architecture and expand the gpu list for rocm-4.3.1 (#26745) 2021-10-18 08:48:07 +02:00
Xavier Delaruelle
cab17c4ac3 environment-modules: add version 5.0.1 (#26786) 2021-10-18 08:46:57 +02:00
Harmen Stoppels
33ef7d57c1 Revert 19736 because conflicts are avoided by clingo by default (#26721) 2021-10-18 08:41:35 +02:00
Valentin Volkl
9c7e71df34 py-jupytext: add new package (#26732)
* py-jupytext: add new package

* Apply suggestions from code review

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

* update jupytext dependencies

* Apply suggestions from code review

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

* py-jupytext: remove py-jupyerlab dependency

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-17 18:51:42 -05:00
Morten Kristensen
03f84fb440 py-vermin: add latest version 1.3.0 (#26787) 2021-10-17 11:46:53 -05:00
Valentin Volkl
d496568ff9 py-gevent: add version 1.5 (#26731)
* py-gevent: add version 1.5

* py-gevent: update dependencies for v1.5.0

* Apply suggestions from code review

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-17 11:07:11 -05:00
Sam Reeve
ba62b691a6 Add ECP tags for CoPA and related packages (#26739)
* Add ECP tags for CoPA (and related) packages

* Update CoPA maintainers
2021-10-17 10:00:28 -04:00
Ryan Mast
b794b5bd4d nlohmann-json: update to version 3.10.4 (#26779) 2021-10-17 09:56:20 -04:00
Bernhard Kaindl
64143f970e [Fix for the GitLab CI] phist: prefer @1.9.5 (1.9.6 is not compatible w/ mpich%gcc:9) (#26773)
* phist: Prefer 1.9.5 (1.9.6 uses mpi_f08, but not available in CI)

* phist: remove dupe of 1.9.5, missing preferred=True

Also, for 1.9.6, patch the (most, one does not work) tests to use
2021-10-16 11:18:07 -07:00
Scot Halverson
b2f059e547 Update GASNet package.py to include version 2021.9.0 (#26736) 2021-10-15 21:15:32 +02:00
Mosè Giordano
2cf7d43e62 libblastrampoline: add v3.1.0 (#26769)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-10-15 18:17:26 +00:00
Brice Videau
0bc1bffe50 Fix ruby dependent extensions. (#26729)
* Fix ruby dependent extensions.

* Added Kerilk as maintainer.
2021-10-15 16:59:32 +00:00
Axel Huebl
33da53e325 GCC: Conflict for <12 for M1 (#26318)
aarch64/M1 is only a supported build combination for GCC in
the planned GCC 12+ release.
2021-10-15 12:30:09 -04:00
Mickaël Schoentgen
6686db42ad py-charset-normalizer: add v2.0.7 (#26756)
Signed-off-by: Mickaël Schoentgen <contact@tiger-222.fr>
2021-10-15 15:58:09 +00:00
Manuela Kuhn
ec67bec22a py-rdflib: add 6.0.2 (#26757) 2021-10-15 10:35:59 -05:00
Manuela Kuhn
2a5a576667 py-ipykernel: add 6.4.1 and fix deps (#26758) 2021-10-15 10:34:51 -05:00
Manuela Kuhn
5dc8094f84 py-setuptools: add 58.2.0 (#26759) 2021-10-15 10:31:52 -05:00
Manuela Kuhn
012b4f479f py-jupyter-client: add 6.1.12 (#26760) 2021-10-15 10:30:50 -05:00
Harmen Stoppels
f8e4aa7d70 Revert "Don't run lsb_release on linux (#26707)" (#26754)
This reverts commit fcac95b065.
2021-10-15 09:34:04 +00:00
Harmen Stoppels
e0fbf09239 EnvironmentModifications: allow disabling stack tracing (#26706)
Currently Spack keeps track of the origin in the code of any
modification to the environment variables. This is very slow 
and enabled unconditionally even in code paths where the 
origin of the modification is never queried.

The only place where we inspect the origins of environment 
modifications is before we start a build, If there's an override 
of the type `e.set(...)` after incremental changes like 
`e.append_path(..)`, which is a "suspicious" change.

This is very rare though.

If an override like this ever happens, it might mean a package is
broken. If that leads to build errors, we can just ask the user to run
`spack -d install ...` and check the warnings issued by Spack to find
the origins of the problem.
2021-10-15 10:00:44 +02:00
Vanessasaurus
842e56efb8 libabigail: add v2.0 (#26753)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-10-15 07:53:29 +02:00
Joseph Wang
0749d94ad3 Disable parallel builds in groff and gosam-contrib (#26730)
Work around to #26726 and #26714
2021-10-15 07:20:18 +02:00
Cameron Rutherford
2bc0ea70ed HiOp: add v0.5.0 + small changes in dependencies (#26744) 2021-10-15 07:09:09 +02:00
kwryankrattiger
bf5ef3b6b9 paraview: add adios2 variant (#26728) 2021-10-15 07:07:04 +02:00
Timothy Brown
7ccdae5233 Removing NCEP Post (ncep-post). (#26749)
UPP and ncep-post are the same package, so this PR 
removes the duplication. 

ncep-post was originally named after the upstream repo
that now changed its name to UPP.
2021-10-15 07:04:14 +02:00
Eric Brugger
ea453db674 vtk: modify conflict between osmesa and qt (#26752) 2021-10-15 06:58:43 +02:00
Tamara Dahlgren
41d375f6a4 Stand-alone tests: disallow re-using an alias (#25881)
It can be frustrating to successfully run `spack test run --alias <name>` only to find you cannot get the results because you already use `<name>` in some previous stand-alone test execution.  This PR prevents that from happening.
2021-10-14 15:08:00 -07:00
Tamara Dahlgren
beb8a36792 Remove extra tag assignments (#26692) 2021-10-14 14:50:09 -07:00
Manuela Kuhn
28ebe2f495 py-datalad: add 0.15.2 (#26750) 2021-10-14 21:44:52 +00:00
Harmen Stoppels
4acda0839b cp2k: use variant propagation trick for virtuals (#26737) 2021-10-14 23:11:22 +02:00
Massimiliano Culpo
eded8f48dc ASP-based solver: add a rule for version uniqueness in virtual packages (#26740)
fixes #26718

A virtual package may or may not have a version, but it
never has more than one. Previously we were missing a rule
for that.
2021-10-14 23:06:41 +02:00
Christoph Junghans
d9d0ceb726 add py-pyh5md and update py-espressopp (#26746)
* add  py-pyh5md and update py-espressopp

* Update package.py
2021-10-14 19:17:02 +00:00
Bernhard Kaindl
6ca4d554cd libfive: Add all variants, +qt needs qt@5.15.2:+opengl (#26629)
Refresh of deps to fix the build and add variants from CMakeLists.txt
2021-10-14 11:42:01 -07:00
Mosè Giordano
74c6b7d8c1 sombrero: add version 2021-08-16 (#26741) 2021-10-14 19:41:50 +02:00
Bernhard Kaindl
95030a97b6 vc: Enable the testsuite, excluding tests failing on Zen2 (#26699)
This fixes running the testsuite, it adds the package virtest for it.
2021-10-14 09:02:31 -07:00
Miroslav Stoyanov
b64a7fe1ff switch to the smoke testing included in heffte (#26720) 2021-10-14 08:58:29 -07:00
iarspider
160371f879 alpgen: new package (#26713)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-10-14 16:58:09 +02:00
Thomas Madlener
49354140be edm4hep: new version, fix tests (depends on catch2) (#26679) 2021-10-14 14:04:45 +00:00
Thomas Madlener
25704ae8e6 podio: new version and fix python unittest env (#26649) 2021-10-14 13:54:02 +00:00
Bernhard Kaindl
a61853816f phist: Fix build of 1.9.6, fix build- and install-tests (#26727)
Primary fix:

Due to a typo in a version range, overlapping PR merges resulted
in a build failure of the latest version:
Don't attempt to remove a non-existing file for version 1.9.6.

Secondary fixes:

update_tpetra_gotypes.patch was mentioned twice, and the version
range has to exclude @1.4.2, to which it cannot be applied.

Add depend_on() py-pytest, py-numpy and pkgconfig with type='test'

@:1.9.0 fail with 'Rank mismatch with gfortran@10:, add a conflicts().

raise InstallError('~mpi not possible with kernel_lib=builtin!')
when applicable.

Fixes for spack install --test=root phist:

mpiexec -n12 puts a lot of stress on a pod and gets stuck in a loop
very often: Reduce the mpiexec procs and the number of threads.

Remove @run_after('build') @on_package_attributes(run_tests=True):
from 'def check()': fixes it from getting called twice

The build script of 'make test_install' for the installcheck expects
the examples to be copied to self.stage.path: Provide them.
2021-10-14 08:14:25 -04:00
AMD Toolchain Support
8c1399ff7c LAMMPS: update recipe for %aocc (#26710)
* updating the recipe for betterment

* addressing the suggesions received from reviewers

* adding package helper macros

Co-authored-by: mohan002 <mohbabul@amd.com>
2021-10-14 12:03:15 +00:00
Eric Brugger
2bc97f62fd Qt: Qt fixes for a Cray AMD system. (#26722)
* Qt fixes for a Cray AMD system.

* Update to latest changes.
2021-10-14 07:41:26 -04:00
Massimiliano Culpo
949094544e Constrain abstract specs rather than concatenating strings in the "when" context manager (#26700)
Using the Spec.constrain method doesn't work since it might
trigger a repository lookup which could break our directives
and triggers a circular import error.

To fix that we introduce a function to merge abstract anonymous
specs, based only on package names, which does not perform any
lookup in the repository.
2021-10-14 12:33:10 +02:00
Bernhard Kaindl
2c3ea68dd1 openslide: Fix missing dependencies: gdk-pixbuf and perl-alien-libxml2 (#26620)
Add missing pkgconfig to openslide and its dep perl-alien-libxml2.

Fix shared-mime-info to be a runtime dependency of gdk-pixbuf,
Otherwise, configure cannot detect use gdk-pixbuf without error.
2021-10-13 19:07:27 -05:00
Bernhard Kaindl
99200f91b7 r-imager: add depends_on('r+X') and bump version (#26697) 2021-10-13 19:02:54 -05:00
Satish Balay
36bd69021d dealii: @9.3.1 has build errors with boost@1.77.0 - so add dependency on boost@1.76.0 [or lower] (#26709) 2021-10-14 01:30:53 +02:00
Harmen Stoppels
fcac95b065 Don't run lsb_release on linux (#26707)
Running `lsb_release` on Linux takes about 50ms because it is written in
Python. We do not use the output, so this change makes use not call it.
2021-10-14 01:27:24 +02:00
Manuela Kuhn
0227fc3ddc py-mne: add full variant (#26702) 2021-10-13 16:59:46 -05:00
Keita Iwabuchi
7c8c29a231 metall: add version 0.17 (#26694)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-10-13 22:10:16 +02:00
Bernhard Kaindl
5782cb6083 magics: Add v4.9.3 to fix build with gcc@11, skip broken testcase (#26695)
To build with gcc-11, v4.9.3 is needed, conflict added for older revs.
2021-10-13 12:14:37 -07:00
Bernhard Kaindl
f4a132256a qgis: fix build of LTS release with proj>7 (#26696)
Co-authored-by: Sinan <sbulutw@gmail.com>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-13 20:42:18 +02:00
David Beckingsale
2864212ae3 Add camp 0.3.0 and 0.2.3 (#26717) 2021-10-13 18:41:35 +00:00
Bernhard Kaindl
87663c6796 vapor: Fix the build and update: Use correct deps and find numpy incdir (#26630)
vapor needs proj@:7 and gives a list of tested dependency versions.
Make it find the numpy include path and add version 3.5.0 as well
2021-10-13 13:25:18 -04:00
Bernhard Kaindl
14a929a651 sfcgal: build fails with cgal@:4.6, works with cgal@4.7: (#26642)
Use depends_on('cgal@4.7: +core') to fix the build
2021-10-13 11:47:09 -05:00
Bernhard Kaindl
bcd1272253 wireshark: Fix install race and skip network capture tests (#26698)
The network capture tests can't pass when built as normal user.
2021-10-13 12:39:19 -04:00
Todd Kordenbrock
6125117b5d SEACAS: add a Faodel variant (#26583)
* SEACAS: add a Faodel variant

* Use safer CMake and variant packages instead of directly adding parameters
Add a "+faodel ~mpi" dependency to balance "+faodel +mpi"
2021-10-13 12:39:11 -04:00
Satish Balay
37278c9fa0 superlu-dist add version 7.1.0 (#26708) 2021-10-13 11:34:43 -05:00
Patrick Gartung
047c95aa8d buildcache: do one less tar file extraction
The buildcache is now extracted in a temporary folder within the current store,
moved to its final place and relocated. 

"spack clean -s" has been extended to also clean the temporary extraction directory.

Add hardlinks with absolute paths for libraries in the corge, garply and quux packages
to detect incorrect handling of hardlinks in tests.
2021-10-13 17:38:29 +02:00
haralmha
e6b76578d2 Add version 4.12.0 (#26532) 2021-10-13 14:07:48 +00:00
iarspider
81c272fcb7 photos-f: new package (Fortran version) (#26703) 2021-10-13 15:56:11 +02:00
Jose E. Roman
c47eb7217e slepc: set up SLEPC_DIR for dependent packages (#26701) 2021-10-13 15:51:08 +02:00
Jen Herting
8ad608a756 py-convokit: new package (#26236)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-10-13 15:50:07 +02:00
Joseph Wang
252784ccf5 cppgsl: disable tests on gcc11 (#26593) 2021-10-13 09:36:45 -04:00
Bernhard Kaindl
b771c4ea01 phist: Fix build: ppc64_sse.patch only applies to 1.9.4 (#26704)
ppc64_sse.patch can only be applied to 1.9.4:
* Older releases don't have the patched file
* All newer releases carry the change of the patch already.
2021-10-13 09:20:50 -04:00
Francis Kloss
53461b7b04 salome-medcoupling: new package (with dependencies) (#25785)
Adds new packages for using MEDCoupling from SALOME platform
2021-10-13 13:50:37 +02:00
Joe Schoonover
4d58661d08 feq-parse: add version 1.1.0 and update maintainer (#26060) 2021-10-13 00:20:21 +00:00
Valentin Volkl
81d157b05e garfieldpp: update dependencies, add variant (#25816) 2021-10-13 02:13:50 +02:00
Jen Herting
0f9080738f [py-spacy] added version 2.3.7 (#25999) 2021-10-12 23:57:04 +00:00
Scott McMillan
b937aa205b Fix Amber patch target specification (#26687)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-10-13 00:15:05 +02:00
Jose E. Roman
31b0fe21a2 py-slepc4py: add missing depends_on() (#26688) 2021-10-13 00:09:19 +02:00
Bernhard Kaindl
e7bfaeea52 libical: Add missing deps: pkgconfig, glib and libxml2 (#26618)
Libical needs pkgconfig, glib and libxml2 to build.
2021-10-12 23:22:49 +02:00
Harmen Stoppels
1ed695dca7 Improve error messages for bootstrap download failures (#26599) 2021-10-12 22:11:07 +02:00
Bernhard Kaindl
b6ad9848d2 babelflow, parallelmergetree: fix build with gcc11 (#26681)
gcc-11 does not include the <limits> and <algorithm> as side effect
of including other header, at least not as often as earlier gcc did.
2021-10-12 21:45:00 +02:00
Stephen Herbein
8d04c8d23c flux-core, flux-sched: add 0.29.0, 0.18.0 and cleanup env vars (#26391)
Problem: Flux expects the `FLUX_PMI_LIBRARY_PATH` to point directly at
the `libpmi.so` installed by Flux.  When the env var is unset,
prepending to it results in this behavior.  In the rare case that the
env var is already set, then the spack `libpmi.so` gets prepended with a
`:`, which Flux then attempts to interpret as a single path.

Solution: don't prepend to the path, instead set the path to point to
the `libpmi.so` (which will be undone when Flux is unloaded).

* flux-core: remove deprecated environment variables

The earliest checksummed version in this package is 0.15.0. As of
0.12.0, wreck (and its associated paths) no longer exist in Flux. As of
0.13.0, the `FLUX_RCX_PATH` variables are no longer used. So clean up
these env vars from the `setup_run_environment`.
2021-10-12 21:39:43 +02:00
Adam J. Stewart
47554e1e2f GMT: add conflict for GCC 11 (#26684) 2021-10-12 17:56:17 +00:00
Bernhard Kaindl
862ce517ce gromacs: @2018:2020: add #include <limits> for newer %gcc builds (#26678)
gromacs@2018:2020.6 is fixed to build with gcc@11.2.0
by adding #include <limits> to a few header files.

Thanks to Maciej Wójcik <w8jcik@gmail.com> for testing versions.
2021-10-12 11:39:09 -06:00
Alexander Jaust
50a2316a15 Add missing spack command in basic usage tutorial (#26646)
The `find` command was missing for the examples forcing colorized output. Without this (or another suitable) command, spack produces output that is not using any color. Thus, without the `find` command one does not see any difference between forced colorized and non-colorized output.
2021-10-12 19:23:53 +02:00
Mark W. Krentel
2edfccf61d binutils: fix parallel make for version 2.36 (#26611)
There was a bug in 2.36.* of missing Makefile dependencies.  The
previous workaround was to require 2.36 to be built serially.  This is
now fixed upstream in 2.37 and this PR adds the patch to restore
parallel make to 2.36.
2021-10-12 19:01:46 +02:00
Veselin Dobrev
e2a64bb483 mfem: patch @4.3.0 to support hypre up to v2.23.0 (#26640) 2021-10-12 18:29:56 +02:00
Manuela Kuhn
ff66c237c0 py-niworkflows: add new package (#26639)
* py-niworkflows: add new package

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

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

* remove unnecessary comment

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-12 11:22:44 -05:00
Manuela Kuhn
f8910c7859 py-nistats: add new package (#26662)
* py-nistats: add new package

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

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

* remove `conflicts`

* remove test dependencies

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-12 11:22:00 -05:00
Harmen Stoppels
e168320bb1 spack: Add package (#25979)
* Make python 2 use 'from __future__ import absolute_import' to allow import spack.pkgkit

* Add Spack

* Improve ranges
2021-10-12 11:39:39 -04:00
Sergei Shudler
f58f5f8a0d babelflow, parallelmergetree: add the current versions (#26660) 2021-10-12 17:36:13 +02:00
Vanessasaurus
ce7eebfc1f allowing spack monitor to handle redirect (#26666)
when deployed on kubernetes, the server sends back permanent redirect responses.
This is elegantly handled by the requests library, but not urllib that we have
to use here, so I have to manually handle it by parsing the exception to
get the Location header, and then retrying the request there.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-10-12 17:29:22 +02:00
Jonas Thies
f66ae104bf phist: force MPI compiler wrappers (#26312)
* packages/phist, re #26002: force phist to use MPI compiler wrappers (copied from trilinos package)

* packages/phist re #26002, use cmake-provded FindMPI module only

* packages/phist source code formatting

* packages/phist: set MPI_HOME rather than MPI_BASE_DIR, thanks @sethri.

* phist: delete own FindMPI.cmake for older versions (rather than patching it away)

* packages/phist: remove blank line

* phist: adjust sorting of imports

* phist: change order of imports
2021-10-12 11:11:00 -04:00
Joseph Wang
1e382d6d20 madgraph5amc: Add changes fixing bugs shown by gcc10 (#26643) 2021-10-12 15:55:48 +02:00
Martin Aumüller
6f8f37ffb1 ispc: update development branch name and limit to llvm@12 (#26676)
1.16 and 1.16.1 are not compatible with LLVM 13
2021-10-12 14:31:24 +02:00
Massimiliano Culpo
551120ee0b ASP-based solver: decrease the priority of multi-valued variant optimization for root (#26677)
The ASP-based solver maximizes the number of values in multi-valued
variants (if other higher order constraints are met), to avoid cases
where only a subset of the values that have been specified on the
command line or imposed by another constraint are selected.

Here we swap the priority of this optimization target with the
selection of the default providers, to avoid unexpected results
like the one in #26598
2021-10-12 14:15:48 +02:00
Harmen Stoppels
c2bf585d17 Fix potentially broken shutil.rmtree in tests (#26665)
Seems like https://bugs.python.org/issue29699 is relevant. Better to
just ignore errors when removing them tmpdir. The OS will remove it
anyways.

Errors are happening randomly from tests that are using this fixture.
2021-10-12 14:01:52 +02:00
Martin Diehl
66b32b337f damask{,-grid,-mesh}: add @3.0.0-alpha5 (#26570) 2021-10-12 13:22:09 +02:00
Maciej Wójcik
4b2cbd3aea gromacs: Add Gromacs 2020.6 and Plumed 2.7.2 (#26663) 2021-10-12 13:01:10 +02:00
Bernhard Kaindl
cb06f91df7 boost: Fix build of 1.53:1.54 with glibc>=2.17 (#26659)
Fix missing declaration of uintptr_t with glibc>=2.17 in 1.53:1.54
See: https://bugs.gentoo.org/482372
2021-10-12 10:59:36 +02:00
Harmen Stoppels
0c0831861c Avoid quadratic complexity in log parser (#26568)
TL;DR: there are matching groups trying to match 1 or more occurrences of
something. We don't use the matching group. Therefore it's sufficient to test
for 1 occurrence. This reduce quadratic complexity to linear time.

---

When parsing logs of an mpich build, I'm getting a 4 minute (!!) wait
with 16 threads for regexes to run:

```
In [1]: %time p.parse("mpich.log")
Wall time: 4min 14s
```

That's really unacceptably slow... 

After some digging, it seems a few regexes tend to have `O(n^2)` scaling
where `n` is the string / log line length. I don't think they *necessarily*
should scale like that, but it seems that way. The common pattern is this

```
([^:]+): error
```

which matches `: error` literally, and then one or more non-colons before that. So
for a log line like this:

```
abcdefghijklmnopqrstuvwxyz: error etc etc
```

Any of these are potential group matches when using `search` in Python:

```
abcdefghijklmnopqrstuvwxyz
 bcdefghijklmnopqrstuvwxyz
  cdefghijklmnopqrstuvwxyz
                         ⋮
                        yz
                         z
```

but clearly the capture group should return the longest match.

My hypothesis is that Python has a very bad implementation of `search`
that somehow considers all of these, even though it can be implemented
in linear time by scanning for `: error` first, and then greedily expanding
the longest possible `[^:]+` match to the left. If Python indeed considers
all possible matches, then with `n` matches of length `1 .. n` you
see the `O(n^2)` slowness (i verified this by replacing + with {1,k}
and doubling `k`, it doubles the execution time indeed).

This PR fixes this by removing the `+`, so effectively changing the 
O(n^2) into a O(n) worst case.

The reason we are fine with dropping `+` is that we don't use the
capture group anywhere, so, we just ensure `:: error` is not a match
but `x: error` is.

After going from O(n^2) to O(n), the 15MB mpich build log is parsed
in `1.288s`, so about 200x faster.

Just to be sure I've also updated `^CMake Error.*:` to `^CMake Error`,
so that it does not match with all the possible `:`'s in the line.
Another option is to use `.*?` there to make it quit scanning as soon as
possible, but what line that starts with `CMake Error` that does not have
a colon is really a false positive...
2021-10-12 00:05:11 -07:00
Manuela Kuhn
580a20c243 py-templateflow: add 0.4.2 (#26471)
* py-templateflow: add 0.4.2

* py-templateflow: fix python dependency for 0.4.2

* py-templateflow: remove wheel dependency for older versions
2021-10-11 21:37:50 -05:00
Manuela Kuhn
eb486371b2 py-pysurfer: add new package (#26638) 2021-10-11 21:36:43 -05:00
Manuela Kuhn
0da892f2dd py-pandas: fix installation and tests for versions @:0.25 (#26668) 2021-10-12 00:44:32 +00:00
Daniele Cesarini
a36a5ab624 fleur: new package (#26631) 2021-10-12 02:31:23 +02:00
Todd Kordenbrock
af2ecf87d4 Faodel: Update for the v1.2108.1 release (#26516) 2021-10-11 23:17:42 +00:00
Valentin Volkl
a0b9face0d frontier-client: add missing openssl dependency (#26636) 2021-10-12 01:02:12 +02:00
Kevin Pedretti
0b62974160 openblas: fix build on riscv64 (#26565)
OpenBLAS now has support for the riscv64 architecture. This commit
extends the spack openblas package.py to handle building on riscv64.
2021-10-12 00:55:45 +02:00
Alan Sill
833f1de24a bcl2fastq2: add boost@1.55 as default boost dependency (#26655)
When PR #26659 is merged, boost version boost@1.54.0 will be available for build too.

Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-10-11 22:21:17 +00:00
Bernhard Kaindl
4eb176b070 motif package: fix linking the simple_app demo program (#26574) 2021-10-11 15:00:42 -07:00
Desmond Orton
95e63e0c29 New Package Qualimap:2.2.1 (#26615)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-10-11 19:28:34 +00:00
Derek Ryan Strong
2644a15ff9 GNU parallel package: add version 20210922 (#26591) 2021-10-11 12:08:06 -07:00
Marie Houillon
c7785b74be openCARP packages: add version 8.1 (#26602) 2021-10-11 12:07:05 -07:00
Bernhard Kaindl
260f4ca190 mapserver: Add missing deps: giflib and postgresql (#26619) 2021-10-11 12:04:18 -07:00
Michael Kuhn
d1f3279607 installer: Support showing status information in terminal title (#16259)
Installing packages with a lot of dependencies does not have an easy way
of judging the current progress (apart from running `spack spec -I pkg`
in another terminal). This change allows Spack to update the terminal's
title with status information, including its current progress as well as
information about the current and total number of packages.
2021-10-11 17:54:59 +02:00
Seth R. Johnson
8f62039d45 llvm: add conflict for newer apple-clang versions (#26633) 2021-10-11 17:49:23 +02:00
Bernhard Kaindl
2e9512fe8b mesa: gallium fails with llvm@13: use 'llvm@6:12', add mesa@21.2.3 (#26627)
The software rasterizer of Mesa's Gallium3D(even @21.2.3) fails to
build with llvm@13.0.0, use: depends_on('llvm@6:12', when='+llvm')
2021-10-11 17:34:33 +02:00
Matthew Archer
e034930775 kahip: update build system to cmake for v3.11, retain scons for older versions (#25645)
* kahip: update to cmake for v3.11, retain scons for older versions

* kahip: update build system to cmake for v3.11, retain SCons for older versions

* address PR comments and add maintainer

* address PR comments - correct version to 2.10, add deprecated and url, and remove scons version
2021-10-11 10:20:43 -05:00
Daniele Cesarini
79aba5942a Update of siesta libs (#26489) 2021-10-11 09:09:39 -05:00
iarspider
78200b6b41 Add new versions of kiwisolver (#26597) 2021-10-11 09:09:01 -05:00
Harmen Stoppels
89220bc0e1 Only install env modifications in <prefix>/.spack (#24081)
- Do not store the full list of environment variables in
  <prefix>/.spack/spack-build-env.txt because it may contain user secrets.

- Only store environment variable modifications upon installation.

- Variables like PATH may still contain user and system paths to make
  spack-build-env.txt sourceable. Variables containing paths are
  modified through prepending/appending, and if we don't apply these
  to the current environment variable, we end up with statements like
  `export PATH=/path/to/spack/bin` with system paths missing, meaning
  no system binaries are in the path, which is a bad user experience.

- Do write the full environment to spack-build-env.txt in the staging dir,
  but ensure it is readonly for the current user, to make it a bit safer
  on shared systems.
2021-10-11 09:07:45 -05:00
Harmen Stoppels
c0c9ab113e Add spack env activate --temp (#25388)
Creates an environment in a temporary directory and activates it, which
is useful for a quick ephemeral environment:

```
$ spack env activate -p --temp
[spack-1a203lyg] $ spack add zlib
==> Adding zlib to environment /tmp/spack-1a203lyg
==> Updating view at /tmp/spack-1a203lyg/.spack-env/view
```
2021-10-11 06:56:03 -04:00
Harmen Stoppels
f28b08bf02 Remove unused --dependencies flag (#25731) 2021-10-11 10:16:11 +02:00
iarspider
ad75f74334 New package: py-cppy (required for py-kiwisolver) (#26645) 2021-10-10 17:14:20 -05:00
Manuela Kuhn
4e1fdfeb18 py-nilearn: add 0.4.2 and 0.6.2 (#26635) 2021-10-09 19:14:13 -05:00
Manuela Kuhn
7f46b9a669 py-pyvistaqt: add new package (#26637) 2021-10-09 21:00:00 +00:00
Michael Kuhn
5deb8a05c4 environment-modules: fix build (#26632)
PR #25904 moved the `--with-tcl` option to only older versions. However,
without this option, the build breaks:
```
checking for Tcl configuration... configure: error: Can't find Tcl configuration definitions. Use --with-tcl to specify a directory containing tclConfig.sh
```
2021-10-09 12:43:54 -05:00
Bernhard Kaindl
9194ca1e2f idna: Add versions 2.9 for sierrapy #23768 and 3.2(current) (#26616)
py-sierrapy was merged accidentally and pins its versions to exact
numbers. Add 2.9 as the version for sierrapy and the current 3.2
2021-10-09 11:31:11 -05:00
Joseph Wang
e6cc92554d py-awkward: add py-yaml as depends (#26626) 2021-10-09 17:35:22 +02:00
Joseph Wang
03ab5dee31 evtgen: fix pythia typo (#26625) 2021-10-09 16:11:58 +02:00
Bernhard Kaindl
93df47f4d5 librsvg: fix build when does not use -pthread for linking (#26592)
librsvg uses pthread_atfork() but does not use -pthread on Ubuntu 18.04 %gcc@8
2021-10-09 13:10:13 +02:00
Derek Ryan Strong
4b5cc8e3bd Add R 4.1.1 (#26589) 2021-10-08 20:02:03 -05:00
Derek Ryan Strong
e89d4b730a Add Julia 1.6.3 (#26624) 2021-10-09 00:58:19 +00:00
Massimiliano Culpo
2386630e10 Remove DB reindex during a read operation (#26601)
The DB should be what is trusted for certain operations.
If it is not present when read we should assume the
corresponding store is empty, rather than trying a
write operation during a read.

* Add a unit test
* Document what needs to be there in tests
2021-10-08 22:35:23 +00:00
Bernhard Kaindl
21ce23816e py-twisted,py-storm: dep on zope.interface, bump storm version (#26610)
* py-twisted,py-storm: dep on zope.interface, bump storm version

py-twisted and py-storm's import tests need zope.interface.
py-storm: Use pypi and add version 0.25. It didn't change reqs.
zope.infterface@4.5.0 imports removed Feature: Use setuptools@:45

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

* py-storm: all deps updated with type=('build', 'run')

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-08 21:20:39 +00:00
psakievich
8ebb705871 Trilinos: update for CUDA and Nalu-Wind (#26614) 2021-10-08 21:08:54 +00:00
Bernhard Kaindl
7e8f2e0c11 py-hypothesis: Add variants django, dumpy, pandas and fix import tests (#26604) 2021-10-08 21:00:47 +00:00
Manuela Kuhn
654268b065 py-bcrypt, py-bleach, py-decorator, py-pygdal: fix python dependency (#26596)
* py-bcrypt, py-bleach, py-decorator, py-pygdal: fix python dependency

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-08 15:56:22 -05:00
Bernhard Kaindl
6d0d8d021a py-pymatgen: fix build of old versions, bump version to 2021.3.9 (#26249)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-08 19:54:40 +00:00
Bernhard Kaindl
f1f614ee9f py-anytree: Add dep py-six@1.9.0 as required by setup.py (#26603)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-08 19:36:12 +00:00
Manuela Kuhn
88c33686fd py-matplotlib: fix 3.4.3 (#26586)
* py-matplotlib: fix 3.4.3

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-08 13:52:10 -05:00
Bernhard Kaindl
de86726483 py-traceback2: Fix depends_on: add six and py-linecache2 (#26607) 2021-10-08 13:35:36 -05:00
Bernhard Kaindl
a95c1dd615 py-keras-preprocessing: Add missing deps: six@1.9.0: and numpy@1.9.1: (#26605)
* py-keras-preprocessing: Add missing deps: six@1.9.0: and numpy@1.9.1:

Add deps: pip download --no-binary :all: keras-preprocessing==1.1.2
Collecting numpy>=1.9.1
  Installing build dependencies: started
Collecting six>=1.9.0

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-08 13:34:25 -05:00
Harmen Stoppels
7d89a95028 Fix leaky spack.binary_distribution.binary_index in tests (#26609)
* Fix issues with leaky binary index across tests

* More rigorous binary_index reset as now other tests are failing :(
2021-10-08 13:41:47 -04:00
Manuela Kuhn
32b35e1a78 py-neurora: add new package (#26479) 2021-10-08 13:39:45 +00:00
Tamara Dahlgren
7f2611a960 Allow Version('') and map it to the empty tuple (#25953) 2021-10-08 10:36:54 +02:00
Rodrigo Ceccato de Freitas
169d0a5649 cling: add missing CMake dependency (#26577) 2021-10-08 09:28:37 +02:00
Adam J. Stewart
f390289629 More strict ReadTheDocs tests (#26580) 2021-10-08 09:27:17 +02:00
Daniel G Travieso
10de12c7d0 add hash field to spec on find --json and assert in test its there (#26443)
Co-authored-by: Daniel Travieso <daniel@dgtravieso.com>
2021-10-07 23:50:05 -07:00
Bernhard Kaindl
449a5832c8 llvm: llvm@13+libcxx needs a very recent C++ compiler (#26584)
libc++-13 does not support %gcc@:10, see:
https://bugs.llvm.org/show_bug.cgi?id=51359#c1

https://libcxx.llvm.org/#platform-and-compiler-support says:
- GCC    11     - latest stable release per GCC’s release page
- Clang: 11, 12 - latest two stable releases per LLVM’s release page
- AppleClang 12 - latest stable release per Xcode’s release page
2021-10-08 00:25:51 +00:00
Pedro Demarchi Gomes
28529f9eaf re2 pic support (#26513) 2021-10-08 01:01:40 +02:00
Oliver Perks
da31c7e894 Updatepackage/minigmg (#26467)
* MiniGMG, add support for optimised flags + SIMDe implementation of AVX instrinsics

* Add .gitlab-ci.yml

* NVHPC fast

* remove CI

* Syntax fix
2021-10-07 14:49:14 -05:00
Paul Ferrell
0b9914e2f5 Fix for license symlinking issue. (#26576)
When a symlink to a license file exists but is broken, the license symlink post-install hook fails
because os.path.exists() checks the existence of the target not the symlink itself.
os.path.lexists() is the proper function to use.
2021-10-07 19:18:35 +00:00
Seth R. Johnson
9853fd50e2 itk: use CMakePackage helpers (#26572) 2021-10-07 10:49:51 -05:00
Scott Wittenburg
0561af1975 Pipelines: retry service job on system errors (#26508)
Retry rebuild-index, cleanup, and no-op jobs automatically if they fail
due to infrastructure-related problems.
2021-10-07 08:59:51 -06:00
Kevin Huck
b33a0923e1 apex: support profiling/tracing HIP applications (#26569)
libz is added for compressing google trace events output.
2021-10-07 16:22:40 +02:00
Harmen Stoppels
05834e7c9d Memoize the result of spack.platforms.host() (#26573) 2021-10-07 14:04:05 +02:00
Olivier Cessenat
20ee786d09 visit: add an external find function (determine_version) (#25817)
* visit: add an external find function (determine_version)

* visit: correct too long comment line

* visit: forgot to set executables

* visit: external find uses signgle dash version

* visit: found as external asking visit version
2021-10-07 10:19:58 +00:00
Manuela Kuhn
653d5e1590 py-mayavi: add 4.7.3 (#26566) 2021-10-06 19:15:34 -05:00
Tyler Funnell
60909f7250 fish: adding version 3.3.1 (#26488)
* fish: adding version 3.3.1

* adding maintainer

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-10-06 20:42:45 +00:00
Manuela Kuhn
b787065bdb py-scikit-image: add 0.18.3 and fix dependencies (#26406) 2021-10-06 15:30:27 -05:00
Jen Herting
3945e2ad93 New package: py-clean-text (#26511)
* [py-clean-text] created template

* [py-clean-text]

- added description
- added dependencies
- removed fixmes
2021-10-06 19:44:33 +00:00
Tamara Dahlgren
affd2236e6 Provide more info in SbangPathError to aid CI debugging (#26316) 2021-10-06 21:03:33 +02:00
Kevin Pedretti
cb5b28392e Patch from upstream needed to build numactl on riscv64. (#26541)
The most recent release of numactl (2.0.14) fails to build on riscv64
because of a missing "-latomic". This patch from upstream resolves this
issue. It can be dropped once the next version of numactl is released.
2021-10-06 11:50:21 -07:00
Rodrigo Ceccato de Freitas
b1f7b39a06 ucx: fix typo in config description (#26564) 2021-10-06 18:44:22 +00:00
Manuela Kuhn
770c4fd0b2 py-nipype: add 1.4.2 (#26472) 2021-10-06 20:35:42 +02:00
Massimiliano Culpo
98ee00b977 Restore the correct computation of stores in environments (#26560)
Environments push/pop scopes upon activation. If some lazily
evaluated value depending on the current configuration was
computed and cached before the scopes are pushed / popped
there will be an inconsistency in the current state.

This PR fixes the issue for stores, but it would be better
to move away from global state.
2021-10-06 11:32:26 -07:00
Jose E. Roman
fdf76ecb51 New release slepc4py 3.16.0 (#26468) 2021-10-06 11:18:53 -07:00
Manuela Kuhn
9a75f44846 py-svgutils: add 0.3.1 (#26470) 2021-10-06 11:15:36 -07:00
haralmha
6ce4d26c25 Add 1.4.2 (#26475) 2021-10-06 11:13:55 -07:00
haralmha
8fc04984ba Add 1.9.3 (#26483) 2021-10-06 11:10:58 -07:00
haralmha
cfde432b19 Add 1.1.1 (#26484) 2021-10-06 11:10:05 -07:00
haralmha
ae9428df84 Add 14.16.1 (#26485) 2021-10-06 11:09:06 -07:00
haralmha
533705f4e3 Add 1.0.2 (#26486) 2021-10-06 10:50:28 -07:00
haralmha
2b6d7cc74c Add 4.2.0 (#26498) 2021-10-06 10:35:04 -07:00
g-mathias
9978353057 New package: intel oneapi advisor (#26535)
Co-authored-by: lu64bag3 <gerald.mathias@lrz.de>
2021-10-06 10:28:55 -07:00
Massimiliano Culpo
319ae9254e Remove the spack.architecture module (#25986)
The `spack.architecture` module contains an `Arch` class that is very similar to `spack.spec.ArchSpec` but points to platform, operating system and target objects rather than "names". There's a TODO in the class since 2016:

abb0f6e27c/lib/spack/spack/architecture.py (L70-L75)

and this PR basically addresses that. Since there are just a few places where the `Arch` class was used, here we query the relevant platform objects where they are needed directly from `spack.platforms`. This permits to clean the code from vestigial logic.

Modifications:
- [x] Remove the `spack.architecture` module and replace its use by `spack.platforms`
- [x] Remove unneeded tests
2021-10-06 10:28:12 -07:00
g-mathias
232086c6af new package: intel oneapi inspector (#26549)
Co-authored-by: lu64bag3 <gerald.mathias@lrz.de>
2021-10-06 10:25:18 -07:00
Danny McClanahan
e2e8e5c1e2 use conflicts() instead of referring to SpecError in mesa (#26562)
* mesa: use conflicts() instead of referring to SpecError
2021-10-06 10:07:42 -07:00
Paul R. C. Kent
fefe624141 llvm: new version 13.0.0 (#26563) 2021-10-06 16:53:49 +00:00
Alec Scott
4732c722e7 Add v1.56.2 to Rclone (#26556) 2021-10-06 09:53:34 -07:00
Alec Scott
97407795f6 Add v5.3.0 to Superlu (#26558) 2021-10-06 09:50:12 -07:00
haralmha
fe723b2ad8 py-jupyter-client: add 6.1.12 (#26503) 2021-10-06 09:21:10 -04:00
haralmha
d27bb7984a py-ptyprocess: add 0.7.0 (#26504) 2021-10-06 09:20:30 -04:00
haralmha
a59d6be99b py-setuptools: add 57.1.0 (#26505) 2021-10-06 09:19:49 -04:00
haralmha
ceb962fe17 py-six: add 1.16.0 (#26506) 2021-10-06 09:18:55 -04:00
Manuela Kuhn
11bdd18b1f py-matplotlib: fix qhull dependency (#26553) 2021-10-06 09:18:11 -04:00
Jen Herting
b92fd08028 py-ftfy: added version 6.0.3 (#26509) 2021-10-06 08:51:15 -04:00
Jen Herting
bc152fc6c4 New package: py-emoji (#26510)
* [py-emoji] created template

* [py-emoji]

- removed fixmes
- added homepage
- added description
- added dependencies
2021-10-06 08:50:24 -04:00
Frédéric Simonis
51f77f8af1 precice: add version 2.3.0 (#26551) 2021-10-06 08:44:59 -04:00
haralmha
8366f87cbf gnuplot: add version 5.4.2 (#26529) 2021-10-06 08:41:49 -04:00
haralmha
ab5962e997 hadoop: add version 2.7.5 (#26530) 2021-10-06 08:41:28 -04:00
haralmha
943f1e7a3a Add 7.6.3 (#26502) 2021-10-06 14:04:48 +02:00
Ivan Maidanski
1d258151f3 bdw-gc: add v8.0.6 (#26545) 2021-10-06 07:24:51 -04:00
haralmha
2cdfa33677 Add 6.0.2 (#26501) 2021-10-06 13:19:29 +02:00
haralmha
199bd9f8f8 py-decorator: Add version 5.0.9 and 5.10. (#26500)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-06 02:24:47 +00:00
haralmha
0c02f6c36d py-hepdata-validator: Add version 0.2.3 and 0.3.0 (#26496)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-06 02:15:06 +00:00
haralmha
c97c135f1d py-heapdict: Add version 1.0.0 (#26495)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-06 01:16:18 +00:00
haralmha
d07c366408 Add 1.28.1 (#26494)
py-grpcio: Add version 1.28.1
2021-10-06 02:27:55 +02:00
haralmha
df93becc99 Add 2021.4.1 (#26493)
py-distributed: Add version 2021.4.1
2021-10-06 02:26:05 +02:00
haralmha
5e9497e05a Add 0.7.1 (#26492)
py-defusedxml: add version 0.7.1
2021-10-06 02:25:04 +02:00
haralmha
2e28281f1a py-bleach: Add version 3.3.1 (#26490)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-06 00:18:09 +00:00
haralmha
e8b9074300 py-dask: add version 2021.4.1 (#26491) 2021-10-06 02:17:52 +02:00
haralmha
eafa0ff085 py-pygdal: Add versions 3.3.0.10 and 3.3.2.10 (#26528)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-05 23:57:59 +00:00
haralmha
b20e7317ab py-backcall: Add version 0.2.0 (#26487) 2021-10-06 01:55:27 +02:00
haralmha
2773178897 Add versions 3.1.6, 3.1.7 and 3.2.0 (#26527) 2021-10-06 01:48:18 +02:00
Bernhard Kaindl
e39866f443 h5utils: Fix build and add new version (#26133)
@1.12.1+png depends_on libpng@:1.5.0 because it needs the old API

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-10-05 23:13:02 +00:00
Massimiliano Culpo
d7fc17d5db Set explicitly write permission for packages (#26539) 2021-10-05 23:12:25 +00:00
Olivier Cessenat
cc6508ec09 vtk: gui support for vtk 9 added (#25636) 2021-10-05 22:54:39 +00:00
haralmha
3157a97743 Add version 3.16.1 (#26534) 2021-10-06 00:27:17 +02:00
haralmha
aac7e28ea0 dd4hep: Add version 01-18 (#26525)
* Add 01-18

* Keep master on top and change version name format
2021-10-05 17:37:31 -04:00
Kevin Pedretti
47607dcac5 Use gnuconfig package for config file replacement for RISC-V. (#26364)
* Use gnuconfig package for config file replacement for RISC-V.

This extends the changes in #26035 to handle RISC-V. Before this change,
many packages fail to configure on riscv64 due to config.guess being too
old to know about RISC-V. This is seen out of the box when clingo fails
to build from source due to pkgconfig failing to configure, throwing
error: "configure: error: cannot guess build type; you must specify one".

* Add riscv64 architecture

* Update vendored archspec from upstream project.
These archspec updates include changes needed to support riscv64.

* Update archspec's __init__.py to reflect the commit hash of archspec being used.
2021-10-05 19:22:55 +00:00
Harmen Stoppels
d998ea1bd4 Move shell aware env into spack.environment.shell (#25608)
Cherry-picked from #25564 so this is standalone.

With this PR we can activate an environment in Spack itself, without computing changes to environment variables only necessary for "shell aware" env activation.

1. Activating an environment:
    
    ```python
    spack.environment.activate(Environment(xyz)) -> None
    ```
    this basically just sets `_active_environment` and modifies some config scopes.

2. Activating an environment **and** getting environment variable modifications for the shell:

    ```python
    spack.environment.shell.activate(Environment(xyz)) -> EnvironmentModifications
    ```

This should make it easier/faster to do unit tests and scripting with spack, without the cli interface.
2021-10-05 18:25:43 +00:00
haralmha
713bbdbe7c postgresql: Add versions 14.0 and 12.2 (#26499) 2021-10-05 13:34:46 +02:00
haralmha
789beaffb7 doxygen: Add versions 1.9.2 and 1.8.18 (#26497) 2021-10-05 12:49:48 +02:00
Ricardo Jesus
4ee74c01e3 meme: Fix compilation with arm and nvhpc compilers (#24883)
* Fix compilation with `arm` and `nvhpc` compilers

* Update package.py
2021-10-05 05:55:12 -04:00
Jonas Thies
7f2fd50d20 phist: add a patch for the case +host arch=ppc64le (#26216) 2021-10-05 08:33:41 +00:00
Guilherme Perrotta
7ea9c75494 py-flatbuffers: add new package (#26444)
Python port of the "flatbuffers" package
2021-10-05 10:10:43 +02:00
Ivan Maidanski
1a651f1dca libatomic_ops: add v7.6.12 (#26512) 2021-10-05 10:08:57 +02:00
Manuela Kuhn
4e6f2ede0a py-rsatoolbox: add new package (#26514) 2021-10-05 10:07:03 +02:00
Axel Huebl
e1fb77496c WarpX: 21.10 (#26507) 2021-10-05 10:01:26 +02:00
David Gardner
85de527668 sundials: Add 5.8.0 and sycl variant (#26524) 2021-10-05 10:00:11 +02:00
Heiko Bauke
f6a4f6bda7 mpl: add new package (#26522) 2021-10-05 09:59:14 +02:00
Mihael Hategan
95846ad443 py-parsl: new package (see https://parsl-project.org/) (#26360) 2021-10-05 09:53:02 +02:00
Massimiliano Culpo
337b54fab0 Isolate bootstrap configuration from user configuration (#26071)
* Isolate bootstrap configuration from user configuration

* Search for build dependencies automatically if bootstrapping from sources

The bootstrapping logic will search for build dependencies
automatically if bootstrapping anything form sources. Any
external spec, if found, is written in a scope that is specific
to bootstrapping.

* Don't clean the bootstrap store with "spack clean -a"

* Copy bootstrap.yaml and config.yaml in the bootstrap area
2021-10-05 09:16:09 +02:00
Seth R. Johnson
3cf426df99 zstd: fix install name on macOS (#26518)
Reverting from CMake to Make install caused
`-install_path=/usr/local/lib/libzstd.1.dylib` to be hardcoded into the
zstd. Now we explicitly pass the PREFIX into the build command so that
the correct spack install path is saved.

Fixes #26438 and also the ROOT install issue I had :)
2021-10-05 02:03:48 +00:00
Nisarg Patel
b5673d70de molden: fix build with gcc@10: (#25803) 2021-10-05 01:36:20 +00:00
Todd Gamblin
84c878b66a cc: make error messages more clear
- [x] Our wrapper error messages are sometimes hard to differentiate from other build
      output, so prefix all errors from `die()` with '[spack cc] ERROR:'

- [x] The error we raise when running, say, `fc` without a Fortran compiler was not
      clear enough. Clarify the message and the comment.
2021-10-04 18:30:19 -07:00
Todd Gamblin
052b2e1b08 cc: convert compiler wrapper to posix shell
This converts everything in cc to POSIX sh, except for the parts currently
handled with bash arrays. Tests are still passing.

This version tries to be as straightforward as possible. Specifically, most conversions
are kept simple -- convert ifs to ifs, handle indirect expansion the way we do in
`setup-env.sh`, only mess with the logic in `cc`, and don't mess with the python code at
all.

The big refactor is for arrays. We can't rely on bash's nice arrays and be ignorant of
separators anymore. So:

1. To avoid complicated separator logic, there are three types of lists. They are:

    * `$lsep`-separated lists, which end with `_list`. `lsep` is customizable, but we
      picked `^G` (alarm bell) for `$lsep` because it's ASCII and it's unlikely that it
      would actually appear in any arguments. If we need to get fancier (and I will lose
      faith in the world if we do) then we could consider XON or XOFF.
    * `:`-separated directory lists, which end with `_dirs`, `_DIRS`, `PATH`, or `PATHS`
    * Whitespace-separated lists (like flags), which can have any other name.

    Whitespace and colon-separated lists come with the territory with PATHs from env
    vars and lists of flags. `^G` separated lists are what we use for most internal
    variables, b/c it's more likely to work.

2. To avoid subshells, use a bunch of functions that do dirty `eval` stuff instead. This
   adds 3 functions to deal with lists:

    * `append LISTNAME ELEMENT [SEP]` will put `ELEMENT` at the end of the list called
      `LISTNAME`. You can optionally say what separator you expect to use. Note that we
      are taking advantage of everything being global and passing lists by name.

    * `prepend LISTNAME ELEMENT [SEP]` like append, but puts `ELEMENT` at the start of
      `LISTNAME`

    * `extend LISTNAME1 LISTNAME2 [PREFIX]` appends everything in LISTNAME2 to
       LISTNAME1, and optionally prepends `PREFIX` to every element (this is useful for
       things like `-I`, `-isystem `, etc.

    * `preextend LISTNAME1 LISTNAME2 [PREFIX]` prepends everything in LISTNAME2 to
       LISTNAME1 in order, and optionally prepends `PREFIX` to every element.

The routines determine the separator for each argument by its name, so we don't have to
pass around separators everywhere. Amazingly, as long as you do not expand variables'
values within an `eval` environment, you can do all this and still preserve quoting.
When iterating over lists, the user of this API still has to set and unset `IFS`
properly.

We ended up having to ignore shellcheck SC2034 (unused variable), because using evals
all over the place means that shellcheck doesn't notice that our list variables are
actually used.

So far this is looking pretty good. I took the most complex unit test I could find
(which runs a sample link line) and ran the same command line 200 times in a shell
script.  Times are roughly as follows:

For this invocation:

```console
$ bash -c 'time (for i in `seq 1 200`; do ~/test_cc.sh > /dev/null; done)'
```

I get the following performance numbers (the listed shells are what I put in `cc`'s
shebang):

**Original**
* Old version of `cc` with arrays and `bash v3.2.57` (macOS builtin): `4.462s` (`.022s` / call)
* Old version of `cc` with arrays and `bash v5.1.8` (Homebrew): `3.267s` (`.016s` / call)

**Using many subshells (#26408)**
*  with `bash v3.2.57`: `25.302s` (`.127s` / call)
*  with `bash v5.1.8`: `27.801s` (`.139s` / call)
*  with `dash`: `15.302s` (`.077s` / call)

This version didn't seem to work with zsh.

**This PR (no subshells)**
*  with `bash v3.2.57`: `4.973s` (`.025s` / call)
*  with `bash v5.1.8`: `4.984s` (`.025s` / call)
*  with `zsh`: `2.995s` (`.015s` / call)
*  with `dash`: `1.890s` (`.0095s` / call)

Dash, with the new posix design, is easily the winner.

So there are several interesting things to note here:

1. Running the posix version in `bash` is slower than using `bash` arrays. That is to be
   expected because it's doing a bunch of string processing where it likely did not have
   to before, at least in `bash`.

2. `zsh`, at least on macOS, is significantly faster than the ancient `bash` they ship
   with the system. Using `zsh` with the new version also makes the posix wrappers
   faster than `develop`. So it's worth preferring `zsh` if we have it. I suppose we
   should also try this with newer `bash` on Linux.

3. `bash v5.1.8` seems to be significantly faster than the old system `bash v3.2.57` for
   arrays. For straight POSIX stuff, it's a little slower. It did not seem to matter
   whether `--posix` was used.

4. `dash` is way faster than `bash` or `zsh`, so the real payoff just comes from being
   able to use it. I am not sure if that is mostly startup time, but it's significant.
   `dash` is ~2.4x faster than the original `bash` with arrays.

So, doing a lot of string stuff is slower than arrays, but converting to posix seems
worth it to be able to exploit `dash`.

- [x] Convert all but array-related portions to sh
- [x] Fix basic shellcheck issues.
- [x] Convert arrays to use a few convenience functions: `append` and `extend`
- [x] Get `cc` tests passing.
- [x] Add `cc` tests where needed passing.
- [x] Benchmarking.

Co-authored-by: Tom Scogland <scogland1@llnl.gov>
Co-authored-by: Danny McClanahan <1305167+cosmicexplorer@users.noreply.github.com>
2021-10-04 18:30:19 -07:00
Todd Gamblin
472638f025 .gitignore needs to be below env and ENV for case-insensitive FS 2021-10-04 18:30:19 -07:00
haralmha
8d0025b8af Add 5.2.0 (#26481) 2021-10-04 19:37:34 -05:00
Martin Pokorny
32f8dad0e2 log4cxx: new version and fix for c++11 (#26480)
* Add version 0.12.1

* Add variant to build with C++11 standard

build with c++11 standard requires boost threads, and needs explicit setting of
CMAKE_CXX_STANDARD
2021-10-05 00:34:03 +00:00
KoyamaSohei
c426386f46 intel-tbb: install pkgconfig file (#23977)
* intel-tbb: install pkgconfig file

* intel-tbb: install pkgconfig file when @:2021.2.0

* intel-tbb: add blank line

* intel-tbb: fix library name to refer

* intel-tbb: fix library name to refer again

* intel-tbb: use self.prefix.lib.pkgconfig
2021-10-04 21:38:31 +00:00
Tamara Dahlgren
5a9e5ddb3d Stand-alone tests: distinguish NO-TESTS from PASSED (#25880)
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-10-04 19:57:08 +00:00
snehring
675bdada49 esys-particle: add new package esys-particle (#25338)
* esys-particle: add new package esys-particle

* esys-particle: requested changes

* esys-particle: placating isort
2021-10-04 19:41:31 +00:00
Daniel Ahlin
c59223effe gcc: apply nvcc patch to more versions (#24295)
Apply to all known affected versions (10.1.0 to 10.3.0 and 11.1.0)
2021-10-04 21:02:57 +02:00
haralmha
6a6bc3ecbb git: new version 2.29.2 (#26478) 2021-10-04 18:23:38 +00:00
iarspider
b88c80bb1b Add new pythia8 variants and fix url_for_version (#26280)
* Add new pythia8 variants
Add proper description to the existing ones

* Flake-8

* Flake-8

* Style

* Fix Pythia8 recipe

* Fix typo in variant description

* Update package.py
2021-10-04 12:52:51 -05:00
haralmha
b9e8d2d648 cppgsl: new version 3.1.0 (#26477) 2021-10-04 13:25:44 -04:00
Manuela Kuhn
377c781d7e py-scikit-learn: add 0.19.2 and 0.22.2.post1 (#26473) 2021-10-04 18:48:26 +02:00
snehring
9a8712f4cb masurca: Fix build with glibc-2.32+ (#26173)
remove sysctl.h which is not used by the build
2021-10-04 17:59:01 +02:00
Pedro Demarchi Gomes
90fa50d9df Avoid replacing symlinked spack.yaml when concretizing an environment (#26428) 2021-10-04 14:59:03 +00:00
Pedro Demarchi Gomes
4ae71b0297 use umpire version 5.0.1:5 (#26451) 2021-10-04 16:32:47 +02:00
Vicente Bolea
572791006d paraview: add v5.10.0-RC1 release (#26291) 2021-10-04 09:32:03 -04:00
mcuma
fa528c96e6 octave: add support for MKL (#25952) 2021-10-04 14:57:57 +02:00
iarspider
4f1c195bf9 grpc: update recipe (#25261)
1) forward `+shared` to re2
2) add `cxxstd` variant
3) use "more idiomatic" way of setting CMake options
2021-10-04 14:53:17 +02:00
Andreas Baumbach
35dd474473 Improve an error message in stage.py (#23737) 2021-10-04 14:47:14 +02:00
Tiziano Müller
2ca58e91d6 cp2k: bugfix for intel oneapi (#26143) 2021-10-04 14:41:49 +02:00
Oliver Perks
ad98e88173 arm: added download and better detection (#25460) 2021-10-04 14:35:20 +02:00
Harmen Stoppels
e557730c96 gnupg: Add version 1 (#23798)
From the gnupg.org website:

> GnuPG 1.4 is the old, single binary version which still support the
> unsafe PGP-2 keys. However, it lacks many modern features and will
> receive only important updates.

I'm starting to appreciate gpg1 more, because it is relocatable (gng2
has hard-coded paths to gpg-agent and other tools) and it does not
require gpg-agent at all.
2021-10-04 08:29:41 -04:00
iarspider
50b1b654c9 evtgen: fix mac build and version 2.0.0 with pythia >= 8.304. (#25933) 2021-10-04 14:06:49 +02:00
Manuela Kuhn
e9accaaca1 py-duecredit: add v0.6.5 (#26465) 2021-10-04 14:01:12 +02:00
Manuela Kuhn
68648b3ff5 py-nibabel: add v2.4.1 (#26462) 2021-10-04 14:00:49 +02:00
Valentin Volkl
e4d5bcf916 podio: remove build_type variant (provided by base package class already) (#26463) 2021-10-04 14:00:20 +02:00
Bernhard Kaindl
3fff338844 freebayes: Fix running the testsuite and add pkgconfig (#26440)
freebayes needs the tools of the vcflib it includes to run tests
2021-10-04 14:00:08 +02:00
Nikolay Simakov
225927c1c3 graph500: added option -fcommon for gcc@10.2 (#25367)
* graph500: added option -fcommon for gcc@10.2:, otherwise failed to build with "multiple definition of `column'"

* graph500: moved setting cflag to flag_handler
2021-10-04 13:42:33 +02:00
iarspider
bf9cf87d9b libunwind: add variants (#26099) 2021-10-04 13:04:39 +02:00
Manuela Kuhn
f1839c6aae py-pybids: add v0.9.5 (#26461) 2021-10-04 10:35:06 +00:00
Harmen Stoppels
d84d7f0599 Disable tests on hip for cmake 3.21 (#26460) 2021-10-04 10:20:07 +00:00
Manuela Kuhn
e2ee3066cf py-mne: add new package (#26446) 2021-10-04 09:56:58 +00:00
Manuela Kuhn
1f451924b1 py-sphinxcontrib-napoleon: add new package (#26457) 2021-10-04 09:52:56 +00:00
Manuela Kuhn
8bcbead42b py-templateflow: add new package (#26458) 2021-10-04 09:47:37 +00:00
Dylan Simon
9926799aeb Fix NonVirtualInHierarchyError message format (#26008) 2021-10-04 10:38:09 +02:00
Seth R. Johnson
205b414162 hdf5: allow implicit functions on apple-clang (#26409)
Work around issues in older hdf5 build and overzealous build flags:
```
 >> 1420    /var/folders/j4/fznvdyhx4875h6fhkqjn2kdr4jvyqd/T/9te/spack-stage/spack-stage-hdf5-1.10.4-feyl6tz6hpx5kl7m33avpuacwje2ubul/spack-src/src/H5Odeprec.c:141:8: error: implicit decl
             aration of function 'H5CX_set_apl' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
```
2021-10-04 10:19:56 +02:00
Seth R. Johnson
5d431087ab python: correctly disable ~tkinter when @3.8 (#26365)
The older patch does not apply so the build ends up failing:
```
     1539    In file included from /private/var/folders/fy/x2xtwh1n7fn0_0q2kk29xkv9vvmbqb/T/s3j/spack-stage/spack-stage-python-3.8.11
             -6jyb6sxztfs6fw26xdbc3ktmbtut3ypr/spack-src/Modules/_tkinter.c:48:
  >> 1540    /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/tk.h:86:11: f
             atal error: 'X11/Xlib.h' file not found
     1541    #       include <X11/Xlib.h>
     1542                    ^~~~~~~~~~~~
     1543    1 error generated.
```
2021-10-04 10:18:23 +02:00
iarspider
7104b8599e Update byacc (#25837)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
2021-10-04 09:55:20 +02:00
G-Ragghianti
7009724f0d papi: new variants rocm and rocm_smi (#26214) 2021-10-04 09:53:17 +02:00
Manuela Kuhn
81abbb41bc git-annex: add 8.20210804 for amd64 (#26449) 2021-10-04 09:50:05 +02:00
Manuela Kuhn
d0da7c8440 py-pockets: add new package (#26452) 2021-10-04 09:43:10 +02:00
Massimiliano Culpo
69abc4d860 Build ppc64le docker images (#26442)
* Update archspec
* Add ppc64le to docker images
2021-10-04 09:34:53 +02:00
Massimiliano Culpo
e91815de7c Update Spec.full_hash docstring (#26456)
The docstring is outdated since #21735
when the build hash has been included
in the full hash.
2021-10-04 07:33:22 +00:00
Garth N. Wells
baa50c6679 FEniCSx: fix CMake root directory and dependency versions (#26445) 2021-10-04 09:20:53 +02:00
Manuela Kuhn
44d7218038 py-seaborn: add v0.11.2 (#26447) 2021-10-04 09:17:38 +02:00
Manuela Kuhn
9e0aabdef3 py-transforms3d: add new package (#26448) 2021-10-04 09:17:04 +02:00
Joseph Wang
91598912f7 ocaml: add v4.13.1 (#26453)
This is needed in order to make it work with glibc-2.34
2021-10-04 08:47:30 +02:00
Daniel Arndt
862bcc5059 ArborX: Explicitly set path to Kokkos (#26347)
* Explicitly set path to Kokkos for ArborX testing

* Improve formatting

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

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

* Remove blank line

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-10-03 23:04:52 -04:00
Hector
2f6590ddd1 source-highlight: add gcc11 patch (#26412) 2021-10-03 16:07:39 +00:00
Lorién López Villellas
c0b383b3e1 PICSAR: added support for GCC >10.0 and arm compiler (#24927)
* -fallow-argument-mismatch flag added when compiling with GCC to avoid a compilation error when using a GCC version > 10.0.

Co-authored-by: Haz99 <jsalamerosanz@gmail.com>

* Filtered every occurrence of "!$OMP SIMD SAFELEN(LVEC2)" when compiling with nvhcp to avoid a compilation error.

Co-authored-by: Haz99 <jsalamerosanz@gmail.com>

* Line with more than 80 characters split into multiple lines.

Co-authored-by: Haz99 <jsalamerosanz@gmail.com>
2021-10-03 10:11:04 -04:00
Jordan Galby
0d6a2381b2 Fix JSONDecodeError when using compiler modules (#25624)
When using modules for compiler (and/or external package), if a
package's `setup_[dependent_]build_environment` sets `PYTHONHOME`, it
can influence the python subprocess executed to gather module
information.

The error seen was:

```
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
```

But the actual hidden error happened in the `python -c 'import
json...'` subprocess, which made it return an empty string as json:

```
ModuleNotFoundError: No module named 'encodings'
```

This fix uses `python -E` to ignore `PYTHONHOME` and
`PYTHONPATH`. Should be safe here because the python subprocess code
only use packages built-in python.

The python subprocess in `environment.py` was also patched to be safe
and consistent.
2021-10-03 16:10:33 +02:00
Harmen Stoppels
b9e72557e8 Remove .99 from version ranges (#26422)
In most cases, .99 can be omitted thanks to #26402 .
2021-10-03 09:09:02 -04:00
Tim Moon
2de116d285 DiHydrogen: Specify required NVSHMEM variants (#26384) 2021-10-03 08:30:27 -04:00
Bernhard Kaindl
f6ce95bfcb chombo: several build fixes: csh, space regex and install (#26424)
See description of the the PR for details on the changes.
2021-10-03 14:28:28 +02:00
Harmen Stoppels
e53bd0eba8 bison: new versions 3.8:3.8.2 (#26439) 2021-10-03 07:57:03 -04:00
Takahiro Ueda
d603f4519d form: use version tarballs, fix and enable gmp and zlib variants (#26425)
Co-authored-by: Bernhard Kaindl <43588962+bernhardkaindl@users.noreply.github.com>
Co-authored-by: iarspider <iarspider@gmail.com>
2021-10-03 08:45:33 +00:00
Michael Kuhn
d4b3724557 meson: add 0.59.2 (#26430) 2021-10-03 10:41:08 +02:00
Michael Kuhn
abce326ea3 openblas: add 0.3.18 (#26429) 2021-10-03 10:38:48 +02:00
Manuela Kuhn
4c1285b1c2 py-svgutils: new package (#26437) 2021-10-03 02:38:36 +02:00
Marc Fehling
34a1e4d8b6 p4est: bump/update to 2.8 (#26081) 2021-10-03 01:56:03 +02:00
Manuela Kuhn
ee568cb6a4 py-packaging: bump version to 21.0 (#26436) 2021-10-02 23:31:24 +00:00
Manuela Kuhn
0db072dc4a py-attrs: bump version to 21.2.0 (#26435) 2021-10-02 23:23:02 +00:00
Manuela Kuhn
6a188b2b13 py-nitransforms: new package (#26434) 2021-10-03 01:06:13 +02:00
Wouter Deconinck
846428a661 podio: add supported CMAKE_BUILD_TYPE values (#26432) 2021-10-03 00:38:36 +02:00
Manuela Kuhn
aee1d44edf py-pybids: bump version to 0.13.2 (#26433) 2021-10-03 00:36:02 +02:00
Sreenivasa Murthy Kolam
f1c83b00d4 atmi: replace /usr/bin/rsync with depends_on rsync (#26353) 2021-10-03 00:32:46 +02:00
Manuela Kuhn
8dcd568769 py-ipyvtk-simple: new package (#26431) 2021-10-02 23:18:08 +02:00
Josh Bowden
aaf35fd520 damaris: bump version to 1.5.0, add variant examples (#26220) 2021-10-02 23:06:17 +02:00
Manuela Kuhn
bc6edc7baf py-ipycanvas: new package (#26426) 2021-10-02 22:30:09 +02:00
Olivier Cessenat
2ce3be3a27 fltk: new version 1.3.7, new variant xft (#26423) 2021-10-02 16:27:38 -04:00
Manuela Kuhn
b65360f721 py-ipyevents: add new package (#26427) 2021-10-02 22:23:09 +02:00
Robert Romero
57803887e8 cddlib: use github URLs and bump version (#26315)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-02 19:50:32 +00:00
Weiqun Zhang
43e08af7b2 amrex: bump version to 21.10 (#26416) 2021-10-02 18:25:50 +02:00
Massimiliano Culpo
0e469fc01e clingo-bootstrap: add a variant for static libstdc++ (#26421) 2021-10-02 14:53:24 +02:00
Mihael Hategan
b3d3ce1c37 py-pytest-random-order: new package - plugin for py-pytest. (#26413) 2021-10-02 12:38:09 +02:00
Rob Falgout
d9f25f223f Add hypre release 2.23.0 (#26418) 2021-10-02 09:52:50 +02:00
Howard Pritchard
3575c14a6a ucx: add version 1.11.2 (#26417)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-10-02 09:49:48 +02:00
Wouter Deconinck
314f5fdb97 New versions: geant4@10.7.2, geant4-data@10.7.2 (#25449)
* [geant4] new version 10.7.2

* [geant4-data] new version 10.7.2
2021-10-01 17:08:15 -07:00
Mihael Hategan
d8f23c0f6d Added py-typeguard package. (#26411)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-01 23:58:39 +00:00
Harmen Stoppels
d0e49ae4bb Simplify setup_package in build environment (#26070)
* Remove redundant preserve environment code in build environment

* Remove fix for a bug in a module

See https://github.com/spack/spack/issues/3153#issuecomment-280460041,
this shouldn't be part of core spack.

* Don't module unload cray-libsci on all platforms
2021-10-01 19:41:30 -04:00
Cory Bloor
b6169c213d Fix error message when test throws AttributeError (#25895)
Narrow the scope of the try/except block, to avoid a misleading
error message if fn() throws an AttributeError.
2021-10-01 19:40:24 -04:00
Mihael Hategan
d19105f761 Added py-sqlalchemy-stubs package. (#26414)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-01 21:50:55 +00:00
bernhardkaindl
9893718f78 axel(download manager): fix build, bump version (#26140) 2021-10-01 23:48:33 +02:00
Seth R. Johnson
2f630226e7 trilinos: add conflict and enable gtest for developers (#26150) 2021-10-01 15:53:16 -04:00
Harmen Stoppels
50feaae81c Allow non-empty ranges 1.1.0:1.1 (#26402) 2021-10-01 12:23:26 -07:00
Chris Richardson
bce269df13 Fenicsx update dependency and build for main branch (#25864)
* Updates to make it work again for main
* Use property

Co-authored-by: Chris <cnr12@cam.ac.uk>
2021-10-01 12:05:19 -07:00
Harmen Stoppels
18760de972 Spack install: handle failed restore of backup (#25647)
Spack has logic to preserve an installation prefix when it is being
overwritten: if the new install fails, the old files are restored.
This PR adds error handling for when this backup restoration fails
(i.e. the new install fails, and then some unexpected error prevents
restoration from the backup).
2021-10-01 11:40:48 -07:00
Olivier Cessenat
df590bb6ee hypre: add version 2.22.1; add fortran variant; becomes AutotoolsPackage (#25781) 2021-10-01 11:31:24 -07:00
bernhardkaindl
da171bd561 uftrace(dynamic function graph tracer): bump version (#26224) 2021-10-01 18:28:25 +00:00
Luciano Zago
f878f769a2 gh: add new package (#26405) 2021-10-01 17:58:47 +00:00
bernhardkaindl
ffb6597808 xrootd: Add current version 5.3.1 and restrict to openssl@1 (#26303) 2021-10-01 17:50:35 +00:00
Piotr Luszczek
f75ad02ba2 Add new package: ffte (#26340) 2021-10-01 17:27:38 +00:00
Scott Wittenburg
9f09156923 Retry pipeline generation jobs in certain cases 2021-10-01 10:12:37 -07:00
Scott Wittenburg
d11156f361 Add DAG scheduling to child pipelines 2021-10-01 10:12:37 -07:00
Scott Wittenburg
4637c51c7f Service jobs do not need an active environment 2021-10-01 10:12:37 -07:00
Scott Wittenburg
d233c20725 Activate concrete env dir in all service jobs 2021-10-01 10:12:37 -07:00
Scott Wittenburg
5f527075bf Use same image to build e4s as to generate it 2021-10-01 10:12:37 -07:00
Scott Wittenburg
f6fcfd2acc Use same image to build dvsdk as to generate it 2021-10-01 10:12:37 -07:00
Scott Wittenburg
ae092915ac Use default runner image for radiuss 2021-10-01 10:12:37 -07:00
Victor
98466f9b12 Add pmix variant to openmpi package (#26342)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-10-01 18:43:55 +02:00
Manuela Kuhn
0735419592 py-traitsui: add v7.2.1 (#26392) 2021-10-01 15:57:21 +00:00
Daniel Arndt
7293913e1c DataTransferKit: add v3.1-rc3 (#26269) 2021-10-01 17:33:09 +02:00
Seth R. Johnson
f2ef34638d graphviz: macOS patch not needed on newer version (#26292)
The autoconf file was updated in 2.49.0 but is still needed in older
versions.
2021-10-01 17:30:23 +02:00
bernhardkaindl
6aff4831e3 cmor: bump version and depend on the specific libuuid packages needed by version. (#26149) 2021-10-01 17:29:39 +02:00
Georgiana Mania
7d77f36f83 eigen: add v3.4.0 (#26296) 2021-10-01 17:24:58 +02:00
haralmha
9c8041b8e4 hoppet: add new package (#26297)
Co-authored-by: Harald Minde Hansen <hahansen@office.dyndns.cern.ch>
2021-10-01 17:24:17 +02:00
Manuela Kuhn
eff5bd4005 py-coverage: add v5.5 (#26407) 2021-10-01 15:14:41 +00:00
Axel Huebl
177fe731b1 llvm-openmp: 12.0.1 (#26320)
Add the latest LLVM OpenMP release.
This one compiles for aarch64/M1 on mac.
2021-10-01 17:06:12 +02:00
bernhardkaindl
6b96486d42 py-gsutil: add v5.2 (#26337) 2021-10-01 17:03:54 +02:00
Daniel Arndt
f168d264d1 ArborX: add v1.1 (#26344) 2021-10-01 17:02:05 +02:00
Michael Kuhn
12dc01318e otf: Explicitly disable MPI and ZOIDFS (#26346)
Otherwise, global installations of MPI could be picked up by OTF.
2021-10-01 17:01:31 +02:00
bernhardkaindl
ad8b8b3377 damask-grid, damask-mesh: fix spack install --test=root (#26350) 2021-10-01 16:59:31 +02:00
Edgar Leon
4078c5e537 mpibind: add v0.7.0 and new flux variant (#26359) 2021-10-01 16:56:22 +02:00
Adam Moody
60aa97b25f LWGRP: add v1.0.4 DTCMP: add v1.1.2 and v1.1.3 (#26362) 2021-10-01 16:42:10 +02:00
Satish Balay
6362b3014a petsc,py-petsc4py add versions 3.15.5, 3.16.0 (#26375) 2021-10-01 16:37:28 +02:00
Christoph Conrads
07e91e8afa med: work around "could not find TARGET hdf5" error (#25312)
Fixes #24671, fixes #26051
2021-10-01 10:27:22 -04:00
Ryan Mast
c3c28d510f ns-3-dev: add v3.31, v3.32, v3.33, and v3.34 (#26383) 2021-10-01 16:15:39 +02:00
Pieter Ghysels
d765b4b53d STRUMPACK: add v6.0.0 (#26386)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-01 16:12:41 +02:00
Manuela Kuhn
66866e45f2 py-pyface: add v7.3.0 (#26389) 2021-10-01 16:07:27 +02:00
Manuela Kuhn
ef202cbd37 py-ipywidgets: add 7.6.5 and get sources from pypi (#26393) 2021-10-01 16:06:25 +02:00
Mihael Hategan
e9609b62c6 Python Globus SDK (globus.org): add new package (#26395) 2021-10-01 16:05:49 +02:00
bernhardkaindl
da7666a967 py-pyside: restrict version of dependency on v1.2.2 (#26396)
Restrict @:1.2.2 to older sphinx versions to not fail the build
2021-10-01 16:04:36 +02:00
Manuela Kuhn
627c7007ef py-pyvista: add new package (#26398) 2021-10-01 16:00:30 +02:00
Anna Masalskaya
8fc770608d Add oneAPI packages from 2021.4 release (#26401) 2021-10-01 15:58:32 +02:00
Jose E. Roman
91f668a695 SLEPc: add v3.16 (#26403) 2021-10-01 15:55:42 +02:00
Manuela Kuhn
f775e81fca py-fury: add new package (#26404) 2021-10-01 15:53:50 +02:00
Harmen Stoppels
5b9f60f9bb bootstrapping: improve error messages (#26399) 2021-10-01 13:00:14 +02:00
bernhardkaindl
6ca42f0199 boost: @1.77.0: need updated python_jam.patch for +python (#26363)
One hunk changed and the new patch is refreshed using quilt.
2021-10-01 11:09:32 +02:00
Tamara Dahlgren
2d1ebbe0a2 Add info command tests to increase coverage (#26127) 2021-09-30 22:13:45 -04:00
Tamara Dahlgren
3feab42203 py-setuptools-rust: remove checksum url workaround (#25843) 2021-09-30 22:13:26 -04:00
Tamara Dahlgren
7aedeca764 Replace spec-related install_test asserts with exceptions; added unit tests (#25982) 2021-09-30 22:05:06 -04:00
Manuela Kuhn
c58cd83e38 py-shiboken2: add new package (#26390) 2021-10-01 01:19:41 +00:00
Manuela Kuhn
032ce20171 vtk: fix install path to lib (#26387) 2021-10-01 02:52:09 +02:00
Paul Spencer
046ed47b1f New package: slurm-drmaa (#25424)
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-10-01 00:07:03 +00:00
Manuela Kuhn
c076aeb192 py-jupyterlab: add new package (#26357) 2021-10-01 01:33:28 +02:00
Massimiliano Culpo
74d36076c2 ArchSpec: minor cleanup of a few methods (#26376)
* Remove vestigial code to be compatible with Spack v0.9.X
* ArchSpec: reworked __repr__ to be more adherent to common Python idioms
* ArchSpec: simplified __init__.py and copy()
2021-09-30 16:03:39 -07:00
Robert Underwood
a75c86f178 GDB: Fix for GMP and Python (#26366)
closes  #26354 and #26358

Previously we did not pass paths for GDB or GMP and ./configure would
get confused about which one to pull from.  Be more specific.

Built with all variants enabled and fixed the fixable versions and variants:
@:8.1 were fixable by limiting python versions for these to @:3.6.
7.10.1 and 7.11(.1) were fixable to build with glibc-2.25 and newer
using two long patches.
gdb 7.8 and 7.9 weren't fixable as there is no backport if the fix
to build these with glibc-2.25 and newer:
http://lists.busybox.net/pipermail/buildroot/2017-March/188055.html

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-09-30 22:40:35 +00:00
Massimiliano Culpo
8ade8a77dd Build container images on Github Actions and push to multiple registries (#26247)
Modifications:
- Modify the workflow to build container images without pushing when the workflow file itself is modified
- Strip the leading ghcr.io/spack/ from env.container env.versioned to prepare pushing to multiple registries
- Fixed CentOS 7 and Amazon Linux builds
- Login and push to Docker Hub as well as Github Action
- Add a badge to README.md with the status of docker images
2021-09-30 23:34:47 +02:00
Jen Herting
7bda430de0 [py-tabulate] added version 0.8.9 (#25974) 2021-09-30 23:02:14 +02:00
Cory Bloor
4238318de2 rocsolver: Tighten rocsolver package dependencies (#25917)
- Specify CMake minimum version more precisely
- Ensure rocBLAS is available at build time
- Limit workaround for missing rocblas include path
  to the only affected version (4.1.0)
- Make hip a build and link dependency
- Remove hip's link dependencies

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-30 22:57:28 +02:00
Robert Underwood
7694c58736 sz: fix for external python sitelib (#26067)
fixes #25973
2021-09-30 11:52:20 -07:00
bernhardkaindl
af54f7b15b gromacs-chain-coordinate: Fix calling the test suite (#26367) 2021-09-30 18:18:03 +02:00
Harmen Stoppels
1aa7758dbb match .spack literal, not as a regex (#26374) 2021-09-30 14:54:57 +00:00
Harmen Stoppels
727dcef2f4 Disable __skip_rocmclang again (#26187)
CMake 3.21.3 disables the broken hipcc-as-rocmclang detection again.

From the release notes:

> The AMD ROCm Platform hipcc compiler was identifed by CMake 3.21.0
> through 3.21.2 as a distinct compiler with id ROCMClang. This has been
> removed because it caused regressions. Instead:
> * hipcc may no longer be used as a HIP compiler because it interferes
>   with flags CMake needs to pass to Clang. Use Clang directly.
> * hipcc may once again be used as a CXX compiler, and is treated as
>   whatever compiler it selects underneath, as CMake 3.20 and below
>   did.
2021-09-30 16:01:17 +02:00
Harmen Stoppels
4dee7d2b22 Add a conflict for patchelf to catch errors earlier in bootstrapping (#26373) 2021-09-30 15:18:56 +02:00
Harmen Stoppels
525aa11827 Bump version from v0.16.2 to v0.16.3 (#26372) 2021-09-30 11:54:48 +00:00
Olivier Cessenat
9e70fc630e dos2unix: new version 7.4.2 and enforce link with gettext (#26371) 2021-09-30 12:04:32 +02:00
Harmen Stoppels
b96d836a72 Move gnuconfig under the spack org (#26370) 2021-09-30 11:30:29 +02:00
Diego Alvarez
56eddf2e3c Added OpenJDK 17, 11 for Darwin, and set preferred to 11 (#26368) 2021-09-30 11:29:36 +02:00
Maciej Wójcik
7c3b2c1aa8 gromacs-chain-coordinate: new package (#25426) 2021-09-30 04:12:37 +02:00
Shahzeb Siddiqui
ef9967c7f4 Add e4s tags (#23382)
Add 'e4s' tags for all packages according to https://github.com/E4S-Project/e4s/blob/master/E4S_Products.md
2021-09-29 17:57:52 -07:00
acastanedam
02f356159b linux-pam: include more official (recent) releases (#26065) 2021-09-29 20:51:39 -04:00
David Beckingsale
d31830eaf5 Move new CUDA conflicts inside when('~allow-unsupported-compilers') block (#26132)
* Move new CUDA conflicts inside when('~allow-unsupported-compilers') block

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-09-30 00:22:26 +00:00
Valentin Volkl
2ea1bf84ec py-snappy: add patch to fix dependencies (#26352)
* py-snappy: add patch to fix dependencies

* Update var/spack/repos/builtin/packages/py-snappy/req.patch

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-29 15:50:42 -05:00
Manuela Kuhn
0a7804f52e py-jupyterlab: add 3.0.14, 3.0.18 and 3.1.14 (#26339) 2021-09-29 14:34:18 -05:00
Valentin Volkl
805d59d47f geos: fix patch versions (#26351) 2021-09-29 18:32:37 +00:00
Manuela Kuhn
10638ea449 py-jupyter-packaging: add 0.7.12 and 0.10.6 (#26338)
* py-jupyter-packaging: add 0.7.12 and 0.10.6

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-29 18:31:32 +00:00
Howard Pritchard
6d613bded0 cray-mvapich2: add a package to support (#26273)
The format of the HPE/Cray supplied module for cray-mvapich2 on HPE apollo systems is
very different from the cray-mpich module supplied on Cray EX and XE
systems.

Recent changes to the cray-mpich package -

https://github.com/spack/spack/pull/23470

broke support for cray-mvapich2 and relies now on the structure of the
cray-mpich module to work properly.

Rather than try to support two very different vendor mpich modules
using the same spack package, just add another one specialized for
the cray-mvapich2 module.

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2021-09-29 20:12:13 +02:00
Martin Diehl
f32feeee45 new package(s): DAMASK (damask, damask-grid, damask-mesh) (#25692) 2021-09-29 19:57:01 +02:00
Manuela Kuhn
c75e84e9f3 py-qtpy: add 1.11.2 (#26343) 2021-09-29 11:19:23 -05:00
Harmen Stoppels
7fdb879308 ca-certificates-mozilla for openssl & curl (#26263)
1. Changes the variant of openssl to `certs=mozilla/system/none` so that
   users can pick whether they want Spack or system certs, or if they
   don't want certs at all.
2. Keeps the default behavior of openssl to use certs=systems.
3. Changes the curl configuration to not guess the ca path during
   config, but rather fall back to whatever the tls provider is
   configured with. If we don't do this, curl will still pick up system
   certs if it finds them.

As a minor fix, it also adds the build dep `pkgconfig` to curl, since
that's being used during the configure phase to get openssl compilation
flags.
2021-09-29 09:05:58 -07:00
iarspider
24263c9e92 New package: py-async-lru (#26328) 2021-09-29 18:05:36 +02:00
Manuela Kuhn
7cd3af5d52 py-mffpy: add new package (#26345) 2021-09-29 17:59:50 +02:00
bernhardkaindl
4a31f0fb0f py-mock: fix depends of @:2.0.0 and bump version (#26336)
* py-mock: fix depends of `@:2.0.0` and bump version

fixes the build of `py-gsutil`, it depends on `'py-mock@:2.0.0'`.

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

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

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

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

* Apply the other requested changes

* Add requested change: Add the python@3.6 for newer versions

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-29 15:39:57 +00:00
Greg Sjaardema
5132cfcc63 seacas: new release and fixes for metis/parmetis (#26310)
* seacas: new release and fixes for metis/parmetis

* Update to add sha256 checksum for latest seacas release

* Updated the documentation strings with new applications

* Fixed the metis/parmetis variants and logic depending on whether mpi
  is enabled/disabled. (There is still a zoltan issue I need to fix,
  but this will at least allow seacas to be built without
  metis/parmetis or with +mpi+parmetis.  The ~mpi+metis still needs
  work elsewhere.)

* Enable cpup, slice, zellij in +applications
2021-09-29 16:53:49 +02:00
Harmen Stoppels
9d39a1bf42 Un-unset TERM and DISPLAY (#26326)
For interactive `spack build-env`'s this is undesired behavior
2021-09-29 16:28:32 +02:00
bernhardkaindl
11278dd55a py-monotonic: bump version to 1.6 (#26335)
Fixes `spack solve py-gsutil`: It depends on 'py-monotonic@1.4:'
2021-09-29 09:19:47 -05:00
Pat Riehecky
e45979d39a Added OpenJDK 16.0.2 (#26322) 2021-09-29 14:19:38 +00:00
MichaelLaufer
ed54d6c926 py-netcdf4: adds parallel IO support (#26178) 2021-09-29 08:21:16 -05:00
iarspider
634b0b25c4 Add new package: py-backports-entry-points-selectable (#26329) 2021-09-29 15:09:27 +02:00
Manuela Kuhn
ac29b70d18 py-dipy: add new package (#26331) 2021-09-29 15:05:34 +02:00
Manuela Kuhn
e01947effc py-imageio-ffmpeg: add 0.4.5, fix installation and import (#26330) 2021-09-29 14:56:16 +02:00
Manuela Kuhn
78dbac69e9 py-pyqt5-sip: add new package (#26325) 2021-09-29 14:52:29 +02:00
bernhardkaindl
80c8978691 krb5: bump version and limit depends_on('openssl') to @1 (#26332)
krb5 uses an openssl RSA API which is deprecated in OpenSSL@3.0.0
with an const/non-const mismatch.
2021-09-29 11:24:08 +00:00
Manuela Kuhn
ab6b531e10 py-argcomplete: add 1.12.3 (#26228) 2021-09-29 13:10:03 +02:00
Olli Lupton
cffa1e7f6c Add ccache 4.4.2. (#26327) 2021-09-29 09:41:28 +00:00
Axel Huebl
c5410bd333 FFTW: NEON SIMD is float-only (#26321)
Fix on Apple Mac M1 (aarch64):
```
configure: error: NEON requires single precision
```
2021-09-29 02:40:45 +00:00
Ben Darwin
c578882bb2 itk: add version 5.2.1 (#26307) 2021-09-28 18:15:42 -07:00
Greg Sjaardema
a550416a1f netcdf-c: Update for 4.8.1 and new download site (#26309)
NetCDF-4.8.1 has been released.

    As discussed in https://github.com/Unidata/netcdf-c/issues/2110
    (netcdf-c-4.8.1.tar.gz not on ftp site... #2110), the canonical
    download site for netCDF releases has been changed and the previous
    ftp site is no longer available.

    This PR updates the `url` to point to the new recommended download
    site and updates the sha256 checksums for the new tar files.
2021-09-28 17:21:28 -07:00
Gregory Lee
82d857dced qhull deprecated libqhull.so in 2020.2 (#26304) 2021-09-28 16:54:30 -07:00
Manuela Kuhn
32b5669e8d py-pytz: add 2021.1 (#26289) 2021-09-28 18:07:28 +00:00
iarspider
a2c16356a1 dire: Fix depends for new pythia version scheme (#26294)
Pythia version numbering was changed in #26255 from xyyy to x.yyy
2021-09-28 18:05:52 +02:00
Edward Hartnett
4f4984e313 wrf-io: added NOAA software maintainers, added openmp variant (#26113) 2021-09-28 08:55:09 -07:00
Tamara Dahlgren
5ace5ca7a4 Post 26211 rebase updates (#26246) 2021-09-28 08:53:59 -07:00
Manuela Kuhn
519f75b865 py-scooby: add new package (#26284) 2021-09-28 17:51:37 +02:00
Diego Alvarez
023d9e3b4c Added OpenJDK 11.0.12_7 (#26299) 2021-09-28 17:47:45 +02:00
iarspider
9810a80c6d Update nlohmann-json to 3.10.2 (#26260)
* Update nlohmann-json

* fix testsuite

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-09-28 08:45:34 -07:00
Harmen Stoppels
6c33047514 Squashfs is a makefilepackage (#26300) 2021-09-28 17:45:16 +02:00
bernhardkaindl
3c5a4157b0 py-anuga: add git main version to support build with python@3.5: (#26248)
* py-anuga: add git main version to support build with python@3.5:

py-anuga's main branch has been converted to Python-3 recently.

* py-triangle: use pypi, py-anuga: Fixed depends and test suite works now
2021-09-28 10:37:09 -05:00
bernhardkaindl
d00c9b47f2 py-tomopy: version bump and master, add new deps, make runtest pass (#26252)
Current py-tomopy has many features and dependencies, add them.
2021-09-28 10:33:29 -05:00
Manuela Kuhn
79808f92ae py-numba: add 0.54.0 and restrict old dependencies (#26281)
* py-numba: add 0.54.0 and restrict old dependencies

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-28 10:32:44 -05:00
Manuela Kuhn
0f5c63b0c3 py-xlrd: add 2.0.1 (#26282) 2021-09-28 10:31:45 -05:00
Manuela Kuhn
b8dd8b07f9 py-appdirs: add 1.4.4 (#26298) 2021-09-28 10:26:23 -05:00
Diego Alvarez
f65a50d9f9 Update Nextflow (#26042) 2021-09-28 07:15:17 -04:00
Harmen Stoppels
4ce9c839ac Add OpenSSL 3 (#26097)
* OpenSSL 3.0.0

* Remove openssl constraint in e4s to test 3.0.0

* Restrict openssl

* Restrict openssl to @:1 in unifyfs

* Revert "Remove openssl constraint in e4s to test 3.0.0"

This reverts commit 0f0355609771764280ab1b6a523c80843a4f85d6.

* Prefer 1.x
2021-09-28 10:36:55 +02:00
Massimiliano Culpo
aa8727f6f9 Move detection logic in its own package (#26119)
The logic to perform detection of already installed
packages has been extracted from cmd/external.py
and put into the spack.detection package.

In this way it can be reused programmatically for
other purposes, like bootstrapping.

The new implementation accounts for cases where the
executables are placed in a subdirectory within <prefix>/bin
2021-09-28 09:05:49 +02:00
bernhardkaindl
499d39f211 libp11: Fix build and add new version (#26135)
The build needs `pkgconfig` and `openssl`, `m4` is already added by `autoconf`.
Also add the current version of `libp11` to the list of versions.

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-09-28 04:01:08 +02:00
Manuela Kuhn
cd8e85d802 py-dataclasses: add 0.8 (#26283) 2021-09-27 20:18:07 -05:00
Manuela Kuhn
c1cfbc5536 py-meshio: add 5.0.1 and 4.4.6 (#26285) 2021-09-27 20:17:22 -05:00
Manuela Kuhn
87b23cc9cd py-deprecated: add 1.2.13 and get sources from pypi (#26286) 2021-09-27 20:15:35 -05:00
Harmen Stoppels
87450f3688 Use gnuconfig package for config file replacement (#26035)
* Use gnuconfig package for config file replacement

Currently the autotools build system tries to pick up config.sub and
config.guess files from the system (in /usr/share) on arm and power.
This is introduces an implicit system dependency which we can avoid by
distributing config.guess and config.sub files in a separate package,
such as the new `gnuconfig` package which is very lightweight/text only
(unlike automake where we previously pulled these files from as a
backup). This PR adds `gnuconfig` as an unconditional build dependency
for arm and power archs.

In case the user needs a system version of config.sub and config.guess,
they are free to mark `gnuconfig` as an external package with the prefix
pointing to the directory containing the config files:

```yaml
    gnuconfig:
      externals:
      - spec: gnuconfig@master
        prefix: /tmp/tmp.ooBlkyAKdw/lol
      buildable: false
```

Apart from that, this PR gives some better instructions for users when
replacing config files goes wrong.

* Mock needs this package too now, because autotools adds a depends_on

* Add documentation

* Make patch_config_files a prop, fix the docs, add integrations tests

* Make macOS happy
2021-09-27 18:38:14 -04:00
Tamara Dahlgren
c0da0d83ff qhull: use secure github URLS instead of www.qhull.org downloads (#26211) 2021-09-27 14:50:43 -07:00
Manuela Kuhn
9b7a8f69fb py-python-picard: add new package (#26268) 2021-09-27 23:39:30 +02:00
Brian Van Essen
acc8673e1a Updated versions for cuDNN and NVSHMEM (#26272) 2021-09-27 13:54:15 -07:00
Adam J. Stewart
5c1e133d23 py-torchvision: add v0.10.1 (#26267) 2021-09-27 13:35:53 -07:00
Manuela Kuhn
1ad8c0d67d py-llvmlite: add 0.37.0 (#26278) 2021-09-27 13:33:28 -07:00
Manuela Kuhn
044e2def4f py-datalad: move datalad wtf test over from py-datalad-metalad (#26274)
* py-datalad: move datalad wtf test over from py-datalad-metalad

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-27 15:24:48 -05:00
Manuela Kuhn
44355a4f18 py-numexpr: add 2.7.3 (#26279) 2021-09-27 20:13:59 +00:00
Manuela Kuhn
6b94d7e6a3 py-tqdm: add 4.62.3 (#26277) 2021-09-27 19:55:22 +00:00
Manuela Kuhn
441c602d2d py-nilearn: add 0.8.1 (#26276) 2021-09-27 14:50:13 -05:00
Thomas Madlener
285df128a1 [openloops][vbfnlo] Fix recipes and updated dependencies (#24461)
* [vbfnlo] Add doc variant to toggle building of docs

* [openloops] Add scons to dependencies

Make sure that the build_processes does not accidentally pick up a
non-suitable scons version from the underlying system

* [openloops] Set OLPYTHON to make sure the right scons is picked

* [openloops] Fix Flake8 style complaints
2021-09-27 11:40:33 -07:00
Richarda Butler
c68536e9d3 MPICH: Add E4S testsuite stand alone test (#25634) 2021-09-27 11:36:53 -07:00
Ben Darwin
c07af15946 mrtrix3: add version 3.0.3 (#25943) 2021-09-27 11:33:42 -07:00
iarspider
e256d02963 Update highfive (#26262)
* Add new versions of highfive
* Fix CMake option name
2021-09-27 11:24:37 -07:00
Marie Houillon
87c7a7e103 New packages for openCARP (#25909)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-09-27 11:21:43 -07:00
Melven Roehrig-Zoellner
6b2192ef96 source-highlight: allow to build the git master branch (#25947)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-09-27 11:16:55 -07:00
Miroslav Stoyanov
5130f43eb3 added workaround for rocm/cmake bug in tasmanian (#25949) 2021-09-27 11:14:21 -07:00
Edward Hartnett
c592e17d49 added package g2c from NOAAs NCEPLIBS project (#26190)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-09-27 11:03:54 -07:00
Olivier Cessenat
27c0b4a0f7 sundials package: @:5.7.0 requires hypre@:2.22.0 (#25903)
sundials@:5.7.0 fails to build with hypre@2.22.1
2021-09-27 10:58:54 -07:00
Steven Smith
ee63cfe0fd New Package: EcoSLIM (#25975)
Co-authored-by: Steven Smith <Steven Smith>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-09-27 10:38:53 -07:00
psakievich
df9d1dd1cb Correct path comparisons for fs view (#25891)
* Fix path comparisons in copy views

* Get correct permissions

* Set group id though os

Co-authored-by: Philip Sakievich <psakiev@sanida.gov>
2021-09-27 09:51:38 -07:00
jacorvar
33957f2745 add mantainer to bedops (#26141) 2021-09-27 16:23:50 +00:00
bernhardkaindl
0cc80f5118 spindle: It seems it needs mpi.h to compile, adding depends on mpi. (#26151)
Workaround this compile error for gcc by adding -Wno-narrowing for it:
spindle_logd.cc:65:76: error: narrowing conversion of '255' from 'int' to 'char'
spindle_logd.cc:65:76: error: narrowing conversion of '223' from 'int' to 'char'
spindle_logd.cc:65:76: error: narrowing conversion of '191' from 'int' to 'char'

spindle 0.8.1 wants to compile tests with mpi.h, newer versions need mpicc,
thus add: depends_on("mpi"). Spindle supports the --no-mpi to disable MPI.
2021-09-27 08:58:47 -07:00
Edward Hartnett
ffedc3637c added NOAAs UPP package (#26198) 2021-09-27 08:56:05 -07:00
Adam J. Stewart
4d3becdfd9 py-torch: add v1.9.1 (#26159) 2021-09-27 09:30:47 -05:00
bernhardkaindl
4a130b9185 perl: Fix test case bug perl#15544: Don't fail with PATH >1000 chars (#26245)
Fix the perl test case bug Perl/perl5#15544
Variable PATH longer than 1000 characters (as is usual with spack) fails a perl test case
The fix is: Don't test PATH in testcase perlbug.t
Fixes `spack install --test=all` for specs triggering a build and test of perl!
2021-09-27 15:18:36 +02:00
Manuela Kuhn
2acfe55b74 exempi: fix expat dependency (#26221)
* exempi: fix expat dependency and fix test with --test=root

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-09-27 14:52:23 +02:00
iarspider
8710353336 pythia8: update to v8.306, change url, set environment variables for dependents (#26255) 2021-09-27 09:05:51 +00:00
Jen Herting
514d04c8f1 New package: r-klar (#25390) 2021-09-27 02:53:03 +00:00
Jen Herting
87e91178a6 New package: r-questionr (#25395) 2021-09-26 21:35:24 -05:00
Manuela Kuhn
e90534d45e py-python-gitlab: add 2.10.1 (#26229) 2021-09-27 01:24:05 +02:00
Wouter Deconinck
caa33b7b05 [acts] eigen is not only a build dependency (#26257)
The ActsConfig.cmake includes a `find_dependency(Eigen3)` line. Requiring depends_on type='build' does not expose eigen to dependents during their build.

Ref: https://github.com/acts-project/acts/blob/v13.0.0/cmake/ActsConfig.cmake.in#L59
2021-09-27 01:23:44 +02:00
lorddavidiii
8fa6597d43 cfitsio: add version 4.0.0 (#26218) 2021-09-27 01:18:09 +02:00
Seth R. Johnson
7e2fc45354 trilinos: default gotype=long_long (#26253)
"Long long" is the default type when building trilinos on its own, and
many downstream packages (both in and out of spack) rely on it. E4S
already sets this explicitly to long_long.
2021-09-26 16:51:23 +02:00
Desmond Orton
3e7cee27d7 masurca: add versions up to v4.0.5 (#26171)
Co-authored-by: las_djorton <las_djorton@babybuild.las.iastate.edu>
2021-09-26 15:53:59 +02:00
Wouter Deconinck
798ef2bdb0 vtk: depends_on freetype @:2.10.2 through @:9.0.1 only (#26180)
The issues in https://gitlab.kitware.com/vtk/vtk/-/issues/18033 were fixed in:
- dae1718d50
- 31e8e4ebeb

These fixes are in vtk@9.0.2 https://github.com/Kitware/VTK/releases/tag/v9.0.2 and beyond.
2021-09-26 15:52:51 +02:00
Brian Van Essen
cc658c5f1e lbann: add support for building with the ONNX C++ library (#26130) 2021-09-26 15:50:09 +02:00
Valentin Volkl
1f972f90c8 podio, edm4hep: fix tests (#26116)
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
2021-09-26 15:49:10 +02:00
Brian Van Essen
123c105771 onnx: fix python version in environments (#26131)
When using the ONNX package inside of an environment that specifies a
python3 executable, it will attempt to use a system installed
version.  This can lead to a failure where the system python and the
environment python don't agree and the system python ends up with an
invalid environment.  Forces ONNX to use the same version of python as
the rest of the spec.

Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-09-26 15:48:45 +02:00
Brian Van Essen
b909560ed5 Added CMake command to export compiler directories to support emacs LSP mode. (#26118) 2021-09-26 15:47:46 +02:00
Paul Spencer
0e6e9c23a1 libsignal-protocol-c: new package (#26121)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-09-26 15:47:15 +02:00
Hadrien G
a99d8463ac diffutils: Add v3.8, fixes an incompatibility with newer glibc (#26237) 2021-09-26 12:30:16 +02:00
Harmen Stoppels
e76462da38 Compiler conflict in umpire as a range (#26161) 2021-09-26 12:28:30 +02:00
Harmen Stoppels
fbda52d1b0 Curl 7.79.0 (#26075) 2021-09-26 12:28:05 +02:00
Manuela Kuhn
ab85961e73 py-datalad-hirni: add new package (#26227) 2021-09-26 09:20:36 +00:00
Nikolay Simakov
72cabcf454 enzo: build extra tools, add optimization variant (#25401)
* added inits and rings tools to be built
* added opt variant
2021-09-26 10:59:06 +02:00
iarspider
344b37730b jemalloc: add more variants (#26144) 2021-09-26 10:56:27 +02:00
bernhardkaindl
5967a10432 candle-benchmarks: depend_on()s: Fix obsoleted and renamed variants (#26250)
Fix solving/concretizing candle-benchmarks:
py-theano: The requested variant +gpu us now named +cuda
opencv: The requested variants +python and +zlib are now fixed deps
2021-09-26 10:37:01 +02:00
bernhardkaindl
6ccda81368 log_parser.py: Find failed test case messages in error logs (#25694)
- Match failed autotest tests show the word "FAILED" near the end
- Match "FAIL: ", "FATAL: ", "failed ", "Failed test" of other suites
- autotest "   ok"$ means the test passed, independend of text before.
- autoconf messages showing missing tools are fatal later, show them.
2021-09-26 10:35:04 +02:00
bernhardkaindl
34415f6878 swiftsim: Fix build with version bump and depends_on('gsl') (#26166)
swiftsim-0.7.0 didn't build because of a configure script issue and
more. Fix the build by a version bump and adding `depends_on('gsl')`.
2021-09-26 10:32:44 +02:00
bernhardkaindl
a947680e37 dropwatch: make check starts a daemon which does not stop: Skip it (#26164)
dropwatch is a network packet drop checker and it's make check starts
a daemon which does not terminate.

- Skip this test to not block builds.
- Add depends_on('pkgconfig', type='build')
  It is needed in case the host does not have pkg-config installed.
- Remove the depends_on('m4', type='build'):
  The depends_on('autoconf', type='build') pulls m4 as it needs it.
2021-09-26 10:32:04 +02:00
bernhardkaindl
2154786b61 dnstop: needs ncurses and it forgot to add -ltinfo (#26163)
dnstop misses a depends('ncurses') and it needs
to link with libtinfo from ncurses as well.
2021-09-26 10:30:42 +02:00
bernhardkaindl
9a64a229a0 xfwp: Fix build using: env.append_flags('CPPFLAGS', '-D_GNU_SOURCE') (#26157)
Without -D_GNU_SOURCE, the build of xfwp has many compilation errors.
Example: io.c:1039:7: error: implicit declaration of function 'swab'
2021-09-26 10:29:43 +02:00
bernhardkaindl
7189a69c70 rivet: Fix of build and tests on Ubuntu 18.04 w/ version bump (#26152)
When using Ubuntu's gcc-8.4.0 on Ubuntu 18.04 to compile rivet-3.1.3,
compilation errors related to UnstableParticles(), "UFS" show up.

Compilation with this compiler is fixed in rivet-3.1.4, adding it.

Adding type='link' to the depends on 'hepmc' and 'hepmc' fixes
the tests to find libHepMC.so.4 in `spack install --tests=all`

Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
2021-09-26 10:29:08 +02:00
bernhardkaindl
fee0831b63 acct: skip installcheck: fails checking if all progs have --help (#26093)
Checks if all programs support --help and --version but not all do.
2021-09-26 10:26:21 +02:00
bernhardkaindl
919a893c08 mountpointattr: Fix checksum of 1.1.1 and fix build(patch is only for 1.1) (#26087) 2021-09-26 10:25:50 +02:00
bernhardkaindl
91ce8354a2 cairo: pass tests: devs wrote that other people shouldn't attempt them (#26086)
The cairo test suite is huge, has many backends and the README states
that running and attempting to pass it is not a goal for normal users,
it has so many dependencies into the system, including fonts, that
passing it is not a goal realistically in reach soon:
Skip it, it takes far too long to be practical.
2021-09-26 10:25:26 +02:00
bernhardkaindl
c411779c51 libfuse: Fix build when meson doesn't get host's udev pkg (#26147)
Despite the patch disabling installation of rules, meson's setup
stage looks up the udev package to get `/lib/udev/rules.d`, but as
spack has no `systemd/udev` package, it would fail to build.

Fix such builds by passing `-Dudevrulesdir` and bump version to 3.10.5
2021-09-26 10:24:30 +02:00
Manuela Kuhn
17857083b0 py-datalad-container: add new package (#26222) 2021-09-26 10:18:17 +02:00
Manuela Kuhn
dbbc2879e5 py-datalad-neuroimaging: add new package (#26223) 2021-09-26 10:17:22 +02:00
Manuela Kuhn
d627026910 py-datalad-webapp: add new package (#26226) 2021-09-26 09:50:01 +02:00
Manuela Kuhn
3b323d6c90 py-datalad-metalad: add new package (#26225)
Added py-nose for import and a simple installtest from appveyor.yml

Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-09-26 07:44:18 +00:00
bernhardkaindl
7ca657aef6 libidl builds using flex and bison: Add them as build-depends (#26183) 2021-09-26 09:40:18 +02:00
Jen Herting
27e6032f73 New package: py-gpyopt (#26232)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
Co-authored-by: Bernhard Kaindl <bernhardkaindl7@gmail.com>
2021-09-26 07:34:18 +00:00
Adam J. Stewart
76ca57bb2f py-scikit-learn: add v1.0 (#26243) 2021-09-26 08:33:58 +02:00
Jen Herting
56858eb34e first build of py-doe2 a fork of py-doe (#26235)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-09-26 08:12:40 +02:00
Carlos Bederián
b4b3b256bc ucx: use bfd instead of lld with %aocc (#26254) 2021-09-26 04:47:07 +02:00
Jen Herting
3c14d130ca New package: r-styler (#25399) 2021-09-25 20:50:22 +00:00
Sreenivasa Murthy Kolam
b56e1d1f6d limit the amd_target_sram_ecc to rocm-3.9.0-4.0.0 (#26240) 2021-09-25 19:18:44 +00:00
Sam Reeve
b2376db632 cabana: add 0.4 and new dependency variants (#25847)
Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
Co-authored-by: Christoph Junghans <junghans@votca.org>
2021-09-25 12:04:24 -06:00
Glenn Johnson
d8dc1f2c80 new package: dicom3tools (#25700) 2021-09-25 08:43:17 -06:00
Jen Herting
348cebfb8f py-sobol-seq: new package (#26234)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-09-25 14:39:36 +02:00
Jen Herting
3f7d6763e0 New package: py-pydoe (#26233)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-09-25 14:34:35 +02:00
bernhardkaindl
ff511e090a autotools doc PR: No depends_on('m4') with depends_on('autoconf') (#26101)
* autotoolspackage.rst: No depends_on('m4') with depends_on('autoconf')
  - Remove `m4` from the example depends_on() lines for the autoreconf phase.
  - Change the branch used as example from develop to master as it is
    far more common in the packages of spack's builtin repo.
- Fix the wrong info that libtoolize and aclocal are run explicitly
  in the autoreconf phase by default. autoreconf calls these internally
  as needed, thus autotools.py also does not call them directly.
- Add that autoreconf() also adds -I<aclocal-prefix>/share/aclocal.
- Add an example how to set autoreconf_extra_args.
- Add an example of a custom autoreconf phase for running autogen.sh.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-25 10:15:03 +02:00
Alec Scott
ef7cf83ea5 Add Go v1.17.1 (#26128) 2021-09-25 01:22:34 -06:00
acastanedam
b67cfc0fd1 gpi-2: improve GPI-2 installation (#25808)
Based on the original script of R. Mijakovic further improvements of
GPI-2 installation, in particular different official versions,
configuration setups and even testing. Importantly, the non-autotools
way of installation for older versions is also considered, which is
relevant for some packages using GPI-2.

Co-authored-by: Arcesio Castaneda Medina <arcesio.castaneda.medina@itwm.fraunhofer.de>
2021-09-25 00:58:46 -06:00
bernhardkaindl
e3dc586064 xload: fix build by disabling gettext and add v1.1.3 (#26142)
xload failed with unresolved referenced to libintl functions:
Disabled it's use of gettext calls and added the last "new" version.

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-09-25 00:58:32 -06:00
AMD Toolchain Support
ed13addf3b Cloverleaf: adding AOCC support (#26148)
Co-authored-by: Mohan Babu <mohbabul@amd.com>
2021-09-25 00:49:43 -06:00
Adam J. Stewart
b8e21f2b0b GDAL: fix build of Java bindings (#26244) 2021-09-25 00:01:45 -06:00
Manuela Kuhn
7e67652983 py-datalad: add 0.15.1 (#26230) 2021-09-24 23:40:48 -06:00
kwryankrattiger
a9cb31ab49 Enable cinema variant in ecp-data-vis-sdk (#26176) 2021-09-25 07:18:34 +02:00
Filippo Spiga
c725ca83ce nvhpc: add v21.9 (#26217) 2021-09-25 07:15:22 +02:00
bernhardkaindl
2eddc60baa tauola: Fix build: The current build wants lhapdf headers by default (#26154)
The hand-written `configure` script of this package does not handle
--without-<feature> at all. The source wants to use `lhapdf` headers
even if support of lhapdf is not indicated using `--with-lhapdf`.

Enable the variant `lhapdf` by default: It fixes the build of the
current package and provides the TauSpinner feature as well.
2021-09-24 20:16:59 -06:00
bernhardkaindl
13d313d3ad scallop: Fix build by bumping the version to 0.10.5 (#26162)
build of 0.10.3 fails with CoinPragma.hpp: No such file or directory
2021-09-24 18:11:06 -06:00
Olivier Cessenat
8ed7f65bc8 pigz: new version 2.6 (#26066) 2021-09-24 17:17:08 -06:00
bernhardkaindl
742bd1f149 nix: bump version, add new depends and make installcheck pass (#26179)
The current version of `nix` has some more features and has more
dependencies. The installcheck is quite involved but passes now.
2021-09-24 17:08:10 -06:00
bernhardkaindl
8d70f94aae cgdcbxd: Fix build: Use DESTDIR=self.prefix to not write to /etc (#26145)
Fix the build for normal non-root/non-system-user builds, as we cannot
know that we'd have to uninstall these files even if installed as root.
Also add `pkgconfig` and remove not explicitly needed `depends_on('m4')`
2021-09-24 16:32:09 -06:00
luker
ab90cd8fc4 Tau rocm fix (#26134)
* update the Tau package to use the correct ROCm dependencies and prefixes

    1st:
    When the rocm variant is selected, tau defaults to look for rocm in /opt/rocm
    which is not guarenteed to be the correct location -- this has been fixed
    to provide the prefix for hsa-rocr-dev (which is now a dependency when +rocm is
    selected).

    2nd:
    the rocprofiler dependency package was not specified correctly, it should
    be called rocprofiler-dev, also rocprofiler-dev is a dependency when
    +rocprofiler is selected.

added roctracer support
2021-09-24 16:29:04 -06:00
bernhardkaindl
cdcecda9d0 sst-dumpi: Correct the wrong checksum of the current version (#26181)
Correct the sha256 of the current version as shown by `spack checksum`
2021-09-24 14:17:16 -06:00
bernhardkaindl
adc7fee12e w3m: Fix build by disabling RAND_egd and japanese messages (#26168)
w3m's build fails with `undefined reference to `RAND_egd'` which
is an deprecated insecure feature and from building japanese messages.

Disabling both makes the build of `w3m` work.
2021-09-24 13:26:14 -06:00
bernhardkaindl
12252f1ca4 iproute2: add v5.10.0 and v5.11.0, add missing deps (#26182)
iproute2 needs libmnl and builds using flex and bison: Add them.
2021-09-24 12:37:52 -06:00
bernhardkaindl
7efb18b502 nginx: Bump version for OpenSSL@3 and restrict @:1.21.2 to openssl@:1 (#26156) 2021-09-24 12:16:51 -06:00
bernhardkaindl
45c84a2b04 xdriinfo: uses glXGetProcAddressARB, add: depends_on('gl') (#26184) 2021-09-24 12:08:07 -06:00
Edward Hartnett
2c9dfcabf8 added NOAA package prod_util (#26197) 2021-09-24 11:44:09 -06:00
Edward Hartnett
1a0e1597c8 nemsio: Add v2.5.3, which includes dependency change, and maintainers (#26188) 2021-09-24 11:41:15 -06:00
Adam J. Stewart
9a17dc0001 py-torchvision: rename master -> main (#26160) 2021-09-24 11:32:23 -06:00
Robert Cohn
3a48f5f931 intel-oneapi-mpi/mkl packages: add ilp64 support (#26045) 2021-09-24 10:32:06 -07:00
Edward Hartnett
73913a5d51 added GFDL FMS package (#26191) 2021-09-24 11:14:16 -06:00
Scott Wittenburg
45b70d9798 Pipelines: Disable ppc builds until we have resources or make it smaller (#26238) 2021-09-24 08:24:36 -07:00
bernhardkaindl
cdbb586a93 autotools.py/autoreconf: Show the depends_on()s to add to the package (#26115)
This commit shows a template for cut-and-paste into the package to fix it:

```py
==> fast-global-file-status: Executing phase: 'autoreconf'
==> Error: RuntimeError: Cannot generate configure: missing dependencies autoconf, automake, libtool.

Please add the following lines to the package:

    depends_on('autoconf', type='build', when='@master')
    depends_on('automake', type='build', when='@master')
    depends_on('libtool', type='build', when='@master')

Update the version (when='@master') as needed.
```
    
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-24 09:17:07 -06:00
bernhardkaindl
bcf708098d kmod: Add the missing depends on m4 and pkgconfig (#26137)
The build needs pkgconfig and lzma, m4 is already added by autoconf.

Disable generation of kmod manpages as spack does not have xsltproc yet.

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-09-24 08:02:09 -06:00
Edward Hartnett
71378bcf39 landsfcutil: new package (#26193) 2021-09-24 13:48:58 +02:00
Wouter Deconinck
f68b2ea73a acts: add v13.0.0 (#26196) 2021-09-24 13:47:25 +02:00
Edward Hartnett
2d8f06bfa0 ufs-utils: added NOAA maintainers (#26201) 2021-09-24 13:07:18 +02:00
Harmen Stoppels
87e1ed0ef1 Bump cmake 3.21.3 (#26186) 2021-09-24 04:13:52 -06:00
Troy Redfearn
ef6013da9c Added new versions and deprecated vulnerable versions (#26206) 2021-09-24 03:37:44 -06:00
Tamara Dahlgren
c348daf4dc Add 'radiuss' tags to RADIUSS packages (#26212) 2021-09-24 03:20:14 -06:00
Edward Hartnett
21eaf31291 g2tmpl: added NOAA maintainers (#26192) 2021-09-24 02:35:02 -06:00
Edward Hartnett
6d2ce0535f added NOAA package grib-util (#26200)
* added NOAA package grib-util
2021-09-24 02:17:07 -06:00
Ben Bergen
2e4528c55c Added mising '+' for kokkos (#26202) 2021-09-24 02:14:25 -06:00
Edward Hartnett
6f8c9edefc added NOAA ncio package (#26194) 2021-09-24 02:14:11 -06:00
Edward Hartnett
d532f5b40c added NOAA package nemsiogfs (#26195) 2021-09-24 02:08:06 -06:00
Wouter Deconinck
fb2e764f50 assimp: depends_on zlib (#26199)
Assimp searches for zlib (or builds its own version). When it searches, it can find a system install that is not provided by spack. Ref: d286aadbdf/CMakeLists.txt (L451)
2021-09-24 02:05:06 -06:00
Andrew-Dunning-NNL
7bb5dd7a14 gradle: add new versions through 7.2 (#26203) 2021-09-24 02:02:17 -06:00
iarspider
1299c714c4 gosamcontrib: add libs variants (#26030) 2021-09-24 10:00:02 +02:00
Ryan Mast
2bcdb33666 helics: Add versions 2.8.0, 3.0.0, and 3.0.1 (#26046) 2021-09-24 01:52:52 -06:00
Harmen Stoppels
a6bb3a66ea Remove centos:6 image references (#26095)
This was EOL November 30th, 2020. I believe the "builds" are failing on
develop because of it.
2021-09-24 09:47:49 +02:00
Wouter Deconinck
117ea5a239 opencascade: add v7.5.3; added VTK INCLUDE cmake flag (#26209) 2021-09-24 09:27:07 +02:00
Massimiliano Culpo
03c203effa Use Leap instead of Tumbleweed for e2e bootstrapping test (#26205)
Tumbleweed has been broken for a couple of days. The attempt
to fix it in #26170 didn't really work. Let's try to move to
a more stable release series for OpenSuse.
2021-09-24 01:22:40 -06:00
Mikhail Titov
ba452f7645 radical cybertools: add v1.8.0 (#26215) 2021-09-24 09:22:02 +02:00
Edward Hartnett
54ea7caf3f g2: add maintainers and version 3.4.5 (#26105)
* added new release, added noaa software maintainers to maintainer list

* updated comment

* removed trailing whitespace
2021-09-24 00:17:07 -06:00
kjrstory
bdab4c9f1f fontconfig: add dependency python (#25960) 2021-09-23 23:26:05 -06:00
iarspider
72c22696ac gperftools package: add variants (#26032)
* Make libunwind optional
* Add support for sized_delete and debugalloc

Co-authored-by: Seth R. Johnson <johnsonsr@ornl.gov>
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-23 22:40:28 -06:00
Thomas Kluyver
fdc9cb0adb h5py: new version 3.4 (#25935)
No changes to dependencies or supported Python versions.

https://docs.h5py.org/en/stable/whatsnew/3.4.html
2021-09-23 12:12:33 -06:00
bernhardkaindl
ea459993db python: Fix regression in python-2.7.17+-distutils-C++.patch (#25821) 2021-09-23 07:38:58 -05:00
Christoph Conrads
45c6fe2b94 SQLite: make variants discoverable (#25885)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-23 09:54:02 +02:00
Harmen Stoppels
56a81ec81c Pin opensuse image in bootstrap tests (#26170)
Currently zypper in opensuse containers throws 'not permitted'

Temporarily fix the digest until they fixed their upstream package manager issues
2021-09-23 08:03:43 +02:00
Gregory Becker
1195ac02e5 Merge tag 'v0.16.3' into develop 2021-09-22 16:25:40 -07:00
Brian Van Essen
fa92482675 dihydrogen package: add missing dependency (#25896) 2021-09-22 12:03:15 -07:00
Edward Hartnett
76ad001c56 added NOAA software maintainers to maintainer list (#26112) 2021-09-22 07:24:16 -04:00
bernhardkaindl
4ccd2e8ff0 pango: Fix build: restore autotools-based versions (#26084)
Fix the build of pango and it's 20 dependents: Only provide the versions which
support the build using autotools (conversion to MesonPackage didn't progress)
This only restores the list of versions of August 10, before the build broke.
2021-09-22 05:13:49 -06:00
Alec Scott
2b6a8ccf29 Add Rclone v1.56.1 (#26124) 2021-09-22 04:07:48 -06:00
albestro
7613511718 add conflict (#26028) 2021-09-22 12:07:19 +02:00
Alec Scott
ed3aa9633d Add Picard v2.26.2 (#26125) 2021-09-22 04:04:44 -06:00
kjrstory
24ca007448 su2: add version 7.0.4-7.2.0 (#25956) 2021-09-22 01:07:44 -06:00
Alec Scott
86ddcd0e2d Add Slepc v3.15.2 (#26123) 2021-09-21 23:13:51 -06:00
Edward Hartnett
5097a41675 gfsio: add NOAA software maintainers (#26106)
* added NOAA software maintainers to maintainer list

* added comment about NCEPLIBS
2021-09-21 19:20:47 -06:00
Harmen Stoppels
3b55c2e715 Bump version and update changelog 2021-09-21 16:58:41 -07:00
Harmen Stoppels
7caa844d49 Fix style tests 2021-09-21 16:58:41 -07:00
Harmen Stoppels
4cd6381ed5 Remove centos:6 image references
This was EOL November 30th, 2020. I believe the "builds" are failing on
develop because of it.
2021-09-21 16:58:41 -07:00
Massimiliano Culpo
aebc8f6ce5 docker: remove boto3 from CentOS 6 since it requires and updated pip (#24813) 2021-09-21 16:58:41 -07:00
Massimiliano Culpo
073c92d526 docker: Fix CentOS 6 build on Docker Hub (#24804)
This change make yum usable again on CentOS 6
2021-09-21 16:58:41 -07:00
Greg Becker
0e85d7011e Ensure all roots of an installed environment are marked explicit in db (#24277) 2021-09-21 16:58:41 -07:00
Todd Gamblin
77e633efa1 locks: only open lockfiles once instead of for every lock held (#24794)
This adds lockfile tracking to Spack's lock mechanism, so that we ensure that there
is only one open file descriptor per inode.

The `fcntl` locks that Spack uses are associated with an inode and a process.
This is convenient, because if a process exits, it releases its locks.
Unfortunately, this also means that if you close a file, *all* locks associated
with that file's inode are released, regardless of whether the process has any
other open file descriptors on it.

Because of this, we need to track open lock files so that we only close them when
a process no longer needs them.  We do this by tracking each lockfile by its
inode and process id.  This has several nice properties:

1. Tracking by pid ensures that, if we fork, we don't inadvertently track the parent
   process's lockfiles. `fcntl` locks are not inherited across forks, so we'll
   just track new lockfiles in the child.
2. Tracking by inode ensures that referencs are counted per inode, and that we don't
   inadvertently close a file whose inode still has open locks.
3. Tracking by both pid and inode ensures that we only open lockfiles the minimum
   number of times necessary for the locks we have.

Note: as mentioned elsewhere, these locks aren't thread safe -- they're designed to
work in Python and assume the GIL.

Tasks:
- [x] Introduce an `OpenFileTracker` class to track open file descriptors by inode.
- [x] Reference-count open file descriptors and only close them if they're no longer
      needed (this avoids inadvertently releasing locks that should not be released).
2021-09-21 16:58:41 -07:00
Todd Gamblin
2ae92ebdbb Use AWS CloudFront for source mirror (#23978)
Spack's source mirror was previously in a plain old S3 bucket. That will still
work, but we can do better. This switches to AWS's CloudFront CDN for hosting
the mirror.

CloudFront is 16x faster (or more) than the old bucket.

- [x] change mirror to https://mirror.spack.io
2021-09-21 16:58:41 -07:00
Harmen Stoppels
7f29dd238f Cray: fix extracting paths from module files (#23472)
Co-authored-by: Tiziano Müller <tm@dev-zero.ch>
2021-09-21 16:58:41 -07:00
Adam J. Stewart
0f486080b3 Fix use of quotes in Python build system (#22279) 2021-09-21 16:58:41 -07:00
Michael Kuhn
6b0c775448 clang/llvm: fix version detection (#19978)
This PR fixes two problems with clang/llvm's version detection. clang's
version output looks like this:

```
clang version 11.0.0
Target: x86_64-unknown-linux-gnu
```

This caused clang's version to be misdetected as:

```
clang@11.0.0
Target:
```

This resulted in errors when trying to actually use it as a compiler.

When using `spack external find`, we couldn't determine the compiler
version, resulting in errors like this:

```
==> Warning: "llvm@11.0.0+clang+lld+lldb" has been detected on the system but will not be added to packages.yaml [reason=c compiler not found for llvm@11.0.0+clang+lld+lldb]
```

Changing the regex to only match until the end of the line fixes these
problems.

Fixes: #19473
2021-09-21 16:58:41 -07:00
Adam J. Stewart
9120856c01 Fix fetching for Python 3.9.6 (#24686)
When using Python 3.9.6, Spack is no longer able to fetch anything. Commands like `spack fetch` and `spack install` all break.

Python 3.9.6 includes a [new change](https://github.com/python/cpython/pull/25853/files#diff-b3712475a413ec972134c0260c8f1eb1deefb66184f740ef00c37b4487ef873eR462) that means that `scheme` must be a string, it cannot be None. The solution is to use an empty string like the method default.

Fixes #24644. Also see https://github.com/Homebrew/homebrew-core/pull/80175 where this issue was discovered by CI. Thanks @branchvincent for reporting such a serious issue before any actual users encountered it!

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-09-21 16:58:41 -07:00
Edward Hartnett
90d953d3f6 w3emc: add NOAA software maintainers (#26110) 2021-09-21 17:54:19 -06:00
Tiziano Müller
d34b2638c7 boost: fix for @1.77.0%intel (#25965)
Add patch for build script from boost repo.
2021-09-21 16:07:25 -07:00
bernhardkaindl
979c355c99 spack/build_environment.py: Clean MAKEFLAGS, DISPLAY and TERM (#26092)
clean_environment(): Unset three more environment variables:

MAKEFLAGS: Affects make, can eg indirectly inhibit enabling parallel build
DISPLAY: Tests of GUI widget libraries might try to connect to an X server
TERM: Could make testsuites attempt to color their output
2021-09-22 00:23:10 +02:00
Edward Hartnett
92f199d57b added NOAA software maintainers to the maintainers list (#26102) 2021-09-21 16:16:49 -06:00
Edward Hartnett
fd716ce0c5 sfcio: add NOAA software maintainers (#26108)
* added NOAA software maintainers to maintainer list

* added comment about NCEPLIBS project
2021-09-21 15:28:37 -06:00
Edward Hartnett
d865caa7f7 ip2: add NOAA software maintainers and deprecation note (#26107)
* added NOAA software maintainers to maintainer list, added comment about library being deprecated

* deleted trailing whitespace
2021-09-21 14:49:13 -06:00
bernhardkaindl
981551b47f libtool: fix running the unit-tests with spack install --test root (#25707)
Besides adding autoconf and automake as needed for tests of 2.4.6,
skip Fortran test cases when Fortran compilers are not provided.
2021-09-21 14:18:29 -06:00
Tamara Dahlgren
c3cb863b82 Feature: Add deprecated versions section to spack info output (#25972) 2021-09-21 11:49:36 -07:00
AMD Toolchain Support
8de77bb304 Fix for - Installation issue: amdlibflame #25878 (#25987)
* Fix for - Installation issue: amdlibflame #25878

* Updated with python+pythoncmd - Symlink 'python3' executable to 'python'
2021-09-21 11:15:23 -07:00
Edward Hartnett
a8977f828e w3nco: add NOAA software maintainers (#26111) 2021-09-21 12:08:43 -06:00
Jonas Thies
6c487f4c6d packages/phist new version 1.9.5 (#26114) 2021-09-21 11:57:22 -06:00
Edward Hartnett
24500d4115 added noaa software maintainers to maintainer list (#26103) 2021-09-21 09:58:53 -07:00
iarspider
2741037c69 Fix FORM recipe (#26104) 2021-09-21 09:57:40 -07:00
Edward Hartnett
d278837316 sigio: add NOAA software maintainers (#26109) 2021-09-21 10:39:05 -06:00
bernhardkaindl
22cfc19bcb ddd,debuild,flux-sched: add missing dependencies (#26090) 2021-09-21 18:08:11 +02:00
Melven Roehrig-Zoellner
c24413a530 petsc: fix for enabling openmp (#25942)
* petsc: fix for enabling openmp

* petsc: shorten comment (style guidelines)

* petsc: move flag to make code more clear
2021-09-21 07:13:35 -06:00
natshineman
544b3f447d mvapich2-gdr: add v2.3.6 (#26076)
Co-authored-by: Nick Contini <contini.26@buckeyemail.osu.edu>
2021-09-21 06:19:56 -06:00
Gregory Lee
05ca19d9d7 fgfs: fix missing autotools depends_on (#26005)
* added build deps for fgfs

* added build deps when building master branch
2021-09-21 07:40:59 -04:00
Harmen Stoppels
a326713826 py-abcpy: new package (#25713) 2021-09-21 13:10:16 +02:00
bernhardkaindl
1b95c97bb3 ccfits: add v2.6 (#26089)
ccfits@2.5 doesn't compile on Ubuntu 18.04: Update to version 2.6.
2021-09-21 04:43:48 -06:00
bernhardkaindl
c6a33c28de Fix deps of diffmark,faiss,fgsl,fipcheck,nbdkit,ncbi-magicblast,xcb-util-cursor (#26091)
Fix missing type='build' deps for cpio, m4, pkg-config and python in
diffmark, faiss, fgsl, fipcheck, nbdkit, ncbi-magicblast and xcb-util-cursor
2021-09-21 04:16:43 -06:00
Harmen Stoppels
58663692a4 Rename 'variant_name' to 'variant' and document it in autotools build system (#26064) 2021-09-21 11:27:41 +02:00
Christoph Junghans
45ba4d94bd votca-* packages: add version 2021.2 (#26058) 2021-09-20 16:14:19 -07:00
Adam J. Stewart
3e3b7b1394 New package: py-torchgeo (#26059) 2021-09-20 16:12:55 -07:00
Jordan Ogas
d0fd9e6d5f charliecloud package: add version 0.25 (#26073) 2021-09-20 16:08:41 -07:00
adityakavalur
88880c5369 Include newer versions of UCX (#26072) 2021-09-20 23:41:26 +02:00
Danny McClanahan
aa7e354a3a patch serf and scons to use #!/usr/bin/env python3 (#26062) 2021-09-20 22:12:30 +02:00
iarspider
f3d2f62468 Add variants to FORM recipe (#25963) 2021-09-20 13:53:54 -06:00
Edward Hartnett
65f285831e added NOAA maintainers to ip package (#26055) 2021-09-20 11:36:03 -06:00
Olivier Cessenat
0197b364a2 mfem and petsc: alter hypre dependencies (#25902)
Hypre latest version 2.22.1 breaks MFEM and PETSc.
2021-09-20 09:51:29 -07:00
Edward Hartnett
96eefea9a3 added NOAA software team to maintainers list (#26056) 2021-09-20 09:01:53 -06:00
Olivier Cessenat
1ea58e0cb9 p7zip: resolve gcc 10 conflict (#25676)
Fix credit: Eric Brugger
2021-09-20 07:43:07 -04:00
Tamara Dahlgren
c6f9e9baf6 strumpack: Update stand-alone test to use stage directory (#25751) 2021-09-20 07:36:58 -04:00
kjrstory
430caaf5f6 paraview: patch for version 5.9.1 with gcc 11.1.0 (#25887)
* paraview: patch for version 5.9.1 with gcc 11.1.0

* Fix : blank line contains whitespace
2021-09-20 07:31:54 -04:00
Robert Underwood
6476e0cf02 gdb: new version v11.1 (#25920) 2021-09-20 07:30:37 -04:00
Jen Herting
acd4186a88 New packages: py-imgaug (#25894)
* updates from sid

* [py-imgaug] url -> pypi

* [py-imgaug] added version 0.4.0 and fixed up dependencies

* [py-imgaug] updated copyright

Co-authored-by: Andrew Elble <aweits@rit.edu>
2021-09-20 07:29:43 -04:00
iarspider
ca8d16c9d1 Allow setting variant name in AutotoolsPackage._activate_or_not (#26054) 2021-09-20 10:54:24 +02:00
jacorvar
d20fa421ca Fix R version (#26061)
R version should be `3.0.0` instead of `3.00`.
2021-09-20 10:47:40 +02:00
Edward Hartnett
8fceaf4a33 added NOAA software team to maintainers list (#26057) 2021-09-19 19:02:02 -06:00
Vanessasaurus
534bad0ff7 updating OmegaH to 9.34.1 (#26015) 2021-09-19 08:55:54 -06:00
Todd Gamblin
4f8b643404 Create SECURITY.md 2021-09-19 06:43:14 -07:00
Vanessasaurus
c2f42a6f09 updating kokkos to 3.4.01 (#26013) 2021-09-19 06:10:55 -06:00
Vanessasaurus
148c7aeb06 updating singularity to 3.8.3 (#26020)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-09-19 04:20:15 -06:00
jacorvar
4f79a83dd1 Fix R version (#26047)
R version should be `3.0.0`, in contrast to `3.00`.
2021-09-19 12:14:14 +02:00
Alec Scott
2d4d51eb5e Add v1.6.0 to Benchmark (#25996) 2021-09-18 20:59:02 -06:00
Cameron Smith
b14d6d217e omegah: add version 9.34.1 (#25828) 2021-09-18 19:58:44 -06:00
Alec Scott
5b400a69b7 Add v0.935 to Angsd (#25995) 2021-09-18 18:46:55 -06:00
Adam J. Stewart
c0839b14d5 Python: use platform-specific site packages dir (#25998) 2021-09-19 00:37:50 +00:00
Seth R. Johnson
6ff5795342 cmake: allow gcc on macOS for newer versions (#25994) 2021-09-18 17:34:43 -06:00
Michele Martone
60f0d0ac20 librsb: add v1.2.0.10 (#26044) 2021-09-18 17:43:41 -04:00
Axel Huebl
8f3482b2ce FFTW: Fix OpenMP Build on macOS (#26039) 2021-09-18 15:13:47 -06:00
Vanessasaurus
fc79a5da17 updating siesta to 4.0.2 (#26021) 2021-09-18 08:05:02 -06:00
Vanessasaurus
1880db8457 updating universal ctags to 5.2.0.xxxx (#26024) 2021-09-18 07:13:55 -06:00
Vanessasaurus
6538727fb3 updating sparsehash to 2.0.4 (#26023) 2021-09-18 06:52:59 -06:00
Vanessasaurus
f5275fecc5 updating htslib to 1.13 (#26012) 2021-09-18 06:26:00 -06:00
Vanessasaurus
d499309433 updating nco to 5.0.1 (#26014) 2021-09-18 06:23:05 -06:00
Vanessasaurus
c5e2662dea updating graphviz to 2.49.0 (#26011) 2021-09-18 06:19:56 -06:00
Vanessasaurus
7b0a505795 updating veloc to 1.5 and cleaning up spacing (#26025) 2021-09-18 06:10:56 -06:00
Vanessasaurus
e8b86b7ec6 updating cloc to 1.9.0 (#26009) 2021-09-18 05:44:04 -06:00
Vanessasaurus
608a0b1f8f updating poppler (#26016) 2021-09-18 05:10:56 -06:00
Vanessasaurus
abd11cf042 updating raxml to 8.2.12 (#26018) 2021-09-18 04:58:50 -06:00
Vanessasaurus
8ad910d8f1 updating protobuf (Gooooogle!) to 3.18.0 (#26017) 2021-09-18 04:40:49 -06:00
Vanessasaurus
d5c985b888 updating samtools to 1.13 (#26019) 2021-09-18 04:16:51 -06:00
Vanessasaurus
f0443d0327 updating spades to 3.15.3 (#26022) 2021-09-18 03:46:50 -06:00
Vanessasaurus
9af1858bff updating gatk to 4.2.2.0 (#26010) 2021-09-18 10:07:28 +02:00
David Beckingsale
fa3265ea51 Convert RAJA, CHAI and Umpire to CachedCMakePackages (#25788)
* Switch Umpire to CMakeCachedPackage
* Fix missing import
* Correct tests option in Umpire
* Switch RAJA to CachedCMakePackage
* Convert CHAI to CachedCMakePackage
* Corrections in RAJA
* Patches in Umpire & RAJA for BLT target export
* Fixup style
* Fixup incorrect use of cmake_cache_string
2021-09-17 21:29:41 -07:00
Chris White
79ac572f21 update tutorial version of hdf5 (#25368) 2021-09-17 17:34:56 -07:00
Massimiliano Culpo
b847bb72f0 Bootstrap should search for compilers after switching config scopes (#26029)
fixes #25992

Currently the bootstrapping process may need a compiler.

When bootstrapping from sources the need is obvious, while
when bootstrapping from binaries it's currently needed in
case patchelf is not on the system (since it will be then
bootstrapped from sources).

Before this PR we were searching for compilers as the
first operation, in case they were not declared in
the configuration. This fails in case we start
bootstrapping from within an environment.

The fix is to defer the search until we have swapped
configuration.
2021-09-17 18:28:48 -06:00
Harmen Stoppels
4d36c40cfb Bump reframe (#25970) 2021-09-17 14:23:05 -06:00
Olli Lupton
ae9adba900 Add ccache v4.4.1. (#25957) 2021-09-17 13:37:58 -06:00
Cyrus Harrison
bd415ec841 improve ascent package to use stages and cmake base (#25720)
* improve ascent package to use stages and cmake base

* style

* more style
2021-09-17 10:37:16 -07:00
iarspider
7e7de25aba fmt: add variant for shared library (#25969) 2021-09-17 08:04:55 -06:00
eugeneswalker
730720d50a variant build: openmp_ref should be openmp (#26006) 2021-09-17 06:38:00 -06:00
iarspider
8e486c1e57 gosam: new version 2.1.1 (#25985) 2021-09-17 06:10:41 -06:00
Kurt Sansom
be8e52fbbe GCC: patch for gcc 10.3.0 ICE when using nvcc (#25980)
* fix: patch for gcc 10.3.0 ICE when using nvcc

* fix: use URL reference instead

* fix: add missing sha256sum
2021-09-16 18:43:56 -06:00
Edward Hartnett
f8fae997d3 added package.py for GPTL (#25993) 2021-09-16 17:11:05 -06:00
Massimiliano Culpo
71a3173a32 Filter UserWarning out of test output (#26001) 2021-09-16 14:56:00 -06:00
Miroslav Stoyanov
e027cecff2 workaround a cmake/rocm bug in heffte (#25948) 2021-09-16 13:26:07 -06:00
Alec Scott
bb29c5d674 Add v7.0.2 to Admixtools (#25997) 2021-09-16 12:08:15 -06:00
G-Ragghianti
c4e26ac7c8 Fix for problem with cmake@3.21 (#25989) 2021-09-16 11:52:59 -06:00
AMD Toolchain Support
cf81046bb1 New package: ROMS (#25990)
Co-authored-by: Mohan Babu <mohbabul@amd.com>
2021-09-16 10:34:45 -07:00
Michael Kuhn
2d34acf29e cc: Use parameter expansion instead of basename (#24509)
While debugging #24508, I noticed that we call `basename` in `cc`. The
same can be achieved by using Bash's parameter expansion, saving one
external process per call.

Parameter expansion cannot replace basename for directories in some
cases, but is guaranteed to work for executables.
2021-09-16 16:25:49 +00:00
Michael Kuhn
d73fe19d93 Recommend Git's manyFiles feature (#25977)
Git 2.24 introduced a feature flag for repositories with many files, see:
https://github.blog/2019-11-03-highlights-from-git-2-24/#feature-macros

Since Spack's Git repository contains roughly 8,500 files, it can be
worthwhile to enable this, especially on slow file systems such as NFS:
```
$ hyperfine --warmup 3 'cd spack-default; git status' 'cd spack-manyfiles; git status'
Benchmark #1: cd spack-default; git status
  Time (mean ± σ):      3.388 s ±  0.095 s    [User: 256.2 ms, System: 625.8 ms]
  Range (min … max):    3.168 s …  3.535 s    10 runs

Benchmark #2: cd spack-manyfiles; git status
  Time (mean ± σ):     168.7 ms ±  10.9 ms    [User: 98.6 ms, System: 126.1 ms]
  Range (min … max):   144.8 ms … 188.0 ms    19 runs

Summary
  'cd spack-manyfiles; git status' ran
   20.09 ± 1.42 times faster than 'cd spack-default; git status'
```
2021-09-16 09:41:10 -06:00
Harmen Stoppels
5b211c90f5 Bump sirius 7.2.x (#25939) 2021-09-16 15:00:58 +02:00
Massimiliano Culpo
fa6366a7df Add a deprecation warning when using the old concretizer (#25966) 2021-09-16 13:25:24 +02:00
Mikael Simberg
b09ad2cc8c Update HPX package (#25775)
* Add support for C++20 to HPX package

* Enable unity builds in HPX package when available

* Add support for HIP/ROCm to HPX package

* Rearrange and update required versions for HPX package

* Add C++20 option to asio package
2021-09-16 13:24:17 +02:00
Harmen Stoppels
ccfdac8402 Improve bootstrapping docs a hair (#25962) 2021-09-16 07:02:31 -04:00
Harmen Stoppels
abb0f6e27c Fix NameError in foreground/background test (#25967) 2021-09-16 10:39:07 +02:00
Harmen Stoppels
3fe9b34362 Inform the user about bootstrapping (#25964) 2021-09-16 09:28:24 +02:00
jacorvar
c0122242ee bedops: Fix checksum for 2.4.40 (#25958)
Fixes #25951
2021-09-15 16:17:40 -07:00
Adam J. Stewart
0015f700b7 py-pybind11: use PythonPackage install method (#25650) 2021-09-15 11:57:33 -07:00
dependabot[bot]
5d23638fdc build(deps): bump codecov/codecov-action from 2.0.3 to 2.1.0 (#25925)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.3 to 2.1.0.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.0.3...v2.1.0)

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

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-15 16:02:05 +02:00
Tamara Dahlgren
f0b4afe7db Raise exception when 1+ stand-alone tests fail (#25857) 2021-09-15 08:04:59 -04:00
Ben Corbett
75497537a4 Added LvArray 0.2.2 (#25950) 2021-09-15 01:44:07 -06:00
Massimiliano Culpo
c52426ea7a Make clingo the default solver (#25502)
Modifications:
- [x] Change `defaults/config.yaml`
- [x] Add a fix for bootstrapping patchelf from sources if `compilers.yaml` is empty
- [x] Make `SPACK_TEST_SOLVER=clingo` the default for unit-tests
- [x] Fix package failures in the e4s pipeline

Caveats:
1. CentOS 6 still uses the original concretizer as it can't connect to the buildcache due to issues with `ssl` (bootstrapping from sources requires a C++14 capable compiler)
1. I had to update the image tag for GitlabCI in e699f14.  
1. libtool v2.4.2 has been deprecated and other packages received some update
2021-09-14 22:44:16 -07:00
Adam J. Stewart
0d0d438c11 Add a __reduce__ method to Environment (#25678)
* Add a __reduce__ method to Environment
* Add unit test
* Convert Path to str
2021-09-14 22:37:36 -07:00
Vanessasaurus
ef5ad4eb34 Adding ability to compare git references to spack install (#24639)
This will allow a user to (from anywhere a Spec is parsed including both name and version) refer to a git commit in lieu of 
a package version, and be able to make comparisons with releases in the history based on commits (or with other commits). We do this by way of:

 - Adding a property, is_commit, to a version, meaning I can always check if a version is a commit and then change some action.
 - Adding an attribute to the Version object which can lookup commits from a git repo and find the last known version before that commit, and the distance
 - Construct new Version comparators, which are tuples. For normal versions, they are unchanged. For commits with a previous version x.y.z, d commits away, the comparator is (x, y, z, '', d). For commits with no previous version, the comparator is ('', d) where d is the distance from the first commit in the repo.
 - Metadata on git commits is cached in the misc_cache, for quick lookup later.
 - Git repos are cached as bare repos in `~/.spack/git_repos`
 - In both caches, git repo urls are turned into file paths within the cache

If a commit cannot be found in the cached git repo, we fetch from the repo. If a commit is found in the cached metadata, we do not recompare to newly downloaded tags (assuming repo structure does not change). The cached metadata may be thrown out by using the `spack clean -m` option if you know the repo structure has changed in a way that invalidates existing entries. Future work will include automatic updates.

# Finding previous versions
Spack will search the repo for any tags that match the string of a version given by the `version` directive. Spack will also search for any tags that match `v + string` for any version string. Beyond that, Spack will search for tags that match a SEMVER regex (i.e., tags of the form x.y.z) and interpret those tags as valid versions as well. Future work will increase the breadth of tags understood by Spack

For each tag, Spack queries git to determine whether the tag is an ancestor of the commit in question or not. Spack then sorts the tags that are ancestors of the commit by commit-distance in the repo, and takes the nearest ancestor. The version represented by that tag is listed as the previous version for the commit.

Not all commits will find a previous version, depending on the package workflow. Future work may enable more tangential relationships between commits and versions to be discovered, but many commits in real world git repos require human knowledge to associate with a most recent previous version. Future work will also allow packages to specify commit/tag/version relationships manually for such situations.

# Version comparisons.
The empty string is a valid component of a Spack version tuple, and is in fact the lowest-valued component. It cannot be generated as part of any valid version. These two characteristics make it perfect for delineating previous versions from distances. For any version x.y.z, (x, y, z, '', _) will be less than any "real" version beginning x.y.z. This ensures that no distance from a release will cause the commit to be interpreted as "greater than" a version which is not an ancestor of it.

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Gregory Becker <becker33@llnl.gov>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-09-14 22:12:34 -07:00
David Beckingsale
c3bc3e61aa gcc: apply backported fixes to v4.9.3 (#25945) 2021-09-15 07:10:04 +02:00
Satish Balay
148071ac8a dealii: add version 9.3.1 (#25915) 2021-09-14 15:26:08 -06:00
Scott Wittenburg
bf7c12b4df Pipelines: (Re)enable E4S on Power stack (#25921)
Pipelines: (Re)enable E4S on Power stack
2021-09-14 14:55:50 -06:00
Weston Ortiz
56c375743a Add missing mumps TPL commands (#25940) 2021-09-14 20:26:37 +01:00
Vanessasaurus
c6edfa3f31 Update spack monitor to support new spec (#25928)
This PR coincides with tiny changes to spack to support spack monitor using the new spec
the corresponding spack monitor PR is at https://github.com/spack/spack-monitor/pull/31.
Since there are no changes to the database we can actually update the current server
fairly easily, so either someone can test locally or we can just update and then
test from that (and update as needed).

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-09-14 08:02:04 -06:00
Harmen Stoppels
fc96c49b0b Add py-pot with patch (#25712) 2021-09-14 15:55:02 +02:00
Harmen Stoppels
ce790a89f2 reframe: set PYTHONPATH at runtime (#25842) 2021-09-14 15:54:14 +02:00
Valentin Volkl
1b633e1ca4 ocaml: add patch for clang@11: (#25886) 2021-09-14 09:34:57 +02:00
Ben Darwin
2ac9dc76c4 dcmtk: add v3.6.4, v3.6.5, v3.6.6 (#25923) 2021-09-14 09:22:48 +02:00
Weston Ortiz
d7c5aa46fe trilinos: variant for libx11 (#25823) 2021-09-14 08:53:53 +02:00
Edward Hartnett
f6eb16982a added new version of parallelio library (#25916) 2021-09-13 18:22:54 -06:00
David Beckingsale
be1c4bc563 Rename camp 'main' version (#25918) 2021-09-13 16:55:55 -06:00
Timothy Brown
998de97091 ESMF, NEMSIO and UFS-UTILS changes. (#25846)
* ESMF and NEMSIO changes.

- Updating ESMF to set the COMM correctly when using Intel oneapi.
- Explicitly setting the CMake MPI Fortran compiler for NEMSIO.

* Update UFS utils CMake to use MPI_<lang>_COMPILER.
2021-09-13 16:13:43 -06:00
Greg Becker
dad69e7d7c Fix environment reading from lockfile to trust written hashes (#25879)
#22845 revealed a long-standing bug that had never been triggered before, because the
hashing algorithm had been stable for multiple years while the bug was in production. The
bug was that when reading a concretized environment, Spack did not properly read in the
build hashes associated with the specs in the environment. Those hashes were recomputed
(and as long as we didn't change the algorithm, were recomputed identically). Spack's
policy, though, is never to recompute a hash. Once something is installed, we respect its
metadata hash forever -- even if internally Spack changes the hashing method. Put
differently, once something is concretized, it has a concrete hash, and that's it -- forever.

When we changed the hashing algorithm for performance in #22845 we exposed the bug.
This PR fixes the bug at its source, but properly reading in the cached build hash attributes
associated with the specs. I've also renamed some variables in the Environment class
methods to make a mistake of this sort more difficult to make in the future.

* ensure environment build hashes are never recomputed
* add comment clarifying reattachment of env build hashes
* bump lockfile version and include specfile version in env meta
* Fix unit-test for v1 to v2 conversion

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-13 15:25:48 -06:00
Satish Balay
9956841331 petsc, petsc4py: add version 3.15.4 (#25912) 2021-09-13 11:49:36 -07:00
Massimiliano Culpo
e9f1cfdaaf Avoid hidden circular dependencies in spack.architecture (#25873)
* Refactor platform etc. to avoid circular dependencies

All the base classes in spack.architecture have been
moved to the corresponding specialized subpackages,
e.g. Platform is now defined within spack.platforms.

This resolves a circular dependency where spack.architecture
was both:
- Defining the base classes for spack.platforms, etc.
- Collecting derived classes from spack.platforms, etc.
Now it dopes only the latter.

* Move a few platform related functions to "spack.platforms"

* Removed spack.architecture.sys_type()

* Fixup for docs

* Rename Python modules according to review
2021-09-13 11:04:42 -07:00
Chuck Atkins
060582a21d ci: Add ecp-data-vis-sdk CI pipeline (#22179)
* ci: Add a minimal subset of the ECP Data & Vis SDK CI pipeline

* ci: Expand the ECP Data & Vis SDK pipeline with more variants
2021-09-13 11:34:13 -06:00
Chuck Atkins
c392454125 Disable dvsdk variants (#25889)
* dvsdk: Turn off variants by default

This allows an install to more easily be explicit about which pieces to
turn on as more variants are added

* dvsdk: effectively disable the broken variants
2021-09-13 11:33:55 -06:00
Seth R. Johnson
fca81c2ac8 kokkos: fail gracefully on missing microarch (#25910)
Fall back on known parent microarches (as determined by spack's built-in
archspec knowledge). Clsoes spack/spack#25907 .
2021-09-13 11:07:14 -06:00
Tamara Dahlgren
bafd84e191 Switch http to https where latter exists (#25672)
* Switch http to https where latter exists
* Hopefully restore original permissions
* Add URL updates after include the -L curl option
* Manual corrections to select URL format strings
2021-09-13 09:21:35 -07:00
Desmond Orton
1e08f31e16 New Version: mothur@1.46.1 (#25850) 2021-09-13 10:20:22 -06:00
Seth R. Johnson
1da7839898 trilinos: add conflicts for fortran (#25911) 2021-09-13 16:51:38 +02:00
Harmen Stoppels
a4a22a6926 Add a master branch for gnuconfig (#25866) 2021-09-13 14:17:32 +02:00
Nic McDonald
ceb94bd6ae Log4cxx add v0.12.0, convert to CMakePackage (#25875) 2021-09-13 05:17:08 -06:00
Tim Gymnich
b745e208a3 ravel: fix missing header file (#25906)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-13 04:49:42 -06:00
Harmen Stoppels
6a8383b2a7 Make sure perl doesn't run into recompile with fPIC linker errors (#25834) 2021-09-13 11:29:15 +02:00
Kelly (KT) Thompson
6210e694e1 draco: add v7.11.0 (#24631) 2021-09-13 11:16:57 +02:00
Adam J. Stewart
2f889b045c py-kornia: add new package (#25844) 2021-09-13 11:10:19 +02:00
Daniel Arndt
bc3b90f6ac Add SYCL build option to ArborX (#25736) 2021-09-13 11:09:51 +02:00
Harmen Stoppels
1f323d296d py-glmnet: new package (#25711) 2021-09-13 11:07:59 +02:00
Mikael Simberg
819cd41ee4 hpx, kokkos: add consistent variants for C++ std (#25535)
* Add cuda_constexpr variant to Kokkos package
* Don't require nvcc_wrapper in Kokkos package when using Cray compiler
2021-09-13 10:43:20 +02:00
Axel Huebl
c0069210e2 HiPACE: Update openPMD dep, add v21.09 (#25698) 2021-09-13 10:28:08 +02:00
Tamara Dahlgren
a1d792af4c Bugfix: Correct checksum's sha256 when retrieve from remote (#25831) 2021-09-13 08:08:00 +00:00
Glenn Johnson
b7e61a4b75 Tell gtk-doc where the XML catalog is (#25569)
* Tell gtk-doc where the XML catalog is

The gtk-doc configure script has an option for specifying the path to
the XML catalog. If this is not set the configure script will search
a defined set of directories for a catalog file and will set
`with_xml_catalog` based on that. Only if no system catalog is found will
the XML_CATALOG_FILES be looked at. In order to make sure that the spack
provided catalog is used, pass the `--with-xml-catalog` option.

* Use the property from docbook-xml
2021-09-13 09:57:04 +02:00
Mickaël Schoentgen
59832fb0ac httpie: add v2.5.0 (#25888) 2021-09-13 09:41:02 +02:00
Tamara Dahlgren
5fa075f5b4 Bugfix: spack test debug requires Spack tty (#25897) 2021-09-13 08:57:16 +02:00
gpotter2
4573741baa nmap: overhaul of the package recipe (#25656) 2021-09-13 08:24:02 +02:00
Xavier Delaruelle
e0d8f67f34 environment-modules: add version 5.0.0 (#25904)
Adapt configure arguments to only keep useful ones for this new major
release version.
2021-09-13 07:58:40 +02:00
Adam J. Stewart
0545f7d5cc py-pandas: add v1.3.3 (#25905) 2021-09-13 07:57:56 +02:00
Stephen McDowell
3a9028427c [docs] document official gfortran macOS precompiled binaries (#25818)
* document official gfortran macOS precompiled binaries

* compile without -vvv ;) {squash this}
2021-09-10 14:11:26 -05:00
Harmen Stoppels
729726d157 Remove dead code in installer (#24035)
Currently as part of installing a package, we lock a prefix, check if
it exists, and create it if not; the logic for creating the prefix
included a check for the existence of that prefix (and raised an
exception if it did), which was redundant.

This also includes removal of tests which were not verifying
anything (they pass with or without the modifications in this PR).
2021-09-10 11:32:46 -07:00
Scott Wittenburg
81962f100c Pipelines: build kokkos-kernels on bigger instance (#25845) 2021-09-10 08:27:42 -07:00
bernhardkaindl
d54a692e09 openssh: Fix parallel install issue, add test suite (#25790)
- Parallel install was failing to generate a config file.
- OpenSSH has an extensive test suite, run it if requested.
- 'executables' wrongly had 'rsh', replaced the openssh tools.
2021-09-10 05:58:37 -06:00
Christoph Conrads
b12f38383c SQLite: fix rtree, add version, make discoverable (#25554)
There are two ways to build SQLite: With the Autotools setup or the
so-called "amalgamation" which is a single large C file containing the
SQLite implementation. The amalgamation build is controlled by
pre-processor flags and the Spack setup was using an amalgamation
pre-processor flag for a feature that is controlled by an option of the
configure script. As a consequence, until now Spack has always built
SQLite with the rtree feature enabled.
2021-09-09 18:13:49 -06:00
Mark Abraham
9084ad69b4 Have GROMACS log files indicate spack was used (#25869)
Knowing that spack has patched the code and organized the build is potentially valuable information for GROMACS users and developers troubleshooting their builds.

PLUMED does further patches to GROMACS, so that is expressed directly also.
2021-09-09 16:38:31 -06:00
albestro
59d8031076 CUDA official GCC conflicts (#25054)
* update CUDA 11 / GCC compatibility range

* additional unofficial conflict

* minor changes to comments
2021-09-09 15:03:16 -07:00
Massimiliano Culpo
5fddd48f80 Refactor unit-tests in test/architecture.py (#25848)
Modifications:
- Export platforms from spack.platforms directly, so that client modules don't have to import submodules
- Use only plain imports in test/architecture.py
- Parametrized test in test/architecture.py and put most of the setup/teardown in fixtures
2021-09-09 09:34:47 -06:00
acastanedam
d8b95a496c openssl: link system openssl.conf after installation (#25807)
Co-authored-by: Arcesio Castaneda Medina <arcesio.castaneda.medina@itwm.fraunhofer.de>
2021-09-09 15:15:53 +02:00
Raghu Raja
161f0d5045 libfabric: Adds v1.13.1 (#25827)
This commit adds the 1.13.1 release. There was an update to the release
tarball on 9/7/21, so using the latest sha256 sum here.
2021-09-09 04:10:57 -06:00
Nathan Hanford
d83f7110d5 specs: move to new spec.json format with build provenance (#22845)
This is a major rework of Spack's core core `spec.yaml` metadata format.  It moves from `spec.yaml` to `spec.json` for speed, and it changes the format in several ways. Specifically:

1. The spec format now has a `_meta` section with a version (now set to version `2`).  This will simplify major changes like this one in the future.
2. The node list in spec dictionaries is no longer keyed by name. Instead, it is a list of records with no required key. The name, hash, etc. are fields in the dictionary records like any other.
3. Dependencies can be keyed by any hash (`hash`, `full_hash`, `build_hash`).
4. `build_spec` provenance from #20262 is included in the spec format. This means that, for spliced specs, we preserve the *full* provenance of how to build, and we can reproduce a spliced spec from the original builds that produced it.

**NOTE**: Because we have switched the spec format, this PR changes Spack's hashing algorithm.  This means that after this commit, Spack will think a lot of things need rebuilds.

There are two major benefits this PR provides:
* The switch to JSON format speeds up Spack significantly, as Python's builtin JSON implementation is orders of magnitude faster than YAML. 
* The new Spec format will soon allow us to represent DAGs with potentially multiple versions of the same dependency -- e.g., for build dependencies or for compilers-as-dependencies.  This PR lays the necessary groundwork for those features.

The old `spec.yaml` format continues to be supported, but is now considered a legacy format, and Spack will opportunistically convert these to the new `spec.json` format.
2021-09-09 01:48:30 -07:00
Harmen Stoppels
edb1d75b1b Add new package gnuconfig (#25849) 2021-09-09 02:13:43 -06:00
bernhardkaindl
ed9b38c8e3 Fix python/packages.py's config_vars for python2 packages (#25839)
Analysis mostly by me, fix updated after suggestion by Adam J. Steward

Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-09-09 01:25:55 -06:00
Adam J. Stewart
1a5891754a py-torchmetrics: add v0.5.1 (#25855) 2021-09-09 01:19:45 -06:00
Esteban Pauli
d916d801f2 sina: new package (#25448)
* Added spackage to build Sina (https://github.com/LLNL/Sina).

* Improvements to sina/package.py

Made numerous simplifications and improvements to sina/package.py
based on PR feedback.

* Added licence info

* Added maintainers

* Changed maintainers to be Github IDs.
2021-09-08 20:56:37 -07:00
Dr. Christian Tacke
46d770b416 root: Add Version 6.24.06 (#25822) 2021-09-08 16:29:10 -07:00
Cyrus Harrison
6979a63396 conduit: changes related to hdf5 builds that use cmake (#25719) 2021-09-08 15:53:47 -07:00
lukebroskop
f9314d38b0 mpip: fix package to depends on libunwind when +libunwind (#24007)
Added a dependency for mpip@3.5: when the libunwind is set to true (which is the default)
and '~setjmp' is set to False (which is also the default) to avoid a configure
time error from not finding libunwind.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-08 13:34:39 -06:00
Massimiliano Culpo
e47f0d486c Account for bootstrapping from sources niche case
This modification accounts for:
1. Bootstrapping from sources using system, non-standard Python
2. Using later an ABI compatible standard Python interpreter
2021-09-08 11:13:37 -07:00
Massimiliano Culpo
fd0884c273 Fix clingo bootstrapping on rhel + ppc64le
The system Python interpreter on rhel is patched to have
slightly different names for some architectures. This
makes it incompatible with manylinux generated extensions
for ppc64le.

To fix this issue when bootstrapping Spack we generate
on-the-fly symbolic links to the name expected by the
current interpreter if it differs from the default.

Links:
  https://github.com/pypa/manylinux/issues/687
  https://src.fedoraproject.org/fork/churchyard/rpms/python3/blame/00274-fix-arch-names.patch?identifier=test_email-mktime
2021-09-08 11:13:37 -07:00
Massimiliano Culpo
4033cc0250 Disable module generation during bootstrapping 2021-09-08 11:13:16 -07:00
Todd Gamblin
c309adb4b3 url stats: add --show-issues option (#25792)
* tests: make `spack url [stats|summary]` work on mock packages

Mock packages have historically had mock hashes, but this means they're also invalid
as far as Spack's hash detection is concerned.

- [x] convert all hashes in mock package to md5 or sha256
- [x] ensure that all mock packages have a URL
- [x] ignore some special cases with multiple VCS fetchers

* url stats: add `--show-issues` option

`spack url stats` tells us how many URLs are using what protocol, type of checksum,
etc., but it previously did not tell us which packages and URLs had the issues. This
adds a `--show-issues` option to show URLs with insecure (`http`) URLs or `md5` hashes
(which are now deprecated by NIST).
2021-09-08 07:59:06 -07:00
Paul Kuberry
c2a6ccbea8 trilinos: Gather teko requirements in one place and add conflict for muelu (#25703) 2021-09-08 15:18:01 +01:00
acastanedam
ca94240dd4 gcc: add patch for sanitizer in gcc<11.1.0 (#25804)
This allows to fix the compilation of gcc versions less than 11.1.0,
due to the remove of cyclades of libsanitizer as it is described in
the patch:

The Linux kernel has removed the interface to cyclades from the latest
kernel headers due to them being orphaned for the past 13
years. libsanitizer uses this header when compiling against glibc, but
glibcs itself doesn't seem to have any references to cyclades. Further
more it seems that the driver is broken in the kernel and the firmware
doesn't seem to be available anymore. As such since this is breaking
the build of libsanitizer (and so the GCC bootstrap) it is proposed to
remove this.

Co-authored-by: Arcesio Castaneda Medina <arcesio.castaneda.medina@itwm.fraunhofer.de>
2021-09-08 15:57:42 +02:00
bernhardkaindl
0ac751b27b perl: Bind us to @gdbm:1.19 due to API change in gdbm@1.20: (#25819)
By changing return values from C #defines to enums, gdbm-1.20 breaks a kludge:

  #ifndef GDBM_ITEM_NOT_FOUND
  # define GDBM_ITEM_NOT_FOUND GDBM_NO_ERROR
  #endif

The absence of the #define causes perl to #define GDBM_ITEM_NOT_FOUND
as GDBM_NO_ERROR which incorrect for gdbm@1.20:
2021-09-08 07:28:52 -06:00
Nic McDonald
9ef1dbd0ef systemc: new package (#25761) 2021-09-08 07:08:03 -06:00
Ethan Stam
c3d5232d5b ParaView: disable externals for fmt and exprtk (#25462) 2021-09-08 14:05:52 +02:00
Seth R. Johnson
f4e66b306e trilinos: yak shaving (#25549)
* trilinos: yak shaving

- use flags instead of manually adding cxxflags
- rearrange defines more sensibly
- use conflicts instead of inline package disables
- fix some inapplicable definitions such as OpenMP instantiation
- disable "broken" leaf packages(FEI, Panzer) by default
- rely on upstream libraries 'libs' rather than manual names

* flake8

* Fix executable call

* Address reviewer feedback
2021-09-08 14:04:35 +02:00
Harmen Stoppels
c33382b607 Cmake: improve ncurses detection (#25776)
* Optionally enable ccmake in cmake

Renames ncurses variant to `ccmake` since that's how users know it, and
explicitly enable/disable `BUILD_CursesDialog`.

* Make cmake locate its dependencies with CMAKE_PREFIX_PATH, and set rpath flags too

* Undo variant name & defaults change
2021-09-08 05:56:00 -06:00
iarspider
47b16b39a3 Add new version of Alpaka, set minimal CMake version (#25835) 2021-09-08 13:55:38 +02:00
Harmen Stoppels
7018a42211 Make sure we only pull in openssl w/ +ownlibs (#25559) 2021-09-08 05:16:50 -06:00
iarspider
28f71c4d12 Update catch2 (#25838) 2021-09-08 04:49:50 -06:00
Harmen Stoppels
26455a4ac2 mbedtls: trun into a MakefilePackage (#25558)
This is a step towards building cmake with curl using mbedtls instead of
openssl; building mbedtls shouldn't require cmake then.
2021-09-08 12:39:25 +02:00
bernhardkaindl
4e4b199f16 lib/spack/env/cc: tolerate trailing / in elements of $PATH (#25733)
Fixes removal of SPACK_ENV_PATH from PATH in the presence of trailing
slashes in the elements of PATH:

The compiler wrapper has to ensure that it is not called nested like
it would happen when gcc's collect2 uses PATH to call the linker ld,
or else the compilation fails.

To prevent nested calls, the compiler wrapper removes the elements
of SPACK_ENV_PATH from PATH.

Sadly, the autotest framework appends a slash to each element
of PATH when adding AUTOTEST_PATH to the PATH for the tests,
and some tests like those of GNU bison run cc inside the test.

Thus, ensure that PATH cleanup works even with trailing slashes.

This fixes the autotest suite of bison, compiling hundreds of
bison-generated test cases in a autotest-generated testsuite.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-09-08 12:09:07 +02:00
Sebastian Ehlert
0fb5a39c17 Add new versions of nlopt (#25836) 2021-09-08 12:06:45 +02:00
QuellynSnead
a86279cc52 netlib-lapack: Fixes for IBM XL builds (#25793)
netlib-lapack: Version 3.9.0 and above no longer builds with the IBM XL
compiler (#25447). Ported some fixes from the old ibm-xl.patch and added
logic for detection of XL's -qrecur flag.
2021-09-08 04:09:12 -04:00
bernhardkaindl
fd111a3395 autoconf package: Fix 2.69 and 2.62 to pass the testsuite (#25701)
Apply stable-release fixes from 2017 to older autoconf releses:
- Fix the scripts autoheader and autoscan to pass the test suite
- Fix test case to passing when libtool 2.4.3+ is in use

autoconf-2.13 dates back to 1999. The build wasn't possible since
4 years: Since 2017, we patch autom4te which didn't exist in 2.13,
failing the build of it. 4 years of not being able to build 2.13
is a crystal clear indication that we can remove it safely.
2021-09-07 18:25:44 -07:00
Cody Balos
32b6da8d57 amrex: support sundials variant in newer amrex versions (#25745)
* amrex: support sundials variant in newer amrex versions

* propagate cuda_arch to sundials

* change to old string formatting

* require sundials+rocm when amrex+rocm
2021-09-07 18:05:32 -07:00
Adam J. Stewart
c6e538583f GDAL package: add version 3.3.2 (#25820) 2021-09-07 13:55:51 -07:00
Stephen McDowell
83298160cc docs: minor grammar fix (#25814) 2021-09-07 09:51:14 +00:00
Adam J. Stewart
54fbe555cd gdbm: fix build issue on macOS (#25811) 2021-09-07 08:51:19 +01:00
Tao Lin
c4e85faa2d garfieldpp: add new package (#25800)
Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
2021-09-07 08:16:15 +02:00
Ignacio Laguna
a59edb2826 fpchecker: add new package (#25550) 2021-09-07 08:14:25 +02:00
Timothy Brown
2e2fbc6408 mpas-model: add v 7.1 (#25809) 2021-09-07 08:08:04 +02:00
Adam J. Stewart
5abbd094c7 py-einops: add new package (#25812) 2021-09-07 07:40:18 +02:00
bernhardkaindl
ca58cb701c gtk-doc: Fix the testsuite (hangs if gtkdocize was not installed) (#25717)
Ensure that testsuite has py-anytree and py-parameterized
and finds gtk-doc's gitdocize.

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-06 20:10:14 -05:00
Scott Wittenburg
a358358aa7 Update pinned OpenSSL version to 1.1.1l (#25787)
Update to the latest version of openssl, as the previous one (1.1.1k) is
now deprecated, so spack can no longer rebuild it from source.
2021-09-06 16:46:41 +00:00
bernhardkaindl
84d525dbdf perl: fix regressions in the end-of-life revisions (#25801)
- perl@:5.24.1 needs zlib@:1.2.8 - shown by more than a dozen tests
  https://rt.cpan.org/Public/Bug/Display.html?id=120134

- perl@:5.26.2 needs gdbm@:1.14.1 - shown by the test suite
  https://rt-archive.perl.org/perl5/Ticket/Display.html?id=133295

- Fix the test case cpan/Time-Local/t/Local.t to use 4-digit years
  http://blogs.perl.org/users/tom_wyant/2020/01/my-y2020-bug.html
2021-09-06 09:07:54 -06:00
bernhardkaindl
b5fa64fb10 libunistring: apply upstream fix for test suite (#25691)
Simple case of pragma weak not working with --as-needed
https://bugs.gentoo.org/688464
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=925746

Added possiblity to build from git master(new version master)
2021-09-06 08:55:38 -06:00
Olivier Cessenat
c424b86a64 gxsview: new package, an MCNP viewer (#25637)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-06 16:17:22 +02:00
Billae
ca50c91469 mesa: add v21.2.1 (#25715) 2021-09-06 16:02:11 +02:00
bernhardkaindl
13c0b0dcb3 uftrace: add new package (#25710) 2021-09-06 15:57:11 +02:00
Harmen Stoppels
834155fdb8 ccache 4.4 errors for old gcc/clang (#25783) 2021-09-06 15:33:08 +02:00
Axel Huebl
1badb47b80 WarpX/HiPACE/openPMD-api: Use when(...) (#25789)
Use the new with `when()` syntax for variant dependencies.
2021-09-06 15:26:04 +02:00
QuellynSnead
1a48c0f51c elfutils: address external linkage failures in 0.185 (#25769) 2021-09-06 15:07:42 +02:00
lukebroskop
92e4db4681 Do not allow cray build system patch for later version of otf2 (#25283)
Co-authored-by: Luke Roskop <lroskop@cedar.head.cm.us.cray.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-06 14:38:51 +02:00
Terry Cojean
dd8dc08a90 Ginkgo: add v1.4.0 (#25606)
* Add a patch to skip unavailable smoke tests.
2021-09-06 14:11:35 +02:00
Jean-Paul Pelteret
3e4b576f83 deal.II: Bump minimum required version for Ginkgo package (#25795) 2021-09-06 14:07:11 +02:00
Michael Kuhn
526315410a gzip: add v1.11 (#25797) 2021-09-06 14:00:25 +02:00
Michael Kuhn
66526cb57a gdbm: add v1.21 (#25798) 2021-09-06 13:13:18 +02:00
Sebastian Ehlert
beff29176c fpm: new package (#25799) 2021-09-06 13:12:53 +02:00
Jordan Galby
2af6c57afa py-pyqt5: don't install files into qt5 install prefix (#25657)
By default, py-pyqt5 installs qt designer and qml plugins into qt5's
install `<prefix>/plugins`. Don't do that.
2021-09-06 12:18:13 +02:00
Peter Scheibel
accd6dd228 boost @1.76: set toolset for intel b2 invocation (#25722)
and simplify constraint and add explanatory comment
2021-09-05 13:34:10 +02:00
bernhardkaindl
0ad54e0679 New package: py-anytree (#25718)
It is required for running all tests of gtk-doc.
2021-09-03 14:14:38 -07:00
Asher Mancinelli
bbc9d7d965 HiOp package: update magma dependency (#25721) 2021-09-03 14:05:45 -07:00
bernhardkaindl
6f5ec73087 m4: fix glitch in the test suite (#25702) 2021-09-03 15:04:59 -06:00
Desmond Orton
0aedafda19 New package: getOrganelle@1.7.5.0 (#25725) 2021-09-03 14:04:24 -07:00
Jose E. Roman
ac3ccad1e2 SLEPc package: add gpu variants (#25760) 2021-09-03 14:01:42 -07:00
Cyrus Harrison
5180b0b454 apcomp package: add versions 0.0.3 and 0.0.2 (#25767) 2021-09-03 14:00:17 -07:00
pmargara
432f577a0c RELION package: add versions 3.1.3 and 3.1.2 (#25772) 2021-09-03 13:58:39 -07:00
Paul Spencer
f6060c9894 Mathematica package: add version 12.2.0 (#25791) 2021-09-03 13:41:39 -07:00
Harmen Stoppels
c6c9213766 rocblas: use AMDGPU_TARGETS instead of Tensile_ARCHITECTURE (#25778) 2021-09-03 18:19:57 +02:00
Harmen Stoppels
64407e253c Always disable leftover active environment after tests 2021-09-03 07:27:19 -07:00
Harmen Stoppels
de492e73d5 Don't error when removing scope that does not exist 2021-09-03 07:27:19 -07:00
Sreenivasa Murthy Kolam
29d344e4c7 update version for rocm-4.3.1 release (#25766) 2021-09-03 15:25:31 +02:00
bernhardkaindl
95586335f7 openssh: add v8.7 (#25774) 2021-09-03 06:22:40 -06:00
Weiqun Zhang
f56f4677cf amrex: 21.09 (#25739) 2021-09-03 03:34:56 -06:00
Desmond Orton
043f0cd014 py-ansi2html: new package (#25741) 2021-09-03 11:25:52 +02:00
Desmond Orton
9841d1f571 py-cryolobm: add new package (#25748) 2021-09-03 11:25:06 +02:00
Desmond Orton
d61439c26a py-lineenhancer: add new package (#25743) 2021-09-03 10:59:06 +02:00
Desmond Orton
0b9baf9ae3 py-terminaltables: add new package (#25738) 2021-09-03 10:58:18 +02:00
Axel Huebl
2331148f4b WarpX: 21.09 (#25771)
Add the latest WarpX release.
2021-09-03 10:53:29 +02:00
Stephen Hudson
ffec74c359 libensemble: add tasmanian as optional dependency (#25762) 2021-09-03 10:30:08 +02:00
Desmond Orton
f162dd4f5b py-gooey: new package (#25763) 2021-09-03 10:24:31 +02:00
Desmond Orton
8149048a78 py-colorclass: add new package (#25747) 2021-09-03 10:17:33 +02:00
Desmond Orton
2b7a2f66b7 py-mrcfile: add new package (#25742) 2021-09-03 10:16:38 +02:00
Desmond Orton
551766e3c6 py-pathtools: add new package (#25749) 2021-09-03 09:23:01 +02:00
Olivier Cessenat
35fe188d22 silo: add build dependency on m4 (#25770) 2021-09-03 08:54:31 +02:00
jacorvar
5f4fcea79c Correct typo in r-assertive-data-uk (#25754)
`r-assertive-base` version contains a dot instead of a hyphen.
2021-09-02 18:10:56 -05:00
Tamara Dahlgren
487edcc416 mfem: Update stand-alone test to use test stage directory (#25744) 2021-09-02 14:52:56 -07:00
Gianluca Ficarelli
f71d93fc55 py-submitit: add new package (#25699) 2021-09-02 07:58:02 -05:00
Gilles Gouaillardet
2d78045cdd gromacs: add v2021.3 (#25750) 2021-09-02 12:18:05 +02:00
Vanessasaurus
8e61f54260 start of work to add spack audit packages-https checker (#25670)
This PR will add a new audit, specifically for spack package homepage urls (and eventually
other kinds I suspect) to see if there is an http address that can be changed to https.

Usage is as follows:

```bash
$ spack audit packages-https <package>
```
And in list view:

```bash
$ spack audit list
generic:
  Generic checks relying on global variables

configs:
  Sanity checks on compilers.yaml
  Sanity checks on packages.yaml

packages:
  Sanity checks on specs used in directives

packages-https:
  Sanity checks on https checks of package urls, etc.
```

I think it would be unwise to include with packages, because when run for all, since we do requests it takes a long time. I also like the idea of more well scoped checks - likely there will be other addresses for http/https within a package that we eventually check. For now, there are two error cases - one is when an https url is tried but there is some SSL error (or other error that means we cannot update to https):

```bash
$ spack audit packages-https zoltan
PKG-HTTPS-DIRECTIVES: 1 issue found
1. Error with attempting https for "zoltan": 
    <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: Hostname mismatch, certificate is not valid for 'www.cs.sandia.gov'. (_ssl.c:1125)>
```
This is either not fixable, or could be fixed with a change to the url or (better) contacting the site owners to ask about some certificate or similar.

The second case is when there is an http that needs to be https, which is a huge issue now, but hopefully not after this spack PR.

```bash
$ spack audit packages-https xman
Package "xman" uses http but has a valid https endpoint.
```

And then when a package is fixed:

```bash
$ spack audit packages-https zlib
PKG-HTTPS-DIRECTIVES: 0 issues found.
```
And that's mostly it. :)

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-09-02 08:46:27 +02:00
Cody Balos
8a7af82a82 py-adios: add new version (#25746) 2021-09-01 23:19:45 -07:00
Harmen Stoppels
0c61b31922 Bump nlohman-json and fix cmake args (#25504)
* Bump nlohman-json and fix cmake args

* Rename variant
2021-09-01 18:28:11 -07:00
David Beckingsale
156edffec2 Update versions for RAJA, CHAI, Umpire and camp (#25528) 2021-09-01 17:58:47 -07:00
eugeneswalker
6d484a055a py-jupyterhub: add version: 1.4.1 (#24890)
* py-jupyterhub: add version: 1.4.1

* dont need mako for latest release

* sort dependencies

* notebook isnt used for 1.4.1+

* add dependency on py-jupyter-telemetry; create new package py-jupyter-telemetry

* py-jupyter-telemetry: declare missing dependencies

* py-jupyterhub: need more specific depends_on before less specific

* add py-json-logger; py-jupyter-telemetry: add depends_on for py-json-logger

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

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

* remove py-json-logger erroneously and duplicatively added

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

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

* need py-alembic@1.4: for newest py-jupyterhub

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-09-01 22:58:24 +00:00
Harmen Stoppels
03331de0f2 bugfix: R packages can be concretized together with clingo again (#25730) 2021-09-01 14:12:55 -07:00
David Beckingsale
aabece46ba Add variant to allow unsupported compiler & CUDA combinations (#19736)
Sometimes users need to be able to override the conflicts in `CudaPacakge`.  This introduces a variant to enable/disable them.
2021-09-01 11:34:20 -07:00
Harmen Stoppels
4c23059017 Speed-up two unit tests by using builtin.mock instead of builtin (#25544) 2021-09-01 11:58:29 +02:00
Nisarg Patel
ab37ac95bf Adding new versions of redis (#25714) 2021-09-01 11:39:39 +02:00
Harmen Stoppels
2411a9599e nghttp2: add v1.44.0, fix build (#25605) 2021-09-01 11:33:31 +02:00
Peter Scheibel
b0ee7deaa7 allow building silo+mpi ^hdf5~mpi (#25724) 2021-09-01 09:43:57 +02:00
Richarda Butler
7adacf967d Legion: Add E4S testsuite stand alone test (#25285)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-08-31 16:57:55 -07:00
Richarda Butler
2633cf7da6 Papyrus: Add E4S testsuite stand alone test (#25324) 2021-08-31 15:56:20 -07:00
Hadrien G
3c6050d3a2 acts: add v12.0.0, v12.0.1 (#25697) 2021-08-31 16:44:01 +02:00
Scott Wittenburg
b34f289796 Pipelines: disable power builds (#25704) 2021-08-30 17:19:42 -07:00
Jen Herting
beb3524392 [py-plotly] added version 5.2.2 (#25668)
* [py-plotly] added version 5.2.2

* [py-plotly] flake8

* [py-plotly] requests not required for new version
2021-08-30 16:15:49 -05:00
Adam J. Stewart
8ee5bf6d03 py-pythran: update checksum for patch (#25693)
* Replace URL patch with file patch
* Add comment explaining patch origin and purpose
2021-08-30 10:02:39 -07:00
psakievich
a018f48df9 Updates to Exawind packages (#25568) 2021-08-30 09:22:55 -06:00
lorddavidiii
e51463f587 asciidoc-py3: add v9.1.0, v9.0.5 and v9.0.4 (#25562) 2021-08-30 08:32:03 -06:00
Piotr Luszczek
378543b554 plasma: add version 21.8.29, migrate url (#25688) 2021-08-30 07:46:46 -06:00
Valentin Volkl
3cd224afbf gaudi: update py-xenv dependency (#25457) 2021-08-30 07:13:41 -06:00
Mikael Simberg
44c0089be4 Add patch to fix Boost with CCE and CUDA (#25534) 2021-08-30 05:19:54 -06:00
Bryan Herman
65584a3b92 universal-ctags: add version p5.9.20210829.0 (#25361) 2021-08-30 11:51:47 +02:00
Phil Carns
ab657d7b53 mochi-margo: add v0.9.5 (#25365) 2021-08-30 11:42:36 +02:00
Ryan Marcellino
d3d0ee7328 miniconda3: add v4.10.3 (#25442)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-08-30 11:39:27 +02:00
Ryan Marcellino
ed17c3638b anaconda3: add v2021.05 (#25443)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-08-30 11:38:23 +02:00
Valentin Volkl
2f777d08a2 rivet: fixes for gcc@10: (#25454) 2021-08-30 11:37:39 +02:00
kwryankrattiger
9be81ac4d9 Add documentation on compiler environment (#25508) 2021-08-30 11:17:03 +02:00
lorddavidiii
e60e41d9ca ocl-icd: add v2.3.1 (#25561) 2021-08-30 11:11:16 +02:00
dependabot[bot]
a2293e6ee1 build(deps): bump codecov/codecov-action from 2.0.2 to 2.0.3 (#25594)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-30 10:58:12 +02:00
Mikael Simberg
d381ab77b2 boost: add v1.77.0 (#25536) 2021-08-30 10:19:49 +02:00
Adam J. Stewart
1bf051e229 py-pbr: fix import tests (#25679) 2021-08-30 09:11:44 +02:00
Adam J. Stewart
506f62ddfe py-jupyterlab: fix import tests (#25680) 2021-08-30 09:11:30 +02:00
Adam J. Stewart
a6a448b16c py-metpy: fix import tests (#25681) 2021-08-30 09:11:14 +02:00
Adam J. Stewart
0dfa49af8e py-flit-core: build from source (#25682) 2021-08-30 09:09:08 +02:00
Barry Rountree
b3128af901 tmux: added additional versions. (#25684)
Added sha256 checksums for 3.21, 3.2, 3.1c 3.1a, 3.1, 3.0 and 2.9a.

Co-authored-by: Barry <rountree4@llnl.gov>
2021-08-30 09:07:43 +02:00
Joe Schoonover
5029b8ca55 FLAP: add new package (#25685)
Co-authored-by: Joe Schoonover <joe@fluidnumerics.com>
2021-08-30 09:04:05 +02:00
Hadrien G
0d226aa710 acts: add v11.0.0, v10.0.0 (#25444) 2021-08-30 00:58:39 -06:00
Sebastian Schmitt
07a9cb87ef Bump py-salib (#25403) 2021-08-29 08:19:12 -05:00
Kai Germaschewski
7cafe7dd66 add 'develop' branch to cmake package (#25623)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-08-28 18:42:55 +02:00
Massimiliano Culpo
40788cf49a Add a __reduce__ method to Spec (#25658)
* Add a __reduce__ method to Spec

fixes #23892

The recursion limit seems to be due to the default
way in which a Spec is serialized, following all
the attributes. It's still not clear to me why this
is related to being in an environment, but in any
case we already have methods to serialize Specs to
disk in JSON and YAML format. Here we use them to
pickle a Spec instance too.

* Downgrade to build-hash

Hopefully nothing will change the package in
between serializing the spec and sending it
to the child process.

* Add support for Python 2
2021-08-28 07:31:16 -07:00
Chen Wang
025dbb2162 recorder: add v2.2.1, v2.2.0, "master" and "pilgrim" (#25674) 2021-08-28 10:17:35 +02:00
Harmen Stoppels
e2b9ba3001 Add zstd support to libarchive (#25659) 2021-08-27 17:28:46 -07:00
Adam J. Stewart
3a4073cfff py-flit: add maintainer (#25667) 2021-08-27 17:26:41 -07:00
Harmen Stoppels
9577d890c4 add py-flameprof (#25539) 2021-08-27 17:22:35 -06:00
Harmen Stoppels
f5ab3ad82a Fix: --overwrite backs up old install dir, but it gets destroyed anyways (#25583)
* Make sure PackageInstaller does not remove the just-restored
  install dir after failure in spack install --overwrite
* Remove cryptic error message and rethrow actual error
2021-08-27 12:41:24 -07:00
Tamara Dahlgren
b5d3c48824 Load package environment prior to stand-alone/smoke test execution (#25619) 2021-08-27 18:46:26 +00:00
Harmen Stoppels
9d17d474ff Add missing link dep for py-uwsgi (#25654) 2021-08-27 13:44:21 -05:00
Adam J. Stewart
50411f8394 py-psycopg2: add version 2.9.1 (#25646) 2021-08-27 11:00:47 -07:00
Adam J. Stewart
32210b0658 py-pathlib: prevent conflicts with standard library (#25631) 2021-08-27 10:58:20 -07:00
Adam J. Stewart
98e6e4a3a5 New package: py-flit (#25630) 2021-08-27 10:57:07 -07:00
Chris Richardson
a7c6224b3a FEniCSx packages: add version 0.3.0 (#25627) 2021-08-27 10:55:01 -07:00
Adam J. Stewart
9d95125d6a py-pyinstrument: add version 4.0.3 (#25632)
* Swap github download link for pypi
* Versions >= 4 dont need npm
2021-08-27 10:51:48 -07:00
Dylan Simon
ed07fa4c37 r-irkernel: add version 1.2; update version 0.7 (#25644)
Use a commit hash instead of a tag for 0.7
2021-08-27 10:44:10 -07:00
Jordan Galby
2d97d877e4 figlet: Fix figlet font dir (#25662)
By default, figlet looks for fonts in `/usr/local/share/figlet`, and if
it doesn't exist you get `figlet: standard: Unable to open font file`.

This fix changes the default font dir to the one installed in the
install prefix.
2021-08-27 10:42:12 -07:00
Timothy Brown
7fd4dee962 ESMF package: add version 8.1.1 (#25590)
Also build with internal lapack library by default.
2021-08-27 10:26:06 -07:00
Michael Kuhn
4f3a538519 meson: add 0.59.1 and 0.58.2 (#25661) 2021-08-27 06:35:00 -06:00
Michael Kuhn
5c1710f7dc glib: add 2.68.4 (#25660) 2021-08-27 06:22:42 -06:00
Jordan Galby
97ea57e59f Add ld.gold and ld.lld compiler wrapper (#25626)
The gcc compiler can be configured to use `ld.gold` by default. It will
then call `ld.gold` explicitly when linking. When so, spack need to have
a ld.gold wrapper in PATH to inject rpaths link flags etc...

Also I wouldn't be surprised to see some package calling `ld.gold`
directly.

As for ld.gold, the argument could be made that we want to support any
package that could call ld.lld.
2021-08-27 13:16:26 +02:00
Massimiliano Culpo
c152e558e9 Make SpecBuildInterface pickleable (#25628)
* Add a __reduce__ method to SpecBuildInterface

This class was confusing pickle when being serialized,
due to its scary nature of being an object that disguise
as another type.

* Add more MacOS tests, switch them to clingo

* Fix condition syntax

* Remove Python v3.6 and v3.9 with macOS
2021-08-27 09:10:03 +00:00
Harmen Stoppels
12e87ebf14 Fix fish test "framework" (#25242)
Remove broken test, see #21699
2021-08-27 10:52:00 +02:00
Vanessasaurus
1113705080 adding remainder of issues from repology problems (#25653)
some of these are not resolvable in that there is only an http page
available, or a page reported as broken is actually ok, or a page has
an SSL error that does not prevent one from visiting (and no good replacement)

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-08-27 01:16:46 -06:00
Vasileios Karakasis
c3dabf05f4 Add ReFrame 3.8.0 (#25648) 2021-08-27 00:54:59 +00:00
Patrick Gartung
d0d6b29c9e Incorporate intel-tbb-oneapi package into intel-tbb package (#25613)
* Add intel-tbb-oneapi package that does the cmake configure and build.
Compare too the intel-oneapi-tbb package which only downloads a script that contains prebuilt binaries.

* Rename package intel-tbb-cmake

* Incorporate intel-tbb-cmake into intel-tbb package
2021-08-26 17:06:27 -07:00
Harmen Stoppels
74389472ab Make env (de)activate error with -e, -E, -D flags (#25625)
* Make sure that spack -e. env activate b and spack -e. env deactivate error
* Add a test
2021-08-26 16:54:58 -07:00
Adam J. Stewart
f5d4f5bdac py-black: add new version, missing dep (#25629) 2021-08-26 16:53:29 -07:00
Tamara Dahlgren
1d4e00a9ff activeharmony: Switch to https (#25641) 2021-08-26 16:51:57 -07:00
Tamara Dahlgren
8530ea88a3 acl: Switch to https (#25640) 2021-08-26 16:51:26 -07:00
Tamara Dahlgren
e57780d7f0 ACE: Switch to https (#25638) 2021-08-26 16:50:51 -07:00
Tamara Dahlgren
e39c9a7656 adlbx: switch url to https (#25642) 2021-08-26 16:50:17 -07:00
Morten Kristensen
bdb02ed535 py-vermin: add latest version 1.2.2 (#25643) 2021-08-26 22:30:09 +00:00
Erik Schnetter
b5f812cd32 New package: reprimand (#25364) 2021-08-26 15:03:49 -07:00
Paul Kuberry
abfd8fa70b Conditionally remove 'context' from kwargs in _urlopen (#25316)
* Conditionally remove 'context' from kwargs in _urlopen

Previously, 'context' is purged from kwargs in _urlopen to
conform to varying support for 'context' in different versions
of urllib. This fix tries to use 'context', and then removes
it if an exception is thrown and tries again.

* Specify error type in try statement in _urlopen

Specify TypeError when checking if 'context' is in kwargs
for _urlopen. Also, if try fails, check that 'context' is
in the error message before removing from kwargs.
2021-08-26 13:51:08 -07:00
Adam J. Stewart
6eb942cf45 Speedup environment activation, part 2 (#25633)
This is a direct followup to #13557 which caches additional attributes that were added in #24095 that are expensive to compute. I had to reopen #25556 in another PR to invalidate the GitLab CI cache, but see #25556 for prior discussion.

### Before

```console
$ time spack env activate .

real	2m13.037s
user	1m25.584s
sys	0m43.654s
$ time spack env view regenerate
==> Updating view at /Users/Adam/.spack/.spack-env/view

real	16m3.541s
user	10m28.892s
sys	4m57.816s
$ time spack env deactivate

real	2m30.974s
user	1m38.090s
sys	0m49.781s
```

### After
```console
$ time spack env activate .

real	0m8.937s
user	0m7.323s
sys	0m1.074s
$ time spack env view regenerate
==> Updating view at /Users/Adam/.spack/.spack-env/view

real	2m22.024s
user	1m44.739s
sys	0m30.717s
$ time spack env deactivate

real	0m10.398s
user	0m8.414s
sys	0m1.630s
```

Fixes #25555
Fixes #25541 

* Speedup environment activation, part 2
* Only query distutils a single time
* Fix KeyError bug
* Make vermin happy
* Manual memoize
* Add comment on cross-compiling
* Use platform-specific include directory
* Fix multiple bugs
* Fix python_inc discrepancy
* Fix import tests
2021-08-26 20:44:31 +00:00
Enrico Usai
9dab298f0d aws-parallelcluster: add v2.11.2 (#25635)
Signed-off-by: Rex <shuningc@amazon.com>
2021-08-26 15:35:01 -05:00
Vanessasaurus
6a26322eb3 fixing "problems in speck" as identified by repology (#25491)
Most of these are perl packages that need to point to the meta docs site,
and then a fair amount of http addresses that need to be https, and then
the rest are usually documentation sites that no longer exist or were
otherwise changes

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-08-26 15:05:24 -05:00
Harmen Stoppels
23106ac0f5 Set pubkey trust to ultimate during gpg trust (#24976)
* Set pubkey trust to ultimate during `gpg trust`

Tries to solve the same problem as #24760 without surpressing stderr
from gpg commands.

This PR makes every imported key trusted in the gpg database.

Note: I've outlined
[here](https://github.com/spack/spack/pull/24760#issuecomment-883183175)
that gpg's trust model makes sense, since how can we trust a random
public key we download from a binary cache?

* Fix test
2021-08-26 12:59:44 -07:00
Massimiliano Culpo
29d1bc6546 Ensure environment are deactivated when bootstrapping (#25607)
Fixes #25603

This commit adds a new context manager to temporarily
deactivate active environments. This context manager
is used when setting up bootstrapping configuration to
make sure that the current environment is not affected
by operations on the bootstrap store.

* Preserve exit code 1 if nothing is found
* Use context manager for the environment
2021-08-26 12:20:05 -07:00
lorddavidiii
c963bdee8b opencl-c-headers and opencl-clhpp: add new versions (#25576) 2021-08-26 10:57:14 -07:00
Adam J. Stewart
6b3518d6fd py-omegaconf: add missing dependency (#25589) 2021-08-26 10:55:42 -07:00
Glenn Johnson
6a31ca7386 opium package: add version 4.1 and update blas/lapack dependencies (#25591)
- remove unneeded dependency on blas
- create external-lapack variant
- patch makefile to not build lapack if `+external-lapack`

Also: 

- fix homepage link
- set parallel = False
- make references to `spec` consistent
- remove unneeded `build` method
2021-08-26 10:35:58 -07:00
Tamara Dahlgren
8664abc178 Remove references to self.install_test_root from packaging guide (#25238) 2021-08-26 19:22:40 +02:00
Massimiliano Culpo
a3d8e95e76 Avoid double loop in subprocess_context.store_patches (#25621)
fixes #21643

As far as I can see the double loop is not needed, since
"patch" is never used and the items in the list are tuples
of three values.
2021-08-26 09:46:01 -07:00
Massimiliano Culpo
1ab6f30fdd Remove fork_context from llnl.util.lang (#25620)
This object was introduced in #18124, and was later superseded by
#18205 and removed any use if the object.
2021-08-26 09:39:59 -07:00
Massimiliano Culpo
7dd3592eab Regression test for version selection with preferences (#25602)
This commit adds a regression test for version selection
with preferences in `packages.yaml`. Before PR 25585 we
used negative weights in a minimization to select the
optimal version. This may lead to situations where a
dependency may make the version score of dependents
"better" if it is preferred in packages.yaml.
2021-08-26 09:28:47 -07:00
Harmen Stoppels
e602c40d09 zstd package: use make instead of CMake (#25610)
zstd doesn't use -pthread for the static lib anymore, so gcc should be fine
2021-08-26 08:30:30 -07:00
Rémi Lacroix
270cbf08e3 VTK: add version 9.0.3 (#25609) 2021-08-26 07:29:41 -07:00
Vanessasaurus
4ddc0ff218 fixing bugs with new package updates for samtools and abi-dum (#25615)
samtools needed more constraints for htslib, and abi-dumper was missing pkg-config
on the dependency universal ctags

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-08-26 07:39:46 +02:00
Harmen Stoppels
73005166ef Bugfix: reinstalling updated develop specs (#25579)
PackageInstaller and Package.installed disagree over what it means
for a package to be installed: PackageInstaller believes it should be
enough for a database entry to exist, whereas Package.installed
requires a database entry & a prefix directory.

This leads to the following niche issue:

* a develop spec in an environment is successfully installed
* then somehow its install prefix is removed (e.g. through a bug fixed
  in #25583)
* you modify the sources and reinstall the environment
  1. spack checks pkg.installed and realizes the develop spec is NOT
     installed, therefore it doesn't need to have 'overwrite: true'
  2. the installer gets the build task and checks the database and
      realizes the spec IS installed, hence it doesn't have to install it.
  3. the develop spec is not rebuilt.

The solution is to make PackageInstaller and pkg.installed agree over
what it means to be installed, and this PR does that by dropping the
prefix directory check from pkg.installed, so that it only checks the
database.

As a result, spack will create a build task with overwrite: true for
the develop spec, and the installer in fact handles overwrite requests
fine even if the install prefix doesn't exist (it just does a normal
install).
2021-08-25 18:14:11 -07:00
Xiao-Yong
204b49fc1f py-grpcio: set parallel build jobs (#25616)
By default the number of parellel compiler processes launched by
py-grpcio equals the number of threads.  This commit limit it to
spack config build_jobs.
2021-08-26 01:08:05 +00:00
Olivier Cessenat
de3c0e62d0 New Package: perl-fth (#21879) 2021-08-25 19:16:13 -05:00
Kelly (KT) Thompson
e4e4bf75ca [pkg][new version] Provide eospac@6.5.0beta (#25614)
* Provide new version of eospac.

+ Provide version 6.5.0beta.
+ Make version 6.4.2 the default

+ Also increment

* volunteer to be the maintainer (for now).
2021-08-25 16:35:49 -06:00
Massimiliano Culpo
af2f07852c environment: match concrete specs only if they have the same build hash (#25575)
see #25563

When we have a concrete environment and we ask to install a
concrete spec from a file, currently Spack returns a list of
specs that are all the one that match the argument DAG hash.

Instead we want to compare build hashes, which also account
for build-only dependencies.
2021-08-25 10:56:16 -07:00
Matthieu Dorier
e2e7b0788f [py-meshio] Added py-meshio package (#25578)
* Added py-meshio package

* Added setuptools dependency to py-meshio package

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

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

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

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

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

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

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

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

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

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

* added missing py-importlib-metadata dependency in py-meshio

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-25 11:19:40 -06:00
Todd Gamblin
d27e0bff5a installation: filter padding from binary installs, too (#25600)
#25303 filtered padding from build output, but it's still there in binary install/relocate output,
so our CI logs are still quite long and frequently hit the limit.

- [x] add context handler from #25303 to buildcache installation as well
2021-08-25 17:39:00 +02:00
Todd Gamblin
fafe1cb7e8 Make spack graph -i environment-aware (#25599)
This allows you to run `spack graph --installed` from within an environment and get a dot graph of
its concrete specs.

- [x] make `spack graph -i` environment-aware

- [x] add code to the generated dot graph to ensure roots have min rank (i.e., they're all at the
      top or left of the DAG)
2021-08-25 07:41:04 -07:00
arjun-raj-kuppala
3e2f890467 Bump up version for rocm-debug-agent - ROCm 4.3.0 (#25588) 2021-08-25 15:03:07 +02:00
Harmen Stoppels
6fab0e1b9c libarchive: add v3.5.2, add maintainer, reworked recipe (#25604)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-08-25 05:16:45 -06:00
Harmen Stoppels
f4c9161f84 ca-certificates-mozilla: add v2021-07-05 (#25565) 2021-08-25 12:58:08 +02:00
Harmen Stoppels
fd095a3660 libuv: add v1.42.0, v1.41.1 (#25560) 2021-08-25 12:55:05 +02:00
lukebroskop
f6a9ef5ef5 Update the cray-mpich package to use the new cray-mpich MPI wrappers (#25597)
As of cray-mpich version 8.1.7, conventional MPI compiler wrappers are included in cray-mpich.

Co-authored-by: Luke Roskop <lroskop@cedar.head.cm.us.cray.com>
2021-08-24 23:50:02 -07:00
Todd Gamblin
df10e88e97 bootstrap: use sys.exec_prefix to set up external python correctly (#25593)
Bootstrapping clingo on macOS on `develop` gives errors like this:

```
==> Error: RuntimeError: Unable to locate python command in /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/bin

/Users/gamblin2/Workspace/spack/var/spack/repos/builtin/packages/python/package.py:662, in command:
        659                return Executable(path)
        660        else:
        661            msg = 'Unable to locate {0} command in {1}'
  >>    662            raise RuntimeError(msg.format(self.name, self.prefix.bin))
```

On macOS, `python` is laid out differently. In particular, `sys.executable` is here:

```console
Python 2.7.16 (default, May  8 2021, 11:48:02)
[GCC Apple LLVM 12.0.5 (clang-1205.0.19.59.6) [+internal-os, ptrauth-isa=deploy on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.executable
'/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python'
```

Based on that, you'd think that
`/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents` would be
where you'd look for a `bin` directory, but you (and Spack) would be wrong:

```console
$ ls /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/
Info.plist      MacOS/          PkgInfo         Resources/      _CodeSignature/ version.plist
```

You need to look in `sys.exec_prefix`

```
>>> sys.exec_prefix
'/System/Library/Frameworks/Python.framework/Versions/2.7'
```

Which looks much more like a standard prefix, with understandable `bin`, `lib`, and `include`
directories:

```console
$ ls /System/Library/Frameworks/Python.framework/Versions/2.7
Extras/         Mac/            Resources/      bin/            lib/
Headers@        Python*         _CodeSignature/ include/
$ ls -l /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python
lrwxr-xr-x  1 root  wheel     7B Jan  1  2020 /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python@ -> python2
```

- [x] change `bootstrap.py` to use the `sys.exec_prefix` as the external prefix, instead of just
      getting the parent directory of the executable.
2021-08-24 21:44:26 -07:00
Tamara Dahlgren
99076660d4 bugfix: Correct source of PID for -ddd installation outputs (#25596) 2021-08-25 00:21:48 +00:00
Todd Gamblin
80713e234c bootstrap: fix printing for python 2 (#25592) 2021-08-24 21:31:30 +00:00
Todd Gamblin
1374fea5d9 locks: only open lockfiles once instead of for every lock held (#24794)
This adds lockfile tracking to Spack's lock mechanism, so that we ensure that there
is only one open file descriptor per inode.

The `fcntl` locks that Spack uses are associated with an inode and a process.
This is convenient, because if a process exits, it releases its locks.
Unfortunately, this also means that if you close a file, *all* locks associated
with that file's inode are released, regardless of whether the process has any
other open file descriptors on it.

Because of this, we need to track open lock files so that we only close them when
a process no longer needs them.  We do this by tracking each lockfile by its
inode and process id.  This has several nice properties:

1. Tracking by pid ensures that, if we fork, we don't inadvertently track the parent
   process's lockfiles. `fcntl` locks are not inherited across forks, so we'll
   just track new lockfiles in the child.
2. Tracking by inode ensures that referencs are counted per inode, and that we don't
   inadvertently close a file whose inode still has open locks.
3. Tracking by both pid and inode ensures that we only open lockfiles the minimum
   number of times necessary for the locks we have.

Note: as mentioned elsewhere, these locks aren't thread safe -- they're designed to
work in Python and assume the GIL.

Tasks:
- [x] Introduce an `OpenFileTracker` class to track open file descriptors by inode.
- [x] Reference-count open file descriptors and only close them if they're no longer
      needed (this avoids inadvertently releasing locks that should not be released).
2021-08-24 14:08:34 -07:00
Andrew W Elble
7274d8bca2 openssl: new version 1.1.1l (#25586)
security update
2021-08-24 11:31:48 -06:00
Harmen Stoppels
73208f5835 Fix bindist network issues (#25587)
* Fix bindist network issues

* Another one using the network
2021-08-24 12:09:23 -05:00
Scott McMillan
107693fbd1 m4: fixes for the NVIDIA HPC SDK (#25546)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-08-24 17:07:03 +00:00
Massimiliano Culpo
31dcdf7262 ASP-based solver: rework version facts (#25585)
This commit rework version facts so that:
1. All the information on versions is collected
   before emitting the facts
2. The same kind of atom is emitted for versions
   stemming from different origins (package.py
   vs. packages.yaml)

In the end all the possible versions for a given
package are totally ordered and they are given
different and increasing weights staring from zero.

This refactor allow us to avoid using negative
weights, which in some configurations may make
parent node score "better" and lead to unexpected
"optimal" results.
2021-08-24 09:24:18 -07:00
Christoph Conrads
b2968c817f Melissa: add v0.7.1, deprecate v0.7.0 (#25584) 2021-08-24 09:46:45 -06:00
corentin-dev
213ec6df5f petsc: added variants and dips (#24725)
Add HPDDM, MMG, ParMMG and Tetgen to PETSc.

Add mmg version 5.5.2 (compatible with PETSc).
Add parmmg, depending on mmg.
Add pic variant to tetgen for PETSc.
2021-08-24 07:43:35 -06:00
Vanessasaurus
5823a9b302 fixing small bug that a line of spack monitor commands are still produced (#25366)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-08-24 05:48:16 +00:00
Paul Spencer
01cbf3b81c Spelling fixes (#25570) 2021-08-23 21:29:20 +02:00
Timothy Brown
6e68792ded Adding a heap of NOAA packages for UFS. (#25542)
* Adding a heap of NOAA packages for UFS.

Adding the Unified Forecast System (UFS) and all of the packages
it depends on.

* Fixing style tests.

* Removing the package CMAKE_BUILD_TYPE override.

* Removing compiler specs from `cmake_args()`.
2021-08-23 10:55:36 -06:00
Harmen Stoppels
2971a630b8 re2c: add versions up to v2.2 (#25500) 2021-08-23 02:28:31 -06:00
Adam J. Stewart
bf7ce7e4e9 curl: add tls multi-valued variant, fix macOS build (#25553) 2021-08-23 09:38:06 +02:00
Adam J. Stewart
c5c809ee3e py-numpy: add v1.21.2 (#25436) 2021-08-23 09:26:51 +02:00
Adam J. Stewart
9a8d7ea3cb py-ipykernel: add v6.2.0 and v5.5.5 (#25520) 2021-08-23 09:26:32 +02:00
Adam J. Stewart
a68701c636 py-pythran: add OpenMP dependency (#25137) 2021-08-22 09:02:21 +02:00
Adam J. Stewart
1212847eee Document how to handle changing build systems (#25174) 2021-08-21 11:05:42 -07:00
Cyrus Harrison
768ea7e8f7 ascent: a few small changes to the package (#25551)
- provides the site packages fix
- excludes the hdf5 linking changes (which are fixed in conduit@develop's build system)
- relaxes constraints to allows building static ascent against shared python
2021-08-21 18:01:27 +02:00
Adam J. Stewart
9b66138054 py-ipython: add v7.26.0 (#25521) 2021-08-21 04:19:38 -06:00
Sergey Kosukhin
cf7e40f03c claw: add v2.0.3 (#25459) 2021-08-21 04:10:41 -06:00
Olli Lupton
8c25b17d8e ccache: add v4.4. (#25540) 2021-08-21 11:02:49 +02:00
Asher Mancinelli
a7a37e4de6 hiop: add v0.4.6, v0.4.5, added maintainers (#25548) 2021-08-21 11:00:14 +02:00
Satish Balay
37a1885deb py-libensemble: add maintainer (#25543) 2021-08-20 11:49:56 -06:00
Gilles Grospellier
81e4155eaf mono: add v6.12.0.122, add maintainer (#25538) 2021-08-20 11:25:41 -06:00
Oliver Perks
7d666fc220 rsbench: Version bump and added compiler support (#25464)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-08-20 09:19:56 -06:00
Harmen Stoppels
c4e50c9efb pkgconf: add v1.8.0 (#25480) 2021-08-20 08:22:44 -06:00
Paul Spencer
caed90fcf2 Fix spelling mistake in the word "monitor" (#25486) 2021-08-20 13:52:02 +00:00
Scott Wittenburg
84100afc91 Pipelines: use shared pr mirror for pipeline generation and builds (#25529)
Once PR binary graduation is deployed, the shared PR mirror will
contain binaries just built by a merged PR, before the subsequent
develop pipeline has had time to finish.  Using the shared PR mirror
as a source of binaries will reduce the number of times we have to
rebuild the same full hash.
2021-08-20 07:45:23 -06:00
Adam J. Stewart
37e4d32d53 py-protobuf: fix checksums (#25469) 2021-08-20 15:03:33 +02:00
Sergey Kosukhin
c0bb2b9943 hdf5: support for Cray Fortran Compiler (#25466) 2021-08-20 15:00:14 +02:00
Adam J. Stewart
b1755c4fb3 py-torch: add v1.8.2 (#25471) 2021-08-20 14:56:58 +02:00
Christoph Conrads
2474b91078 file: make package discoverable (#25479) 2021-08-20 14:54:43 +02:00
Valentin Volkl
dcd19e7982 cupla: add new package (#25505) 2021-08-20 14:43:43 +02:00
Christoph Conrads
8be614729c sed: make package discoverable (#25481) 2021-08-20 14:31:31 +02:00
Tamara Dahlgren
201f5bdfe8 WarpX: Actually skip tests when cannot be run (#25494) 2021-08-20 14:27:12 +02:00
Keita Iwabuchi
ef32ff0e4c metall: add v0.16 and v0.14 (#25493) 2021-08-20 14:26:34 +02:00
Wouter Deconinck
2754f2f506 podio:add v0.13.1 (#25492)
This allows for fixed width integers in the fields, and other changes as in changelog https://github.com/AIDASoft/podio/releases/tag/v00-13-01.
2021-08-20 14:26:03 +02:00
Dylan Simon
89f442392e gtkplus: needs libepoxy+glx (#25488)
build fails with ~glx
2021-08-20 14:25:32 +02:00
Harmen Stoppels
9ead83caa7 curl: add v7.78 (#25496) 2021-08-20 14:23:06 +02:00
Harmen Stoppels
737f09f2b0 libxml2: add v2.9.12 (#25497) 2021-08-20 14:22:21 +02:00
Harmen Stoppels
0c25015fdc mbedtls: add v3.0.0 (#25498) 2021-08-20 14:19:55 +02:00
Harmen Stoppels
e6d1485c28 openssh: add v8.6p1 (#25499) 2021-08-20 14:19:32 +02:00
Harmen Stoppels
e9e0cd0728 rsync: add v3.2.3 (#25501) 2021-08-20 14:14:29 +02:00
Harmen Stoppels
09b52c4f04 util-linux: add v2.37.2, v2.37.1 and v2.37 (#25503) 2021-08-20 14:12:30 +02:00
Christoph Conrads
eb5061d54c mercurial: complete spec of Python dependency (#25506)
The list of required Python standard library components can be found in
the Mercurial wiki, "Supported Python Versions":
  https://www.mercurial-scm.org/wiki/SupportedPythonVersions
2021-08-20 14:07:44 +02:00
Christoph Conrads
b124fbb0c8 melissa: new package (#25511) 2021-08-20 14:05:21 +02:00
kwryankrattiger
9b239392b1 Add MPI variant and fix python3 variant for cinema (#25513) 2021-08-20 14:03:37 +02:00
Adam J. Stewart
05e933d7af py-nbsphinx: add v0.8.7 (#25515) 2021-08-20 13:50:32 +02:00
Erik Schnetter
65a7ceb3ce mpitrampoline: new package (#25516) 2021-08-20 13:50:03 +02:00
Tobias Ribizel
bdf7754552 ginkgo: update smoke test location (#25517)
The `test_install` folder was moved to `test` with https://github.com/ginkgo-project/ginkgo/pull/733.
2021-08-20 13:49:00 +02:00
Adam J. Stewart
b6f7fa6eb5 py-nbmake: add new package (#25525) 2021-08-20 05:46:40 -06:00
Garth N. Wells
2f85d3cdb9 pybind11: add v2.7.1 (#25519) 2021-08-20 13:44:39 +02:00
miheer vaidya
a6d26598ef p7zip build fails with gcc10+ (#25450) 2021-08-20 05:43:56 -06:00
Adam J. Stewart
d699478ab8 py-nbformat: add v5.1.3 (#25522) 2021-08-20 13:36:40 +02:00
Adam J. Stewart
68d488546f py-debugpy: add new package (#25523) 2021-08-20 13:36:14 +02:00
Adam J. Stewart
1d2798dd77 py-matplotlib-inline: add new package (#25524) 2021-08-20 13:35:55 +02:00
Adam J. Stewart
6ce0d934cf py-pydantic: add new package (#25526) 2021-08-20 13:31:58 +02:00
Pramod Kumbhar
ec720dd148 neuron: add v8.0.0 (#25533) 2021-08-20 13:24:18 +02:00
Harmen Stoppels
d52a1b8279 Fix broken develop as CI didn't run on latest merge commit (#25531)
* CI for #25439 was not run on the latest merge commit, and fails after #25470
* Make it consistent
2021-08-20 08:06:47 +00:00
Seth R. Johnson
e8bcb43695 trilinos: restore develop branch for exawind (#25487)
Exawind needs to build against trilinos@develop to sniff out errors
before they are merged to master.
2021-08-20 08:11:28 +01:00
Harmen Stoppels
220a87812c New spack.environment.active_environment api, and make spack.environment not depend on spack.cmd. (#25439)
* Refactor active environment getters

- Make `spack.environment.active_environment` a trivial getter for the active
environment, replacing `spack.environment.get_env` when the arguments are
not needed
- New method `spack.cmd.require_active_environment(cmd_name)` for 
commands that require an environment (rather than abusing 
get_env/active_environment)
- Clean up calling code to call spack.environment.active_environment or
spack.cmd.require_active_environment as appropriate
- Remove the `-e` parsing from `active_environment`, because `main.py` is
responsible for processing `-e` and already activates the environment.
- Move `spack.environment.find_environment` to
`spack.cmd.find_environment`, to avoid having spack.environment aware
of argparse.
- Refactor `spack install` command so argument parsing is all handled in the
command, no argparse in spack.environment or spack.installer
- Update documentation

* Python 2: toplevel import errors only with 'as ev'

In two files, `import spack.environment as ev` leads to errors
These errors are not well understood ("'module' object has no attribute
'environment'"). All other files standardize on the above syntax.
2021-08-19 19:01:37 -07:00
Massimiliano Culpo
10695f1ed3 Use kcov from official Ubuntu 20.04 repository (#25385)
* Ubuntu 20.04 provides kcov, so don't build from source

* Use two undocumented options for kcov v3.8
2021-08-19 14:03:10 -07:00
Scott Wittenburg
350372e3bf buildcache: Add environment-aware buildcache sync command (#25470) 2021-08-19 12:15:40 -06:00
Axel Huebl
cd91abcf88 WarpX: Check & Smoke Tests (#25352)
Run an example at build time with:
```
spack install --test=root warpx@<version>
```
Ref.: https://spack.readthedocs.io/en/latest/packaging_guide.html#stand-alone-or-smoke-tests

Run smoke-tests after install and loading of the package via
```
spack load -r /<spec>
spack test run /<spec>
```
2021-08-18 18:01:14 -07:00
tehyayi11
c865aaaa0f seacas: add lib directory to pythonpath in run environment (#25453) 2021-08-19 00:11:46 +00:00
Massimiliano Culpo
4318ceb2b3 Bootstrap clingo from binaries (#22720)
* Bootstrap clingo from binaries

* Move information on clingo binaries to a JSON file

* Add support to bootstrap on Cray

Bootstrapping on Cray requires, at the moment, to
swap the platform when looking for binaries - due
to #22800.

* Add SHA256 verification for bootstrapped software

Use sha256 verification for binaries necessary to bootstrap
the concretizer and gpg for signature verification

* patchelf: use Spec._old_concretize() to bootstrap

As noted in #24450 we may happen to need the
concretizer when bootstrapping clingo. In that case
only the old concretizer is available.

* Add a schema for bootstrapping methods

Two fields have been added to bootstrap.yaml:
  "sources" which lists the methods available for
       bootstrapping software
  "trusted" which records if a source is trusted or not

A subcommand has been added to "spack bootstrap" to list
the sources currently available.

* Methods used for bootstrapping are configurable from bootstrap:sources

The function that tries to ensure a given Python module
is importable now tries bootstrapping methods in the same
order as they are defined in `bootstrap.yaml`

* Permit to trust/untrust bootstrapping methods

* Add binary tests for MacOS, Ubuntu

* Add documentation

* Add a note on bash
2021-08-18 11:14:02 -07:00
Axel Huebl
8a32f72829 openPMD-api: add v0.14.2 (#25473) 2021-08-18 19:08:44 +02:00
Christoph Conrads
06c8fdafd4 Serf: add Python dependency, sort dependencies (#25478) 2021-08-18 09:01:40 -07:00
Harmen Stoppels
b22728d55c Support older py-pygments (#25456)
`markdown` is only supported since py-pygments@2.8.0:, see
9647d2ae50

Let's allow old versions too again.
2021-08-18 09:49:51 +02:00
Erik Schnetter
c869f3639d cmake.py: Improve documentation (#25467)
Add missing `self.` prefixes when calling `define_from_variant`
2021-08-17 23:30:55 +02:00
psakievich
d00fc55e41 Add link_type documentation (#25451) 2021-08-17 09:47:26 -07:00
Massimiliano Culpo
09378f56c0 Use a patched argparse only in Python 2.X (#25376)
Spack is internally using a patched version of `argparse` mainly to backport Python 3 functionality
into Python 2. This PR makes it such that for the supported Python 3 versions we use `argparse`
from the standard Python library. This PR has been extracted from #25371 where it was needed
to be able to use recent versions of `pytest`.

* Fixed formatting issues when using a pristine argparse.py
* Fix error message for Python 3.X when missing positional arguments
* Account for the change of API in Python 3.7
* Layout multi-valued args into columns in error messages
* Seamless transition in develop if argparse.pyc is in external
* Be more defensive in case we can't remove the file.
2021-08-17 08:52:51 -07:00
Harmen Stoppels
f444303ce5 Add new pygments (#25455) 2021-08-17 07:19:31 -07:00
Vicente Bolea
4c0f1bf4e4 Paraview: uses canonical cuda_arch variant (#23257)
cuda_arch in ParaView will no longer accept CUDA architecture names
2021-08-17 04:55:16 -07:00
psakievich
a81ec88c6c Allow environment views to be sym/hard link and copy types (#24832)
Add link type to spack.yaml format

Add tests to verify link behavior is correct for installed files
for all three view types

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-08-16 19:21:57 -07:00
robgics
657a5c85cc Improve license err msg (#24117)
* Add to the error message to help determine failure source.

* Break up long line to keep under 80 chars.

Co-authored-by: Rob Groner <rug262@psu.edu>
2021-08-16 14:25:41 -07:00
robgics
437a272854 ampl: Add missing ampl_lic install and improve look of resources (#25205)
* ampl: Add missing ampl_lic install and improve look of resources

* ampl: Add myself as maintainer

* ampl: Remove unused variable and delete extra lines

Co-authored-by: Rob Groner <rug262@psu.edu>
2021-08-16 14:25:19 -07:00
Jen Herting
bfb811b7d3 New package: r-reams (#25396) 2021-08-16 14:51:40 -05:00
Howard Pritchard
79c2d55830 coreutils: patch for 8.32 for aarch64 (#25320)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-08-16 20:12:18 +02:00
Jen Herting
e64659b008 New package: r-nfactors (#25393) 2021-08-16 12:52:47 -05:00
Jen Herting
51ad841f1e New package: r-neuralnet (#25392) 2021-08-16 12:51:27 -05:00
Jen Herting
9d05c7ba76 New package: r-labelled (#25391) 2021-08-16 12:50:07 -05:00
Jen Herting
1fd15703cd New package: r-islr (#25389) 2021-08-16 12:42:48 -05:00
eugeneswalker
538744c9ac e4s ci: further expand power stack (#25405) 2021-08-16 11:21:20 -06:00
Valentin Volkl
39cf1b2736 freeglut: add patch for clang@11: (#25438) 2021-08-16 09:07:38 -07:00
Jean-Paul Pelteret
3773185639 gmsh: remove gl2ps dependency (#25425) 2021-08-16 06:58:55 -07:00
Patrick Gartung
f22f857ece pythia6: update url (#25414) 2021-08-16 15:19:55 +02:00
Michael Will
3555446f73 FEniCS: Added byte order patch (#25417) 2021-08-16 05:46:36 -07:00
Seth R. Johnson
42c230dfbe trilinos: simplify variants (#25359) 2021-08-16 07:34:03 -04:00
Michele Mesiti
6110aa374c SOMBRERO - tests now in $PATH (#25421) 2021-08-16 13:22:30 +02:00
Sreenivasa Murthy Kolam
2d047d1f51 enable the variant AMDGPU_TARGETS in rocsolver (#25423) 2021-08-16 13:06:09 +02:00
Jen Herting
5f50f3329f r-viennacl: new package (#25398)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-08-16 01:13:28 -07:00
Jen Herting
1fa5642858 r-pvclust: new package (#25394)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-08-16 09:59:39 +02:00
lukebroskop
09cc439572 cray-libsci package update: add and addition function to access libraries. (#25386)
Co-authored-by: Luke Roskop <lukebr@login1.spock.olcf.ornl.gov>
2021-08-16 09:49:10 +02:00
Brian Van Essen
09fa9cdaae C++17 support for LBANN and HIP (#25406)
* Added logic to explicitly pass the c++17 language flags to the
HIP/ROCm software stack to ensure that HIP complies with the C++17
requirements.
2021-08-16 09:47:27 +02:00
Harmen Stoppels
de0d618730 libiconv: add libs variant to allow share and static builds (#25357) 2021-08-16 09:34:59 +02:00
Tamara Dahlgren
2ccbc00fd9 Second pass at increasing RADIUSS cloud CI packages (#25321) 2021-08-16 09:28:44 +02:00
Ethan Stam
51a22d5db7 ParaView: paraview should build its own IOSS (#25284) 2021-08-16 09:27:20 +02:00
Mikael Simberg
7f77ca4efb Update package.py (#25412) 2021-08-16 09:26:03 +02:00
Adam J. Stewart
83110cfd4c Python: update dependencies for 3.10 (#25430) 2021-08-16 09:19:32 +02:00
Valentin Volkl
c02539bd29 root: external find can now determine variants (#25427) 2021-08-16 09:18:48 +02:00
Adam J. Stewart
0b7aff2ad7 py-pandas: add v1.3.2 (#25434) 2021-08-16 09:10:55 +02:00
Adam J. Stewart
cd25599eba py-cython: add v0.29.24 (#25435) 2021-08-16 09:08:32 +02:00
Valentin Volkl
77a9004c31 vtk: add patch for missing includes (#25437) 2021-08-16 09:08:04 +02:00
AMD Toolchain Support
e42af64e24 WRF: v3.9.1.1 and v4.2 can be built with aocc@3.1 (#25384)
Co-authored-by: mohan002 <mohbabul@amd.com>
2021-08-16 08:26:56 +02:00
Geoffrey Gunter
fbed679dd0 Add date v3.0.1 (#25432) 2021-08-15 14:42:30 -05:00
wspear
44e251d974 PDT accepts oneapi as provider of icpc compiler (#25157)
* PDT accepts oneapi as provider of icpc compiler

* Add maintainers section (same as for tau)

* Whitespace formatting fix
2021-08-15 08:40:24 -07:00
Seth R. Johnson
2965c501a5 openpbs: add provider, new version, new name (#25429) 2021-08-15 07:59:19 -05:00
Adam J. Stewart
8d881cb7ee py-matplotlib: add v3.4.3 (#25413) 2021-08-14 21:09:17 -04:00
Satish Balay
c7ba2e9663 xsdk: deprecate versions 0.4.0, 0.5.0 (#25428) 2021-08-14 21:06:18 -04:00
Mikhail Titov
e911f8ab3c New packages: RADICAL-Cybertools (#25415)
* rct: new packages (core packages and some dependencies)

* rct: new packages (core packages and some dependencies)

* radical-entk: updated dependencies (according to comments)

* radical-gtod: updated version name

* radical-pilot: updated dependencies (according to comments)

* radical-saga: updated dependencies (according to comments)

* radical-utils: updated dependencies and set old versions deprecated

* saga-python: removed due to absence of packages (in PyPI, GitHub), this project was replaced by `radical-saga` and corresponding package `py-radical-saga` should be used

* saga-python: rolled back, but with deprecation status

* ntplib: removed maintainer

* pika: removed maintainer
2021-08-13 21:59:03 +00:00
Sreenivasa Murthy Kolam
1c7aa12615 cleanup opt-rocm references when using spack (#25264)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-08-13 19:08:25 +00:00
Massimiliano Culpo
f0875b2fef Remove handling for deprecated module commands (#25411)
The commands have been deprecated in #7098, and have
been failing with an error message since then.

Cleaning the code since it is unlikely that somebody
is still using them.
2021-08-13 07:51:56 -07:00
Harmen Stoppels
920f695d1d Mention bash in prerequisites (#25379)
Isn't installed on Alpine.
2021-08-13 07:28:29 -07:00
Harmen Stoppels
607f2a0c1c libtree: add v2.0.0 (#25360) 2021-08-13 14:54:37 +02:00
Valentin Volkl
6cd8583165 recola: add new package (including dependencies) (#25383) 2021-08-13 11:50:28 +02:00
Sreenivasa Murthy Kolam
06eda406cc append CMAKE_MODULE_PATH to include hip for rocalution (#25407) 2021-08-13 10:23:09 +02:00
arjun-raj-kuppala
4784ec67b2 AMD ROCm 4.3: Bump up rvs version to 4.3 and fix hip patch (#25382) 2021-08-13 10:20:25 +02:00
Pieter Ghysels
264b00bff4 strumpack: Patch for building shared lib when enabling ROCm. (#25252)
* Fix for building shared lib when enabling ROCm, for STRUMPACK 5.1.1.

* Update patch for shared lib with STRUMPACK 5.1.1 and ROCm, also update FindHIP.cmake

* update patch for shared libs with ROCm
2021-08-12 10:51:43 -07:00
messense
b008d2b1fe py-py-spy: upgrade to 0.3.8 and build with cargo (#25375) 2021-08-12 14:37:56 +00:00
Massimiliano Culpo
78850f38eb Fix typos in fixture use. Mention fixtures in pytest.ini (#25381) 2021-08-12 12:08:53 +00:00
Sreenivasa Murthy Kolam
cc8bb38aab update version for rocm-4.3.0 release for hip recipe (#25342)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-08-12 13:09:36 +02:00
Sreenivasa Murthy Kolam
524d4e5071 update version for rocm-4.3.0 release (#25374) 2021-08-12 10:17:03 +02:00
Aurelien Bouteiller
66fc6940a0 parsec: add missing build deps on flex/bison (#25373)
Signed-off-by: Aurelien Bouteiller <bouteill@icl.utk.edu>
2021-08-12 08:22:46 +02:00
Vasileios Karakasis
aef4696593 ReFrame: add v3.7.x (#25372) 2021-08-12 08:16:32 +02:00
Tamara Dahlgren
229bcd9f03 raja: develop version requires camp at master (#25346) 2021-08-11 16:05:37 +02:00
Tamara Dahlgren
345617ecb5 umpire: develop version requires camp at develop (#25347) 2021-08-11 16:05:13 +02:00
Massimiliano Culpo
6fb8122187 binutils: add v2.37 (#25356) 2021-08-11 02:52:42 -07:00
Sinan
a5fbf8fbae pango: add versions up to v1.48 (#25355)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-08-11 09:40:41 +00:00
Harmen Stoppels
3b23b42519 libtree: add "master" version, variants and dependencies (#25337) 2021-08-11 08:14:01 +00:00
Sreenivasa Murthy Kolam
84e2469e41 update the version for rocm-4.3.0 release (#25343) 2021-08-11 09:55:20 +02:00
Sreenivasa Murthy Kolam
2ca44a6f6d update version for rocm-4.3.0 release (#25349) 2021-08-11 09:52:22 +02:00
Tamara Dahlgren
fb8c954e2e Switch to settings option used in latest *and* oldest listed version (#25340) 2021-08-11 07:30:22 +00:00
Alexander Jaust
e89f2c0e91 fenics: updates to allow newer versions of Boost (#25329) 2021-08-11 09:29:48 +02:00
Valentin Volkl
0d4f69f28c py-particle: add v0.15.1 (#25333) 2021-08-11 09:28:30 +02:00
Edgar Leon
c3370897cf mpibind: add new package (#25322) 2021-08-11 09:22:37 +02:00
Seth R. Johnson
b686b73d6f moab: add 5.3.0 and use https (#25345) 2021-08-11 09:15:16 +02:00
Sinan
ffbc00de21 libaec: add v1.0.3, v1.0.4, v1.0.5 (#25348)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-08-11 09:14:48 +02:00
Axel Huebl
41ae83463e doc: def llnl.util.filesystem.find fix rst (#25350)
The star was not rendered in the docs.
2021-08-11 09:14:04 +02:00
Brian Van Essen
128d788363 Changed the LBANN software stack to not explicitly set the Host (#25351)
Transfer protocol in the Aluminum library.  If required the Host
Transfer variant +ht should be explicity set.
2021-08-11 09:12:59 +02:00
Harmen Stoppels
26ed2776e7 Add __skip_rocmclang to more rocm packages for cmake 3.21 (#25328) 2021-08-11 08:21:17 +02:00
arjun-raj-kuppala
d88d887ed0 AMD ROCm 4.3.0 - bump up version for llvmamdgpu, hsakmt-roct, rocm-cmake, rocm-smi-lib (#25228)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-08-11 00:42:31 +02:00
Massimiliano Culpo
371bc37dd4 Rework rules for provider weights (#25331)
Preferred providers had a non-zero weight because in an earlier formulation of the logic program that was needed to prefer external providers over default providers. With the current formulation for externals this is not needed anymore, so we can give a weight of zero to both default choices and providers that are externals. _Using zero ensures that we don't introduce any drift towards having less providers, which was happening when minimizing positive weights_.

Modifications:

- [x] Default weight for providers starts at 0 (instead of 10, needed before to prefer externals)
- [x] Rules to compute the `provider_weight` have been refactored. There are multiple possible weights for a given `Virtual`. Only one gets selected by the solver (the one that minimizes the objective function).
- [x] `provider_weight` are now accounting for each different `Virtual`. Before there was a single weight per provider, even if the package was providing multiple virtuals.

* Give preferred providers a weight of zero

Preferred providers had a non-zero weight because in an earlier
formulation of the logic program that was needed to prefer
external providers over default providers.

With the current formulation for externals this is not needed anymore,
so we can give a weight of zero to default choices. Using zero
ensures that we don't introduce any drift towards having
less providers, which was happening when minimizing positive weights.

* Simplify how we compute weights for providers

Rewrite rules so that specific events (i.e. being
an external) unlock the possibility to use certain
weights. The weight being considered is then selected
by the minimization process to be the one that gives
the best score.

* Allow providers to have different weights for different virtuals

Before this change we didn't differentiate providers based on
the virtual they provide, which meant that packages providing
more than one virtual had nonetheless a single weight.

With this change there will be a weight per virtual.
2021-08-10 14:15:45 -07:00
Harmen Stoppels
3fafbafab0 cxxopts: add v2.2.1 and clean package.py (#25334) 2021-08-10 18:42:18 +02:00
Harmen Stoppels
4ec70ca2ff elfio: new package (#25335) 2021-08-10 18:41:33 +02:00
Harmen Stoppels
afc1134fe6 cpp-termcolor: new package (#25336) 2021-08-10 18:39:55 +02:00
permeakra
8dff43b8ea Elk update (#24432)
* elk package updated to handle 3 latest versions support for older
versions is dropped

* fixed typos

* openmp dependency handling added

* and for blis too

* Retain support for elk 3, deprecate

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-10 09:51:45 -05:00
Howard Pritchard
d3f67a4855 openmpi:add pandoc dependency when building master (#25319)
related to #25304

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-08-10 09:02:19 +02:00
Paul Adamson
e44de970f8 uqtk: add pyqutk variant to uqtk (#25298)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-08-10 08:05:26 +02:00
Massimiliano Culpo
5916afec84 Add a badge for the Boostrapping workflow (#25318)
This workflow is run daily on `develop`.
2021-08-09 21:45:01 +02:00
Harmen Stoppels
81be31aee0 Make spack env activate x idempotent (#25222)
* Make spack env activate x idempotent

* Update lib/spack/spack/cmd/env.py
2021-08-09 07:07:39 -07:00
Robert Cohn
fc46db2269 sos: shr-atomics is a disable/enable (#25315) 2021-08-09 16:05:06 +02:00
iarspider
8c8b934fd8 giflib: define prefix and libversion also when building (#25263) 2021-08-09 13:32:38 +00:00
Robert Cohn
2738bc17a1 sos: add xpmem variant (#25260)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-08-09 13:16:19 +00:00
Vasily Danilin
ce199e1c67 intel-oneapi-vtune: new package + remove danvev from maintainers (#25311) 2021-08-09 15:04:06 +02:00
Tom Stitt
a3f76740e7 xwidgets: add new package (#25237) 2021-08-09 05:16:43 -07:00
downloadico
be59f2bff0 libxc: add std flag for Intel (#25281) 2021-08-09 14:05:42 +02:00
Valentin Volkl
d4df3b31fb dd4hep: fixes to run tests (#25204) 2021-08-09 14:04:33 +02:00
Martin Aumüller
597358e735 ispc: add v1.16 and v1.16.1 (#25206)
Aso adapt dependencies for older versions
2021-08-09 14:02:58 +02:00
Tiziano Müller
fa715c9892 cp2k: update elpa and sirius dependencies, fix build with mpich and gcc@10 (#24376)
* cp2k: fix build with GCC-10+ and MPICH

* cp2k: update SIRIUS and ELPA dependencies

* elpa: add version 2021.05.001, add ROCm support, include SVE flags
2021-08-09 13:46:15 +02:00
Tom Stitt
80473283f3 xeus: add v1.0.4, improved package recipe (#24984)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-09 13:42:46 +02:00
Adam J. Stewart
21e2ba13dc py-pydeprecate: add v0.3.1 (#25231) 2021-08-09 13:24:12 +02:00
Adam J. Stewart
df0d86d795 py-pytorch-lightning: add v1.4.1 (#25232) 2021-08-09 13:23:38 +02:00
Tom Stitt
0f514a390a xproperty: add new package (#25236) 2021-08-09 13:20:57 +02:00
Adam J. Stewart
c513ba25f1 py-pytest: add v6.2.4 (#25240) 2021-08-09 12:41:12 +02:00
Adam J. Stewart
250a08ab7a py-requests-unixsocket: add missing py-pbr dependency (#25241) 2021-08-09 12:40:10 +02:00
Erik Schnetter
534b5d28e8 ssht: add v1.5.0 (#25247) 2021-08-09 12:36:12 +02:00
Adam J. Stewart
20698f8f7e py-setuptools: add v57.4.0 (#25239) 2021-08-09 12:35:38 +02:00
Ben Darwin
bd8ae72146 dcm2niix: new package (at version 1.0.20210317) (#25250) 2021-08-09 11:15:38 +02:00
Severin Strobl
f67d3b127c apex: add v2.4.1 (#25248)
Also updated the URLs for APEX according to the recent move.
2021-08-09 11:14:55 +02:00
Martin Pokorny
22bc189e0e casacore: add variant for ADIOS2 support (#25251) 2021-08-09 11:13:26 +02:00
Todd Gamblin
7ddd6ad461 installation: filter padding from all tty output
This is both a bugfix and a generalization of #25168. In #25168, we attempted to filter padding
*just* from the debug output of `spack.util.executable.Executable` objects. It turns out we got it
wrong -- filtering the command line string instead of the arg list resulted in output like this:

```
==> [2021-08-05-21:34:19.918576] ["'", '/', 'b', 'i', 'n', '/', 't', 'a', 'r', "'", ' ', "'", '-', 'o', 'x', 'f', "'", ' ', "'", '/', 't', 'm', 'p', '/', 'r', 'o', 'o', 't', '/', 's', 'p', 'a', 'c', 'k', '-', 's', 't', 'a', 'g', 'e', '/', 's', 'p', 'a', 'c', 'k', '-', 's', 't', 'a', 'g', 'e', '-', 'p', 'a', 't', 'c', 'h', 'e', 'l', 'f', '-', '0', '.', '1', '3', '-', 'w', 'p', 'h', 'p', 't', 'l', 'h', 'w', 'u', 's', 'e', 'i', 'a', '4', 'k', 'p', 'g', 'y', 'd', 'q', 'l', 'l', 'i', '2', '4', 'q', 'b', '5', '5', 'q', 'u', '4', '/', 'p', 'a', 't', 'c', 'h', 'e', 'l', 'f', '-', '0', '.', '1', '3', '.', 't', 'a', 'r', '.', 'b', 'z', '2', "'"]
```

Additionally, plenty of builds output padded paths in other plcaes -- e.g., not just command
arguments, but in other `tty` messages via `llnl.util.filesystem` and other places. `Executable`
isn't really the right place for this.

This PR reverts the changes to `Executable` and moves the filtering into `llnl.util.tty`. There is
now a context manager there that you can use to install a filter for all output.
`spack.installer.build_process()` now uses this context manager to make `tty` do path filtering
when padding is enabled.

- [x] revert filtering in `Executable`
- [x] add ability for `tty` to filter output
- [x] install output filter in `build_process()`
- [x] tests
2021-08-09 01:42:07 -07:00
Jen Herting
29098a1e07 py-speech-recognition: new package (#25273) 2021-08-09 10:31:21 +02:00
Sergey Kosukhin
053fa2a47b netcdf-fortran: fix building with AOCC (#25186) 2021-08-09 10:30:31 +02:00
Tom Stitt
25a4c5ad18 mfem: add v4.3 (#25158)
Co-authored-by: Veselin Dobrev <dobrev@llnl.gov>
2021-08-09 10:08:33 +02:00
Tamara Dahlgren
4cd2cfc7e7 ci pipelines: expand the list of RADIUSS packages (#25282) 2021-08-09 10:06:56 +02:00
Satish Balay
874a35e30d trilinos: fix +hypre build (#25291) 2021-08-09 10:05:52 +02:00
Satish Balay
f6cb076229 petsc: fix build with trilinos (#25289) 2021-08-09 10:02:47 +02:00
Sreenivasa Murthy Kolam
ea71eb35d3 Update rocm ecosystem to v4.3.0 (#25299) 2021-08-09 09:48:05 +02:00
Satish Balay
24ea784dc4 petsc, petsc4py: add version 3.15.3 (#25307) 2021-08-09 00:43:35 -07:00
Glenn Johnson
ff9c7380e8 r-cairo: add an explicit dependency on libxt (#25309)
Since r-cairo will always look for X libraries, and likely find them on
the system, make it always depend on r+X.
2021-08-09 09:27:57 +02:00
Harmen Stoppels
c37aee4620 hip: fix broken tests with ^cmake@3.21: (#25246) 2021-08-09 07:19:29 +00:00
Harmen Stoppels
4384ff8e41 Use __skip_rocmclang for cmake 3.21 in rocblas/rocfft to avoid incomplete compiler support (#25253) 2021-08-09 07:03:03 +00:00
Harmen Stoppels
420113d5ab libtree: add v1.2.3 (#25270) 2021-08-09 08:51:39 +02:00
Seth R Johnson
66a8993092 Remove xsdk@0.2.0 and associated versions and xsdktrilinos
These versions can cause weird concretizations, and it looks like the
old version of xsdk may not even work because of xsdktrilinos being
disabled. The hypre version tagged for xsdk@0.2 no longer exists at the
described location.
2021-08-08 10:55:39 -07:00
Seth R Johnson
38803e3597 trilinos: remove develop version, change xsdk name
With the previous naming scheme, `trilinos@:10` concretizes to
`trilinos@xsdk-0.2.0`. Now, it's clear what the xsdk version is closest
to. Changed from tag to the corresponding commit SHA for safety.
2021-08-08 10:55:39 -07:00
Satish Balay
6ed4cf4016 petsc: cleanup test code to support 'spack test run' and add a 'cuda' test (#25099) 2021-08-08 12:16:42 -05:00
Alec Scott
0dd6b1e134 Clean Up PR from Container Builder 2021-08-08 07:20:25 -07:00
Edgar A. Leon
1c90b25933 hwloc: Adding opencl and rocm (AMD GPUs) variants to hwloc. 2021-08-08 07:18:26 -07:00
lukebroskop
1c204bef8a trilinos: flag_handler logic fix (#25290)
* Do not allow cray build system patch for later version of otf2

* Modify flag_handler logic in the trilinos package

Modify flag_handler logic in the trilinos package to work better with compilers
other than CCE
2021-08-08 10:16:57 -04:00
Wouter Deconinck
9b66053d99 vecgeom: new version 1.1.16 (#25266)
Diff 1.1.15 to 1.1.16 at https://gitlab.cern.ch/VecGeom/VecGeom/-/compare/v1.1.15...v1.1.16?from_project_id=981, no changes to build dependencies.
2021-08-08 10:05:19 -04:00
Alec Scott
cfbefee0fa Fix GHCR Username in Container Builder (#25301) 2021-08-07 00:25:36 +00:00
Axel Huebl
98d4a7af24 openPMD-api: CTest & Install Tests (#25300)
Run CTest at build time with:
```
spack install --test=root openpmd-api@<version>
```

and run smoke-tests after install and loading of the package via
```
spack load -r /<spec>
spack test run /<spec>
```
2021-08-06 16:55:32 -07:00
Axel Huebl
91b3dcca26 openPMD-api: 0.14.1 (#25265)
* openPMD-api: 0.14.1

Add the latest bugfix release.

* Keep 0.13.4 still preferred

More regressions to mitigate...
2021-08-06 16:43:46 -07:00
Axel Huebl
d69a22f160 WarpX: 21.08 (#25234)
Add the latest WarpX release.
2021-08-06 16:42:58 -07:00
Alec Scott
b92fa6bbf9 Add New Build Containers Workflow (#24257)
This pull request adds a new workflow to build and deploy Spack Docker containers
from GitHub Actions. In comparison with our current system where we use Dockerhub's
CI to build our Docker containers, this workflow will allow us to now build for multiple
architectures and deploy to multiple registries. (At the moment x86_64 and Arm64 because
ppc64le is throwing an error within archspec.)

As currently set up, the PR will build all of the current containers (minus Centos6 because 
those yum repositories are no longer available?) as both x86_64 and Arm64 variants. The
workflow is currently setup to build and deploy containers nightly from develop as well as
on tagged releases. The workflow will also build, but NOT deploy containers on a pull request
for the purposes of testing this PR. At the moment it is setup to deploy the built containers to
GitHub's Container Registry although, support for also uploading to Dockerhub/Quay can be
included easily if we decide to keep releasing on Dockerhub/want to begin releasing on Quay.
2021-08-06 15:53:46 -07:00
Jen Herting
97993ac38a [py-sentencepiece] added veriosn 0.1.91 (#25275) 2021-08-06 15:41:27 +00:00
Todd Gamblin
ad66b758e4 codecov: allow coverage offsets for more base commit flexibility (#25293)
This is an attempt to fix "Missing base commit" messages in the codecov UI. Because we do not run
full tests on package PRs, package PRs' merge commits on `develop` don't have coverage info. It
appears that codecov will give you an error if the pseudo-base's coverage data doesn't all apply
properly to the real PR base, unless the `allow_coverage_offsets` option is set.

* See here for docs:
  https://docs.codecov.com/docs/comparing-commits#pseudo-comparison

* See here for another potential solution:
  https://community.codecov.com/t/2480/15
2021-08-06 01:33:12 -07:00
Todd Gamblin
0a6e98cdb5 refactor: rename colorful kwarg to color (#25292)
`compare_specs()` had a `colorful` keyword argument, but everything else in
spack uses `color` for this.

- [x] rename the argument
- [x] make the default follow spack's `--color=always/never/auto` setting
2021-08-06 06:29:49 +00:00
Jen Herting
2aea624dca New package: r-elemstatlearn (#25276) 2021-08-05 17:12:15 -05:00
Jen Herting
0053117ac8 New package: r-gparotation (#25277) 2021-08-05 17:05:21 -05:00
Jen Herting
c178000d18 [sentencepiece] added version 0.1.91 (#25274) 2021-08-05 16:49:23 +00:00
gpotter2
4af6d6bb1b Add libvpx to ffmpeg (#25155) 2021-08-05 10:55:03 -05:00
Harmen Stoppels
8f238c03ad Add py-fastcov (#25268)
* Add py-fastcov

* Update var/spack/repos/builtin/packages/py-fastcov/package.py
2021-08-05 13:36:41 +00:00
Harmen Stoppels
15653868c8 patchelf: add v0.13 (#25271) 2021-08-05 13:30:17 +00:00
iarspider
159ac3e3fb Add checksum for py-wheel 0.33.6 (#25257) 2021-08-05 08:01:22 +00:00
iarspider
b11f8aa4ea Update py-typing-extensions (#25262) 2021-08-04 21:56:52 +00:00
iarspider
4ac246760e Add checksum for py-gast 0.5.1 and 0.5.2 (#25258) 2021-08-04 14:55:48 -07:00
iarspider
63f950768f Add checksums for new protobuf versions (#25259) 2021-08-04 21:47:23 +00:00
Adam J. Stewart
e2fe415ae6 Spack version: 0.16.1 -> 0.16.2 (#25255)
17473a08ff merged `v0.16.1` back into `develop` but somehow lost the version bump.  Fix it here.
2021-08-04 14:37:40 -07:00
iarspider
988c67fff2 Add checksum for py-astor@0.8.1 (#25256) 2021-08-04 21:31:07 +00:00
Richarda Butler
b5c82aa986 Caliper: Add E4S testsuite stand alone test (#25094) 2021-08-04 10:22:50 -07:00
lukebroskop
5f3c25f6e9 libcircle fix for CCE (#25224) 2021-08-04 12:43:18 +00:00
Michele Mesiti
978191aff5 Added new versions for Sombrero (#25243) 2021-08-04 10:02:30 +00:00
Harmen Stoppels
4b870196c0 Bump py-python-swiftclient and add keystone support (#25221) 2021-08-04 08:09:01 +00:00
Harmen Stoppels
575e321cc5 Add py-python-keystoneclient (#25220)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-04 07:55:53 +00:00
Harmen Stoppels
20394a97da Add py-oslo-serialization (#25218)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-04 07:36:11 +00:00
Harmen Stoppels
63ac1b6620 Add py-oslo-config (#25216) 2021-08-04 07:31:44 +00:00
Harmen Stoppels
574ade6f76 Add py-keystoneauth1 (#25213)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-04 07:28:54 +00:00
Harmen Stoppels
56bb98c542 Add py-oslo-utils (#25219) 2021-08-03 15:10:32 -07:00
Tomoyasu Nojiri
929eb311c7 poplddecay: fix checksum for v3.41 (#20896) 2021-08-03 20:28:26 +00:00
Jen Herting
b21649e6b8 [py-efficientnet-pytorch] added version 0.7.1 (#25230) 2021-08-03 20:28:05 +00:00
Thomas Madlener
70b32b53fc py-sympy: Add new versions and python versions they work with (#25226) 2021-08-03 19:35:15 +00:00
Harmen Stoppels
269b6ced99 py-python-dateutil: add v2.8.2 (#25209) 2021-08-03 18:12:26 +00:00
Harmen Stoppels
196a0a91a5 Bump py-boto3, add python constraints, bump deps (#25211)
* Bump py-boto3, add python constraints, bump deps

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

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

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-03 18:04:11 +00:00
Harmen Stoppels
468823d1b9 Fix typo (#25223) 2021-08-03 18:00:29 +00:00
Harmen Stoppels
ccdf418e52 Add py-os-service-types (#25215)
* Add py-os-service-types

* Update var/spack/repos/builtin/packages/py-os-service-types/package.py

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-03 17:57:46 +00:00
Harmen Stoppels
b172b43fa9 Add py-oslo-i18n (#25217)
* Add py-oslo-i18n

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-03 17:12:51 +00:00
Harmen Stoppels
bdc3bde74b Bump py-botocore and add python constraints (#25210)
* Bump py-botocore and add python constraints

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-03 16:57:56 +00:00
eugeneswalker
4e9bccf2ef e4s ci stack: update package preferences (#25163) 2021-08-03 09:30:14 -07:00
Harmen Stoppels
d92eff7e89 Add py-debtcollector (#25212)
* Add py-debtcollector

* Fix missing dependencies
2021-08-03 15:40:02 +00:00
Harmen Stoppels
1f191ef37c Add py-netaddr (#25214) 2021-08-03 10:29:04 -05:00
Harmen Stoppels
d734bfda18 py-urllib3: add v1.26.6 (#25207) 2021-08-03 08:07:51 -07:00
Massimiliano Culpo
0026d60b60 Test bootstrapping in a workflow (#25138)
Add a workflow to test bootstrapping clingo on 
different platforms so that we can detect changes 
that break it.

Compute `site_packages_dir` in `bootstrap.py` as it was
before #24095, until we figure a better way to override
that attribute.
2021-08-03 16:53:40 +02:00
Harmen Stoppels
15bc4faf2d py-s3tranfer: add v0.5.0, v0.4.2 (#25208) 2021-08-03 16:49:24 +02:00
Manuela Kuhn
7d0878f5c4 py-datalad: add new package (#25181) 2021-08-03 09:20:06 -05:00
Brent Huisman
a76365c72b Bump Arbor package to v0.5.2 (#24519) 2021-08-03 13:13:19 +00:00
Sebastian Schmitt
73923f1e93 fmt: add v8.0.1 (#25201) 2021-08-03 06:04:39 -07:00
Michael Kuhn
fa729858ac h5bench: new package (#25190) 2021-08-03 05:46:38 -07:00
Harmen Stoppels
62d59f0fb7 scrot: use tarball with configure script (#25176) 2021-08-03 14:13:08 +02:00
Rémi Lacroix
a62210efb9 midnight-commander: add v4.8.26 (#25178) 2021-08-03 14:11:41 +02:00
AMD Toolchain Support
d1ee325ecd AOCC support for CloverLeaf (#25106)
* AOCC support for CloverLeaf

* removing patch as it is upstreamed to source

Co-authored-by: mohan002 <mohbabul@amd.com>
2021-08-03 07:06:38 -05:00
Adam J. Stewart
88d24150e6 py-scipy: add v1.7.1 (#25187) 2021-08-03 14:00:14 +02:00
Axel Huebl
420a8c2eb2 openPMD-api: make v0.13.4 preferred (#25188)
Keep the previous patch release as preferred as we investigate
a few regressions.
2021-08-03 13:52:35 +02:00
AMD Toolchain Support
5698850dc4 aocc 3.1.0: fix version detection for v3.1.0 (#25084) 2021-08-03 13:48:19 +02:00
Tom Payerle
c7e8bdf9cf intel-tbb: allow compilation with nvhpc (#25044)
These are the versions tested (and successfully patched) against
intel-tbb.nvhpc-remove-flags.2017.patch: @2017, @2017.8, @2018, @2018.6
intel-tbb.nvhpc-remove-flags.2019.patch: @2019
intel-tbb.nvhpc-remove-flags.2019.1.patch: @2019.[1-6]
intel-tbb.nvhpc-remove-flags.2019.7.patch: @2019.[7-8]
intel-tbb.nvhpc-remove-flags.2019.9.patch: @2019.9, 2020.[0-3]

The intel-tbb.nvhpc-version-script-fix.2017.patch was tested and
applied successfully against all of the versions above.
2021-08-03 13:35:31 +02:00
John Vandenberg
d33d9d1f03 sbp: add new package (#25194) 2021-08-03 13:25:21 +02:00
Carlos Bederián
a4698f6122 aocc: add v3.1.0 (#25193) 2021-08-03 03:10:31 -07:00
Todd Gamblin
fc840c904b executable: filter long paths from debug output (#25168)
Long, padded install paths can get to be very long in the verbose install
output. This has to be filtered out by the Executable class, as it
generates these debug messages.

- [x] add ability to filter paths from Executable output.
- [x] add a context manager that can enable path filtering
- [x] make `build_process` in `installer.py`

This should hopefully allow us to see most of the build output in
Gitlab pipeline builds again.
2021-08-03 10:00:33 +00:00
Tim Haines
e477101345 PAPI: add version 'master' (#25192)
This is needed for testing with the ECP Dev Tools SDK.

Co-authored-by: Tim Haines <thaines@cs.wisc.edu>
2021-08-03 02:34:32 -07:00
Adam J. Stewart
171001ca84 py-fiona: add v1.8.20 (#25196) 2021-08-03 11:20:43 +02:00
Rémi Lacroix
6fa803a38d DIAMOND: add v2.0.11 (#25198) 2021-08-03 10:38:54 +02:00
Todd Gamblin
cf8d1b0387 refactor: convert build_process to use BuildProcessInstaller (#25167)
`build_process` has been around a long time but it's become a very large,
unwieldy method. It's hard to work with because it has a lot of local
variables that need to persist across all of the code.

- [x] To address this, convert it its own `BuildInfoProcess` class.
- [x] Start breaking the method apart by factoring out the main
      installation logic into its own function.
2021-08-03 10:24:24 +02:00
Todd Gamblin
0a0338ddfa bugfix: ensure all bootstrap context managers are exception-safe
When context managers are used to save and restore values, we need to remember
to use try/finally around the yield in case an exception is thrown.  Otherwise,
the cleanup will be skipped.
2021-08-03 10:07:11 +02:00
Todd Gamblin
693c4d8f3a spack style: improve tests for failure cases
This fixes the bad bootstrap test for spack style, and it refines the
asserrtions on other failure cases.
2021-08-03 10:07:11 +02:00
Dylan Simon
507d3c841c don't spin writer daemon when < /dev/null (#25170) 2021-08-02 21:39:38 -07:00
Erik Schnetter
2dd2a5b167 rnpletal: New package (#25154)
* rnpletal: New package

RNPL is an old package that is still used today by my collaborators, but doesn't see any development any more. I'm creating a Spack package merely to make it easier to install it on various systems. The code is not modern (C without prototypes – yes, that used to be a thing), and a large diff modernizes the code to make it palatable to modern C and Fortran compilers.

RNPL contains several sub-package. The current Spack package builds only the main one.

* rnpletal: Remove unused import

* Convert into AutotoolsPackage

* Don't check for "shared" variant

* rnpletal: Change "version" to `develop`

* rnpletal: Use existing `configure` function
2021-08-02 14:01:45 -07:00
Ali Ahmed
a60e3f80f6 [curl] Fix brotli option flag (#25166)
Co-authored-by: Ali Ahmed <alia@splunk.com>
2021-08-02 12:46:56 -07:00
Adam J. Stewart
6d810cb2e7 Docs: add link to source code (#25088) 2021-08-02 12:36:40 -07:00
Satish Balay
413919be1f petsc: add variants strumpack, scalapack (#25058)
strumpack: switch defaut to +shared
2021-08-02 13:48:33 -05:00
Sreenivasa Murthy Kolam
73a65dc370 modfiy hip-rocclr references for 4.1.0 and 4.2.0 releases (#24868) 2021-08-02 11:16:47 -07:00
Frank Willmore
0df067e64f adjust for erroneous detection of nvc as gcc (#24915)
* adjust for erroneous detection of nvc as gcc

adjust for erroneous detection of nvc as gcc when it is built with gcc

* add missing parenthesis :/

* fix trailing whitespace

* re-work hdf5 patch for nvc to make it more general

* flake8 fixes

* Render as comment

Render intended note as a comment rather than logical constraint

Co-authored-by: Frank Willmore <willmore@anl.gov>
2021-08-02 11:13:32 -07:00
Tamara Dahlgren
413ea10e78 ci: Add RADIUSS stack to cloud CI (#23922)
Add RADIUSS software stack to gitlab PR testing pipelines
2021-08-02 10:19:35 -06:00
Fabian Brandt
71cd303362 Bump version 9.0 (#25039) 2021-08-02 15:56:55 +00:00
Harmen Stoppels
db08ce6105 Bump cmake (#25183) 2021-08-02 08:22:08 -07:00
Harmen Stoppels
ac8521e9b3 Do not issue a warning for a missing source id when installing from local sources (#24960) 2021-08-02 14:17:41 +02:00
Mikael Simberg
d628e3ba5c Add maintainers for gperftools (#25156) 2021-08-02 13:46:38 +02:00
loulawrence
be3e6a0e9b document config option "url_fetch_method" (#24638)
- Change config from the undocumented `use_curl: true/false` to `url_fetch_method: urllib/curl`.
- Documentation of `url_fetch_method` in `defaults/config.yaml`
- Default fetch option explicitly set to `urllib` for users who may not have curl on their system

To upgrade from `use_curl` to `url_fetch_method`, run `spack config update config`
2021-08-02 10:30:25 +02:00
Wouter Deconinck
cd8f7d844d [imlib2] depends_on pkg-config, type = build; and new versions (#25030) 2021-08-02 09:53:19 +02:00
s1913388
2a20943f9b Optimised Cloverleaf3D (#24920) 2021-08-02 09:40:43 +02:00
Sreenivasa Murthy Kolam
437c1e438e add MIOPEN_AMDGCN_ASSEMBLER to cmake args (#25159) 2021-08-02 09:38:34 +02:00
Weiqun Zhang
55e218649a amrex: 21.08 (#25175) 2021-08-01 15:47:48 -07:00
Erik Schnetter
f9703c1c9f kadath: New package (#25162)
* kadath: New package

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

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

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

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

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

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

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

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

* kadath: Add description to MPI variant

* kadath: Add empty line

* kadath: Add variant "codes=none" to avoid empty default

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-01 19:22:07 +00:00
Iman Hosseini
861abb512e laghos: add variant with compiler optimization (#24910)
* add variant with compiler optimization

Update package.py to include variant with compiler optimization, benchmarked at A-HUG hackaton to improve major kernel time by roughly 3%.

* fix style

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-08-01 18:58:24 +00:00
Jen Herting
8867827a89 [py-asteval] added version 0.9.25 (#25107)
* [py-asteval] added version 0.9.25

* [py-asteval] 0.9.25 requires py-setuptools-scm
2021-08-01 11:43:58 -05:00
iarspider
a9bc118031 [giflib] Set LIBVER and LIBMAJOR when installing (#25173)
* Set LIBVER and LIBMAJOR

* Typo fix

* Fix 2

* Fix #3
2021-08-01 11:37:31 -05:00
Todd Gamblin
ab5954520f spack diff: make output order deterministic (#25169)
The output order for `spack diff` is nondeterministic for larger diffs -- if you
ran it several times it will not put the fields in the spec in the same order on
successive invocations.

This makes a few fixes to `spack diff`:

- [x] Implement the change discussed in https://github.com/spack/spack/pull/22283#discussion_r598337448
      to make `AspFunction` comparable in and of itself and to eliminate the need for `to_tuple()`

- [x] Sort the lists of diff properties so that the output is always in the same order.

- [x] Make the output for different fields the same as what we use in the solver. Previously, we
      would use `Type(value)` for non-string values and `value` for strings.  Now we just use
      the value.  So the output looks a little cleaner:

      ```
      == Old ==========================        == New ====================
      @@ node_target @@                        @@ node_target @@
      -  gdbm Target(x86_64)                   -  gdbm x86_64
      +  zlib Target(skylake)                  +  zlib skylake
      @@ variant_value @@                      @@ variant_value @@
      -  ncurses symlinks bool(False)          -  ncurses symlinks False
      +  zlib optimize bool(True)              +  zlib optimize True
      @@ version @@                            @@ version @@
      -  gdbm Version(1.18.1)                  -  gdbm 1.18.1
      +  zlib Version(1.2.11)                  +  zlib 1.2.11
      @@ node_os @@                            @@ node_os @@
      -  gdbm catalina                         -  gdbm catalina
      +  zlib catalina                         +  zlib catalina
      ```

I suppose if we want to use `repr()` in the output we could do that and could be
consistent but we don't do that elsewhere -- the types of things in Specs are
all stringifiable so the string and the name of the attribute (`version`, `node_os`,
etc.) are sufficient to know what they are.
2021-08-01 05:15:33 +00:00
Erik Schnetter
1e708bdb45 lorene: Install only executables, not unrelated files (#25148)
* lorene: Install only executables, not unrelated files in the same directory

* lorene: Don't determine compile dependencies

The current way doesn't work (cpp misses C++ include paths), and we don't need dependencies anyway.

* lorene: Correct BLAS library names

* lorene: Remove comment
2021-07-31 21:11:34 -05:00
Garth N. Wells
60eef9c0de Add missing xtl dependency for fenics-basix and py-fenics-basix (#25151) 2021-07-31 21:10:24 -05:00
Erik Schnetter
b5f587bbe0 libjpeg-turbo: New version 2.1.0 (#25153) 2021-07-31 20:59:05 -05:00
gpotter2
b1abfd3ff6 Use the new cool Github templates (#25118)
* Use the new cool github templates

* Add the "mention maintainers" clause

* Fix broken HTML tag

* Minor improvements, missing filenames
2021-07-31 20:44:20 -05:00
Jen Herting
b4c6c11e68 [py-pyarrow] added version 3.0.0 and 4.0.1 (#25161)
* [py-pyarrow] added version 4.0.1

* [py-pyarrow] added version 3.0.0

* [py-pyarrow] updated dependencies for newer versions
2021-07-30 21:16:49 +00:00
Jen Herting
886e94d0ee [arrow] added versions 3.0.0 and 4.0.1 (#25160)
* [arrow] added version 4.0.1

* [arrow] added version 3.0.0
2021-07-30 20:38:23 +00:00
Scott Wittenburg
de88d2c7cc CI: capture stdout/stderr output to artifact files (#24401)
Gitlab truncates job trace output (even the complete raw output) at 4MB,
so this change captures it to a file under "user_data" artifacts as well,
to make sure we can debug output from the end of the rebuild job.
2021-07-30 13:24:03 -06:00
Scott Wittenburg
f591e9788d pipelines: Store details about specs broken on develop (#24637)
When a spec fails to build on `develop`, instead of storing an empty file as the entry in the broken specs list, this change stores the full spec yaml as well as links to the failing  pipeline and job.
2021-07-30 09:11:00 -06:00
Ryan Marcellino
3df1d9062e add new version of py-dvc (#25152)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 15:01:56 +00:00
Sebastian Ehlert
771e73dfa4 dftd4: add v3.2.0, v3.1.0 and v3.0.0 (#25145) 2021-07-30 14:56:40 +00:00
Ryan Marcellino
d02d683126 py-fsspec: add v0.9.0 (#25133)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 12:16:22 +02:00
Ryan Marcellino
3408440991 py-dulwich: add v0.20.21 (#25132)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 12:15:25 +02:00
Ryan Marcellino
3baac2faac py-diskcache: add v5.2.1 (#25131)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 12:14:58 +02:00
Cyrus Harrison
69ce54b86a fides: add new package (#25128) 2021-07-30 12:14:16 +02:00
Olli Lupton
84613da90a Add C-Reduce and dependencies. (#25109) 2021-07-30 09:59:06 +00:00
Ryan Marcellino
4b89f6a90b py-rich: add v10.0.0 (#25134)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 11:37:07 +02:00
Ryan Marcellino
c26f328e1a py-psutil: add v5.8.0 (#25135)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 11:36:37 +02:00
Ryan Marcellino
d969320ba1 py-pygit2: add v1.6.0 (#25136)
Co-authored-by: Cloud User <marcryan@ryanmarcelli001.hzterscemazurawp3xenxzahla.bx.internal.cloudapp.net>
2021-07-30 11:35:46 +02:00
downloadico
72acc54d84 octopus: add cuda variant (#25126) 2021-07-30 11:33:42 +02:00
Garth N. Wells
711ed17606 FEniCSx: updated dependencies (#25110)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-30 11:32:28 +02:00
Swann Perarnau
c1de2e926d aml: update website, repository, and maintainer (#25140)
AML moved its repository and website during spring 2021.

Signed-off-by: Swann Perarnau <swann@anl.gov>
2021-07-30 11:22:20 +02:00
Axel Huebl
189ff91f25 openPMD-api: add v0.14.0 (#25142)
Add the latest release.
2021-07-30 11:14:19 +02:00
AMD Toolchain Support
bbfaf4e816 quantum-espresso: update patch for AOCC support (#25144)
Co-authored-by: mohan002 <mohbabul@amd.com>
2021-07-30 11:07:57 +02:00
Vanessasaurus
54e8e19a60 adding spack diff command (#22283)
A `spack diff` will take two specs, and then use the spack.solver.asp.SpackSolverSetup to generate
lists of facts about each (e.g., nodes, variants, etc.) and then take a set difference between the
two to show the user the differences.

Example output:

    $ spack diff python@2.7.8 python@3.8.11
     ==> Warning: This interface is subject to change.

     --- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf
     +++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx
     @@ variant_value @@
     -  python patches a8c52415a8b03c0e5f28b5d52ae498f7a7e602007db2b9554df28cd5685839b8
     +  python patches 0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87
     @@ version @@
     -  openssl Version(1.0.2u)
     +  openssl Version(1.1.1k)
     -  python Version(2.7.8)
     +  python Version(3.8.11)

Currently this uses diff-like output but we will attempt to improve on this in the future.

One use case for `spack diff` is whenever a user has a disambiguate situation and cannot 
remember how two different installs are different. The command can also output `--json` in
the case of a more analysis type use case where we want to save complete data with all
diffs and the intersection. However, the command is really more intended for a command
line use case, and we likely will have an analyzer more suited to saving data

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

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-07-30 00:08:38 -07:00
Zack Galbreath
e8f284bf52 ci: automatically prune the broken-specs list (#24809)
When a develop pipeline successfully finishes a `spack install`, check if
the spec that was just built is on the broken-specs list. If so, remove it.
2021-07-29 13:47:10 -06:00
Zack Galbreath
d7771f190f Catch ConnectionError from CDash reporter (#24818)
* Catch ConnectionError from CDash reporter

Catch ConnectionError when attempting to upload the results of `spack install`
to CDash. This 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.

* Catch HTTP Error 400 (Bad Request) in relate_cdash_builds()
2021-07-29 13:46:17 -06:00
sknigh
095f327f32 Update sst-elements and dependency packages (#25041)
* sst-elements: add optional support for flashdimmsim, dramsim3 and
  add new packages for each
* sst-dumpi: add version 7.1.0
* sst-core: autotools dependencies are required for all versions
* new package: dtc
* add error message redirect for +dumpi, otf, and otf2: these are not
  currently supported
2021-07-29 11:48:41 -07:00
Itaru Kitayama
a904418270 nest: add v3.0 and v2.20.1, removed previous versions (#24328)
Co-authored-by: Itaru Kitayama <itaru.kitayama@riken.jp>
2021-07-29 10:34:50 +02:00
Massimiliano Culpo
b42b0cd45a Move build tests from GA to Gitlab (#25120)
Modifications:

- Remove the "build tests" workflow from GitHub Actions
- Setup a similar e2e test on Gitlab

In this way we'll reduce load on GitHub Actions workflows and for e2e tests will
benefit from the buildcache reuse granted by pipelines.
2021-07-29 09:08:32 +02:00
Brian Van Essen
adb507bdd9 Added support for using the Cray LibSci BLAS/LAPACK/ScaLAPACK library. (#25124) 2021-07-28 15:14:58 -07:00
Cyrus Harrison
db00cf24c0 add parmetis variant to conduit (#25127) 2021-07-28 15:09:19 -07:00
Satish Balay
c114cf019d petsc: update config option logic for locating dependencies (#25074)
Primarily use --with-package-include, --with-package-lib options
(vs. --with-package-dir)
2021-07-28 14:09:54 -07:00
Chris White
7ea94d1103 add more directories to implicit link exclusion 2021-07-28 14:01:16 -07:00
iarspider
ace3753076 re2: addv2021-06-01 and 'shared' variant (#25121)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-28 19:07:12 +02:00
Michael Kuhn
d6cbaee16b gcc: add v11.2.0 (#25125) 2021-07-28 17:02:40 +00:00
Rémi Lacroix
0d5e1c7db9 libxc: add v5.1.5 (#25123) 2021-07-28 18:42:05 +02:00
Houjun Tang
69464bf36f pdc: add new package (#24762)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-28 18:31:25 +02:00
Dylan Simon
e3096e94b1 poppler: drop splash patch for 21.07.0 (#25032)
ENABLE_SPLASH configuration has been removed entirely after 21.06 so
patch is no longer necessary after #24931.  (Versions between 0.90.1 and
21.06 will likely still need a patch, and while it's not clear if this
patch is the right one, seems better to leave something in.)
2021-07-28 18:23:56 +02:00
Tim Moon
c9327649c0 nvshmem: set env variables instead of appending (#25095) 2021-07-28 16:07:24 +00:00
Tom Stitt
68f696af64 glvis: add v4.0 (#25045) 2021-07-28 17:51:53 +02:00
downloadico
737936d02c octopus: add v10.5 (#25068) 2021-07-28 17:47:42 +02:00
Ethan Stam
a7ed20cb92 ParaView: disable VTK_MODULE_USE_EXTERNAL_ParaView_vtkcatalyst to avoid looking for external Catalyst_DIR (#25061) 2021-07-28 17:30:21 +02:00
Glenn Johnson
e29168ad02 gurobi: add v9.1.2 and extend python (#25064)
- add version 9.1.2
- set a license file
- set the license environment variable
- remove the download and license information out of the description so
  it does not show up in environment modules
- extend python and set python version constraints
- build gurobipy to be used in any compatible python, used for more
  extensive computations than the gurobi shell
- remove preexisting PYTHONPATH from gurobi.sh as the shell uses a
  built-in python, which will likely be different from "system" python
- add maintainer
2021-07-28 17:29:32 +02:00
gpotter2
be2e224e75 vtk-m: add conflict with gcc version < 5.0 (#25117) 2021-07-28 16:24:27 +02:00
iarspider
4d96f2668b py-absl-py: add v0.11.0, v0.12.0, v0.13.0 (#25122) 2021-07-28 15:36:39 +02:00
Sreenivasa Murthy Kolam
ac2444f1d5 fix roctracer references in hip and cleanup code in rocprofiler-dev recipe (#24994)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-07-28 10:36:35 +02:00
Todd Gamblin
6104c31556 bugfix: be careful about GITHUB_BASE_REF in spack style
`spack style` previously used a Travis CI variable to figure out
what the base branch of a PR was, and this was apparently also set
on `develop`.  We switched to `GITHUB_BASE_REF` to support GitHub
Actions, but it looks like this is set to `""` in pushes to develop,
so `spack style` breaks there.

This PR does two things:

- [x] Remove `GITHUB_BASE_REF` knowledge from `spack style` entirely

- [x] Handle `GITHUB_BASE_REF` in style scripts instead, and explicitly
      pass the base ref if it is present, but don't otherwise.

This makes `spack style` *not* dependent on the environment and fixes
handling of the base branch in the right place.
2021-07-27 17:57:17 -07:00
Richarda Butler
af468235e2 AML: Add E4S testsuite stand alone test (#23874) 2021-07-27 17:30:34 -07:00
Todd Gamblin
c8efec0295 spack style: add --root option (#25085)
This adds a `--root` option so that `spack style` can check style for
a spack instance other than its own.

We also change the inner workings of `spack style` so that `--config FILE`
(and similar options for the various tools) options are used. This ensures
that when `spack style` runs, it always uses the config from the running spack,
and does *not* pick up configuration from the external root.

- [x] add `--root` option to `spack style`
- [x] add `--config` (or similar) option when invoking style tools
- [x] add a test that verifies we can check an external instance
2021-07-27 15:09:17 -06:00
Jen Herting
e5bbb6e5b4 [py-lmfit] added version 1.0.2 (#25108)
* [py-lmfit] fixed py-asteval dependency requirements

* [py-lmfit] added version 1.0.2

* [py-lmfit] flake8

* [py-lmfit] 1.0.2 reqires python 3.6

* [py-lmfit] removed newer dependency requirements to be in line with setup.py not requirements.txt
2021-07-27 16:59:45 +00:00
Seth R. Johnson
0a41d4ebb8 pbs: new virtual package (#24568)
* pbs: new virtual package

Some of our clusters have an older installation of
libtorque and tm.h that are *not* from OpenPBS. Using the current
openpbs dependency for openmpi causes concretization errors due to
restrictions on older python and hwloc requirements that don't apply,
even with an external non-buildable installation.
The new 'torque' bundle package allows users to point to that external
installation without problems.

Detailed description of torque by Sergey Kosukhin <skosukhin@gmail.com>
2021-07-27 16:37:00 +00:00
Timo Heister
ca260a3d63 aspect: add v2.3.0 (#25100) 2021-07-27 14:55:29 +02:00
Adam J. Stewart
4eaa5a2635 py-sphinx: add versions up to v4.1.2 (#25092) 2021-07-27 14:54:46 +02:00
Garth N. Wells
aeacc2ff92 pybind11: add v2.7.0 (#25103) 2021-07-27 14:53:02 +02:00
Garth N. Wells
b69c4a66e7 Add xtensor 0.23.10 and xsimd 07.5.0 version (#25105) 2021-07-27 14:52:36 +02:00
Adam J. Stewart
de3fa5556a serf: add missing libuuid dependency (#25098) 2021-07-27 14:50:59 +02:00
Satish Balay
06a292290e openmpi: fix cuda dependency (#25101) 2021-07-27 06:41:15 -04:00
Michael Kuhn
1454935edc libfuse: fix typo (#25104)
This caused both static and shared libraries to be disabled.
2021-07-27 10:28:21 +02:00
Adam J. Stewart
520a465190 Documentation does not build with Sphinx 4.1.2 2021-07-26 13:46:27 -07:00
Adam J. Stewart
ab39f548dc Confirm that the docstring is the issue 2021-07-26 13:46:27 -07:00
Adam J. Stewart
26c3df20f1 Docs: attempt to fix doc tests for sphinx 4.1.2 2021-07-26 13:46:27 -07:00
Adam J. Stewart
6472ee8c76 py-sphinxcontrib-serializinghtml: add new version (#25091) 2021-07-26 15:03:52 -04:00
Adam J. Stewart
8a8aa16f1b py-sphinxcontrib-htmlhelp: add new version (#25090) 2021-07-26 15:03:38 -04:00
Rémi Lacroix
43c135e3ce n2p2 package: Add version 2.1.4 (#25031) 2021-07-26 11:16:13 -07:00
Dylan Simon
1c350854f8 intel-oneapi: fix parallel installer errors (#24911)
Intel oneAPI installs maintain a lock file in XDG_RUNTIME_DIR,
which by default exists in /tmp (and is shared by all component
installs). This prevented multiple oneAPI components from being
installed in parallel. This commit sets XDG_RUNTIME_DIR to exist
within Spack's installation Stage, so allows multiple components
to be installed at the same time.
2021-07-26 10:39:35 -07:00
tilne
98549ddbe5 aws-parallelcluster: add v2.11.1 (#25089)
* aws-parallelcluster: update maintainers list

Signed-off-by: Tim Lane <tilne@amazon.com>

* aws-parallelcluster: add v2.11.1

Signed-off-by: Tim Lane <tilne@amazon.com>
2021-07-26 10:37:15 -05:00
Thomas Madlener
4a19741a36 yoda: only depend on root if explicitly desired (#25087) 2021-07-26 13:50:00 +02:00
Erik Schnetter
cef3a2a6ee asdf-cxx: require a particular version of yaml-cpp (#24988) 2021-07-26 10:28:02 +02:00
Harmen Stoppels
c912911d0e roc-tracer: remove py-setuptools since it is not used (#25010) 2021-07-26 10:27:33 +02:00
Tamara Dahlgren
6d30299d80 eigenexa: update stand-alone tests to use test stage work directory (#24129) 2021-07-26 10:25:36 +02:00
Tamara Dahlgren
cb87271a01 genesis: update stand-alone tests to use test stage work directory (#24193) 2021-07-26 10:24:29 +02:00
Rémi Lacroix
9edd281044 genesis: add v1.6.0. (#25055) 2021-07-26 10:20:25 +02:00
Kevin Harms
e666a3b366 Smoke test for darshan-runtime, builds a test code, runs it and check… (#25049) 2021-07-26 10:04:39 +02:00
Adam J. Stewart
eef514a1dc py-pandas: add v1.3.1 (#25076) 2021-07-26 10:03:13 +02:00
Adam J. Stewart
9e01fcf0de py-antlr4-python3-runtime: add v4.8 (#25078) 2021-07-26 10:02:19 +02:00
Adam J. Stewart
696f9458c2 py-torchmetrics: add new version (#25081) 2021-07-26 09:59:51 +02:00
Manuela Kuhn
de6d3ef1ee rstudio: add new package (#24647)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-26 09:57:56 +02:00
Adam J. Stewart
24048b3545 py-pyprecice: simplify package (#25077) 2021-07-26 09:55:51 +02:00
Adam J. Stewart
5f44b0ad48 py-omegaconf: add missing java dependency (#25080) 2021-07-26 09:55:13 +02:00
Silvio Traversaro
f68b91defe libdc1394: add new package (#25079) 2021-07-26 09:54:19 +02:00
romerojosh
7339f2d476 Fix LBANN and related packages CMake CUDA arch flag (#25062) 2021-07-26 09:16:38 +02:00
Glenn Johnson
63e04ce220 Fix tesseract package (#24304)
This PR fixes the tesseract package
- add missing dependencies
- build documentation
- build and install java component
- build and install training component
2021-07-26 07:49:58 +02:00
Alec Scott
d6432e9718 bedops: add v2.4.40 (#25065) 2021-07-26 07:48:11 +02:00
Alec Scott
1cf43cd2fc picard: add versions up to v2.25.7 (#25063) 2021-07-26 07:47:41 +02:00
Matthieu Dorier
ed0c3233db lua-sol2: added new package (#25067) 2021-07-26 07:47:04 +02:00
Alec Scott
794931f0d7 Rclone: add v1.56.0 (#25066) 2021-07-25 14:09:07 +02:00
Michael Kuhn
0d54bd68c1 freetype: add v2.11.0 (#25075) 2021-07-25 14:01:38 +02:00
vsoch
4208cf66be spack style: automatically bootstrap dependencies
This uses our bootstrapping logic to automatically install dependencies for
`spack style`. Users should no longer have to pre-install all of the tools
(`isort`, `mypy`, `black`, `flake8`). The command will do it for them.

- [x] add logic to bootstrap specs with specific version requirements in `spack style`
- [x] remove style tools from CI requirements (to ensure we test bootstrapping)
- [x] rework dependencies for `mypy` and `py-typed-ast`
      - `py-typed-ast` needs to be a link dependency
      - it needs to be at 1.4.1 or higher to work with python 3.9

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-07-24 07:07:35 -07:00
Massimiliano Culpo
a30e6c6158 Bump codecov/action to v2.0.2 (#24983)
* build(deps): bump codecov/codecov-action from 1 to 2.0.1

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 1 to 2.0.1.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v1...v2.0.1)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

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

* Update arguments to codecov action

* Try to delete the symbolic link to root folder

Hopefully this should get rid of the ELOOP error

* Delete also for shell tests and MacOS

* Bump to v2.0.2

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-24 07:23:56 -04:00
Paul Kuberry
bb20cadd91 Only add hwloc to tpl/dep list for certain versions of Trilinos (#25071) 2021-07-24 07:20:51 -04:00
iarspider
0beb35e426 Added versions of py-grpcio upto 1.39.0 (#25056)
Tested only `py-grpcio@1.39.0 ^grpcio@1.39.0`
2021-07-23 21:42:32 -05:00
Filippo Spiga
25c09e7a56 nvhpc: add v21.7 (#25040) 2021-07-23 09:10:50 +00:00
iarspider
e083d32f10 Add grpc upto 1.39.0 and update dependencies (#25037) 2021-07-23 08:58:56 +00:00
Dylan Simon
7b0d869c3c pgplot: fix with gcc<10 (#25042) 2021-07-23 01:34:26 -07:00
Tom Stitt
dc3e1d9a40 sdl2: add v2.0.14 (#25046) 2021-07-23 10:24:38 +02:00
Caleb Robinson
0c65433dd3 py-omegaconf: add new package (#25052)
* Adding package for omegaconf

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

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

* Changing py-omegaconf to use github source URL instead of pypi

* Style fix

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-07-22 21:37:36 -07:00
Satish Balay
b89286d0de amrex: add variant plotfile_tools (#25038) 2021-07-22 22:29:58 -04:00
Filippo Spiga
accdf4445d Adding CUDA SDK 11.4.0 (#24609)
* Adding CUDA SDK 11.4.0

* Fixing import order (finger crossed)

* Fixing import order (thanks alalazo for the tips)

* Restored URLs for 11.4.0
2021-07-22 16:57:09 -07:00
Kevin Harms
0825463904 Add smoke test for darshan-util (#25016) 2021-07-22 16:46:09 -07:00
wspear
91b4d974f1 Add test operation to tau package (#25036)
Copy over the general purpose mm matmult testcase. On test run build, execute (with mpi as needed) and process profile output.
2021-07-22 10:09:18 -07:00
Seth R. Johnson
8735d0a281 Trilinos: enable x11 when +exodus (#25033)
* trilinos: rearrange dependencies

* trilinos: refactor tpl enables and add libx11 for +exodus

Fixes #25028
2021-07-22 12:27:29 -04:00
Richarda Butler
68dbca64e7 Archer: Add E4S testsuite stand alone test (#24729) 2021-07-22 09:26:14 -07:00
Adam J. Stewart
0b6a0dd7fa py-torch: fix build on blue waters (#25026) 2021-07-22 07:13:36 -07:00
Adam J. Stewart
4e0f97bee3 PROJ: set PROJ_LIB env var (#25029) 2021-07-22 14:44:59 +02:00
natshineman
c0b6d42b23 Update MVAPICH2 Maintainers and GDR Dependencies (#25027)
Co-authored-by: Nick Contini <contini.26@buckeyemail.osu.edu>
Co-authored-by: Nat Shineman <shineman.5@buckeyemail.osu.edu>
2021-07-22 05:37:51 -07:00
Adam J. Stewart
537d316311 py-tensorboard-plugin-wit: fix build on Ubuntu (#25025) 2021-07-22 05:31:40 -07:00
albestro
7ad72de0d3 boost: conflict with GCC on macOS (#24917)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-07-22 09:49:20 +02:00
Iman Hosseini
8cfb0a0d52 nut: reflect conflict with nvhpc (#25023)
'random123' is a template library and cannot be compiled with nvhpc

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-22 08:34:06 +02:00
Ethan Stam
7011608be0 ParaView: Add cli11 dependency (#24732) 2021-07-21 16:51:49 -07:00
Harmen Stoppels
8e59c847dd fix rocprofiler includes (#25009) 2021-07-21 16:21:36 -07:00
Robert Pavel
f12fccce65 flecsi: package updates (#24986)
Worked with flecsi developers to tighten, relax, and clarify
constraints and better understand how the flecsi project uses
legion. In the process, discovered that flecsi@1.4 cannot be
built with legion without heavy changes/reverts to the legion
and gasnet spackages.

Also, most importantly, fixed branding as to how flecsi is spelled
2021-07-21 22:43:51 +02:00
Adam J. Stewart
497dfee320 py-segmentation-models-pytorch: add new package (#25022) 2021-07-21 20:14:41 +00:00
Richarda Butler
dfc0aa86ee Bolt: Add E4S testsuite stand alone test (#24846) 2021-07-21 19:40:14 +00:00
Matthieu Dorier
2db3459e6b libpmemobj-cpp: fixing package not building because of valgrind flag (#24967) 2021-07-21 21:38:32 +02:00
Matthieu Dorier
feb0556664 pmdk: added versions up to 1.11.0 (#24972) 2021-07-21 21:36:32 +02:00
Adam J. Stewart
1f59163e8c py-efficientnet-pytorch: add new package (#25021) 2021-07-21 19:33:45 +00:00
Adam J. Stewart
e1b2ab0105 py-pretrainedmodels: add new package (#25020) 2021-07-21 19:30:59 +00:00
Ryan Mast
147c4fb96d helics: added "main" version (#24987) 2021-07-21 21:28:32 +02:00
Adam J. Stewart
df8e51d6e5 py-timm: add new package (#25019) 2021-07-21 19:25:04 +00:00
Tom Payerle
5a49264e19 metis: suppress warnings causing issues for %nvhpc builds (#25014)
We add compilation flags when using %nvhpc to suppress warnings
(which due to global -Werror flag in the build get promoted to
errors) for the following:
Diagnostic 111: statement is unreachable
Diagnostic 177: variable "foo" was declared but never referenced
Diagnostic 188: enumerated type mixed with another type
Diagnostic 550: variable "foo" was set but never used
2021-07-21 21:24:51 +02:00
Martin Pokorny
4a4d1759f5 Kokkos: allow c++17 starting with CUDA v11.0.0 (#25018) 2021-07-21 21:19:49 +02:00
Jonathan R. Madsen
80592613ad timemory package: add versions including 3.2.3; update options (#24825)
* add variants: python hatchet/line-profiler support and likwid
  nvmon support
* removed ompt_standalone/ompt_llvm variants
2021-07-21 11:54:04 -07:00
Massimiliano Culpo
a68abc15c5 Fix bootstrap from sources
#24095 introduced a couple of bugs, which are fixed here:

1. The module path is computed incorrectly for bootstrapped clingo
2. We remove too many paths for `sys.path` in case of failures
2021-07-21 07:22:07 -07:00
Manuela Kuhn
9237a9f244 py-python-xmp-toolkit: add new package (#25008) 2021-07-21 06:52:38 -07:00
Matthieu Dorier
7a458be3eb tkrzw: added more versions and compression variant (#24953) 2021-07-21 13:32:52 +00:00
Manuela Kuhn
9c96cc578e py-soupsieve: add 1.9.6 and 2.2.1 (#24973) 2021-07-21 08:31:14 -05:00
Manuela Kuhn
1cf52de47a py-requests-ftp: add new package (#24975) 2021-07-21 08:30:50 -05:00
Manuela Kuhn
8a038ef64c py-duecredit: add new package (#25006) 2021-07-21 13:08:12 +00:00
Harmen Stoppels
bb985e40dd z3: disable python binding by default (#25007)
z3 is a dependency of llvm and llvm-amdgpu, and when z3 python bindings
are enabled it depends on py-setuptools as a run dependency. That's
fine, except that py-setuptools now influences the hash of
llvm/llvm-amdgpu, which can be very annoying when another package
restricts the py-setuptools version -- you'll end up recompiling llvm
for no good reason :(.
2021-07-21 14:44:18 +02:00
Erik Schnetter
1c06ec0c11 yaml-cpp: add v0.7.0 (#24996) 2021-07-21 14:21:27 +02:00
Brian Van Essen
4e885b4358 lbann: update darwin build (#24998)
* Updated the lbann package to not enabled OpenMP in BLAS package when
working on Darwin systems.

* Add the Sphinx RTD theme as an explicit dependency when building documentation
2021-07-21 14:20:53 +02:00
Erik Schnetter
9b48827a10 pgplot: add libs method (#24999) 2021-07-21 14:19:02 +02:00
Erik Schnetter
7c5f48c99b lorene: Use correct library names of dependencies (#25000)
Query `spec[...].libs` to find out library flags and names of dependencies.

Also define `libs` property.
2021-07-21 14:18:36 +02:00
Erik Schnetter
1ae760ef31 ssht: add v1.4.0 (#25001) 2021-07-21 14:17:48 +02:00
Robert Underwood
04c5582eb2 sz: add v2.1.12 (#25004) 2021-07-21 14:17:25 +02:00
Manuela Kuhn
78a5e98721 py-citeproc-py: add new package (#25005) 2021-07-21 14:12:47 +02:00
Manuela Kuhn
669769c090 exempi: add new package (#24982) 2021-07-21 14:11:21 +02:00
Erik Schnetter
cb53a9cc14 gperftools: New version 2.9.1 (#24997) 2021-07-21 11:02:48 +02:00
Tamara Dahlgren
ad16eeb9af Ascent: removed redundant cuda variant (#24576) 2021-07-21 10:58:38 +02:00
Chris White
f6d9a1876a add new blt version (#25003) 2021-07-21 00:46:34 -07:00
Manuela Kuhn
af806a8c1e py-rnc2rng: add new package (#24990) 2021-07-21 01:43:18 +00:00
Manuela Kuhn
5ec52fc3f8 py-flask-restful: add new package (#24875) 2021-07-20 20:38:17 -05:00
Manuela Kuhn
c543b86e81 py-httpretty: add new package (#24977) 2021-07-20 20:37:09 -05:00
Manuela Kuhn
3be54d4aab py-vcrpy: add new package (#24978) 2021-07-20 20:34:25 -05:00
Manuela Kuhn
93b694f973 py-mutagen: add new package (#24979) 2021-07-20 20:33:13 -05:00
Manuela Kuhn
30e559592a py-exifread: add new package (#24980) 2021-07-20 20:25:50 -05:00
Manuela Kuhn
d4f498db7c py-rply: add new package (#24989) 2021-07-20 20:24:18 -05:00
Manuela Kuhn
72fb3f768f py-pyperclip: add 1.8.2 and missing xclip dependency (#24970) 2021-07-20 20:22:14 -05:00
Manuela Kuhn
b46061aa42 py-beautifulsoup4: add 4.9.3 (#24974) 2021-07-20 20:18:59 -05:00
Satish Balay
3724c78a25 petsc4py,slepc4py: update maintainers 2021-07-20 13:50:55 -07:00
Seth R. Johnson
2fd24f8542 trilinos: fix boost variant/dependency error for minitensor (#24985) 2021-07-20 15:13:25 -04:00
Wouter Deconinck
c1567463b0 kassiopeia: new versions, updated cmake_args (#24964)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-20 16:51:05 +02:00
Manuela Kuhn
889ece85ed py-annexremote: add new package (#24958) 2021-07-20 07:58:54 -05:00
Manuela Kuhn
5d0c7d4ba2 py-pybids: add new package (#24956) 2021-07-20 07:58:26 -05:00
Marcus Boden
3408d22df8 New package: Mash (#24833)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-07-20 05:16:47 -07:00
Sreenivasa Murthy Kolam
aa9f560128 update hip-rocclr recipe and fix dangling pointer in rocm-smi-lib (#24603) 2021-07-20 05:13:36 -07:00
Harmen Stoppels
a2ebeb8e76 boost: Add version ranges for macOS GCC patch (#24969) 2021-07-20 07:30:32 -04:00
Olivier Cessenat
df10ffe20d New Package: visit-unv (#22904) 2021-07-20 13:17:40 +02:00
Mikael Simberg
08629d8fb4 Add HPX 1.7.0 (#24880) 2021-07-20 13:05:40 +02:00
Tim Gymnich
b3b01a47d2 Add Enzyme (#24830)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-07-20 12:45:26 +02:00
Erik Schnetter
d580c5506c boost: Allow building with GCC on macOS (#24895) 2021-07-20 11:50:51 +02:00
Gabriel Rockefeller
0bf5156caf global: add v6.6.7 (#24930) 2021-07-20 01:58:41 -07:00
Alec Scott
9abd77c517 poppler: add v21.07.0 (#24931) 2021-07-20 01:55:34 -07:00
Martin Köhler
887820ecb5 fenics: add HDF5_NO_FIND_PACKAGE_CONFIG_FILE to cmake opts in FEniCS (#24922)
In some cases the FindHDF5.cmake returnd a wrong value for the HDF5 library names and path. For example it returns hdf5-shared as library name without a search path or checking if this is really an existing shared library. By HDF5_NO_FIND_PACKAGE_CONFIG_FILE=True/ON to the cmake options, the FindHDF5 module does not rely on a properly install hdf5-config.cmake and thus searches for the library and its paths. This results in a usable return value and fenics works afterwards.
2021-07-20 10:16:00 +02:00
Adam J. Stewart
55e247b407 py-pydocstyle: add new package (#24929) 2021-07-20 10:12:42 +02:00
Alec Scott
8ec0ef4c6d metall: add v0.15 (#24932) 2021-07-20 10:06:21 +02:00
Adam J. Stewart
f7be6f94ea rust: add spack external find support (#24939) 2021-07-20 10:03:46 +02:00
Chris Richardson
967743adc7 Fenicsx ecosystem: various updates (#24940)
* Updates for dependencies in main branch

* Add more depends

* Make CMake available at runtime for fenics-dolfinx

* Add maintainer

Co-authored-by: Garth N. Wells <gnw20@cam.ac.uk>
2021-07-20 10:03:02 +02:00
Sheng Di
55fe16991c zchecker: add v0.7 (#24942) 2021-07-20 10:01:54 +02:00
Adam J. Stewart
db909353e5 py-fsspec: add v2021.7.0 (#24943) 2021-07-20 10:01:23 +02:00
Adam J. Stewart
7ad7fa4da9 py-pytorch-lightning: add v1.3.8 (#24944) 2021-07-20 10:00:54 +02:00
Christoph Junghans
899e08a180 votca: add v2021.1 (#24949)
apply patch only to @2021
2021-07-20 09:59:01 +02:00
Adam J. Stewart
d511364a43 py-numpy: add v1.21.1 (#24950) 2021-07-20 09:57:37 +02:00
Bryan Herman
4d5f7b361e pvm: add fpic variant (#24954) 2021-07-20 09:54:32 +02:00
Satish Balay
19677c5ad1 petsc, petsc4py: add version 3.15.2 (#24961) 2021-07-20 09:50:05 +02:00
Satish Balay
2c87992506 petsc: pass in 'cuda_arch' to configure via --with-cuda-gencodearch [or CUDAFLAGS for older releases] (#24962) 2021-07-20 09:48:48 +02:00
Filip Sedlák
330507f329 ncbi-rmblastn: add build dependency on cpio (#24963)
Although `cpio` is present in many environments, it may not be always
available.

The failure to build this package can be reproduced in a fresh Docker
image `debian:10`.
2021-07-20 09:44:32 +02:00
Alec Scott
8080a5e5b2 Add Julia v1.6.2 (#24935) 2021-07-19 23:08:37 -05:00
Tiziano Müller
3a698112cc abinit: make libxml2 really optional, add optimization-flavor variant, fix build with ifort for atompaw (#24876) 2021-07-19 22:57:54 -05:00
Manuela Kuhn
b8b8450400 py-pygithub: add new package (#24957) 2021-07-19 19:49:34 -07:00
Tiziano Müller
d74b296752 libint: add debug/fma variants, fix tests for v2.6 (#24665) 2021-07-19 10:28:31 -06:00
Sreenivasa Murthy Kolam
7845939722 fix compile error with the correct python path (#24936) 2021-07-19 15:14:05 +02:00
Michael Kuhn
fdcd7f96e5 meson: add 0.59.0 and 0.58.1 (#24955) 2021-07-19 06:49:42 -06:00
Kai Torben Ohlhus
339c2290e7 openblas: add version 0.3.17 (#24941) 2021-07-19 13:46:14 +02:00
Harmen Stoppels
fc50e04b59 Fix S3 urlparse scheme error and add test (#24952) 2021-07-19 13:39:17 +02:00
Timothy Brown
1bf9c10f0c mpas-model: support Intel compiler (#24905) 2021-07-19 13:15:16 +02:00
shanedsnyder
feb229a5f9 darshan runtime,darshan-util: convert to autotool packages (#24906) 2021-07-19 13:14:32 +02:00
Ben Darwin
efd9884e83 minc-toolkit: allow building shared libs and enable by default (#24909) 2021-07-19 13:08:36 +02:00
Adam J. Stewart
846ab65cc0 py-pythran: add new version (#24900) 2021-07-19 12:57:21 +02:00
Adam J. Stewart
29c7542c48 py-pyproj: add new versions (#24893) 2021-07-19 12:52:02 +02:00
Adam J. Stewart
3f9a5eda16 PROJ: add v8.x (#24892) 2021-07-19 12:51:17 +02:00
Ricardo Jesus
fefedbe653 Remove -Wmissing-format-attribute if compiling with nvhpc (#24873) 2021-07-19 12:25:13 +02:00
Adam J. Stewart
be90bdc355 py-rtree: add new version, fix runtime env (#24862) 2021-07-19 12:22:03 +02:00
Adam J. Stewart
b074dc17b1 py-bandit: add new package (#24857) 2021-07-19 12:18:47 +02:00
Satish Balay
fa503ef0e2 strumpack@develop: update change in examples/data PATH (#24814) 2021-07-19 12:01:05 +02:00
Lizzie Lundgren
99eb98d029 gchp: add versions 13.1.0, 13.1.1, 13.1.2 (#24755) 2021-07-19 10:53:02 +02:00
Alec Scott
90da25e24e go: add v1.16.6 (#24934) 2021-07-19 09:04:34 +02:00
Seth R. Johnson
624c72afae trilinos: simplify some variants (#24820)
* trilinos: rename basker variant

The Basker solver is part of amesos2 but is clearer without the extra
scoping.

* trilinos: automatically enable teuchos and remove variant

Basically everything in trilinos needs teuchos

* trilinos: group top-level dependencies

* trilinos: update dependencies, removing unused

- GLM, X11 are unused (x11 lacks dependency specs too)
- Python variant is more like a TPL so rearrange that
- Gtest internal package shouldn't be compiled or exported
- Add MPI4PY requirement for pytrilinos

* trilinos: remove package meta-options

- XSDK settings and "all opt packages" are not used anywhere
- all optional packages are dangerous

* trilinos: Use hwloc iff kokkos

See #19119, also the HWLOC tpl name was misspelled so this was being ignored before.

* Flake

* Fix trilinos +netcdf~mpi

* trilinos: default to disabling external dependencies

* Remove teuchos from downstream dependencies

* fixup! trilinos: Use hwloc iff kokkos

* Add netcdf requirements to packages with ^trilinos+exodus

* trilinos: disable exodus by default

* fixup! Add netcdf requirements to packages with ^trilinos+exodus

* trilinos: only enable hwloc when @13: +kokkos

* xyce: propagate trilinos dependencies more simply

* dtk: fix missing boost dependency

* trilinos: remove explicit metis dependency

* trilinos: require metis/parmetis for zoltan

Disable zoltan by default to minimize default dependencies

* trilinos: mark mesquite disabled and fix kokkos arch

* xsdk: fix trilinos to also list zoltan [with zoltan2]

* ci: remove nonexistent variant from trilinos

* trilinos: add missing boost dependency

Co-authored-by: Satish Balay <balay@mcs.anl.gov>
2021-07-16 11:36:06 -07:00
Adam J. Stewart
c56f2a935d Sphinx 3.4+ required for correct reference target linking 2021-07-16 08:30:56 -07:00
Adam J. Stewart
b8afc0fd29 API Docs: fix broken reference targets 2021-07-16 08:30:56 -07:00
Adam J. Stewart
c37df94932 Python: query distutils to find site-packages directory (#24095)
Third-party Python libraries may be installed in one of several directories:

1. `lib/pythonX.Y/site-packages` for Spack-installed Python
2. `lib64/pythonX.Y/site-packages` for system Python on RHEL/CentOS/Fedora
3. `lib/pythonX/dist-packages` for system Python on Debian/Ubuntu

Previously, Spack packages were hard-coded to use the (1). Now, we query the Python installation itself and ask it which to use. Ever since #21446 this is how we've been determining where to install Python libraries anyway.

Note: there are still many packages that are hard-coded to use (1). I can change them in this PR, but I don't have the bandwidth to test all of them.

* Python: handle dist-packages and site-packages
* Query Python to find site-packages directory
* Add try-except statements for when distutils isn't installed
* Catch more errors
* Fix root directory used in import tests
* Rely on site_packages_dir property
2021-07-16 08:28:00 -07:00
Maciej Wójcik
64f31c4579 Added missing Plumed 2.5-2.7 versions to Gromacs package (#24912)
* Added missing Plumed 2.5-2.7 releases

* Added missing Plumed 2.5-2.7 dependencies

* Merged version ranges

* Simplified version ranges

* Deduplicated comment
2021-07-16 05:47:27 -06:00
eugeneswalker
e96ba16555 ci: build trilinos with all variants on (#24908) 2021-07-15 18:44:42 +00:00
Massimiliano Culpo
fd55d627a7 archspec: added support for arm compiler on graviton2 (#24904) 2021-07-15 13:27:13 +00:00
Adam J. Stewart
753fa4ed08 py-gast: add v0.5.0 (#24898) 2021-07-15 14:56:09 +02:00
Adam J. Stewart
f66571ffe1 py-beniget: add v0.4.0, v0.2.3 (#24899) 2021-07-15 14:54:56 +02:00
Valentin Volkl
fa4b9a6abc simsipm: add new package (#24903)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-07-15 14:06:41 +02:00
Erik Schnetter
0a3f875b95 boost: Run b2 headers after a git clone (#24889) 2021-07-14 22:00:44 -05:00
vucoda
29f10624bd Change url+checksums for libpng to official sourceforge archives (#23767)
* Change url and checksums for libpng to official sourceforge archives
* Update url scheme from http to https
* switch to .xz archives

Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-07-14 21:30:32 +00:00
Tamara Dahlgren
1c07dd1adb Update stand-alone tests to use test stage work directory (#24112) 2021-07-14 13:33:50 -07:00
Axel Huebl
8126a13211 Dask: 2021.06.2 (#24606)
* Dask: 2021.06.2

Add the latest DASK release.

* Apply suggestions from code review

Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com>

* Update py-distributed relation

Co-authored-by: Sergey Kosukhin <skosukhin@gmail.com>
2021-07-14 14:58:53 -05:00
robgics
b24ba28774 Add ampl package (#24105) 2021-07-14 19:55:28 +00:00
Luhan Cheng
369ccb953f Fix inconsistent arch arguments expected in cudnn package (#24882)
* change aarch64sbsa to aarch64

* fixing arch in url

* making ci pipeline happy

* removing comments

Co-authored-by: Luhan Cheng <luhan.cheng@monash.edu>
2021-07-14 19:40:02 +00:00
Greg Becker
3004f33c58 spec may be a string, use precomputed namespace (#24867) 2021-07-14 11:58:31 -07:00
Tamara Dahlgren
a9e7f3a4e7 scotch: use https (#24891) 2021-07-14 14:35:27 -04:00
Zack Galbreath
56c8f533cd py-setuptools-scm: change default to +toml (#24884) 2021-07-14 15:45:41 +00:00
Valentin Volkl
e6e21b16d8 py-particle: add version 0.15.1 (#24834) 2021-07-14 07:53:01 -05:00
G-Ragghianti
555c054984 Added new version 2.6.1 (#24871) 2021-07-14 07:51:23 -05:00
Xavier Delaruelle
b37bf93aa2 environment-modules: add v4.8.0 (#24874) 2021-07-14 14:17:21 +02:00
Thomas Kluyver
c33ec328fb Add py-h5py version 3.3.0 (#24781)
* Add py-h5py version 3.3.0

The mpi4py dependency was bumped to 3.0.2 in setup.py. I'm not sure if that's actually required or not, but nothing lower is still tested.

* Use environment variable to stop h5py using setuptools setup_requires feature

* Add myself as a maintainer for py-h5py
2021-07-14 07:33:57 -04:00
Kai Torben Ohlhus
652f35a39f openblas: add version 0.3.16 (#24872) 2021-07-14 04:07:16 -07:00
Jen Herting
e3fdbb976e [py-transformers] added version 4.6.1 (#24571)
* [py-transformers] can now use newer versions of tokenizers

* [py-transformers] Added version 4.6.1

* [py-transformers] removing old patch

* [py-transformers] boto3 no longer needed
2021-07-14 02:58:10 +00:00
Jen Herting
f095383caf New package: py-torchmeta (#24596)
* first build of py-torchmeta

* updated versions for torchvision and torch

* [py-torchmeta] using pil provider

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-07-13 21:38:12 -05:00
Manuela Kuhn
94767ea573 py-setuptools-rust: add 0.12.1 (#24863)
* py-setuptools-rust: add 0.12.1

* mark 0.10.6 as deprecated and fix style
2021-07-13 21:36:14 -05:00
Alec Scott
28872955d5 Limit Gdal Version for Grass and Add Version 7.8.5 (#24737) 2021-07-13 20:50:56 -05:00
Mauricio Ferrato
e1d7275f92 flecsph package: use cxxstd=17 and external cinch (#24856) 2021-07-13 15:22:55 -07:00
Manuela Kuhn
04520ebdea py-cryptography: add 3.4.7 (#24866) 2021-07-13 22:01:54 +00:00
G-Ragghianti
819f288587 MAGMA package: fix smoke test method (#24848)
The Makefile for the MAGMA smoke tests uses pkg-config to find
the MAGMA compile flags, but the test() routine in the spack
package was not configured to provide the location of the
pkg-config file. This modification sets PKG_CONFIG_PATH correctly
to allow the smoketests to successfully compile. It also removes
the *_dir variables which were unused by the magma
examples/Makefile.
2021-07-13 14:50:15 -07:00
Martin Köhler
8ccdcf2e84 Octave: add version 6.3.0 (#24851) 2021-07-13 14:27:49 -07:00
Michael Kuhn
df77922d22 py-jupyterlab, py-jupyter-server: fix version range (#24864)
Using the original concretizer, trying to concretize py-jupyterlab fails
with
```
==> Error: Invalid Version range: 6.1.0:6.1
```
because py-tornado does not have a 6.1.0 version but only a 6.1 one.
2021-07-13 21:05:14 +00:00
Tom Payerle
9a0febab89 libtirpc: Fix for #24806 (remove -pipe flag when using %nvhpc) (#24807)
Makefiles for libtirpc have hardcoded the -pipe flag to the compiler
nvhpc compilers do not recognize that flag.
This PR provides a patch to remove the -pipe flag from the Makefile.
Patch should work with libtirpc@1.2.6 and @1.1.4
2021-07-13 12:55:20 -07:00
Michael Schlottke-Lakemper
231a36c5fd HOHQMesh: add version v1.0.1 (#24823) 2021-07-13 12:31:34 -07:00
Frank Willmore
d79022f842 openmpi: add direct cuda dependency (#24859)
makes cuda a direct dependency, so it still shows up when using external hwloc+cuda
2021-07-13 19:14:29 +00:00
Manuela Kuhn
3c5287c458 py-jupyterlab: fix startup and add 3.0.16 (#24780)
jupyterlab was looking for its application directory inside the python
prefix instead its own one. This was fixed by setting the according
environment variable.
2021-07-13 19:07:45 +00:00
Robert Mijakovic
88be996d45 scotch: new versions, 6.1.0 and 6.1.1 (#24855)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-07-13 11:03:20 -07:00
Adam J. Stewart
9828df7335 py-torch: CUDA 9.2+ required for 1.6+ (#24808) 2021-07-13 10:46:07 -07:00
Jianwen
657b3ec052 blast-plus: add version 2.12.0 (#24828) 2021-07-13 10:44:07 -07:00
Seth R. Johnson
80813b61ff hdf5: new version 1.12.1 (#24841) 2021-07-13 10:42:23 -07:00
Hadrien G
e4fa31230c ACTS package: add version 9.02.0 (#24844) 2021-07-13 10:41:45 -07:00
iarspider
a6f839b880 Add new Cython version (#24853) 2021-07-13 10:22:34 -05:00
eugeneswalker
09540d411e binary_distribution: relocate x-pie-executable files (#24854) 2021-07-13 07:53:35 -07:00
Manuela Kuhn
aaad65fbd8 graphviz: add python dependency to fix installation (#24852)
The bootstrap script in the autoreconf procedure calls the
gen_version.py script which requires python 3.6 to process f-strings.
2021-07-13 13:12:10 +00:00
Valentin Volkl
e3e50b3af9 py-awkward: add version 1.4.0 (#24838) 2021-07-13 08:11:59 -05:00
Valentin Volkl
047c9704df whizard: add version 3.0.1 (#24836) 2021-07-13 08:10:55 -05:00
Valentin Volkl
1ee8947677 gaudi: add version 36.0 (#24840) 2021-07-13 08:31:11 -04:00
Valentin Volkl
7f24feb5a4 cppunit: disable doxygen (#24850) 2021-07-13 08:25:26 -04:00
Todd Gamblin
326fe433b3 Add spack help --spec to README.md (#24849)
We don't really advertise `spack help --spec` enough. I think the README is a good place to start
doing that.
2021-07-13 14:04:41 +02:00
Adam J. Stewart
60765d38d0 Fix KeyboardInterrupt signal for Python 2 2021-07-13 01:17:51 -07:00
Erik Schnetter
667ab50199 c-blosc2: New version 2.0.2 (#24843) 2021-07-12 23:02:36 +00:00
Massimiliano Culpo
3228c35df6 Enable/disable bootstrapping and customize store location (#23677)
* Permit to enable/disable bootstrapping and customize store location

This PR adds configuration handles to allow enabling
and disabling bootstrapping, and to customize the store
location.

* Move bootstrap related configuration into its own YAML file

* Add a bootstrap command to manage configuration
2021-07-12 19:00:37 -04:00
Valentin Volkl
9fb1c3e143 py-uproot: add version 4.0.11 (#24835) 2021-07-12 17:39:22 -05:00
Valentin Volkl
e05be70bcb py-hepunits: add version 2.1.1 (#24837) 2021-07-12 17:37:37 -05:00
jkelling
81bad21d3a Update caffe package for cuda9 (#24831)
Add base CudaPackage, cuda_arch
2021-07-12 17:31:38 -05:00
Todd Gamblin
f58b2e03ca build output: filter padding out of console output when padded_length is used (#24514)
Spack allows users to set `padded_length` to pad out the installation path in
build farms so that any binaries created are more easily relocatable. The issue
with this is that the padding dominates installation output and makes it
difficult to see what is going on. The padding also causes logs to easily
exceed size limits for things like GitLab artifacts.

This PR fixes this by adding a filter in the logger daemon. If you use a
setting like this:

config:
    install_tree:
        padded_length: 512

Then lines like this in the output:

==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_placeholder__/__spack_path_pla/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga

will be replaced with the much more readable:

==> [2021-06-23-15:59:05.020387] './configure' '--prefix=/Users/gamblin2/padding-log-test/opt/[padded-to-512-chars]/darwin-bigsur-skylake/apple-clang-12.0.5/zlib-1.2.11-74mwnxgn6nujehpyyalhwizwojwn5zga

You can see that the padding has been replaced with `[padded-to-512-chars]` to
indicate the total number of characters in the padded prefix. Over a long log
file, this should save a lot of space and allow us to see error messages in
GitHub/GitLab log output.

The *actual* build logs still have full paths in them. Also lines that are
output by Spack and not by a package build are not filtered and will still
display the fully padded path. There aren't that many of these, so the change
should still help reduce file size and readability quite a bit.
2021-07-12 21:48:52 +00:00
Valentin Volkl
34b763f792 hepmc3: add version 3.2.4 (#24839)
* hepmc3: add version 3.2.4

* hepmc3: clean up legacy arguments from hepmc2 and fix tests
2021-07-12 17:48:09 -04:00
Ryan O'Malley
9d6d2f0f9b folly: added latest version and switched to CMakePackage (#23938)
* added latest version and switched to CMakePackage

* Added optional dependencies and cxxstd variant

* Added cxxstd variant and optional dependencies

* Added lib. that Boost doesn't install by default

* BUG: Removed previous broken versions of Folly

* BUG: refactored comments

* BUG: Fixed styling errors
2021-07-12 14:13:31 -07:00
Sebastian Schmitt
6d22e9cd7b Update pathos (#24636)
* Update pathos

* Add build and run
2021-07-12 10:01:43 -05:00
Sebastian Schmitt
1784b05eaf Update multiprocess (#24634)
* Update multiprocess

* Add build and run
2021-07-12 10:01:13 -05:00
Adam J. Stewart
872785db16 py-sphobjinv: add new package (#24790) 2021-07-12 13:40:32 +02:00
Erik Schnetter
4c7aed5d57 lorene, pgplot: new packages (#24549) 2021-07-12 13:35:43 +02:00
Christoph Conrads
e957c58a1e Expat: add version 2.4.0, 2.4.1; fix CVE-2013-0340 (#24669)
* Expat: add version 2.4.0, 2.4.1; fix CVE-2013-0340

fixes #24628

* E4S pipeline: update pinned Expat version
2021-07-11 19:43:37 +00:00
Matthew Fernandez
112c1751d7 docs: fix reference to count of system packages (#24821)
015e29efe1 that introduced this section to the
documentation said “two” here instead of the actual count, three.
9f54cea5c5 then added a fourth, BLAS/LAPACK.
Rather than trying to keep this leading count in sync, this change just replaces
the wording with something more generic/stable.
2021-07-11 18:49:19 +00:00
Scott Wittenburg
e0017a6666 Fix out of date remote spec.yamls while updating the index (#24811) 2021-07-10 06:49:09 +00:00
Todd Gamblin
084bafe18c coverage: move config from .coveragerc to pyproject.toml
Getting rid of another top-level file.

`coverage.py` has supported `pyproject.toml` since version 5.0, and
all versions of coverage so far work with python 2.7. We just need to
ensure that a version of coverage with the `toml` extra is installed
in the test environment.

I tested this with `coverage run`, `coverage report`, and `coverage html`.
2021-07-09 22:49:47 -07:00
Vanessasaurus
775c8223c3 debug: initial global debug flag support (#24285)
The developer can export environment variables that
are seen by the compiler wrapper to then add the flags
2021-07-09 21:22:26 -04:00
Greg Becker
ebf2076755 spec.splice: properly handle cached hash invalidations (#24795)
* spec.splice: properly handle cached hash invalidations

* make package_hash a cached hash on the spec
2021-07-10 01:16:48 +00:00
Christoph Junghans
556975564c votca-tools: fix build with newer gcc/glibc (#24815) 2021-07-10 01:05:30 +00:00
Massimiliano Culpo
d14520d6d8 docker: remove boto3 from CentOS 6 since it requires and updated pip (#24813) 2021-07-10 00:45:30 +00:00
Axel Huebl
78f65e7ce0 openPMD-api: rename develop (#24810)
* openPMD-api: rename develop

Rename to match known Spack version comparison schemes:
```
develop>main>master>head>trunk>9999>0>z>a
```

Currently, the hdf5 patch that is pre-0.14.0 is also applied to
`dev`, which naturally fails (already applied).

* fix dev in warpx
2021-07-09 22:43:28 +00:00
Asher Mancinelli
c9fe3af92d toml11: New package (#24620) 2021-07-09 14:13:22 -04:00
Manuela Kuhn
c6ffec1d78 py-markupsafe: add 2.0.1 (#24766)
* py-markupsafe: add 2.0.1

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-07-09 12:04:36 -06:00
Zack Galbreath
0e177cb95f ci: tolerate 'InvalidAccessKeyId' (#24741)
Add 'InvalidAccessKeyId' to the list of error messages we expect
and tolerate in push_mirror_contents()
2021-07-09 09:39:16 -07:00
QuellynSnead
72585afcef hypre: Add new versions (#24625)
* hypre: Add releases 2.21.0 and 2.22.0
2021-07-09 12:25:36 -04:00
Chris White
4037a94d1e Remove unnecessary compiler id override for XL (#24799) 2021-07-09 09:20:54 -07:00
Adam J. Stewart
b4e757dc35 py-fuzzywuzzy: add new package (#24789) 2021-07-09 17:51:52 +02:00
darmac
d734df705a libnids: add new package (#22153) 2021-07-09 17:49:10 +02:00
Massimiliano Culpo
2a858f8f3d docker: Fix CentOS 6 build on Docker Hub (#24804)
This change make yum usable again on CentOS 6
2021-07-09 15:45:46 +00:00
Seth R. Johnson
0edc55adc2 scotch: default to not installing vendored metis/parmetis (#24785) 2021-07-09 11:30:00 -04:00
Hadrien G
7b7f758db3 acts: add v9.01.00 (#24570) 2021-07-09 17:13:35 +02:00
Robert Mijakovic
8cc54036b5 c-blosc2: adds v2.0.1 (#24581)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-07-09 17:12:00 +02:00
Miroslav Stoyanov
b3bdc2ef38 heffte: add v2.1.0 (#24599) 2021-07-09 17:11:13 +02:00
Robert Mijakovic
a53f4c36c6 util-macros: new versions, 1.19.2/3 (#24612)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-07-09 17:02:45 +02:00
Gabriel Rockefeller
4682ff0cc4 global: add v6.6.6 (#24642) 2021-07-09 16:59:23 +02:00
Manuela Kuhn
fabe86be96 py-bids-validator: add new package (#24677) 2021-07-09 16:58:44 +02:00
Manuela Kuhn
9797c8f060 py-sqlalchemy: add 1.4.20 (#24676)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-07-09 16:58:26 +02:00
Dylan Simon
02c5c76f0b pthreadpool: enable shared libraries (#24657)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-07-09 16:58:02 +02:00
Simon Frasch
07fab46262 spla: add v1.5.1 (#24661) 2021-07-09 16:54:49 +02:00
Simon Frasch
0edb7937e7 spfft: add v1.0.4 (#24662) 2021-07-09 16:54:37 +02:00
Paul Kuberry
46fa8481d9 trilinos: add a neww maintainer (#24670) 2021-07-09 16:54:06 +02:00
Manuela Kuhn
a2a2d6ab7e py-aniso8601: add new package (#24672) 2021-07-09 16:53:01 +02:00
Manuela Kuhn
aaeaa0516d py-jeepney: add v0.6.0 (#24674) 2021-07-09 16:52:49 +02:00
Manuela Kuhn
463c704265 py-jupyterlab-server: add v2.6.0 (#24779) 2021-07-09 14:35:26 +00:00
Manuela Kuhn
cd118341e9 py-nbclassic: add new packageg (#24778) 2021-07-09 14:21:56 +00:00
Gregor Daiß
2d1631c9fd sgpp: add v3.4.0 (#24678) 2021-07-09 16:09:35 +02:00
Manuela Kuhn
cdd6c71f66 py-greenlet: add v1.1.0 (#24682) 2021-07-09 16:09:13 +02:00
figroc
7d334471d3 protobuf: add versions up to 3.17.3 (#24691) 2021-07-09 16:05:16 +02:00
Sebastian Schmitt
8cb3253a04 Update ppft (#24632) 2021-07-09 08:16:39 -05:00
Sebastian Schmitt
9add3182c7 Add py-salib (#24218) 2021-07-09 08:15:21 -05:00
Enrico Usai
f830585994 aws-parallelcluster: add v2.11.0 (#24648) 2021-07-09 08:13:57 -05:00
Vasileios Karakasis
2e80b60a04 Add ReFrame 3.6.3 (#24664) 2021-07-09 14:29:04 +02:00
Adam J. Stewart
ace28e2ef5 pinentry: add gui multi-valued variant (#24717) 2021-07-09 14:26:02 +02:00
Manuela Kuhn
4a44f023e8 py-jupyter-server: add new package (#24777) 2021-07-09 11:37:08 +00:00
Olivier Cessenat
1b26c47cb8 latex2html: adding the famous LaTeX to HTML converter (#24750) 2021-07-09 13:17:43 +02:00
Manuela Kuhn
aeab3b2872 py-jupyter-packaging: add new package (#24751) 2021-07-09 13:16:43 +02:00
Cameron Smith
727f43f69f simmetrix-simmodsuite: add v16.0-210623 and maintainer (#24763) 2021-07-09 13:08:04 +02:00
Robert Mijakovic
ba2e186f31 llvm: add v12.0.1 (#24803)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-07-09 13:06:04 +02:00
Michele Mesiti
de8d4e9d9a sombrero: add v2021-07-08, deprecate v1.0 (#24782) 2021-07-09 13:02:26 +02:00
Manuela Kuhn
01ca429c9a py-tornado: add v6.1 (#24753) 2021-07-09 12:57:45 +02:00
Manuela Kuhn
83d0e20ae8 py-requests-unixsocket: add new package (#24764) 2021-07-09 12:57:32 +02:00
Manuela Kuhn
85b49f115f py-anyio: add new package (#24765) 2021-07-09 12:57:20 +02:00
holrock
451f484c9a ruby: add v3.0.2 (#24771) 2021-07-09 12:53:37 +02:00
Manuela Kuhn
bbd80e5cf3 py-jupyter-core: add v4.7.1 (#24768) 2021-07-09 12:53:13 +02:00
Manuela Kuhn
d8f655159a py-jinja2: add 3.0.1 and +i18n variant (#24767) 2021-07-09 12:52:59 +02:00
Adam J. Stewart
94e5c1d078 py-pyrsistent: need link dep on python (#24788) 2021-07-09 11:58:51 +02:00
Robert Cohn
0b9b3f6f79 intel-oneapi-dpl: new package (#24793) 2021-07-09 11:56:02 +02:00
Axel Huebl
5b5f99bbd4 WarpX: add v21.07 (#24800) 2021-07-09 11:53:04 +02:00
Todd Gamblin
eff7f20118 mypy: move configuration to pyproject.toml (#24802)
This moves our `mypy` configuration from `.mypy.ini` to `.pyproject.toml`
and increases the minimum `mypy` version in the tests.

- [x] move `mypy` configuration to `pyproject.toml`
- [x] remove `.mypy.ini`
- [x] ensure that `mypy` version .900 or higher is used in tests
2021-07-09 11:52:23 +02:00
Seth R. Johnson
3fb5c13983 googletest: add v1.11 and "live at head", keep v1.10 the default (#24290)
Ideally a test-only dependency won't be in the build, but until then
mark the requirement of gtest up to 1.10. 

See e4s job failure at https://gitlab.spack.io/spack/spack/-/jobs/349959 .

Looks like 1.11 introduces some breaking incompatibilities, so perhaps
we should transition later.
2021-07-09 10:57:37 +02:00
Stephen Herbein
57a9fb7610 flux: add latest tagged releases (#24687)
flux-core v0.21 requires jansson 2.10+

For more details, see:
a6086e021e
2021-07-09 10:55:06 +02:00
Nic McDonald
4c3005673e abseil-cpp: add cxxstd variant (#24577) 2021-07-09 10:54:14 +02:00
Sebastian Schmitt
89b57929f2 Update pox (#24635)
* Update pox

* Add build and run
2021-07-08 21:42:26 -05:00
Massimiliano Culpo
c699e907fc Update command to setup tutorial (#24488) 2021-06-23 19:38:36 -05:00
7911 changed files with 150062 additions and 51631 deletions

View File

@@ -19,3 +19,16 @@ comment: off
# annotations in files that seemingly have nothing to do with the PR.
github_checks:
annotations: false
# Attempt to fix "Missing base commit" messages in the codecov UI.
# Because we do not run full tests on package PRs, package PRs' merge
# commits on `develop` don't have coverage info. It appears that
# codecov will give you an error if the pseudo-base's coverage data
# doesn't all apply properly to the real PR base.
#
# See here for docs:
# https://docs.codecov.com/docs/comparing-commits#pseudo-comparison
# See here for another potential solution:
# https://community.codecov.com/t/2480/15
codecov:
allow_coverage_offsets: true

View File

@@ -1,38 +0,0 @@
# -*- conf -*-
# .coveragerc to control coverage.py
[run]
parallel = True
concurrency = multiprocessing
branch = True
source =
bin
lib
omit =
lib/spack/spack/test/*
lib/spack/docs/*
lib/spack/external/*
share/spack/qa/*
[report]
# Regexes for lines to exclude from consideration
exclude_lines =
# Have to re-enable the standard pragma
pragma: no cover
# Don't complain about missing debug-only code:
def __repr__
if self\.debug
# Don't complain if tests don't hit defensive assertion code:
raise AssertionError
raise NotImplementedError
# Don't complain if non-runnable code isn't run:
if 0:
if False:
if __name__ == .__main__.:
ignore_errors = True
[html]
directory = htmlcov

View File

@@ -1,42 +0,0 @@
---
name: "\U0001F41E Bug report"
about: Report a bug in the core of Spack (command not working as expected, etc.)
labels: "bug,triage"
---
<!-- Explain, in a clear and concise way, the command you ran and the result you were trying to achieve.
Example: "I ran `spack find` to list all the installed packages and ..." -->
### Steps to reproduce the issue
```console
$ spack <command1> <spec>
$ spack <command2> <spec>
...
```
### Error Message
<!-- If Spack reported an error, provide the error message. If it did not report an error but the output appears incorrect, provide the incorrect output. If there was no error message and no output but the result is incorrect, describe how it does not match what you expect. -->
```console
$ spack --debug --stacktrace <command>
```
### Information on your system
<!-- Please include the output of `spack debug report` -->
<!-- If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. -->
### Additional information
<!-- These boxes can be checked by replacing [ ] with [x] or by clicking them after submitting the issue. -->
- [ ] I have run `spack debug report` and reported the version of Spack/Python/Platform
- [ ] I have searched the issues of this repo and believe this is not a duplicate
- [ ] I have run the failing commands in debug mode and reported the output
<!-- We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively!
If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on our Slack first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
Other than that, thanks for taking the time to contribute to Spack! -->

58
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,58 @@
name: "\U0001F41E Bug report"
description: Report a bug in the core of Spack (command not working as expected, etc.)
labels: [bug, triage]
body:
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce
description: |
Explain, in a clear and concise way, the command you ran and the result you were trying to achieve.
Example: "I ran `spack find` to list all the installed packages and ..."
placeholder: |
```console
$ spack <command1> <spec>
$ spack <command2> <spec>
...
```
validations:
required: true
- type: textarea
id: error
attributes:
label: Error message
description: |
If Spack reported an error, provide the error message. If it did not report an error but the output appears incorrect, provide the incorrect output. If there was no error message and no output but the result is incorrect, describe how it does not match what you expect.
placeholder: |
```console
$ spack --debug --stacktrace <command>
```
- type: textarea
id: information
attributes:
label: Information on your system
description: Please include the output of `spack debug report`
validations:
required: true
- type: markdown
attributes:
value: |
If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well.
- type: checkboxes
id: checks
attributes:
label: General information
options:
- label: I have run `spack debug report` and reported the version of Spack/Python/Platform
required: true
- label: I have searched the issues of this repo and believe this is not a duplicate
required: true
- label: I have run the failing commands in debug mode and reported the output
required: true
- type: markdown
attributes:
value: |
We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively!
If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on [our Slack](https://slack.spack.io/) first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
Other than that, thanks for taking the time to contribute to Spack!

View File

@@ -1,43 +0,0 @@
---
name: "\U0001F4A5 Build error"
about: Some package in Spack didn't build correctly
title: "Installation issue: "
labels: "build-error"
---
<!-- Thanks for taking the time to report this build failure. To proceed with the report please:
1. Title the issue "Installation issue: <name-of-the-package>".
2. Provide the information required below.
We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively! -->
### Steps to reproduce the issue
<!-- Fill in the exact spec you are trying to build and the relevant part of the error message -->
```console
$ spack install <spec>
...
```
### Information on your system
<!-- Please include the output of `spack debug report` -->
<!-- If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well. -->
### Additional information
<!-- Please upload the following files. They should be present in the stage directory of the failing build. Also upload any config.log or similar file if one exists. -->
* [spack-build-out.txt]()
* [spack-build-env.txt]()
<!-- Some packages have maintainers who have volunteered to debug build failures. Run `spack maintainers <name-of-the-package>` and @mention them here if they exist. -->
### General information
<!-- These boxes can be checked by replacing [ ] with [x] or by clicking them after submitting the issue. -->
- [ ] I have run `spack debug report` and reported the version of Spack/Python/Platform
- [ ] I have run `spack maintainers <name-of-the-package>` and @mentioned any maintainers
- [ ] I have uploaded the build log and environment files
- [ ] I have searched the issues of this repo and believe this is not a duplicate

74
.github/ISSUE_TEMPLATE/build_error.yml vendored Normal file
View File

@@ -0,0 +1,74 @@
name: "\U0001F4A5 Build error"
description: Some package in Spack didn't build correctly
title: "Installation issue: "
labels: [build-error]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report this build failure. To proceed with the report please:
1. Title the issue `Installation issue: <name-of-the-package>`.
2. Provide the information required below.
We encourage you to try, as much as possible, to reduce your problem to the minimal example that still reproduces the issue. That would help us a lot in fixing it quickly and effectively!
- type: textarea
id: reproduce
attributes:
label: Steps to reproduce the issue
description: |
Fill in the console output from the exact spec you are trying to build.
value: |
```console
$ 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`.
validations:
required: true
- type: markdown
attributes:
value: |
If you have any relevant configuration detail (custom `packages.yaml` or `modules.yaml`, etc.) you can add that here as well.
- type: textarea
id: additional_information
attributes:
label: Additional information
description: |
Please upload the following files:
* **`spack-build-out.txt`**
* **`spack-build-env.txt`**
They should be present in the stage directory of the failing build. Also upload any `config.log` or similar file if one exists.
- type: markdown
attributes:
value: |
Some packages have maintainers who have volunteered to debug build failures. Run `spack maintainers <name-of-the-package>` and **@mention** them here if they exist.
- type: checkboxes
id: checks
attributes:
label: General information
options:
- label: I have run `spack debug report` and reported the version of Spack/Python/Platform
required: true
- label: I have run `spack maintainers <name-of-the-package>` and **@mentioned** any maintainers
required: true
- label: I have uploaded the build log and environment files
required: true
- label: I have searched the issues of this repo and believe this is not a duplicate
required: true

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: true

View File

@@ -1,33 +0,0 @@
---
name: "\U0001F38A Feature request"
about: Suggest adding a feature that is not yet in Spack
labels: feature
---
<!--*Please add a concise summary of your suggestion here.*-->
### Rationale
<!--*Is your feature request related to a problem? Please describe it!*-->
### Description
<!--*Describe the solution you'd like and the alternatives you have considered.*-->
### Additional information
<!--*Add any other context about the feature request here.*-->
### General information
- [ ] I have run `spack --version` and reported the version of Spack
- [ ] I have searched the issues of this repo and believe this is not a duplicate
<!--If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on our Slack first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
Other than that, thanks for taking the time to contribute to Spack!
-->

View File

@@ -0,0 +1,41 @@
name: "\U0001F38A Feature request"
description: Suggest adding a feature that is not yet in Spack
labels: [feature]
body:
- type: textarea
id: summary
attributes:
label: Summary
description: Please add a concise summary of your suggestion here.
validations:
required: true
- type: textarea
id: rationale
attributes:
label: Rationale
description: Is your feature request related to a problem? Please describe it!
- type: textarea
id: description
attributes:
label: Description
description: Describe the solution you'd like and the alternatives you have considered.
- type: textarea
id: additional_information
attributes:
label: Additional information
description: Add any other context about the feature request here.
- type: checkboxes
id: checks
attributes:
label: General information
options:
- label: I have run `spack --version` and reported the version of Spack
required: true
- label: I have searched the issues of this repo and believe this is not a duplicate
required: true
- type: markdown
attributes:
value: |
If you want to ask a question about the tool (how to use it, what it can currently do, etc.), try the `#general` channel on [our Slack](https://slack.spack.io/) first. We have a welcoming community and chances are you'll get your reply faster and without opening an issue.
Other than that, thanks for taking the time to contribute to Spack!

314
.github/workflows/bootstrap.yml vendored Normal file
View File

@@ -0,0 +1,314 @@
name: Bootstrapping
on:
# This Workflow can be triggered manually
workflow_dispatch:
pull_request:
branches:
- develop
- releases/**
paths-ignore:
# Don't run if we only modified packages in the
# built-in repository or documentation
- 'var/spack/repos/builtin/**'
- '!var/spack/repos/builtin/packages/clingo-bootstrap/**'
- '!var/spack/repos/builtin/packages/python/**'
- '!var/spack/repos/builtin/packages/re2c/**'
- 'lib/spack/docs/**'
schedule:
# nightly at 2:16 AM
- cron: '16 2 * * *'
jobs:
fedora-clingo-sources:
runs-on: ubuntu-latest
container: "fedora:latest"
steps:
- name: Install dependencies
run: |
dnf install -y \
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@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
git fetch --unshallow
. .github/workflows/setup_git.sh
useradd spack-test
chown -R spack-test .
- name: Bootstrap clingo
shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
spack bootstrap untrust github-actions-v0.2
spack external find cmake bison
spack -d solve zlib
tree ~/.spack/bootstrap/store/
ubuntu-clingo-sources:
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 \
cmake bison
- name: Work around CVE-2022-24765
run: |
# Apparently Ubuntu patched git v2.25.1 with a security patch that introduces
# a breaking behavior. See:
# - https://github.blog/2022-04-12-git-security-vulnerability-announced/
# - https://github.com/actions/checkout/issues/760
# - http://changelogs.ubuntu.com/changelogs/pool/main/g/git/git_2.25.1-1ubuntu3.3/changelog
git config --global --add safe.directory /__w/spack/spack
- 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 bootstrap untrust github-actions-v0.2
spack external find cmake bison
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
- name: Work around CVE-2022-24765
run: |
# Apparently Ubuntu patched git v2.25.1 with a security patch that introduces
# a breaking behavior. See:
# - https://github.blog/2022-04-12-git-security-vulnerability-announced/
# - https://github.com/actions/checkout/issues/760
# - http://changelogs.ubuntu.com/changelogs/pool/main/g/git/git_2.25.1-1ubuntu3.3/changelog
git config --global --add safe.directory /__w/spack/spack
- 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: |
# 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@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
git fetch --unshallow
. .github/workflows/setup_git.sh
- name: Bootstrap clingo
run: |
source share/spack/setup-env.sh
spack bootstrap untrust github-actions-v0.2
spack external find cmake bison
spack -d solve zlib
tree ~/.spack/bootstrap/store/
macos-clingo-sources:
runs-on: macos-latest
steps:
- name: Install dependencies
run: |
brew install cmake bison@2.7 tree
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Bootstrap clingo
run: |
source share/spack/setup-env.sh
export PATH=/usr/local/opt/bison@2.7/bin:$PATH
spack bootstrap untrust github-actions-v0.2
spack external find --not-buildable cmake bison
spack -d solve zlib
tree ~/.spack/bootstrap/store/
macos-clingo-binaries:
runs-on: macos-latest
strategy:
matrix:
python-version: ['3.5', '3.6', '3.7', '3.8', '3.9', '3.10']
steps:
- name: Install dependencies
run: |
brew install tree
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Bootstrap clingo
run: |
source share/spack/setup-env.sh
spack bootstrap untrust spack-install
spack -d solve zlib
tree ~/.spack/bootstrap/store/
ubuntu-clingo-binaries:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9', '3.10']
steps:
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Setup repo and non-root user
run: |
git --version
git fetch --unshallow
. .github/workflows/setup_git.sh
- name: Bootstrap clingo
run: |
source share/spack/setup-env.sh
spack bootstrap untrust spack-install
spack -d solve zlib
tree ~/.spack/bootstrap/store/
ubuntu-gnupg-binaries:
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 patchelf gfortran git gzip \
make patch unzip xz-utils python3 python3-dev tree
- name: Work around CVE-2022-24765
run: |
# Apparently Ubuntu patched git v2.25.1 with a security patch that introduces
# a breaking behavior. See:
# - https://github.blog/2022-04-12-git-security-vulnerability-announced/
# - https://github.com/actions/checkout/issues/760
# - http://changelogs.ubuntu.com/changelogs/pool/main/g/git/git_2.25.1-1ubuntu3.3/changelog
git config --global --add safe.directory /__w/spack/spack
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- 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 GnuPG
shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
spack bootstrap untrust spack-install
spack -d gpg list
tree ~/.spack/bootstrap/store/
ubuntu-gnupg-sources:
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 patchelf gfortran git gzip \
make patch unzip xz-utils python3 python3-dev tree \
gawk
- name: Work around CVE-2022-24765
run: |
# Apparently Ubuntu patched git v2.25.1 with a security patch that introduces
# a breaking behavior. See:
# - https://github.blog/2022-04-12-git-security-vulnerability-announced/
# - https://github.com/actions/checkout/issues/760
# - http://changelogs.ubuntu.com/changelogs/pool/main/g/git/git_2.25.1-1ubuntu3.3/changelog
git config --global --add safe.directory /__w/spack/spack
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- 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 GnuPG
shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
spack solve zlib
spack bootstrap untrust github-actions-v0.2
spack -d gpg list
tree ~/.spack/bootstrap/store/
macos-gnupg-binaries:
runs-on: macos-latest
steps:
- name: Install dependencies
run: |
brew install tree
# Remove GnuPG since we want to bootstrap it
sudo rm -rf /usr/local/bin/gpg
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- name: Bootstrap GnuPG
run: |
source share/spack/setup-env.sh
spack bootstrap untrust spack-install
spack -d gpg list
tree ~/.spack/bootstrap/store/
macos-gnupg-sources:
runs-on: macos-latest
steps:
- name: Install dependencies
run: |
brew install gawk tree
# Remove GnuPG since we want to bootstrap it
sudo rm -rf /usr/local/bin/gpg
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846
- name: Bootstrap GnuPG
run: |
source share/spack/setup-env.sh
spack solve zlib
spack bootstrap untrust github-actions-v0.2
spack -d gpg list
tree ~/.spack/bootstrap/store/

115
.github/workflows/build-containers.yml vendored Normal file
View File

@@ -0,0 +1,115 @@
name: Containers
on:
# This Workflow can be triggered manually
workflow_dispatch:
# Build new Spack develop containers nightly.
schedule:
- cron: '34 0 * * *'
# Run on pull requests that modify this file
pull_request:
branches:
- develop
paths:
- '.github/workflows/build-containers.yml'
- 'share/spack/docker/*'
- 'share/templates/container/*'
- 'lib/spack/spack/container/*'
# Let's also build & tag Spack containers on releases.
release:
types: [published]
jobs:
deploy-images:
runs-on: ubuntu-latest
permissions:
packages: write
strategy:
# Even if one container fails to build we still want the others
# to continue their builds.
fail-fast: false
# A matrix of Dockerfile paths, associated tags, and which architectures
# they support.
matrix:
# Meaning of the various items in the matrix list
# 0: Container name (e.g. ubuntu-bionic)
# 1: Platforms to build for
# 2: Base image (e.g. ubuntu:18.04)
dockerfile: [[amazon-linux, 'linux/amd64,linux/arm64', 'amazonlinux:2'],
[centos7, 'linux/amd64,linux/arm64,linux/ppc64le', 'centos:7'],
[centos-stream, 'linux/amd64,linux/arm64,linux/ppc64le', 'centos:stream'],
[leap15, 'linux/amd64,linux/arm64,linux/ppc64le', 'opensuse/leap:15'],
[ubuntu-bionic, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:18.04'],
[ubuntu-focal, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:20.04'],
[ubuntu-jammy, 'linux/amd64,linux/arm64,linux/ppc64le', 'ubuntu:22.04']]
name: Build ${{ matrix.dockerfile[0] }}
steps:
- name: Checkout
uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Set Container Tag Normal (Nightly)
run: |
container="${{ matrix.dockerfile[0] }}:latest"
echo "container=${container}" >> $GITHUB_ENV
echo "versioned=${container}" >> $GITHUB_ENV
# On a new release create a container with the same tag as the release.
- name: Set Container Tag on Release
if: github.event_name == 'release'
run: |
versioned="${{matrix.dockerfile[0]}}:${GITHUB_REF##*/}"
echo "versioned=${versioned}" >> $GITHUB_ENV
- name: Generate the Dockerfile
env:
SPACK_YAML_OS: "${{ matrix.dockerfile[2] }}"
run: |
.github/workflows/generate_spack_yaml_containerize.sh
. share/spack/setup-env.sh
mkdir -p dockerfiles/${{ matrix.dockerfile[0] }}
spack containerize --last-stage=bootstrap | tee dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile
printf "Preparing to build ${{ env.container }} from dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile"
if [ ! -f "dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile" ]; then
printf "dockerfiles/${{ matrix.dockerfile[0] }}/Dockerfile does not exist"
exit 1;
fi
- name: Upload Dockerfile
uses: actions/upload-artifact@6673cd052c4cd6fcf4b4e6e60ea986c889389535
with:
name: dockerfiles
path: dockerfiles
- name: Set up QEMU
uses: docker/setup-qemu-action@27d0a4f181a40b142cce983c5393082c365d1480 # @v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@94ab11c41e45d028884a99163086648e898eed25 # @v1
- name: Log in to GitHub Container Registry
uses: docker/login-action@dd4fa0671be5250ee6f50aedf4cb05514abda2c7 # @v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to DockerHub
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[0] }}
uses: docker/build-push-action@ac9327eae2b366085ac7f6a2d02df8aa8ead720a # @v2
with:
context: dockerfiles/${{ matrix.dockerfile[0] }}
platforms: ${{ matrix.dockerfile[1] }}
push: ${{ github.event_name != 'pull_request' }}
cache-from: type=gha
cache-to: type=gha,mode=max
tags: |
spack/${{ env.container }}
spack/${{ env.versioned }}
ghcr.io/spack/${{ env.container }}
ghcr.io/spack/${{ env.versioned }}

View File

@@ -0,0 +1,7 @@
$ proc = Start-Process ${{ env.spack_installer }}\spack.exe "/install /quiet" -Passthru
$handle = $proc.Handle # cache proc.Handle
$proc.WaitForExit();
if ($proc.ExitCode -ne 0) {
Write-Warning "$_ exited with status code $($proc.ExitCode)"
}

View File

@@ -0,0 +1,9 @@
#!/bin/bash
(echo "spack:" \
&& echo " specs: []" \
&& echo " container:" \
&& echo " format: docker" \
&& echo " images:" \
&& echo " os: \"${SPACK_YAML_OS}\"" \
&& echo " spack:" \
&& echo " ref: ${GITHUB_REF}") > spack.yaml

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

@@ -1,77 +0,0 @@
name: linux builds
on:
push:
branches:
- develop
- releases/**
paths-ignore:
# Don't run if we only modified packages in the built-in repository
- 'var/spack/repos/builtin/**'
- '!var/spack/repos/builtin/packages/lz4/**'
- '!var/spack/repos/builtin/packages/mpich/**'
- '!var/spack/repos/builtin/packages/tut/**'
- '!var/spack/repos/builtin/packages/py-setuptools/**'
- '!var/spack/repos/builtin/packages/openjpeg/**'
- '!var/spack/repos/builtin/packages/r-rcpp/**'
- '!var/spack/repos/builtin/packages/ruby-rake/**'
# Don't run if we only modified documentation
- 'lib/spack/docs/**'
pull_request:
branches:
- develop
- releases/**
paths-ignore:
# Don't run if we only modified packages in the built-in repository
- 'var/spack/repos/builtin/**'
- '!var/spack/repos/builtin/packages/lz4/**'
- '!var/spack/repos/builtin/packages/mpich/**'
- '!var/spack/repos/builtin/packages/tut/**'
- '!var/spack/repos/builtin/packages/py-setuptools/**'
- '!var/spack/repos/builtin/packages/openjpeg/**'
- '!var/spack/repos/builtin/packages/r-rcpp/**'
- '!var/spack/repos/builtin/packages/ruby-rake/**'
# Don't run if we only modified documentation
- 'lib/spack/docs/**'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
package:
- lz4 # MakefilePackage
- mpich~fortran # AutotoolsPackage
- 'tut%gcc@:10.99.99' # WafPackage
- py-setuptools # PythonPackage
- openjpeg # CMakePackage
- r-rcpp # RPackage
- ruby-rake # RubyPackage
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2.1.6
with:
path: ~/.ccache
key: ccache-build-${{ matrix.package }}
restore-keys: |
ccache-build-${{ matrix.package }}
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install System Packages
run: |
sudo apt-get update
sudo apt-get -yqq install ccache gfortran perl perl-base r-base r-base-core r-base-dev ruby findutils openssl libssl-dev libpciaccess-dev
R --version
perl --version
ruby --version
- name: Copy Configuration
run: |
ccache -M 300M && ccache -z
# Set up external deps for build tests, b/c they take too long to compile
cp share/spack/qa/configuration/*.yaml etc/spack/
- name: Run the build test
run: |
. share/spack/setup-env.sh
SPEC=${{ matrix.package }} share/spack/qa/run-build-tests
ccache -s

View File

@@ -24,23 +24,23 @@ jobs:
name: gcc with clang
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @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@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @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@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: 3.9
- name: spack install
@@ -62,17 +62,3 @@ jobs:
spack install -v --fail-fast py-scipy %apple-clang
spack install -v --fail-fast py-matplotlib %apple-clang
spack install -v --fail-fast py-pandas %apple-clang
install_mpi4py_clang:
name: mpi4py, petsc4py
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: spack install
run: |
. .github/workflows/install_spack.sh
spack install -v --fail-fast py-mpi4py %apple-clang
spack install -v --fail-fast py-petsc4py %apple-clang

11
.github/workflows/setup_git.ps1 vendored Normal file
View File

@@ -0,0 +1,11 @@
# (c) 2021 Lawrence Livermore National Laboratory
Set-Location spack
git config --global user.email "spack@example.com"
git config --global user.name "Test User"
if ($(git branch --show-current) -ne "develop")
{
git branch develop origin/develop
}

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

@@ -0,0 +1,4 @@
param ($systemFolder, $shortcut)
$start = [System.Environment]::GetFolderPath("$systemFolder")
Invoke-Item "$start\Programs\Spack\$shortcut"

View File

@@ -15,31 +15,31 @@ jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: 3.9
python-version: '3.10'
- name: Install Python Packages
run: |
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@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: 3.9
python-version: '3.10'
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools flake8 isort>=4.3.5 mypy>=0.800 black types-six
pip install --upgrade pip six setuptools types-six
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
@@ -48,26 +48,6 @@ jobs:
- name: Run style tests
run: |
share/spack/qa/run-style-tests
# Build the documentation
documentation:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install System packages
run: |
sudo apt-get -y update
sudo apt-get install -y coreutils ninja-build graphviz
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools
pip install --upgrade -r lib/spack/docs/requirements.txt
- name: Build documentation
run: |
share/spack/qa/run-doc-tests
# Check which files have been updated by the PR
changes:
runs-on: ubuntu-latest
@@ -77,12 +57,12 @@ jobs:
packages: ${{ steps.filter.outputs.packages }}
with_coverage: ${{ steps.coverage.outputs.with_coverage }}
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
if: ${{ github.event_name == 'push' }}
with:
fetch-depth: 0
# For pull requests it's not necessary to checkout the code
- uses: dorny/paths-filter@v2
- uses: dorny/paths-filter@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
# See https://github.com/dorny/paths-filter/issues/56 for the syntax used below
@@ -112,17 +92,24 @@ jobs:
# Run unit tests with different configurations on linux
unittests:
needs: [ validate, style, documentation, changes ]
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
concretizer: ['original', 'clingo']
python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9', '3.10']
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@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install System packages
@@ -130,37 +117,32 @@ jobs:
sudo apt-get -y update
# Needed for unit tests
sudo apt-get -y install \
coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \
patchelf
# Needed for kcov
sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev
sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev
coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \
patchelf cmake bison libbison-dev kcov
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage
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.
git --version
. .github/workflows/setup_git.sh
- name: Install kcov for bash script coverage
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
KCOV_VERSION: 34
run: |
KCOV_ROOT=$(mktemp -d)
wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz
tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz
mkdir -p ${KCOV_ROOT}/build
cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd -
make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install
- name: Bootstrap clingo from sources
- name: Bootstrap clingo
if: ${{ matrix.concretizer == 'clingo' }}
env:
SPACK_PYTHON: python
run: |
. share/spack/setup-env.sh
spack external find --not-buildable cmake bison
spack bootstrap untrust spack-install
spack -v solve zlib
- name: Run unit tests (full suite with coverage)
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
@@ -180,48 +162,34 @@ jobs:
SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
run: |
share/spack/qa/run-unit-tests
- uses: codecov/codecov-action@v1
- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71 # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: unittests,linux,${{ matrix.concretizer }}
# Test shell integration
shell:
needs: [ validate, style, documentation, changes ]
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: 3.9
python-version: '3.10'
- name: Install System packages
run: |
sudo apt-get -y update
# Needed for shell tests
sudo apt-get install -y coreutils csh zsh tcsh fish dash bash
# Needed for kcov
sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev
sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev
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
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.
git --version
. .github/workflows/setup_git.sh
- name: Install kcov for bash script coverage
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
KCOV_VERSION: 38
run: |
KCOV_ROOT=$(mktemp -d)
wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz
tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz
mkdir -p ${KCOV_ROOT}/build
cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd -
make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install
- name: Run shell tests (without coverage)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
run: |
@@ -232,44 +200,15 @@ jobs:
COVERAGE: true
run: |
share/spack/qa/run-shell-tests
- uses: codecov/codecov-action@v1
- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71 # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: shelltests,linux
# Test for Python2.6 run on Centos 6
centos6:
needs: [ validate, style, documentation, 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
run: |
whoami && echo $HOME && cd $HOME
git clone https://github.com/spack/spack.git && cd spack
git fetch origin ${{ github.ref }}:test-branch
git checkout test-branch
share/spack/qa/run-unit-tests
- name: Run unit tests (only package tests)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
env:
HOME: /home/spack-test
ONLY_PACKAGES: true
run: |
whoami && echo $HOME && cd $HOME
git clone https://github.com/spack/spack.git && cd spack
git fetch origin ${{ github.ref }}:test-branch
git checkout test-branch
share/spack/qa/run-unit-tests
# Test RHEL8 UBI with platform Python. This job is run
# only on PRs modifying core Spack
rhel8-platform-python:
needs: [ validate, style, documentation, changes ]
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
container: registry.access.redhat.com/ubi8/ubi
@@ -279,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@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
- name: Setup repo and non-root user
run: |
git --version
@@ -291,42 +230,29 @@ jobs:
shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
spack -d solve zlib
spack unit-test -k 'not cvs and not svn and not hg' -x --verbose
# Test for the clingo based solver (using clingo-cffi)
clingo-cffi:
needs: [ validate, style, documentation, changes ]
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: 3.9
python-version: '3.10'
- name: Install System packages
run: |
sudo apt-get -y update
# Needed for unit tests
sudo apt-get -y install \
coreutils cvs gfortran graphviz gnupg2 mercurial ninja-build \
patchelf
# Needed for kcov
sudo apt-get -y install cmake binutils-dev libcurl4-openssl-dev
sudo apt-get -y install zlib1g-dev libdw-dev libiberty-dev
- name: Install kcov for bash script coverage
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
KCOV_VERSION: 34
run: |
KCOV_ROOT=$(mktemp -d)
wget --output-document=${KCOV_ROOT}/${KCOV_VERSION}.tar.gz https://github.com/SimonKagstrom/kcov/archive/v${KCOV_VERSION}.tar.gz
tar -C ${KCOV_ROOT} -xzvf ${KCOV_ROOT}/${KCOV_VERSION}.tar.gz
mkdir -p ${KCOV_ROOT}/build
cd ${KCOV_ROOT}/build && cmake -Wno-dev ${KCOV_ROOT}/kcov-${KCOV_VERSION} && cd -
make -C ${KCOV_ROOT}/build && sudo make -C ${KCOV_ROOT}/build install
patchelf kcov
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage 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.
@@ -348,48 +274,83 @@ jobs:
SPACK_TEST_SOLVER: clingo
run: |
share/spack/qa/run-unit-tests
- uses: codecov/codecov-action@v1
- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71 # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: unittests,linux,clingo
# Run unit tests on MacOS
build:
needs: [ validate, style, documentation, changes ]
needs: [ validate, style, changes ]
runs-on: macos-latest
strategy:
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@a12a3943b4bdde767164f792f33f40b04645d846 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools
pip install --upgrade codecov coverage
pip install --upgrade flake8 isort>=4.3.5 mypy>=0.800
pip install --upgrade pytest codecov coverage[toml]==6.2
- name: Setup Homebrew packages
run: |
brew install dash fish gcc gnupg2 kcov
- name: Run unit tests
env:
SPACK_TEST_SOLVER: clingo
run: |
git --version
. .github/workflows/setup_git.sh
. share/spack/setup-env.sh
$(which spack) bootstrap untrust spack-install
$(which spack) solve zlib
if [ "${{ needs.changes.outputs.with_coverage }}" == "true" ]
then
coverage run $(which spack) unit-test -x
coverage combine
coverage xml
# Delete the symlink going from ./lib/spack/docs/_spack_root back to
# the initial directory, since it causes ELOOP errors with codecov/actions@2
rm lib/spack/docs/_spack_root
else
echo "ONLY PACKAGE RECIPES CHANGED [skipping coverage]"
$(which spack) unit-test -x -m "not maybeslow" -k "package_sanity"
fi
- uses: codecov/codecov-action@v1
- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71 # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
file: ./coverage.xml
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@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6 # @v2
with:
python-version: '3.10'
- 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@e3c560433a6cc60aec8812599b7844a7b4fa0d71 # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: unittests,linux,audits

188
.github/workflows/windows_python.yml vendored Normal file
View File

@@ -0,0 +1,188 @@
name: windows tests
on:
push:
branches:
- develop
- releases/**
pull_request:
branches:
- develop
- releases/**
defaults:
run:
shell:
powershell Invoke-Expression -Command ".\share\spack\qa\windows_test_setup.ps1"; {0}
jobs:
validate:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python Packages
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade vermin
- name: vermin (Spack's Core)
run: vermin --backport argparse --backport typing -t='2.7-' -t='3.5-' -v spack/lib/spack/spack/ spack/lib/spack/llnl/ spack/bin/
- name: vermin (Repositories)
run: vermin --backport argparse --backport typing -t='2.7-' -t='3.5-' -v spack/var/spack/repos
# Run style checks on the files that have been changed
style:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python packages
run: |
python -m pip install --upgrade pip six setuptools flake8 isort>=4.3.5 mypy>=0.800 black pywin32 types-python-dateutil
- name: Create local develop
run: |
.\spack\.github\workflows\setup_git.ps1
- name: Run style tests
run: |
spack style
- name: Verify license headers
run: |
python spack\bin\spack license verify
unittest:
needs: [ validate, style ]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python packages
run: |
python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
- name: Create local develop
run: |
.\spack\.github\workflows\setup_git.ps1
- name: Unit Test
run: |
echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
spack unit-test --verbose --ignore=lib/spack/spack/test/cmd
unittest-cmd:
needs: [ validate, style ]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python packages
run: |
python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
- name: Create local develop
run: |
.\spack\.github\workflows\setup_git.ps1
- name: Command Unit Test
run: |
echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
spack unit-test lib/spack/spack/test/cmd --verbose
buildtest:
needs: [ validate, style ]
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python packages
run: |
python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
- name: Build Test
run: |
spack compiler find
echo F|xcopy .\spack\share\spack\qa\configuration\windows_config.yaml $env:USERPROFILE\.spack\windows\config.yaml
spack external find cmake
spack external find ninja
spack install abseil-cpp
generate-installer-test:
needs: [ validate, style ]
runs-on: windows-latest
steps:
- name: Disable Windows Symlinks
run: |
git config --global core.symlinks false
shell:
powershell
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python packages
run: |
python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
- name: Add Light and Candle to Path
run: |
$env:WIX >> $GITHUB_PATH
- name: Run Installer
run: |
.\spack\share\spack\qa\setup_spack.ps1
spack make-installer -s spack -g SILENT pkg
echo "installer_root=$((pwd).Path)" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
env:
ProgressPreference: SilentlyContinue
- uses: actions/upload-artifact@v3
with:
name: Windows Spack Installer Bundle
path: ${{ env.installer_root }}\pkg\Spack.exe
- uses: actions/upload-artifact@v3
with:
name: Windows Spack Installer
path: ${{ env.installer_root}}\pkg\Spack.msi
execute-installer:
needs: generate-installer-test
runs-on: windows-latest
defaults:
run:
shell: pwsh
steps:
- uses: actions/setup-python@98f2ad02fd48d057ee3b4d4f66525b231c3e52b6
with:
python-version: 3.9
- name: Install Python packages
run: |
python -m pip install --upgrade pip six pywin32 setuptools codecov coverage
- name: Setup installer directory
run: |
mkdir -p spack_installer
echo "spack_installer=$((pwd).Path)\spack_installer" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append
- uses: actions/download-artifact@v3
with:
name: Windows Spack Installer Bundle
path: ${{ env.spack_installer }}
- name: Execute Bundled Installer
run: |
$proc = Start-Process ${{ env.spack_installer }}\spack.exe "/install /quiet" -Passthru
$handle = $proc.Handle # cache proc.Handle
$proc.WaitForExit();
$LASTEXITCODE
env:
ProgressPreference: SilentlyContinue
- uses: actions/download-artifact@v3
with:
name: Windows Spack Installer
path: ${{ env.spack_installer }}
- name: Execute MSI
run: |
$proc = Start-Process ${{ env.spack_installer }}\spack.msi "/quiet" -Passthru
$handle = $proc.Handle # cache proc.Handle
$proc.WaitForExit();
$LASTEXITCODE

4
.gitignore vendored
View File

@@ -136,6 +136,7 @@ venv/
ENV/
env.bak/
venv.bak/
!/lib/spack/env
# Spyder project settings
.spyderproject
@@ -209,6 +210,9 @@ tramp
/eshell/history
/eshell/lastdir
# zsh byte-compiled files
*.zwc
# elpa packages
/elpa/

View File

@@ -1,35 +0,0 @@
[mypy]
python_version = 3.7
files=lib/spack/llnl/**/*.py,lib/spack/spack/**/*.py
mypy_path=bin,lib/spack,lib/spack/external,var/spack/repos/builtin
# This and a generated import file allows supporting packages
namespace_packages=True
# To avoid re-factoring all the externals, ignore errors and missing imports
# globally, then turn back on in spack and spack submodules
ignore_errors=True
ignore_missing_imports=True
[mypy-spack.*]
ignore_errors=False
ignore_missing_imports=False
[mypy-packages.*]
ignore_errors=False
ignore_missing_imports=False
[mypy-llnl.*]
ignore_errors=False
ignore_missing_imports=False
[mypy-spack.test.packages]
ignore_errors=True
# ignore errors in fake import path for packages
[mypy-spack.pkg.*]
ignore_errors=True
ignore_missing_imports=True
# jinja has syntax in it that requires python3 and causes a parse error
# skip importing it
[mypy-jinja2]
follow_imports=skip

View File

@@ -2,6 +2,7 @@ version: 2
sphinx:
configuration: lib/spack/docs/conf.py
fail_on_warning: true
python:
version: 3.7

View File

@@ -1,3 +1,228 @@
# v0.17.2 (2022-04-13)
### Spack bugfixes
* Fix --reuse with upstreams set in an environment (#29680)
* config add: fix parsing of validator error to infer type from oneOf (#29475)
* Fix spack -C command_line_scope used in conjunction with other flags (#28418)
* Use Spec.constrain to construct spec lists for stacks (#28783)
* Fix bug occurring when searching for inherited patches in packages (#29574)
* Fixed a few bugs when manipulating symlinks (#28318, #29515, #29636)
* Fixed a few minor bugs affecting command prompt, terminal title and argument completion (#28279, #28278, #28939, #29405, #29070, #29402)
* Fixed a few bugs affecting the spack ci command (#29518, #29419)
* Fix handling of Intel compiler environment (#29439)
* Fix a few edge cases when reindexing the DB (#28764)
* Remove "Known issues" from documentation (#29664)
* Other miscellaneous bugfixes (0b72e070583fc5bcd016f5adc8a84c99f2b7805f, #28403, #29261)
# 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.
## Major features in this release
1. **New concretizer is now default**
The new concretizer introduced as an experimental feature in `v0.16.0`
is now the default (#25502). The new concretizer is based on the
[clingo](https://github.com/potassco/clingo) logic programming system,
and it enables us to do much higher quality and faster dependency solving
The old concretizer is still available via the `concretizer: original`
setting, but it is deprecated and will be removed in `v0.18.0`.
2. **Binary Bootstrapping**
To make it easier to use the new concretizer and binary packages,
Spack now bootstraps `clingo` and `GnuPG` from public binaries. If it
is not able to bootstrap them from binaries, it installs them from
source code. With these changes, you should still be able to clone Spack
and start using it almost immediately. (#21446, #22354, #22489, #22606,
#22720, #22720, #23677, #23946, #24003, #25138, #25607, #25964, #26029,
#26399, #26599).
3. **Reuse existing packages (experimental)**
The most wanted feature from our
[2020 user survey](https://spack.io/spack-user-survey-2020/) and
the most wanted Spack feature of all time (#25310). `spack install`,
`spack spec`, and `spack concretize` now have a `--reuse` option, which
causes Spack to minimize the number of rebuilds it does. The `--reuse`
option will try to find existing installations and binary packages locally
and in registered mirrors, and will prefer to use them over building new
versions. This will allow users to build from source *far* less than in
prior versions of Spack. This feature will continue to be improved, with
configuration options and better CLI expected in `v0.17.1`. It will become
the *default* concretization mode in `v0.18.0`.
4. **Better error messages**
We have improved the error messages generated by the new concretizer by
using *unsatisfiable cores*. Spack will now print a summary of the types
of constraints that were violated to make a spec unsatisfiable (#26719).
5. **Conditional variants**
Variants can now have a `when="<spec>"` clause, allowing them to be
conditional based on the version or other attributes of a package (#24858).
6. **Git commit versions**
In an environment and on the command-line, you can now provide a full,
40-character git commit as a version for any package with a top-level
`git` URL. e.g., `spack install hdf5@45bb27f58240a8da7ebb4efc821a1a964d7712a8`.
Spack will compare the commit to tags in the git repository to understand
what versions it is ahead of or behind.
7. **Override local config and cache directories**
You can now set `SPACK_DISABLE_LOCAL_CONFIG` to disable the `~/.spack` and
`/etc/spack` configuration scopes. `SPACK_USER_CACHE_PATH` allows you to
move caches out of `~/.spack`, as well (#27022, #26735). This addresses
common problems where users could not isolate CI environments from local
configuration.
8. **Improvements to Spack Containerize**
For added reproducibility, you can now pin the Spack version used by
`spack containerize` (#21910). The container build will only build
with the Spack version pinned at build recipe creation instead of the
latest Spack version.
9. **New commands for dealing with tags**
The `spack tags` command allows you to list tags on packages (#26136), and you
can list tests and filter tags with `spack test list` (#26842).
## Other new features of note
* Copy and relocate environment views as stand-alone installations (#24832)
* `spack diff` command can diff two installed specs (#22283, #25169)
* `spack -c <config>` can set one-off config parameters on CLI (#22251)
* `spack load --list` is an alias for `spack find --loaded` (#27184)
* `spack gpg` can export private key with `--secret` (#22557)
* `spack style` automatically bootstraps dependencies (#24819)
* `spack style --fix` automatically invokes `isort` (#24071)
* build dependencies can be installed from build caches with `--include-build-deps` (#19955)
* `spack audit` command for checking package constraints (#23053)
* Spack can now fetch from `CVS` repositories (yep, really) (#23212)
* `spack monitor` lets you upload analysis about installations to a
[spack monitor server](https://github.com/spack/spack-monitor) (#23804, #24321,
#23777, #25928))
* `spack python --path` shows which `python` Spack is using (#22006)
* `spack env activate --temp` can create temporary environments (#25388)
* `--preferred` and `--latest` options for `spack checksum` (#25830)
* `cc` is now pure posix and runs on Alpine (#26259)
* `SPACK_PYTHON` environment variable sets which `python` spack uses (#21222)
* `SPACK_SKIP_MODULES` lets you source `setup-env.sh` faster if you don't need modules (#24545)
## Major internal refactors
* `spec.yaml` files are now `spec.json`, yielding a large speed improvement (#22845)
* Splicing allows Spack specs to store mixed build provenance (#20262)
* More extensive hooks API for installations (#21930)
* New internal API for getting the active environment (#25439)
## Performance Improvements
* Parallelize separate concretization in environments; Previously 55 min E4S solve
now takes 2.5 min (#26264)
* Drastically improve YamlFilesystemView file removal performance via batching (#24355)
* Speed up spec comparison (#21618)
* Speed up environment activation (#25633)
## Archspec improvements
* support for new generic `x86_64_v2`, `x86_64_v3`, `x86_64_v4` targets
(see [archspec#31](https://github.com/archspec/archspec-json/pull/31))
* `spack arch --generic` lets you get the best generic architecture for
your node (#27061)
* added support for aocc (#20124), `arm` compiler on `graviton2` (#24904)
and on `a64fx` (#24524),
## Infrastructure, buildcaches, and services
* Add support for GCS Bucket Mirrors (#26382)
* Add `spackbot` to help package maintainers with notifications. See
[spack.github.io/spackbot](https://spack.github.io/spackbot/)
* Reproducible pipeline builds with `spack ci rebuild` (#22887)
* Removed redundant concretizations from GitLab pipeline generation (#26622)
* Spack CI no longer generates jobs for unbuilt specs (#20435)
* Every pull request pipeline has its own buildcache (#25529)
* `--no-add` installs only specified specs and only if already present in… (#22657)
* Add environment-aware `spack buildcache sync` command (#25470)
* Binary cache installation speedups and improvements (#19690, #20768)
## Deprecations and Removals
* `spack setup` was deprecated in v0.16.0, and has now been removed.
Use `spack develop` and `spack dev-build`.
* Remove unused `--dependencies` flag from `spack load` (#25731)
* Remove stubs for `spack module [refresh|find|rm|loads]`, all of which
were deprecated in 2018.
## Notable Bugfixes
* Deactivate previous env before activating new one (#25409)
* Many fixes to error codes from `spack install` (#21319, #27012, #25314)
* config add: infer type based on JSON schema validation errors (#27035)
* `spack config edit` now works even if `spack.yaml` is broken (#24689)
## Packages
* Allow non-empty version ranges like `1.1.0:1.1` (#26402)
* Remove `.99`'s from many version ranges (#26422)
* Python: use platform-specific site packages dir (#25998)
* `CachedCMakePackage` for using *.cmake initial config files (#19316)
* `lua-lang` allows swapping `lua` and `luajit` (#22492)
* Better support for `ld.gold` and `ld.lld` (#25626)
* build times are now stored as metadata in `$prefix/.spack` (#21179)
* post-install tests can be reused in smoke tests (#20298)
* Packages can use `pypi` attribute to infer `homepage`/`url`/`list_url` (#17587)
* Use gnuconfig package for `config.guess` file replacement (#26035)
* patches: make re-applied patches idempotent (#26784)
## Spack community stats
* 5969 total packages, 920 new since `v0.16.0`
* 358 new Python packages, 175 new R packages
* 513 people contributed to this release
* 490 committers to packages
* 105 committers to core
* Lots of GPU updates:
* ~77 CUDA-related commits
* ~66 AMD-related updates
* ~27 OneAPI-related commits
* 30 commits from AMD toolchain support
* `spack test` usage in packages is increasing
* 1669 packages with tests (mostly generic python tests)
* 93 packages with their own tests
# v0.16.3 (2021-09-21)
* clang/llvm: fix version detection (#19978)
* Fix use of quotes in Python build system (#22279)
* Cray: fix extracting paths from module files (#23472)
* Use AWS CloudFront for source mirror (#23978)
* Ensure all roots of an installed environment are marked explicit in db (#24277)
* Fix fetching for Python 3.8 and 3.9 (#24686)
* locks: only open lockfiles once instead of for every lock held (#24794)
* Remove the EOL centos:6 docker image
# v0.16.2 (2021-05-22)
* Major performance improvement for `spack load` and other commands. (#23661)

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

@@ -1,9 +1,10 @@
# <img src="https://cdn.rawgit.com/spack/spack/develop/share/spack/logo/spack-logo.svg" width="64" valign="middle" alt="Spack"/> Spack
[![Unit Tests](https://github.com/spack/spack/workflows/linux%20tests/badge.svg)](https://github.com/spack/spack/actions)
[![Linux Builds](https://github.com/spack/spack/workflows/linux%20builds/badge.svg)](https://github.com/spack/spack/actions)
[![Bootstrapping](https://github.com/spack/spack/actions/workflows/bootstrap.yml/badge.svg)](https://github.com/spack/spack/actions/workflows/bootstrap.yml)
[![macOS Builds (nightly)](https://github.com/spack/spack/workflows/macOS%20builds%20nightly/badge.svg?branch=develop)](https://github.com/spack/spack/actions?query=workflow%3A%22macOS+builds+nightly%22)
[![codecov](https://codecov.io/gh/spack/spack/branch/develop/graph/badge.svg)](https://codecov.io/gh/spack/spack)
[![Containers](https://github.com/spack/spack/actions/workflows/build-containers.yml/badge.svg)](https://github.com/spack/spack/actions/workflows/build-containers.yml)
[![Read the Docs](https://readthedocs.org/projects/spack/badge/?version=latest)](https://spack.readthedocs.io)
[![Slack](https://slack.spack.io/badge.svg)](https://slack.spack.io)
@@ -26,7 +27,7 @@ for examples and highlights.
To install spack and your first package, make sure you have Python.
Then:
$ git clone https://github.com/spack/spack.git
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install zlib
@@ -36,6 +37,8 @@ Documentation
[**Full documentation**](https://spack.readthedocs.io/) is available, or
run `spack help` or `spack help --all`.
For a cheat sheet on Spack syntax, run `spack help --spec`.
Tutorial
----------------
@@ -122,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
----------------

25
SECURITY.md Normal file
View File

@@ -0,0 +1,25 @@
# Security Policy
## Supported Versions
We provide security updates for the following releases.
For more on Spack's release structure, see
[`README.md`](https://github.com/spack/spack#releases).
| Version | Supported |
| ------- | ------------------ |
| develop | :white_check_mark: |
| 0.17.x | :white_check_mark: |
| 0.16.x | :white_check_mark: |
## Reporting a Vulnerability
To report a vulnerability or other security
issue, email maintainers@spack.io.
You can expect to hear back within two days.
If your security issue is accepted, we will do
our best to release a fix within a week. If
fixing the issue will take longer than this,
we will discuss timeline options with you.

20
bin/haspywin.py Normal file
View File

@@ -0,0 +1,20 @@
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import subprocess
import sys
def getpywin():
try:
import win32con # noqa
except ImportError:
subprocess.check_call(
[sys.executable, "-m", "pip", "-q", "install", "--upgrade", "pip"])
subprocess.check_call(
[sys.executable, "-m", "pip", "-q", "install", "pywin32"])
if __name__ == '__main__':
getpywin()

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)
@@ -28,15 +28,16 @@ exit 1
from __future__ import print_function
import os
import os.path
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)
@@ -53,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)
@@ -70,6 +69,28 @@ if "ruamel.yaml" in sys.modules:
if "ruamel" in sys.modules:
del sys.modules["ruamel"]
# The following code is here to avoid failures when updating
# the develop version, due to spurious argparse.pyc files remaining
# in the libs/spack/external directory, see:
# https://github.com/spack/spack/pull/25376
# TODO: Remove in v0.18.0 or later
try:
import argparse
except ImportError:
argparse_pyc = os.path.join(spack_external_libs, 'argparse.pyc')
if not os.path.exists(argparse_pyc):
raise
try:
os.remove(argparse_pyc)
import argparse # noqa
except Exception:
msg = ('The file\n\n\t{0}\n\nis corrupted and cannot be deleted by Spack. '
'Either delete it manually or ask some administrator to '
'delete it for you.')
print(msg.format(argparse_pyc))
sys.exit(1)
import spack.main # noqa
# Once we've set up the system path, run the spack main method

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)

223
bin/spack.bat Normal file
View File

@@ -0,0 +1,223 @@
:: Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
:: Spack Project Developers. See the top-level COPYRIGHT file for details.
::
:: SPDX-License-Identifier: (Apache-2.0 OR MIT)
::#######################################################################
::
:: This file is part of Spack and sets up the spack environment for batch,
:: This includes environment modules and lmod support,
:: and it also puts spack in your path. The script also checks that at least
:: module support exists, and provides suggestions if it doesn't. Source
:: it like this:
::
:: . /path/to/spack/install/spack_cmd.bat
::
@echo off
set spack=%SPACK_ROOT%\bin\spack
::#######################################################################
:: This is a wrapper around the spack command that forwards calls to
:: 'spack load' and 'spack unload' to shell functions. This in turn
:: allows them to be used to invoke environment modules functions.
::
:: 'spack load' is smarter than just 'load' because it converts its
:: arguments into a unique Spack spec that is then passed to module
:: commands. This allows the user to use packages without knowing all
:: their installation details.
::
:: e.g., rather than requiring a full spec for libelf, the user can type:
::
:: spack load libelf
::
:: This will first find the available libelf module file and use a
:: matching one. If there are two versions of libelf, the user would
:: need to be more specific, e.g.:
::
:: spack load libelf@0.8.13
::
:: This is very similar to how regular spack commands work and it
:: avoids the need to come up with a user-friendly naming scheme for
:: spack module files.
::#######################################################################
:_sp_shell_wrapper
set "_sp_flags="
set "_sp_args="
set "_sp_subcommand="
setlocal enabledelayedexpansion
:: commands have the form '[flags] [subcommand] [args]'
:: flags will always start with '-', e.g. --help or -V
:: subcommands will never start with '-'
:: everything after the subcommand is an arg
for %%x in (%*) do (
set t="%%~x"
if "!t:~0,1!" == "-" (
if defined _sp_subcommand (
:: We already have a subcommand, processing args now
set "_sp_args=!_sp_args! !t!"
) else (
set "_sp_flags=!_sp_flags! !t!"
shift
)
) else if not defined _sp_subcommand (
set "_sp_subcommand=!t!"
shift
) else (
set "_sp_args=!_sp_args! !t!"
shift
)
)
:: --help, -h and -V flags don't require further output parsing.
:: If we encounter, execute and exit
if defined _sp_flags (
if NOT "%_sp_flags%"=="%_sp_flags:-h=%" (
python "%spack%" %_sp_flags%
exit /B 0
) else if NOT "%_sp_flags%"=="%_sp_flags:--help=%" (
python "%spack%" %_sp_flags%
exit /B 0
) else if NOT "%_sp_flags%"=="%_sp_flags:-V=%" (
python "%spack%" %_sp_flags%
exit /B 0
)
)
:: pass parsed variables outside of local scope. Need to do
:: this because delayedexpansion can only be set by setlocal
echo %_sp_flags%>flags
echo %_sp_args%>args
echo %_sp_subcommand%>subcmd
endlocal
set /p _sp_subcommand=<subcmd
set /p _sp_flags=<flags
set /p _sp_args=<args
set str_subcommand=%_sp_subcommand:"='%
set str_flags=%_sp_flags:"='%
set str_args=%_sp_args:"='%
if "%str_subcommand%"=="ECHO is off." (set "_sp_subcommand=")
if "%str_flags%"=="ECHO is off." (set "_sp_flags=")
if "%str_args%"=="ECHO is off." (set "_sp_args=")
del subcmd
del flags
del args
:: Filter out some commands. For any others, just run the command.
if "%_sp_subcommand%" == "cd" (
goto :case_cd
) else if "%_sp_subcommand%" == "env" (
goto :case_env
) else if "%_sp_subcommand%" == "load" (
goto :case_load
) else if "%_sp_subcommand%" == "unload" (
goto :case_load
) else (
goto :default_case
)
::#######################################################################
:case_cd
:: Check for --help or -h
:: TODO: This is not exactly the same as setup-env.
:: In setup-env, '--help' or '-h' must follow the cd
:: Here, they may be anywhere in the args
if defined _sp_args (
if NOT "%_sp_args%"=="%_sp_args:--help=%" (
python "%spack%" cd -h
goto :end_switch
) else if NOT "%_sp_args%"=="%_sp_args:-h=%" (
python "%spack%" cd -h
goto :end_switch
)
)
for /F "tokens=* USEBACKQ" %%F in (
`python "%spack%" location %_sp_args%`) do (
set "LOC=%%F"
)
for %%Z in ("%LOC%") do if EXIST %%~sZ\NUL (cd /d "%LOC%")
goto :end_switch
:case_env
:: If no args or args contain --bat or -h/--help: just execute.
if NOT defined _sp_args (
goto :default_case
)else if NOT "%_sp_args%"=="%_sp_args:--help=%" (
goto :default_case
) else if NOT "%_sp_args%"=="%_sp_args: -h=%" (
goto :default_case
) else if NOT "%_sp_args%"=="%_sp_args:--bat=%" (
goto :default_case
) else if NOT "%_sp_args%"=="%_sp_args:deactivate=%" (
for /f "tokens=* USEBACKQ" %%I in (
`call python "%spack%" %_sp_flags% env deactivate --bat %_sp_args:deactivate=%`
) do %%I
) else if NOT "%_sp_args%"=="%_sp_args:activate=%" (
for /f "tokens=* USEBACKQ" %%I in (
`call python "%spack%" %_sp_flags% env activate --bat %_sp_args:activate=%`
) do %%I
) else (
goto :default_case
)
goto :end_switch
:case_load
:: If args contain --sh, --csh, or -h/--help: just execute.
if defined _sp_args (
if NOT "%_sp_args%"=="%_sp_args:--help=%" (
goto :default_case
) else if NOT "%_sp_args%"=="%_sp_args: -h=%" (
goto :default_case
) else if NOT "%_sp_args%"=="%_sp_args:--bat=%" (
goto :default_case
)
)
for /f "tokens=* USEBACKQ" %%I in (
`python "%spack%" %_sp_flags% %_sp_subcommand% --bat %_sp_args%`) do %%I
)
goto :end_switch
:case_unload
goto :case_load
:default_case
python "%spack%" %_sp_flags% %_sp_subcommand% %_sp_args%
goto :end_switch
:end_switch
exit /B %ERRORLEVEL%
::########################################################################
:: Prepends directories to path, if they exist.
:: pathadd /path/to/dir # add to PATH
:: or pathadd OTHERPATH /path/to/dir # add to OTHERPATH
::########################################################################
:_spack_pathadd
set "_pa_varname=PATH"
set "_pa_new_path=%~1"
if NOT "%~2" == "" (
set "_pa_varname=%~1"
set "_pa_new_path=%~2"
)
set "_pa_oldvalue=%_pa_varname%"
for %%Z in ("%_pa_new_path%") do if EXIST %%~sZ\NUL (
if defined %_pa_oldvalue% (
set "_pa_varname=%_pa_new_path%:%_pa_oldvalue%"
) else (
set "_pa_varname=%_pa_new_path%"
)
)
exit /b 0
:: set module system roots
:_sp_multi_pathadd
for %%I in (%~2) do (
for %%Z in (%_sp_compatible_sys_types%) do (
:pathadd "%~1" "%%I\%%Z"
)
)
exit /B %ERRORLEVEL%

72
bin/spack_cmd.bat Normal file
View File

@@ -0,0 +1,72 @@
@ECHO OFF
setlocal EnableDelayedExpansion
:: (c) 2021 Lawrence Livermore National Laboratory
:: To use this file independently of Spack's installer, execute this script in its directory, or add the
:: associated bin directory to your PATH. Invoke to launch Spack Shell.
::
:: source_dir/spack/bin/spack_cmd.bat
::
pushd %~dp0..
set SPACK_ROOT=%CD%
pushd %CD%\..
set spackinstdir=%CD%
popd
:: Check if Python is on the PATH
if not defined python_pf_ver (
(for /f "delims=" %%F in ('where python.exe') do (
set "python_pf_ver=%%F"
goto :found_python
) ) 2> NUL
)
:found_python
if not defined python_pf_ver (
:: If not, look for Python from the Spack installer
:get_builtin
(for /f "tokens=*" %%g in ('dir /b /a:d "!spackinstdir!\Python*"') do (
set "python_ver=%%g")) 2> NUL
if not defined python_ver (
echo Python was not found on your system.
echo Please install Python or add Python to your PATH.
) else (
set "py_path=!spackinstdir!\!python_ver!"
set "py_exe=!py_path!\python.exe"
)
goto :exitpoint
) else (
:: Python is already on the path
set "py_exe=!python_pf_ver!"
(for /F "tokens=* USEBACKQ" %%F in (
`"!py_exe!" --version`) do (set "output=%%F")) 2>NUL
if not "!output:Microsoft Store=!"=="!output!" goto :get_builtin
goto :exitpoint
)
:exitpoint
set "PATH=%SPACK_ROOT%\bin\;%PATH%"
if defined py_path (
set "PATH=%py_path%;%PATH%"
)
if defined py_exe (
"%py_exe%" "%SPACK_ROOT%\bin\haspywin.py"
"%py_exe%" "%SPACK_ROOT%\bin\spack" external find python >NUL
)
set "EDITOR=notepad"
DOSKEY spacktivate=spack env activate $*
@echo **********************************************************************
@echo ** Spack Package Manager
@echo **********************************************************************
IF "%1"=="" GOTO CONTINUE
set
GOTO:EOF
:continue
set PROMPT=[spack] %PROMPT%
%comspec% /k

10
bin/spack_pwsh.ps1 Normal file
View File

@@ -0,0 +1,10 @@
# 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)
$Env:SPACK_PS1_PATH="$PSScriptRoot\..\share\spack\setup-env.ps1"
& (Get-Process -Id $pid).Path -NoExit {
. $Env:SPACK_PS1_PATH ;
Push-Location $ENV:SPACK_ROOT
}

View File

@@ -0,0 +1,41 @@
bootstrap:
# If set to false Spack will not bootstrap missing software,
# but will instead raise an error.
enable: true
# Root directory for bootstrapping work. The software bootstrapped
# by Spack is installed in a "store" subfolder of this root directory
root: $user_cache_path/bootstrap
# Methods that can be used to bootstrap software. Each method may or
# may not be able to bootstrap all of the software that Spack needs,
# depending on its type.
sources:
- name: 'github-actions-v0.2'
type: buildcache
description: |
Buildcache generated from a public workflow using Github Actions.
The sha256 checksum of binaries is checked before installation.
info:
url: https://mirror.spack.io/bootstrap/github-actions/v0.2
homepage: https://github.com/spack/spack-bootstrap-mirrors
releases: https://github.com/spack/spack-bootstrap-mirrors/releases
- name: 'github-actions-v0.1'
type: buildcache
description: |
Buildcache generated from a public workflow using Github Actions.
The sha256 checksum of binaries is checked before installation.
info:
url: https://mirror.spack.io/bootstrap/github-actions/v0.1
homepage: https://github.com/spack/spack-bootstrap-mirrors
releases: https://github.com/spack/spack-bootstrap-mirrors/releases
# This method is just Spack bootstrapping the software it needs from sources.
# It has been added here so that users can selectively disable bootstrapping
# from sources by "untrusting" it.
- name: spack-install
type: install
description: |
Specs built from sources by Spack. May take a long time.
trusted:
# By default we trust bootstrapping from sources and from binaries
# produced on Github via the workflow
github-actions-v0.2: true
spack-install: true

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

@@ -42,8 +42,8 @@ config:
# (i.e., ``$TMP` or ``$TMPDIR``).
#
# Another option that prevents conflicts and potential permission issues is
# to specify `~/.spack/stage`, which ensures each user builds in their home
# directory.
# to specify `$user_cache_path/stage`, which ensures each user builds in their
# home directory.
#
# A more traditional path uses the value of `$spack/var/spack/stage`, which
# builds directly inside Spack's instance without staging them in a
@@ -60,13 +60,13 @@ config:
# identifies Spack staging to avoid accidentally wiping out non-Spack work.
build_stage:
- $tempdir/$user/spack-stage
- ~/.spack/stage
- $user_cache_path/stage
# - $spack/var/spack/stage
# Directory in which to run tests and store test results.
# Tests will be stored in directories named by date/time and package
# name/hash.
test_stage: ~/.spack/test
test_stage: $user_cache_path/test
# Cache directory for already downloaded source tarballs and archived
# repositories. This can be purged with `spack clean --downloads`.
@@ -75,7 +75,7 @@ config:
# Cache directory for miscellaneous files, like the package index.
# This can be purged with `spack clean --misc-cache`
misc_cache: ~/.spack/cache
misc_cache: $user_cache_path/cache
# Timeout in seconds used for downloading sources etc. This only applies
@@ -134,6 +134,10 @@ config:
# enabling locks.
locks: true
# The default url fetch method to use.
# If set to 'curl', Spack will require curl on the user's system
# If set to 'urllib', Spack will use python built-in libs to fetch
url_fetch_method: urllib
# The maximum number of jobs to use for the build system (e.g. `make`), when
# the -j flag is not given on the command line. Defaults to 16 when not set.
@@ -151,16 +155,18 @@ config:
# The concretization algorithm to use in Spack. Options are:
#
# '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.
# sufficiently for many specs. This will soon be deprecated in
# favor of clingo.
#
# 'clingo': Uses a logic solver under the hood to solve DAGs with full
# backtracking and optimization for user preferences.
#
# 'clingo' currently requires the clingo ASP solver to be installed and
# built with python bindings. 'original' is built in.
concretizer: original
# See `concretizer.yaml` for more settings you can fine-tune when
# using clingo.
concretizer: clingo
# How long to wait to lock the Spack installation database. This lock is used
@@ -187,3 +193,8 @@ config:
# Set to 'false' to allow installation on filesystems that doesn't allow setgid bit
# manipulation by unprivileged user (e.g. AFS)
allow_sgid: true
# Whether to set the terminal title to display status information during
# building and installing packages. This gives information about Spack's
# current progress as well as the current and total number of packages.
terminal_title: false

View File

@@ -35,18 +35,21 @@ modules:
# These are configurations for the module set named "default"
default:
# These values are defaulted in the code. They are not defaulted here so
# that we can enable backwards compatibility with the old syntax more
# easily (old value is in the config yaml, config:module_roots)
# Where to install modules
# roots:
# tcl: $spack/share/spack/modules
# lmod: $spack/share/spack/lmod
roots:
tcl: $spack/share/spack/modules
lmod: $spack/share/spack/lmod
# What type of modules to use
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]
@@ -43,6 +44,7 @@ packages:
opencl: [pocl]
onedal: [intel-oneapi-dal]
osmesa: [mesa+osmesa, mesa18+osmesa]
pbs: [openpbs, torque]
pil: [py-pillow]
pkgconfig: [pkgconf, pkg-config]
rpc: [libtirpc]

View File

@@ -0,0 +1,5 @@
config:
locks: false
concretizer: original
build_stage::
- '$spack/.staging'

View File

@@ -2,7 +2,7 @@
#
# You can set these variables from the command line.
SPHINXOPTS = -W
SPHINXOPTS = -W --keep-going
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build

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)
@@ -31,13 +31,13 @@ colorized output with a flag
.. code-block:: console
$ spack --color always | less -R
$ spack --color always find | less -R
or an environment variable
.. code-block:: console
$ SPACK_COLOR=always spack | less -R
$ SPACK_COLOR=always spack find | less -R
--------------------------
Listing available packages
@@ -188,6 +188,37 @@ configuration a **spec**. In the commands above, ``mpileaks`` and
``mpileaks@3.0.4`` are both valid *specs*. We'll talk more about how
you can use them to customize an installation in :ref:`sec-specs`.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Reusing installed dependencies
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. warning::
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
its dependencies. This gets you the latest versions and configurations,
but it can result in unwanted rebuilds if you update Spack frequently.
If you want Spack to try hard to reuse existing installations as dependencies,
you can add the ``--reuse`` option:
.. code-block:: console
$ spack install --reuse mpich
This will not do anything if ``mpich`` is already installed. If ``mpich``
is not installed, but dependencies like ``hwloc`` and ``libfabric`` are,
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:
^^^^^^^^^^^^^^^^^^^
@@ -695,6 +726,136 @@ structured the way you want:
}
^^^^^^^^^^^^^^
``spack diff``
^^^^^^^^^^^^^^
It's often the case that you have two versions of a spec that you need to
disambiguate. Let's say that we've installed two variants of zlib, one with
and one without the optimize variant:
.. code-block:: console
$ spack install zlib
$ spack install zlib -optimize
When we do ``spack find`` we see the two versions.
.. code-block:: console
$ spack find zlib
==> 2 installed packages
-- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------
zlib@1.2.11 zlib@1.2.11
Let's now say that we want to uninstall zlib. We run the command, and hit a problem
real quickly since we have two!
.. code-block:: console
$ spack uninstall zlib
==> Error: zlib matches multiple packages:
-- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------
efzjziy zlib@1.2.11 sl7m27m zlib@1.2.11
==> Error: You can either:
a) use a more specific spec, or
b) specify the spec by its hash (e.g. `spack uninstall /hash`), or
c) use `spack uninstall --all` to uninstall ALL matching specs.
Oh no! We can see from the above that we have two different versions of zlib installed,
and the only difference between the two is the hash. This is a good use case for
``spack diff``, which can easily show us the "diff" or set difference
between properties for two packages. Let's try it out.
Since the only difference we see in the ``spack find`` view is the hash, let's use
``spack diff`` to look for more detail. We will provide the two hashes:
.. code-block:: console
$ spack diff /efzjziy /sl7m27m
==> Warning: This interface is subject to change.
--- zlib@1.2.11efzjziyc3dmb5h5u5azsthgbgog5mj7g
+++ zlib@1.2.11sl7m27mzkbejtkrajigj3a3m37ygv4u2
@@ variant_value @@
- zlib optimize False
+ zlib optimize True
The output is colored, and written in the style of a git diff. This means that you
can copy and paste it into a GitHub markdown as a code block with language "diff"
and it will render nicely! Here is an example:
.. code-block:: md
```diff
--- zlib@1.2.11/efzjziyc3dmb5h5u5azsthgbgog5mj7g
+++ zlib@1.2.11/sl7m27mzkbejtkrajigj3a3m37ygv4u2
@@ variant_value @@
- zlib optimize False
+ zlib optimize True
```
Awesome! Now let's read the diff. It tells us that our first zlib was built with ``~optimize``
(``False``) and the second was built with ``+optimize`` (``True``). You can't see it in the docs
here, but the output above is also colored based on the content being an addition (+) or
subtraction (-).
This is a small example, but you will be able to see differences for any attributes on the
installation spec. Running ``spack diff A B`` means we'll see which spec attributes are on
``B`` but not on ``A`` (green) and which are on ``A`` but not on ``B`` (red). Here is another
example with an additional difference type, ``version``:
.. code-block:: console
$ spack diff python@2.7.8 python@3.8.11
==> Warning: This interface is subject to change.
--- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf
+++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx
@@ variant_value @@
- python patches a8c52415a8b03c0e5f28b5d52ae498f7a7e602007db2b9554df28cd5685839b8
+ python patches 0d98e93189bc278fbc37a50ed7f183bd8aaf249a8e1670a465f0db6bb4f8cf87
@@ version @@
- openssl 1.0.2u
+ openssl 1.1.1k
- python 2.7.8
+ python 3.8.11
Let's say that we were only interested in one kind of attribute above, ``version``.
We can ask the command to only output this attribute. To do this, you'd add
the ``--attribute`` for attribute parameter, which defaults to all. Here is how you
would filter to show just versions:
.. code-block:: console
$ spack diff --attribute version python@2.7.8 python@3.8.11
==> Warning: This interface is subject to change.
--- python@2.7.8/tsxdi6gl4lihp25qrm4d6nys3nypufbf
+++ python@3.8.11/yjtseru4nbpllbaxb46q7wfkyxbuvzxx
@@ version @@
- openssl 1.0.2u
+ openssl 1.1.1k
- python 2.7.8
+ python 3.8.11
And you can add as many attributes as you'd like with multiple `--attribute` arguments
(for lots of attributes, you can use ``-a`` for short). Finally, if you want to view the
data as json (and possibly pipe into an output file) just add ``--json``:
.. code-block:: console
$ spack diff --json python@2.7.8 python@3.8.11
This data will be much longer because along with the differences for ``A`` vs. ``B`` and
``B`` vs. ``A``, the JSON output also showsthe intersection.
------------------------
Using installed packages
------------------------
@@ -738,8 +899,9 @@ your path:
These commands will add appropriate directories to your ``PATH``,
``MANPATH``, ``CPATH``, and ``LD_LIBRARY_PATH`` according to the
:ref:`prefix inspections <customize-env-modifications>` defined in your
modules configuration. When you no longer want to use a package, you
can type unload or unuse similarly:
modules configuration.
When you no longer want to use a package, you can type unload or
unuse similarly:
.. code-block:: console
@@ -780,6 +942,22 @@ first ``libelf`` above, you would run:
$ spack load /qmm4kso
To see which packages that you have loaded to your enviornment you would
use ``spack find --loaded``.
.. code-block:: console
$ spack find --loaded
==> 2 installed packages
-- linux-debian7 / gcc@4.4.7 ------------------------------------
libelf@0.8.13
-- linux-debian7 / intel@15.0.0 ---------------------------------
libelf@0.8.13
You can also use ``spack load --list`` to get the same output, but it
does not have the full set of query options that ``spack find`` offers.
We'll learn more about Spack's spec syntax in the next section.
@@ -1105,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
@@ -1519,6 +1697,7 @@ and it will be added to the ``PYTHONPATH`` in your current shell:
Now ``import numpy`` will succeed for as long as you keep your current
session open.
The loaded packages can be checked using ``spack find --loaded``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Loading Extensions via Modules
@@ -1544,8 +1723,8 @@ Activating Extensions in a View
Another way to use extensions is to create a view, which merges the
python installation along with the extensions into a single prefix.
See :ref:`filesystem-views` for a more in-depth description of views and
:ref:`cmd-spack-view` for usage of the ``spack view`` command.
See :ref:`configuring_environment_views` for a more in-depth description
of views.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Activating Extensions Globally

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,13 +1,13 @@
.. 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)
.. _build-settings:
===================
Build Customization
===================
================================
Package Settings (packages.yaml)
================================
Spack allows you to customize how your software is built through the
``packages.yaml`` file. Using it, you can make Spack prefer particular
@@ -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)
@@ -51,6 +51,7 @@ on these ideas for each distinct build system that Spack supports:
build_systems/perlpackage
build_systems/pythonpackage
build_systems/rpackage
build_systems/racketpackage
build_systems/rubypackage
.. toctree::
@@ -63,6 +64,7 @@ on these ideas for each distinct build system that Spack supports:
build_systems/intelpackage
build_systems/rocmpackage
build_systems/custompackage
build_systems/multiplepackage
For reference, the :py:mod:`Build System API docs <spack.build_systems>`
provide a list of build systems and methods/attributes that can be

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)
@@ -112,20 +112,44 @@ phase runs:
.. code-block:: console
$ libtoolize
$ aclocal
$ autoreconf --install --verbose --force
$ autoreconf --install --verbose --force -I <aclocal-prefix>/share/aclocal
All you need to do is add a few Autotools dependencies to the package.
Most stable releases will come with a ``configure`` script, but if you
check out a commit from the ``develop`` branch, you would want to add:
In case you need to add more arguments, override ``autoreconf_extra_args``
in your ``package.py`` on class scope like this:
.. code-block:: python
depends_on('autoconf', type='build', when='@develop')
depends_on('automake', type='build', when='@develop')
depends_on('libtool', type='build', when='@develop')
depends_on('m4', type='build', when='@develop')
autoreconf_extra_args = ["-Im4"]
All you need to do is add a few Autotools dependencies to the package.
Most stable releases will come with a ``configure`` script, but if you
check out a commit from the ``master`` branch, you would want to add:
.. code-block:: python
depends_on('autoconf', type='build', when='@master')
depends_on('automake', type='build', when='@master')
depends_on('libtool', type='build', when='@master')
It is typically redundant to list the ``m4`` macro processor package as a
dependency, since ``autoconf`` already depends on it.
"""""""""""""""""""""""""""""""
Using a custom autoreconf phase
"""""""""""""""""""""""""""""""
In some cases, it might be needed to replace the default implementation
of the autoreconf phase with one running a script interpreter. In this
example, the ``bash`` shell is used to run the ``autogen.sh`` script.
.. code-block:: python
def autoreconf(self, spec, prefix):
which('bash')('autogen.sh')
"""""""""""""""""""""""""""""""""""""""
patching configure or Makefile.in files
"""""""""""""""""""""""""""""""""""""""
In some cases, developers might need to distribute a patch that modifies
one of the files used to generate ``configure`` or ``Makefile.in``.
@@ -135,6 +159,57 @@ create a new patch that directly modifies ``configure``. That way,
Spack can use the secondary patch and additional build system
dependencies aren't necessary.
""""""""""""""""""""""""""""
Old Autotools helper scripts
""""""""""""""""""""""""""""
Autotools based tarballs come with helper scripts such as ``config.sub`` and
``config.guess``. It is the responsibility of the developers to keep these files
up to date so that they run on every platform, but for very old software
releases this is impossible. In these cases Spack can help to replace these
files with newer ones, without having to add the heavy dependency on
``automake``.
Automatic helper script replacement is currently enabled by default on
``ppc64le`` and ``aarch64``, as these are the known cases where old scripts fail.
On these targets, ``AutotoolsPackage`` adds a build dependency on ``gnuconfig``,
which is a very light-weight package with newer versions of the helper files.
Spack then tries to run all the helper scripts it can find in the release, and
replaces them on failure with the helper scripts from ``gnuconfig``.
To opt out of this feature, use the following setting:
.. code-block:: python
patch_config_files = False
To enable it conditionally on different architectures, define a property and
make the package depend on ``gnuconfig`` as a build dependency:
.. code-block
depends_on('gnuconfig', when='@1.0:')
@property
def patch_config_files(self):
return self.spec.satisfies("@1.0:")
.. note::
On some exotic architectures it is necessary to use system provided
``config.sub`` and ``config.guess`` files. In this case, the most
transparent solution is to mark the ``gnuconfig`` package as external and
non-buildable, with a prefix set to the directory containing the files:
.. code-block:: yaml
gnuconfig:
buildable: false
externals:
- spec: gnuconfig@master
prefix: /usr/share/configure_files/
""""""""""""""""
force_autoreconf
""""""""""""""""
@@ -324,8 +399,47 @@ options:
--with-libfabric=</path/to/libfabric>
"""""""""""""""""""""""
The ``variant`` keyword
"""""""""""""""""""""""
When Spack variants and configure flags do not correspond one-to-one, the
``variant`` keyword can be passed to ``with_or_without`` and
``enable_or_disable``. For example:
.. code-block:: python
variant('debug_tools', default=False)
config_args += self.enable_or_disable('debug-tools', variant='debug_tools')
Or when one variant controls multiple flags:
.. code-block:: python
variant('debug_tools', default=False)
config_args += self.with_or_without('memchecker', variant='debug_tools')
config_args += self.with_or_without('profiler', variant='debug_tools')
""""""""""""""""""""
activation overrides
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
""""""""""""""""""""
Finally, the behavior of either ``with_or_without`` or

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)
@@ -130,8 +130,8 @@ Adding flags to cmake
To add additional flags to the ``cmake`` call, simply override the
``cmake_args`` function. The following example defines values for the flags
``WHATEVER``, ``ENABLE_BROKEN_FEATURE``, ``DETECT_HDF5``, and ``THREADS`` with
and without the :py:meth:`~.CMakePackage.define` and
:py:meth:`~.CMakePackage.define_from_variant` helper functions:
and without the :meth:`~spack.build_systems.cmake.CMakePackage.define` and
:meth:`~spack.build_systems.cmake.CMakePackage.define_from_variant` helper functions:
.. code-block:: python
@@ -145,6 +145,99 @@ and without the :py:meth:`~.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``.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CMake arguments provided by Spack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The following default arguments are controlled by Spack:
``CMAKE_INSTALL_PREFIX``
------------------------
Is set to the the package's install directory.
``CMAKE_PREFIX_PATH``
---------------------
CMake finds dependencies through calls to ``find_package()``, ``find_program()``,
``find_library()``, ``find_file()``, and ``find_path()``, which use a list of search
paths from ``CMAKE_PREFIX_PATH``. Spack sets this variable to a list of prefixes of the
spec's transitive dependencies.
For troubleshooting cases where CMake fails to find a dependency, add the
``--debug-find`` flag to ``cmake_args``.
``CMAKE_BUILD_TYPE``
--------------------
Every CMake-based package accepts a ``-DCMAKE_BUILD_TYPE`` flag to
dictate which level of optimization to use. In order to ensure
uniformity across packages, the ``CMakePackage`` base class adds
a variant to control this:
.. code-block:: python
variant('build_type', default='RelWithDebInfo',
description='CMake build type',
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
However, not every CMake package accepts all four of these options.
Grep the ``CMakeLists.txt`` file to see if the default values are
missing or replaced. For example, the
`dealii <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/dealii/package.py>`_
package overrides the default variant with:
.. code-block:: python
variant('build_type', default='DebugRelease',
description='The build type to build',
values=('Debug', 'Release', 'DebugRelease'))
For more information on ``CMAKE_BUILD_TYPE``, see:
https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
``CMAKE_INSTALL_RPATH`` and ``CMAKE_INSTALL_RPATH_USE_LINK_PATH=ON``
--------------------------------------------------------------------
CMake uses different RPATHs during the build and after installation, so that executables
can locate the libraries they're linked to during the build, and installed executables
do not have RPATHs to build directories. In Spack, we have to make sure that RPATHs are
set properly after installation.
Spack sets ``CMAKE_INSTALL_RPATH`` to a list of ``<prefix>/lib`` or ``<prefix>/lib64``
directories of the spec's link-type dependencies. Apart from that, it sets
``-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON``, which should add RPATHs for directories of
linked libraries not in the directories covered by ``CMAKE_INSTALL_RPATH``.
Usually it's enough to set only ``-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=ON``, but the
reason to provide both options is that packages may dynamically open shared libraries,
which CMake cannot detect. In those cases, the RPATHs from ``CMAKE_INSTALL_RPATH`` are
used as search paths.
.. note::
Some packages provide stub libraries, which contain an interface for linking without
an implementation. When using such libraries, it's best to override the option
``-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=OFF`` in ``cmake_args``, so that stub libraries
are not used at runtime.
^^^^^^^^^^
Generators
@@ -182,36 +275,6 @@ generators, but it should be simple to add support for alternative
generators. For more information on CMake generators, see:
https://cmake.org/cmake/help/latest/manual/cmake-generators.7.html
^^^^^^^^^^^^^^^^
CMAKE_BUILD_TYPE
^^^^^^^^^^^^^^^^
Every CMake-based package accepts a ``-DCMAKE_BUILD_TYPE`` flag to
dictate which level of optimization to use. In order to ensure
uniformity across packages, the ``CMakePackage`` base class adds
a variant to control this:
.. code-block:: python
variant('build_type', default='RelWithDebInfo',
description='CMake build type',
values=('Debug', 'Release', 'RelWithDebInfo', 'MinSizeRel'))
However, not every CMake package accepts all four of these options.
Grep the ``CMakeLists.txt`` file to see if the default values are
missing or replaced. For example, the
`dealii <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/dealii/package.py>`_
package overrides the default variant with:
.. code-block:: python
variant('build_type', default='DebugRelease',
description='The build type to build',
values=('Debug', 'Release', 'DebugRelease'))
For more information on ``CMAKE_BUILD_TYPE``, see:
https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
CMakeLists.txt in a sub-directory
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

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

@@ -0,0 +1,350 @@
.. 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)
.. _multiplepackage:
----------------------
Multiple Build Systems
----------------------
Quite frequently, a package will change build systems from one version to the
next. For example, a small project that once used a single Makefile to build
may now require Autotools to handle the increased number of files that need to
be compiled. Or, a package that once used Autotools may switch to CMake for
Windows support. In this case, it becomes a bit more challenging to write a
single build recipe for this package in Spack.
There are several ways that this can be handled in Spack:
#. Subclass the new build system, and override phases as needed (preferred)
#. Subclass ``Package`` and implement ``install`` as needed
#. Create separate ``*-cmake``, ``*-autotools``, etc. packages for each build system
#. Rename the old package to ``*-legacy`` and create a new package
#. Move the old package to a ``legacy`` repository and create a new package
#. Drop older versions that only support the older build system
Of these options, 1 is preferred, and will be demonstrated in this
documentation. Options 3-5 have issues with concretization, so shouldn't be
used. Options 4-5 also don't support more than two build systems. Option 6 only
works if the old versions are no longer needed. Option 1 is preferred over 2
because it makes it easier to drop the old build system entirely.
The exact syntax of the package depends on which build systems you need to
support. Below are a couple of common examples.
^^^^^^^^^^^^^^^^^^^^^
Makefile -> Autotools
^^^^^^^^^^^^^^^^^^^^^
Let's say we have the following package:
.. code-block:: python
class Foo(MakefilePackage):
version("1.2.0", sha256="...")
def edit(self, spec, prefix):
filter_file("CC=", "CC=" + spack_cc, "Makefile")
def install(self, spec, prefix):
install_tree(".", prefix)
The package subclasses from :ref:`makefilepackage`, which has three phases:
#. ``edit`` (does nothing by default)
#. ``build`` (runs ``make`` by default)
#. ``install`` (runs ``make install`` by default)
In this case, the ``install`` phase needed to be overridden because the
Makefile did not have an install target. We also modify the Makefile to use
Spack's compiler wrappers. The default ``build`` phase is not changed.
Starting with version 1.3.0, we want to use Autotools to build instead.
:ref:`autotoolspackage` has four phases:
#. ``autoreconf`` (does not if a configure script already exists)
#. ``configure`` (runs ``./configure --prefix=...`` by default)
#. ``build`` (runs ``make`` by default)
#. ``install`` (runs ``make install`` by default)
If the only version we need to support is 1.3.0, the package would look as
simple as:
.. code-block:: python
class Foo(AutotoolsPackage):
version("1.3.0", sha256="...")
def configure_args(self):
return ["--enable-shared"]
In this case, we use the default methods for each phase and only override
``configure_args`` to specify additional flags to pass to ``./configure``.
If we wanted to write a single package that supports both versions 1.2.0 and
1.3.0, it would look something like:
.. code-block:: python
class Foo(AutotoolsPackage):
version("1.3.0", sha256="...")
version("1.2.0", sha256="...", deprecated=True)
def configure_args(self):
return ["--enable-shared"]
# Remove the following once version 1.2.0 is dropped
@when("@:1.2")
def patch(self):
filter_file("CC=", "CC=" + spack_cc, "Makefile")
@when("@:1.2")
def autoreconf(self, spec, prefix):
pass
@when("@:1.2")
def configure(self, spec, prefix):
pass
@when("@:1.2")
def install(self, spec, prefix):
install_tree(".", prefix)
There are a few interesting things to note here:
* We added ``deprecated=True`` to version 1.2.0. This signifies that version
1.2.0 is deprecated and shouldn't be used. However, if a user still relies
on version 1.2.0, it's still there and builds just fine.
* We moved the contents of the ``edit`` phase to the ``patch`` function. Since
``AutotoolsPackage`` doesn't have an ``edit`` phase, the only way for this
step to be executed is to move it to the ``patch`` function, which always
gets run.
* The ``autoreconf`` and ``configure`` phases become no-ops. Since the old
Makefile-based build system doesn't use these, we ignore these phases when
building ``foo@1.2.0``.
* The ``@when`` decorator is used to override these phases only for older
versions. The default methods are used for ``foo@1.3:``.
Once a new Spack release comes out, version 1.2.0 and everything below the
comment can be safely deleted. The result is the same as if we had written a
package for version 1.3.0 from scratch.
^^^^^^^^^^^^^^^^^^
Autotools -> CMake
^^^^^^^^^^^^^^^^^^
Let's say we have the following package:
.. code-block:: python
class Bar(AutotoolsPackage):
version("1.2.0", sha256="...")
def configure_args(self):
return ["--enable-shared"]
The package subclasses from :ref:`autotoolspackage`, which has four phases:
#. ``autoreconf`` (does not if a configure script already exists)
#. ``configure`` (runs ``./configure --prefix=...`` by default)
#. ``build`` (runs ``make`` by default)
#. ``install`` (runs ``make install`` by default)
In this case, we use the default methods for each phase and only override
``configure_args`` to specify additional flags to pass to ``./configure``.
Starting with version 1.3.0, we want to use CMake to build instead.
:ref:`cmakepackage` has three phases:
#. ``cmake`` (runs ``cmake ...`` by default)
#. ``build`` (runs ``make`` by default)
#. ``install`` (runs ``make install`` by default)
If the only version we need to support is 1.3.0, the package would look as
simple as:
.. code-block:: python
class Bar(CMakePackage):
version("1.3.0", sha256="...")
def cmake_args(self):
return [self.define("BUILD_SHARED_LIBS", True)]
In this case, we use the default methods for each phase and only override
``cmake_args`` to specify additional flags to pass to ``cmake``.
If we wanted to write a single package that supports both versions 1.2.0 and
1.3.0, it would look something like:
.. code-block:: python
class Bar(CMakePackage):
version("1.3.0", sha256="...")
version("1.2.0", sha256="...", deprecated=True)
def cmake_args(self):
return [self.define("BUILD_SHARED_LIBS", True)]
# Remove the following once version 1.2.0 is dropped
def configure_args(self):
return ["--enable-shared"]
@when("@:1.2")
def cmake(self, spec, prefix):
configure("--prefix=" + prefix, *self.configure_args())
There are a few interesting things to note here:
* We added ``deprecated=True`` to version 1.2.0. This signifies that version
1.2.0 is deprecated and shouldn't be used. However, if a user still relies
on version 1.2.0, it's still there and builds just fine.
* Since CMake and Autotools are so similar, we only need to override the
``cmake`` phase, we can use the default ``build`` and ``install`` phases.
* We override ``cmake`` to run ``./configure`` for older versions.
``configure_args`` remains the same.
* The ``@when`` decorator is used to override these phases only for older
versions. The default methods are used for ``bar@1.3:``.
Once a new Spack release comes out, version 1.2.0 and everything below the
comment can be safely deleted. The result is the same as if we had written a
package for version 1.3.0 from scratch.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Multiple build systems for the same version
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
During the transition from one build system to another, developers often
support multiple build systems at the same time. Spack can only use a single
build system for a single version. To decide which build system to use for a
particular version, take the following things into account:
1. If the developers explicitly state that one build system is preferred over
another, use that one.
2. If one build system is considered "experimental" while another is considered
"stable", use the stable build system.
3. Otherwise, use the newer build system.
The developer preference for which build system to use can change over time as
a newer build system becomes stable/recommended.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Dropping support for old build systems
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
When older versions of a package don't support a newer build system, it can be
tempting to simply delete them from a package. This significantly reduces
package complexity and makes the build recipe much easier to maintain. However,
other packages or Spack users may rely on these older versions. The recommended
approach is to first support both build systems (as demonstrated above),
:ref:`deprecate <deprecate>` versions that rely on the old build system, and
remove those versions and any phases that needed to be overridden in the next
Spack release.
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Three or more build systems
^^^^^^^^^^^^^^^^^^^^^^^^^^^
In rare cases, a package may change build systems multiple times. For example,
a package may start with Makefiles, then switch to Autotools, then switch to
CMake. The same logic used above can be extended to any number of build systems.
For example:
.. code-block:: python
class Baz(CMakePackage):
version("1.4.0", sha256="...") # CMake
version("1.3.0", sha256="...") # Autotools
version("1.2.0", sha256="...") # Makefile
def cmake_args(self):
return [self.define("BUILD_SHARED_LIBS", True)]
# Remove the following once version 1.3.0 is dropped
def configure_args(self):
return ["--enable-shared"]
@when("@1.3")
def cmake(self, spec, prefix):
configure("--prefix=" + prefix, *self.configure_args())
# Remove the following once version 1.2.0 is dropped
@when("@:1.2")
def patch(self):
filter_file("CC=", "CC=" + spack_cc, "Makefile")
@when("@:1.2")
def cmake(self, spec, prefix):
pass
@when("@:1.2")
def install(self, spec, prefix):
install_tree(".", prefix)
^^^^^^^^^^^^^^^^^^^
Additional examples
^^^^^^^^^^^^^^^^^^^
When writing new packages, it often helps to see examples of existing packages.
Here is an incomplete list of existing Spack packages that have changed build
systems before:
================ ===================== ================
Package Previous Build System New Build System
================ ===================== ================
amber custom CMake
arpack-ng Autotools CMake
atk Autotools Meson
blast None Autotools
dyninst Autotools CMake
evtgen Autotools CMake
fish Autotools CMake
gdk-pixbuf Autotools Meson
glib Autotools Meson
glog Autotools CMake
gmt Autotools CMake
gtkplus Autotools Meson
hpl Makefile Autotools
interproscan Perl Maven
jasper Autotools CMake
kahip SCons CMake
kokkos Makefile CMake
kokkos-kernels Makefile CMake
leveldb Makefile CMake
libdrm Autotools Meson
libjpeg-turbo Autotools CMake
mesa Autotools Meson
metis None CMake
mpifileutils Autotools CMake
muparser Autotools CMake
mxnet Makefile CMake
nest Autotools CMake
neuron Autotools CMake
nsimd CMake nsconfig
opennurbs Makefile CMake
optional-lite None CMake
plasma Makefile CMake
preseq Makefile Autotools
protobuf Autotools CMake
py-pygobject Autotools Python
singularity Autotools Makefile
span-lite None CMake
ssht Makefile CMake
string-view-lite None CMake
superlu Makefile CMake
superlu-dist Makefile CMake
uncrustify Autotools CMake
================ ===================== ================
Packages that support multiple build systems can be a bit confusing to write.
Don't hesitate to open an issue or draft pull request and ask for advice from
other Spack developers!

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.999', 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.999``.
""""""""""
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.
^^^^^^^^^^^^^^^^^^^^^
@@ -878,12 +645,24 @@ are not yet in Spack, and Spack contains many Python packages that are
not yet in Anaconda. The main advantage of Spack over Anaconda is its
ability to choose a specific compiler and BLAS/LAPACK or MPI library.
Spack also has better platform support for supercomputers, and can build
optimized binaries for your specific microarchitecture. On the other hand,
Anaconda offers Windows support.
optimized binaries for your specific microarchitecture.
^^^^^^^^^^^^^^^^^^^^^^
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

@@ -0,0 +1,46 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
.. _racketpackage:
-------------
RacketPackage
-------------
Much like Python, Racket packages and modules have their own special build system.
To learn more about the specifics of Racket package system, please refer to the
`Racket Docs <https://docs.racket-lang.org/pkg/cmdline.html>`_.
^^^^^^
Phases
^^^^^^
The ``RacketPackage`` base class provides an ``install`` phase that
can be overridden, corresponding to the use of:
.. code-block:: console
$ raco pkg install
^^^^^^^
Caveats
^^^^^^^
In principle, ``raco`` supports a second, ``setup`` phase; however, we have not
implemented this separately, as in normal circumstances, ``install`` also handles
running ``setup`` automatically.
Unlike Python, Racket currently on supports two installation scopes for packages, user
or system, and keeps a registry of installed packages at each scope in its configuration files.
This means we can't simply compose a "``RACKET_PATH``" environment variable listing all of the
places packages are installed, and update this at will.
Unfortunately this means that all currently installed packages which extend Racket via ``raco pkg install``
are accessible whenever Racket is accessible.
Additionally, because Spack does not implement uninstall hooks, uninstalling a Spack ``rkt-`` package
will have no effect on the ``raco`` installed packages visible to your Racket installation.
Instead, you must manually run ``raco pkg remove`` to keep the two package managers in a mutually
consistent state.

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(
@@ -97,15 +98,19 @@ def setup(sphinx):
# -- General configuration -----------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
needs_sphinx = '1.8'
needs_sphinx = '3.4'
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc',
'sphinx.ext.graphviz',
'sphinx.ext.napoleon',
'sphinx.ext.todo',
'sphinxcontrib.programoutput']
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.graphviz',
'sphinx.ext.intersphinx',
'sphinx.ext.napoleon',
'sphinx.ext.todo',
'sphinx.ext.viewcode',
'sphinxcontrib.programoutput',
]
# Set default graphviz options
graphviz_dot_args = [
@@ -164,6 +169,20 @@ def setup(sphinx):
# directories to ignore when looking for source files.
exclude_patterns = ['_build', '_spack_root', '.spack-env']
nitpicky = True
nitpick_ignore = [
# Python classes that intersphinx is unable to resolve
('py:class', 'argparse.HelpFormatter'),
('py:class', 'contextlib.contextmanager'),
('py:class', 'module'),
('py:class', '_io.BufferedReader'),
('py:class', 'unittest.case.TestCase'),
('py:class', '_frozen_importlib_external.SourceFileLoader'),
# Spack classes that are private and we don't want to expose
('py:class', 'spack.provider_index._IndexBase'),
('py:class', 'spack.repo._PrependFileLoader'),
]
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
@@ -358,3 +377,11 @@ class SpackStyle(DefaultStyle):
# How to display URL addresses: 'footnote', 'no', or 'inline'.
#texinfo_show_urls = 'footnote'
# -- Extension configuration -------------------------------------------------
# sphinx.ext.intersphinx
intersphinx_mapping = {
"python": ("https://docs.python.org/3", None),
}

View File

@@ -1,13 +1,13 @@
.. 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)
.. _config-yaml:
==============
Basic Settings
==============
============================
Spack Settings (config.yaml)
============================
Spack's basic configuration options are set in ``config.yaml``. You can
see the default settings by looking at
@@ -72,21 +72,6 @@ used to configure module names.
packages have been installed will prevent Spack from being
able to find the old installation directories.
--------------------
``module_roots``
--------------------
Controls where Spack installs generated module files. You can customize
the location for each type of module. e.g.:
.. code-block:: yaml
module_roots:
tcl: $spack/share/spack/modules
lmod: $spack/share/spack/lmod
See :ref:`modules` for details.
--------------------
``build_stage``
--------------------
@@ -259,3 +244,16 @@ and ld.so will ONLY search for dependencies in the ``RUNPATH`` of
the loading object.
DO NOT MIX the two options within the same install tree.
----------------------
``terminal_title``
----------------------
By setting this option to ``true``, Spack will update the terminal's title to
provide information about its current progress as well as the current and
total package numbers.
To work properly, this requires your terminal to reset its title after
Spack has finished its work, otherwise Spack's status information will
remain in the terminal's title indefinitely. Most terminals should already
be set up this way and clear Spack's status information.

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
-----------
@@ -33,8 +37,6 @@ Here is an example ``config.yaml`` file:
config:
install_tree: $spack/opt/spack
module_roots:
lmod: $spack/share/spack/lmod
build_stage:
- $tempdir/$user/spack-stage
- ~/.spack/stage
@@ -249,8 +251,6 @@ your configurations look like this:
config:
install_tree: $spack/opt/spack
module_roots:
lmod: $spack/share/spack/lmod
build_stage:
- $tempdir/$user/spack-stage
- ~/.spack/stage
@@ -274,8 +274,6 @@ command:
$ spack config get config
config:
install_tree: /some/other/directory
module_roots:
lmod: $spack/share/spack/lmod
build_stage:
- $tempdir/$user/spack-stage
- ~/.spack/stage
@@ -341,13 +339,11 @@ higher-precedence scope is *prepended* to the defaults. ``spack config
get config`` shows the result:
.. code-block:: console
:emphasize-lines: 7-10
:emphasize-lines: 5-8
$ spack config get config
config:
install_tree: /some/other/directory
module_roots:
lmod: $spack/share/spack/lmod
build_stage:
- /lustre-scratch/$user/spack
- ~/mystage
@@ -371,13 +367,11 @@ user config looked like this:
The merged configuration would look like this:
.. code-block:: console
:emphasize-lines: 7-8
:emphasize-lines: 5-6
$ spack config get config
config:
install_tree: /some/other/directory
module_roots:
lmod: $spack/share/spack/lmod
build_stage:
- /lustre-scratch/$user/spack
- ~/mystage
@@ -402,12 +396,15 @@ Spack-specific variables
Spack understands several special variables. These are:
* ``$env``: name of the currently active :ref:`environment <environments>`
* ``$spack``: path to the prefix of this Spack installation
* ``$tempdir``: default system temporary directory (as specified in
Python's `tempfile.tempdir
<https://docs.python.org/2/library/tempfile.html#tempfile.tempdir>`_
variable.
* ``$user``: name of the current user
* ``$user_cache_path``: user cache directory (``~/.spack`` unless
:ref:`overridden <local-config-overrides>`)
Note that, as with shell variables, you can write these as ``$varname``
or with braces to distinguish the variable from surrounding characters:
@@ -495,9 +492,6 @@ account all scopes. For example, to see the fully merged
template_dirs:
- $spack/templates
directory_layout: {architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}
module_roots:
tcl: $spack/share/spack/modules
lmod: $spack/share/spack/lmod
build_stage:
- $tempdir/$user/spack-stage
- ~/.spack/stage
@@ -545,9 +539,6 @@ down the problem:
/home/myuser/spack/etc/spack/defaults/config.yaml:23 template_dirs:
/home/myuser/spack/etc/spack/defaults/config.yaml:24 - $spack/templates
/home/myuser/spack/etc/spack/defaults/config.yaml:28 directory_layout: {architecture}/{compiler.name}-{compiler.version}/{name}-{version}-{hash}
/home/myuser/spack/etc/spack/defaults/config.yaml:32 module_roots:
/home/myuser/spack/etc/spack/defaults/config.yaml:33 tcl: $spack/share/spack/modules
/home/myuser/spack/etc/spack/defaults/config.yaml:34 lmod: $spack/share/spack/lmod
/home/myuser/spack/etc/spack/defaults/config.yaml:49 build_stage:
/home/myuser/spack/etc/spack/defaults/config.yaml:50 - $tempdir/$user/spack-stage
/home/myuser/spack/etc/spack/defaults/config.yaml:51 - ~/.spack/stage
@@ -562,3 +553,39 @@ built in and are not overridden by a configuration file. The
command line. ``dirty`` and ``install_tree`` come from the custom
scopes ``./my-scope`` and ``./my-scope-2``, and all other configuration
options come from the default configuration files that ship with Spack.
.. _local-config-overrides:
------------------------------
Overriding Local Configuration
------------------------------
Spack's ``system`` and ``user`` scopes provide ways for administrators and users to set
global defaults for all Spack instances, but for use cases where one wants a clean Spack
installation, these scopes can be undesirable. For example, users may want to opt out of
global system configuration, or they may want to ignore their own home directory
settings when running in a continuous integration environment.
Spack also, by default, keeps various caches and user data in ``~/.spack``, but
users may want to override these locations.
Spack provides three environment variables that allow you to override or opt out of
configuration locations:
* ``SPACK_USER_CONFIG_PATH``: Override the path to use for the
``user`` scope (``~/.spack`` by default).
* ``SPACK_SYSTEM_CONFIG_PATH``: Override the path to use for the
``system`` scope (``/etc/spack`` by default).
* ``SPACK_DISABLE_LOCAL_CONFIG``: set this environment variable to completely disable
**both** the system and user configuration directories. Spack will only consider its
own defaults and ``site`` configuration locations.
And one that allows you to move the default cache location:
* ``SPACK_USER_CACHE_PATH``: Override the default path to use for user data
(misc_cache, tests, reports, etc.)
With these settings, if you want to isolate Spack in a CI environment, you can do this::
export SPACK_DISABLE_LOCAL_CONFIG=true
export SPACK_USER_CACHE_PATH=/tmp/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)
@@ -126,12 +126,12 @@ are currently supported are summarized in the table below:
* - Ubuntu 18.04
- ``ubuntu:18.04``
- ``spack/ubuntu-bionic``
* - CentOS 6
- ``centos:6``
- ``spack/centos6``
* - CentOS 7
- ``centos:7``
- ``spack/centos7``
* - openSUSE Leap
- ``opensuse/leap``
- ``spack/leap15``
All the images are tagged with the corresponding release of Spack:
@@ -200,7 +200,7 @@ Setting Base Images
The ``images`` subsection is used to select both the image where
Spack builds the software and the image where the built software
is installed. This attribute can be set in two different ways and
is installed. This attribute can be set in different ways and
which one to use depends on the use case at hand.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -260,10 +260,54 @@ software is respectively built and installed:
ENTRYPOINT ["/bin/bash", "--rcfile", "/etc/profile", "-l"]
This method of selecting base images is the simplest of the two, and we advise
This is the simplest available method of selecting base images, and we advise
to use it whenever possible. There are cases though where using Spack official
images is not enough to fit production needs. In these situations users can manually
select which base image to start from in the recipe, as we'll see next.
images is not enough to fit production needs. In these situations users can
extend the recipe to start with the bootstrapping of Spack at a certain pinned
version or manually select which base image to start from in the recipe,
as we'll see next.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Use a Bootstrap Stage for Spack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
In some cases users may want to pin the commit sha that is used for Spack, to ensure later
reproducibility, or start from a fork of the official Spack repository to try a bugfix or
a feature in the early stage of development. This is possible by being just a little more
verbose when specifying information about Spack in the ``spack.yaml`` file:
.. code-block:: yaml
images:
os: amazonlinux:2
spack:
# URL of the Spack repository to be used in the container image
url: <to-use-a-fork>
# Either a commit sha, a branch name or a tag
ref: <sha/tag/branch>
# If true turn a branch name or a tag into the corresponding commit
# sha at the time of recipe generation
resolve_sha: <true/false>
``url`` specifies the URL from which to clone Spack and defaults to https://github.com/spack/spack.
The ``ref`` attribute can be either a commit sha, a branch name or a tag. The default value in
this case is to use the ``develop`` branch, but it may change in the future to point to the latest stable
release. Finally ``resolve_sha`` transform branch names or tags into the corresponding commit
shas at the time of recipe generation, to allow for a greater reproducibility of the results
at a later time.
The list of operating systems that can be used to bootstrap Spack can be
obtained with:
.. command-output:: spack containerize --list-os
.. note::
The ``resolve_sha`` option uses ``git rev-parse`` under the hood and thus it requires
to checkout the corresponding Spack repository in a temporary folder before generating
the recipe. Recipe generation may take longer when this option is set to true because
of this additional step.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Use Custom Images Provided by Users
@@ -415,6 +459,18 @@ to customize the generation of container recipes:
- Version of Spack use in the ``build`` stage
- Valid tags for ``base:image``
- Yes, if using constrained selection of base images
* - ``images:spack:url``
- Repository from which Spack is cloned
- Any fork of Spack
- No
* - ``images:spack:ref``
- Reference for the checkout of Spack
- Either a commit sha, a branch name or a tag
- No
* - ``images:spack:resolve_sha``
- Resolve branches and tags in ``spack.yaml`` to commits in the generated recipe
- True or False (default: False)
- No
* - ``images:build``
- Image to be used in the ``build`` stage
- Any valid container image

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:
@@ -338,15 +338,6 @@ Once all of the dependencies are installed, you can try building the documentati
If you see any warning or error messages, you will have to correct those before
your PR is accepted.
.. note::
There is also a ``run-doc-tests`` script in ``share/spack/qa``. The only
difference between running this script and running ``make`` by hand is that
the script will exit immediately if it encounters an error or warning. This
is necessary for CI. If you made a lot of documentation changes, it is
much quicker to run ``make`` by hand so that you can see all of the warnings
at once.
If you are editing the documentation, you should obviously be running the
documentation tests. But even if you are simply adding a new package, your
changes could cause the documentation tests to fail:

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)
@@ -108,9 +108,9 @@ with a high level view of Spack's directory structure:
spack/ <- spack module; contains Python code
analyzers/ <- modules to run analysis on installed packages
build_systems/ <- modules for different build systems
build_systems/ <- modules for different build systems
cmd/ <- each file in here is a spack subcommand
compilers/ <- compiler description files
compilers/ <- compiler description files
container/ <- module for spack containerize
hooks/ <- hook modules to run at different points
modules/ <- modules for lmod, tcl, etc.
@@ -151,24 +151,22 @@ Package-related modules
^^^^^^^^^^^^^^^^^^^^^^^
:mod:`spack.package`
Contains the :class:`Package <spack.package.Package>` class, which
Contains the :class:`~spack.package.Package` class, which
is the superclass for all packages in Spack. Methods on ``Package``
implement all phases of the :ref:`package lifecycle
<package-lifecycle>` and manage the build process.
:mod:`spack.packages`
Contains all of the packages in Spack and methods for managing them.
Functions like :func:`packages.get <spack.packages.get>` and
:func:`class_name_for_package_name
<packages.class_name_for_package_name>` handle mapping package module
names to class names and dynamically instantiating packages by name
from module files.
:mod:`spack.util.naming`
Contains functions for mapping between Spack package names,
Python module names, and Python class names. Functions like
:func:`~spack.util.naming.mod_to_class` handle mapping package
module names to class names.
:mod:`spack.relations`
*Relations* are relationships between packages, like
:func:`depends_on <spack.relations.depends_on>` and :func:`provides
<spack.relations.provides>`. See :ref:`dependencies` and
:ref:`virtual-dependencies`.
:mod:`spack.directives`
*Directives* are functions that can be called inside a package definition
to modify the package, like :func:`~spack.directives.depends_on`
and :func:`~spack.directives.provides`. See :ref:`dependencies`
and :ref:`virtual-dependencies`.
:mod:`spack.multimethod`
Implementation of the :func:`@when <spack.multimethod.when>`
@@ -180,31 +178,27 @@ Spec-related modules
^^^^^^^^^^^^^^^^^^^^
:mod:`spack.spec`
Contains :class:`Spec <spack.spec.Spec>` and :class:`SpecParser
<spack.spec.SpecParser>`. Also implements most of the logic for
normalization and concretization of specs.
Contains :class:`~spack.spec.Spec` and :class:`~spack.spec.SpecParser`.
Also implements most of the logic for normalization and concretization
of specs.
:mod:`spack.parse`
Contains some base classes for implementing simple recursive descent
parsers: :class:`Parser <spack.parse.Parser>` and :class:`Lexer
<spack.parse.Lexer>`. Used by :class:`SpecParser
<spack.spec.SpecParser>`.
parsers: :class:`~spack.parse.Parser` and :class:`~spack.parse.Lexer`.
Used by :class:`~spack.spec.SpecParser`.
:mod:`spack.concretize`
Contains :class:`DefaultConcretizer
<spack.concretize.DefaultConcretizer>` implementation, which allows
site administrators to change Spack's :ref:`concretization-policies`.
Contains :class:`~spack.concretize.Concretizer` implementation,
which allows site administrators to change Spack's :ref:`concretization-policies`.
:mod:`spack.version`
Implements a simple :class:`Version <spack.version.Version>` class
with simple comparison semantics. Also implements
:class:`VersionRange <spack.version.VersionRange>` and
:class:`VersionList <spack.version.VersionList>`. All three are
comparable with each other and offer union and intersection
operations. Spack uses these classes to compare versions and to
manage version constraints on specs. Comparison semantics are
similar to the ``LooseVersion`` class in ``distutils`` and to the
way RPM compares version strings.
Implements a simple :class:`~spack.version.Version` class with simple
comparison semantics. Also implements :class:`~spack.version.VersionRange`
and :class:`~spack.version.VersionList`. All three are comparable with each
other and offer union and intersection operations. Spack uses these classes
to compare versions and to manage version constraints on specs. Comparison
semantics are similar to the ``LooseVersion`` class in ``distutils`` and to
the way RPM compares version strings.
:mod:`spack.compilers`
Submodules contains descriptors for all valid compilers in Spack.
@@ -216,15 +210,6 @@ Spec-related modules
but compilers aren't fully integrated with the build process
yet.
:mod:`spack.architecture`
:func:`architecture.sys_type <spack.architecture.sys_type>` is used
to determine the host architecture while building.
.. warning::
Not yet implemented. Should eventually have architecture
descriptions for cross-compiling.
^^^^^^^^^^^^^^^^^
Build environment
^^^^^^^^^^^^^^^^^
@@ -232,7 +217,7 @@ Build environment
:mod:`spack.stage`
Handles creating temporary directories for builds.
:mod:`spack.compilation`
:mod:`spack.build_environment`
This contains utility functions used by the compiler wrapper script,
``cc``.
@@ -257,22 +242,19 @@ Unit tests
Implements Spack's test suite. Add a module and put its name in
the test suite in ``__init__.py`` to add more unit tests.
:mod:`spack.test.mock_packages`
This is a fake package hierarchy used to mock up packages for
Spack's test suite.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Research and Monitoring Modules
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:mod:`spack.monitor`
Contains :class:`SpackMonitor <spack.monitor.SpackMonitor>`. This is accessed
from the ``spack install`` and ``spack analyze`` commands to send build
and package metadada up to a `Spack Monitor <https://github.com/spack/spack-monitor>`_ server.
Contains :class:`~spack.monitor.SpackMonitorClient`. This is accessed from
the ``spack install`` and ``spack analyze`` commands to send build and
package metadata up to a `Spack Monitor
<https://github.com/spack/spack-monitor>`_ server.
:mod:`spack.analyzers`
A module folder with a :class:`AnalyzerBase <spack.analyzers.analyzer_base.AnalyzerBase>`
A module folder with a :class:`~spack.analyzers.analyzer_base.AnalyzerBase`
that provides base functions to run, save, and (optionally) upload analysis
results to a `Spack Monitor <https://github.com/spack/spack-monitor>`_ server.
@@ -286,7 +268,7 @@ Other Modules
tarball URLs.
:mod:`spack.error`
:class:`SpackError <spack.error.SpackError>`, the base class for
:class:`~spack.error.SpackError`, the base class for
Spack's exception hierarchy.
:mod:`llnl.util.tty`
@@ -335,8 +317,8 @@ Writing analyzers
To write an analyzer, you should add a new python file to the
analyzers module directory at ``lib/spack/spack/analyzers`` .
Your analyzer should be a subclass of the :class:`AnalyzerBase <spack.analyzers.analyzer_base.AnalyzerBase>`. For example, if you want
to add an analyzer class ``Myanalyzer`` you woul write to
``spack/analyzers/myanalyzer.py`` and import and
to add an analyzer class ``Myanalyzer`` you would write to
``spack/analyzers/myanalyzer.py`` and import and
use the base as follows:
.. code-block:: python
@@ -347,7 +329,7 @@ use the base as follows:
Note that the class name is your module file name, all lowercase
except for the first capital letter. You can look at other analyzers in
except for the first capital letter. You can look at other analyzers in
that analyzer directory for examples. The guide here will tell you about the basic functions needed.
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -356,13 +338,13 @@ Analyzer Output Directory
By default, when you run ``spack analyze run`` an analyzer output directory will
be created in your spack user directory in your ``$HOME``. The reason we output here
is because the install directory might not always be writable.
is because the install directory might not always be writable.
.. code-block:: console
~/.spack/
analyzers
Result files will be written here, organized in subfolders in the same structure
as the package, with each analyzer owning it's own subfolder. for example:
@@ -380,11 +362,11 @@ as the package, with each analyzer owning it's own subfolder. for example:
│   └── spack-analyzer-install-files.json
└── libabigail
└── lib
└── spack-analyzer-libabigail-libz.so.1.2.11.xml
└── spack-analyzer-libabigail-libz.so.1.2.11.xml
Notice that for the libabigail analyzer, since results are generated per object,
we honor the object's folder in case there are equivalently named files in
we honor the object's folder in case there are equivalently named files in
different folders. The result files are typically written as json so they can be easily read and uploaded in a future interaction with a monitor.
@@ -426,7 +408,7 @@ and then return the object with a key as the analyzer name. The result data
should be a list of objects, each with a name, ``analyzer_name``, ``install_file``,
and one of ``value`` or ``binary_value``. The install file should be for a relative
path, and not the absolute path. For example, let's say we extract a metric called
``metric`` for ``bin/wget`` using our analyzer ``thebest-analyzer``.
``metric`` for ``bin/wget`` using our analyzer ``thebest-analyzer``.
We might have data that looks like this:
.. code-block:: python
@@ -482,7 +464,7 @@ Saving Analyzer Results
The analyzer will have ``save_result`` called, with the result object generated
to save it to the filesystem, and if the user has added the ``--monitor`` flag
to upload it to a monitor server. If your result follows an accepted result
format and you don't need to parse it further, you don't need to add this
format and you don't need to parse it further, you don't need to add this
function to your class. However, if your result data is large or otherwise
needs additional parsing, you can define it. If you define the function, it
is useful to know about the ``output_dir`` property, which you can join
@@ -548,7 +530,7 @@ each one (separately) to the monitor:
Notice that this function, if you define it, requires a result object (generated by
``run()``, a monitor (if you want to send), and a boolean ``overwrite`` to be used
to check if a result exists first, and not write to it if the result exists and
to check if a result exists first, and not write to it if the result exists and
overwrite is False. Also notice that since we already saved these files to the analyzer metadata folder, we return early if a monitor isn't defined, because this function serves to send results to the monitor. If you haven't saved anything to the analyzer metadata folder
yet, you might want to do that here. You should also use ``tty.info`` to give
the user a message of "Writing result to $DIRNAME."
@@ -616,7 +598,7 @@ types of hooks in the ``__init__.py``, and then python files in that folder
can use hook functions. The files are automatically parsed, so if you write
a new file for some integration (e.g., ``lib/spack/spack/hooks/myintegration.py``
you can then write hook functions in that file that will be automatically detected,
and run whenever your hook is called. This section will cover the basic kind
and run whenever your hook is called. This section will cover the basic kind
of hooks, and how to write them.
^^^^^^^^^^^^^^
@@ -624,7 +606,7 @@ Types of Hooks
^^^^^^^^^^^^^^
The following hooks are currently implemented to make it easy for you,
the developer, to add hooks at different stages of a spack install or similar.
the developer, to add hooks at different stages of a spack install or similar.
If there is a hook that you would like and is missing, you can propose to add a new one.
"""""""""""""""""""""
@@ -632,9 +614,9 @@ If there is a hook that you would like and is missing, you can propose to add a
"""""""""""""""""""""
A ``pre_install`` hook is run within an install subprocess, directly before
the install starts. It expects a single argument of a spec, and is run in
the install starts. It expects a single argument of a spec, and is run in
a multiprocessing subprocess. Note that if you see ``pre_install`` functions associated with packages these are not hooks
as we have defined them here, but rather callback functions associated with
as we have defined them here, but rather callback functions associated with
a package install.
@@ -657,7 +639,7 @@ here.
This hook is run at the beginning of ``lib/spack/spack/installer.py``,
in the install function of a ``PackageInstaller``,
and importantly is not part of a build process, but before it. This is when
we have just newly grabbed the task, and are preparing to install. If you
we have just newly grabbed the task, and are preparing to install. If you
write a hook of this type, you should provide the spec to it.
.. code-block:: python
@@ -666,7 +648,7 @@ write a hook of this type, you should provide the spec to it.
"""On start of an install, we want to...
"""
print('on_install_start')
""""""""""""""""""""""""""""
``on_install_success(spec)``
@@ -689,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)``
"""""""""""""""""""""""""""""""""""""""""""""""
@@ -744,8 +733,8 @@ to trigger after anything is written to a logger. You would add it as follows:
post_install = HookRunner('post_install')
# hooks related to logging
post_log_write = HookRunner('post_log_write') # <- here is my new hook!
post_log_write = HookRunner('post_log_write') # <- here is my new hook!
You then need to decide what arguments my hook would expect. Since this is
related to logging, let's say that you want a message and level. That means
@@ -775,7 +764,7 @@ In this example, we use it outside of a logger that is already defined:
This is not to say that this would be the best way to implement an integration
with the logger (you'd probably want to write a custom logger, or you could
have the hook defined within the logger) but serves as an example of writing a hook.
have the hook defined within the logger) but serves as an example of writing a hook.
----------
Unit tests
@@ -785,6 +774,38 @@ Unit tests
Unit testing
------------
---------------------
Developer environment
---------------------
.. warning::
This is an experimental feature. It is expected to change and you should
not use it in a production environment.
When installing a package, we currently have support to export environment
variables to specify adding debug flags to the build. By default, a package
install will build without any debug flag. However, if you want to add them,
you can export:
.. code-block:: console
export SPACK_ADD_DEBUG_FLAGS=true
spack install zlib
If you want to add custom flags, you should export an additional variable:
.. code-block:: console
export SPACK_ADD_DEBUG_FLAGS=true
export SPACK_DEBUG_FLAGS="-g"
spack install zlib
These environment variables will eventually be integrated into spack so
they are set from the command line.
------------------
Developer commands
------------------
@@ -795,6 +816,29 @@ Developer commands
``spack doc``
^^^^^^^^^^^^^
.. _cmd-spack-style:
^^^^^^^^^^^^^^^
``spack style``
^^^^^^^^^^^^^^^
spack style exists to help the developer user to check imports and style with
mypy, flake8, isort, and (soon) black. To run all style checks, simply do:
.. code-block:: console
$ spack style
To run automatic fixes for isort you can do:
.. code-block:: console
$ spack style --fix
You do not need any of these Python packages installed on your system for
the checks to work! Spack will bootstrap install them from packages for
your use.
^^^^^^^^^^^^^^^^^^^
``spack unit-test``
^^^^^^^^^^^^^^^^^^^
@@ -873,7 +917,7 @@ just like you would with the normal ``python`` command.
^^^^^^^^^^^^^^^
Spack blame is a way to quickly see contributors to packages or files
in the spack repository. You should provide a target package name or
in the spack repository. You should provide a target package name or
file name to the command. Here is an example asking to see contributions
for the package "python":
@@ -883,8 +927,8 @@ for the package "python":
LAST_COMMIT LINES % AUTHOR EMAIL
2 weeks ago 3 0.3 Mickey Mouse <cheddar@gmouse.org>
a month ago 927 99.7 Minnie Mouse <swiss@mouse.org>
2 weeks ago 930 100.0
2 weeks ago 930 100.0
By default, you will get a table view (shown above) sorted by date of contribution,
@@ -1013,39 +1057,39 @@ Release branches
^^^^^^^^^^^^^^^^
There are currently two types of Spack releases: :ref:`major releases
<major-releases>` (``0.13.0``, ``0.14.0``, etc.) and :ref:`point releases
<point-releases>` (``0.13.1``, ``0.13.2``, ``0.13.3``, etc.). Here is a
<major-releases>` (``0.17.0``, ``0.18.0``, etc.) and :ref:`point releases
<point-releases>` (``0.17.1``, ``0.17.2``, ``0.17.3``, etc.). Here is a
diagram of how Spack release branches work::
o branch: develop (latest version)
o branch: develop (latest version, v0.19.0.dev0)
|
o merge v0.14.1 into develop
|\
| o branch: releases/v0.14, tag: v0.14.1
o | merge v0.14.0 into develop
|\|
| o tag: v0.14.0
o
| o branch: releases/v0.18, tag: v0.18.1
o |
| o tag: v0.18.0
o |
| o
|/
o merge v0.13.2 into develop
|\
| o branch: releases/v0.13, tag: v0.13.2
o | merge v0.13.1 into develop
|\|
| o tag: v0.13.1
o | merge v0.13.0 into develop
|\|
| o tag: v0.13.0
o
|
o
| o branch: releases/v0.17, tag: v0.17.2
o |
| o tag: v0.17.1
o |
| o tag: v0.17.0
o |
| o
|/
o
The ``develop`` branch has the latest contributions, and nearly all pull
requests target ``develop``.
requests target ``develop``. The ``develop`` branch will report that its
version is that of the next **major** release with a ``.dev0`` suffix.
Each Spack release series also has a corresponding branch, e.g.
``releases/v0.14`` has ``0.14.x`` versions of Spack, and
``releases/v0.13`` has ``0.13.x`` versions. A major release is the first
``releases/v0.18`` has ``0.18.x`` versions of Spack, and
``releases/v0.17`` has ``0.17.x`` versions. A major release is the first
tagged version on a release branch. Minor releases are back-ported from
develop onto release branches. This is typically done by cherry-picking
bugfix commits off of ``develop``.
@@ -1056,12 +1100,20 @@ packages. They should generally only contain fixes to the Spack core.
However, sometimes priorities are such that new functionality needs to
be added to a minor release.
Both major and minor releases are tagged. After each release, we merge
the release branch back into ``develop`` so that the version bump and any
other release-specific changes are visible in the mainline. As a
convenience, we also tag the latest release as ``releases/latest``,
so that users can easily check it out to get the latest
stable version. See :ref:`merging-releases` for more details.
Both major and minor releases are tagged. As a convenience, we also tag
the latest release as ``releases/latest``, so that users can easily check
it out to get the latest stable version. See :ref:`updating-latest-release`
for more details.
.. note::
Older spack releases were merged **back** into develop so that we could
do fancy things with tags, but since tarballs and many git checkouts do
not have tags, this proved overly complex and confusing.
We have since converted to using `PEP 440 <https://peps.python.org/pep-0440/>`_
compliant versions. `See here <https://github.com/spack/spack/pull/25267>`_ for
details.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Scheduling work for releases
@@ -1119,10 +1171,11 @@ completed, the steps to make the major release are:
``releases/vX.Y``. That is, you should create a ``releases/vX.Y``
branch if you are preparing the ``X.Y.0`` release.
#. Bump the version in ``lib/spack/spack/__init__.py``.
#. Remove the ``dev0`` development release segment from the version tuple in
``lib/spack/spack/__init__.py``.
See `this example from 0.13.0
<https://github.com/spack/spack/commit/8eeb64096c98b8a43d1c587f13ece743c864fba9>`_
The version number itself should already be correct and should not be
modified.
#. Update ``CHANGELOG.md`` with major highlights in bullet form.
@@ -1140,9 +1193,20 @@ 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``.
#. Bump the major version in the ``develop`` branch.
Create a pull request targeting the ``develop`` branch, bumping the major
version in ``lib/spack/spack/__init__.py`` with a ``dev0`` release segment.
For instance when you have just released ``v0.15.0``, set the version
to ``(0, 16, 0, 'dev0')`` on ``develop``.
#. Follow the steps in :ref:`publishing-releases`.
#. Follow the steps in :ref:`merging-releases`.
#. Follow the steps in :ref:`updating-latest-release`.
#. Follow the steps in :ref:`announcing-releases`.
@@ -1218,9 +1282,6 @@ completed, the steps to make the point release are:
#. Bump the version in ``lib/spack/spack/__init__.py``.
See `this example from 0.14.1
<https://github.com/spack/spack/commit/ff0abb9838121522321df2a054d18e54b566b44a>`_.
#. Update ``CHANGELOG.md`` with a list of the changes.
This is typically a summary of the commits you cherry-picked onto the
@@ -1242,7 +1303,7 @@ completed, the steps to make the point release are:
#. Follow the steps in :ref:`publishing-releases`.
#. Follow the steps in :ref:`merging-releases`.
#. Follow the steps in :ref:`updating-latest-release`.
#. Follow the steps in :ref:`announcing-releases`.
@@ -1255,7 +1316,7 @@ Publishing a release on GitHub
#. Create the release in GitHub.
* Go to
* Go to
`github.com/spack/spack/releases <https://github.com/spack/spack/releases>`_
and click ``Draft a new release``.
@@ -1303,11 +1364,11 @@ Publishing a release on GitHub
selectable in the versions menu.
.. _merging-releases:
.. _updating-latest-release:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Updating `releases/latest` and `develop`
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^^^^^^
Updating `releases/latest`
^^^^^^^^^^^^^^^^^^^^^^^^^^
If the new release is the **highest** Spack release yet, you should
also tag it as ``releases/latest``. For example, suppose the highest
@@ -1331,40 +1392,6 @@ To tag ``releases/latest``, do this:
The ``--force`` argument to ``git tag`` makes ``git`` overwrite the existing
``releases/latest`` tag with the new one.
We also merge each release that we tag as ``releases/latest`` into ``develop``.
Make sure to do this with a merge commit:
.. code-block:: console
$ git checkout develop
$ git merge --no-ff -s ours vX.Y.Z # vX.Y.Z is the new release's tag
$ git push
We merge back to ``develop`` because it:
* updates the version and ``CHANGELOG.md`` on ``develop``; and
* ensures that your release tag is reachable from the head of
``develop``.
We *must* use a real merge commit (via the ``--no-ff`` option) to
ensure that the release tag is reachable from the tip of ``develop``.
This is necessary for ``spack -V`` to work properly -- it uses ``git
describe --tags`` to find the last reachable tag in the repository and
reports how far we are from it. For example:
.. code-block:: console
$ spack -V
0.14.2-1486-b80d5e74e5
This says that we are at commit ``b80d5e74e5``, which is 1,486 commits
ahead of the ``0.14.2`` release.
We put this step last in the process because it's best to do it only once
the release is complete and tagged. If you do it before you've tagged the
release and later decide you want to tag some later commit, you'll need
to merge again.
.. _announcing-releases:

View File

@@ -1,13 +1,13 @@
.. 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)
.. _environments:
============
Environments
============
=========================
Environments (spack.yaml)
=========================
An environment is used to group together a set of specs for the
purpose of building, rebuilding and deploying in a coherent fashion.
@@ -384,18 +384,11 @@ Sourcing that file in Bash will make the environment available to the
user; and can be included in ``.bashrc`` files, etc. The ``loads``
file may also be copied out of the environment, renamed, etc.
----------
spack.yaml
----------
Spack environments can be customized at finer granularity by editing
the ``spack.yaml`` manifest file directly.
.. _environment-configuration:
^^^^^^^^^^^^^^^^^^^^^^^^
------------------------
Configuring Environments
^^^^^^^^^^^^^^^^^^^^^^^^
------------------------
A variety of Spack behaviors are changed through Spack configuration
files, covered in more detail in the :ref:`configuration`
@@ -417,9 +410,9 @@ environment can be specified by ``env:NAME`` (to affect environment
``foo``, set ``--scope env:foo``). These commands will automatically
manipulate configuration inline in the ``spack.yaml`` file.
"""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^
Inline configurations
"""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^
Inline Environment-scope configuration is done using the same yaml
format as standard Spack configuration scopes, covered in the
@@ -440,9 +433,9 @@ a ``packages.yaml`` file) could contain:
This configuration sets the default compiler for all packages to
``intel``.
"""""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^^^
Included configurations
"""""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^^^
Spack environments allow an ``include`` heading in their yaml
schema. This heading pulls in external configuration files and applies
@@ -462,9 +455,9 @@ to make small changes to an individual Environment. Included configs
listed earlier will have higher precedence, as the included configs are
applied in reverse order.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-------------------------------
Manually Editing the Specs List
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-------------------------------
The list of abstract/root specs in the Environment is maintained in
the ``spack.yaml`` manifest under the heading ``specs``.
@@ -482,9 +475,9 @@ Appending to this list in the yaml is identical to using the ``spack
add`` command from the command line. However, there is more power
available from the yaml file.
"""""""""""""""""""
^^^^^^^^^^^^^^^^^^^
Spec concretization
"""""""""""""""""""
^^^^^^^^^^^^^^^^^^^
Specs can be concretized separately or together, as already
explained in :ref:`environments_concretization`. The behavior active
@@ -510,9 +503,9 @@ which can currently take either one of the two allowed values ``together`` or ``
the environment remains consistent. When instead the specs are concretized
separately only the new specs will be re-concretized after any addition.
"""""""""""""
^^^^^^^^^^^^^
Spec Matrices
"""""""""""""
^^^^^^^^^^^^^
Entries in the ``specs`` list can be individual abstract specs or a
spec matrix.
@@ -572,9 +565,9 @@ This allows one to create toolchains out of combinations of
constraints and apply them somewhat indiscriminately to packages,
without regard for the applicability of the constraint.
""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^
Spec List References
""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^
The last type of possible entry in the specs list is a reference.
@@ -674,9 +667,9 @@ The valid variables for a ``when`` clause are:
#. ``hostname``. The hostname of the system (if ``hostname`` is an
executable in the user's PATH).
""""""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^^^^
SpecLists as Constraints
""""""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^^^^
Dependencies and compilers in Spack can be both packages in an
environment and constraints on other packages. References to SpecLists
@@ -708,37 +701,41 @@ For example, the following environment has three root packages:
This allows for a much-needed reduction in redundancy between packages
and constraints.
^^^^^^^^^^^^^^^^^^^^^^^^^
Environment-managed Views
^^^^^^^^^^^^^^^^^^^^^^^^^
----------------
Filesystem Views
----------------
Spack Environments can define filesystem views of their software,
which are maintained as packages and can be installed and uninstalled from
the Environment. Filesystem views provide an access point for packages
from the filesystem for users who want to access those packages
directly. For more information on filesystem views, see the section
:ref:`filesystem-views`.
Spack Environment managed views are updated every time the environment
is written out to the lock file ``spack.lock``, so the concrete
environment and the view are always compatible.
Spack Environments can define filesystem views, which provide a direct access point
for software similar to the directory hierarchy that might exist under ``/usr/local``.
Filesystem views are updated every time the environment is written out to the lock
file ``spack.lock``, so the concrete environment and the view are always compatible.
The files of the view's installed packages are brought into the view by symbolic or
hard links, referencing the original Spack installation, or by copy.
.. _configuring_environment_views:
"""""""""""""""""""""""""""""
Configuring environment views
"""""""""""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Configuration in ``spack.yaml``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The Spack Environment manifest file has a top-level keyword
``view``. Each entry under that heading is a view descriptor, headed
by a name. The view descriptor contains the root of the view, and
optionally the projections for the view, and ``select`` and
``exclude`` lists for the view. For example, in the following manifest
``view``. Each entry under that heading is a **view descriptor**, headed
by a name. Any number of views may be defined under the ``view`` heading.
The view descriptor contains the root of the view, and
optionally the projections for the view, ``select`` and
``exclude`` lists for the view and link information via ``link`` and
``link_type``.
For example, in the following manifest
file snippet we define a view named ``mpis``, rooted at
``/path/to/view`` in which all projections use the package name,
version, and compiler name to determine the path for a given
package. This view selects all packages that depend on MPI, and
excludes those built with the PGI compiler at version 18.5.
The root specs with their (transitive) link and run type dependencies
will be put in the view due to the ``link: all`` option,
and the files in the view will be symlinks to the spack install
directories.
.. code-block:: yaml
@@ -751,14 +748,29 @@ excludes those built with the PGI compiler at version 18.5.
exclude: ['%pgi@18.5']
projections:
all: {name}/{version}-{compiler.name}
link: all
link_type: symlink
For more information on using view projections, see the section on
:ref:`adding_projections_to_views`. The default for the ``select`` and
The default for the ``select`` and
``exclude`` values is to select everything and exclude nothing. The
default projection is the default view projection (``{}``).
default projection is the default view projection (``{}``). The ``link``
attribute allows the following values:
#. ``link: all`` include root specs with their transitive run and link type
dependencies (default);
#. ``link: run`` include root specs with their transitive run type dependencies;
#. ``link: roots`` include root specs without their dependencies.
The ``link_type`` defaults to ``symlink`` but can also take the value
of ``hardlink`` or ``copy``.
.. tip::
The option ``link: run`` can be used to create small environment views for
Python packages. Python will be able to import packages *inside* of the view even
when the environment is not activated, and linked libraries will be located
*outside* of the view thanks to rpaths.
Any number of views may be defined under the ``view`` heading in a
Spack Environment.
There are two shorthands for environments with a single view. If the
environment at ``/path/to/env`` has a single view, with a root at
@@ -824,9 +836,47 @@ regenerate`` will regenerate the views for the environment. This will
apply any updates in the environment configuration that have not yet
been applied.
""""""""""""""""""""""""""""
.. _view_projections:
""""""""""""""""
View Projections
""""""""""""""""
The default projection into a view is to link every package into the
root of the view. The projections attribute is a mapping of partial specs to
spec format strings, defined by the :meth:`~spack.spec.Spec.format`
function, as shown in the example below:
.. code-block:: yaml
projections:
zlib: {name}-{version}
^mpi: {name}-{version}/{^mpi.name}-{^mpi.version}-{compiler.name}-{compiler.version}
all: {name}-{version}/{compiler.name}-{compiler.version}
The entries in the projections configuration file must all be either
specs or the keyword ``all``. For each spec, the projection used will
be the first non-``all`` entry that the spec satisfies, or ``all`` if
there is an entry for ``all`` and no other entry is satisfied by the
spec. Where the keyword ``all`` appears in the file does not
matter.
Given the example above, the spec ``zlib@1.2.8``
will be linked into ``/my/view/zlib-1.2.8/``, the spec
``hdf5@1.8.10+mpi %gcc@4.9.3 ^mvapich2@2.2`` will be linked into
``/my/view/hdf5-1.8.10/mvapich2-2.2-gcc-4.9.3``, and the spec
``hdf5@1.8.10~mpi %gcc@4.9.3`` will be linked into
``/my/view/hdf5-1.8.10/gcc-4.9.3``.
If the keyword ``all`` does not appear in the projections
configuration file, any spec that does not satisfy any entry in the
file will be linked into the root of the view as in a single-prefix
view. Any entries that appear below the keyword ``all`` in the
projections configuration file will not be used, as all specs will use
the projection under ``all`` before reaching those entries.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Activating environment views
""""""""""""""""""""""""""""
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
The ``spack env activate`` command will put the default view for the
environment into the user's path, in addition to activating the

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)
@@ -9,21 +9,16 @@
Getting Started
===============
-------------
Prerequisites
-------------
--------------------
System Prerequisites
--------------------
Spack has the following minimum requirements, which must be installed
before Spack is run:
Spack has the following minimum system requirements, which are assumed to
be present on the machine where Spack is run:
#. Python 2 (2.6 or 2.7) or 3 (3.5 - 3.9) to run Spack
#. A C/C++ compiler for building
#. The ``make`` executable for building
#. The ``tar``, ``gzip``, ``unzip``, ``bzip2``, ``xz`` and optionally ``zstd``
executables for extracting source code
#. The ``patch`` command to apply patches
#. The ``git`` and ``curl`` commands for fetching
#. If using the ``gpg`` subcommand, ``gnupg2`` is required
.. csv-table:: System prerequisites for Spack
:file: tables/system_prerequisites.csv
:header-rows: 1
These requirements can be easily installed on most modern Linux systems;
on macOS, XCode is required. Spack is designed to run on HPC
@@ -40,7 +35,7 @@ Getting Spack is easy. You can clone it from the `github repository
.. code-block:: console
$ git clone https://github.com/spack/spack.git
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
This will create a directory called ``spack``.
@@ -89,6 +84,141 @@ sourcing time, ensuring future invocations of the ``spack`` command will
continue to use the same consistent python version regardless of changes in
the environment.
^^^^^^^^^^^^^^^^^^^^
Bootstrapping clingo
^^^^^^^^^^^^^^^^^^^^
Spack uses ``clingo`` under the hood to resolve optimal versions and variants of
dependencies when installing a package. Since ``clingo`` itself is a binary,
Spack has to install it on initial use, which is called bootstrapping.
Spack provides two ways of bootstrapping ``clingo``: from pre-built binaries
(default), or from sources. The fastest way to get started is to bootstrap from
pre-built binaries.
.. note::
When bootstrapping from pre-built binaries, Spack currently requires
``patchelf`` on Linux and ``otool`` on macOS. If ``patchelf`` is not in the
``PATH``, Spack will build it from sources, and a C++ compiler is required.
The first time you concretize a spec, Spack will bootstrap in the background:
.. code-block:: console
$ time spack spec zlib
Input spec
--------------------------------
zlib
Concretized
--------------------------------
zlib@1.2.11%gcc@7.5.0+optimize+pic+shared arch=linux-ubuntu18.04-zen
real 0m20.023s
user 0m18.351s
sys 0m0.784s
After this command you'll see that ``clingo`` has been installed for Spack's own use:
.. code-block:: console
$ spack find -b
==> Showing internal bootstrap store at "/root/.spack/bootstrap/store"
==> 3 installed packages
-- linux-rhel5-x86_64 / gcc@9.3.0 -------------------------------
clingo-bootstrap@spack python@3.6
-- linux-ubuntu18.04-zen / gcc@7.5.0 ----------------------------
patchelf@0.13
Subsequent calls to the concretizer will then be much faster:
.. code-block:: console
$ time spack spec zlib
[ ... ]
real 0m0.490s
user 0m0.431s
sys 0m0.041s
If for security concerns you cannot bootstrap ``clingo`` from pre-built
binaries, you have to mark this bootstrapping method as untrusted. This makes
Spack fall back to bootstrapping from sources:
.. code-block:: console
$ spack bootstrap untrust github-actions-v0.2
==> "github-actions-v0.2" is now untrusted and will not be used for bootstrapping
You can verify that the new settings are effective with:
.. code-block:: console
$ spack bootstrap list
Name: github-actions-v0.2 UNTRUSTED
Type: buildcache
Info:
url: https://mirror.spack.io/bootstrap/github-actions/v0.2
homepage: https://github.com/spack/spack-bootstrap-mirrors
releases: https://github.com/spack/spack-bootstrap-mirrors/releases
Description:
Buildcache generated from a public workflow using Github Actions.
The sha256 checksum of binaries is checked before installation.
[ ... ]
Name: spack-install TRUSTED
Type: install
Description:
Specs built from sources by Spack. May take a long time.
.. note::
When bootstrapping from sources, Spack requires a full install of Python
including header files (e.g. ``python3-dev`` on Debian), and a compiler
with support for C++14 (GCC on Linux, Apple Clang on macOS) and static C++
standard libraries on Linux.
Spack will build the required software on the first request to concretize a spec:
.. code-block:: console
$ spack spec zlib
[+] /usr (external bison-3.0.4-wu5pgjchxzemk5ya2l3ddqug2d7jv6eb)
[+] /usr (external cmake-3.19.4-a4kmcfzxxy45mzku4ipmj5kdiiz5a57b)
[+] /usr (external python-3.6.9-x4fou4iqqlh5ydwddx3pvfcwznfrqztv)
==> Installing re2c-1.2.1-e3x6nxtk3ahgd63ykgy44mpuva6jhtdt
[ ... ]
zlib@1.2.11%gcc@10.1.0+optimize+pic+shared arch=linux-ubuntu18.04-broadwell
"""""""""""""""""""
The Bootstrap Store
"""""""""""""""""""
All the tools Spack needs for its own functioning are installed in a separate store, which lives
under the ``${HOME}/.spack`` directory. The software installed there can be queried with:
.. code-block:: console
$ spack find --bootstrap
==> Showing internal bootstrap store at "/home/spack/.spack/bootstrap/store"
==> 3 installed packages
-- linux-ubuntu18.04-x86_64 / gcc@10.1.0 ------------------------
clingo-bootstrap@spack python@3.6.9 re2c@1.2.1
In case it's needed the bootstrap store can also be cleaned with:
.. code-block:: console
$ spack clean -b
==> Removing software in "/home/spack/.spack/bootstrap/store"
^^^^^^^^^^^^^^^^^^
Check Installation
@@ -117,53 +247,6 @@ environment*, especially for ``PATH``. Only software that comes with
the system, or that you know you wish to use with Spack, should be
included. This procedure will avoid many strange build errors.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Optional: Bootstrapping clingo
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Spack supports using clingo as an external solver to compute which software
needs to be installed. If you have a default compiler supporting C++14 Spack
can automatically bootstrap this tool from sources the first time it is
needed:
.. code-block:: console
$ spack solve zlib
[+] /usr (external bison-3.0.4-wu5pgjchxzemk5ya2l3ddqug2d7jv6eb)
[+] /usr (external cmake-3.19.4-a4kmcfzxxy45mzku4ipmj5kdiiz5a57b)
[+] /usr (external python-3.6.9-x4fou4iqqlh5ydwddx3pvfcwznfrqztv)
==> Installing re2c-1.2.1-e3x6nxtk3ahgd63ykgy44mpuva6jhtdt
[ ... ]
==> Optimization: [0, 0, 0, 0, 0, 1, 0, 0, 0]
zlib@1.2.11%gcc@10.1.0+optimize+pic+shared arch=linux-ubuntu18.04-broadwell
If you want to speed-up bootstrapping, you may try to search for ``cmake`` and ``bison``
on your system:
.. code-block:: console
$ spack external find cmake bison
==> The following specs have been detected on this system and added to /home/spack/.spack/packages.yaml
bison@3.0.4 cmake@3.19.4
All the tools Spack needs for its own functioning are installed in a separate store, which lives
under the ``${HOME}/.spack`` directory. The software installed there can be queried with:
.. code-block:: console
$ spack find --bootstrap
==> Showing internal bootstrap store at "/home/spack/.spack/bootstrap/store"
==> 3 installed packages
-- linux-ubuntu18.04-x86_64 / gcc@10.1.0 ------------------------
clingo-bootstrap@spack python@3.6.9 re2c@1.2.1
In case it's needed the bootstrap store can also be cleaned with:
.. code-block:: console
$ spack clean -b
==> Removing software in "/home/spack/.spack/bootstrap/store"
^^^^^^^^^^^^^^^^^^^^^^^^^^
Optional: Alternate Prefix
^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -189,9 +272,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:
@@ -199,7 +283,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
@@ -238,9 +322,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
@@ -367,6 +452,34 @@ then inject those flags into the compiler command. Compiler flags
entered from the command line will be discussed in more detail in the
following section.
Some compilers also require additional environment configuration.
Examples include Intels oneAPI and AMDs AOCC compiler suites,
which have custom scripts for loading environment variables and setting paths.
These variables should be specified in the ``environment`` section of the compiler
specification. The operations available to modify the environment are ``set``, ``unset``,
``prepend_path``, ``append_path``, and ``remove_path``. For example:
.. code-block:: yaml
compilers:
- compiler:
modules: []
operating_system: centos6
paths:
cc: /opt/intel/oneapi/compiler/latest/linux/bin/icx
cxx: /opt/intel/oneapi/compiler/latest/linux/bin/icpx
f77: /opt/intel/oneapi/compiler/latest/linux/bin/ifx
fc: /opt/intel/oneapi/compiler/latest/linux/bin/ifx
spec: oneapi@latest
environment:
set:
MKL_ROOT: "/path/to/mkl/root"
unset: # A list of environment variables to unset
- CC
prepend_path: # Similar for append|remove_path
LD_LIBRARY_PATH: /ld/paths/added/by/setvars/sh
^^^^^^^^^^^^^^^^^^^^^^^
Build Your Own Compiler
^^^^^^^^^^^^^^^^^^^^^^^
@@ -521,8 +634,9 @@ Fortran.
#. Run ``spack compiler find`` to locate Clang.
#. There are different ways to get ``gfortran`` on macOS. For example, you can
install GCC with Spack (``spack install gcc``) or with Homebrew
(``brew install gcc``).
install GCC with Spack (``spack install gcc``), with Homebrew (``brew install
gcc``), or from a `DMG installer
<https://github.com/fxcoudert/gfortran-for-macOS/releases>`_.
#. The only thing left to do is to edit ``~/.spack/darwin/compilers.yaml`` to provide
the path to ``gfortran``:
@@ -543,7 +657,8 @@ Fortran.
If you used Spack to install GCC, you can get the installation prefix by
``spack location -i gcc`` (this will only work if you have a single version
of GCC installed). Whereas for Homebrew, GCC is installed in
``/usr/local/Cellar/gcc/x.y.z``.
``/usr/local/Cellar/gcc/x.y.z``. With the DMG installer, the correct path
will be ``/usr/local/gfortran``.
^^^^^^^^^^^^^^^^^^^^^
Compiler Verification
@@ -777,7 +892,7 @@ an OpenMPI installed in /opt/local, one would use:
buildable: False
In general, Spack is easier to use and more reliable if it builds all of
its own dependencies. However, there are two packages for which one
its own dependencies. However, there are several packages for which one
commonly needs to use system versions:
^^^
@@ -1402,3 +1517,238 @@ To ensure that Spack does not autodetect the Cray programming
environment, unset the environment variable ``MODULEPATH``. This
will cause Spack to treat a linux container on a Cray system as a base
linux distro.
.. _windows_support:
----------------
Spack On Windows
----------------
Windows support for Spack is currently under development. While this work is still in an early stage,
it is currently possible to set up Spack and perform a few operations on Windows. This section will guide
you through the steps needed to install Spack and start running it on a fresh Windows machine.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step 1: Install prerequisites
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To use Spack on Windows, you will need the following packages:
Required:
* Microsoft Visual Studio
* Python
* Git
Optional:
* Intel Fortran (needed for some packages)
.. note::
Currently MSVC is the only compiler tested for C/C++ projects. Intel OneAPI provides Fortran support.
"""""""""""""""""""""""
Microsoft Visual Studio
"""""""""""""""""""""""
Microsoft Visual Studio provides the only Windows C/C++ compiler that is currently supported by Spack.
We require several specific components to be included in the Visual Studio installation.
One is the C/C++ toolset, which can be selected as "Desktop development with C++" or "C++ build tools,"
depending on installation type (Professional, Build Tools, etc.) The other required component is
"C++ CMake tools for Windows," which can be selected from among the optional packages.
This provides CMake and Ninja for use during Spack configuration.
If you already have Visual Studio installed, you can make sure these components are installed by
rerunning the installer. Next to your installation, select "Modify" and look at the
"Installation details" pane on the right.
"""""""""""""
Intel Fortran
"""""""""""""
For Fortran-based packages on Windows, we strongly recommend Intel's oneAPI Fortran compilers.
The suite is free to download from Intel's website, located at
https://software.intel.com/content/www/us/en/develop/tools/oneapi/components/fortran-compiler.html#gs.70t5tw.
The executable of choice for Spack will be Intel's Beta Compiler, ifx, which supports the classic
compiler's (ifort's) frontend and runtime libraries by using LLVM.
""""""
Python
""""""
As Spack is a Python-based package, an installation of Python will be needed to run it.
Python 3 can be downloaded and installed from the Windows Store, and will be automatically added
to your ``PATH`` in this case.
.. note::
Spack currently supports Python versions later than 3.2 inclusive.
"""
Git
"""
A bash console and GUI can be downloaded from https://git-scm.com/downloads.
If you are unfamiliar with Git, there are a myriad of resources online to help
guide you through checking out repositories and switching development branches.
When given the option of adjusting your ``PATH``, choose the ``Git from the
command line and also from 3rd-party software`` option. This will automatically
update your ``PATH`` variable to include the ``git`` command.
Spack support on Windows is currently dependent on installing the Git for Windows project
as the project providing Git support on Windows. This is additionally the recommended method
for installing Git on Windows, a link to which can be found above. Spack requires the
utilities vendored by this project.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step 2: Install and setup Spack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
We are now ready to get the Spack environment set up on our machine. We
begin by using Git to clone the Spack repo, hosted at https://github.com/spack/spack.git
into a desired directory, for our purposes today, called ``spack_install``.
In order to install Spack with Windows support, run the following one liner
in a Windows CMD prompt.
.. code-block:: console
git clone https://github.com/spack/spack.git
.. note::
If you chose to install Spack into a directory on Windows that is set up to require Administrative
Privleges, Spack will require elevated privleges to run.
Administrative Privleges can be denoted either by default such as
``C:\Program Files``, or aministrator applied administrative restrictions
on a directory that spack installs files to such as ``C:\Users``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step 3: Run and configure Spack
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
To use Spack, run ``bin\spack_cmd.bat`` (you may need to Run as Administrator) from the top-level spack
directory. This will provide a Windows command prompt with an environment properly set up with Spack
and its prerequisites. If you receive a warning message that Python is not in your ``PATH``
(which may happen if you installed Python from the website and not the Windows Store) add the location
of the Python executable to your ``PATH`` now. You can permanently add Python to your ``PATH`` variable
by using the ``Edit the system environment variables`` utility in Windows Control Panel.
.. note::
Alternatively, Powershell can be used in place of CMD
To configure Spack, first run the following command inside the Spack console:
.. code-block:: console
spack compiler find
This creates a ``.staging`` directory in our Spack prefix, along with a ``windows`` subdirectory
containing a ``compilers.yaml`` file. On a fresh Windows install with the above packages
installed, this command should only detect Microsoft Visual Studio and the Intel Fortran
compiler will be integrated within the first version of MSVC present in the ``compilers.yaml``
output.
Spack provides a default ``config.yaml`` file for Windows that it will use unless overridden.
This file is located at ``etc\spack\defaults\windows\config.yaml``. You can read more on how to
do this and write your own configuration files in the :ref:`Configuration Files<configuration>` section of our
documentation. If you do this, pay particular attention to the ``build_stage`` block of the file
as this specifies the directory that will temporarily hold the source code for the packages to
be installed. This path name must be sufficiently short for compliance with cmd, otherwise you
will see build errors during installation (particularly with CMake) tied to long path names.
To allow Spack use of external tools and dependencies already on your system, the
external pieces of software must be described in the ``packages.yaml`` file.
There are two methods to populate this file:
The first and easiest choice is to use Spack to find installation on your system. In
the Spack terminal, run the following commands:
.. code-block:: console
spack external find cmake
spack external find ninja
The ``spack external find <name>`` will find executables on your system
with the same name given. The command will store the items found in
``packages.yaml`` in the ``.staging\`` directory.
Assuming that the command found CMake and Ninja executables in the previous
step, continue to Step 4. If no executables were found, we may need to manually direct spack towards the CMake
and Ninja installations we set up with Visual Studio. Therefore, your ``packages.yaml`` file will look something
like this, with possibly slight variants in the paths to CMake and Ninja:
.. code-block:: yaml
packages:
cmake:
externals:
- spec: cmake@3.19
prefix: 'c:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake'
buildable: False
ninja:
externals:
- spec: ninja@1.8.2
prefix: 'c:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja'
buildable: False
You can also use an separate installation of CMake if you have one and prefer
to use it. If you don't have a path to Ninja analogous to the above, then you can
obtain it by running the Visual Studio Installer and following the instructions
at the start of this section. Also note that .yaml files use spaces for indentation
and not tabs, so ensure that this is the case when editing one directly.
.. note:: Cygwin
The use of Cygwin is not officially supported by Spack and is not tested.
However Spack will not throw an error, so use if choosing to use Spack
with Cygwin, know that no functionality is garunteed.
^^^^^^^^^^^^^^^^^
Step 4: Use Spack
^^^^^^^^^^^^^^^^^
Once the configuration is complete, it is time to give the installation a test. Install a basic package though the
Spack console via:
.. code-block:: console
spack install cpuinfo
If in the previous step, you did not have CMake or Ninja installed, running the command above should boostrap both packages
"""""""""""""""""""""""""""
Windows Compatible Packages
"""""""""""""""""""""""""""
Many Spack packages are not currently compatible with Windows, due to Unix
dependencies or incompatible build tools like autoconf. Here are several
packages known to work on Windows:
* abseil-cpp
* clingo
* cpuinfo
* cmake
* glm
* nasm
* netlib-lapack (requires Intel Fortran)
* ninja
* openssl
* perl
* python
* ruby
* wrf
* zlib
.. note::
This is by no means a comprehensive list
^^^^^^^^^^^^^^
For developers
^^^^^^^^^^^^^^
The intent is to provide a Windows installer that will automatically set up
Python, Git, and Spack, instead of requiring the user to do so manually.
Instructions for creating the installer are at
https://github.com/spack/spack/blob/develop/lib/spack/spack/cmd/installer/README.md
Alternatively a pre-built copy of the Windows installer is available as an artifact of Spack's Windows CI

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)
@@ -39,7 +39,7 @@ package:
.. code-block:: console
$ git clone https://github.com/spack/spack.git
$ git clone -c feature.manyFiles=true https://github.com/spack/spack.git
$ cd spack/bin
$ ./spack install libelf
@@ -54,9 +54,8 @@ or refer to the full manual below.
features
getting_started
basic_usage
workflows
Tutorial: Spack 101 <https://spack-tutorial.readthedocs.io>
known_issues
replace_conda_homebrew
.. toctree::
:maxdepth: 2

View File

@@ -1,77 +0,0 @@
.. Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
Spack Project Developers. See the top-level COPYRIGHT file for details.
SPDX-License-Identifier: (Apache-2.0 OR MIT)
============
Known Issues
============
This is a list of known bugs in Spack. It provides ways of getting around these
problems if you encounter them.
---------------------------------------------------
Variants are not properly forwarded to dependencies
---------------------------------------------------
**Status:** Expected to be fixed by Spack's new concretizer
Sometimes, a variant of a package can also affect how its dependencies are
built. For example, in order to build MPI support for a package, it may
require that its dependencies are also built with MPI support. In the
``package.py``, this looks like:
.. code-block:: python
depends_on('hdf5~mpi', when='~mpi')
depends_on('hdf5+mpi', when='+mpi')
Spack handles this situation properly for *immediate* dependencies, and
builds ``hdf5`` with the same variant you used for the package that
depends on it. However, for *indirect* dependencies (dependencies of
dependencies), Spack does not backtrack up the DAG far enough to handle
this. Users commonly run into this situation when trying to build R with
X11 support:
.. code-block:: console
$ spack install r+X
...
==> Error: Invalid spec: 'cairo@1.14.8%gcc@6.2.1+X arch=linux-fedora25-x86_64 ^bzip2@1.0.6%gcc@6.2.1+shared arch=linux-fedora25-x86_64 ^font-util@1.3.1%gcc@6.2.1 arch=linux-fedora25-x86_64 ^fontconfig@2.12.1%gcc@6.2.1 arch=linux-fedora25-x86_64 ^freetype@2.7.1%gcc@6.2.1 arch=linux-fedora25-x86_64 ^gettext@0.19.8.1%gcc@6.2.1+bzip2+curses+git~libunistring+libxml2+tar+xz arch=linux-fedora25-x86_64 ^glib@2.53.1%gcc@6.2.1~libmount arch=linux-fedora25-x86_64 ^inputproto@2.3.2%gcc@6.2.1 arch=linux-fedora25-x86_64 ^kbproto@1.0.7%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libffi@3.2.1%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libpng@1.6.29%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libpthread-stubs@0.4%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libx11@1.6.5%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libxau@1.0.8%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libxcb@1.12%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libxdmcp@1.1.2%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libxext@1.3.3%gcc@6.2.1 arch=linux-fedora25-x86_64 ^libxml2@2.9.4%gcc@6.2.1~python arch=linux-fedora25-x86_64 ^libxrender@0.9.10%gcc@6.2.1 arch=linux-fedora25-x86_64 ^ncurses@6.0%gcc@6.2.1~symlinks arch=linux-fedora25-x86_64 ^openssl@1.0.2k%gcc@6.2.1 arch=linux-fedora25-x86_64 ^pcre@8.40%gcc@6.2.1+utf arch=linux-fedora25-x86_64 ^pixman@0.34.0%gcc@6.2.1 arch=linux-fedora25-x86_64 ^pkg-config@0.29.2%gcc@6.2.1+internal_glib arch=linux-fedora25-x86_64 ^python@2.7.13%gcc@6.2.1+shared~tk~ucs4 arch=linux-fedora25-x86_64 ^readline@7.0%gcc@6.2.1 arch=linux-fedora25-x86_64 ^renderproto@0.11.1%gcc@6.2.1 arch=linux-fedora25-x86_64 ^sqlite@3.18.0%gcc@6.2.1 arch=linux-fedora25-x86_64 ^tar^util-macros@1.19.1%gcc@6.2.1 arch=linux-fedora25-x86_64 ^xcb-proto@1.12%gcc@6.2.1 arch=linux-fedora25-x86_64 ^xextproto@7.3.0%gcc@6.2.1 arch=linux-fedora25-x86_64 ^xproto@7.0.31%gcc@6.2.1 arch=linux-fedora25-x86_64 ^xtrans@1.3.5%gcc@6.2.1 arch=linux-fedora25-x86_64 ^xz@5.2.3%gcc@6.2.1 arch=linux-fedora25-x86_64 ^zlib@1.2.11%gcc@6.2.1+pic+shared arch=linux-fedora25-x86_64'.
Package cairo requires variant ~X, but spec asked for +X
A workaround is to explicitly activate the variants of dependencies as well:
.. code-block:: console
$ spack install r+X ^cairo+X ^pango+X
See https://github.com/spack/spack/issues/267 and
https://github.com/spack/spack/issues/2546 for further details.
-----------------------------------------------
depends_on cannot handle recursive dependencies
-----------------------------------------------
**Status:** Not yet a work in progress
Although ``depends_on`` can handle any aspect of Spack's spec syntax,
it currently cannot handle recursive dependencies. If the ``^`` sigil
appears in a ``depends_on`` statement, the concretizer will hang.
For example, something like:
.. code-block:: python
depends_on('mfem+cuda ^hypre+cuda', when='+cuda')
should be rewritten as:
.. code-block:: python
depends_on('mfem+cuda', when='+cuda')
depends_on('hypre+cuda', when='+cuda')
See https://github.com/spack/spack/issues/17660 and
https://github.com/spack/spack/issues/11160 for more details.

View File

@@ -1,13 +1,13 @@
.. 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)
.. _mirrors:
=======
Mirrors
=======
======================
Mirrors (mirrors.yaml)
======================
Some sites may not have access to the internet for fetching packages.
These sites will need a local repository of tarballs from which they

View File

@@ -1,13 +1,13 @@
.. 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)
.. _modules:
=======
Modules
=======
======================
Modules (modules.yaml)
======================
The use of module systems to manage user environment in a controlled way
is a common practice at HPC centers that is often embraced also by
@@ -181,10 +181,7 @@ to the environment variables listed below the folder name.
Spack modules can be configured for multiple module sets. The default
module set is named ``default``. All Spack commands which operate on
modules default to apply the ``default`` module set, but can be
applied to any module set in the configuration. Settings applied at
the root of the configuration (e.g. ``modules:enable`` rather than
``modules:default:enable``) are applied to the default module set for
backwards compatibility.
applied to any module set in the configuration.
"""""""""""""""""""""""""
Changing the modules root
@@ -213,6 +210,18 @@ location). The set ``my_custom_lmod_modules`` will install its lmod
modules to ``/path/to/install/custom/lmod/modules`` (and still install
its tcl modules, if any, to the default location).
By default, an architecture-specific directory is added to the root
directory. A module set may override that behavior by setting the
``arch_folder`` config value to ``False``.
.. code-block:: yaml
modules:
default:
roots:
tcl: /path/to/install/tcl/modules
arch_folder: false
Obviously, having multiple module sets install modules to the default
location could be confusing to users of your modules. In the next
section, we will discuss enabling and disabling module types (module
@@ -261,29 +270,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``.
@@ -310,9 +320,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``
@@ -337,8 +348,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
@@ -348,11 +360,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
@@ -362,15 +375,16 @@ most likely via the ``+blas`` variant specification.
The most heavyweight solution to module naming is to change the entire
naming convention for module files. This uses the projections format
covered in :ref:`adding_projections_to_views`.
covered in :ref:`view_projections`.
.. 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
@@ -391,15 +405,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
@@ -419,16 +434,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
@@ -449,6 +465,36 @@ that are already in the LMod hierarchy.
For hierarchies that are deeper than three layers ``lmod spider`` may have some issues.
See `this discussion on the LMod project <https://github.com/TACC/Lmod/issues/114>`_.
""""""""""""""""""""""
Select default modules
""""""""""""""""""""""
By default, when multiple modules of the same name share a directory,
the highest version number will be the default module. This behavior
of the ``module`` command can be overridden with a symlink named
``default`` to the desired default module. If you wish to configure
default modules with Spack, add a ``defaults`` key to your modules
configuration:
.. code-block:: yaml
modules:
my-module-set:
tcl:
defaults:
- gcc@10.2.1
- hdf5@1.2.10+mpi+hl%gcc
These defaults may be arbitrarily specific. For any package that
satisfies a default, Spack will generate the module file in the
appropriate path, and will generate a default symlink to the module
file as well.
.. warning::
If Spack is configured to generate multiple default packages in the
same directory, the last modulefile to be generated will be the
default module.
.. _customize-env-modifications:
"""""""""""""""""""""""""""""""""""
@@ -491,8 +537,7 @@ configuration:
#. The configuration is for an :ref:`environment <environments>` and
will never be applied outside the environment,
#. The environment in question is configured to use a :ref:`view
<filesystem-views>`,
#. The environment in question is configured to use a view,
#. The :ref:`environment view is configured
<configuring_environment_views>` with a projection that ensures
every package is linked to a unique directory,
@@ -549,11 +594,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``.
@@ -565,42 +611,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)
@@ -612,6 +612,7 @@ it executable, then runs it with some arguments.
installer = Executable(self.stage.archive_file)
installer('--prefix=%s' % prefix, 'arg1', 'arg2', 'etc.')
.. _deprecate:
^^^^^^^^^^^^^^^^^^^^^^^^
Deprecating old versions
@@ -694,20 +695,24 @@ example, ``py-sphinx-rtd-theme@0.1.10a0``. In this case, numbers are
always considered to be "newer" than letters. This is for consistency
with `RPM <https://bugzilla.redhat.com/show_bug.cgi?id=50977>`_.
Spack versions may also be arbitrary non-numeric strings; any string
here will suffice; for example, ``@develop``, ``@master``, ``@local``.
Versions are compared as follows. First, a version string is split into
multiple fields based on delimiters such as ``.``, ``-`` etc. Then
matching fields are compared using the rules below:
Spack versions may also be arbitrary non-numeric strings, for example
``@develop``, ``@master``, ``@local``.
#. The following develop-like strings are greater (newer) than all
numbers and are ordered as ``develop > main > master > head > trunk``.
The order on versions is defined as follows. A version string is split
into a list of components based on delimiters such as ``.``, ``-`` etc.
Lists are then ordered lexicographically, where components are ordered
as follows:
#. Numbers are all less than the chosen develop-like strings above,
and are sorted numerically.
#. 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 > stable``.
#. All other non-numeric versions are less than numeric versions, and
are sorted alphabetically.
#. Numbers are ordered numerically, are less than special strings, and
larger than other non-numeric components.
#. All other non-numeric components are less than numeric components,
and are ordered alphabetically.
The logic behind this sort order is two-fold:
@@ -728,7 +733,7 @@ Version selection
When concretizing, many versions might match a user-supplied spec.
For example, the spec ``python`` matches all available versions of the
package ``python``. Similarly, ``python@3:`` matches all versions of
Python3. Given a set of versions that match a spec, Spack
Python 3 and above. Given a set of versions that match a spec, Spack
concretization uses the following priorities to decide which one to
use:
@@ -1418,6 +1423,117 @@ other similar operations:
).with_default('auto').with_non_feature_values('auto'),
)
"""""""""""""""""""""""""""
Conditional Possible Values
"""""""""""""""""""""""""""
There are cases where a variant may take multiple values, and the list of allowed values
expand over time. Think for instance at the C++ standard with which we might compile
Boost, which can take one of multiple possible values with the latest standards
only available from a certain version on.
To model a similar situation we can use *conditional possible values* in the variant declaration:
.. code-block:: python
variant(
'cxxstd', default='98',
values=(
'98', '11', '14',
# C++17 is not supported by Boost < 1.63.0.
conditional('17', when='@1.63.0:'),
# C++20/2a is not support by Boost < 1.73.0
conditional('2a', '2b', when='@1.73.0:')
),
multi=False,
description='Use the specified C++ standard when building.',
)
The snippet above allows ``98``, ``11`` and ``14`` as unconditional possible values for the
``cxxstd`` variant, while ``17`` requires a version greater or equal to ``1.63.0``
and both ``2a`` and ``2b`` require a version greater or equal to ``1.73.0``.
^^^^^^^^^^^^^^^^^^^^
Conditional Variants
^^^^^^^^^^^^^^^^^^^^
The variant directive accepts a ``when`` clause. The variant will only
be present on specs that otherwise satisfy the spec listed as the
``when`` clause. For example, the following class has a variant
``bar`` when it is at version 2.0 or higher.
.. code-block:: python
class Foo(Package):
...
variant('bar', default=False, when='@2.0:', description='help message')
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
^^^^^^^^^^^^^^^^^^^
Packages may override variants for several reasons, most often to
change the default from a variant defined in a parent class or to
change the conditions under which a variant is present on the spec.
When a variant is defined multiple times, whether in the same package
file or in a subclass and a superclass, the last definition is used
for all attributes **except** for the ``when`` clauses. The ``when``
clauses are accumulated through all invocations, and the variant is
present on the spec if any of the accumulated conditions are
satisfied.
For example, consider the following package:
.. code-block:: python
class Foo(Package):
...
variant('bar', default=False, when='@1.0', description='help1')
variant('bar', default=True, when='platform=darwin', description='help2')
...
This package ``foo`` has a variant ``bar`` when the spec satisfies
either ``@1.0`` or ``platform=darwin``, but not for other platforms at
other versions. The default for this variant, when it is present, is
always ``True``, regardless of which condition of the variant is
satisfied. This allows packages to override variants in packages or
build system classes from which they inherit, by modifying the variant
values without modifying the ``when`` clause. It also allows a package
to implement ``or`` semantics for a variant ``when`` clause by
duplicating the variant definition.
------------------------------------
Resources (expanding extra tarballs)
------------------------------------
@@ -2062,7 +2178,7 @@ Version ranges
^^^^^^^^^^^^^^
Although some packages require a specific version for their dependencies,
most can be built with a range of version. For example, if you are
most can be built with a range of versions. For example, if you are
writing a package for a legacy Python module that only works with Python
2.4 through 2.6, this would look like:
@@ -2071,9 +2187,9 @@ writing a package for a legacy Python module that only works with Python
depends_on('python@2.4:2.6')
Version ranges in Spack are *inclusive*, so ``2.4:2.6`` means any version
greater than or equal to ``2.4`` and up to and including ``2.6``. If you
want to specify that a package works with any version of Python 3, this
would look like:
greater than or equal to ``2.4`` and up to and including any ``2.6.x``. If
you want to specify that a package works with any version of Python 3 (or
higher), this would look like:
.. code-block:: python
@@ -2084,29 +2200,30 @@ requires Python 2, you can similarly leave out the lower bound:
.. code-block:: python
depends_on('python@:2.9')
depends_on('python@:2')
Notice that we didn't use ``@:3``. Version ranges are *inclusive*, so
``@:3`` means "up to and including 3".
``@:3`` means "up to and including any 3.x version".
What if a package can only be built with Python 2.6? You might be
What if a package can only be built with Python 2.7? You might be
inclined to use:
.. code-block:: python
depends_on('python@2.6')
depends_on('python@2.7')
However, this would be wrong. Spack assumes that all version constraints
are absolute, so it would try to install Python at exactly ``2.6``. The
correct way to specify this would be:
are exact, so it would try to install Python not at ``2.7.18``, but
exactly at ``2.7``, which is a non-existent version. The correct way to
specify this would be:
.. code-block:: python
depends_on('python@2.6.0:2.6.999')
depends_on('python@2.7.0:2.7')
A spec can contain multiple version ranges separated by commas.
For example, if you need Boost 1.59.0 or newer, but there are known
issues with 1.64.0, 1.65.0, and 1.66.0, you can say:
A spec can contain a version list of ranges and individual versions
separated by commas. For example, if you need Boost 1.59.0 or newer,
but there are known issues with 1.64.0, 1.65.0, and 1.66.0, you can say:
.. code-block:: python
@@ -2384,6 +2501,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
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -2439,7 +2574,7 @@ from being linked in at activation time.
Views
-----
As covered in :ref:`filesystem-views`, the ``spack view`` command can be
The ``spack view`` command can be
used to symlink a number of packages into a merged prefix. The methods of
``PackageViewMixin`` can be overridden to customize how packages are added
to views. Generally this can be used to create copies of specific files rather
@@ -2773,7 +2908,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:
@@ -2823,7 +2958,7 @@ is equivalent to:
depends_on('elpa+openmp', when='+openmp+elpa')
Constraints from nested context managers are also added together, but they are rarely
Constraints from nested context managers are also combined together, but they are rarely
needed or recommended.
.. _install-method:
@@ -2884,52 +3019,52 @@ 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** |
+===============================+==================================+
| :py:class:`.Package` | General base class not |
| | specialized for any build system |
+-------------------------------+----------------------------------+
| :py:class:`.MakefilePackage` | Specialized class for packages |
| | built invoking |
| | hand-written Makefiles |
+-------------------------------+----------------------------------+
| :py:class:`.AutotoolsPackage` | Specialized class for packages |
| | built using GNU Autotools |
+-------------------------------+----------------------------------+
| :py:class:`.CMakePackage` | Specialized class for packages |
| | built using CMake |
+-------------------------------+----------------------------------+
| :py:class:`.CudaPackage` | A helper class for packages that |
| | use CUDA |
+-------------------------------+----------------------------------+
| :py:class:`.QMakePackage` | Specialized class for packages |
| | build using QMake |
+-------------------------------+----------------------------------+
| :py:class:`.ROCmPackage` | A helper class for packages that |
| | use ROCm |
+-------------------------------+----------------------------------+
| :py:class:`.SConsPackage` | Specialized class for packages |
| | built using SCons |
+-------------------------------+----------------------------------+
| :py:class:`.WafPackage` | Specialized class for packages |
| | built using Waf |
+-------------------------------+----------------------------------+
| :py:class:`.RPackage` | Specialized class for |
| | :py:class:`.R` extensions |
+-------------------------------+----------------------------------+
| :py:class:`.OctavePackage` | Specialized class for |
| | :py:class:`.Octave` packages |
+-------------------------------+----------------------------------+
| :py:class:`.PythonPackage` | Specialized class for |
| | :py:class:`.Python` extensions |
+-------------------------------+----------------------------------+
| :py:class:`.PerlPackage` | Specialized class for |
| | :py:class:`.Perl` extensions |
+-------------------------------+----------------------------------+
| :py:class:`.IntelPackage` | Specialized class for licensed |
| | Intel software |
+-------------------------------+----------------------------------+
+----------------------------------------------------------+----------------------------------+
| **Base Class** | **Purpose** |
+==========================================================+==================================+
| :class:`~spack.package.Package` | General base class not |
| | specialized for any build system |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.makefile.MakefilePackage` | Specialized class for packages |
| | built invoking |
| | hand-written Makefiles |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.autotools.AutotoolsPackage` | Specialized class for packages |
| | built using GNU Autotools |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.cmake.CMakePackage` | Specialized class for packages |
| | built using CMake |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.cuda.CudaPackage` | A helper class for packages that |
| | use CUDA |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.qmake.QMakePackage` | Specialized class for packages |
| | built using QMake |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.rocm.ROCmPackage` | A helper class for packages that |
| | use ROCm |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.scons.SConsPackage` | Specialized class for packages |
| | built using SCons |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.waf.WafPackage` | Specialized class for packages |
| | built using Waf |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.r.RPackage` | Specialized class for |
| | R extensions |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.octave.OctavePackage` | Specialized class for |
| | Octave packages |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.python.PythonPackage` | Specialized class for |
| | Python extensions |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.perl.PerlPackage` | Specialized class for |
| | Perl extensions |
+----------------------------------------------------------+----------------------------------+
| :class:`~spack.build_systems.intel.IntelPackage` | Specialized class for licensed |
| | Intel software |
+----------------------------------------------------------+----------------------------------+
.. note::
@@ -2939,7 +3074,7 @@ The classes that are currently provided by Spack are:
rare cases where manual intervention is needed we need to stress that a
package base class depends on the *build system* being used, not the language of the package.
For example, a Python extension installed with CMake would ``extends('python')`` and
subclass from :py:class:`.CMakePackage`.
subclass from :class:`~spack.build_systems.cmake.CMakePackage`.
^^^^^^^^^^^^^^^^^^^^^
Installation pipeline
@@ -4079,7 +4214,7 @@ prefix **before** ``make install``. Builds like this can falsely report
success when an error occurs before the installation is complete. Simple
sanity checks can be used to identify files and or directories that are
required of a successful installation. Spack checks for the presence of
the files and directories after ``install()`` runs.
the files and directories after ``install()`` runs.
If any of the listed files or directories are missing, then the build will
fail and the install prefix will be removed. If they all exist, then Spack
@@ -4193,7 +4328,7 @@ need to use two decorators for each phase test method:
The first decorator tells Spack when in the installation process to
run your test method installation process; namely *after* the provided
installation phase. The second decorator tells Spack to only run the
checks when the ``--test`` option is provided on the command line.
checks when the ``--test`` option is provided on the command line.
.. note::
@@ -4267,17 +4402,17 @@ tests can be performed days, even weeks, after the software is installed.
Stand-alone tests are checks that should run relatively quickly -- as
in on the order of at most a few minutes -- and ideally execute all
aspects of the installed software, or at least key functionality.
aspects of the installed software, or at least key functionality.
.. note::
Execution speed is important because these tests are intended
to quickly assess whether the installed software works on the
system.
Failing stand-alone tests indicate that there is no reason to
proceed with more resource-intensive tests.
Passing stand-alone (or smoke) tests can lead to more thorough
testing, such as extensive unit or regression tests, or tests
that run at scale. Spack support for more thorough testing is
@@ -4307,7 +4442,7 @@ file such that:
test_stage: /path/to/stage
The package can access this path **during test processing** using
`self.test_suite.stage`.
`self.test_suite.stage`.
.. note::
@@ -4367,9 +4502,9 @@ The signature for ``cache_extra_test_sources`` is:
where ``srcs`` is a string or a list of strings corresponding to
the paths for the files and or subdirectories, relative to the staged
source, that are to be copied to the corresponding path relative to
``self.install_test_root``. All of the contents within each subdirectory
will be also be copied.
source, that are to be copied to the corresponding relative test path
under the prefix. All of the contents within each subdirectory will
also be copied.
For example, a package method for copying everything in the ``tests``
subdirectory plus the ``foo.c`` and ``bar.c`` files from ``examples``
@@ -4377,8 +4512,13 @@ can be implemented as shown below.
.. note::
The ``run_after`` directive ensures associated files are copied
**after** the package is installed by the build process.
The method name ``copy_test_sources`` here is for illustration
purposes. You are free to use a name that is more suited to your
package.
The key to copying the files at build time for stand-alone testing
is use of the ``run_after`` directive, which ensures the associated
files are copied **after** the provided build stage.
.. code-block:: python
@@ -4388,25 +4528,20 @@ can be implemented as shown below.
@run_after('install')
def copy_test_sources(self):
srcs = ['tests',
join_path('examples', 'foo.c'),
join_path('examples', 'foo.c'),
join_path('examples', 'bar.c')]
self.cache_extra_test_sources(srcs)
In this case, the method copies the associated files from the build
stage **after** the software is installed to the package's metadata
directory. The result is the directory and files will be cached in
paths under ``self.install_test_root`` as follows:
* ``join_path(self.install_test_root, 'tests')`` along with its files
and subdirectories
* ``join_path(self.install_test_root, 'examples', 'foo.c')``
* ``join_path(self.install_test_root, 'examples', 'bar.c')``
a special test subdirectory under the installation prefix.
These paths are **automatically copied** to the test stage directory
where they are available to the package's ``test`` method through the
``self.test_suite.current_test_cache_dir`` property. In our example,
the method can access the directory and files using the following
paths:
during stand-alone testing. The package's ``test`` method can access
them using the ``self.test_suite.current_test_cache_dir`` property.
In our example, the method would use the following paths to reference
the copy of each entry listed in ``srcs``, respectively:
* ``join_path(self.test_suite.current_test_cache_dir, 'tests')``
* ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'foo.c')``
@@ -4414,9 +4549,8 @@ paths:
.. note::
Library developers will want to build the associated tests under
the ``self.test_suite.current_test_cache_dir`` and against their
**installed** libraries before running them.
Library developers will want to build the associated tests
against their **installed** libraries before running them.
.. note::
@@ -4426,11 +4560,6 @@ paths:
would be appropriate for ensuring the installed software continues
to work as the underlying system evolves.
.. note::
You are free to use a method name that is more suitable for
your package.
.. _cache_custom_files:
"""""""""""""""""""
@@ -4446,7 +4575,7 @@ Examples include:
- expected test output
These extra files should be added to the ``test`` subdirectory of the
package in the Spack repository.
package in the Spack repository.
Spack will **automatically copy** the contents of that directory to the
test staging directory for stand-alone testing. The ``test`` method can
@@ -4471,7 +4600,7 @@ The signature for ``get_escaped_text_output`` is:
where ``filename`` is the path to the file containing the expected output.
The ``filename`` for a :ref:`custom file <cache_custom_files>` can be
The ``filename`` for a :ref:`custom file <cache_custom_files>` can be
accessed and used as illustrated by a simplified version of an ``sqlite``
package check:
@@ -4509,7 +4638,8 @@ can retrieve the expected output from ``examples/foo.out`` using:
def test(self):
..
filename = join_path(self.install_test_root, 'examples', 'foo.out')
filename = join_path(self.test_suite.current_test_cache_dir,
'examples', 'foo.out')
expected = get_escaped_text_output(filename)
..
@@ -4591,10 +4721,10 @@ where each argument has the following meaning:
Options are a list of strings to be passed to the executable when
it runs.
The default is ``[]``, which means no options are provided to the
executable.
* ``expected`` is an optional list of expected output strings.
Spack requires every string in ``expected`` to be a regex matching
@@ -4605,31 +4735,31 @@ where each argument has the following meaning:
The expected output can be :ref:`read from a file
<expected_test_output_from_file>`.
The default is ``expected=[]``, so Spack will not check the output.
* ``status`` is the optional expected return code(s).
A list of return codes corresponding to successful execution can
be provided (e.g., ``status=[0,3,7]``). Support for non-zero return
codes allows for basic **expected failure** tests as well as different
return codes across versions of the software.
The default is ``status=[0]``, which corresponds to **successful**
execution in the sense that the executable does not exit with a
failure code or raise an exception.
* ``installed`` is used to require ``exe`` to be within the package
prefix.
If ``True``, then the path for ``exe`` is required to be within the
package prefix; otherwise, the path is not constrained.
The default is ``False``, so the fully qualified path for ``exe``
does **not** need to be within the installation directory.
* ``purpose`` is an optional heading describing the the test part.
Output from the test is written to a test log file so this argument
serves as a searchable heading in text logs to highlight the start
of the test part. Having a description can be helpful when debugging
@@ -4644,10 +4774,10 @@ where each argument has the following meaning:
The default is ``False``, which means the test executable must be
present for any installable version of the software.
* ``work_dir`` is the path to the directory from which the executable
will run.
The default of ``None`` corresponds to the current directory (``'.'``).
"""""""""""""""""""""""""""""""""""""""""
@@ -4677,9 +4807,6 @@ directory paths are provided in the table below.
* - Test Suite Stage Files
- ``self.test_suite.stage``
- ``join_path(self.test_suite.stage, 'results.txt')``
* - Cached Build-time Files
- ``self.install_test_root``
- ``join_path(self.install_test_root, 'examples', 'foo.c')``
* - Staged Cached Build-time Files
- ``self.test_suite.current_test_cache_dir``
- ``join_path(self.test_suite.current_test_cache_dir, 'examples', 'foo.c')``
@@ -4754,7 +4881,7 @@ where only the outputs for the first of each set are shown:
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
PASSED
...
==> [2021-04-26-17:35:20.493921] test: checking mpirun output
@@ -4915,7 +5042,7 @@ This is already part of the boilerplate for packages created with
Filtering functions
^^^^^^^^^^^^^^^^^^^
:py:func:`filter_file(regex, repl, *filenames, **kwargs) <spack.filter_file>`
:py:func:`filter_file(regex, repl, *filenames, **kwargs) <llnl.util.filesystem.filter_file>`
Works like ``sed`` but with Python regular expression syntax. Takes
a regular expression, a replacement, and a set of files. ``repl``
can be a raw string or a callable function. If it is a raw string,
@@ -4953,7 +5080,7 @@ Filtering functions
filter_file('CXX="c++"', 'CXX="%s"' % self.compiler.cxx,
prefix.bin.mpicxx)
:py:func:`change_sed_delimiter(old_delim, new_delim, *filenames) <spack.change_sed_delim>`
:py:func:`change_sed_delimiter(old_delim, new_delim, *filenames) <llnl.util.filesystem.change_sed_delimiter>`
Some packages, like TAU, have a build system that can't install
into directories with, e.g. '@' in the name, because they use
hard-coded ``sed`` commands in their build.
@@ -4975,14 +5102,14 @@ Filtering functions
File functions
^^^^^^^^^^^^^^
:py:func:`ancestor(dir, n=1) <spack.ancestor>`
:py:func:`ancestor(dir, n=1) <llnl.util.filesystem.ancestor>`
Get the n\ :sup:`th` ancestor of the directory ``dir``.
:py:func:`can_access(path) <spack.can_access>`
:py:func:`can_access(path) <llnl.util.filesystem.can_access>`
True if we can read and write to the file at ``path``. Same as
native python ``os.access(file_name, os.R_OK|os.W_OK)``.
:py:func:`install(src, dest) <spack.install>`
:py:func:`install(src, dest) <llnl.util.filesystem.install>`
Install a file to a particular location. For example, install a
header into the ``include`` directory under the install ``prefix``:
@@ -4990,14 +5117,14 @@ File functions
install('my-header.h', prefix.include)
:py:func:`join_path(*paths) <spack.join_path>`
:py:func:`join_path(*paths) <llnl.util.filesystem.join_path>`
An alias for ``os.path.join``. This joins paths using the OS path separator.
:py:func:`mkdirp(*paths) <spack.mkdirp>`
:py:func:`mkdirp(*paths) <llnl.util.filesystem.mkdirp>`
Create each of the directories in ``paths``, creating any parent
directories if they do not exist.
:py:func:`working_dir(dirname, kwargs) <spack.working_dir>`
:py:func:`working_dir(dirname, kwargs) <llnl.util.filesystem.working_dir>`
This is a Python `Context Manager
<https://docs.python.org/2/library/contextlib.html>`_ that makes it
easier to work with subdirectories in builds. You use this with the
@@ -5039,7 +5166,7 @@ File functions
The ``create=True`` keyword argument causes the command to create
the directory if it does not exist.
:py:func:`touch(path) <spack.touch>`
:py:func:`touch(path) <llnl.util.filesystem.touch>`
Create an empty file at ``path``.
.. _make-package-findable:
@@ -5196,7 +5323,7 @@ would be quite complicated to do using regex only. Employing the
.. code-block:: python
class Gcc(Package):
executables = ['g++']
executables = [r'g\+\+']
def filter_detected_exes(cls, prefix, exes_in_prefix):
return [x for x in exes_in_prefix if 'clang' not in x]

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)
@@ -48,9 +48,9 @@ or Amazon Elastic Kubernetes Service (`EKS <https://aws.amazon.com/eks>`_), thou
topics are outside the scope of this document.
Spack's pipelines are now making use of the
`trigger <https://docs.gitlab.com/12.9/ee/ci/yaml/README.html#trigger>`_ syntax to run
`trigger <https://docs.gitlab.com/ee/ci/yaml/#trigger>`_ syntax to run
dynamically generated
`child pipelines <https://docs.gitlab.com/12.9/ee/ci/parent_child_pipelines.html>`_.
`child pipelines <https://docs.gitlab.com/ee/ci/pipelines/parent_child_pipelines.html>`_.
Note that the use of dynamic child pipelines requires running Gitlab version
``>= 12.9``.

View File

@@ -0,0 +1,206 @@
.. 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)
=====================================
Using Spack to Replace Homebrew/Conda
=====================================
Spack is an incredibly powerful package manager, designed for supercomputers
where users have diverse installation needs. But Spack can also be used to
handle simple single-user installations on your laptop. Most macOS users are
already familiar with package managers like Homebrew and Conda, where all
installed packages are symlinked to a single central location like ``/usr/local``.
In this section, we will show you how to emulate the behavior of Homebrew/Conda
using :ref:`environments`!
-----
Setup
-----
First, let's create a new environment. We'll assume that Spack is already set up
correctly, and that you've already sourced the setup script for your shell.
To create a new environment, simply run:
.. code-block:: console
$ spack env create myenv
Here, *myenv* can be anything you want to name your environment. Next, we can add
a list of packages we would like to install into our environment. Let's say we
want a newer version of Bash than the one that comes with macOS, and we want a
few Python libraries. We can run:
.. code-block:: console
$ spack -e myenv add bash@5 python py-numpy py-scipy py-matplotlib
Each package can be listed on a separate line, or combined into a single line like we did above.
Notice that we're explicitly asking for Bash 5 here. You can use any spec
you would normally use on the command line with other Spack commands.
Next, we want to manually configure a couple of things:
.. code-block:: console
$ spack -e myenv config edit
.. code-block:: yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
# add package specs to the `specs` list
specs: [bash@5, python, py-numpy, py-scipy, py-matplotlib]
view: true
You can see the packages we added earlier in the ``specs:`` section. If you
ever want to add more packages, you can either use ``spack add`` or manually
edit this file.
We also need to change the ``concretization:`` option. By default, Spack
concretizes each spec *separately*, allowing multiple versions of the same
package to coexist. Since we want a single consistent environment, we want to
concretize all of the specs *together*.
Here is what your ``spack.yaml`` looks like with this new setting:
.. code-block:: yaml
# This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
# add package specs to the `specs` list
specs: [bash@5, python, py-numpy, py-scipy, py-matplotlib]
view: true
concretization: together
^^^^^^^^^^^^^^^^
Symlink location
^^^^^^^^^^^^^^^^
Spack symlinks all installations to ``/Users/me/spack/var/spack/environments/myenv/.spack-env/view``,
which is the default when ``view: true``.
You can actually change this to any directory you want. For example, Homebrew
uses ``/usr/local``, while Conda uses ``/Users/me/anaconda``. In order to access
files in these locations, you need to update ``PATH`` and other environment variables
to point to them. Activating the Spack environment does this automatically, but
you can also manually set them in your ``.bashrc``.
.. warning::
There are several reasons why you shouldn't use ``/usr/local``:
1. If you are on macOS 10.11+ (El Capitan and newer), Apple makes it hard
for you. You may notice permissions issues on ``/usr/local`` due to their
`System Integrity Protection <https://support.apple.com/en-us/HT204899>`_.
By default, users don't have permissions to install anything in ``/usr/local``,
and you can't even change this using ``sudo chown`` or ``sudo chmod``.
2. Other package managers like Homebrew will try to install things to the
same directory. If you plan on using Homebrew in conjunction with Spack,
don't symlink things to ``/usr/local``.
3. If you are on a shared workstation, or don't have sudo privileges, you
can't do this.
If you still want to do this anyway, there are several ways around SIP.
You could disable SIP by booting into recovery mode and running
``csrutil disable``, but this is not recommended, as it can open up your OS
to security vulnerabilities. Another technique is to run ``spack concretize``
and ``spack install`` using ``sudo``. This is also not recommended.
The safest way I've found is to create your installation directories using
sudo, then change ownership back to the user like so:
.. code-block:: bash
for directory in .spack bin contrib include lib man share
do
sudo mkdir -p /usr/local/$directory
sudo chown $(id -un):$(id -gn) /usr/local/$directory
done
Depending on the packages you install in your environment, the exact list of
directories you need to create may vary. You may also find some packages
like Java libraries that install a single file to the installation prefix
instead of in a subdirectory. In this case, the action is the same, just replace
``mkdir -p`` with ``touch`` in the for-loop above.
But again, it's safer just to use the default symlink location.
------------
Installation
------------
To actually concretize the environment, run:
.. code-block:: console
$ spack -e myenv concretize
This will tell you which if any packages are already installed, and alert you
to any conflicting specs.
To actually install these packages and symlink them to your ``view:``
directory, simply run:
.. code-block:: console
$ spack -e myenv install
$ spack env activate myenv
Now, when you type ``which python3``, it should find the one you just installed.
In order to change the default shell to our newer Bash installation, we first
need to add it to this list of acceptable shells. Run:
.. code-block:: console
$ sudo vim /etc/shells
and add the absolute path to your bash executable. Then run:
.. code-block:: console
$ chsh -s /path/to/bash
Now, when you log out and log back in, ``echo $SHELL`` should point to the
newer version of Bash.
---------------------------
Updating Installed Packages
---------------------------
Let's say you upgraded to a new version of macOS, or a new version of Python
was released, and you want to rebuild your entire software stack. To do this,
simply run the following commands:
.. code-block:: console
$ spack env activate myenv
$ spack concretize --force
$ spack install
The ``--force`` flag tells Spack to overwrite its previous concretization
decisions, allowing you to choose a new version of Python. If any of the new
packages like Bash are already installed, ``spack install`` won't re-install
them, it will keep the symlinks in place.
--------------
Uninstallation
--------------
If you decide that Spack isn't right for you, uninstallation is simple.
Just run:
.. code-block:: console
$ spack env activate myenv
$ spack uninstall --all
This will uninstall all packages in your environment and remove the symlinks.

View File

@@ -1,13 +1,13 @@
.. 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)
.. _repositories:
=============================
Package Repositories
=============================
=================================
Package Repositories (repos.yaml)
=================================
Spack comes with thousands of built-in package recipes in
``var/spack/repos/builtin/``. This is a **package repository** -- a
@@ -335,7 +335,7 @@ merged YAML from all configuration files, use ``spack config get repos``:
- ~/myrepo
- $spack/var/spack/repos/builtin
mNote that, unlike ``spack repo list``, this does not include the
Note that, unlike ``spack repo list``, this does not include the
namespace, which is read from each repo's ``repo.yaml``.
^^^^^^^^^^^^^^^^^^^^^

View File

@@ -1,7 +1,10 @@
# These dependencies should be installed using pip in order
# to build the documentation.
sphinx
sphinx>=3.4,!=4.1.2
sphinxcontrib-programoutput
sphinx-rtd-theme
python-levenshtein
# Restrict to docutils <0.17 to workaround a list rendering issue in sphinx.
# https://stackoverflow.com/questions/67542699
docutils <0.17

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)
@@ -8,12 +8,21 @@
# these commands in this directory to install Sphinx and its plugins,
# then build the docs:
#
# spack install
# spack env activate .
# spack install
# make
#
spack:
specs:
- py-sphinx
# Sphinx
- "py-sphinx@3.4:4.1.1,4.1.3:"
- py-sphinxcontrib-programoutput
- py-docutils@:0.16
- py-sphinx-rtd-theme
# VCS
- git
- mercurial
- subversion
# Plotting
- graphviz
concretization: together

View File

@@ -0,0 +1,18 @@
Name, Supported Versions, Notes, Requirement Reason
Python, 2.7/3.5-3.10, , Interpreter for Spack
C/C++ Compilers, , , Building software
make, , , Build software
patch, , , Build software
bash, , , Compiler wrappers
tar, , , Extract/create archives
gzip, , , Compress/Decompress archives
unzip, , , Compress/Decompress archives
bzip, , , Compress/Decompress archives
xz, , , Compress/Decompress archives
zstd, , Optional, Compress/Decompress archives
file, , , Create/Use Buildcaches
gnupg2, , , Sign/Verify Buildcaches
git, , , Manage Software Repositories
svn, , Optional, Manage Software Repositories
hg, , Optional, Manage Software Repositories
Python header files, , Optional (e.g. ``python3-dev`` on Debian), Bootstrapping from sources
1 Name Supported Versions Notes Requirement Reason
2 Python 2.7/3.5-3.10 Interpreter for Spack
3 C/C++ Compilers Building software
4 make Build software
5 patch Build software
6 bash Compiler wrappers
7 tar Extract/create archives
8 gzip Compress/Decompress archives
9 unzip Compress/Decompress archives
10 bzip Compress/Decompress archives
11 xz Compress/Decompress archives
12 zstd Optional Compress/Decompress archives
13 file Create/Use Buildcaches
14 gnupg2 Sign/Verify Buildcaches
15 git Manage Software Repositories
16 svn Optional Manage Software Repositories
17 hg Optional Manage Software Repositories
18 Python header files Optional (e.g. ``python3-dev`` on Debian) Bootstrapping from sources

File diff suppressed because it is too large Load Diff

607
lib/spack/env/cc vendored
View File

@@ -1,6 +1,7 @@
#!/bin/bash
#!/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)
@@ -20,25 +21,41 @@
# -Wl,-rpath arguments for dependency /lib directories.
#
# Reset IFS to the default: whitespace-separated lists. When we use
# other separators, we set and reset it.
unset IFS
# Separator for lists whose names end with `_list`.
# We pick the alarm bell character, which is highly unlikely to
# conflict with anything. This is a literal bell character (which
# we have to use since POSIX sh does not convert escape sequences
# like '\a' outside of the format argument of `printf`).
# NOTE: Depending on your editor this may look empty, but it is not.
readonly lsep=''
# This is an array of environment variables that need to be set before
# the script runs. They are set by routines in spack.build_environment
# as part of the package installation process.
parameters=(
SPACK_ENV_PATH
SPACK_DEBUG_LOG_DIR
SPACK_DEBUG_LOG_ID
SPACK_COMPILER_SPEC
SPACK_CC_RPATH_ARG
SPACK_CXX_RPATH_ARG
SPACK_F77_RPATH_ARG
SPACK_FC_RPATH_ARG
SPACK_TARGET_ARGS
SPACK_DTAGS_TO_ADD
SPACK_DTAGS_TO_STRIP
SPACK_LINKER_ARG
SPACK_SHORT_SPEC
SPACK_SYSTEM_DIRS
)
readonly params="\
SPACK_ENV_PATH
SPACK_DEBUG_LOG_DIR
SPACK_DEBUG_LOG_ID
SPACK_COMPILER_SPEC
SPACK_CC_RPATH_ARG
SPACK_CXX_RPATH_ARG
SPACK_F77_RPATH_ARG
SPACK_FC_RPATH_ARG
SPACK_LINKER_ARG
SPACK_SHORT_SPEC
SPACK_SYSTEM_DIRS"
# Optional parameters that aren't required to be set
# Boolean (true/false/custom) if we want to add debug flags
# SPACK_ADD_DEBUG_FLAGS
# If a custom flag is requested, it will be defined
# SPACK_DEBUG_FLAGS
# The compiler input variables are checked for sanity later:
# SPACK_CC, SPACK_CXX, SPACK_F77, SPACK_FC
@@ -50,43 +67,159 @@ parameters=(
# Test command is used to unit test the compiler script.
# SPACK_TEST_COMMAND
# die()
# Prints a message and exits with error 1.
function die {
echo "$@"
# die MESSAGE
# Print a message and exit with error code 1.
die() {
echo "[spack cc] ERROR: $*"
exit 1
}
# read input parameters into proper bash arrays.
# SYSTEM_DIRS is delimited by :
IFS=':' read -ra SPACK_SYSTEM_DIRS <<< "${SPACK_SYSTEM_DIRS}"
# empty VARNAME
# Return whether the variable VARNAME is unset or set to the empty string.
empty() {
eval "test -z \"\${$1}\""
}
# SPACK_<LANG>FLAGS and SPACK_LDLIBS are split by ' '
IFS=' ' read -ra SPACK_FFLAGS <<< "$SPACK_FFLAGS"
IFS=' ' read -ra SPACK_CPPFLAGS <<< "$SPACK_CPPFLAGS"
IFS=' ' read -ra SPACK_CFLAGS <<< "$SPACK_CFLAGS"
IFS=' ' read -ra SPACK_CXXFLAGS <<< "$SPACK_CXXFLAGS"
IFS=' ' read -ra SPACK_LDFLAGS <<< "$SPACK_LDFLAGS"
IFS=' ' read -ra SPACK_LDLIBS <<< "$SPACK_LDLIBS"
# setsep LISTNAME
# Set the global variable 'sep' to the separator for a list with name LISTNAME.
# There are three types of lists:
# 1. regular lists end with _list and are separated by $lsep
# 2. directory lists end with _dirs/_DIRS/PATH(S) and are separated by ':'
# 3. any other list is assumed to be separated by spaces: " "
setsep() {
case "$1" in
*_dirs|*_DIRS|*PATH|*PATHS)
sep=':'
;;
*_list)
sep="$lsep"
;;
*)
sep=" "
;;
esac
}
# prepend LISTNAME ELEMENT [SEP]
#
# Prepend ELEMENT to the list stored in the variable LISTNAME,
# assuming the list is separated by SEP.
# Handles empty lists and single-element lists.
prepend() {
varname="$1"
elt="$2"
if empty "$varname"; then
eval "$varname=\"\${elt}\""
else
# Get the appropriate separator for the list we're appending to.
setsep "$varname"
eval "$varname=\"\${elt}${sep}\${$varname}\""
fi
}
# append LISTNAME ELEMENT [SEP]
#
# Append ELEMENT to the list stored in the variable LISTNAME,
# assuming the list is separated by SEP.
# Handles empty lists and single-element lists.
append() {
varname="$1"
elt="$2"
if empty "$varname"; then
eval "$varname=\"\${elt}\""
else
# Get the appropriate separator for the list we're appending to.
setsep "$varname"
eval "$varname=\"\${$varname}${sep}\${elt}\""
fi
}
# extend LISTNAME1 LISTNAME2 [PREFIX]
#
# Append the elements stored in the variable LISTNAME2
# to the list stored in LISTNAME1.
# If PREFIX is provided, prepend it to each element.
extend() {
# Figure out the appropriate IFS for the list we're reading.
setsep "$2"
if [ "$sep" != " " ]; then
IFS="$sep"
fi
eval "for elt in \${$2}; do append $1 \"$3\${elt}\"; done"
unset IFS
}
# preextend LISTNAME1 LISTNAME2 [PREFIX]
#
# Prepend the elements stored in the list at LISTNAME2
# to the list at LISTNAME1, preserving order.
# If PREFIX is provided, prepend it to each element.
preextend() {
# Figure out the appropriate IFS for the list we're reading.
setsep "$2"
if [ "$sep" != " " ]; then
IFS="$sep"
fi
# first, reverse the list to prepend
_reversed_list=""
eval "for elt in \${$2}; do prepend _reversed_list \"$3\${elt}\"; done"
# prepend reversed list to preextend in order
IFS="${lsep}"
for elt in $_reversed_list; do prepend "$1" "$3${elt}"; done
unset IFS
}
# system_dir PATH
# test whether a path is a system directory
function system_dir {
system_dir() {
IFS=':' # SPACK_SYSTEM_DIRS is colon-separated
path="$1"
for sd in "${SPACK_SYSTEM_DIRS[@]}"; do
if [ "${path}" == "${sd}" ] || [ "${path}" == "${sd}/" ]; then
for sd in $SPACK_SYSTEM_DIRS; do
if [ "${path}" = "${sd}" ] || [ "${path}" = "${sd}/" ]; then
# success if path starts with a system prefix
unset IFS
return 0
fi
done
unset IFS
return 1 # fail if path starts no system prefix
}
for param in "${parameters[@]}"; do
if [[ -z ${!param+x} ]]; then
# Fail with a clear message if the input contains any bell characters.
if eval "[ \"\${*#*${lsep}}\" != \"\$*\" ]"; then
die "Compiler command line contains our separator ('${lsep}'). Cannot parse."
fi
# ensure required variables are set
for param in $params; do
if eval "test -z \"\${${param}:-}\""; then
die "Spack compiler must be run from Spack! Input '$param' is missing."
fi
done
# Check if optional parameters are defined
# If we aren't asking for debug flags, don't add them
if [ -z "${SPACK_ADD_DEBUG_FLAGS:-}" ]; then
SPACK_ADD_DEBUG_FLAGS="false"
fi
# SPACK_ADD_DEBUG_FLAGS must be true/false/custom
is_valid="false"
for param in "true" "false" "custom"; do
if [ "$param" = "$SPACK_ADD_DEBUG_FLAGS" ]; then
is_valid="true"
fi
done
# Exit with error if we are given an incorrect value
if [ "$is_valid" = "false" ]; then
die "SPACK_ADD_DEBUG_FLAGS, if defined, must be one of 'true', 'false', or 'custom'."
fi
# Figure out the type of compiler, the language, and the mode so that
# the compiler script knows what to do.
#
@@ -101,37 +234,42 @@ done
# ld link
# ccld compile & link
command=$(basename "$0")
command="${0##*/}"
comp="CC"
case "$command" in
cpp)
mode=cpp
debug_flags="-g"
;;
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc)
cc|c89|c99|gcc|clang|armclang|icc|icx|pgcc|nvc|xlc|xlc_r|fcc|amdclang|cl.exe|emcc)
command="$SPACK_CC"
language="C"
comp="CC"
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|amdclang++|em++)
command="$SPACK_CXX"
language="C++"
comp="CXX"
lang_flags=CXX
debug_flags="-g"
;;
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt)
ftn|f90|fc|f95|gfortran|flang|armflang|ifort|ifx|pgfortran|nvfortran|xlf90|xlf90_r|nagfor|frt|amdflang)
command="$SPACK_FC"
language="Fortran 90"
comp="FC"
lang_flags=F
debug_flags="-g"
;;
f77|xlf|xlf_r|pgf77)
f77|xlf|xlf_r|pgf77|amdflang)
command="$SPACK_F77"
language="Fortran 77"
comp="F77"
lang_flags=F
debug_flags="-g"
;;
ld)
ld|ld.gold|ld.lld)
mode=ld
;;
*)
@@ -142,7 +280,7 @@ esac
# If any of the arguments below are present, then the mode is vcheck.
# In vcheck mode, nothing is added in terms of extra search paths or
# libraries.
if [[ -z $mode ]] || [[ $mode == ld ]]; then
if [ -z "$mode" ] || [ "$mode" = ld ]; then
for arg in "$@"; do
case $arg in
-v|-V|--version|-dumpversion)
@@ -154,16 +292,16 @@ if [[ -z $mode ]] || [[ $mode == ld ]]; then
fi
# Finish setting up the mode.
if [[ -z $mode ]]; then
if [ -z "$mode" ]; then
mode=ccld
for arg in "$@"; do
if [[ $arg == -E ]]; then
if [ "$arg" = "-E" ]; then
mode=cpp
break
elif [[ $arg == -S ]]; then
elif [ "$arg" = "-S" ]; then
mode=as
break
elif [[ $arg == -c ]]; then
elif [ "$arg" = "-c" ]; then
mode=cc
break
fi
@@ -190,42 +328,46 @@ dtags_to_strip="${SPACK_DTAGS_TO_STRIP}"
linker_arg="${SPACK_LINKER_ARG}"
# Set up rpath variable according to language.
eval rpath=\$SPACK_${comp}_RPATH_ARG
rpath="ERROR: RPATH ARG WAS NOT SET"
eval "rpath=\${SPACK_${comp}_RPATH_ARG:?${rpath}}"
# Dump the mode and exit if the command is dump-mode.
if [[ $SPACK_TEST_COMMAND == dump-mode ]]; then
if [ "$SPACK_TEST_COMMAND" = "dump-mode" ]; then
echo "$mode"
exit
fi
# Check that at least one of the real commands was actually selected,
# otherwise we don't know what to execute.
if [[ -z $command ]]; then
die "ERROR: Compiler '$SPACK_COMPILER_SPEC' does not support compiling $language programs."
# If, say, SPACK_CC is set but SPACK_FC is not, we want to know. Compilers do not
# *have* to set up Fortran executables, so we need to tell the user when a build is
# about to attempt to use them unsuccessfully.
if [ -z "$command" ]; then
die "Compiler '$SPACK_COMPILER_SPEC' does not have a $language compiler configured."
fi
#
# Filter '.' and Spack environment directories out of PATH so that
# this script doesn't just call itself
#
IFS=':' read -ra env_path <<< "$PATH"
IFS=':' read -ra spack_env_dirs <<< "$SPACK_ENV_PATH"
spack_env_dirs+=("" ".")
export PATH=""
for dir in "${env_path[@]}"; do
new_dirs=""
IFS=':'
for dir in $PATH; do
addpath=true
for env_dir in "${spack_env_dirs[@]}"; do
if [[ "$dir" == "$env_dir" ]]; then
addpath=false
break
fi
for spack_env_dir in $SPACK_ENV_PATH; do
case "${dir%%/}" in
"$spack_env_dir"|'.'|'')
addpath=false
break
;;
esac
done
if $addpath; then
export PATH="${PATH:+$PATH:}$dir"
if [ $addpath = true ]; then
append new_dirs "$dir"
fi
done
unset IFS
export PATH="$new_dirs"
if [[ $mode == vcheck ]]; then
if [ "$mode" = vcheck ]; then
exec "${command}" "$@"
fi
@@ -233,16 +375,20 @@ fi
# It doesn't work with -rpath.
# This variable controls whether they are added.
add_rpaths=true
if [[ ($mode == ld || $mode == ccld) && "$SPACK_SHORT_SPEC" =~ "darwin" ]];
then
for arg in "$@"; do
if [[ ($arg == -r && $mode == ld) ||
($arg == -r && $mode == ccld) ||
($arg == -Wl,-r && $mode == ccld) ]]; then
add_rpaths=false
break
fi
done
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
for arg in "$@"; do
if [ "$arg" = "-r" ]; then
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
add_rpaths=false
break
fi
elif [ "$arg" = "-Wl,-r" ] && [ "$mode" = ccld ]; then
add_rpaths=false
break
fi
done
fi
fi
# Save original command for debug logging
@@ -265,17 +411,22 @@ input_command="$*"
# The libs variable is initialized here for completeness, and it is also
# used later to inject flags supplied via `ldlibs` on the command
# line. These come into the wrappers via SPACK_LDLIBS.
#
includes=()
libdirs=()
rpaths=()
system_includes=()
system_libdirs=()
system_rpaths=()
libs=()
other_args=()
isystem_system_includes=()
isystem_includes=()
# The loop below breaks up the command line into these lists of components.
# The lists are all bell-separated to be as flexible as possible, as their
# contents may come from the command line, from ' '-separated lists,
# ':'-separated lists, etc.
include_dirs_list=""
lib_dirs_list=""
rpath_dirs_list=""
system_include_dirs_list=""
system_lib_dirs_list=""
system_rpath_dirs_list=""
isystem_system_include_dirs_list=""
isystem_include_dirs_list=""
libs_list=""
other_args_list=""
while [ $# -ne 0 ]; do
@@ -295,32 +446,32 @@ while [ $# -ne 0 ]; do
isystem_was_used=true
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
isystem_system_includes+=("$arg")
append isystem_system_include_dirs_list "$arg"
else
isystem_includes+=("$arg")
append isystem_include_dirs_list "$arg"
fi
;;
-I*)
arg="${1#-I}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
system_includes+=("$arg")
append system_include_dirs_list "$arg"
else
includes+=("$arg")
append include_dirs_list "$arg"
fi
;;
-L*)
arg="${1#-L}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if system_dir "$arg"; then
system_libdirs+=("$arg")
append system_lib_dirs_list "$arg"
else
libdirs+=("$arg")
append lib_dirs_list "$arg"
fi
;;
-l*)
# -loopopt=0 is generated erroneously in autoconf <= 2.69,
# and passed by ifx to the linker, which confuses it with a
# and passed by ifx to the linker, which confuses it with a
# library. Filter it out.
# TODO: generalize filtering of args with an env var, so that
# TODO: we do not have to special case this here.
@@ -331,66 +482,76 @@ while [ $# -ne 0 ]; do
fi
arg="${1#-l}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
other_args+=("-l$arg")
append other_args_list "-l$arg"
;;
-Wl,*)
arg="${1#-Wl,}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if [[ "$arg" = -rpath=* ]]; then
rp="${arg#-rpath=}"
elif [[ "$arg" = --rpath=* ]]; then
rp="${arg#--rpath=}"
elif [[ "$arg" = -rpath,* ]]; then
rp="${arg#-rpath,}"
elif [[ "$arg" = --rpath,* ]]; then
rp="${arg#--rpath,}"
elif [[ "$arg" =~ ^-?-rpath$ ]]; then
shift; arg="$1"
if [[ "$arg" != -Wl,* ]]; then
die "-Wl,-rpath was not followed by -Wl,*"
fi
rp="${arg#-Wl,}"
elif [[ "$arg" = "$dtags_to_strip" ]] ; then
: # We want to remove explicitly this flag
else
other_args+=("-Wl,$arg")
fi
case "$arg" in
-rpath=*) rp="${arg#-rpath=}" ;;
--rpath=*) rp="${arg#--rpath=}" ;;
-rpath,*) rp="${arg#-rpath,}" ;;
--rpath,*) rp="${arg#--rpath,}" ;;
-rpath|--rpath)
shift; arg="$1"
case "$arg" in
-Wl,*)
rp="${arg#-Wl,}"
;;
*)
die "-Wl,-rpath was not followed by -Wl,*"
;;
esac
;;
"$dtags_to_strip")
: # We want to remove explicitly this flag
;;
*)
append other_args_list "-Wl,$arg"
;;
esac
;;
-Xlinker,*)
arg="${1#-Xlinker,}"
if [ -z "$arg" ]; then shift; arg="$1"; fi
if [[ "$arg" = -rpath=* ]]; then
rp="${arg#-rpath=}"
elif [[ "$arg" = --rpath=* ]]; then
rp="${arg#--rpath=}"
elif [[ "$arg" = -rpath ]] || [[ "$arg" = --rpath ]]; then
shift; arg="$1"
if [[ "$arg" != -Xlinker,* ]]; then
die "-Xlinker,-rpath was not followed by -Xlinker,*"
fi
rp="${arg#-Xlinker,}"
else
other_args+=("-Xlinker,$arg")
fi
case "$arg" in
-rpath=*) rp="${arg#-rpath=}" ;;
--rpath=*) rp="${arg#--rpath=}" ;;
-rpath|--rpath)
shift; arg="$1"
case "$arg" in
-Xlinker,*)
rp="${arg#-Xlinker,}"
;;
*)
die "-Xlinker,-rpath was not followed by -Xlinker,*"
;;
esac
;;
*)
append other_args_list "-Xlinker,$arg"
;;
esac
;;
-Xlinker)
if [[ "$2" == "-rpath" ]]; then
if [[ "$3" != "-Xlinker" ]]; then
if [ "$2" = "-rpath" ]; then
if [ "$3" != "-Xlinker" ]; then
die "-Xlinker,-rpath was not followed by -Xlinker,*"
fi
shift 3;
rp="$1"
elif [[ "$2" = "$dtags_to_strip" ]] ; then
elif [ "$2" = "$dtags_to_strip" ]; then
shift # We want to remove explicitly this flag
else
other_args+=("$1")
append other_args_list "$1"
fi
;;
*)
if [[ "$1" = "$dtags_to_strip" ]] ; then
if [ "$1" = "$dtags_to_strip" ]; then
: # We want to remove explicitly this flag
else
other_args+=("$1")
append other_args_list "$1"
fi
;;
esac
@@ -398,9 +559,9 @@ while [ $# -ne 0 ]; do
# test rpaths against system directories in one place.
if [ -n "$rp" ]; then
if system_dir "$rp"; then
system_rpaths+=("$rp")
append system_rpath_dirs_list "$rp"
else
rpaths+=("$rp")
append rpath_dirs_list "$rp"
fi
fi
shift
@@ -413,14 +574,24 @@ done
# See the gmake manual on implicit rules for details:
# https://www.gnu.org/software/make/manual/html_node/Implicit-Variables.html
#
flags=()
flags_list=""
# Add debug flags
if [ "${SPACK_ADD_DEBUG_FLAGS}" = "true" ]; then
extend flags_list debug_flags
# If a custom flag is requested, derive from environment
elif [ "$SPACK_ADD_DEBUG_FLAGS" = "custom" ]; then
extend flags_list SPACK_DEBUG_FLAGS
fi
# Fortran flags come before CPPFLAGS
case "$mode" in
cc|ccld)
case $lang_flags in
F)
flags=("${flags[@]}" "${SPACK_FFLAGS[@]}") ;;
extend flags_list SPACK_FFLAGS
;;
esac
;;
esac
@@ -428,7 +599,8 @@ esac
# C preprocessor flags come before any C/CXX flags
case "$mode" in
cpp|as|cc|ccld)
flags=("${flags[@]}" "${SPACK_CPPFLAGS[@]}") ;;
extend flags_list SPACK_CPPFLAGS
;;
esac
@@ -437,67 +609,67 @@ case "$mode" in
cc|ccld)
case $lang_flags in
C)
flags=("${flags[@]}" "${SPACK_CFLAGS[@]}") ;;
extend flags_list SPACK_CFLAGS
;;
CXX)
flags=("${flags[@]}" "${SPACK_CXXFLAGS[@]}") ;;
extend flags_list SPACK_CXXFLAGS
;;
esac
flags=(${SPACK_TARGET_ARGS[@]} "${flags[@]}")
# prepend target args
preextend flags_list SPACK_TARGET_ARGS
;;
esac
# Linker flags
case "$mode" in
ld|ccld)
flags=("${flags[@]}" "${SPACK_LDFLAGS[@]}") ;;
extend flags_list SPACK_LDFLAGS
;;
esac
# On macOS insert headerpad_max_install_names linker flag
if [[ ($mode == ld || $mode == ccld) && "$SPACK_SHORT_SPEC" =~ "darwin" ]];
then
case "$mode" in
ld)
flags=("${flags[@]}" -headerpad_max_install_names) ;;
ccld)
flags=("${flags[@]}" "-Wl,-headerpad_max_install_names") ;;
esac
if [ "$mode" = ld ] || [ "$mode" = ccld ]; then
if [ "${SPACK_SHORT_SPEC#*darwin}" != "${SPACK_SHORT_SPEC}" ]; then
case "$mode" in
ld)
append flags_list "-headerpad_max_install_names" ;;
ccld)
append flags_list "-Wl,-headerpad_max_install_names" ;;
esac
fi
fi
IFS=':' read -ra rpath_dirs <<< "$SPACK_RPATH_DIRS"
if [[ $mode == ccld || $mode == ld ]]; then
if [[ "$add_rpaths" != "false" ]] ; then
if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
if [ "$add_rpaths" != "false" ]; then
# Append RPATH directories. Note that in the case of the
# top-level package these directories may not exist yet. For dependencies
# it is assumed that paths have already been confirmed.
rpaths=("${rpaths[@]}" "${rpath_dirs[@]}")
extend rpath_dirs_list SPACK_RPATH_DIRS
fi
fi
IFS=':' read -ra link_dirs <<< "$SPACK_LINK_DIRS"
if [[ $mode == ccld || $mode == ld ]]; then
libdirs=("${libdirs[@]}" "${link_dirs[@]}")
if [ "$mode" = ccld ] || [ "$mode" = ld ]; then
extend lib_dirs_list SPACK_LINK_DIRS
fi
# add RPATHs if we're in in any linking mode
case "$mode" in
ld|ccld)
# Set extra RPATHs
IFS=':' read -ra extra_rpaths <<< "$SPACK_COMPILER_EXTRA_RPATHS"
libdirs+=("${extra_rpaths[@]}")
if [[ "$add_rpaths" != "false" ]] ; then
rpaths+=("${extra_rpaths[@]}")
extend lib_dirs_list SPACK_COMPILER_EXTRA_RPATHS
if [ "$add_rpaths" != "false" ]; then
extend rpath_dirs_list SPACK_COMPILER_EXTRA_RPATHS
fi
# Set implicit RPATHs
IFS=':' read -ra implicit_rpaths <<< "$SPACK_COMPILER_IMPLICIT_RPATHS"
if [[ "$add_rpaths" != "false" ]] ; then
rpaths+=("${implicit_rpaths[@]}")
if [ "$add_rpaths" != "false" ]; then
extend rpath_dirs_list SPACK_COMPILER_IMPLICIT_RPATHS
fi
# Add SPACK_LDLIBS to args
for lib in "${SPACK_LDLIBS[@]}"; do
libs+=("${lib#-l}")
for lib in $SPACK_LDLIBS; do
append libs_list "${lib#-l}"
done
;;
esac
@@ -505,63 +677,62 @@ esac
#
# Finally, reassemble the command line.
#
# Includes and system includes first
args=()
# flags assembled earlier
args+=("${flags[@]}")
args_list="$flags_list"
# Insert include directories just prior to any system include directories
# NOTE: adding ${lsep} to the prefix here turns every added element into two
extend args_list include_dirs_list "-I"
extend args_list isystem_include_dirs_list "-isystem${lsep}"
for dir in "${includes[@]}"; do args+=("-I$dir"); done
for dir in "${isystem_includes[@]}"; do args+=("-isystem" "$dir"); done
case "$mode" in
cpp|cc|as|ccld)
if [ "$isystem_was_used" = "true" ]; then
extend args_list SPACK_INCLUDE_DIRS "-isystem${lsep}"
else
extend args_list SPACK_INCLUDE_DIRS "-I"
fi
;;
esac
IFS=':' read -ra spack_include_dirs <<< "$SPACK_INCLUDE_DIRS"
if [[ $mode == cpp || $mode == cc || $mode == as || $mode == ccld ]]; then
if [[ "$isystem_was_used" == "true" ]] ; then
for dir in "${spack_include_dirs[@]}"; do args+=("-isystem" "$dir"); done
else
for dir in "${spack_include_dirs[@]}"; do args+=("-I$dir"); done
fi
fi
for dir in "${system_includes[@]}"; do args+=("-I$dir"); done
for dir in "${isystem_system_includes[@]}"; do args+=("-isystem" "$dir"); done
extend args_list system_include_dirs_list -I
extend args_list isystem_system_include_dirs_list "-isystem${lsep}"
# Library search paths
for dir in "${libdirs[@]}"; do args+=("-L$dir"); done
for dir in "${system_libdirs[@]}"; do args+=("-L$dir"); done
extend args_list lib_dirs_list "-L"
extend args_list system_lib_dirs_list "-L"
# RPATHs arguments
case "$mode" in
ccld)
if [ -n "$dtags_to_add" ] ; then args+=("$linker_arg$dtags_to_add") ; fi
for dir in "${rpaths[@]}"; do args+=("$rpath$dir"); done
for dir in "${system_rpaths[@]}"; do args+=("$rpath$dir"); done
if [ -n "$dtags_to_add" ] ; then
append args_list "$linker_arg$dtags_to_add"
fi
extend args_list rpath_dirs_list "$rpath"
extend args_list system_rpath_dirs_list "$rpath"
;;
ld)
if [ -n "$dtags_to_add" ] ; then args+=("$dtags_to_add") ; fi
for dir in "${rpaths[@]}"; do args+=("-rpath" "$dir"); done
for dir in "${system_rpaths[@]}"; do args+=("-rpath" "$dir"); done
if [ -n "$dtags_to_add" ] ; then
append args_list "$dtags_to_add"
fi
extend args_list rpath_dirs_list "-rpath${lsep}"
extend args_list system_rpath_dirs_list "-rpath${lsep}"
;;
esac
# Other arguments from the input command
args+=("${other_args[@]}")
extend args_list other_args_list
# Inject SPACK_LDLIBS, if supplied
for lib in "${libs[@]}"; do
args+=("-l$lib");
done
extend args_list libs_list "-l"
full_command=("$command" "${args[@]}")
full_command_list="$command"
extend full_command_list args_list
# prepend the ccache binary if we're using ccache
if [ -n "$SPACK_CCACHE_BINARY" ]; then
case "$lang_flags" in
C|CXX) # ccache only supports C languages
full_command=("${SPACK_CCACHE_BINARY}" "${full_command[@]}")
prepend full_command_list "${SPACK_CCACHE_BINARY}"
# workaround for stage being a temp folder
# see #3761#issuecomment-294352232
export CCACHE_NOHASHDIR=yes
@@ -570,22 +741,36 @@ if [ -n "$SPACK_CCACHE_BINARY" ]; then
fi
# dump the full command if the caller supplies SPACK_TEST_COMMAND=dump-args
if [[ $SPACK_TEST_COMMAND == dump-args ]]; then
IFS="
" && echo "${full_command[*]}"
exit
elif [[ -n $SPACK_TEST_COMMAND ]]; then
die "ERROR: Unknown test command"
if [ -n "${SPACK_TEST_COMMAND=}" ]; then
case "$SPACK_TEST_COMMAND" in
dump-args)
IFS="$lsep"
for arg in $full_command_list; do
echo "$arg"
done
unset IFS
exit
;;
dump-env-*)
var=${SPACK_TEST_COMMAND#dump-env-}
eval "printf '%s\n' \"\$0: \$var: \$$var\""
;;
*)
die "Unknown test command: '$SPACK_TEST_COMMAND'"
;;
esac
fi
#
# Write the input and output commands to debug logs if it's asked for.
#
if [[ $SPACK_DEBUG == TRUE ]]; then
if [ "$SPACK_DEBUG" = TRUE ]; then
input_log="$SPACK_DEBUG_LOG_DIR/spack-cc-$SPACK_DEBUG_LOG_ID.in.log"
output_log="$SPACK_DEBUG_LOG_DIR/spack-cc-$SPACK_DEBUG_LOG_ID.out.log"
echo "[$mode] $command $input_command" >> "$input_log"
echo "[$mode] ${full_command[*]}" >> "$output_log"
echo "[$mode] ${full_command_list}" >> "$output_log"
fi
exec "${full_command[@]}"
# Execute the full command, preserving spaces with IFS set
# to the alarm bell separator.
IFS="$lsep"; exec $full_command_list

1
lib/spack/env/emscripten/em++ vendored Symbolic link
View File

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

1
lib/spack/env/emscripten/emcc vendored Symbolic link
View File

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

1
lib/spack/env/ld.gold vendored Symbolic link
View File

@@ -0,0 +1 @@
cc

1
lib/spack/env/ld.lld vendored Symbolic link
View File

@@ -0,0 +1 @@
cc

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