Commit graph

16936 commits

Author SHA1 Message Date
iarspider
545c436d33
Add extra version of xrootd (#15124) 2020-02-20 10:55:37 -06:00
iarspider
0ea7b83e71
Add extra version of py-setuptools (#15106) 2020-02-20 09:58:19 -06:00
iarspider
186ca13cf0
Add extra version of vecgeom (#15121) 2020-02-20 09:57:33 -06:00
iarspider
674c4379ee
Add extra version of xapian-core (#15122) 2020-02-20 09:57:07 -06:00
iarspider
308a6bc601
Add extra version of xerces-c (#15123) 2020-02-20 09:56:47 -06:00
iarspider
43f8e9a260
Add extra version of prometheus-client (#15067)
* Add extra version of py-prometheus-client

* Update package.py

* Update package.py
2020-02-20 09:55:39 -06:00
iarspider
98895297b5
Add extra version of py-py4j (#15065)
* Add extra version of py-py4j

* Add test dependencies

* Update package.py
2020-02-20 09:55:15 -06:00
iarspider
64887e4821
Add extra version of py-sip (#15108) 2020-02-20 09:53:38 -06:00
iarspider
4e2a5388ac
Add extra version of py-qtconsole (#15083)
* Add extra version of py-qtconsole

* Update package.py

* Update package.py
2020-02-20 09:53:04 -06:00
iarspider
9a5fa90c25
Add extra version of py-pyshp (#15072)
* Add extra version of py-pyshp

* Update package.py
2020-02-20 09:52:23 -06:00
Anthony Scemama
d98b98aae6
Package for IRPF90 (#15076)
* Added IRPF90 package

* PEP8

* SHA256

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-20 09:50:21 -06:00
iarspider
4d62dda17a
Add extra version of py-multiprocess (#15043)
* Add extra version of py-multiprocess

* Update dependency version

* Add url_for_version

* Flake-8

* Update package.py
2020-02-19 23:11:49 -06:00
iarspider
a02aadb4db
Add extra version of py-packaging (#15047)
* Add extra version of py-packaging

* Update py-packaging

`attrs` dependency was only in 19.1
2020-02-19 23:09:45 -06:00
Dr. Christian Tacke
22a56a89c7
Use shutil.copy2 in install_tree (#15058)
Sometimes one needs to preserve the (relative order) of
mtimes on installed files.  So it's better to just copy
over all the metadata from the source tree to the install
tree. If permissions need fixing, that will be done anyway
afterwards.

One major use case are resource()s:
They're unpacked in one place and then copied to their
final place using install_tree(). If the resource is a
source tree using autoconf/automake, resetting mtimes
uncorrectly might force unwanted autoconf/etc calls.
2020-02-19 23:09:26 -06:00
iarspider
a47ab9c6b2
Add extra version of py-psutil (#15063)
* Add extra version of py-psutil

* Add optional dependency on enum34

* Update package.py

* Remove unused enum variant
2020-02-19 23:09:07 -06:00
iarspider
ef9ab2ebc4
Add extra version of py-ptyprocess (#15064) 2020-02-19 23:08:30 -06:00
iarspider
0be09abd9c
Add extra version of py-pylint (#15068)
* Add extra version of py-pylint

* Update dependencies
2020-02-19 23:04:11 -06:00
Dr. Christian Tacke
66c3f89b78
libfabric: Always install fabtests (#15081)
libfabric used to install fabtests only when installed
using --test. fabtests has tools that are useful on a
running system, so they should be installed always.

* Rewrote the build/install part to always install
  fabtests alongside libfabric.
* Updated a few fabtests resources.
* Updated the test related stuff. Works for most versions
  now.
* Include tcp and udp fabrics so that the test suite works.
2020-02-19 22:59:16 -06:00
iarspider
47e8084fab
Add extra version of py-python-gitlab (#15074)
* Add extra version of py-python-gitlab

* Update dependency version
2020-02-19 22:56:10 -06:00
iarspider
d9d863330b
Add extra version of py-rsa (#15084) 2020-02-19 22:55:12 -06:00
iarspider
e258326133
Add extra version of py-scandir (#15085) 2020-02-19 22:54:07 -06:00
Adam J. Stewart
7a60a04402
Docs: configure_args -> cmake_args (#15102) 2020-02-19 22:48:56 -06:00
Mark W. Krentel
9b221d26b8
hpctoolkit: adjust libunwind dependency (#15099)
Change hpctoolkit's dependency on libunwind from 2018.10.12 to 1.4:.
In libunwind, 2018.10.12 is going away in favor of 1.4-rc1 (they're
nearly identical commits).

Remove the 'gpu' version.  This was a temporary branch that is now
folded into master.
2020-02-19 18:42:51 -06:00
Glenn Johnson
4cd1a5660e
py-notebook: make py-setuptools a run dependency (#15095)
* py-notebook: make py-setuptools a run dependency

The py-setuptools dependency in py-notebook needs to be a run
dependency. The following message is received if it is not in the run
environment.

Traceback (most recent call last):  File "/opt/ssoft/apps/2020.1/linu
x-centos7-sandybridge/gcc-9.2.0/py-notebook-6.0.1-6usbn4c/bin/jupyter-notebook",
line 6, in <module>
    from pkg_resources import load_entry_point
Module NotFoundError: No module named 'pkg_resources'

* Remove extraneous whitespace
2020-02-19 18:41:27 -06:00
Oliver Breitwieser
65133daad7
Fix relocate.mime_type if slashes in subtype (#11788)
If the mimetype returned from `file -h -b --mime-type` contains slashes
in its subtype, the tuple returned from `spack.relocate.mime_type` will
have a size larger than two, which leads to errors.

Change-Id: I31de477e69f114ffdc9ae122d00c573f5f749dbb
2020-02-19 17:30:17 -06:00
iarspider
8825335056
Add extra version of py-scikit-learn (#15087) 2020-02-19 14:51:25 -06:00
iarspider
d1cbc14022
Add extra version of py-prompt-toolkit (#15062) 2020-02-19 14:50:30 -06:00
iarspider
f4d91cc3ec
Add extra version of py-pickleshare (#15059)
* Add extra version of py-pickleshare

* Fix dependencies

* Flake-8
2020-02-19 13:37:36 -06:00
iarspider
c969fffbf0
Add extra version of py-pillow (#15060) 2020-02-19 13:35:22 -06:00
iarspider
1d986c3790
Add extra version of py-pip (#15061) 2020-02-19 13:34:56 -06:00
iarspider
f9b857f1b0
Add extra version of py-pyasn1 (#15066) 2020-02-19 13:32:23 -06:00
iarspider
3331b70f20
Add extra version of py-pyparsing (#15069) 2020-02-19 13:29:43 -06:00
iarspider
0c8738a860
Add extra version of py-pyproj (#15070) 2020-02-19 13:28:56 -06:00
iarspider
31f9b66e18
Add extra version of py-pyqt5 (#15071) 2020-02-19 13:28:24 -06:00
iarspider
dc46e219d1
Add extra version of py-pytest (#15073) 2020-02-19 13:26:18 -06:00
iarspider
129256de52
Add extra version of py-pytz (#15077) 2020-02-19 13:25:45 -06:00
iarspider
44c01e6b70
Add extra version of py-pyyaml (#15078) 2020-02-19 13:25:23 -06:00
iarspider
f46f238a33
Add extra version of py-jedi (#14990)
* Add extra version of py-jedi

* Update package.py

* Update package.py

Correct dependency types

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

* Add py-parso package

* Remove boilerplate from py-parso

* Flake-8

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19 13:01:48 -06:00
iarspider
d3b1248c2d
Add extra version of py-isort (#14988)
* Add extra version of py-isort

* Update package.py

* Update package.py

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19 12:59:45 -06:00
iarspider
eac6c53afb
Add extra version of py-dask; add new variant and dependencies (#14973)
* Add extra version of py-dask

* Update package.py

* Add extra dependencies for py-dask+distributed

* Update package.py

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

* Update var/spack/repos/builtin/packages/py-distributed/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-distributed/package.py

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

* Update package.py

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

Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com>

* Update package.py

* Flake-8

* Add patch step for py-distributed

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-02-19 12:59:03 -06:00
iarspider
e9862671c9
Add extra version of py-pyzmq (#15080) 2020-02-19 12:56:57 -06:00
Seth R. Johnson
2dac7b60a9
Fix gcc 8.3 build on macOS 10.14 (#15089) 2020-02-19 12:50:32 -06:00
Patrick Gartung
14025e89f6
Buildcache: join rpaths returned by get_existing_elf_rpaths with ':'. (#15086)
This reproduces the behavior expected by patchelf_is_relocatable test.
2020-02-19 11:41:02 -06:00
Tamara Dahlgren
f2aca86502
Distributed builds (#13100)
Fixes #9394
Closes #13217.

## Background
Spack provides the ability to enable/disable parallel builds through two options: package `parallel` and configuration `build_jobs`.  This PR changes the algorithm to allow multiple, simultaneous processes to coordinate the installation of the same spec (and specs with overlapping dependencies.).

The `parallel` (boolean) property sets the default for its package though the value can be overridden in the `install` method.

Spack's current parallel builds are limited to build tools supporting `jobs` arguments (e.g., `Makefiles`).  The number of jobs actually used is calculated as`min(config:build_jobs, # cores, 16)`, which can be overridden in the package or on the command line (i.e., `spack install -j <# jobs>`).

This PR adds support for distributed (single- and multi-node) parallel builds.  The goals of this work include improving the efficiency of installing packages with many dependencies and reducing the repetition associated with concurrent installations of (dependency) packages.

## Approach
### File System Locks
Coordination between concurrent installs of overlapping packages to a Spack instance is accomplished through bottom-up dependency DAG processing and file system locks.  The runs can be a combination of interactive and batch processes affecting the same file system.  Exclusive prefix locks are required to install a package while shared prefix locks are required to check if the package is installed.

Failures are communicated through a separate exclusive prefix failure lock, for concurrent processes, combined with a persistent store, for separate, related build processes.  The resulting file contains the failing spec to facilitate manual debugging.

### Priority Queue
Management of dependency builds changed from reliance on recursion to use of a priority queue where the priority of a spec is based on the number of its remaining uninstalled dependencies.  

Using a queue required a change to dependency build exception handling with the most visible issue being that the `install` method *must* install something in the prefix.  Consequently, packages can no longer get away with an install method consisting of `pass`, for example.

## Caveats
- This still only parallelizes a single-rooted build.  Multi-rooted installs (e.g., for environments) are TBD in a future PR.

Tasks:
- [x] Adjust package lock timeout to correspond to value used in the demo
- [x] Adjust database lock timeout to reduce contention on startup of concurrent
    `spack install <spec>` calls
- [x] Replace (test) package's `install: pass` methods with file creation since post-install 
    `sanity_check_prefix` will otherwise error out with `Install failed .. Nothing was installed!`
- [x] Resolve remaining existing test failures
- [x] Respond to alalazo's initial feedback
- [x] Remove `bin/demo-locks.py`
- [x] Add new tests to address new coverage issues
- [x] Replace built-in package's `def install(..): pass` to "install" something
    (i.e., only `apple-libunwind`)
- [x] Increase code coverage
2020-02-19 00:04:22 -08:00
Nichols A. Romero
2f4881d582
Add latest 3.9.x releases QMCPACK (#15056) 2020-02-18 23:50:07 -06:00
Kai Torben Ohlhus
26ad754f42
octave: enable 64-bit BLAS builds. (#15035)
* octave: enable 64-bit BLAS builds.

Perform necessary actions [as described in the manual](https://octave.org/doc/v5.2.0/Compiling-Octave-with-64_002dbit-Indexing.html).

* Update package.py
2020-02-18 23:49:27 -06:00
noguchi-k
4c215d1fed
modern-wheel: add virtual destructor to BaseMultiParms class (#14899)
* modern-wheel: add virtual destructor

* modern-wheel: add maintainers
2020-02-18 23:48:46 -06:00
Tyler Reddy
a92543803c
ENH: add catch2 CMake install (#15008)
* ENH: add catch2 CMake install

* add a variant allowing catch2 to be installed
via CMake, which is useful for generating a .cmake
config file for consumption by other projects

* Catch2: Simplify Package

- CMake install is also single-header for new releases
- testing triggered by Spack's test mechanism
- default to CMake build (better than simple copy, which is
  just for old releases to be installed)

* Catch: Remove Variant

We can control all installs with CMake to be quick and complete.
Old versions prior to 1.7.0 will be manually installed, as the
`make install` target is missing in those.
Releases 1.7.0-1.9.3 do not expose control over test builds.

* openPMD-api: Catch Lost single_header

... variant is gone :)

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2020-02-18 23:48:24 -06:00
eugeneswalker
0ea220db83
slate needs mercurial for build (#15055) 2020-02-18 15:26:31 -08:00
Hadrien G
11340a332d
[hepmc] Finish the HepMC3 spackage update (#15036)
* Finish the HepMC3 spackage update

- Update CMake requirement per latest master
- Account for Python variant, add python dependency if used
- Account for ROOT I/O variant, add ROOT dependency if used

* Please flake8
2020-02-18 16:04:59 -06:00