Commit graph

18787 commits

Author SHA1 Message Date
mic84
ad29f2148e
amrex: new version 21.01 (#20659) 2021-01-04 18:41:06 -08:00
Stephanie Brink
dec98ed754
py-hatchet: added latest versions up to 1.3.0 (#20667) 2021-01-04 18:38:44 -08:00
Peter Scheibel
22a45e010a
Bugfix: Support old installations using Cray MPICH (#20663)
#20076 moved Cray-specific MPICH support from the Spack MPICH package
to a new cray-mpich Package. This broke existing package installs
using external mpich on Cray systems. This PR keeps the cray-mpich
package but restores the Cray-specific MPICH support for older
installations.

In the future this support should be removed from the Spack mpich
package and users should be directed to use cray-mpich on Cray.
2021-01-04 17:19:08 -08:00
Sreenivasa Murthy Kolam
f4acf74091
bump up rocm math libs recipes for rocm-4.0.0 release (#20651) 2021-01-05 00:02:03 +01:00
Todd Gamblin
9c941bb706 concretizer: simplify handling of virtual version constraints
Previously, the concretizer handled version constraints by comparing all
pairs of constraints and ensuring they satisfied each other. This led to
INCONSISTENT ressults from clingo, due to ambiguous semantics like:

    version_constraint_satisfies("mpi", ":1", ":3")
    version_constraint_satisfies("mpi", ":3", ":1")

To get around this, we introduce possible (fake) versions for virtuals,
based on their constraints. Essentially, we add any Versions,
VersionRange endpoints, and all such Versions and endpoints from
VersionLists to the constraint. Virtuals will have one of these synthetic
versions "picked" by the solver. This also allows us to remove a special
case from handling of `version_satisfies/3` -- virtuals now work just
like regular packages.
2021-01-04 14:51:10 -08:00
Todd Gamblin
a1ed71f7e4 concretizer: remove rule generation code from concretizer
Our program only generates facts now, so remove all unused code related
to generating cardinality constraints and rules.
2021-01-04 14:51:10 -08:00
Todd Gamblin
0ce08640e0 concretizer: convert virtuals to facts; move all rules to concretize.lp
This converts the virtual handling in the new concretizer from
already-ground rules to facts. This is the last thing that needs to be
refactored, and it converts the entire concretizer to just use facts.

The previous way of handling virtuals hinged on rules involving
`single_provider_for` facts that were tied to the virtual and a version
range. The new method uses the condition pattern we've been using for
dependencies, externals, and conflicts.

To handle virtuals as conditions, we impose constraints on "fake" virtual
specs in the logic program. i.e., `version_satisfies("mpi", "2.0:",
"2.0")` is legal whereas before we wouldn't have seen something like
this. Currently, constriants are only handled on versions -- we don't
handle variants or anything else yet, but they key change here is that we
*could*. For a long time, virtual handling in Spack has only dealt with
versions, and we'd like to be able to handle variants as well. We could
easily add an integrity constraint to handle variants like the one we use
for versions.

One issue with the implementation here is that virtual packages don't
actually declare possible versions like regular packages do. To get
around that, we implement an integrity constraint like this:

    :- virtual_node(Virtual),
       version_satisfies(Virtual, V1), version_satisfies(Virtual, V2),
       not version_constraint_satisfies(Virtual, V1, V2).

This requires us to compare every version constraint to every other, both
in program generation and within the concretizer -- so there's a
potentially quadratic evaluation time on virtual constraints because we
don't have a real version to "anchor" things to. We just say that all the
constraints need to agree for the virtual constraint to hold.

We can investigate adding synthetic versions for virtuals in the future,
to speed this up.
2021-01-04 14:51:10 -08:00
Todd Gamblin
49ac3471cf concretizer: consolidate handling of virtuals into spec_clauses 2021-01-04 14:51:10 -08:00
Todd Gamblin
fa411e7c07 concretizer: make _condtion_id_counter an iterator 2021-01-04 14:51:10 -08:00
Todd Gamblin
3cc89726ee concretizer: more detailed section headers in concretize.lp 2021-01-04 14:51:10 -08:00
Rémi Lacroix
39b77e1b39
r-codetools: Update package (#20626) 2021-01-04 14:46:47 -08:00
Mark W. Krentel
735d5c3769
libunwind: add version 1.5.0 (#20632)
Add version 1.5.0, remove 1.4-rc1 (use 1.4.0) and 1.5-rc1 (use 1.5.0).
2021-01-04 14:37:52 -08:00
Fabian Brandt
0c6641abd0
Update libnetworkit, py-networkit to 8.0 (#20478) 2021-01-04 16:14:06 -06:00
yellowhat
4dd6ba44f2
fftw: bump to 3.3.9 (#20634) 2021-01-04 23:01:42 +01:00
Massimiliano Culpo
cfd0ff52d1
ci: fix issue with latest sphinx (#20661) 2021-01-04 22:10:49 +01:00
Dave Love
11dd7ffad6
Add procenv (#20121)
* Add procenv

* procenv: Only buildrequire check

* procenv:  Patch for gcc 10

* procenv:  Add omitted patch

* Indent doc string
2021-01-04 22:08:54 +01:00
darmac
1b33008705
libthai: new package at v0.1.28 (#19916) 2021-01-04 17:36:12 +01:00
Sreenivasa Murthy Kolam
c9e6a4d18b
Bumpup version for rocm 4.0.0 release (#20640) 2021-01-04 17:16:26 +01:00
Sreenivasa Murthy Kolam
efb1e19339
bumpup version for rocm stage1 recipes for rocm-4.0.0 release (#20635) 2021-01-04 17:06:44 +01:00
Rémi Lacroix
47998b3f47
Libnsl: added v1.3.0 and v1.1.0. (#20645) 2021-01-04 16:34:42 +01:00
Rémi Lacroix
573d2ce2e1
Plumed: added v2.7.0. (#20646) 2021-01-04 16:34:09 +01:00
Axel Huebl
a3fb8e55d5
openPMD-api: 0.13.0 (#20648)
Add the latest release of openPMD-api.

Remove a selection of unsupported, pre-beta releases.
2021-01-04 16:29:46 +01:00
Tomoyasu Nojiri
a5611e0466
exciting: fix build on aarch64 (#20505) 2021-01-04 16:26:18 +01:00
Todd Gamblin
16ce207481
bugfix: infinite loop when building a set from incomplete specs (#20649)
This code in `SpecBuilder.build_specs()` introduced in #20203, can loop
seemingly interminably for very large specs:

```python
set([spec.root for spec in self._specs.values()])
```

It's deceptive, because it seems like there must be an issue with
`spec.root`, but that works fine. It's building the set afterwards that
takes forever, at least on `r-rminer`. Currently if you try running
`spack solve r-rminer`, it loops infinitely and spins up your fan.

The issue (I think) is that the spec is not yet complete when this is
run, and something is going wrong when constructing and comparing so many
values produced by `_cmp_key()`. We can investigate the efficiency of
`_cmp_key()` separately, but for now, the fix is:

```python
roots = [spec.root for spec in self._specs.values()]
roots = dict((id(r), r) for r in roots)
```

We know the specs in `self._specs` are distinct (they just came out of
the solver), so we can just use their `id()` to unique them here. This
gets rid of the infinite loop.
2021-01-04 10:28:16 +01:00
Tomoyasu Nojiri
4c23d99e7d
fdupes: Add pcre2 depend (#20466)
* fdupes: Add pcre2 depend

* fdupes: Fix depend for pcre2
2021-01-04 10:12:13 +01:00
darmac
221e680e2b
Add new package: xfsdump (#19914)
* Add new package: xfsdump

* fix Description and Homepage
2021-01-03 11:20:57 -06:00
darmac
5d1bcf67cf
Add new package: py-holland (#19924)
* Add new package: py-holland

* rename py-holland to py-holland-backup

* fix dependencies
2021-01-03 11:07:37 -06:00
Sajid Ali
d685e47fb7
bump py-h5py (#20482)
* rebase and fix merge conflict

* address reviewer comments

* rework dependency handling as per reviewer comments

* incorporate reviewer feedback

* incorporate reviewer feedback

* fix phases

* address reviewer comments

* minor
2021-01-02 17:32:36 -06:00
Todd Gamblin
a8ccb8e116 copyrights: update all files with license headers for 2021
- [x] add `concretize.lp`, `spack.yaml`, etc. to licensed files
- [x] update all licensed files to say 2013-2021 using
      `spack license update-copyright-year`
- [x] appease mypy with some additions to package.py that needed
      for oneapi.py
2021-01-02 12:12:00 -08:00
Todd Gamblin
78f39bdfee commands: add spack license update-copyright-year
This adds a new subcommand to `spack license` that automatically updates
the copyright year in files that should have a license header.

- [x] add `spack license update-copyright-year` command
- [x] add test
2021-01-02 12:12:00 -08:00
Todd Gamblin
4d94c4c460
linguist: update .gitattributes for better linguist parsing (#20639)
This adds two lines to `.gitattributes`:
- [x] exclude vendored code from GitHub's language calculation
- [x] recognize `.lp` files as Prolog (closest language to ASP that
      linguist supports)

It looks like there have been two attempts
(https://github.com/github/linguist/issues/3867,
https://github.com/github/linguist/issues/4860) to add ASP as a language
to Linguist, but it's not widespread enough to be standard yet (or at
least the people who submitted the PRs haven't been able to show enough
stats to prove it). We'll settle for calling ASP "Prolog" for now as
that'll get us some syntax highlighting for `concretize.lp`.
2020-12-31 16:48:50 -08:00
Tom Payerle
a1cf000655
hdf-eos5: new package (HDF for Earth Observing Sytem using hdf v5) (#20274)
* hdf-eos5: new package (HDF for Earth Observing Sytem using hdf v5)

* hdf-eos5: flake8 fixes

* hdf-eos5: trying to fix flake8 errors

* hdf-eos5: flake8 fix

* hdf-eos5: Fix to support Fortran codes

The -Df2cFortran compilation flag needed to support Fortran
2020-12-30 17:55:29 -06:00
Tom Payerle
a30ba0b836
hdf-eos2: new package (HDF for Earth Observing System using hdf5) (#20275)
* hdf-eos2: new package (HDF for Earth Observing System using hdf5)

* hdf-eos2: flake8 fixes

* hdf-eos2: fix to support Fortran

Need the compilation flag -Df2cFortran to allow support for Fortran
codes
2020-12-30 17:54:55 -06:00
Adam J. Stewart
0d95fd6d52
extends: add type kwarg (#20045)
* extends: add type kwarg

* Flake8 fix
2020-12-30 11:09:58 -06:00
eugeneswalker
717b653bdd
nalu-wind: add variant to build wind-utils (#20587) 2020-12-30 11:07:43 -06:00
Adam J. Stewart
5964cb49d9
Use system libuuid on macOS (#20608) 2020-12-30 10:13:34 -06:00
Massimiliano Culpo
eca1dd8738 concretizer: generate facts for externals
Generate only facts for external specs. Substitute the
use of already grounded rules with non-grounded rules
in concretize.lp
2020-12-29 23:51:20 -08:00
Adam J. Stewart
a4accff266
PythonPackage: url -> pypi (#20610)
* Convert all `url` attributes in `PythonPackage`s to `pypi` attributes
* add `pypi =` to flake8 exceptions
2020-12-29 16:44:04 -08:00
Michael Kuhn
c22141f444
Introduce virtual provider uuid (#18322)
libuuid is currently contained in util-linux, libuuid and uuid. This
change introduces a new virtual provider `uuid` and renames the existing
`uuid` package to `ossp-uuid`.

util-linux's libuuid is provided in the form of a separate package
util-linux-uuid to make sure that packages depending on uuid and
util-linux can use a separate uuid implementation, which the concretizer
does not allow if libuuid is contained in util-linux.
2020-12-29 10:12:26 -06:00
Adam J. Stewart
b421080c03
GDB: Better Python debugging support (#20486)
* GDB: Better Python debugging support

* Auto-load safe path

* Use gdbinit instead
2020-12-29 10:04:58 -06:00
Adam J. Stewart
8f92970714
py-geoplot: add new package at v0.4.1 (#20603) 2020-12-29 11:56:24 +01:00
Adam J. Stewart
03844b581a
OpenVSLAM: add new package (#20389) 2020-12-29 11:18:34 +01:00
Adam J. Stewart
50e9501124
py-contextily: add new package at v1.0.1 (#20602) 2020-12-29 11:17:24 +01:00
Yang Zongze
d41bb54729
automake: fix shebang substitution for v1.16.3 and later (#20579) 2020-12-29 11:16:34 +01:00
Adam J. Stewart
8babd5345f
py-geopy: add new package at v2.1.0 (#20601) 2020-12-29 09:11:12 +01:00
Adam J. Stewart
05f8e08067
PythonPackage: add pypi attribute to infer homepage/url/list_url (#17587) 2020-12-29 09:03:08 +01:00
John Wohlbier
76d23d9ee4
squashfs: fix build with GCC 10 (#20592) 2020-12-29 08:46:00 +01:00
Adam J. Stewart
e62676b245
Fix deptypes for some geospatial Python packages (#20593) 2020-12-29 08:40:23 +01:00
Adam J. Stewart
08ba1148e2
py-pygeos: add new package at v0.8 (#20594) 2020-12-29 08:39:45 +01:00
Glenn Johnson
747f7decc4
fsl: updated package, added v6.0.4 (#20201)
- added several patches
- added some missing dependencies
- remove unneeded dependencies
- add CUDA support
- disable queue support, which was limited, and broken anyway
- move package text that was specific to the package to a comment, so it
  does not show up the environment module
- set conflicts for cuda and compilers

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2020-12-29 08:27:26 +01:00