Commit graph

20667 commits

Author SHA1 Message Date
Todd Gamblin
ecc3bfd484
Bugfix - hashing: don't recompute full_hash or build_hash (#19672)
There was an error introduced in #19209 where `full_hash()` and
`build_hash()` are called on older specs that we've read in from the DB;
older specs may not be able to compute these hashes (e.g. if they have
removed patches used in computing the full_hash).

When serializing a Spec, we want to generate the full/build hash when
possible, but we need a mechanism to skip it for Specs that have
themselves been read from YAML (and may not support this).

To get around this ambiguity and to fix the issue, we:

- Add an attribute to the spec called `_hashes_final`, that is `True`
  if we can't lazily compute `build_hash` and `full_hash`.
- Set `_hashes_final` to `False` for new specs (i.e., lazily
  computing hashes is ok)
- Set `_hashes_final` to `True` for concrete specs read in via
  `from_node_dict`, as it may be too late to recompute hashes.
- Compute and write out all hashes in `node_dict_with_hashes` *if
  possible*.

Effectively what this means is that we can round-trip specs that are
missing `_build_hash` and `_full_hash` without recomputing them, but for
all new specs, we'll compute them and store them. So Spack should work
fine with old DBs now.
2020-11-02 13:21:11 -08:00
Satish Balay
2ca894bd1e
pumi add version 2.2.5 (#19680) 2020-11-02 14:02:50 -06:00
Satish Balay
4d6c9a8f29
omega-h: add version 9.32.5 (#19679) 2020-11-02 12:50:10 -06:00
Seth R. Johnson
62eab8923e
ROOT: use native CMakePackage functions in packages.py (#19642)
* root: update to built-in CMakePackage functions

* root: Disable options from missing variants

* Remove modification of CMAKE_PROGRAM_PATH
2020-11-02 16:21:44 +00:00
Scott McMillan
f621e97f47
Fix issue with NAMD patch not applying cleanly (#19675)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2020-11-02 10:12:15 -06:00
Tiziano Müller
acc075d79d
llvm: fix +lldb build with external ncurses on openSUSE (#19627)
fixes #19625
2020-11-02 07:39:21 -06:00
Harmen Stoppels
4fe56de72e
hip: revert using libs.directories[0] instead of prefix.lib (#19671)
Currently fails with:

 Error: NoLibrariesError: Unable to recursively locate rocm-device-libs libraries
2020-11-02 09:54:29 +01:00
eugeneswalker
b2d6c63421
hip: setup run environments (#19637)
* hip: rocminfo is a runtime requirement

* hip: +setup_run_environment, +setup_dependent_run_environment

* hip: run environment: get lib dir using libs.directories[0], not prefix.lib

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-01 21:52:06 -06:00
Todd Gamblin
a80d221bfa sbang: fixes for sbang relocation
This fixes sbang relocation when using old binary packages, and updates
code in `relocate.py`.

There are really two places where we would want to handle an `sbang`
relocation:

1. Installing an old package that uses `sbang` with shebang lines like
   `#!/bin/bash $spack_prefix/sbang`
2. Installing a *new* package that uses `sbang` with shebang lines like
   `#!/bin/sh $install_tree/sbang`

The second case is actually handled automatically by our text relocation;
we don't need any special relocation logic for new shebangs, as our
relocation logic already changes references to the build-time
`install_tree` to point to the `install_tree` at intall-time.

Case 1 was not properly handled -- we would not take an old binary
package and point its shebangs at the new `sbang` location. This PR fixes
that and updates the code in `relocation.py` with some notes.

There is one more case we don't currently handle: if a binary package is
created from an installation in a short prefix that does *not* need
`sbang` and is installed to a long prefix that *does* need `sbang`, we
won't do anything. We should just patch the file as we would for a normal
install. In some upcoming PR we should probably change *all* `sbang`
relocation logic to be idempotent and to apply to any sort of shebang'd
file. Then we'd only have to worry about which files to `sbang`-ify at
install time and wouldn't need to care about these special cases.
2020-11-01 16:23:48 -08:00
Adam J. Stewart
a4dd8d5582
Scalapack: don't apply patches twice (#19662) 2020-11-01 15:15:04 -08:00
Adam J. Stewart
ea8ba48a32
meson: add new version, external find support (#19658) 2020-11-01 15:33:14 -06:00
Adam J. Stewart
750027e80f
libepoxy: remove meson dependency (#19659) 2020-11-01 16:11:46 -05:00
Adam J. Stewart
854aed2571
krb5: fix build with Apple Clang 12 (#19657) 2020-11-01 16:11:40 -05:00
Hervé Yviquel
f62efe5e2e
Fix rdma-core package installation (#19643)
* add python-docutils dependency

* adds symlink to script for better compatibility if py-docutils installation

* Improve post_install phase of py-docutils

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

* fix review of rdma-core package

* improve formating of py-docutils package

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-01 10:08:06 -06:00
Andrew W Elble
ffd5f6b196
arborx: fix depends_on conditional (missing '+') (#19655) 2020-11-01 10:07:45 -06:00
Andrew W Elble
68ab6b252a
hpl: fix conflict directive (missing '^') (#19656) 2020-11-01 10:07:08 -06:00
Andrew W Elble
3630a8a87a
root: conflict is with a dependency (#19654) 2020-11-01 15:11:38 +01:00
Massimiliano Culpo
e4a5a06e87
gromacs: simplified use of targets (#19646) 2020-11-01 13:16:59 +01:00
Massimiliano Culpo
77fc458d29
opencv: fixed conflict firectives (missing '^') (#19645)
See https://github.com/spack/spack/pull/19501#issuecomment-718406357
2020-10-31 19:05:13 -05:00
Tim Haines
6b35324cf3
elfutils: add support for version 0.181 (#19634)
This also includes handling of the new libdebuginfod flags.
2020-10-31 13:03:04 -05:00
Jerome Soumagne
2cf1606896
mercury: update to v2.0.0 (#19635)
Remove deprecated selfforward option, on by default

Rename verbose option to debug option
2020-10-31 13:02:03 -05:00
Geoffrey Gunter
826ed5ff24
fmt: add version 7.1.0 (#19638) 2020-10-31 12:58:37 -05:00
vijay kallesh
51a9473bf8
[NEW] Added amdfftw, amdlibflame and amdscalapack recipes (#19457)
* [NEW] Added amdfftw, amdlibflame and amdscalapack recipes

Updated base fftw, libflame and netlib-scalapack recipes
to accommodate the above listed AMD Optimizing CPU Libraries
which are a set of numerical routines optimized for AMD platforms.

Updated amdblis spack recipe

amdblis:
	1. updated with amdblis 2.2 release
amdfftw:
	1. "--enable-single" now work as synonym for "--enable-float"
amdlibflame:
	1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag
Libflame:
	1. Added enable_or_disable_threads() to set value for "--enable-multithreading" flag
	2. Corrected invocation of "enable_or_disable('threads')"

Change-Id: I9da0a2c2c4e2075b7fa2776e7cfe6548a2e0b32f

* Added amd-toolchain-support as maintainers

Added team github account amd-toolchain-support
as maintainers for all the recipes owned by
AMD Optimizing CPU Libraries (AOCL) team

Change-Id: I9a7969bd48fc42cfbb88dd7bd93e0802c6138582

* Incorporated review comments

Updated packages.yaml with aocl components
Handled Flake8 test failures

Change-Id: I0a03f02d8c9f326b2434ec907958c3de3a8e18eb

* Readded accidental removal of stream recipe

amdfftw:
	1. Updated the aocc clang selection as per spack standards
fftw:
	1. Currently apple-clang section is redundant,
	already it is handled in the conflict checks.

Change-Id: Idef4a3f61717eb81f321e0cd16e7ba9619eac846

* Fix for style and docs/validate (pull_request) test

unnumbered format placeholders from {} to {0}

Change-Id: If67a3374177ec067573e5504462d257712fafc05

* changed compiler references to Spack's compiler wrapper:spack_cc, spack_cxx, spack_fc

Change-Id: I7ae29c978fff16e37773913f14c84df232499763

* Removed 'single' variant from amdfftw recipe

Instead of conflict for apple-clang + openmp, handled this senario
via below available feature:
depends_on('llvm-openmp', when='%apple-clang +openmp')

Change-Id: I701b23d83e822a500ca3aaf2b60cc9ace09e13dc

* Added relevant info for users who prefers to use single precision

Change-Id: I3506e21da428ddef5fb7895b5aaed32c2a061ef6

* Minor changes on fftw, amdfftw and libflame

amdfftw:
	1. Removed escape symbol to the single quotes
	2. Rewording the conflict line from Recommended
	to Required

fftw:
	1. Reorded to following recommended sections:
	versions, variants, dependencies, providers,
	patches

libflame:
	1. Added provides entry for 5.1.0 version

Change-Id: I21ebff99b6dfde031763154693ecb3f1fa47b476

* Removed single quote from amdfftw docstring to fix style failures

Change-Id: Ife939a5a2f5ccbc8879b730c7bebfe2fcfef9332
2020-10-31 11:57:17 -05:00
Morten Kristensen
08f4ba0c98
py-vermin: add latest version 1.0.1 (#19641) 2020-10-31 11:55:32 -05:00
Adam J. Stewart
d855ad2abb
py-pandas: add v1.1.4 (#19632) 2020-10-30 20:12:47 -04:00
Andrew W Elble
dee92f9b42
New package: gqrx (#19633)
* gqrx and dependencies

* changes

* forgot log4cpp

* misc dep fixes
2020-10-30 19:01:29 -05:00
Danny Taller
9fb2d5521d
changes to support hip build of camp (#19502)
* camp: changes to support hip build

* hip: add fallback path for external hip to detect other rocm components

Co-authored-by: Greg Becker <becker33@llnl.gov>
2020-10-30 13:33:54 -07:00
Massimiliano Culpo
c4aa5cb5bc
Update documentation on containers (#19631)
fixes #15183

- Moved the container related content from
  workflows.rst into containers.rst
- Deleted the docker_for_developers.rst file,
  since it describes an outdated procedure

Co-authored-by: Axel Huebl <a.huebl@hzdr.de>
Co-authored-by: Omar Padron <omar.padron@kitware.com>
2020-10-30 21:17:15 +01:00
Massimiliano Culpo
33c3c3c700
Config: cache results of get_config (#19605)
`config.get_config` now caches the results and returns the same
configuration if called multiple times with the same arguments
(i.e. the same section and scope).

As a consequence, it is expected that users will always call
update methods provided in the `config` module after changing
the configuration (even if manipulating it as a Python nested
dictionary). The following two examples should cover most
scenarios:

* Most configuration update logic in the core (e.g. relating to
  adding new compiler) should call `Configuration.update_config`
* Tests that need to change the global configuration should use the
  newly-provided `config.replace_config` function.

(if neither of these methods apply, then the essential requirement
is to use a method marked as `_config_mutator`)

Failure to call such a function after modifying the configuration
will lead to unexpected results (e.g. calling `get_config` after
changing the configuration will not reflect the changes since the
first call to get_config).
2020-10-30 13:10:45 -07:00
Massimiliano Culpo
458d88eaad
Make archspec a vendored dependency (#19600)
- Added archspec to the list of vendored dependencies
- Removed every reference to llnl.util.cpu
- Removed tests from Spack code base
2020-10-30 13:02:14 -07:00
Mathew Cleveland
f82e858238
update to OPPPY-0_1_4 release (#17716)
Co-authored-by: Cleveland <cleveland@lanl.gov>
2020-10-30 14:58:09 -05:00
darmac
d0ad622272
Add new package: wayland (#18826)
* Add new package: wayland

* remove duplicated dependency
2020-10-30 14:56:31 -05:00
David M. Rogers
d6f0cb0461
Patched hypre to better add flags based on compiler. (#19498)
* Patched hypre to better add flags based on compiler.

* Update package.py

This file seems to have lots of edits, so the patch may succeed with offsets.  Has anyone checked with spack patch to be sure it'll work with versions 2.15 - 2.20?
2020-10-30 14:55:21 -05:00
t-nojiri
ae3178f4eb
py-pycbc: Fix for aarch64 (#19563)
* py-pycbc: Fix for aarch64

* py-pycbc: Change patch application conditions
2020-10-30 14:54:04 -05:00
Scott Wittenburg
31f57e56bb
Binary caching: use full hashes (#19209)
* "spack install" now has a "--require-full-hash-match" option, which
  forces Spack to skip an available binary package when the full hash
  doesn't match. Normally only a DAG-hash match is required, which
  ensures equivalent Specs, but does not account for changing logic
  inside the associated package.
* Add a local binary cache index which tracks specs that have a binary
  install available in a remote binary cache. It is updated with
  "spack buildcache list" or for a given spec when a binary package
  is retrieved for that Spec.
2020-10-30 12:53:33 -07:00
Dr. Christian Tacke
124d654337
glew: Refactor as CMakePackage (#19588)
In #18394 it was noted, that this package should be changed
from a generic "Package" to a "CMakePackage".
It makes a bunch of things easier.

And it uses all the common cmake code.
2020-10-30 14:52:15 -05:00
t-nojiri
e1c1967b54
diamond: The version 2.0.4 file name has been changed. (#19595)
* diamond: The version 2.0.4 file name has been changed.

* diamond: Removed v2.0.4 URL.
2020-10-30 14:51:57 -05:00
Brian Van Essen
7dea225fce
Update lbann version and simplify installation (#19579)
* Added hash values for LBANN v0.101 and Hydrogen v1.5.0.  Updated the
LBANN package to be more successful in resolving a legal configuration
of MPI and HWLOC packages.  This required the removal of the MPI
virtual package since it is unable to resolve dependencies with
minimum version requirements. As a result to enable a reasonable
install line for LBANN this requires explicit forwarding of MPI
variants to Hydrogen and Aluminum.  Due to the lack of variant
forwarding, there are many explicitly replicated dependencies for both
LBANN and Hydrogen.  Fixed the error in LBANN where gpu variant was
replaced by the cuda variant, but not all dependencies were fixed.

* Fixed the minumum cuDNN version for newer versions of LBANN.

* Added explicit versioning of the MPI libraries for DiHydrogen to avoid
all of the conflicts with minimum required versions of the OpenMPI library.

* Removed explicit MPI versions and went back to using the MPI virtual
dependency.  Updated construction of variant forwarding to use
iterative construction of constraints and variants.  This exacerbates
the challenges with backtracking in the current concretizer, but
should be fixed in the new concretizer.

* Added support for including the DiHydrogen library in LBANN as well as
support for the distributed convolution (DistConv) parallel
algorithms.  Also include support for building with half precision.

* Moving dependencies around

* Added conflict statement to ensure that the variant dihydrogen is
required for distconv.

* Removed the preferred field

* Fixed Flake8 and cuDNN version bounds
2020-10-30 14:51:10 -05:00
Hervé Yviquel
a04e7686f8
add recent versions of rdma-core package (#19604) 2020-10-30 14:50:20 -05:00
Dr. Christian Tacke
c3630ed26e
hepmc: Add variants for length and momemtum (#19609) 2020-10-30 14:46:19 -05:00
Toyohisa Kameyama
5a5c220d0a
py-dotnetcore2: Add conflict non x86_64 targets. (#19623) 2020-10-30 14:44:15 -05:00
Robert Underwood
f2318d80d2
sz: version bump 2.1.11 (#19613) 2020-10-30 14:41:21 -05:00
Jen Herting
05cd3c4380
New package: py-cudf (#19111)
* [py-cudf] created template

* [py-cudf] set build directory

* [py-cudf] adding dependencies

* [py-cudf] fixed phases

* [py-cudf] added cmake to fetch some third party dependencies

* [py-cudf] flake8

* [py-cudf] added homepage and description. removed fixmes

* [py-cudf] added dependency of py-cupy

* [py-cudf] depends on py-fsspec

* [py-cudf] py-pyarrow requires +orc

* [py-cudf] py-pyarrow requires +parquet

* [py-cudf] removed upper python limit

* [py-cudf] checksum changed
2020-10-30 14:36:49 -05:00
Tiziano Müller
724325f789
molden: adding the package (#19626) 2020-10-30 14:35:24 -05:00
Teodor Nikolov
fef20524f9
clingo: compilation error - needs a patch (#19624)
* Add a patch to clingo

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-10-30 11:36:53 -07:00
Adam J. Stewart
3d7e8ff399
PyTorch: add v1.7.0 (#19555) 2020-10-30 12:42:15 -05:00
Adam J. Stewart
cb877e2a28
py-pillow-simd: add older version (#19500) 2020-10-30 12:23:12 -05:00
Adam J. Stewart
be14679719
GDAL: add new version (#19504) 2020-10-30 12:22:53 -05:00
Adam J. Stewart
bea65aacda
py-torchvision: add v0.8.0 (#19556)
* py-torchvision: add v0.8.0

* py-torchvision: add v0.8.1
2020-10-30 12:22:38 -05:00
Adam J. Stewart
bfab98d41e
oneDNN: add v1.6.5 (#19557) 2020-10-30 12:22:07 -05:00