Commit graph

16827 commits

Author SHA1 Message Date
Todd Gamblin
2eadfa24e9
bugfix: hashes should use ordered dictionaries (#14390)
Despite trying very hard to keep dicts out of our hash algorithm, we seem
to still accidentally add them in ways that the tests can't catch. This
can cause errors when hashes are not computed deterministically.

This fixes an error we saw with Python 3.5, where dictionary iteration
order is random.  In this instance, we saw a bug when reading Spack
environment lockfiles -- The load would fail like this:

```
...
File "/sw/spack/lib/spack/spack/environment.py", line 1249, in concretized_specs
  yield (s, self.specs_by_hash[h])
KeyError: 'qcttqplkwgxzjlycbs4rfxxladnt423p'
```

This was because the hashes differed depending on whether we wrote `path`
or `module` first when recomputing the build hash as part of reading a
Spack lockfile.  We can fix it by ensuring a determistic iteration order.

- [x] Fix two places (one that caused an issue, and one that did
  not... yet) where our to_node_dict-like methods were using regular python
  dicts.

- [x] Also add a check that statically analyzes our to_node_dict
  functions and flags any that use Python dicts.

The test found the two errors fixed here, specifically:

```
E       AssertionError: assert [] == ['Use syaml_dict instead of ...pack/spack/spec.py:1495:28']
E         Right contains more items, first extra item: 'Use syaml_dict instead of dict at /Users/gamblin2/src/spack/lib/spack/spack/spec.py:1495:28'
E         Full diff:
E         - []
E         + ['Use syaml_dict instead of dict at '
E         +  '/Users/gamblin2/src/spack/lib/spack/spack/spec.py:1495:28']
```

and

```
E       AssertionError: assert [] == ['Use syaml_dict instead of ...ack/architecture.py:359:15']
E         Right contains more items, first extra item: 'Use syaml_dict instead of dict at /Users/gamblin2/src/spack/lib/spack/spack/architecture.py:359:15'
E         Full diff:
E         - []
E         + ['Use syaml_dict instead of dict at '
E         +  '/Users/gamblin2/src/spack/lib/spack/spack/architecture.py:359:15']
```
2020-01-21 23:36:10 -08:00
Scott Wittenburg
8283d87f6a pipelines: spack ci command with env-based workflow (#12854)
Rework Spack's continuous integration workflow to be environment-based.

- Add the `spack ci` command, which replaces the many scripts in `bin/`

- `spack ci` decouples the CI workflow from the spack instance:
  - CI is defined in a spack environment
  - environment is in its own (single) git repository, separate from Spack
  - spack instance used to run the pipeline is up to the user
  - A new `gitlab-ci` section in environments allows users to configure how
    specs in the environment should be mapped to runners
  - Compilers can be bootstrapped in the new pipeline workflow

- Add extensive documentation on pipelines (see `pipelines.rst` for further details)
- Add extensive tests for pipeline code
2020-01-21 22:35:18 -08:00
Todd Gamblin
4d794d63b5
python: add debug variant to enable pydebug (#14584) 2020-01-21 15:09:41 -08:00
Adam J. Stewart
796722aeee
Add py-scipy 1.2.3 (#14583) 2020-01-21 15:29:50 -06:00
Glenn Johnson
900161d182 Update and fix samtools (#14507)
* Update and fix samtools

This PR adds samtools-1.10 and sets the htlib directory so that the
spack built htslib can be used. This PR also arranges the dependencies
so that the htslib sequence is grouped on its own. Finally, the bzip2
dependency is removed and python and perl run dependencies are added.

* Fix samtools when built with ncurses+termlib

* The CI flake8 tests require lowercase variable

Interestingly, this did not show up when I ran `spack flake8` locally.
2020-01-21 15:24:39 -06:00
Dr. Christian Tacke
5eed196f74 Use util.url.join for URLs in GNU Mirrors / reorder Mirrors (#14395)
* Reorder GNU mirrors (#14395)

As @adamjstewart commented in #14395, GNU suggests to use
their mirror. So reorder the mirror to the top.

GNU Doc: https://www.gnu.org/prep/ftp.en.html

* Use spack.util.url.join for URLs in GNU mirrors (#14395)

One should not use os.path.join for URLs. This does only
work on POSIX systems.

Instead use spack.util.url.join.
So every part in spack uses the same url joining method.
2020-01-21 13:14:38 -06:00
Michael Kuhn
54ecc4e504 cmake: Fix patch checksum (#14542)
Add patch locally to make sure checksum cannot change again.
2020-01-21 13:05:42 -06:00
Glenn Johnson
5db5040871 Use CudaPackage mixin for py-theano (#14577)
This PR adds the CudaPackage mixin class to py-theano. This replaces the
`gpu` variant with the `cuda` variant.
2020-01-21 09:27:41 -06:00
Adam J. Stewart
d10505678f
Add new kcov package (#14574)
* Add new kcov package

* Fix linking error and add test
2020-01-20 19:22:05 -06:00
Sean Smith
f23a136d83 Update AWS ParallelCluster to 2.5.1 (#14571)
Signed-off-by: Sean Smith <seaam@amazon.com>
2020-01-20 15:19:28 -06:00
Cyrus Harrison
ca26eb6923 add conduit 0.5.1 release and allow conduit to build against statically linked python (#14559) 2020-01-19 20:22:03 -06:00
Olaf Mersmann
dbb149cd7f capnproto: New package. (#14557)
* capnproto: New package.

* capnproto: Fix flake8 errors.

* Remove characters invalid in Python 2.
2020-01-19 17:20:22 -06:00
Simon Pintarelli
818b00e302 py-voluptuous update versions (#14556) 2020-01-19 10:39:11 -06:00
Howard Pritchard
ba22af0de0 openmpi: swat btl/uct ucx 1.7 bug (#14522)
Unfortunately UCX 1.7.0 is appearing in RPMS before it's officially released.
There's a problem with Open MPI 4.0.x where x < 3 and this version of UCX,
namely that the UCT BTL fails to compile.

See https://github.com/open-mpi/ompi/issues/7128

This patch works around the problem by disabling the build of the UCT BTL
for releases 4.0.0 to 4.0.2.

add hppritcha (me) as maintainer

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2020-01-18 13:52:26 -06:00
Matthieu Dorier
d8b4bee0cd Added py-spdlog package (#14514)
* Added py-spdlog package

* pleasing flake-8

* pleasing flake-8

* addressed some comments from adamjstewart

* changed URL for archive

* replaced with pypi.io url
2020-01-18 13:51:55 -06:00
Martin Pokorny
cacd57d340 Updates to casacore package (#14552)
* Add +cfitsio variant to wcslib dependency

* Replace ncurses dependency with readline dependency

casacore explicitly may depend on readline, not ncurses

* Add workaround for casacore's readline dependency

casacore optionally depends upon readline, but it's CMakeLists.txt provides no
user control over whether or not readline becomes a dependency. As readline is
often present by default on systems, it's better for this package to explicitly
depend on readline in order to prevent linking to whatever system version of the
library happens to be found during the build process. This should be considered
a workaround until casacore's CMakeLists.txt is fixed.

* Apply workaround for casacore's dependency on SOFA

Similar to the issues with casacore's readline dependency, casacore's optional
dependency on SOFA does not provide the user with a means of controlling the
dependency during build time. Unlike the readline library, the SOFA library is
unlikely to exist on most systems by default. As the SOFA dependency is only
optionally used for testing casacore, requiring it by default is not a good
workaround. Until casacore's CMakeLists.txt is fixed, this variant has been
removed to avoid unexpected library dependencies in the installed package.

* Add newer casacore versions

* Add mpokorny to maintainer field
2020-01-17 20:02:51 -06:00
Valentin Reis
c6a6911821 aml: adds 'develop' and 'master' targets. (#14549)
Co-authored-by: mlhardware <57849932+mlhardware@users.noreply.github.com>
2020-01-17 16:38:12 -06:00
Kai Torben Ohlhus
9010d4fce5 suite-sparse: add 5.4.0, 5.5.0, and 5.6.0, GitHub releases (#14547)
- The suite-sparse author publishes new versions starting with 5.5.0 on GitHub, see https://github.com/DrTimothyAldenDavis/SuiteSparse/releases and http://faculty.cse.tamu.edu/davis/SuiteSparse/
  - change spack to download from there
  - updated sha256 checksums from GitHub for all available releases
- For versions 5.4.0, 5.5.0, 5.6.0 there is a slightly different compilation necessary: first `make default` then `make install`.

Summary of the version changes (+ added, -removed [because not available on GitHub]):
```
+ 5.6.0
+ 5.5.0
+ 5.4.0
  5.3.0
  5.2.0
+ 5.1.2
  5.1.0
+ 5.0.0
+ 4.5.6
  4.5.5
- 4.5.4
  4.5.3
- 4.5.1
```
2020-01-17 13:04:53 -06:00
darmac
4bb76cf5e8 add new package : erlang (#14548) 2020-01-17 13:03:08 -06:00
Sajid Ali
c52bcdd080 jdk temporary fix (#14550) 2020-01-17 12:58:58 -06:00
darmac
4d752e63e5 fix hadoop url and update versions (#14530) 2020-01-17 12:56:00 -06:00
Brian Van Essen
94bc6b06b1 Added new hashes for the protobuf and py-protobuf packates. (#14546)
* Added new hashes for the protobuf and py-protobuf packates.

* Fixed flake8
2020-01-16 17:02:50 -06:00
Adam J. Stewart
bdc9b89d86
Don't patch latest version of HDF5 (#14545) 2020-01-16 15:59:26 -06:00
Adam J. Stewart
563e261fa4
Add py-torchvision 0.5.0 (#14544) 2020-01-16 15:46:55 -06:00
Adam J. Stewart
38cd15d0e0
Add py-torch 1.4.0 (#14543) 2020-01-16 15:46:41 -06:00
Adam J. Stewart
808c80d65a
Fix use of sys.executable for module/env commands (#14496)
* Fix use of sys.executable for module/env commands

* Fix unit tests

* More consistent quotation, less duplication

* Fix import syntax
2020-01-16 15:46:18 -06:00
Adam J. Stewart
7a61d1dbd1
Add include/pythonX.Y to CPATH (#14523) 2020-01-16 15:21:14 -06:00
Cameron Stanavige
0f68ed73c6 unifyfs: new release version (#14527)
This updates the UnifyFS package to account for the latest 0.9.0
version and removes support for version 0.2.0.
2020-01-16 15:16:59 -06:00
Howard Pritchard
876305adf0 mesa: check aarch64 system type as well (#14493)
to disabled use of libunwind.  Without this mesa fails to build
using recent Cray compilers - cce 9 and higher -  on aarch64 systems.

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2020-01-16 12:21:34 -06:00
noguchi-k
7319516749 falcon: Set Py_None to return value (#14532) 2020-01-16 12:14:52 -06:00
albestro
c763b68b7c update hpx package for the new release 1.4.0 (#14533) 2020-01-16 12:12:35 -06:00
darmac
f22855f6e7 add new package : geode (#14534)
* add new package : geode

* remove provides for gemfire
2020-01-16 12:11:30 -06:00
darmac
362e79bb3a add new package : ignite (#14539) 2020-01-16 12:04:41 -06:00
Glenn Johnson
5aeab7dbe5 Use CudaPackage mixin for py-torch (#14540)
This PR adds CudaPackage in order to pick up the cuda/compiler conflicts
defined in CudaPackage.
2020-01-16 12:02:53 -06:00
Michael Kuhn
8ad0be96aa perl: Fix binary detection (#14536)
It seems that stable versions of perl also install a `perlX.Y.Z` binary.
However, it seems that this binary can hang if used in conjunction with
Spack's sbang workaround, as observed during automake's build.
2020-01-16 10:11:53 -06:00
Kai Torben Ohlhus
b7f0493563 octave: add 5.1.0 (#14531)
Add version Octave 5.1.0 including sha256.
2020-01-15 22:55:24 -06:00
Glenn Johnson
8b1bf2d613 Update py-csvkit (#14525)
* Update py-csvkit

This PR updates the py-csvkit package. This version requires a python
stack based on agate and this PR includes the new dependency packages.

- py-agate-dbf
- py-agate-excel
- py-agate-sql
- py-agate
- py-dbfread
- py-isodate
- py-leather
- py-parsedatetime
- py-python-slugify
- py-pytimeparse
- py-text-unidecode

* Replace the copy/pasted apostrophes

Python 2 can not process the copy/pasted apostrophes so replace them
with standard single quote character.

* Add version constraints on dependencies
2020-01-15 22:45:04 -06:00
Olaf Mersmann
a48fb69601 Update RocksDB to current version (#14524)
* rocksdb: Fix for rocksdb issue 5303

* rocksdb: Explicitly disable features

* rocksdb: Add TBB variant.

* rocksdb: New version 5.18.3 and 6.5.3
2020-01-15 18:50:24 -06:00
Adam J. Stewart
3cd6938d80
Fix typo in modules docstring (#14521) 2020-01-15 15:16:12 -06:00
Glenn Johnson
027142bcfc Add version constraint to graphviz patches (#14377)
* Add version contraint to graphviz patches

This PR restricts the graphviz version that the patches for building
with the Intel compiler apply to. The two patches that were needed for
building graphviz-2.40.1 with the Intel compiler are not needed for
graphviz-2.42.2.

* Adjust the qt dependencies

The qt5 patch is only needed for graphviz-2.40.1. However, that version
will only compile with GCC-6 or greater.
2020-01-15 14:14:45 -06:00
Michael Kuhn
c2778d8898 perl: Add 5.30.1 (and 5.31.7) (#14509)
This also fixes actually building the development releases.
2020-01-15 14:12:51 -06:00
Michael Kuhn
e6e06aa2f3 mariadb-c-client: Add 3.1.6 and 3.1.5 (#14510) 2020-01-15 14:10:47 -06:00
Mark W. Krentel
b5d729a829 hpctoolkit: add version 2019.12.28 (#14519)
Add version 2019.12.28 and update the prereqs for the latest master.
2020-01-15 14:04:22 -06:00
Rao Garimella
946a80bd3d New package Jali - unstructured mesh infrastructure for multiphysics applications (#14498)
* add variant for enabling testing

* add variant for enabling testing

* enable tests and clean up other options

* enable tests and clean up other options

* add numbered versions

* add numbered versions

* updates to avoid enable_tests variant; correct versioning

* updates to avoid enable_tests variant; correct versioning

* fixes for style

* appropriate partitioners are enabled if 'all' is specified - so no need to check in spec

* revert accidental change to copyright

* remove erroneously re-introduced line about tests

* new spack recipe for build Jali - unstructured mesh infrastructure for multiphysics applications

* remove the +parallel condition for mstk, update 1.1.1 sha256sum and whitespace cleanup

* reformat description

* cut down description
2020-01-15 12:32:17 -06:00
Robert Mijakovic
a2f961bd6f Adds MPI_THREAD_MULTIPLE support for OpenMPI to the variant with UCX fabrics (#14194)
* Fixes:
1. MPI_THREAD_MULTIPLE problem with OpenMPI and UCX.

Changes:
1. OpenMPI provides two new depends_on options which result in UCX being compiled with multiple threads support. One implicit when OpenMPI 3.x is used, MPI_THREAD_MULTIPLE is enabled by default, and one explicit for OpenMPI <= 2.x, MPI_THREAD_MULTIPLE is disabled by default.
2. Extends UCX package to allow "Enable thread support in UCP and UCT" option.
3. Adds sha256 sums of UCX releases 1.6.1 and 1.2.0.

More details:
Fixes the issue with OpenMPI where programs which use MPI_THREAD_MULTIPLE will fail to execute because UCP worker didn't support it.
During the OpenMPI package installation it's the +thread_multiple spec was not propagated to UCX nor UCX handled it at all.
Now, the OpenMPI package is capable of handling +thread_multiple spec when UCX is request and the UCX package correctly handles +thread_multiple and compiles with the --enable-mt option.
Error message during runtime:
pml_ucx.c:226 Error: UCP worker does not support MPI_THREAD_MULTIPLE

* Adapts check of specs to read better and is the suggested form in the docs.

* Explicitly disables multithreading of UCX if +thread_multiple option is not used.
2020-01-15 12:31:18 -06:00
Glenn Johnson
0232c820ab Rework texlive package to install from source (#14332)
* Rework texlive package to install from source

This PR reworks the texlive package so that it installs from versioned
source distibution files. This is preferred over installing the binary
package for several reasons. For the binary installation:

1. Each component is downloaded, so can not use a spack mirror.
2. Changes in components over time are not reflected in spack hash.
3. Some of the binaries do not run due to glibc issues, depending on OS.

This PR keeps the binary installation as an option but it should be
considered deprecated, and probably rewmoved at some point.

This PR depends on zziplib from PR #14318.

* Fix flake8 issues
2020-01-15 11:35:07 -06:00
Glenn Johnson
f8acb95ad3 Convert encoding of script in interproscan (#14356)
One of the perl scripts was encoded with ISO-8859-1, which caused the
sbang replacement process to fail when spack uses python3. This PR
converts the ps_scan script to UTF-8 encoding.
2020-01-15 11:32:18 -06:00
Glenn Johnson
726a662c2c Change encoding for scripts in repeatmasker (#14358)
This PR converts ISO-8859 encoding to UTF-8 encoding for three scripts in
repeatmasker.

- the main RepeatMasker script
- SimpleBatcher.pm
- wublastToCrossmatch.pl

The ISO-8859 encoding prevented the sbang replacement of long paths when
spack uses python3.
2020-01-15 11:31:51 -06:00
Michael Kuhn
b69cf08cfb python: Add 3.7.6 and 3.7.5 (#14497) 2020-01-15 11:24:48 -06:00
Glenn Johnson
e7add79cba Update the icu4c package (#14450)
* Update the icu4c package

This PR makes several changes to the icu4c package

1. add updated version to 65.1
2. modify the default url as project has moved to github
3. set UTF-8 locale to support building from source files in UTF-8
format

Note that the older versions are not available on github so explicit urls
were used. This PR will close #14399.

* Consolidate the urls

Consolidate the URLs in the `version` directives by using an if test in
`url_for_version`.

* Put version and sha256 on same line

* Put top level url back
2020-01-14 22:05:55 -06:00