Compare commits

...

3892 Commits

Author SHA1 Message Date
Massimiliano Culpo
912109da16 Bump version number to v0.17.2 2022-04-14 11:08:17 +02:00
Massimiliano Culpo
5e0eb1f887 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-14 11:08:17 +02:00
Massimiliano Culpo
7cd7b38cb8 Add CHANGELOG for v0.17.2 2022-04-14 11:08:17 +02:00
Michael Kuhn
a2a403ae0a 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-04-14 11:08:17 +02:00
Greg Becker
3b12a8b192 patch cache: fix bug finding inherited packages (#29574) 2022-04-14 11:08:17 +02:00
Massimiliano Culpo
e9896620e4 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-04-14 11:08:17 +02:00
Harmen Stoppels
9d00894c5a fix --reuse w/ upstreams in env (#29680) 2022-04-14 11:08:17 +02:00
Harmen Stoppels
1cc2b82408 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-04-14 11:08:17 +02:00
Greg Becker
ad2c020848 config add: fix parsing of validator error to infer type from oneOf (#29475) 2022-04-14 11:08:17 +02:00
Massimiliano Culpo
bd119927ff 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-04-14 11:08:17 +02:00
Tom Scogland
2a8fe3a5b0 allow ci reproduce to work when spack is cloned to a directory not named spack (#29518) 2022-04-14 11:08:17 +02:00
Harmen Stoppels
3427e2c8cf 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-04-14 11:08:17 +02:00
Harmen Stoppels
e8bb341536 intel-mkl: load compiler modules when querying compiler (#29439) 2022-04-14 11:08:17 +02:00
百地 希留耶
08009ffd70 Hide package repository count when redirecting stdout (#29402) 2022-04-14 11:08:17 +02:00
百地 希留耶
d4f2326824 Fix tab completion erroring with spack unit-test (#29405) 2022-04-14 11:08:17 +02:00
Harmen Stoppels
9edfd25134 ci.py: fix utf-8 issue with git log output (#29419) 2022-04-14 11:08:17 +02:00
Harmen Stoppels
afb3f4ff20 Add a test 2022-04-14 11:08:17 +02:00
Harmen Stoppels
9d8e411d76 VersionRange.satisfies should test non-empty intersection 2022-04-14 11:08:17 +02:00
Massimiliano Culpo
fbdcd7cbf1 Fix typos when forwarding arguments to traverse_edges (#29261)
A few calls use `deptypes=...` instead of `deptype=...`
2022-04-14 11:08:17 +02:00
Harmen Stoppels
5b0d4fe928 Unalias despacktivate only when alias exists (#28939) 2022-04-14 11:08:17 +02:00
Harmen Stoppels
deb9102b2d 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-04-14 11:08:17 +02:00
Adam J. Stewart
e0be0d8683 Resource stage: no space before colon (#28560) 2022-04-14 11:08:17 +02:00
Jordan Galby
1179623002 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-04-14 11:08:17 +02:00
Tamara Dahlgren
ab5c02d538 is_system_path: return False if path is None (#28403) 2022-04-14 11:08:17 +02:00
Peter Scheibel
1fd6fedba5 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-04-14 11:08:17 +02:00
Harmen Stoppels
69cbf10a80 Fix spack install --v[tab] spec (#28278) 2022-04-14 11:08:17 +02:00
Harmen Stoppels
5b2d7445b8 Fix double space in prompt after 'spack env activate -p' (#28279) 2022-04-14 11:08:17 +02: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
Mark W. Krentel
f92a2d688d elfutils: add version 0.186 (#27345) 2021-11-13 18:49:53 -06: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
Todd Gamblin
24c01d57cf imports: sort imports everywhere in Spack (#24695)
* fix remaining flake8 errors

* imports: sort imports everywhere in Spack

We enabled import order checking in #23947, but fixing things manually drives
people crazy. This used `spack style --fix --all` from #24071 to automatically
sort everything in Spack so PR submitters won't have to deal with it.

This should go in after #24071, as it assumes we're using `isort`, not
`flake8-import-order` to order things. `isort` seems to be more flexible and
allows `llnl` mports to be in their own group before `spack` ones, so this
seems like a good switch.
2021-07-08 22:12:30 +00:00
Paul Henning
620836a809 hdf5: Fix compiler identification for warning flags (#24627)
* Fix compiler test

Use `self.spec.satisfies` on compiler to determine if a flag should be
applied or not.  This approach avoids issues with the strings `gcc`
or `clang` appearing in the full path to the compiler executables, as
happens with spack-installed compilers (e.g. `nvhpc%gcc`).

* Limit compiler name search to last path component

@skosukhin pointed out that the cflag modification should happen for any
clang or gcc compiler, regardless of what compiler spec provides them.
This commit reverts to searching for a compiler name containing "gcc"
or "clang", but limits the search to the last path component, which
avoids matching spack-installed compilers built with gcc (e.g.
`nvhpc%gcc`), which will have "gcc" in the compiler path.

* Use `os.path` rather than `pathlib`

Co-authored-by: Paul Henning <phenning@lanl.gov>
2021-07-08 15:17:44 -04:00
Adam J. Stewart
0c5402ea5c setup-env: allow users to skip slow parts (#24545) 2021-07-08 17:07:26 +02:00
Todd Gamblin
a22686279c cvs tests: don't use dateutil at all
`dateutil.parser` was an optional dependency for CVS tests. It was failing on macOS
beacuse the dateutil types were not being installed, and mypy was failing *even when the
CVS tests were skipped*. This seems like it was an oversight on macOS --
`types-dateutil-parser` was not installed there, though it was on Linux unit tests.

It takes 6 lines of YAML and some weird test-skipping logic to get `python-dateutil` and
`types-python-dateutil` installed in all the tests where we need them, but it only takes
4 lines of code to write the date parser we need for CVS, so I just did that instead.

Note that CVS date format can vary from system to system, but it seems like it's always
pretty similar for the parts we care about.

- [x] Replace dateutil.parser with a simpler date regex
- [x] Lose the dependency on `dateutil.parser`
2021-07-07 17:27:31 -07:00
Todd Gamblin
0dd04ffbfb style: get close to full coverage of spack style
Previous tests of `spack style` didn't really run the tools --
they just ensure that the commands worked enough to get coverage.

This adds several real tests and ensures that we hit the corner
cases in `spack style`.  This also tests sucess as well as failure
cases.
2021-07-07 17:27:31 -07:00
Todd Gamblin
24a4d81097 style: clean up and restructure spack style command
This consolidates code across tools in `spack style` so that each
`run_<tool>` function can be called indirecty through a dictionary
of handlers, and os that checks like finding the executable for the
tool can be shared across commands.

- [x] rework `spack style` to use decorators to register tools
- [x] define tool order in one place in `spack style`
- [x] fix python 2/3 issues to Get `isort` checks working
- [x] make isort error regex more robust across versions
- [x] remove unused output option
- [x] change vestigial `TRAVIS_BRANCH` to `GITHUB_BASE_REF`
- [x] update completion
2021-07-07 17:27:31 -07:00
Todd Gamblin
b5d2c30d26 style: Move isort configuration to pyproject.toml
- [x] Remove flake8-import-order checks, as we only need isort for this
- [x] Clean up configuration and requirements
2021-07-07 17:27:31 -07:00
Danny McClanahan
7a9fe189e1 style: add support for isort and --fix 2021-07-07 17:27:31 -07:00
Paul Kuberry
f5c1ae32d1 xyce: Prefer master branch (#24733)
Adds 7.3.0 release of Xyce and makes a tag
'github.master' pointing at the master branch
of the Xyce repository on github.com.
2021-07-07 19:56:57 -04:00
Manuela Kuhn
e0b901153b New package: git-annex (#24721) 2021-07-07 11:54:40 -07:00
Glenn Johnson
4fd8640586 Configure docbook packages (#24300)
This PR configures the spack docbook packages
- docbook-xsl
- docbook-xml

The public entities are now mapped to the locally installed files of the
respective packages. The example catalogs are left in place and
XML_CATALOG_FILES points to the newly created catalogs.
2021-07-07 20:41:24 +02:00
Olivier Cessenat
970bf4318c zziplib: add v0.13.72(#24462) 2021-07-07 20:33:54 +02:00
Gregory Lee
218ae0c5d1 m4 package: only apply nvhpc.patch for version 1.4.18 (#24730)
The patch as-is does not apply to 1.4.19
2021-07-07 11:28:42 -07:00
Adam J. Stewart
ad7984c5c0 magma package: fix bugs in cuda_arch variant (#24735) 2021-07-07 11:18:52 -07:00
Adam J. Stewart
b1f4f91f41 py-mypy: add version 0.910 (#24738) 2021-07-07 11:13:31 -07:00
Massimiliano Culpo
2914f9076e perl: bzip2 and zlib may be installed under <prefix>/lib64 (#24752) 2021-07-07 11:22:51 -06:00
Adam J. Stewart
663c37cac4 py-torch: +magma requires +cuda (#24736) 2021-07-07 19:12:52 +02:00
eugeneswalker
36ba640cbd add e4s-on-power stack (#24734) 2021-07-07 10:06:30 -06:00
Manuela Kuhn
5e33b20230 py-seaborn: add 0.11.1 (#24748) 2021-07-07 10:49:59 -05:00
Jordan Ogas
d3c04ed345 charliecloud: add v0.24 (#24728) 2021-07-07 16:42:41 +02:00
Manuela Kuhn
20a191ad93 py-neurokit2: add new package (#24749) 2021-07-07 16:37:34 +02:00
Harmen Stoppels
d06537f75c libtree: add v1.2.2 (#24747) 2021-07-07 16:36:16 +02:00
Olivier Cessenat
09d89ef265 netpbm: new package (#24063) 2021-07-07 15:36:11 +02:00
Olivier Cessenat
0e3f7ce0ed New Package: visit-ffp (#22903) 2021-07-07 15:07:00 +02:00
Adam J. Stewart
e914e561ec sleef: disable optional dependencies (#24742) 2021-07-07 11:34:07 +02:00
Mark W. Krentel
3c9a58bd0b perl: add dependencies for bzip2 and zlib (#24743)
Perl keeps copies of the bzip2 and zlib source code in its own source
tree and by default uses them in favor of outside libraries.  Instead,
put these dependencies under control of spack and tell perl to use the
spack-built versions.
2021-07-07 11:25:57 +02:00
Seth R. Johnson
59eea2859a trilinos: enable +teko gotype=long (#24722) 2021-07-06 17:01:41 -04:00
G-Ragghianti
c12dc1a5de Magma: add ROCm support and v2.6.0 (#24663) 2021-07-06 13:04:37 -06:00
Vasily Danilin
ea2d4b05bc oneAPI packages: add 2021.3 release (#24617) 2021-07-06 10:11:24 -07:00
Massimiliano Culpo
f9ecc4966d qt: rework to use the when context manager (#24723) 2021-07-06 08:07:36 -06:00
Harmen Stoppels
545f971bec fix buffered download (#24623)
* Use shutil to do a buffered copy from http response to file

* Fix flake8...

* Somehow flake8 still complains about unrelated files
2021-07-06 06:12:35 -06:00
Manuela Kuhn
9d36f7f518 qt+webkit: fix missing dependencies and gcc11 compatibility (#24366) 2021-07-06 13:18:02 +02:00
Jianwen
e65ab166b9 json-fortran: add version v6.0.11 (#24720) 2021-07-06 07:03:09 -04:00
Mark Olesen
f8743d0cbf openfoam: add v2106 (#24579)
Co-authored-by: Mark Olesen <Mark.Olesen@esi-group.com>
2021-07-06 08:54:14 +02:00
Adam J. Stewart
9055deea16 py-torch: fix bug in libs/headers attributes (#24624) 2021-07-06 08:53:05 +02:00
Seth R. Johnson
1e3c012fea xyce: clean and fix trilinos dependencies (#24673) 2021-07-06 08:52:10 +02:00
figroc
61242db8f9 abseil-cpp: add versions up to 20210324.2 (#24692) 2021-07-06 08:42:28 +02:00
figroc
9550703132 tensorflow-serving-client: add v2.3.0 (#24694) 2021-07-06 08:41:16 +02:00
eugeneswalker
e450612188 installer: fix double print of exception (#24697) 2021-07-06 08:40:24 +02:00
Adam J. Stewart
115c39e762 py-black: add v21.6b0 (#24715) 2021-07-06 08:40:12 +02:00
Mark W. Krentel
b8f1bd407e hpcx-mpi: new package (#24194)
This is a virtual package for Nvidia's HPC-X MPI implementation for
external specs only.
2021-07-06 08:20:47 +02:00
Adam J. Stewart
cea11f3714 OpenCV: various package updates (#24553) 2021-07-06 08:18:58 +02:00
Adam J. Stewart
b35d6d13a7 py-sphinx: add v4.0.2 (#24602) 2021-07-05 13:25:25 -06:00
Manuela Kuhn
6a1a4d4bb6 py-secretstorage: add 3.3.1 (#24705) 2021-07-05 12:24:32 -05:00
Manuela Kuhn
713fd67b4a py-keyring: fix installation on linux (#24706)
* py-keyring: fix installation on linux

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-07-05 12:24:21 -05:00
Adam J. Stewart
2ded87d40e GDAL: add v3.3.1 (#24713) 2021-07-05 18:45:57 +02:00
Manuela Kuhn
9963642c1c py-importlib-metadata: add 4.6.1 and 3.10.1 (#24701) 2021-07-05 10:28:01 -05:00
Manuela Kuhn
8e37c30e2f py-whoosh: add new package (#24707) 2021-07-05 16:08:57 +02:00
Manuela Kuhn
04289b2009 py-keyrings-alt: add new package (#24704) 2021-07-05 12:45:29 +02:00
Manuela Kuhn
d764b776d7 py-patool: add new package (#24703) 2021-07-05 12:44:59 +02:00
Manuela Kuhn
1cb2855054 py-iso8601: add new package (#24702) 2021-07-05 12:44:23 +02:00
Manuela Kuhn
95b0eb9fdd py-num2words: add new package (#24681) 2021-07-05 11:16:01 +02:00
Sebastian Pipping
a2a273832f uriparser: add v0.9.5 (#24688) 2021-07-05 11:14:30 +02:00
figroc
cf6aa8f012 grpc: add versions up to 1.33.1 (#24693) 2021-07-05 10:53:35 +02:00
Adam J. Stewart
fd11c6f5f7 py-pandas: add v1.3.0 (#24696) 2021-07-05 10:51:14 +02:00
Adam J. Stewart
eaa918c8f3 py-isort: add v5.9.1, +colors variant (#24699) 2021-07-05 10:50:23 +02:00
Adam J. Stewart
eacba1ffac py-colorama: add v0.4.4 (#24698) 2021-07-05 10:49:26 +02:00
Adam J. Stewart
a3f6df33ef Remove add-maintainers-as-reviewers action (#24700) 2021-07-04 18:55:24 -07:00
Adam J. Stewart
3b94e22ad4 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-07-02 22:20:09 -07:00
Robert Underwood
e568564e2f Update Z-checker and SZ (#24446) 2021-07-02 23:40:14 +02:00
Joe Heaton
6547f41096 Rename cray compiler to cce (#24653)
cp2k was using the outdated and Incorrect compiler name `cray`.
2021-07-02 12:15:43 -07:00
Scott Wittenburg
c895332284 Pipelines: Improve broken specs check (#24643)
We should not fail the generate stage simply due to the presence of
a broken-spec somewhere in the DAG.  Only fail if the known broken
spec needs to be rebuilt.
2021-07-02 10:49:49 -07:00
Massimiliano Culpo
3d11716e54 Add when context manager to group common constraints in packages (#24650)
This PR adds a context manager that permit to group the common part of a `when=` argument and add that to the context:
```python
class Gcc(AutotoolsPackage):
    with when('+nvptx'):
        depends_on('cuda')
        conflicts('@:6', msg='NVPTX only supported in gcc 7 and above')
        conflicts('languages=ada')
        conflicts('languages=brig')
        conflicts('languages=go')
```
The above snippet is equivalent to:
```python
class Gcc(AutotoolsPackage):
    depends_on('cuda', when='+nvptx')
    conflicts('@:6', when='+nvptx', msg='NVPTX only supported in gcc 7 and above')
    conflicts('languages=ada', when='+nvptx')
    conflicts('languages=brig', when='+nvptx')
    conflicts('languages=go', when='+nvptx')
```
which needs a repetition of the `when='+nvptx'` argument. The context manager might help improving readability and permits to group together directives related to the same semantic aspect (e.g. all the directives needed to model the behavior of `gcc` when `+nvptx` is active). 

Modifications:

- [x] Added a `when` context manager to be used with package directives
- [x] Add unit tests and documentation for the new feature
- [x] Modified `cp2k` and `gcc` to show the use of the context manager
2021-07-02 08:43:15 -07:00
Olivier Cessenat
f88d90e432 mfem: adjusted dependencies on hypre (4.2 compiles with hypre up to 2.20) (#24611) 2021-07-02 09:32:31 +02:00
Seth R. Johnson
8089b86dc2 curl: explicitly disable unused dependencies (#24613)
I installed curl on my mac and it picked up a homebrew (I think?)
installation of gsasl. A later system update broke git because of the
implicitly added dependency. Explicitly disabling libraries that *might*
exist on the system is the safe approach here.

```
dyld: Library not loaded: /usr/local/opt/gsasl/lib/libgsasl.7.dylib
  Referenced from: /rnsdhpc/code/spack/opt/spack/apple-clang/curl/gag5v3c/lib/libcurl.4.dylib
  Reason: image not found
error: git-remote-https died of signal 6
```
2021-07-02 09:30:47 +02:00
Chuck Atkins
f1842f363d dataspaces: move compiler vars to setup_build_environment (#24626) 2021-07-02 09:29:17 +02:00
Adam J. Stewart
7ced07a141 GEOS: add v3.9.1, switch to CMake (#24629) 2021-07-02 08:48:32 +02:00
Weiqun Zhang
189968e207 amrex: add v21.07 (#24655)
Also add conflict with rocm-4.2.
2021-07-02 08:47:08 +02:00
Tiziano Müller
f54fad40ba amdlibflame: fix build with gcc from CrayPE (#24358)
fixes #24210
2021-07-01 18:37:14 -06:00
Mosè Giordano
38a010b580 sombrero: add new package (#24567) 2021-07-01 18:28:28 -06:00
Matthieu Dorier
e1694afdde xsd: added patch to fix missing #include <iostream> (#24496) 2021-07-01 18:25:22 -06:00
Axel Huebl
d842c08a9b WarpX: FFTW+OpenMP (#24604)
FFTW: prefer with OpenMP acceleration for OpenMP compute backend
2021-07-01 18:22:22 -06:00
Sebastian Schmitt
54219852d9 Update dill (#24633) 2021-07-01 16:16:30 -06:00
Harmen Stoppels
4a8a6b4c9d meson: fix typo (libs instead of default_library) (#24649) 2021-07-01 14:37:36 -06:00
Maciej Wójcik
c5a27980df Added Perl workaround for CUDA <= 8 (#24291)
* Added Perl workaround for CUDA <= 8
* Re-wrapped comment
* Proofreading corrections
* Added a reference
* Do not override Perl include path
* Retrieve shell once

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-07-01 12:04:04 -07:00
Seth R. Johnson
406117148d trilinos: improve behavior of gotype (#24565)
* trilinos: add teko conflict
* trilinos: improve gotype variant

Instead of 'none' and 'long' typically being the same (but not for older
trilinos versions), add an explicit 'all' variant that only works for
older trilinos which supports multiple simultaneous tpetra
instantiations.

* trilinos: add self as maintainer
* trilinos: disable vendored gtest by default
2021-07-01 03:13:21 -06:00
Valentin Volkl
e6700d47aa yoda: add v1.9.0 and compiler conflict for earlier versions (#23814) 2021-07-01 09:27:33 +02:00
Tamara Dahlgren
ca550cd819 hdf: replacing use of install test root with new cached tests dir (#24368) 2021-07-01 09:17:38 +02:00
kwryankrattiger
8c46e82862 sensei: repo update (#24487) 2021-07-01 09:15:16 +02:00
Seth R. Johnson
d0bbe18c79 vim: use value variant and update config script (#24554)
This changes several conflicting variants to a single
multi-value variant, and uses conflicts instead of raising InstallError.
(With clingo, requesting +gui automatically selects features=huge!)
I have also rearranged the dependencies for clarity and simplified the
conifgure args.
2021-07-01 09:12:05 +02:00
Harmen Stoppels
ca538e18a4 sirius: add v7.2.5 (#24587) 2021-06-30 23:16:23 -06:00
Desmond Orton
59028aa0a5 py-wxpython: Version update to 4.1.1 (#24569) 2021-06-30 16:55:14 -06:00
Zack Galbreath
c8868f1922 ci: only write to broken-specs list on SpackError (#24618)
ci: only write to broken-specs list on SpackError

Only write to the broken-specs list when `spack install` raises a SpackError,
instead of writing to this list unnecessarily when infrastructure-related problems
prevent a develop job from completing successfully.
2021-06-30 12:16:15 -06:00
Dr. Christian Tacke
89bed5773e root: Add Version 6.24.02 (#24619)
Also fixes some style issues
2021-06-30 12:10:34 -06:00
Robert Mijakovic
1639ac8e86 python: new versions; 3.9.6, 3.8.11, 3.7.11, 3.6.14 (#24593) 2021-06-30 12:01:29 -06:00
Adam J. Stewart
7a794f8b0a py-torchvision: add v0.10.0 (#24340) 2021-06-30 12:42:25 -04:00
Adam J. Stewart
4f9b539644 py-torch: overhaul package (#24294)
* py-torch: patch no longer needed on master

* Overhaul PyTorch package

* py-torch: add v1.9.0

* Change defaults on macOS

* Submodules still needed...

* Add ONNX dependency

* System libs don't work for many submodules

* Silence CMake warning

* Add conflict for +cuda+rocm

* Add more deps

* Add more BLAS options

* Disable some broken system libs options

* Add patches to build older versions

* +mkldnn requires mkl

* Fix BLAS settings
2021-06-30 12:38:53 -04:00
Adam Moody
7753c816f0 scr and other packages: rename default branches to main (#24578) 2021-06-30 10:31:41 -06:00
Zack Galbreath
0bbd71d561 ci: Don't raise an exception if we fail to relate CDash builds (#24299)
ci: Do not allow cdash-related errors to cause pipeline failure
2021-06-30 10:26:26 -06:00
Morten Kristensen
b8512983d9 py-vermin: add v1.2.1 (#24607) 2021-06-30 09:13:21 -06:00
Adam J. Stewart
ea261e3530 py-pytorch-sphinx-theme: add master version (#24594) 2021-06-30 07:52:20 -06:00
Robert Mijakovic
acd1b04ea2 cmake: add v3.20.4, v3.20.5 (#24582)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-06-30 09:31:00 +02:00
Manuela Kuhn
f2d60261c9 r-stringi: add v1.6.2 (#24585) 2021-06-30 09:30:15 +02:00
shanedsnyder
8ad1dd6036 darshan-runtime,darshan-util: add v3.3.1 + updated git repository (#24574) 2021-06-30 09:11:16 +02:00
Thomas Madlener
c832ac28ae genfit package: add googletest dependency (#24467) 2021-06-29 22:37:25 -07:00
Axel Huebl
a647ae2aeb HiPACE++: FFTW+OpenMP (#24575)
- change the default compute backend: we just start to add OpenMP support
- FFTW: prefer with OpenMP acceleration for OpenMP compute backend
2021-06-29 20:55:22 -06:00
Jen Herting
d00082e70b New package: py-datasets (#24597)
* [py-datasets] created template

* [py-datasets] added dependencies

* [py-datasets] requires py-pyarrow with +parquet

* [py-datasets] Final cleanup

- added homepage
- added description
- removed fixmes
2021-06-29 20:28:23 -06:00
Jen Herting
501f87fb22 dependency for py-torchmeta (#24595)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-06-29 18:58:21 -06:00
Sergey Kosukhin
55dd306790 hdf5: a follow-up to #18937 (#23820) 2021-06-29 18:34:12 -06:00
Adam J. Stewart
a2b7f9997d spack style: warn if flake8-import-order is missing (#24590) 2021-06-29 23:49:18 +00:00
Manuela Kuhn
1c6504d2f5 py-nipype: add 1.6.1 (#24584) 2021-06-29 17:04:23 -06:00
Manuela Kuhn
cc1285c1e1 py-nilearn: add 0.8.0 (#24583) 2021-06-29 16:04:28 -06:00
Harmen Stoppels
304249604a Fix prefix-collision detection for projections (#24049)
If two Specs have the same hash (and prefix) but are not equal, Spack
originally had logic to detect this and raise an error (since both
cannot be installed in the same place). Recently this has eroded and
the check no-longer works; moreover, when defining projections (which
may truncate the hash or other distinguishing properties from the
prefix) Spack was also failing to detect collisions (in both of these
cases, Spack would overwrite the old prefix with the new Spec).

This PR maintains a list of all "taken" prefixes: if a hash is not
registered (i.e. recorded as installed in the database) but the prefix
is occupied, that is a collision. This can detect collisions created
by defining projections (specifically when they omit the hash).

The PR does not detect collisions where specs have the same hash
(and prefix) but are not equal.
2021-06-29 14:44:56 -07:00
Manuela Kuhn
1eb2798c43 py-numpy: conflict with gcc11 and switch master to main (#24573)
Fix syntax of conflict between numpy 1.21.0 and gcc11 to that the clingo
concretizer recognizes it.
In addition the upstream master branch was renamed to main.
2021-06-29 15:40:32 -06:00
Jen Herting
e284cd136a New package: py-pyautogui (#24572)
* [py-pyautogui] created template

* [py-pyautogui] added some unconditional dependencies

* [py-pyautogui] Final cleanup

- added homepage
- added description
- removed fixmes

* [py-pyautogui] added missing dependencies
2021-06-29 13:04:20 -06:00
Christoph Conrads
f5474a2b8b CGNS: add CMake dependency (#24564) 2021-06-29 12:49:26 -06:00
holrock
c824cad2ea ruby: add v3.0.1 (#24560) 2021-06-29 12:22:38 -06:00
Vinícius
3fe1ecd807 simgrid: add v3.27, update package (#24513) 2021-06-29 12:07:22 -06:00
Massimiliano Culpo
2b65c53d2b vermin: show line numbers of violations (#24580)
This commit runs vermin with the --violations option
that shows details of the violations to target requirements.
2021-06-29 19:41:22 +02:00
Jen Herting
327cca7e2e New package: py-huggingface-hub (#24588)
* [py-huggingface-hub] created template

* [py-huggingface-hub] added dependencies

* [py-huggingface-hub] added version 0.0.8

* [py-huggingface-hub] Final cleanup

- added description
- added homepage
- removed fixmes
2021-06-29 10:49:10 -06:00
Scott Wittenburg
09fa155333 pipelines: build warpx on instance with more memory (#24592) 2021-06-29 18:06:30 +02:00
Chuck Atkins
a7b6149cc0 libzmq: Fix gcc11 build failure (#24563) 2021-06-29 06:33:35 +02:00
Manuela Kuhn
b87d9c29c1 py-scipy: fix missing py-cython dependency (#24548) 2021-06-28 14:07:24 -06:00
Larry Knox
cc20dbf645 Hdf5 cmake (#18937)
* Switch hdf5 package from autotools to cmake.

* Add variant for building with zlib, default to ON.

* Update for format requirements.

* Format change.

* Fix breakage from last merge from develop.
Switch szip to use libaec (unrestricted encryption).
Remove 'static' variant:  static libs will only be installed when
~shared.

* Improve args based on suggestions from pull request.

* Update code URL to github.com
Add/modify 4 depends_on lines to fix running "spack graph --deptype=link hdf5".

* Remove trailing whitespace.

* Remove dependencies added solely to make "spack greph --type=link" work.

* Add new version HDF5 1.8.22.

* Remove unnecessary java_check.

* Fix whitespace for style checks.

* Reverted zlib version dependency to 1.1.2:.
zlib variant removed.
api version default renamed "default".

* Remove blank line.

* Whitespace corrections.

* iRemoved unnecessary 'debug' variant.

* Fix typo in version number in conflict for '+szip'.

* Set default for tools variant to True.
Remove patch functions dependent on 'libtool' file that cmake doesn't
produce.

* Remove line to set ONLY_SHARED_LIBS to true.
Add post_install code to install only one version of tools with shared
linkage and original tool names.

* Remove trailing white space and import of glob package not used.

* Leave BUILD_TESTING set to default which is ON.

* Remove  post_install code to install only one version of tools because
some dependent packages running tests in e4s testing are using
h5diff-shared.  Keep both tools versions for now.

* No longer need to import os.
2021-06-28 13:42:54 -06:00
Michael Kuhn
9a9b5dee2e glib: add v2.68.3 (#24558) 2021-06-28 12:01:24 -06:00
Robert Underwood
69d69cbc79 GDB: resolve warnings about imp being deprecated (#24448)
This patch has already been accepted into gdb's trunk, we just adopting
it earlier here since it is small and gives a better user experience.
2021-06-28 07:16:28 -06:00
Adam J. Stewart
2284007db9 Use flake8-import-order to enforce PEP-8 compliance (#23947) 2021-06-28 08:03:20 -05:00
Mikael Simberg
744cedc7e9 Add Asio package (#24485) 2021-06-28 12:04:19 +02:00
Olivier Cessenat
e631ccc6f7 New Package: visit-mfem (#22906) 2021-06-28 12:02:41 +02:00
Kai Germaschewski
3cfc1dbc14 pfunit: fix gcc10 +mpi (#23878)
Instead of refusing to build +mpi with gcc10, add what I guess is now
the standard workaround, ie., `-fallow-argument-mismatch`.

Getting this into pfunit's cmake-based but kinda non-standard build  isi
a bit ugly, but you gotta do what you gotta do...
2021-06-28 11:33:23 +02:00
Jianwen
2970c02639 Fix kokkos version number in lammps. (#24436) 2021-06-28 11:23:34 +02:00
Manuela Kuhn
77a98cabfa llvm: add patch for gcc11 (#24363)
llvm10 was not compiling with gcc due to missing header (see #24270)
2021-06-28 11:18:53 +02:00
Asher Mancinelli
b6aea0d6bf Update ipopt versions, fix blas/lapack flags (#24447)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-06-28 11:14:35 +02:00
Axel Huebl
c06db97970 CUDA: 11.0.3 (11.0 "Update 1") (#24481)
Add CUDA 11.0.3.

This release adds new features such as NVCC flags
`--forward-unknown-to-host-compiler` and
`--forward-unknown-to-host-linker`
2021-06-28 10:53:47 +02:00
miheer vaidya
90dc90e8d1 barvinok: add new package (#24477) 2021-06-28 10:52:45 +02:00
Erik Schnetter
f5ef532bdc silo: force autoreconf when building share libs (#24388) 2021-06-28 10:44:38 +02:00
lorddavidiii
2bd2ef27a2 ocl-icd, opencl-c-headers and opencl-clhpp: add new versions (#24499) 2021-06-28 02:13:24 -06:00
Scott McMillan
a4a393d097 Update Boost package to support building the latest with the NV compilers (#24541)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-06-28 01:19:36 -06:00
Chris White
a6ce000e09 RAJA + Umpire: CUDA Arch fixes (#24531) 2021-06-28 09:09:01 +02:00
Manuela Kuhn
3e65828a7e pandoc: add 2.11.4 and 2.14.0.3 (#24542) 2021-06-28 08:50:39 +02:00
albestro
6f950bc8ee cppzmq: add v4.7.1 and "drafts" variant (#24555) 2021-06-28 08:31:04 +02:00
Dylan Simon
963b931309 docs: link projections docs to spec format (#24478) 2021-06-27 08:38:28 +00:00
Anton Kozhevnikov
9bd9cc2c7b swith profiler on/off (#24547) 2021-06-26 19:25:15 +02:00
Alec Scott
4c149ade7f accumulo: add v2.0.1 (#24409) 2021-06-26 05:07:13 -06:00
Hadrien G
ecc950d10c dd4hep: fix hash for version 01-17 (#24425)
Version 1.17 of DD4hep was renamed from "01-17-00" to "01-17", in line 
with the naming conventions of previous releases. Since release archives
contain a subdirectory with the version string in it, this changes the contents
of the tarball ever so slightly, so the SHA-256 checksum must change as well.
2021-06-26 12:34:31 +02:00
Stephen Herbein
9b2e7e6140 flux: add latest versions (core v0.27.0, sched v0.16.0) (#24546) 2021-06-26 04:13:18 -06:00
Cameron Smith
19a973eca0 pumi: add v2.2.6 (#24525) 2021-06-26 11:27:52 +02:00
Manuela Kuhn
ce16503bd3 r-rmarkdown: add 2.9 (#24539) 2021-06-26 11:27:17 +02:00
Manuela Kuhn
ef67ecde60 r-tinytex: add 0.32 (#24538) 2021-06-26 11:27:04 +02:00
Manuela Kuhn
2b1916d845 r-knitr: add 1.33 (#24537) 2021-06-26 11:26:46 +02:00
Manuela Kuhn
469e580034 r-mime: add 0.11 (#24536) 2021-06-26 11:26:25 +02:00
Manuela Kuhn
80585562c9 r-htmltools: add 0.5.1.1 (#24535) 2021-06-26 11:26:06 +02:00
Manuela Kuhn
2aa9e337ee soci: add 4.0.2 and multiple variants (#24543)
Fix url to find newer versions, add newest version 4.0.2 and add
variants for
- cxxstd: To use a specific c++ standard
- static: Enable or disable build of static libraries
- boost: Boost support
- sqlite: SQLite support
- postgresql: PostgreSQL support
2021-06-26 03:25:47 -06:00
Manuela Kuhn
06a1cf2449 r-highr: add 0.9 (#24534) 2021-06-26 11:25:31 +02:00
Manuela Kuhn
2a9b9c9046 r-xfun: add 0.24 (#24533) 2021-06-26 11:25:09 +02:00
Massimiliano Culpo
b12cee32de Update archspec to support arm compiler on a64fx (#24524) 2021-06-26 09:18:48 +02:00
Massimiliano Culpo
17f9ddb2b5 flecsi: fixed reported issues in package (#24398)
Prevent the use of "legion network=none" when
flecsi has "backend=legion"
2021-06-26 09:17:53 +02:00
Satish Balay
dbf030f27a p4est: autoreconf required only for @2.0 (#24544) 2021-06-25 19:02:47 -07:00
Satish Balay
8937102006 p4est: use autoreconf only for @:2.2 (#24528)
This fixes @2.3.2 build breakage with #23824 changes.
2021-06-25 14:04:32 -07:00
snehring
cf0b3632ff bwa: fixing build errors with gcc10+ (#24475) 2021-06-25 22:12:01 +02:00
Adrien Bernede
6b852bc170 Doc: Note on required changes after merge of reproducible builds (#24347)
* Suggestion of a note for conversion of existing pipelines.

* Wording

* Fix format in .rst note

* Wording
2021-06-25 11:02:26 -06:00
Even Rouault
843c38e69e GDAL: only jasper will be removed in GDAL 3.5, not openjpeg (#24483) 2021-06-25 10:19:23 -06:00
Adam J. Stewart
2bc0c0ea59 Add support for .tbz file extensions (#24479) 2021-06-25 09:37:23 -06:00
Satish Balay
3087d74ca7 sundials: remove sundials_nvecopenmp target from ARKODE SuperLU_DIST example (#24516) 2021-06-25 08:19:26 -06:00
Jen Herting
03f54ea4bb py-seqeval: new package (#24486) 2021-06-25 14:35:00 +02:00
Joseph Schoonover
25522b5c9c HOHQMesh: add new package (#24501)
Co-authored-by: Joe Schoonover <joe@fluidnumerics.com>
2021-06-25 14:15:04 +02:00
Michael Kuhn
f4b96a21c8 go-bootstrap: Increase environment variable size (#24508)
When having a few packages loaded, installing go-bootstrap will fail
because the `PATH` variable is truncated at 4096 bytes. Increase the
limit to 128 KiB to make longer paths fit.
2021-06-25 11:00:06 +02:00
Satish Balay
291703f146 xsdk: fix dealii@9.2.0 build (#24515)
1. "+simplex" conflicts with "dealii@:9.2" [The interface to simplex is supported from version 9.3.0 onwards. Please explicitly disable this variant via ~simplex]
2. "+arborx" conflicts with "dealii@:9.2" [The interface to arborx is supported from version 9.3.0 onwards. Please explicitly disable this variant via ~arborx]
2021-06-25 10:54:06 +02:00
Alec Scott
6bf1f69b4c lmod: add v8.5.6 (#24511) 2021-06-25 10:49:01 +02:00
Adam J. Stewart
b9eeef8c38 ONNX: add new versions (#24518) 2021-06-25 09:31:20 +02:00
Olivier Cessenat
ec2d4c07b3 texlive: add support for external find (#24460) 2021-06-25 09:25:18 +02:00
Gregory Lee
7dafc827a7 only apply onapi patch to m4 for v1.4.18 (#24490) 2021-06-24 17:35:26 -07:00
Adam J. Stewart
26f740b25a Sleef: add new versions (#24443)
* Sleef: add new versions
* Mix release versions and dates
2021-06-24 17:58:19 -06:00
Hadrien G
0c996671b8 [acts] Add versions 9.0.0 and 9.0.1 (#24428) 2021-06-24 17:28:27 -06:00
Alec Scott
4eb4994472 Update Jasper to 2.0.32 (#24510) 2021-06-24 23:15:17 +00:00
Peter Scheibel
916cdfbb56 Environment modifications: de-prioritize external packages (#23824)
Prior to any Spack build, Spack modifies PATH etc. to help the build
find the dependencies it needs. It also allows any package to define
custom environment modifications (and furthermore a package can
specify environment modifications to apply when it is used as a
dependency). If an external package defines custom environment
modifications that alter PATH, and the external package is in a merged
or system prefix, then that prefix could "override" the Spack-built
packages.

This commit reorders environment modifications so that PrependPath
actions which expose Spack-built packages override PrependPath actions
for custom environment modifications of external packages.

In more detail, the original order of environment modifications is:

* Modules
* Compiler flag variables
* PATH, CMAKE_PREFIX_PATH, and PKG_CONFIG_PATH for dependencies
* Custom package.py modifications in the following order:
  * dependencies
  * root

This commit changes the order:

* Modules
* Compiler flag variables
* For each external dependency
  * PATH, CMAKE_PREFIX_PATH, and PKG_CONFIG_PATH modifications
  * Custom modifications
* For each Spack-built dependency
  * PATH, CMAKE_PREFIX_PATH, and PKG_CONFIG_PATH modifications
  * Custom modifications
2021-06-24 16:13:46 -07:00
Scott Wittenburg
d7405ddd39 Pipelines: Set a pipeline type variable (#24505)
Spack pipelines need to take specific actions internally that depend
on whether the pipeline is being run on a PR to spack or a merge to
the develop branch.  Pipelines can also run in other repositories,
which represents other possible use cases than just the two mentioned
above.  This PR creates a "SPACK_PIPELINE_TYPE" gitlab variable which
is propagated to rebuild jobs, and is also used internally to determine
which pipeline-specific tasks to run.

One goal of the PR is fix an issue where rebuild jobs which failed on
develop pipelines did not properly report the broken full hash to the
"broken-specs-url".
2021-06-24 16:15:19 -06:00
Asher Mancinelli
010b431692 Add Externally Findable section to info command (#24503)
* Add Externally Findable section to info command

* Use comma delimited detection attributes in addition to boolean value

* Unit test externally detectable part of spack info
2021-06-24 22:12:45 +00:00
Alec Scott
e45800126a abyss: add v2.3.1 (#24408) 2021-06-24 15:01:46 -06:00
Howard Pritchard
7456a0348f OPENMPI: fixes to enable building of ompi master (#24391)
yes I know this name isn't popular but that's the way it is right now.

master and the upcoming v5.0.x release branch use git submodules.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-06-24 13:55:01 -07:00
Alec Scott
1367cc97c2 bedops: add v2.4.39 (#24411) 2021-06-24 14:46:20 -06:00
Manuela Kuhn
9d0b8b575b postgresql: fix typo and missing import (#24491) 2021-06-24 11:11:44 -05:00
Jen Herting
8f2f5639c8 [xxhash] added version 0.8.0 (#24492) 2021-06-24 11:11:01 -05:00
Jen Herting
cf38a96b14 New package: py-xxhash (#24493)
* [py-xxhash] created template

* [py-xxhash] working on dependencies

* [py-xxhash] set version for xxhash

* [py-xxhash] Final cleanup

- added homepage
- added description
- removed fixmes
2021-06-24 11:10:24 -05:00
Anton Kozhevnikov
b1009b48b9 sirius: add single precision switch (#24500) 2021-06-24 08:46:28 -06:00
Joseph Schoonover
d3a1da8496 FTObjectLibrary: new package (#24423)
Co-authored-by: Joe Schoonover <joe@fluidnumerics.com>
2021-06-23 22:55:28 -06:00
Massimiliano Culpo
c699e907fc Update command to setup tutorial (#24488) 2021-06-23 19:38:36 -05:00
Massimiliano Culpo
4985215072 Update command to setup tutorial (#24488) 2021-06-23 17:19:20 -07:00
Scott Wittenburg
db403391c8 spack ci: use return codes to signal exit status (#24090) 2021-06-23 17:09:19 -07:00
Jen Herting
3d631377c0 New package: py-mouseinfo (#24245)
* [py-mouseinfo] created template

* [py-mouseinfo] added some dependencies

* [py-mouseinfo] added platform dependent dependency information

* [py-mouseinfo] flake8

* [py-mouseinfo] added python2 dependency and conflict with darwin for missing dependency

* [py-mouseinfo] Final cleanup

- added homepage
- added description
- removed fixmes

* [py-mouseinfo] using pil provider
2021-06-23 15:46:20 -06:00
Olivier Cessenat
387ee5a0b7 gsl: add v2.7 (#24474) 2021-06-23 18:46:16 +02:00
Massimiliano Culpo
1bccd866ae Fix broken CI for package only PRs, make dateutil not strictly required (#24484)
* Force the Python interpreter with an env variable

This commit forces the Python interpreter with an
environment variable, to ensure that the Python set
by the "setup-python" action is the one being used.

Due to the policy adopted by Spack to prefer python3
over python we may end up picking a Python 3.X
interpreter where Python 2.7 was meant to be used.

* Revert "Update conftest.py (#24473)"

This reverts commit 477c8ce820.

* Make python-dateutil a soft dependency for unit tests

Before #23212 people could clone spack and run
```
spack unit-tests
```
while now this is not possible, since python-dateutil is
a required but not vendored dependency. This change makes
it not a hard requirement, i.e. it will be used if found
in the current interpreter.

* Workaround mypy complaint
2021-06-23 07:56:07 -04:00
Uwe Sauter
97f0c3ccd9 Add dependency on rocm-cmake to various ROCm related packages (#24427) 2021-06-23 11:35:49 +02:00
eugeneswalker
2db858e9c4 filter_compiler_wrappers: include realpath of compiler wrappers (#24456) 2021-06-22 23:37:07 +00:00
loulawrence
4da0561496 Add config option to use urllib to fetch if curl missing (#21398)
* Use Python module urllib to fetch in the case that curl is missing
2021-06-22 13:38:37 -07:00
Peter Scheibel
477c8ce820 Update conftest.py (#24473) 2021-06-22 12:57:35 -07:00
Peter Scheibel
323b47a94e add version 35.0 of luaposix (#24458) 2021-06-22 12:49:34 -06:00
Massimiliano Culpo
acc11f676d ASP-based solver: fix provider logic (#24351)
This commit fixes a subtle bug that may occur when
a package is a "possible_provider" of a virtual but
no "provides_virtual" can be deduced. In that case
the cardinality constraint on "provides_virtual"
may arbitrarily assign a package the role of provider
even if the constraints for it to be one are not fulfilled.

The fix reworks the logic around three concepts:
- "possible_provider": a package may provide a virtual if some constraints are met
- "provides_virtual": a package meet the constraints to provide a virtual
- "provider": a package selected to provide a virtual
2021-06-22 11:37:24 -07:00
Massimiliano Culpo
02b92dbf10 ASP-based solver: fix facts for default providers (#24380)
Facts used to compute weights for providers only need
the package name, since the other attributes are computed
as part of the solve.
2021-06-22 11:33:44 -07:00
Ethan Stam
09a6f3533b z3: set CMAKE_INSTALL_PYTHON_PKG_DIR for +python build (#24470) 2021-06-22 11:20:09 -07:00
Adam J. Stewart
e4c38ba14c py-cartopy: mark incompatibility with PROJ 8 (#24454) 2021-06-22 11:12:25 -07:00
OliverPerks
d292541edb sw4lite: fixed to include build targets (#24466) 2021-06-22 13:01:34 -05:00
Thomas Madlener
07fe558509 dd4hep: Updated version checksum due to updated tag (#24469) 2021-06-22 10:49:50 -07:00
snehring
377f031461 subread: updating subread to 2.0.2 (#24468) 2021-06-22 10:33:33 -07:00
Harmen Stoppels
d63566915d Bump libfuse (#24444) 2021-06-22 10:06:45 -07:00
Adam J. Stewart
11ad6e1a8a py-pandas: add v1.2.5 (#24464) 2021-06-22 10:05:38 -07:00
Adam J. Stewart
ccece0e197 py-numpy: add v1.21.0 (#24463) 2021-06-22 10:05:22 -07:00
eugeneswalker
65e7e1f969 tau: use filter_compiler_wrappers to take advantage of builtin functionality (#24457) 2021-06-22 12:00:27 -05:00
Adam J. Stewart
b0a915a3b6 py-scipy: add v1.7.0 (#24438) 2021-06-22 11:56:16 -05:00
Erik Schnetter
e3b220f699 Implement CVS fetcher (#23212)
Spack packages can now fetch versions from CVS repositories. Note
this fetch mechanism is unsafe unless using :extssh:. Most public
CVS repositories use an insecure protocol implemented as part of CVS.
2021-06-22 09:51:31 -07:00
Adam J. Stewart
512edfcceb py-pythran: add new package (#24440) 2021-06-22 07:07:15 -06:00
Vanessasaurus
8e249c03de adding save of build times on install (#24350)
Here we are adding an install_times.json into the spack install metadata folder.
We record a total, global time, along with the times for each phase. The type
of phase or install start / end is included (e.g., build or fail)

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-06-22 03:01:15 -06:00
Adam J. Stewart
726537e01b py-beniget: add new package (#24439) 2021-06-22 08:50:10 +02:00
Adam J. Stewart
d71a0590b7 py-gast: add v0.4.0 (#24437) 2021-06-22 08:49:38 +02:00
Paul Henning
3039237a0e hdf5: fix compiler detection in flag_handler (#24451)
The original implementation of `flag_handler` searched the
`self.compiler.cc` string for `clang` or `gcc` in order to add a flag
for those compilers.  This approach fails when using a spack-installed
compiler that was itself built with gcc or clang, as those strings will
appear in the fully-qualified compiler executable paths.  This commit
switches to searching for `%gcc` or `%clang` in `self.spec`.

Co-authored-by: Paul Henning <phenning@lanl.gov>
2021-06-21 23:36:28 -07:00
Howard Pritchard
5e48d2c16f open mpi: remove preferred for 4.0.5 release (#24433)
the 4.1.1 release has fixes for problems that kept 4.1.0 from
being the default open mpi version to build using spack.

related to #24396

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2021-06-21 23:36:09 -07:00
Adam J. Stewart
31e6967c49 MAGMA: add patch to build with CUDA sm_37 (#24442) 2021-06-21 20:18:26 -07:00
Chris White
c9932b2d1e Axom: Remove blueos check on cuda variant (#24349)
* remove blueos check on cuda variant, fix typo

* restore necessary compiler guard

* remove axom+cuda from testing because it only partially works outside ppc systems
2021-06-22 01:29:18 +00:00
Peter Scheibel
c83f4b01aa Fetching: git on Mac OS (#24247)
Extend the changes in #24163 to unit tests.
2021-06-21 17:53:12 -07:00
Adam J. Stewart
7b6ca59038 psimd: add new package (#24406) 2021-06-19 08:25:21 -05:00
Adam J. Stewart
62653b9c36 cpuinfo: add new versions (#24402) 2021-06-19 11:05:41 +02:00
Adam J. Stewart
ebcc222181 FP16: add new versions, prevent downloads (#24403) 2021-06-19 11:05:24 +02:00
Adam J. Stewart
9984e61347 pthreadpool: add new versions (#24404) 2021-06-19 11:04:52 +02:00
Adam J. Stewart
76632d6710 FXdiv: add new package (#24405) 2021-06-19 11:04:25 +02:00
snehring
d394e9978e singularity: add v3.8.0 (#24407) 2021-06-19 10:57:37 +02:00
Alec Scott
5f415c9782 Beast2: add v2.6.4 (#24410) 2021-06-19 10:53:59 +02:00
Alec Scott
c432076280 bedtools2: add v2.30.0 (#24412) 2021-06-19 10:53:21 +02:00
Alec Scott
73d7444ca7 benchmark: add v1.5.5 (#24413) 2021-06-19 10:52:51 +02:00
Alec Scott
93c75fe3f7 Bismarck: add v0.23.0 (#24414) 2021-06-19 10:51:59 +02:00
Alec Scott
aa65293709 cantera: add v2.5.1 (#24415) 2021-06-19 10:51:32 +02:00
Alec Scott
767f03f82f coreset: add v1.09 (#24419) 2021-06-19 10:47:27 +02:00
Alec Scott
4ba6a850d9 diamond: add v2.0.9 (#24421) 2021-06-19 10:46:41 +02:00
Glenn Johnson
91ef60eb0e reditools: update and add features (#24370)
This PR does the following:
- adds version corresponding to commit at 08/03/2020
- adds missing get_DE_events.py script
- adds dependencies needed by get_DE_events.py
- removes REDItoolDenovo.py.patch and python2to3.patch in favor of
  running 2to3 and reindent pre-build
- add batch_sort.patch to handle differences in string/char handling
  betweeen python2 and python3
- adds a variant for the Nature Protocol
- adds dependencies for the nature_protocol variant
- added myself as maintainer
This PR adds a new version of reditools from git.
2021-06-18 21:34:50 -05:00
Thomas Gruber
383d4cc84c Add LIKWID 5.2.0 and a patch for LIKWID 5.1.0 (#24399) 2021-06-18 12:52:51 -06:00
Alec Scott
ca9ff82ad0 abi-dumper: add v1.2 (#24392) 2021-06-18 12:52:23 -06:00
Sergei Shudler
4690fdc081 SLATE: Add e4s testsuite-inspired smoke test (#23376) 2021-06-18 10:50:18 -07:00
Sergei Shudler
1b368e433c Heffte: Add e4s testsuite-inspired smoke test (#23652) 2021-06-18 10:47:44 -07:00
G-Ragghianti
94d6d3951a Removed unofficial MAGMA release and enabled MAGMA in e4s (#24400) 2021-06-18 17:28:35 +00:00
Simon Frasch
58272c9d57 spla: add version 1.5.0 and fix compilation with amdblis (#24374) 2021-06-18 09:55:29 -06:00
Themos Tsikas
1b51f09bf0 Checksum update for NAGCompiler download , Version 7.0 (Build 7048) (#24360) 2021-06-18 09:43:15 -06:00
Satish Balay
e3f4036212 petsc, petsc4py: add version 3.15.1 (#24397) 2021-06-18 08:49:37 -06:00
Erik Schnetter
eeacda3dce double-conversion: New versions 3.1.5, 2.0.2 (#24385)
A version 2.0.3 is also advertised, but doesn't download.
2021-06-18 08:34:38 -06:00
Glenn Johnson
c6961ba4d3 Fixes for opencv (#24361)
This PR fixes a couple of issues with the opencv package, mostly in
relation to cuda. This is only focused on cuda, not any of the other
variants.
- Added versions to the contrib_vers list. Added for all that can be
  retrieved from github. The one for the latest version was missing.
- Added a cmake patch for v3.2.0.
- Deprecated versions 3.1.0 and 3.2.0 as neither of those could be
  built, with or without cuda.
- Adjusted constraints on applying initial cmake patch.
- Added cudnn dependency when +cuda.
- Set constraints for cudnn and cuda for older versions of opencv.
2021-06-18 16:15:58 +02:00
Massimiliano Culpo
32f1aa607c Add an audit system to Spack (#23053)
Add a new "spack audit" command. This command can check for issues
with configuration or with packages and is intended to help a
user debug a failed Spack build. 

In some cases the reported issues are always errors but are too
costly to check for (e.g. packages that specify missing variants on
dependencies). In other cases the issues may be legitimate but
uncommon usage of Spack and we want to be sure the user intended the
behavior (e.g. duplicate compiler definitions).

Audits are grouped by theme, and for now the two themes are packages
and configuration. For example you can run all available audits
on packages with "spack audit packages". It is intended that in
the future users will be able to define their own audits.

The package audits are good candidates for running in package_sanity
(i.e. they could catch bugs in user-submitted packages before they
are merged) but that is left for a later PR.
2021-06-18 07:52:08 -06:00
Adam J. Stewart
8ad05d6a74 FBGEMM: GCC 5+ and AVX2 required (#24356) 2021-06-18 08:49:18 -05:00
Massimiliano Culpo
57467d05e1 Disable magma in the E4S pipeline (#24395)
Building magma has been failing consistently and is currently
blocking PRs from being merged. Disable that spec while we
investigate the failure and work on a fix.
2021-06-18 12:55:31 +00:00
Glenn Johnson
9750459e05 gsl package: update patch for later version (#22968)
Old patch is still provided for older versions.
2021-06-17 17:37:57 -07:00
Frank Willmore
2c1e9cc7b7 oneAPI compiler: update openmp flag (#23771) 2021-06-17 17:26:46 -07:00
Vanessasaurus
e7ac422982 Adding support for spack monitor with containerize (#23777)
This should get us most of the way there to support using monitor during a spack container build, for both Singularity and Docker. Some quick notes:

### Docker
Docker works by way of BUILDKIT and being able to specify --secret. What this means is that you can prefix a line with a mount of type secret as follows:

```bash
# Install the software, remove unnecessary deps
RUN --mount=type=secret,id=su --mount=type=secret,id=st cd /opt/spack-environment && spack env activate . && export SPACKMON_USER=$(cat /run/secrets/su) && export SPACKMON_TOKEN=$(cat /run/secrets/st) && spack install --monitor --fail-fast && spack gc -y
```
Where the id for one or more secrets corresponds to the file mounted at `/run/secrets/<name>`. So, for example, to build this container with su (spackmon user) and sv (spackmon token) defined I would export them on my host and do:

```bash
$ DOCKER_BUILDKIT=1 docker build --network="host" --secret id=st,env=SPACKMON_TOKEN --secret id=su,env=SPACKMON_USER -t spack/container . 
```
And when we add `env` to the secret definition that tells the build to look for the secret with id "st" in the environment variable `SPACKMON_TOKEN` for example.

If the user is building locally with a local spack monitor, we also need to set the `--network` to be the host, otherwise you can't connect to it (a la isolation of course.)

## Singularity

Singularity doesn't have as nice an ability to clearly specify secrets, so (hoping this eventually gets implemented) what I'm doing now is providing the user instructions to write the credentials to a file, add it to the container to source, and remove when done.

## Tags

Note that the tags PR https://github.com/spack/spack/pull/23712 will need to be merged before `--monitor-tags` will actually work because I'm checking for the attribute (that doesn't exist yet):

```bash
"tags": getattr(args, "monitor_tags", None)
```
So when that PR is merged to update the argument group, it will work here, and I can either update the PR here to not check if the attribute is there (it will be) or open another one in the case this PR is already merged. 

Finally, I added a bunch of documetation for how to use monitor with containerize. I say "mostly working" because I can't do a full test run with this new version until the container base is built with the updated spack (the request to the monitor server for an env install was missing so I had to add it here).

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-06-17 17:15:22 -07:00
eugeneswalker
e916b699ee e4s ci env: package preferences: use newer versions (#24371) 2021-06-17 15:17:49 -06:00
Erik Schnetter
fa89ca2eb0 vtk: Limit freetype versions (#24389)
freetype 2.0.3 introduces an incompatible change

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-06-17 15:13:33 -06:00
Adam J. Stewart
1c22742eed gloo: add +cuda variant (#24390) 2021-06-17 20:32:38 +00:00
Erik Schnetter
d4b5911671 hwloc: New version 2.5.0 (#24387) 2021-06-17 13:16:28 -06:00
Erik Schnetter
47e9b62b43 freetype: Add version 2.0.2 (#24386) 2021-06-17 12:37:31 -06:00
Todd Gamblin
100078ec3a codecov: disable inline annotations on PRs (#24362)
Inline codecov annotations make the code hard to read, and they add annotations
in files that seemingly have nothing to do with the PR. Sadly, they add a whole
lot of noise and not a lot of benefit over looking at the PR on codecov. We
should just have people look at the coverage on codecov itself.
2021-06-17 12:22:23 -06:00
Adam J. Stewart
54d8fea9fc MAGMA: add v2.6.0, sm_37 support (#24383) 2021-06-17 11:10:39 -06:00
Adam J. Stewart
3eee93ee76 ONNX: add new package (#24384) 2021-06-17 11:07:35 -06:00
Nick Forrington
b5cb75e5ec arm-forge: add v21.0.2 and variant to detect PMU counters (#24298) 2021-06-17 05:55:32 -06:00
Harmen Stoppels
75675de02a Fix an issue where cray module files may not have CRAY_MPICH_DIR set (#24267) 2021-06-17 04:28:25 -06:00
Tom Payerle
b8ad621907 vtk: patch to replace use of FT_CALLBACK_DEF (#24238) 2021-06-17 04:19:23 -06:00
Andreas Baumbach
eac757da8c New package: py-pyusb (#23733)
* New package: py-pyusb

Change-Id: I606127858b961b5841c60befc5a8353df0f9f38c

* fixup dependencies

Change-Id: I0c9b0ccee693d2c4e847717950d4ce64cb319794

* fixup 2

Change-Id: Ibaccbdafd865e363564f491054e4e4ceb778727b

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-06-17 03:58:21 -06:00
Harmen Stoppels
011a940f44 Break llvm-amdgpu circular dependency with rocm-device-libs (#23859) 2021-06-17 03:52:33 -06:00
Anton Kozhevnikov
85c5589620 add -fallow-argument-mismatch flag for gcc10 (#24354) 2021-06-17 03:40:27 -06:00
Scott Wittenburg
ee9b1a6ea5 ci: add all locally computed hashes as job variables (#24359) 2021-06-17 03:37:31 -06:00
Jen Herting
986776c937 New package: py-pyscreeze (#24251)
* [py-pyscreeze] created template

* [py-pyscreeze] added dependencies

* [py-pyscreeze] depends on scrot

* [py-pyscreeze] Final cleanup

- added homepage
- added description
- removed fixmes

* [py-pyscreeze] using pil provider
2021-06-17 03:31:33 -06:00
Howard Pritchard
2739edd42c open mpi: add v4.0.6 and fix a bug (#24344)
A patch no longer applies cleanly as its fixed in v4.0.6 - fix it here

==> Installing openmpi-4.0.6-in47f6rxspbnyibkdx6x4ekg6piujobd
==> No binary for openmpi-4.0.6-in47f6rxspbnyibkdx6x4ekg6piujobd found: installing from source
==> Fetching https://download.open-mpi.org/release/open-mpi/v4.0/openmpi-4.0.6.tar.bz2
Reversed (or previously applied) patch detected!  Assume -R? [n]
Apply anyway? [n]
2 out of 2 hunks ignored -- saving rejects to file opal/include/opal/sys/gcc_builtin/atomic.h.rej

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-06-17 03:28:37 -06:00
Harmen Stoppels
e4d80c997a Unset LD_PRELOAD and DYLD_INSERT_LIBRARIES (#24177)
When running executables from build dependencies, we want to avoid that
`LD_PRELOAD` and `DYLD_INSERT_LIBRARIES` any of their shared libs build
by spack with system libraries.
2021-06-17 09:25:19 +00:00
Manuela Kuhn
3571c1b812 nss: add nssutil3 library to pkg-config (#24364)
This is needed for qt+webkit to build correctly.
As reference the debian package was taken:
https://salsa.debian.org/mozilla-team/nss/-/blob/master/debian/nss.pc.in
2021-06-17 03:19:31 -06:00
snehring
7831d6be75 bowtie2: add constraints for the simde dependency (#24226) 2021-06-17 01:52:27 -06:00
Asher Mancinelli
c8f58c5f1d hiop: add v0.4.4, use commits for tags (#24365) 2021-06-17 08:53:31 +02:00
Adam J. Stewart
56f1904538 NNPACK: add new package (#24333) 2021-06-17 00:01:24 -06:00
Adam J. Stewart
10608edd24 py-peachpy: add new package (#24373) 2021-06-16 23:34:18 -06:00
Adam J. Stewart
3adee93d14 py-opcodes: add new package (#24372) 2021-06-17 07:04:38 +02:00
John Jolly
d31d339bf6 z3: update package to use CMake build system (#24337)
The Z3 solver provides a Z3Config.cmake file when built using the CMake build
system. This submission changes the package build system to inherit the
CMakePackage type. In addition to changing the build system, this submission:

- Adds the GMP variant
- Removes v4.4.0 and v4.4.1 as CMake was implemented starting with v4.5.0
2021-06-17 07:03:37 +02:00
Adam J. Stewart
5692c15e3a TensorPipe: add new package (#24335)
* TensorPipe: add new package

* Add libuv dependency

* Add min supported version of libuv
2021-06-16 16:36:48 -05:00
Adam J. Stewart
f0a85059c2 XNNPACK: add new package (#24334)
* XNNPACK: add new package

* XNNPACK: add resources
2021-06-16 16:35:56 -05:00
Adam J. Stewart
551ae264fe gloo: add py-torch submodule commits (#24330)
* gloo: add py-torch submodule commits

* gloo: add new version

* gloo: add master branch

* gloo: use Ninja generator
2021-06-16 10:06:40 -05:00
OliverPerks
a92bed0dc5 openssl: architecture check is now based on spec target (#24228) 2021-06-16 08:10:43 -06:00
Nicolas Cornu
3f9f2c2abe eigen: fix build with nvhpc (#24253) 2021-06-16 07:58:31 -06:00
Adam J. Stewart
72c6fc2fda kineto: add new package (#24319) 2021-06-16 07:43:47 -06:00
Adam J. Stewart
38088dd898 FBGEMM: add new package (#24318) 2021-06-16 07:37:44 -06:00
Tim Haines
4f40454800 Dyninst: add v11.0.1 (#24322) 2021-06-16 07:34:39 -06:00
Glenn Johnson
46214b0caa Set r-chipseq to bioconductor format (#24315)
- added description
- converted to git from url
- set commit rather than sha256
2021-06-16 15:18:13 +02:00
Adam J. Stewart
ce0eb4862f QNNPACK: add py-torch submodule commits (#24329) 2021-06-16 14:57:37 +02:00
Steven Smith
058ae3f0fd ParFlow: add new package (#24331) 2021-06-16 14:56:36 +02:00
Glenn Johnson
2439b8d59c r-effects: new package (#24342) 2021-06-16 03:11:16 -06:00
archxlith
891207f20e kaldi: fix building with mkl (#24338) 2021-06-16 03:10:39 -06:00
archxlith
5ec708cb48 openfst: add v1.7.3 (#24339)
It's the highest version allowed in kaldi package
2021-06-16 03:07:17 -06:00
snehring
822d6a93fb openmolcas: add v21.02, add mpi variant (#24343) 2021-06-16 10:37:36 +02:00
Adam J. Stewart
64f3e37479 cpuinfo: prevent downloads during build (#24345) 2021-06-16 08:28:25 +02:00
Adam J. Stewart
8a938978a4 pthreadpool: more specific resource destination (#24346) 2021-06-16 08:27:20 +02:00
Marc Fehling
a067b48112 p4est: add v2.3.2 (#24311) 2021-06-15 23:46:19 -06:00
Axel Huebl
ca1d1c427c openPMD-api: Build with Legacy API (#24341)
Allow to build with `^hdf5@1.12.0 api=v110` and `v18`.
2021-06-15 18:37:52 -07:00
eugeneswalker
b330474a13 e4s ci: specs: add datatransferkit (#24325) 2021-06-15 18:37:37 -07:00
Richarda Butler
1c44912f9b add irep and lua-lang virtual dependency (#22492)
This adds a package for `irep`, a tool for reading `lua` input decks from 
Fortran, C, and C++.

`irep` can be built with either `lua` or `luajit`.  To address this, we also add
a virtual package for lua called `lua-lang`.  `luajit` isn't, by default, a drop-in
replacement for `lua`, but we add a `+lualinks` variant to it that adds symlinks
that make it behave like `lua@5.1`.  With this variant enabled, it provides the
`lua-lang` virtual.  `lua` always provides `lua-lang`.

- [x] add `irep` package
- [x] add `+lualinks` variant to `lua-luajit`
- [x] create `lua-lang` virtual, provided by `lua` and `luajit+lualinks`

Co-authored-by: Kayla Richarda Butler <butler59@quartz1148.llnl.gov>
Co-authored-by: Todd Gamblin <tgamblin@llnl.gov>
2021-06-15 17:50:04 -07:00
Seth R. Johnson
5971372be7 cairo: fix gtkdocize patch (#24332)
Patch in #23971 was not correct
2021-06-15 16:08:56 -07:00
Vanessasaurus
53dae0040a adding spack upload command (#24321)
this will first support uploads for spack monitor, and eventually could be
used for other kinds of spack uploads

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-06-15 14:36:02 -07:00
Adam J. Stewart
cdc28a9623 pthreadpool: add new package (#24324) 2021-06-15 14:58:37 -06:00
Thomas Madlener
d4e04f9410 dd4hep: add v1.17 and a patch for cmake issues (#24274) 2021-06-15 13:52:34 -06:00
Seth R. Johnson
1bf84d170f libdrm: fix one error, mark another conflict (#24309)
* libdrm: fix one configure error and require libpciaccess

Failure with `LIBS`: the linker can't find `-lrt` so configure fails on
darwin-bigsur %apple-clang@12.0.5
```
  >> 22    configure: error: in `/private/var/folders/gy/mrg1ffts2h945qj9k29s1l1dvvmbqb/T/s3j/spack-s
           tage/spack-stage-libdrm-2.4.100-ofhk6m25n2pi427ihnxmvjkfmgyzlrqc/spack-src':
  >> 23    configure: error: C compiler cannot create executables
     24    See `config.log' for more details

See build log for details:
  /var/folders/gy/mrg1ffts2h945qj9k29s1l1dvvmbqb/T/s3j/spack-stage/spack-stage-libdrm-2.4.100-ofhk6m25n2pi427ihnxmvjkfmgyzlrqc/spack-build-out.txt
```

* libpciaccess: Mark conflict with darwin

```
make[2]: *** [common_init.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
common_interface.c:75:10: fatal error: 'sys/endian.h' file not found
         ^~~~~~~~~~~~~~
```
and
```
common_init.c:73:3: error: "Unsupported OS"
```
and others
2021-06-15 12:13:28 -06:00
Glenn Johnson
d7263b5da0 r-insight: new package (#24313) 2021-06-15 11:16:34 -06:00
Paul Romano
ba65cc73ef openmc: add v0.12.2, v0.12.1 (#24320) 2021-06-15 09:19:39 -06:00
eugeneswalker
c302887f9b openpmd-api: conflicts w hdf5 api=v110, v16, v18 (#24323)
* openpmd-api: conflicts w hdf5 api=v110, v16, v18
* Update var/spack/repos/builtin/packages/openpmd-api/package.py
* Add reference

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-06-15 07:01:21 -06:00
Vanessasaurus
5521aae4f7 extending example for buildcaches (#22504)
* extending example for buildcaches

I was attempting to create a local build cache from a directory, and I found the
docs for both buildcaches and mirrors, but did not connect the docs that the
url variable could be the local filesystem variable. I am extending the docs for
buildcaches with an example of creating and interacting with one on the filesystem
because I suspect other users will run into this need and possibly not find what
they are looking for.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

* adding as follows to spack mirror list

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-06-14 21:46:27 -07:00
eugeneswalker
229247c899 e4s ci environment: packages: update to newer versions (#24308) 2021-06-14 19:26:30 -07:00
Hervé Yviquel
b92abd79ab paraver: rename package to wxparaver, add new versions and fix installation (#24307)
* update url, add all new versions and fix installation

* add wxparaver package and set the old paraver package as deprecated

* remove update of deprecated package

* remove old version from new wxparaver

* Update url

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-06-14 17:46:12 -06:00
David M. Rogers
26c645650d Made mxnet's cuda dependency conditional on +cuda. (#24305) 2021-06-14 15:23:09 -05:00
Vanessasaurus
39cdd085c9 adding more description to binary caches (#23934)
It is currently kind of confusing to the reader to distinguish spack buildcache install
and spack install, and it is not clear how to use a build cache once a mirror is added.
Hopefully this little big of description can help (and I hope I got it right!)

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-06-14 13:17:35 -07:00
Emil Briggs
8793d93e8c New package: rmgdft. (#23313) 2021-06-14 13:40:22 -06:00
QuellynSnead
34c9c89b55 Caliper: add v2.6.0 (#24303) 2021-06-14 13:04:14 -06:00
Robert Cohn
d993ee7972 oneAPI packages: fix install for python2 (#24296)
Fix platform detection logic to work for Python 2 and 3
2021-06-14 10:47:44 -07:00
Axel Huebl
22fe56ad24 HiPACE: new package (#24070)
Co-authored-by: Severin Diederichs <65728274+SeverinDiederichs@users.noreply.github.com>
2021-06-14 19:34:24 +02:00
Glenn Johnson
9cfcc16084 leptonica: add v1.81.0 and missing dependencies (#24302)
- add version 1.81.0
- add dependencies
  - giflib
  - jpeg
  - libpng
  - libtiff
  - libwebp
  - openjpeg
- build shared libs
2021-06-14 11:25:33 -06:00
Glenn Johnson
dcabbca1c5 libwebp: add v1.2.0 and new variants (#24301)
- add version 1.2.0
- add variants
    - giflib
    - jpeg
    - libpng
    - libtiff
2021-06-14 19:04:21 +02:00
Sergio
25bca688ce Fix the branch for the develop version of IOR (#24079) 2021-06-14 10:46:13 -06:00
eugeneswalker
0b769855a1 fast-global-file-status: depends_on libtool (#24293) 2021-06-14 10:01:29 -06:00
Jen Herting
0d73fd2b11 gnutls: added unconditional dependency on libidn2 (#21471) 2021-06-12 13:44:51 +02:00
Dominik Gresch
dc8626b801 IntelPackage: use 'version_yearlike' in check for libfabrics RPATH. (#16700)
Use the 'version_yearlike' attribute instead of 'version' to
check if the SPACK_COMPILER_EXTRA_RPATHS should be set to include
the built-in 'libfabrics'.
When using the bare 'version', the comparison is wrong when
building with 'intel-parallel-studio', which has the version
format '<edition>.YYYY.Nupdate', due to the leading '<edition>'.
2021-06-12 10:02:56 +00:00
Michael Kuhn
1b71d22194 nss: new package (#24288) 2021-06-12 03:19:13 -06:00
Greg Becker
95c9a031ee Ensure all roots of an installed environment are marked explicit in db (#24277) 2021-06-12 10:23:13 +02:00
Olivier Cessenat
d6cbf72b19 graphviz: add v2.47.2 (#24273)
Updated dependencies
2021-06-12 09:37:00 +02:00
Vanessasaurus
ae91d49f21 libinih: add new package (#24289)
xfsprogs currently does not install with error message:
FATAL ERROR: could not find a valid ini.h header.
Adding this package libinih, and including it as
a dependency for xfsprogs seems to fix the issue. It could be
that we only need to add it for newer versions (if it worked before)
and maybe a maintainer can comment on that.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-06-12 00:31:29 -06:00
Adam J. Stewart
8a0a60c575 py-pytorch-sphinx-theme: add new package (#24283) 2021-06-12 08:15:55 +02:00
Michael Kuhn
163fe86bda nspr: add v4.31 (#24284) 2021-06-12 08:08:01 +02:00
Seth R. Johnson
8b75e81666 llvm: add conflicts for newer gcc (#24281)
Closes #24270
2021-06-11 17:07:14 -06:00
Robert Mijakovic
177750b215 cp2k: add v8.2 (#24265)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-06-11 15:43:14 -06:00
Adrien Bernede
b0f348315c ipopt: add versions up to v3.13.0 (#16706)
Pagination on Github prevent spack from easily parse all available
versions. Also, due to recent migration to GitHub, tarballs for
versions up to 3.12.13 have be regenerated, changing the hash.

The current URL will apparently be supported, so we keep it, and give
the alternative one as a comment.
2021-06-11 14:36:50 -06:00
Adam J. Stewart
11f370e7be setup-env: allow users to skip module function setup (#24236)
* setup-env: allow users to skip module function setup

* Add documentation on SPACK_SKIP_MODULES
2021-06-11 19:19:24 +00:00
Tom Payerle
4a8785d371 [py-ippython]: Start py-backcall dependency to start at py-ipython@7.3.0: (#24279)
This should fix #24278
$INSTALLDIR/lib/python3.7/site-packages/IPython/core/events.py contains an
import from backcall even in @7.3.0, so dependency on py-backcall needs
to start earlier.
2021-06-11 19:11:44 +00:00
Manuela Kuhn
adc4699c3a qt+webkit: fix python2 dependency and add opengl conflict (#24276) 2021-06-11 17:24:28 +00:00
Andreas Baumbach
44a8e17549 py-distributed: restrict py-contextvars dep to newer versions (#23841)
* py-distributed: restrict py-contextvars dep to newer versions

Change-Id: I8a6d55b840309aa6966ab310d42252f45b0ef9c7

* fixup dependency on py-contextvars

Change-Id: I56b729394af0f5a6fc283344d8af87990c97426b
2021-06-11 10:15:55 -05:00
Tom Payerle
b4bf0c3476 texlive: restrict poppler version (#24222)
Restrict poppler version for texlive to poppler@:0.84
Should fix #19946

See also https://github.com/NixOS/nixpkgs/issues/79170
Looks like poppler@0.84 upgraded their header files to use the C++ cstdio
instead of the C stdio.h.  Since TeX is using C, not C++. this causes problems.
2021-06-11 09:01:24 -06:00
William Downs
a588d5dc58 gchp: add v13.0.2 and dev branch (#24206) 2021-06-11 07:22:21 -06:00
ajaust
31c4cdf59c py-pyprecice: fix checksums of 2.2.0.1 and 2.2.1.1 (#24264) 2021-06-11 04:34:43 -06:00
Olivier Cessenat
98ee702b37 perl-cgi: add v4.53 (#24266) 2021-06-11 03:58:39 -06:00
Jen Herting
dbdf8f2ce7 scrot: new package (#24250) 2021-06-11 09:03:44 +00:00
iarspider
ea08e93f2f Display proper message when patch checksum doesn't match (#24229) 2021-06-11 10:31:33 +02:00
Olivier Cessenat
dcb3fbf98e visit-cgns: better sets VISIT_PLUGIN_DIR to fit VisIt dir struct (#23834) 2021-06-11 10:28:57 +02:00
Olivier Cessenat
202510869d visit-silo: better sets VISIT_PLUGIN_DIR to fit VisIt dir struct (#23833) 2021-06-11 10:28:31 +02:00
Rémi Lacroix
ed695f3267 iq-tree: add v2.1.3 (#24235) 2021-06-11 02:19:27 -06:00
Hervé Yviquel
a83b75b878 extrae: fix import and issue with pthread (#24220) 2021-06-11 10:12:18 +02:00
Mark W. Krentel
eefcd3d00d hpcviewer: add v2021.05 (#24225) 2021-06-11 10:11:06 +02:00
Rémi Lacroix
722376c201 mafft: add v7.481 (#24233) 2021-06-11 09:58:43 +02:00
Jen Herting
269615b9ca tophat: set the C++ standard (#21737) 2021-06-11 09:54:18 +02:00
Nikolay Petrov
ec2d8a1571 Fixing provides directive for intel-oneapi-onedal package (#24108) 2021-06-11 09:47:27 +02:00
Jen Herting
c630594092 giblib: new package (#24249) 2021-06-11 09:43:39 +02:00
Marc Fehling
e291fa1b1a p4est: use the official tarball release. (#24219) 2021-06-11 06:46:21 +00:00
Adam J. Stewart
8c7f94db1c py-fiscalyear: add v0.3.2 (#24262) 2021-06-11 08:27:16 +02:00
Michael Kuhn
f7391c1970 iwyu: add 0.16 (#24258) 2021-06-10 19:28:26 -04:00
Carson Woods
5926056f3a reframe: add v3.6.1, v3.6.2 (#24239) 2021-06-10 13:01:44 -06:00
Jen Herting
1c81438343 New package: py-python-xlib (#24150)
* [py-python-xlib] created template

* [py-python-xlib] added dependencies

* [py-python-xlib] Final cleanup

- added homepage
- added description
- removed fixmes

* [py-python-xlib] allowed newer versions of python
2021-06-10 12:58:21 -06:00
Peter Lindstrom
31bca57e89 zfp package: ensure openmp variant is processed (#24221)
* zfp: several package improvements

- add variants for build targets, language bindings, backends
- ensure selected variants are compatible with zfp version
- point to GitHub (not LLNL) tar balls
- add dependencies
- update link to homepage
- add maintainers

* zfp: address suggestions by Spack team

- use conflicts() instead of raising exceptions
- use define() and define_from_variant() where applicable

* Apply suggestions from code review

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>

* Fix ZFP OpenMP build.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-06-10 10:25:46 -07:00
Jen Herting
9da1cb615f New package: py-keyboard (#23636)
* [py-keyboard] created template

* [py-keyboard]

- updated homepage
- added dependency for OSX
- added description
- removed fixmes

* [py-keyboard] Until py-pyobjc can be created, specifying conflict with platform=darwin

* [py-keyboard] is verb
2021-06-10 16:26:44 +00:00
Olivier Cessenat
e4a79dab47 groff: add v1.22.4, update recipe (#24213)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-06-10 16:58:22 +02:00
Olivier Cessenat
fd5b13b7a4 uchardet: new release + lib image was not found on Mac OSX (#24212)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-06-10 16:50:03 +02:00
Sebastian Schmitt
31c0bcf346 Update py-setuptools-scm (#24217) 2021-06-10 07:31:17 -05:00
Seth R. Johnson
849943c63d cairo: circumvent missing gtkdocize for autoconf 2.70+ (#23971) 2021-06-09 17:10:13 -06:00
Ryan May
47ef59c885 Bump MetPy to 1.0.1 (#23944) 2021-06-09 15:49:21 -06:00
mcuma
9c0fb86b48 openkim-models: fix typo in the latest version (#24209) 2021-06-09 20:21:12 +00:00
Robert Pavel
29c4d5901a Update of Flecsi Spackage (#24106)
* Update of Flecsi Spackage

Update of flecsi spackage to reconcile differences between flecsi@1:1.9
and flecsi@2: for future support purposes

* Removing Unnecessary Conditional

Removing unused conditional. Initially the plan was to switch based on
version in `cmake_args` but this was not necessary as build system
variable names remained mostly the same and conflicts prevent the rest.

For the most part, if a variant is there it does not need to check
against what version of the code is being built.

* Updated CI To Reconcile Flecsi Changes

Updated CI to target flecsi@1.4.2 which best matches the previous
release version and reconciled change in variant name
2021-06-09 11:03:50 -07:00
Olivier Cessenat
0dce021f94 jbigkit: adding the library spec for dependents (#24103) 2021-06-09 10:14:28 +02:00
Olivier Cessenat
8f34a66502 texlive: setup dependent build environment (#24102) 2021-06-09 09:46:21 +02:00
Cameron Smith
7499212bc1 pumi: support building tests (#24202)
fix sub directory path to meshes git submodule
2021-06-08 18:28:34 -06:00
Ryan Mast
7e9ed7e56d helics: Add version 2.7.1 (#24188) 2021-06-08 17:05:32 -07:00
snehring
75db07e674 texlive: update live version to 2021 (#24211) 2021-06-08 16:55:49 -07:00
Mark W. Krentel
968d393f6b intel-tbb: explicitly set OS var and pass to TBB (#23852)
The common.inc script in TBB uses the environ var 'OS' to determine
the platform it's on.  On Linux, this is normally empty and TBB falls
back to uname.  But some systems set this to 'CentOS Linux 8' which is
descriptive, but not exactly what common.inc is looking for.

Instead, take the value from python and explicitly set OS to what TBB
expects to avoid this problem.
2021-06-08 17:06:16 -05:00
eugeneswalker
ac3b46fc95 e4s ci: re-enable veloc builds after recent fixes (#24190) 2021-06-08 14:10:44 -07:00
Massimiliano Culpo
fd03d539cc mypy: add types-six to the list of installed packages (#24207)
See https://mypy-lang.blogspot.com/2021/05/the-upcoming-switch-to-modular-typeshed.html
for a broader explanation.
2021-06-08 20:46:25 +00:00
Scott Wittenburg
92bef1da6f Pipelines: Fix default generated rebuild job script (#24185) 2021-06-08 14:33:45 -06:00
Vanessasaurus
3291be6cb1 singularity: add singularityce fork (#24201)
Since the two packages share a common history, the installation
procedure has been factored into a common base class.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-06-08 21:31:18 +02:00
Teodor Nikolov
d0fdbc1ab2 [umpire] Fix missing header (#24198) 2021-06-08 21:17:51 +02:00
Adam J. Stewart
92be358582 Python: fix +tkinter+tix support (#23980)
* Tcl: fix TCLLIBPATH

* Fix TCL|TK|TIX_LIBRARY paths

* Fix TCL_LIBRARY, no tcl8.6 subdir

* Don't rely on os.listdirs sorting

For tcl and tk, we also install the source directory, so there are
two init.tcl and tk.tcl locations. We want the one in lib/lib64,
which should come before the one in share.

* Add more patches

* Fix dylib on macOS

* Tk: add smoke tests

* Tix: add smoke test
2021-06-08 12:45:04 -05:00
Massimiliano Culpo
f33c4e7280 ASP-based solver: permit to use virtual specs in environments (#24199)
Extracting specs for the result of a solve has been factored
as a method into the asp.Result class. The method account for
virtual specs being passed as initial requests.
2021-06-08 19:04:49 +02:00
Massimiliano Culpo
e321578bbe ASP-based solver: reordered low priority optimization criteria (#24184)
Minimizing compiler mismatches in the DAG and preferring newer 
versions of packages are now higher priority than trying to use as 
many default values as possible in multi-valued variants.
2021-06-08 16:10:49 +02:00
Robert Mijakovic
a2e9a1b642 osu-micro-benchmarks: new version 5.7.1 (#23590) 2021-06-08 08:07:20 -06:00
Todd Gamblin
beed6047e8 macOS: add monterey as macOS version 12. (#24192) 2021-06-08 10:07:34 +00:00
Tamara Dahlgren
11fd88ee3c Update stand-alone tests to use test stage work directory; also added expected ctest output (#24191) 2021-06-08 03:31:40 -06:00
Glenn Johnson
418db4e910 gatk: make r a variant (#24189)
According to the docs, r is needed for plotting, but plotting is
untested. In addition, the specific version requirement of java for gatk
could lead to multiple installations of r being triggered in an
environment. That might cause people to have to be deliberate about
java in a deployment. All in all, it seems that r is better as a
variant for gatk.
2021-06-08 03:08:10 -06:00
Chris Richardson
f231ae97f4 Changes for ufl and basix (#24187) 2021-06-08 03:07:38 -06:00
Tamara Dahlgren
e1bd3ae4db biobambam2: update stand-alone tests to use test stage work directory (#24111) 2021-06-08 09:30:21 +02:00
Massimiliano Culpo
729d66a3f8 Fix brittle unit-tests on providers (#24186)
These tests were broken by #24176
2021-06-07 22:16:14 +02:00
Michael Kuhn
4d55203ce5 build_systems: Make autotools builds verbose (#24161)
This is also what our other build systems are doing.
2021-06-07 14:05:35 -04:00
Valentin Volkl
2bdeaa1b48 pkgconf: disable check due to missing dependencies (#24168) 2021-06-07 12:01:24 -06:00
Adam J. Stewart
3d0bad465b Docs: fix missing backtick in Environments docs (#24109) 2021-06-07 19:05:09 +02:00
Valentin Volkl
506d5744aa delphes: add v3.5.0 (#24101) 2021-06-07 19:04:34 +02:00
Tamara Dahlgren
026cf7aa30 Update stand-alone tests to use test stage work directory (#24110) 2021-06-07 18:11:10 +02:00
Harmen Stoppels
e12b030def mpich: fix constraints in provides directives (#24176) 2021-06-07 09:16:56 -06:00
Michael Kuhn
057bf434ce netdata: add v1.31.0 (#24158)
This also adds some missing dependencies for core functionality.
2021-06-07 17:13:49 +02:00
Glenn Johnson
004f86aab7 r-rpostgres: add new package (#22442) 2021-06-07 17:10:46 +02:00
Glenn Johnson
c01730e33b r-rmariadb: remove no longer needed patch (#24171)
Since PR #22873 was merged, the configure patch for r-rmariadb is no
longer needed. Also added comment regarding configure arguments.
2021-06-07 17:08:43 +02:00
psakievich
1fed008410 Add int64 back for hypre in nalu-wind (#24140)
To concretize the entire exawind environment together we need `hypre` to be built with the same flags for `nalu-wind` and `amr-wind`.  
@jrood-nrel
2021-06-07 07:35:26 -07:00
Chuck Atkins
b0590bf4e8 axl: Don't deprecate v0.3.0 as it's still actively required by veloc (#24179) 2021-06-07 07:35:08 -07:00
arjun-raj-kuppala
c2901ea14a AMD ROCm release 4.2.0: bump up mivisionx version and add gtk option to opencv (#23881)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-06-07 15:31:17 +02:00
Harmen Stoppels
b17046723d Revert "Bootstrap with -O3 in cmake (#23147)" (#24174)
This reverts commit fef05621a7.
2021-06-07 03:37:22 -06:00
Luca Heltai
f07be01fa8 arborx: enable trilinos 13+ (#24153) 2021-06-06 21:07:31 -06:00
Adam J. Stewart
559db31511 py-radiant-mlhub: add new package (#24167) 2021-06-06 21:04:30 -06:00
Adam J. Stewart
e1d194b9a3 NCCL: add new versions (#24155) 2021-06-06 22:22:21 -04:00
Peter Scheibel
6ed7d40be7 axom: don't require hdf5~shared (#24144) 2021-06-06 22:17:39 -04:00
Luca Heltai
1533c2fade dealii: add support for arborx (#24154) 2021-06-06 22:16:43 -04:00
Glenn Johnson
986bcef160 darshan-runtime: add SGE scheduler (#24160)
* Set job_id for SGE in darshan-runtime package
* Use a multi value variant for scheduler

Only one scheduler can be selected so make the variant multi valued and
set multi=False.
2021-06-06 19:15:40 -04:00
Adam J. Stewart
09d317c293 py-pystac: add new package (#24166) 2021-06-06 19:11:08 -04:00
Adam J. Stewart
7093fb214f py-tqdm: add version 4.56.2 (#24165) 2021-06-06 14:46:23 -06:00
Paul
534df5cd68 Add Go 1.16.5 and 1.15.13 (#24170) 2021-06-06 17:43:59 +02:00
Chuck Atkins
6c21d64c50 veloc: The axl dependency had an API change in 0.4.0 that breaks veloc (#24157) 2021-06-05 18:25:20 -06:00
Adam J. Stewart
3db5029a4b GMT: add v6.2.0 (#24164) 2021-06-05 23:39:02 +00:00
Adam J. Stewart
7449d6950a Fix git_version on macOS (#24163) 2021-06-05 23:30:28 +00:00
Tom Payerle
9f8e40e95c hdf-eos5: Fix issue when linking against hdf5+szip (#23411) (#23412)
* hdf-eos5: Fix issue when linking against hdf5+szip (#23411)

Should fix issue #23411 when linking against hdf5+szip

Also fix bug if hdf5 does not depend on zlib

Reluctantly added payerle as a maintainer
2021-06-05 07:44:49 -04:00
Greg Becker
af3ebeeea1 apply default linux prefix inspections to all module sets (#24151) 2021-06-04 21:37:20 -06:00
Axel Huebl
42df61d631 py-warpx: 21.06 (#24152) 2021-06-04 21:50:48 -05:00
Tom Payerle
e741211c09 [py-cvxpy]: Add new version, fix depends_on versions (#24147)
Added version 1.1.13

Fixed versions for dependencies based on README.md for package
In particular:
   * versions 1.1.x require python@3, at least 3.4 and for 1.1.13 at least 3.6
   * py-osqp had been pinned to version 0.4.1, but README.md either shows
        no version restriction, of 0.4.1 and higher
   * @1.1.13 requires at least 1.1.6 of py-scs
   * I am assuming since 1.1.x is python@3 only, py-six no longer required
        (it was not explicitly showing up in README.md for these versions)
2021-06-04 17:55:26 -06:00
Manuela Kuhn
4cc27f58db tk: fix url for patch (#24146) 2021-06-04 18:18:07 -05:00
Michael Kuhn
7d3a3af621 main, modules: fix module roots not being found (#24135)
Since the module roots were removed from the config file,
`--print-shell-vars` cannot find the module roots anymore. Fix it by
using the new `root_path` function. Moreover, the roots for lmod and
modules seems to have been flipped by accident.
2021-06-04 15:33:18 -07:00
Jen Herting
ff73ac6e9a New package: py-python3-xlib (#24139)
* [py-python3-xlib] created template

* [py-python3-xlib] requires python3

* [py-python3-xlib] Final cleanup

- added homepage
- added description
- removed fixmes

* [py-python3-xlib] added homepage

* [py-python3-xlib] removing homepage entirely
2021-06-04 20:28:14 +00:00
Tamara Dahlgren
5c37db5db3 libceed: Update the hip-related variant (#24142) 2021-06-04 12:45:10 -07:00
Joe Heaton
13978d68ea enable std c++14 (#24127) 2021-06-04 18:47:32 +00:00
arjun-raj-kuppala
54b9fe219b opencv: Adding gtk variant (#23937) 2021-06-04 12:51:07 -05:00
ajaust
1fd1f1c93f py-pyprecice: Add version 2.2.0.2 and 2.2.1.1 (#24138)
* add versions 2.2.0.2 and 2.2.1.1

* Add maintainer

Added Ishaan as additional maintainer as he is also maintainer of the Python bindings

* add new major precice version as dependency
2021-06-04 10:06:40 -05:00
Tamara Dahlgren
a0259cc4f4 Update stand-alone tests to use test stage work directory (#24130) 2021-06-04 07:28:03 -04:00
Michael Kuhn
d5d1d9548f cmd/stage: print stage path (#24019)
This is a small quality of life improvement so that users can easily
copy and paste the stage path after executing `spack stage spec`.
2021-06-04 11:18:55 +00:00
Desmond Orton
e28e6d2618 gengeo: new package (#24126) 2021-06-04 10:15:28 +02:00
Greg Becker
d8fc38a467 bugfix: modules relative to view use top-level view root, not implementation root (#24124) 2021-06-04 10:13:14 +02:00
Michael Kuhn
c4c14e0c69 libbson, mongo-c-driver: add v1.17.6 (#24134) 2021-06-04 08:03:26 +00:00
Adam J. Stewart
c09eea5947 Don't warn about missing source id for external packages (#24125) 2021-06-04 09:55:09 +02:00
Adam J. Stewart
b03049e938 m4: secure_snprintf.patch is no longer needed for 1.4.19 (#24113) 2021-06-04 09:51:43 +02:00
Tom Scogland
b63a8b3e27 Speed-up version parsing and comparison (#22973)
The VALID_VERSION regex didn't check that the version string was
completely valid, only that a prefix of it was. This version ensures
the entire string represents a valid version.

This makes a few related changes.

1. Make the SEGMENT_REGEX identify *which* arm it matches by what groups
   are populated, including whether it's a string or int component or a
   separator all at once.

2. Use the updated regex to parse the input once with a findall rather
   than twice, once with findall and once with split, since the version
   components and separators can be distinguished by their group status.

3. Rather than "convert to int, on exception stay string," if the int
   group is set then convert to int, if not then construct an instance
   of the VersionStrComponent class

4. VersionStrComponent now implements all of the special string
   comparison logic as part of its __lt__ and __eq__ methods to deal
   with infinity versions and also overloads comparison with integers.

5. Version now uses direct tuple comparison since it has no per-element
   special logic outside the VersionStrComponent class.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-06-04 09:23:37 +02:00
Jen Herting
ea390198f4 New package: py-ibm-watson (#24115)
* [py-ibm-watson] created template

* [py-ibm-watson] added dependencies

* [py-ibm-watson] Final cleanup

- added homepage
- added description
- removed fixmes
2021-06-03 20:58:17 -06:00
Tamara Dahlgren
fb05d9830a formetis: Update stand-alone tests to use test stage work directory (#24133) 2021-06-04 02:31:51 +00:00
Tamara Dahlgren
4ad779c4c4 formetis: correct the sha256 (#24131) 2021-06-04 02:27:53 +00:00
Jen Herting
1775383f5f New package: py-ibm-cloud-sdk-core (#24114)
* [py-ibm-cloud-sdk-core] created template

* [py-ibm-cloud-sdk-core] added dependencies

* [py-ibm-cloud-sdk-core] set minimum python version

* [py-ibm-cloud-sdk-core] added version 3.10.0

* [py-ibm-cloud-sdk-core] Final Cleanup

- added homepage
- added description
- removed fixmes
2021-06-03 21:15:46 -05:00
Desmond Orton
a85bc4eee1 New package: py-haphpipe (#23769)
* New Package:py-haphpipe@1.0.3

* removed llvm restrict. & changed freebayes

* Style fix

* Removed pip, wheel, added url for deps list

* used proper gsutil naming

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

* url src for deps, samtools fix

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-06-03 23:58:08 +00:00
Scott Wittenburg
9903d05be9 Pipelines: Fix generation when dep and pkg arch differ (#24089) 2021-06-03 19:26:43 -04:00
Tom Payerle
70c81069ab Julia zen patch (#24119)
Add LLVM-style CPU name for 'zen'
Map zen => znver1
Fix checksum for @1.5.4
2021-06-03 23:56:21 +02:00
Veselin Dobrev
e4a559a571 CEED v4.0 release (#22735)
* petsc: add hip variant

* libceed: add 0.8, disable occa by default, and let autodetect AVX

Disabling OCCA because backend updates did not make this release and
there are some known bugs so most users won't have reason to use OCCA.

https://github.com/CEED/libCEED/pull/688

* WIP: ceed: 4.0 release

* MFEM package updates (#19748)

* MFEM package updates

* mfem: flake8

* [mfem] Various fixes and tweaks.

[arpack-ng] Add a patch to fix building with IBM XL Fortran.

[libceed] Fix building with IBM XL C/C++.

[pumi] Add C++11 flag for version 2.2.3.

* [mfem] Fix the shared CUDA build.

Reported by: @MPhysXDev

* [mfem] Fix a TODO item

* [mfem] Tweak the AmgX dependencies

* [suite-sparse] Fix the version of the mpfr dependency

* MFEM: add initial HIP support using the ROCmPackage.

* MFEM: add 'slepc' variant.

* MFEM: update the patch for v4.2 for SLEPc.

* mfem: apply 'mfem-4.2-slepc.patch' just to v4.2.

* ceed: apply 'spack style'

* [mfem] Add a patch for mfem v4.2 to work with petsc v3.15.0.

[laghos] Add laghos version 3.1 based on the latest commit in
         the repository; this version works with mfem v4.2.

[ceed] For ceed v4.0 use laghos v3.1.

* [libceed] Explicitly set 'CC_VENDOR=icc' when using 'intel'
          compiler.

* [mfem] Allow pumi >= 2.2.3 with mfem >= 4.2.0.

[ceed] Use pumi v2.2.5 with ceed v4.0.0.

* [ceed] Explicitly use occa v1.1.0 with ceed v4.0.0.
       Use mfem@4.2.0+rocm with ceed@4.0.0+mfem+hip.

* [ceed] Add NekRS v21 as a dependency for ceed v4.0.0.

* [ceed] Fix NekRS version: 21 --> 21.0

* [ceed] Propagate +cuda variant to petsc for ceed v4.0.

* [mfem] Propagate '+rocm' variant to some other packages.

* [ceed] Use +rocm variant of nekrs instead of +hip.

* [ceed] Do not enable magma with ceed@4.0.0+hip.

* [libceed] Fix hip build with libceed@0.8.

* [laghos] For v3.1, use the release .tar.gz file instead of commit.

* Remove cuda & hip variants as they are inherited

* [ceed] Remove comments and FIXMEs about 'magma+hip'.

* [ceed] [libceed] Remove TODOs about occa + hip.

* libceed: use ROCmPackage and +rocm

* petsc: use ROCmPackage for HIP

* libceed, petsc: use CudaPackage

* ceed: forward cuda_arch and amdgpu_target

* [mfem] Use Spack's CudaPackage as a base class; as a result,
       'cuda_arch' values should not include the 'sm_' prefix.
       Also, propagate 'cuda_arch' and 'amdgpu_target' variants
       to enabled dependencies.

* petsc: variant is +rocm, package name is hip

Co-authored-by: Jed Brown <jed@jedbrown.org>
Co-authored-by: Thilina Rathnayake <thilinarmtb@gmail.com>
2021-06-03 11:32:31 -07:00
Manuela Kuhn
8aae76eee0 r-emmeans: add new package (#23991) 2021-06-03 10:37:22 -06:00
Weiqun Zhang
b83f06df0c amrex: add v21.06 and update maintainers (#24086)
Also add hip build dependency on rocprim.
2021-06-03 09:52:34 -06:00
Matthieu Dorier
7845da58a7 tkrzw: add new package (#24100) 2021-06-03 17:45:05 +02:00
Robert Mijakovic
54bce50a17 m4: add v1.4.19 (#24099)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-06-03 15:01:29 +02:00
Olivier Cessenat
c3898ca3bf texlive: add v20210305 (#24068) 2021-06-03 04:38:06 -06:00
Tom Vander Aa
1efeb933ec intel-oneapi-mpi: fix mpicc and related scripts (#23955)
Replace I_MPI_SUBSTITUTE_INSTALLDIR with actual installation prefix
2021-06-03 04:37:35 -06:00
Harmen Stoppels
473e9aa08e Extend cuda conflicts to cray platform (#24057)
The CUDA compiler conflicts are valid on Cray too, and likely 
on Darwin x86_64 with %gcc and %clang too, so drop platform=linux
2021-06-03 03:46:27 -06:00
Desmond Orton
7e168b8535 py-gsutil: new package (#23970) 2021-06-03 03:40:45 -06:00
Manuela Kuhn
a8c7d9a2ed r-afex: add new package (#24004) 2021-06-03 03:22:37 -06:00
Seth R. Johnson
a478a8cf9a flibcpp: add v1.0.1 and smoke test (#24050) 2021-06-03 11:22:06 +02:00
Chuck Atkins
f7c9e497f1 ecp-data-vis-sdk: Disable +fortran for unifyfs (#24096) 2021-06-03 01:55:36 -06:00
eugeneswalker
ef9d3a464f hdf5: filter compiler wrapper: h5pcc, h5pfc (#24092) 2021-06-03 09:38:15 +02:00
Kai Torben Ohlhus
08a4212ec3 suite-sparse: add v5.10.0 and v5.10.1 (#24097)
Update homepage URL and see release notes:

- https://github.com/DrTimothyAldenDavis/SuiteSparse/releases/tag/v5.10.1
- https://github.com/DrTimothyAldenDavis/SuiteSparse/releases/tag/v5.10.0
2021-06-03 00:34:25 -06:00
Desmond Orton
038bd61e14 New Package:py-responses (#23972)
* New Package:py-responses

* fixed deps
2021-06-02 21:43:20 -06:00
Desmond Orton
b4e347d2ef New Package:py-cookies (#24084) 2021-06-02 22:20:56 -05:00
Manuela Kuhn
e1d578299e r-estimability: add new package (#23990) 2021-06-02 20:28:21 -06:00
Manuela Kuhn
3b148f1192 r-lmertest: add new package (#24000) 2021-06-02 21:03:56 -05:00
Scott Wittenburg
28517deeeb Pipelines: pass relative artifact paths to child jobs (#24085)
Passing absolute paths from pipeline generate job to downstream rebuild jobs
causes problems when the CI_PROJECT_DIR is not the same for the generate and
rebuild jobs.  This has happened, for example, when gitlab checks out the
project into a runner-specific directory and different runners are chosen
for the generate and rebuild jobs.
2021-06-02 14:20:57 -06:00
Desmond Orton
194c8ee803 py-httplib2:Version update (#23966) 2021-06-02 13:35:09 -05:00
Danny McClanahan
b369ff461a ensure the staging dir exists for spack stage -p <PATH> (#23963)
* ensure that the stage root exists for `spack stage -p <PATH>`

* add test to verify `spack stage -p <PATH>` works!

* move out shared tmp staging path setup to a fixture to fix the test
2021-06-02 09:56:51 -07:00
Harmen Stoppels
281b0e8c92 py-msgpack: add v1.0.2, v1.0.1 (#24065) 2021-06-02 08:01:45 -06:00
Manuela Kuhn
29554d867f py-nilearn: add new package (#24055) 2021-06-02 08:37:07 -05:00
Vicente Bolea
410da48e81 vtk-m: add v1.6.0 (#24062)
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2021-06-02 12:28:44 +02:00
Nic McDonald
e37d663881 sst-core, sst-elements, sst-macro: add v11.0.0 (#24075) 2021-06-02 02:08:17 -06:00
Brian Van Essen
3356c5fc71 lbann, aluminum, hydrogen, dihydrogen: pass cuda_arch to cmake (#24074) 2021-06-02 10:02:23 +02:00
Filippo Spiga
622223823e Adding NVHPC 21.5 support (#24078) 2021-06-02 01:43:45 -06:00
Axel Huebl
ef47fe53ba WarpX: 21.06 (#24072)
* WarpX: 21.06

Also fix a little dependency issue in HIP.

* Fix openPMD dependency for no-MPI
2021-06-02 09:35:35 +02:00
Jean-Paul Pelteret
237ff4b2b2 dealii: add v9.3.0 (#24077) 2021-06-02 09:33:34 +02:00
Desmond Orton
90e92bee4c New package: py-gcs-oauth2-boto-plugin (#23969)
* New package: py-gcs-oauth2-boto-plugin

* Dep fixes
2021-06-01 20:13:44 -06:00
Desmond Orton
b082f12730 New Package:py-sierrapy@0.3.0 (#23768)
* New Package:py-sierrapy@0.3.0

* dep fixes to sierrapy

* further dep fixes
2021-06-01 20:13:27 -06:00
Harmen Stoppels
66013eecd7 Bump pip (#24073) 2021-06-01 20:48:18 -05:00
Jonathan R. Madsen
314329deea Create pykokkos-base package (#24054) 2021-06-01 19:50:03 +00:00
Harmen Stoppels
e8afc5db15 Fix bug where cmake prefix path on the command line does not include transitive deps (#23965) 2021-06-01 12:45:52 -07:00
Mikael Simberg
690558f927 umpire: add v5.0.1 (#24056) 2021-06-01 20:37:39 +02:00
Michael Kuhn
c90f24d908 gcc: add 9.4.0 (#24064)
This also enables bootstrapping by default since that is what GCC
recommends and what most distributions are doing as well.
2021-06-01 20:22:27 +02:00
Kevin Huck
73c78358a8 apex: updated package, added maintainer (#18569)
Adding versions: 2.2.0, 2.3.0, 2.3.1, 2.3.2, 2.4.0
2021-06-01 20:14:18 +02:00
Massimiliano Culpo
50dac14d10 axom: fix typo in conflicts where "^" is missing (#24058) 2021-06-01 19:06:15 +02:00
Massimiliano Culpo
707a3f7df8 Simplified the spack.util.gpg implementation (#23889)
* Simplified the spack.util.gpg implementation

All the classes defined in this Python module,
which were previously used to construct singleton
instances, have been removed in favor of four
global variables. These variables are initialized
lazily, like before.

The API of the module has been unchanged for the
most part. A few tests have been modified to use
the new global names.
2021-06-01 10:05:42 -07:00
Massimiliano Culpo
c6d21fa154 rocksdb: fix typo in dependency condition (#24061)
refers #23503

`spack audit` caught that the "bzip2" variant was not defined.
2021-06-01 08:11:12 -06:00
Massimiliano Culpo
c015e84291 py-elephant: fix typo in dependency condition (#24060)
refers #23503

`spack audit` caught that the "docs" variant was not defined.
2021-06-01 08:10:38 -06:00
Massimiliano Culpo
379482b653 paradiseo: remove dependency that cannot be triggered (#24059)
refers #23503

Spack audit caught that the "doc" variant was not defined,
and doxygen was conditional on it being set.
2021-06-01 15:55:02 +02:00
Manuela Kuhn
8fe2be0010 py-nipype: add new package (#24045) 2021-06-01 08:41:02 -05:00
Harmen Stoppels
4c3d58ad83 mpich: conflict no longer necessary with clang (#24013) 2021-06-01 06:16:25 -06:00
lpoirel
f8794afcbd petsc: add +hwloc and +openmp variants (#23675) 2021-06-01 03:37:19 -06:00
Mark W. Krentel
389b02cf71 hpctoolkit: update recipe, add v2021.05.15 (#24017)
1. add version 2021.05.15.
2. add patch to build old revs with gcc 11.x, version 2021.15.05
already has patch integrated, fixes #23667.
3. add variant +debug to build unoptimized, debug version.
4. add variant +viewer to include hpcviewer and add viewer path to
hpctoolkit module.
5. add dependency on memkind to workaround a glibc problem found on
some Cray platforms.
2021-06-01 02:31:48 -06:00
Matthieu Dorier
2cd8139cd7 spdlog: add v1.8.2-v1.8.5, adjusted required version of cmake (#23993) 2021-06-01 10:28:33 +02:00
iarspider
e4edbe89cc COOL: add new package (#23006)
Co-authored-by: George Hartzell <hartzell@alerce.com>
2021-06-01 10:12:55 +02:00
Michael Kuhn
f1d2ab38a0 enzo: add main branch (#24010)
We also keep around master for compatibility and map it to main.
2021-06-01 10:10:37 +02:00
Adam J. Stewart
ab254e7d86 py-numcodecs: fix import_modules tests (#24015) 2021-06-01 10:00:53 +02:00
Adam J. Stewart
c596dba039 py-psycopg2: need link dep on postgresql (#24016) 2021-06-01 10:00:35 +02:00
Harmen Stoppels
26e1a8287f Bump cmake (#24043) 2021-06-01 09:41:52 +02:00
Michael Kuhn
f35c3ef9ef perl: add 5.34.0 (and 5.35.0) (#24047) 2021-06-01 09:41:36 +02:00
Seth R. Johnson
976a97f045 formetis: add new package (#24048) 2021-06-01 09:32:20 +02:00
Harmen Stoppels
bb5fd5c567 Fix leading / during spack buildcache -f ... (#24028)
For me the buildcache force overwrite option does not work. It tries to
delete a file, but errors with a key error, apparently because the
leading / has to be removed.
2021-06-01 01:10:32 -06:00
Ben Darwin
40803365f3 cctools: add v7.2.10 (#24051) 2021-06-01 09:01:55 +02:00
Mark W. Krentel
5fb68b4441 elfutils: add v0.183 through v0.185 (#24052) 2021-06-01 09:01:32 +02:00
Hadrien G
175e6e8c1e acts: add v8.3.0 (#24053) 2021-06-01 08:59:33 +02:00
Tom Scogland
4a7b0afde2 Log performance improvement (#23925)
* util.tty.log: read up to 100 lines if ready

Rework to read up to 100 lines from the captured stdin as long as data
is ready to be read immediately.  Adds a helper function to poll with
`select` for ready data.  This showed a roughly 5-10x perf improvement
for high-rate writes through the logger with relatively short lines.

* util.tty.log: Defer flushes to end of ready reads

Rather than flush per line, flush per set of reads.  Since this is a
non-blocking loop, the total perceived wait is short.

* util.tty.log: only scan each line once, usually

Rather than always find all control characters then substitute them all,
use `subn` to count the number of control characters replaced.  Only if
control characters exist find out what they are.  This could be made
truly single pass with sub with a function, but it's a more intrusive
change and this got 99%ish of the performance improvement (roughly
another 2x in some cases).

* util.tty.log: remove check for `readable`

Python < 3 does not support a readable check on streams, should not be
necessary here since we control the only use and it's explicitly a
stream to be read.
2021-05-31 20:33:14 -07:00
Manuela Kuhn
ea4a2c9120 py-lxml: add 4.6.3 (#24037)
* py-lxml: add 4.6.3

Also add missing libxml2 and libxslt versions dependencies [1]

[1] https://github.com/lxml/lxml/blob/lxml-4.6.3/INSTALL.txt

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

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

* py-lxml: remove cython dependency again

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-31 17:34:28 -06:00
Manuela Kuhn
e5513f914e py-prov: add new package (#24040) 2021-05-31 17:10:29 -06:00
Manuela Kuhn
1fae271be8 py-click: add 8.0.1 (#24041) 2021-05-31 17:46:20 -05:00
Manuela Kuhn
c6da94473d py-traits: add 6.2.0 (#24044) 2021-05-31 16:48:19 -05:00
Manuela Kuhn
adf2e8230a py-simplejson: add 3.17.2 (#24042)
Also fix python version dependency.
2021-05-31 16:47:28 -05:00
Manuela Kuhn
f3d506b582 py-networkx: add 2.5.1 (#24038) 2021-05-31 16:42:12 -05:00
Manuela Kuhn
647bee732c py-nibabel: add new package (#24036) 2021-05-31 16:36:23 -05:00
Manuela Kuhn
9d0b8208e4 py-packaging: add 20.9 (#24034) 2021-05-31 16:35:04 -05:00
Manuela Kuhn
9a902b67a1 py-etelemetry: add new package (#24033) 2021-05-31 15:34:22 -06:00
Manuela Kuhn
444ba3d4cf py-ci-info: add new package (#24031) 2021-05-31 16:14:13 -05:00
Manuela Kuhn
bc78cf3a2c py-pydot: add v1.4.2 (#24039) 2021-05-31 19:26:55 +00:00
Manuela Kuhn
c8df8f2702 py-requests: add 2.25.1 (#24032) 2021-05-31 12:59:25 -05:00
Harmen Stoppels
7bae865c7e Propagate openmp to blas for sirius and spla (#24027)
And also update lowerbounds of dependencies
2021-05-31 14:16:00 +00:00
h-murai
8cdf42e1db Bugfix: not providing fftw-api@3 (#24024) 2021-05-31 04:01:42 -06:00
Valentin Volkl
ae2fc50861 xqilla: add patches for newer xerces-c, gcc (#24021) 2021-05-31 03:49:23 -06:00
Michael Kuhn
c4e4d3587b libfabric: add debug variant (#24018) 2021-05-31 09:50:32 +02:00
eugeneswalker
bd6145589d CI: E4S: enable full E4S (#24011)
* e4s ci: enable full e4s
* add llvm-amdgpu to list of specs needing an xlarge tagged runner
* comment out qt and qwt because of intermittent build failures
* remove +rocm specs because rocblas job consistently fails due to infrastructure
2021-05-30 13:09:07 -07:00
Valentin Volkl
7bdd906580 vbfnlo: add missing build dependencies (#24022) 2021-05-30 19:26:39 +02:00
Paul R. C. Kent
d4585f4328 New versions: py-sphinxcontrib-bibtex, py-sphinx-rtd-theme, py-pybtex-docutils, py-pybtex (#24009)
* New versions

* update deps

* py-sphinxcontrib-bibtex deps
2021-05-29 20:52:36 -05:00
Paul R. C. Kent
120c718da5 New versions: py-gpaw, py-ase (#24008)
* New gpaw and ase versions

* Update ase deps

* flask dep removed after 3.18.0
2021-05-29 23:05:16 +00:00
Seth R. Johnson
9936182f60 qt: skip multimedia when ~opengl (#23989)
* qt: skip multimedia when ~opengl

On 5.9 on macOS the multimedia option causes build errors; on other
platforms and versions it should probably be assumed inoperative anyway.

* qt: Omit flags when disabling multimedia

```
ERROR: Unknown command line option '-no-pulseaudio'.
```

* Work around another qt@5.9 error

* qt: Fix build error on darwin
2021-05-29 20:53:25 +02:00
Vanessasaurus
6f534acbef adding support for export of private gpg key (#22557)
This PR allows users to `--export`, `--export-secret`, or both to  export GPG keys
from Spack. The docs are updated that include a warning that this usually does not
need to be done.

This addresses an issue brought up in slack, and also represented in #14721.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-05-28 23:32:57 -07:00
Harmen Stoppels
f6febd2ef5 Cache compiler lookup per package (#23988)
Before:

```
$ hyperfine '~/spack/bin/spack -e . build-env rocfft'
Benchmark #1: ~/spack/bin/spack -e . build-env rocfft
  Time (mean ± σ):      1.593 s ±  0.016 s    [User: 1.468 s, System: 0.126 s]
  Range (min … max):    1.575 s …  1.628 s    10 runs
```

After:

```
$ hyperfine '~/spack/bin/spack -e . build-env rocfft'
Benchmark #1: ~/spack/bin/spack -e . build-env rocfft
  Time (mean ± σ):      1.407 s ±  0.020 s    [User: 1.280 s, System: 0.127 s]
  Range (min … max):    1.393 s …  1.455 s    10 runs
```
2021-05-28 21:36:34 +00:00
Greg Becker
7490d63c38 Separable module configuration -- without the bugs this time (#23703)
Currently, module configurations are inconsistent because modulefiles are generated with the configs for the active environment, but are shared among all environments (and spack outside any environment).

This PR fixes that by allowing Spack environments (or other spack config scopes) to define additional sets of modules to generate. Each set of modules can enable either lmod or tcl modules, and contains all of the previously available module configuration. The user defines the name of each module set -- the set configured in Spack by default is named "default", and is the one returned by module manipulation commands in the absence of user intervention.

As part of this change, the module roots configuration moved from the config section to inside each module configuration.

Additionally, it adds a feature that the modulefiles for an environment can be configured to be relative to an environment view rather than the underlying prefix. This will not be enabled by default, as it should only be enabled within an environment and for non-default views constructed with separate projections per-spec.
2021-05-28 14:12:05 -07:00
Desmond Orton
9b99f85abf New Package:py-ucsf-pyem (#23961)
* New Package:py-ucsf-pyem

* Dep additions, eun env deletion

* extraction step change

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-28 13:28:14 -06:00
Ken Raffenetti
3c9c3c678d mpich: add v3.4.2 (#24002) 2021-05-28 12:34:29 -06:00
Desmond Orton
f8223303bb New Package: py-retry-decorator (#23967)
* New Package: py-retry-decorator

* pypi link correction

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-28 18:06:36 +00:00
Scott Wittenburg
91f66ea0a4 Pipelines: reproducible builds (#22887)
### Overview

The goal of this PR is to make gitlab pipeline builds (especially build failures) more reproducible outside of the pipeline environment.  The two key changes here which aim to improve reproducibility are: 

1. Produce a `spack.lock` during pipeline generation which is passed to child jobs via artifacts.  This concretized environment is used both by generated child jobs as well as uploaded as an artifact to be used when reproducing the build locally.
2. In the `spack ci rebuild` command, if a spec needs to be rebuilt from source, do this by generating and running an `install.sh` shell script which is then also uploaded as a job artifact to be run during local reproduction.  

To make it easier to take advantage of improved build reproducibility, this PR also adds a new subcommand, `spack ci reproduce-build`, which, given a url to job artifacts:

- fetches and unzips the job artifacts to a local directory
- looks for the generated pipeline yaml and parses it to find details about the job to reproduce
- attempts to provide a copy of the same version of spack used in the ci build
- if the ci build used a docker image, the command prints a `docker run` command you can run to get an interactive shell for reproducing the build

#### Some highlights

One consequence of this change will be much smaller pipeline yaml files.  By encoding the concrete environment in a `spack.lock` and passing to child jobs via artifacts, we will no longer need to encode the concrete root of each spec and write it into the job variables, greatly reducing the size of the generated pipeline yaml.

Additionally `spack ci rebuild` output (stdout/stderr) is no longer internally redirected to a log file, so job output will appear directly in the gitlab job trace.  With debug logging turned on, this often results in log files getting truncated because they exceed the maximum amount of log output gitlab allows.  If this is a problem, you still have the option to `tee` command output to a file in the within the artifacts directory, as now each generated job exposes a `user_data` directory as an artifact, which you can fill with whatever you want in your custom job scripts.

There are some changes to be aware of in how pipelines should be set up after this PR:

#### Pipeline generation

Because the pipeline generation job now writes a `spack.lock` artifact to be consumed by generated downstream jobs, `spack ci generate` takes a new option `--artifacts-root`, inside which it creates a `concrete_env` directory to place the lockfile.  This artifacts root directory is also where the `user_data` directory will live, in case you want to generate any custom artifacts.  If you do not provide `--artifacts-root`, the default is for it to create a `jobs_scratch_dir` within your `CI_PROJECT_DIR` (a gitlab predefined environment variable) or whatever is your current working directory if that variable isn't set. Here's the diff of the PR testing `.gitlab-ci.yml` taking advantage of the new option:

```
$ git diff develop..pipelines-reproducible-builds share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
diff --git a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
index 579d7b56f3..0247803a30 100644
--- a/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
+++ b/share/spack/gitlab/cloud_pipelines/.gitlab-ci.yml
@@ -28,10 +28,11 @@ default:
     - cd share/spack/gitlab/cloud_pipelines/stacks/${SPACK_CI_STACK_NAME}
     - spack env activate --without-view .
     - spack ci generate --check-index-only
+      --artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
       --output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
   artifacts:
     paths:
-      - "${CI_PROJECT_DIR}/jobs_scratch_dir/cloud-ci-pipeline.yml"
+      - "${CI_PROJECT_DIR}/jobs_scratch_dir"
   tags: ["spack", "public", "medium", "x86_64"]
   interruptible: true
```

Notice how we replaced the specific pointer to the generated pipeline file with its containing folder, the same folder we passed as `--artifacts-root`.  This way anything in that directory (the generated pipeline yaml, as well as the concrete environment directory containing the `spack.lock`) will be uploaded as an artifact and available to the downstream jobs.

#### Rebuild jobs

Rebuild jobs now must activate the concrete environment created by `spack ci generate` and provided via artifacts.  When the pipeline is generated, a directory called `concrete_environment` is created within the artifacts root directory, and this is where the `spack.lock` file is written to be passed to the generated rebuild jobs.  The artifacts root directory can be specified using the `--artifacts-root` option to `spack ci generate`, otherwise, it is assumed to be `$CI_PROJECT_DIR`.  The directory containing the concrete environment files (`spack.yaml` and `spack.lock`) is then passed to generated child jobs via the `SPACK_CONCRETE_ENV_DIR` variable in the generated pipeline yaml file.

When you don't provide custom `script` sections in your `mappings` within the `gitlab-ci` section of your `spack.yaml`, the default behavior of rebuild jobs is now to change into `SPACK_CONCRETE_ENV_DIR` and activate that environment.   If you do provide custom rebuild scripts in your `spack.yaml`, be aware those scripts should do the same thing: assume `SPACK_CONCRETE_ENV_DIR` contains the concretized environment to activate.  No other changes to existing custom rebuild scripts should be required as a result of this PR. 

As mentioned above, one key change made in this PR is the generation of the `install.sh` script by the rebuild jobs, as that same script is both run by the CI rebuild job as well as exported as an artifact to aid in subsequent attempts to reproduce the build outside of CI.  The generated `install.sh` script contains only a single `spack install` command with arguments computed by `spack ci rebuild`.  If the install fails, the job trace in gitlab will contain instructions on how to reproduce the build locally:

```
To reproduce this build locally, run:
  spack ci reproduce-build https://gitlab.next.spack.io/api/v4/projects/7/jobs/240607/artifacts [--working-dir <dir>]
If this project does not have public pipelines, you will need to first:
  export GITLAB_PRIVATE_TOKEN=<generated_token>
... then follow the printed instructions.
```

When run locally, the `spack ci reproduce-build` command shown above will download and process the job artifacts from gitlab, then print out instructions you  can copy-paste to run a local reproducer of the CI job.

This PR includes a few other changes to the way pipelines work, see the documentation on pipelines for more details.

This  PR erelies on 
~- [ ] #23194 to be able to refer to uninstalled specs by DAG hash~
EDIT: that is going to take longer to come to fruition, so for now, we will continue to install specs represented by a concrete `spec.yaml` file on disk.
- [x] #22657 to support install a single spec already present in the active, concrete environment
2021-05-28 09:38:07 -07:00
psakievich
4262de6a32 Add cxxstd to trilinos deps in nalu-wind (#23976)
Co-authored-by: Philip Sakievich <psakiev@sanida.gov>
2021-05-28 09:17:52 -07:00
Glenn Johnson
4171ee6650 armadillo: update and allow build with MKL (#23875) 2021-05-28 17:27:15 +02:00
Olivier Cessenat
0054e9bb08 argon2: ensure libraries are installed under lib (#21805)
Make a standard installation for libs in lib not lib/x86_64-linux-gnu for cmake
2021-05-28 17:26:15 +02:00
Greg Becker
405314195e aocc version detection (#23907) 2021-05-28 10:13:40 -05:00
Desmond Orton
e0fa0145e3 freebayes: add v1.3.5, move to MesonPackage (#23772) 2021-05-28 17:07:52 +02:00
Manuela Kuhn
a9197d6e6d r-boot: add v1.3-28 (#23992) 2021-05-28 14:54:50 +00:00
Adam J. Stewart
2507929308 opencv: add v4.5.2 (#23913) 2021-05-28 16:50:25 +02:00
Seth R. Johnson
a975cad6c6 root: disable afterimage when ~x (#23962) 2021-05-28 10:48:06 -04:00
Manuela Kuhn
27c8aac3b6 r-matrix: add v1.3-3 (#23995) 2021-05-28 14:47:56 +00:00
archxlith
4365ed9205 openfst: add v1.8.1, add "python" variant (#23850) 2021-05-28 16:46:00 +02:00
Manuela Kuhn
fe302893ae r-lattice: add v0.20-44 (#23994) 2021-05-28 14:39:29 +00:00
Seth R. Johnson
d593aa5048 vecgeom: add v1.1.15 (#23973) 2021-05-28 16:36:32 +02:00
Desmond Orton
ebf6f71355 modeltest-ng: add new package (#23765) 2021-05-28 16:35:18 +02:00
Manuela Kuhn
16d4b1ed32 r-mass: add v7.3-54 (#23996) 2021-05-28 14:34:21 +00:00
Manuela Kuhn
f0eb4ca2d8 r-nlme: add v3.1-152 (#23997) 2021-05-28 14:30:37 +00:00
Manuela Kuhn
e06a3b7d45 r-lme4: add v1.1-27 (#23998) 2021-05-28 14:26:21 +00:00
Manuela Kuhn
c2e1e48fdc r-pbkrtest: add v0.5.1 (#23999) 2021-05-28 14:21:21 +00:00
Robert Mijakovic
50ea1f8577 singularity: add v3.7.4 (#23954)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-28 15:56:40 +02:00
Martin Aumüller
0c290ef1c3 embree: add v3.13.0, fix build (#23986)
* embree: allow for compiling with gcc 7.3

strip out unsupported -mprefer-vector-width=256

* embree: fix build on AMD CPUs

The ISAs that embree is compiled for have to match the CPU
features enabled by the compiler, as embree derives theISA
that it compiles for from the latter.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-28 13:50:03 +02:00
Jose E. Roman
1dd6bc2725 SLEPc: add v3.15.1 (#23987) 2021-05-28 13:46:24 +02:00
Brian Van Essen
f1dc49bf42 lbann: add v0.102, add variant to enable address sanitizer. (#23981) 2021-05-28 11:31:24 +02:00
dependabot[bot]
de6e83f566 build(deps): bump actions/cache from 2.1.5 to 2.1.6 (#23983)
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.5 to 2.1.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.5...v2.1.6)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-28 11:24:56 +02:00
Martin Aumüller
6a9e2eeb83 botan: add v2.17.3, v2.18.0 and v2.18.1 (#23984) 2021-05-28 11:24:15 +02:00
Martin Aumüller
c4063b11fe ispc: add v1.15.0 (#23985) 2021-05-28 11:23:46 +02:00
Todd Gamblin
6fc0e8dc9b 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-05-28 00:18:30 -07:00
plamborn
031ef00a1f libhio: added version 1.4.1.6 (#23975) 2021-05-28 00:19:12 -06:00
Ben Corbett
429b71bf57 Fix ZFP cuda build. (#23941) 2021-05-27 21:46:19 -06:00
Adam J. Stewart
850cac5ea3 py-cfgrib: add new version (#23916) 2021-05-28 03:14:44 +00:00
Adam J. Stewart
e2399bcd0e py-geocube: add new package (#23909) 2021-05-27 19:40:54 -05:00
Desmond Orton
b375500134 py-gql: Added version and deps for @0.4.0 (#23927)
* Added version and deps for @0.4.0

* Switched to pypi, fixed deps

* deprecation removal
2021-05-28 00:13:27 +00:00
Desmond Orton
b255c698d5 New Package: py-google-apitools (#23968)
* New Package: py-google-apitools

* proper python constraints

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-28 00:03:15 +00:00
Desmond Orton
53e4f32a31 New package:py-coveralls (#23930)
* New package:py-coveralls

* dep fixes

* added python constraint

* pyyaml version constraint

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-27 17:40:13 -06:00
Desmond Orton
e74d10fd78 py-healpy: added missing dep (#23960)
* py-healpy: added missing dep

* added healpix and pkgconfig
2021-05-27 23:33:03 +00:00
romerojosh
f31bc986a8 Update nvshmem package to use public URL (#23933) 2021-05-27 23:25:12 +02:00
Adam J. Stewart
ef56462867 Add fuse virtual dependency, new macfuse package (#23904) 2021-05-27 23:21:11 +02:00
Greg Becker
b91dff4aaf bugfix: mirror index shows missing packages (#23939)
- [x] add `in_buildcache` field to DB records to indicate what parts of an index, 
       which includes roots and dependencies, are in the buildcache.
- [x] add `mark()` method to DB for setting values on single nodes of the DAG.
2021-05-27 20:38:13 +00:00
Adam J. Stewart
214182529f wget: add new version, fix macOS build (#23921) 2021-05-27 13:23:17 -07:00
Michael Kuhn
dd0bd179c5 gtkplus: add 3.24.29 (#23896)
This also fixes the build with %gcc@11:. According to upstream, the
proper solution is to disable -Werror=array-bounds since the stable
branch will not receive a patch for newer compilers.
2021-05-27 15:17:13 -05:00
Adam J. Stewart
f92b7eca5e py-eccodes: add new package (#23906) 2021-05-27 13:16:44 -07:00
Adam J. Stewart
cc4029daab py-datacube: add new package (#23905)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-27 13:14:59 -07:00
Adam J. Stewart
4e8d87e5cc plumed: add missing m4 dependency (#23957) 2021-05-27 14:45:31 -04:00
Sebastian Schmitt
30547f60d1 Update py-pint and fix runtime dependency on setuptools (#23950)
* Update py-pint and fix runtime dependency on setuptools

Without the runtime dependency on setuptools, importing pint yields:

0.11:

ModuleNotFoundError: No module named 'pkg_resources'

0.17:

ModuleNotFoundError: No module named 'packaging'

* Fix

* Address comments
2021-05-27 17:44:26 +00:00
Desmond Orton
84ad5e444a New package: py-promise (#23936)
* New package: py-promise

* removed test deps, added missing dep
2021-05-27 17:18:46 +00:00
Tamara Dahlgren
cf15c42c1e py-hatchet: update v1.3.0 checksum (#23902) 2021-05-27 09:40:34 -07:00
Adam J. Stewart
d990c93cab py-rasterio: add v1.2.3 (#23945) 2021-05-27 10:28:20 -06:00
Greg Becker
b9a66966a8 only readlink on links (#23948) 2021-05-27 09:20:57 -07:00
Ben Corbett
2b78b04dc5 Chai, LvArray, Umpire and py-scipy: update versions, variants, and or more (#23488)
* LvArray update.

* Style changes.

* Addressing PR comments.

* Bound scipy clang patch.

* Umpire an CHAI boolean fix.

* Changed lvarray python dependency types.
2021-05-27 00:23:37 +00:00
Desmond Orton
b120b51605 New package py-rx@3.2.0 (#23929)
* New package py-rx@3.2.0

* Removal of deps and added python constraint
2021-05-27 00:13:31 +00:00
Desmond Orton
7473388f25 py-graphql-core: switched url to pypi (#23928)
* switched url to use pypi

* Python dep constraint fix
2021-05-27 00:04:00 +00:00
Ben Bergen
c9355ad8a4 Added version 0.11.3 (#23940) 2021-05-26 23:40:42 +00:00
Adam J. Stewart
a40e39f1f4 py-findlibs: add new package (#23908) 2021-05-26 15:04:45 -07:00
Adam J. Stewart
578de4c505 py-rioxarray: add new package (#23910) 2021-05-26 15:00:01 -07:00
Adam J. Stewart
507ce17908 Add clarifying comments for import_modules usage (#23935) 2021-05-26 16:58:40 -05:00
Howard Pritchard
39a3dc4991 ucx: fix sha for 1.10.1 release (#23931)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-05-26 13:37:37 -07:00
Greg Becker
b7f7d901d1 allow whitespace formatting in variant descriptions (#23853) 2021-05-26 14:34:13 -06:00
Adam J. Stewart
f1e0053bf4 py-pint: fix import tests (#23918) 2021-05-26 20:27:05 +00:00
Adam J. Stewart
a9e3f21002 py-applicationinsights: fix import tests (#23914) 2021-05-26 20:23:17 +00:00
Adam J. Stewart
6d2d99d1fe py-azure-identity: fix import tests (#23915) 2021-05-26 20:19:38 +00:00
eugeneswalker
35f7959f54 defaults/cray: use modules.yaml from defaults/linux (#23932) 2021-05-26 20:16:13 +00:00
Adam J. Stewart
db65f458ec py-distributed: fix import tests (#23917) 2021-05-26 20:13:49 +00:00
Adam J. Stewart
9e03284758 py-prompt-toolkit: fix import tests (#23919) 2021-05-26 14:10:20 -06:00
Adam J. Stewart
2421e489e4 py-sqlalchemy: fix import tests (#23920) 2021-05-26 20:02:33 +00:00
lukebroskop
f3e3e5514d CrayPE update for libunwind (#23821) 2021-05-26 20:10:51 +02:00
Todd Gamblin
b596abe037 Switch from heroku to slack.spack.io for slack invite badge (#23924) 2021-05-26 08:07:57 +00:00
Harmen Stoppels
b75ad9f950 mbedtls: make perl a test dependency (#23897) 2021-05-26 09:15:09 +02:00
Vicente Bolea
051bcef697 Adds vtk-m release 1.6.0-rc2 (#23895) 2021-05-25 18:01:17 -07:00
Davide Mancusi
de27e6cbdd root: add CLING_CXX_PATH variable to CMake build (#23888)
Closes issue #23886.
2021-05-25 19:50:21 -05:00
Richarda Butler
1b6b5e1611 AML: Add submodules to develop and master versions (#23903)
Co-authored-by: Kayla Richarda Butler <butler59@quartz1916.llnl.gov>
2021-05-25 17:34:11 -07:00
Adam J. Stewart
dbde984de1 json-c: fix install on macOS (#23912) 2021-05-26 00:05:09 +00:00
Adam J. Stewart
3c587b14ad bash: add v5.1 and patches (#23911) 2021-05-26 00:00:37 +00:00
Harmen Stoppels
f2ce57bf77 Add xxd for hsa-rocr-dev build script (#23855) 2021-05-25 20:58:30 +00:00
Vanessasaurus
3cef5663d8 adding json export for spack blame (#23417)
I would like to be able to export (and save and then load programatically)
spack blame metadata, so this commit adds a spack blame --json argument,
along with developer docs for it

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-05-25 12:40:08 -06:00
Vanessasaurus
b44bb952eb first set of work to allow for saving local results with spack monitor (#23804)
This work will come in two phases. The first here is to allow saving of a local result
with spack monitor, and the second will add a spack monitor command so the user can
do spack monitor upload.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-05-25 11:29:34 -07:00
Hervé Yviquel
e22da8df05 extrae package: add variant for cuda and cupti (#23522) 2021-05-25 10:34:28 -07:00
Robert Cohn
c5389c430b Fix cross references in inteloneapipackage doc (#23744)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-25 09:57:49 -07:00
Seth R. Johnson
a284edb852 ForTrilinos: add smoke test (#23664) 2021-05-25 10:10:19 -06:00
Michael Kuhn
29deb399b4 iwyu: link clang resources in the right location (#23885)
iwyu cannot find clang's headers if they are installed in separate
prefixes, see:
https://github.com/include-what-you-use/include-what-you-use#how-to-install
2021-05-25 09:01:44 -06:00
eugeneswalker
c9b957b71a variorum: unpin hwloc dependency (#23742) 2021-05-25 16:57:30 +02:00
Tamara Dahlgren
929d1de3e5 Stand-alone/Smoke tests: copy cached test sources to test stage (#23713) 2021-05-25 07:24:32 -07:00
Harmen Stoppels
56e7e2a406 MesonPackage: make "default_library" a multi-valued variant (#23540)
Currently if one package does `depends_on('pkg default_library=shared')`
and another does `depends_on('pkg default_library=both')`, you'd get a
concretization error.

With this PR one package can do `depends_on('pkg default_library=shared')` 
and another depends_on('default_library=static'), and it would concretize to 
`pkg default_library=shared,static`

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-25 12:07:00 +02:00
Harmen Stoppels
6d29f0d61f strace: add v5.8-5.12 (#23883) 2021-05-25 12:02:24 +02:00
Harmen Stoppels
cb13ba0fd8 rpm: overhaul package recipe (#23819) 2021-05-25 11:59:19 +02:00
Olivier Cessenat
7c73a786b3 qucs: add new package (#23849)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-25 09:10:52 +02:00
estewart08
cbd46be21b [AMD] - Update rocm-openmp-extras to 4.2.0. (#23870) 2021-05-25 08:58:49 +02:00
Tamara Dahlgren
bed1644d52 Fix packaging guide table's build system links (#23879) 2021-05-25 07:13:00 +02:00
HDF-EOS Tools Information Center
00963149e1 Fix hyperlink formatting in docs (#23846) 2021-05-25 07:09:07 +02:00
Chris White
fb2c3cce6d Add tools and example variants to axom (#23877) 2021-05-25 01:01:58 +00:00
Cyrus Harrison
231490ce9a ascent package: capture spack global flags in host config (#23826) 2021-05-24 16:50:38 -07:00
Cyrus Harrison
9426b26c22 dray package: capture spack global flags in host config (#23827) 2021-05-24 16:43:02 -07:00
Michael Kuhn
bb13ce308a iwyu: add 0.15 (#23876) 2021-05-24 23:28:49 +00:00
Chris Richardson
51a0228aed Fenicsx packages: updates for 0.1.0 releases (#23836) 2021-05-24 15:57:04 -07:00
Desmond Orton
b7bcd31d9b raxml-ng update to version 1.0.2 (#23764)
* Package update to version 1.0.2

* switched submodule boolean to string

* switched from string to bools

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-24 13:54:31 -05:00
Seth R. Johnson
d46e49ef7a SuperLU: add v5.2.2 and cmake tweaks (#23863)
- Changed to cmake package with backward compatibility with older
  makefile
- Removed unused cmake variable 'blas_blas_libs'
- Added new version 5.2.2 which change to external blas variable
- Remove unused tcsh dependency
- Change URL to use git repository for current and future versions
- Add older 4.2 version
- Add conflict for older versions with apple-clang
2021-05-24 13:04:21 +02:00
Andreas Baumbach
b7d0b3ea75 gdk-pixbuf: restrict patch application to meson packages (#23838) 2021-05-24 09:36:12 +02:00
Andreas Baumbach
4153c2e319 libedit: add missing pkgconfig dependency (#23839) 2021-05-24 09:35:24 +02:00
Andreas Baumbach
7f56394af9 ncdu: add v1.15.1 (#23840) 2021-05-24 09:34:45 +02:00
Valentin Volkl
b6416376db alpaka: add new package (#23576) 2021-05-24 09:28:49 +02:00
Hang Yan
e952aa890e chapel: add versions up to 1.24.1 (#23365) 2021-05-24 09:27:42 +02:00
Robert Mijakovic
9a185b1d0b ucx: add v1.10.1 (#23858)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-24 09:16:08 +02:00
Filippo Spiga
b793422e12 CUDA: add v11.3.1 (#23864) 2021-05-24 08:48:44 +02:00
Valentin Volkl
27e9f02d32 chaplin: add new package (#23866) 2021-05-24 08:47:52 +02:00
Vanessasaurus
ec00d68ba1 updating debugedit to be built from its production repository (#23851)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-05-22 21:27:32 -07:00
Todd Gamblin
d45674c1cb Spack can Use RHEL8's platform-python if nothing else is available. (#23857)
This adds RHEL8's `/usr/libexec/platform-python` to Spack's list of preferred
pythons. It will only be used if no other `python` is available in the `PATH`.

We have been testing with this python for a while now, and it seems to do all
that we need. If Spack one day isn't able to work with it, we'll take it out,
but for now it is useful to allow Spack to be used on RHEL8 without a dedicated
`python` installation.
2021-05-22 15:35:07 -07:00
Todd Gamblin
17473a08ff Merge tag 'v0.16.2' into develop 2021-05-22 15:22:34 -07:00
Todd Gamblin
f1fe03cd59 Update CHANGELOG and release version for v0.16.2 2021-05-22 14:57:30 -07:00
Massimiliano Culpo
80f0c78f00 Style fixes for v0.16.2 release 2021-05-22 14:57:30 -07:00
Todd Gamblin
818664d55a performance: speed up existence checks in packages (#23661)
Spack doesn't require users to manually index their repos; it reindexes the indexes automatically when things change. To determine when to do this, it has to `stat()` all package files in each repository to make sure that indexes up to date with packages. We currently index virtual providers, patches by sha256, and tags on packages.

When this was originally implemented, we ran the checker all the time, at startup, but that was slow (see #7587). But we didn't go far enough -- it still consults the checker and does all the stat operations just to see if a package exists (`Repo.exists()`).  That might've been a wash in 2018, but as the number of packages has grown, it's gotten slower -- checking 5k packages is expensive and users see this for small operations.  It's a win now to make `Repo.exists()` check files directly.

**Fix:**

This PR does a number of things to speed up `spack load`, `spack info`, and other commands:

- [x] Make `Repo.exists()` check files directly again with `os.path.exists()` (this is the big one)
- [x] Refactor `Spec.satisfies()` so that a checking for virtual packages only happens if needed
      (avoids some calls to exists())
- [x] Avoid calling `Repo.exists(spec)` in `Repo.get()`. `Repo.get()` will ultimately try to load
      a `package.py` file anyway; we can let the failure to load it indicate that the package doesn't
      exist, and avoid another call to exists().
- [x] Fix up some comments in spec parsing
- [x] Call `UnknownPackageError` more consistently in `repo.py`
2021-05-22 14:57:30 -07:00
Massimiliano Culpo
76c5a02125 ASP-based solve: minimize compiler mismatches (#23016)
fixes #22718

Instead of trying to maximize the number of
matches (preferred behavior), try to minimize
the number of mismatches (unwanted behavior).
2021-05-22 14:57:30 -07:00
Drew Whitehouse
0fd94d4486 new package for openvdb (#23581) 2021-05-22 23:05:10 +02:00
Olivier Cessenat
fb156ae4bc New package: sparskit (#23848) 2021-05-22 16:25:28 -04:00
Massimiliano Culpo
30dd61264a ASP-based solver: no intermediate package for concretizing together (#23307)
The ASP-based solver can natively manage cases where more than one root spec is given, and is able to concretize all the roots together (ensuring one spec per package at most).

Modifications:
- [x] When concretising together an environment the ASP-based solver calls directly its `solve` method rather than constructing a temporary fake root package.
2021-05-22 11:51:21 -07:00
Massimiliano Culpo
13fed376f2 Import hooks using Python's built-in machinery (#23288)
The function we coded in Spack to load Python modules with arbitrary
names from a file seem to have issues with local imports. For
loading hooks though it is unnecessary to use such functions, since
we don't care to bind a custom name to a module nor we have to load
it from an unknown location.

This PR thus modifies spack.hook in the following ways:

- Use __import__ instead of spack.util.imp.load_source (this
  addresses #20005)
- Sync module docstring with all the hooks we have
- Avoid using memoization in a module function
- Marked with a leading underscore all the names that are supposed
  to stay local
2021-05-22 11:51:21 -07:00
Harmen Stoppels
fb27c7ad0c spack location: fix usage without args (#22755) 2021-05-22 11:51:21 -07:00
Harmen Stoppels
4a7581eda3 Add "spack [cd|location] --source-dir" (#22321) 2021-05-22 11:51:20 -07:00
Massimiliano Culpo
0d173bb32b Use Python's built-in machinery to import compilers (#23290) 2021-05-22 11:51:20 -07:00
Massimiliano Culpo
8a7bfe97c3 ASP-based solver: suppress warnings when constructing facts (#23090)
fixes #22786

Trying to get optimization flags for a specific target from
a compiler may trigger warnings. In the context of constructing
facts for the ASP-based solver we don't want to show these
warnings to the user, so here we simply ignore them.
2021-05-22 11:51:20 -07:00
Peter Scheibel
f1f94ad31a Externals with merged prefixes (#22653)
We remove system paths from search variables like PATH and 
from -L options because they may contain many packages and
could interfere with Spack-built packages. External packages 
may be installed to prefixes that are not actually system paths 
but are still "merged" in the sense that many other packages are
installed there. To avoid conflicts, this PR places all external
packages at the end of search paths.
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
2655e21bd0 ASP-based solver: assign OS correctly with inheritance from parent (#22896)
fixes #22871

When in presence of multiple choices for the operating system
we were lacking a rule to derive the node OS if it was
inherited.
2021-05-22 11:51:20 -07:00
Peter Scheibel
5546b22c70 "spack build-env" searches env for relevant spec (#21642)
If you install packages using spack install in an environment with
complex spec constraints, and the install fails, you may want to
test out the build using spack build-env; one issue (particularly
if you use concretize: together) is that it may be hard to pass
the appropriate spec that matches what the environment is
attempting to install.

This updates the build-env command to default to pulling a matching
spec from the environment rather than concretizing what the user
provides on the command line independently.

This makes a similar change to spack cd.

If the user-provided spec matches multiple specs in the environment,
then these commands will now report an error and display all
matching specs (to help the user specify).

Co-authored-by: Gregory Becker <becker33@llnl.gov>
2021-05-22 11:51:20 -07:00
Adam J. Stewart
2496c7b514 Remove erroneous warnings about quotes for from_source_file (#22767) 2021-05-22 11:51:20 -07:00
Massimiliano Culpo
43cea1b354 Bootstrapping: swap store before configuration (#22631)
fixes #22294

A combination of the swapping order for global variables and
the fact that most of them are lazily evaluated resulted in
custom install tree not being taken into account if clingo
had to be bootstrapped.

This commit fixes that particular issue, but a broader refactor
may be needed to ensure that similar situations won't affect us
in the future.
2021-05-22 11:51:20 -07:00
Harmen Stoppels
cbd55332e3 Bootstrap: add _builtin config scope (#22610)
(cherry picked from commit a37c916dff)
2021-05-22 11:51:20 -07:00
Harmen Stoppels
c8a10e4910 Fix clearing cache of InternalConfigScope (#22609)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-22 11:51:20 -07:00
Cyrus Harrison
a5213dabb1 bugfix for active when pkg is already active error (#22587)
* bugfix for active when pkg is already active error

Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
6e714808fa Enforce uniqueness of the version_weight atom per node
fixes #22565

This change enforces the uniqueness of the version_weight
atom per node(Package) in the DAG. It does so by applying
FTSE and adding an extra layer of indirection with the
possible_version_weight/2 atom.

Before this change it may have happened that for the same
node two different version_weight/2 were in the answer set,
each of which referred to a different spec with the same
version, and their weights would sum up.

This lead to unexpected result like preferring to build a
new version of an external if the external version was
older.
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
9f99e8ad64 Externals are preferred even when they have non-default variant values
fixes #22596

Variants which are specified in an external spec are not
scored negatively if they encode a non-default value.
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
18880a668b clingo: modify recipe for bootstrapping (#22354)
* clingo: modify recipe for bootstrapping

Modifications:
- clingo builds with shared Python only if ^python+shared
- avoid building the clingo app for bootstrapping
- don't link to libpython when bootstrapping

* Remove option that breaks on linux

* Give more hints for the current Python

* Disable CLINGO_BUILD_PY_SHARED for bootstrapping

* bootstrapping: try to detect the current python from std library

This is much faster than calling external executables

* Fix compatibility with Python 2.6

* Give hints on which compiler and OS to use when bootstrapping

This change hints which compiler to use for bootstrapping clingo
(either GCC or Apple Clang on MacOS). On Cray platforms it also
hints to build for the frontend system, where software is meant
to be installed.

* Use spec_for_current_python to constrain module requirement

(cherry picked from commit d5fa509b07)
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
e7494b627b ASP-based solver: model disjoint sets for multivalued variants (#22534)
* ASP-based solver: avoid adding values to variants when they're set

fixes #22533
fixes #21911

Added a rule that prevents any value to slip in a variant when the
variant is set explicitly. This is relevant for multi-valued variants,
in particular for those that have disjoint sets of values.

* Ensure disjoint sets have a clear semantics for external packages
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
b11dd0478a Make SingleFileScope able to repopulate the cache after clearing it (#22559)
fixes #22547

SingleFileScope was not able to repopulate its cache before this
change. This was affecting the configuration seen by environments
using clingo bootstrapped from sources, since the bootstrapping
operation involved a few cache invalidation for config files.
2021-05-22 11:51:20 -07:00
Rémi Lacroix
31a07f9bc4 Channelflow: Fix the package. (#22483)
A search and replace went wrong in 2264e30d99.

Thanks to @wadudmiah who reported this issue.
2021-05-22 11:51:20 -07:00
Harmen Stoppels
61e619bb27 spack location: bugfix for out of source build dirs (#22348) 2021-05-22 11:51:20 -07:00
Todd Gamblin
4d148a430e bugfix: allow imposed constraints to be overridden in special cases
In most cases, we want condition_holds(ID) to imply any imposed
constraints associated with the ID. However, the dependency relationship
in Spack is special because it's "extra" conditional -- a dependency
*condition* may hold, but we have decided that externals will not have
dependencies, so we need a way to avoid having imposed constraints appear
for nodes that don't exist.

This introduces a new rule that says that constraints are imposed
*unless* we define `do_not_impose(ID)`. This allows rules like
dependencies, which rely on more than just spec conditions, to cancel
imposed constraints.

We add one special case for this: dependencies of externals.
2021-05-22 11:51:20 -07:00
Todd Gamblin
9717e0244f bugfix: do not generate dep conditions when no dependency
We only consider test dependencies some of the time. Some packages are
*only* test dependencies. Spack's algorithm was previously generating
dependency conditions that could hold, *even* if there was no potential
dependency type.

- [x] change asp.py so that this can't happen -- we now only generate
      dependency types for possible dependencies.
2021-05-22 11:51:20 -07:00
Todd Gamblin
a823cffc40 concretizer: unify logic for spec conditionals
This builds on #20638 by unifying all the places in the concretizer where
things are conditional on specs. Previously, we duplicated a common spec
conditional pattern for dependencies, virtual providers, conflicts, and
externals. That was introduced in #20423 and refined in #20507, and
roughly looked as follows.

Given some directives in a package like:

```python
depends_on("foo@1.0+bar", when="@2.0+variant")
provides("mpi@2:", when="@1.9:")
```

We handled the `@2.0+variant` and `@1.9:` parts by generating generated
`dependency_condition()`, `required_dependency_condition()`, and
`imposed_dependency_condition()` facts to trigger rules like this:

```prolog
dependency_conditions_hold(ID, Parent, Dependency) :-
  attr(Name, Arg1)             : required_dependency_condition(ID, Name, Arg1);
  attr(Name, Arg1, Arg2)       : required_dependency_condition(ID, Name, Arg1, Arg2);
  attr(Name, Arg1, Arg2, Arg3) : required_dependency_condition(ID, Name, Arg1, Arg2, Arg3);
  dependency_condition(ID, Parent, Dependency);
  node(Parent).
```

And we handled `foo@1.0+bar` and `mpi@2:` parts ("imposed constraints")
like this:

```prolog
attr(Name, Arg1, Arg2) :-
  dependency_conditions_hold(ID, Package, Dependency),
  imposed_dependency_condition(ID, Name, Arg1, Arg2).

attr(Name, Arg1, Arg2, Arg3) :-
  dependency_conditions_hold(ID, Package, Dependency),
  imposed_dependency_condition(ID, Name, Arg1, Arg2, Arg3).
```

These rules were repeated with different input predicates for
requirements (e.g., `required_dependency_condition`) and imposed
constraints (e.g., `imposed_dependency_condition`) throughout
`concretize.lp`. In #20638 it got to be a bit confusing, because we used
the same `dependency_condition_holds` predicate to impose constraints on
conditional dependencies and virtual providers. So, even though the
pattern was repeated, some of the conditional rules were conjoined in a
weird way.

Instead of repeating this pattern everywhere, we now have *one* set of
consolidated rules for conditions:

```prolog
condition_holds(ID) :-
  condition(ID);
  attr(Name, A1)         : condition_requirement(ID, Name, A1);
  attr(Name, A1, A2)     : condition_requirement(ID, Name, A1, A2);
  attr(Name, A1, A2, A3) : condition_requirement(ID, Name, A1, A2, A3).

attr(Name, A1)         :- condition_holds(ID), imposed_constraint(ID, Name, A1).
attr(Name, A1, A2)     :- condition_holds(ID), imposed_constraint(ID, Name, A1, A2).
attr(Name, A1, A2, A3) :- condition_holds(ID), imposed_constraint(ID, Name, A1, A2, A3).
```

this allows us to use `condition(ID)` and `condition_holds(ID)` to
encapsulate the conditional logic on specs in all the scenarios where we
need it. Instead of defining predicates for the requirements and imposed
constraints, we generate the condition inputs with generic facts, and
define predicates to associate the condition ID with a particular
scenario. So, now, the generated facts for a condition look like this:

```prolog
condition(121).
condition_requirement(121,"node","cairo").
condition_requirement(121,"variant_value","cairo","fc","True").
imposed_constraint(121,"version_satisfies","fontconfig","2.10.91:").
dependency_condition(121,"cairo","fontconfig").
dependency_type(121,"build").
dependency_type(121,"link").
```

The requirements and imposed constraints are generic, and we associate
them with their meaning via the id. Here, `dependency_condition(121,
"cairo", "fontconfig")` tells us that condition 121 has to do with the
dependency of `cairo` on `fontconfig`, and the conditional dependency
rules just become:

```prolog
dependency_holds(Package, Dependency, Type) :-
  dependency_condition(ID, Package, Dependency),
  dependency_type(ID, Type),
  condition_holds(ID).
```

Dependencies, virtuals, conflicts, and externals all now use similar
patterns, and the logic for generating condition facts is common to all
of them on the python side, as well. The more specific routines like
`package_dependencies_rules` just call `self.condition(...)` to get an id
and generate requirements and imposed constraints, then they generate
their extra facts with the returned id, like this:

```python
    def package_dependencies_rules(self, pkg, tests):
        """Translate 'depends_on' directives into ASP logic."""
        for _, conditions in sorted(pkg.dependencies.items()):
            for cond, dep in sorted(conditions.items()):
                condition_id = self.condition(cond, dep.spec, pkg.name)  # create a condition and get its id
                self.gen.fact(fn.dependency_condition(  # associate specifics about the dependency w/the id
                    condition_id, pkg.name, dep.spec.name
                ))
        # etc.
```

- [x] unify generation and logic for conditions
- [x] use unified logic for dependencies
- [x] use unified logic for virtuals
- [x] use unified logic for conflicts
- [x] use unified logic for externals

LocalWords:  concretizer mpi attr Arg concretize lp cairo fc fontconfig
LocalWords:  virtuals def pkg cond dep fn refactor github py
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
f1c7402c64 bootstrap: account for platform specific configuration scopes (#22489)
This change accounts for platform specific configuration scopes,
like ~/.spack/linux, during bootstrapping. These scopes were
previously not accounted for and that was causing issues e.g.
when searching for compilers.

(cherry picked from commit 413c422e53)
2021-05-22 11:51:20 -07:00
Massimiliano Culpo
16f7a02654 Bootstrap clingo from sources (#21446)
* Allow the bootstrapping of clingo from sources

Allow python builds with system python as external
for MacOS

* Ensure consistent configuration when bootstrapping clingo

This commit uses context managers to ensure we can
bootstrap clingo using a consistent configuration
regardless of the use case being managed.

* Github actions: test clingo with bootstrapping from sources

* Add command to inspect and clean the bootstrap store

 Prevent users to set the install tree root to the bootstrap store

* clingo: documented how to bootstrap from sources

Co-authored-by: Gregory Becker <becker33@llnl.gov>
(cherry picked from commit 10e9e142b7)
2021-05-22 11:50:59 -07:00
Seth R. Johnson
d8cbd37aaa Fix makefile filter suggestions (#23856)
Bash has a builtin `fc` that will override the compiler if you use "fc",
so it's better to use the full spack-supplied compiler path.

Additionally, the filter regex in the docs was wrong: it replaced the
entire assignment operation with the RHS.
2021-05-22 18:47:43 +00:00
Valentin Volkl
4e6a6e4f27 py-kubernetes: add new package (#23843)
* py-kubernetes: add new package

* Apply suggestions from code review

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

* py-kubernetes: remove alpha/beta versions, fix dependency types

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-22 18:41:58 +00:00
Glenn Johnson
1000deb5f9 Update abinit package (#23670)
This PR updates the abinit package. The underlying build system has
several changes from previous versions, which are reflected in the
package recipe.

- added version 9.4.2
- removed commented out code
- add new libxml2 variant, with dependency and conflicts
- add dependency on atompaw
- depend on fftw-api when ~openmp
  This allows other fftw implementations to be used. This PR adds MKL.
- depend on netcdf explicitly
- remove hdf5 variant as hdf5 is required
- only use wannier90 if +mpi as the wannier90 spack package is MPI only
- allow newer versions of libxc for abinit 9
- split configure options for versions before and after abinit 9
- always use MPI compiler wrappers
- add patch to remove march settings for version 9
- Set conflict for fftw~openmp if abinit+openmp
  This allows the virtual fftw-api to be used for the dependency. If fftw
  is the fftw-api provider then bail if fftw~openmp is set when
  abinit+openmp is used.
- Set conflicts for +openmp and mkl
- Be explicit about +mkl for intel-parallel-studio
- Add TODO entry for switching conflicts/depends_on logic
2021-05-22 15:35:58 +02:00
Richarda Butler
cd61b2352d Slepc: Add E4S testsuite smoke test (#21600) 2021-05-21 15:07:21 -07:00
Dan Bonachea
21fd449a03 upcxx: Install the example files (#23832)
This installs the example source files into $prefix/example, for use by the E4S Testsuite and other end users.

Also fixes a harmless copy/paste error.
2021-05-21 11:51:46 -07:00
Massimiliano Culpo
6c1b348d91 clingo-bootstrap: account for cray platform (#22460)
(cherry picked from commit 138312efab)
2021-05-21 19:42:12 +02:00
Maxim Belkin
68ef6fce92 clingo: fix typo (#22444) 2021-05-21 19:42:12 +02:00
Massimiliano Culpo
0b5c5b8068 clingo: added a package with option for bootstrapping clingo (#20652)
* clingo/clingo-bootstrap: added a package with option for bootstrapping clingo

package builds in Release mode
uses GCC options to link libstdc++ and libgcc statically

* clingo-bootstrap: apple-clang options to bootstrap statically on darwin

* clingo: fix the path of the Python interpreter

In case multiple Python versions are in the same prefix
(e.g. when clingo is built against an external Python),
it may happen that the Python used by CMake does not
match the corresponding node in the current spec.

This is fixed here by defining "Python_EXECUTABLE"
properly as a hint to CMake.

* clingo: the commit for "spack" version has been updated.
2021-05-21 19:42:12 +02:00
Adam J. Stewart
add339cbfe Clingo: fix missing import (#21364) 2021-05-21 19:42:12 +02:00
Todd Gamblin
316c292685 clingo: prefer master branch
Most people installing `clingo` with Spack are going to be doing it to
use the new concretizer, and that requires the `master` branch.

- [x] make `master` the default so we don't have to keep telling people
  to install `clingo@master`. We'll update the preferred version when
  there's a new release.
2021-05-21 19:42:12 +02:00
Andreas Baumbach
bd9929f9dc make spack fetch work with environments (#19166)
* make `spack fetch` work with environments
* previously: `spack fetch` required the explicit statement of
              the specs to be fetched, even when in an environment
* now: if there is no spec(s) provided to `spack fetch` we check
       if an environment is active and if yes we fetch all
       uninstalled specs.
2021-05-21 19:42:12 +02:00
Mansour Moufid
f8c2e1fc97 libffi: set target triplet to aarch64-apple-darwin on Mac M1. (#23750) 2021-05-21 19:17:58 +02:00
Sebastian Schmitt
6b1849b663 Update pylint to 2.8.2 (#23446)
* Update pylint to 2.8.2

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

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

* Address comments

* Update

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-21 12:13:33 -05:00
Andreas Baumbach
4d9607857b py-notebook: add older versions (#23720)
Change-Id: I34d1e14c071f91d9a451740abcbcc31701a47830
2021-05-21 16:36:00 +00:00
Andreas Baumbach
38fe1c55b5 py-lazy-object-proxy: add missing py-setuptools-scm dependency (#23842)
Change-Id: I76392841a9973aa7b5ec347b0405a78635989a79
2021-05-21 11:23:16 -05:00
Andreas Baumbach
d25026677d New package: py-pybind11-stubgen (#23732)
* New package: py-pybind11-stubgen

Change-Id: I865b92e08ecefa6eb1327ee0166544fd4ae22953

* fixup

Change-Id: I6030cebecce229d02ab1a20fe6fa501eec22b804
2021-05-21 11:17:12 -05:00
Massimiliano Culpo
2a5f46d8d3 Added a context manager to swap architectures
This solves a few FIXMEs in conftest.py, where
we were manipulating globals and seeing side
effects prior to registering fixtures.

This commit solves the FIXMEs, but introduces
a performance regression on tests that may need
to be investigated

(cherry picked from commit 4558dc06e2)
2021-05-21 18:06:49 +02:00
Greg Becker
095ace9028 bugfix for target adjustments on target ranges (#20537)
(cherry picked from commit 61c1b71d38)
2021-05-21 18:05:42 +02:00
Massimiliano Culpo
f30fc6cd33 Move context manager to swap the current configuration into spack.config
The context manager can be used to swap the current
configuration temporarily, for any use case that may need it.

(cherry picked from commit 553d37a6d6)
2021-05-21 18:00:05 +02:00
Massimiliano Culpo
4e5e1e8f35 Move context manager to swap the current store into spack.store
The context manager can be used to swap the current
store temporarily, for any use case that may need it.

(cherry picked from commit cb2c233a97)
2021-05-21 17:59:57 +02:00
Massimiliano Culpo
0678d5df90 repo: generalize "swap" context manager to also accept paths
The method is now called "use_repositories" and
makes it clear in the docstring that it accepts
as arguments either Repo objects or paths.

Since there was some duplication between this
contextmanager and "use_repo" in the testing framework,
remove the latter and use spack.repo.use_repositories
across the entire code base.

Make a few adjustment to MockPackageMultiRepo, since it was
stating in the docstring that it was supposed to mock
spack.repo.Repo and was instead mocking spack.repo.RepoPath.

(cherry picked from commit 1a8963b0f4)
2021-05-21 17:59:50 +02:00
Anton Kozhevnikov
a586fa6dd3 sirius: update to the latest version (#23835) 2021-05-21 15:04:35 +00:00
iarspider
9c179c7d0b Add new versions of giflib (#23588)
giflib 5.20+ no longer uses autotools

Co-authored-by: Ivan Razumov <ivan.razumov@cern.ch>
2021-05-21 07:19:22 -06:00
Massimiliano Culpo
2a4d2f905c Run clingo-cffi tests in a container (#21913)
There clingo-cffi job has two issues to be solved:

1. It uses the default concretizer
2. It requires a package from https://test.pypi.org/simple/

The former can be fixed by setting the SPACK_TEST_SOLVER
environment variable to "clingo".

The latter though requires clingo-cffi to be pushed to a
more stable package index (since https://test.pypi.org/simple/
is meant as a scratch version of PyPI that can be wiped at
any time).

For the time being run the tests in a container. Switch back to
PyPI whenever a new official version of clingo will be released.
2021-05-21 15:09:08 +02:00
Josh Essman
14e179398f Updates to support clingo-cffi (#20657)
* Support clingo when used with cffi

Clingo recently merged in a new Python module option based on cffi.

Compatibility with this module requires a few changes to spack - it does not automatically convert strings/ints/etc to Symbol and clingo.Symbol.string throws on failure.

manually convert str/int to clingo.Symbol types
catch stringify exceptions
add job for clingo-cffi to Spack CI
switch to potassco-vendored wheel for clingo-cffi CI
on_unsat argument when cffi

(cherry picked from commit 93ed1a410c)
2021-05-21 15:09:08 +02:00
Massimiliano Culpo
8d13193434 Improve error message for inconsistencies in package.py (#21811)
* Improve error message for inconsistencies in package.py

Sometimes directives refer to variants that do not exist.
Make it such that:

1. The name of the variant
2. The name of the package which is supposed to have
   such variant
3. The name of the package making this assumption

are all printed in the error message for easier debugging.

* Add unit tests

(cherry picked from commit 7226bd64dc)
2021-05-21 15:09:08 +02:00
Massimiliano Culpo
94bb37c107 concretizer: simplify "fact" method (#21148)
The "fact" method before was dealing with multiple facts
registered per call, which was used when we were emitting
grounded rules from knowledge of the problem instance.

Now that the encoding is changed we can simplify the method
to deal only with a single fact per call.

(cherry picked from commit ba42c36f00)
2021-05-21 15:09:04 +02:00
Adam J. Stewart
a59fcd60f5 Python 3.10 support: collections.abc (#20441)
(cherry picked from commit 40a40e0265)
2021-05-21 14:55:18 +02:00
Hang Yan
e42b27de7e thrust: update repo and add new versions (#23364) 2021-05-21 09:50:33 +02:00
Hang Yan
586c08fb86 cub: update repo and add new versions (#23363) 2021-05-21 09:49:37 +02:00
Glenn Johnson
71b9e67b3c Modification to R environment (#23623)
* Modification to R environment

This PR modifies how the R environmnet is presented, and fixes
installing the standalone Rmath library.

- The Rmath build and install methods are combined into one
- Set parallel=False when installing Rmath
- remove the run environment that set up variables for libraries and
  headers that are not really needed, and pollute the environment.

* Add setup_run_environment back

- Add back the setup_run_environment with LD_LIBRARY_PATH and
  PKG_CONFIG_PATH.
- Adjust documentation to reflect the current code.
2021-05-21 09:34:15 +02:00
Olivier Cessenat
3dfb61116d openblas: update Intel patch directive (#23786) 2021-05-21 09:32:40 +02:00
Olivier Cessenat
5e782f6a23 gsl: update external-cblas patch directive (#23787) 2021-05-21 09:31:31 +02:00
Adam J. Stewart
2d69f63a9c ghostscript: add tesseract variant (#23794) 2021-05-21 09:22:03 +02:00
Cameron Rutherford
63ea0c8865 exago: enforcing PETSc version < 3.15 (#23774) 2021-05-21 09:20:58 +02:00
Adam J. Stewart
72b6014861 tk: add new version, add macOS patch (#23825) 2021-05-21 09:04:50 +02:00
arjun-raj-kuppala
b8fc1094ff rdc: add v4.2.0 (#23829) 2021-05-21 08:57:40 +02:00
Dan Bonachea
1242f10d11 Update the GASNet package (#23796)
The previous `gasnet` spack package was not vetted/approved by the GASNet library maintainers. This one is.

Notably adds build-time testing and smoke-testing.

Convert network variants into a multi-valued `conduits` variant has the minor advantage of enabling a concise `conduits=none` spec, but the major drawback that it degrades the `spack info gasnet` output.
2021-05-20 23:19:21 -07:00
Glenn Johnson
6e378102fd New package: py-reindent (#23828) 2021-05-20 21:27:59 -05:00
Seth R. Johnson
d2178fb47b swig: add smoke tests (#23662) 2021-05-20 17:00:20 -07:00
Olivier Cessenat
3f184b5874 New Package: visit-silo (#22907)
* New Package: visit-silo
* New Package: visit-$n as an extension to VisIt
* New Package: visit-$n only as an extension to VisIt
2021-05-20 15:20:49 -07:00
Olivier Cessenat
12dbae3b45 New Package: visit-cgns (#22905)
* New Package: visit-cgns
* visit-cgns: extends visit and modifies VISIT_PLUGIN_DIR with a trick
2021-05-20 15:20:19 -07:00
Massimiliano Culpo
4c4a584a9c spack: update archspec
This fixes the detection of Apple M1 and adds
virtual levels for x86_64 architectures
2021-05-20 14:56:04 -07:00
Ben Darwin
fcb8942c88 minc-toolkit: new package (#23818) 2021-05-20 21:36:06 +00:00
Cyrus Harrison
30991cd9cd add ascent 0.7.1 release (#23823) 2021-05-20 14:15:10 -07:00
Valentin Volkl
b27ccd524e versions: do not drop 2.0.X if 2.0 is a declared version in the package (#23217) 2021-05-20 19:16:46 +00:00
Cyrus Harrison
1d10245fd4 dray package: add version 0.1.6 (#23792) 2021-05-20 12:04:05 -07:00
Adam J. Stewart
ea5b5a6d3f py-torch: add patch to build on systems with glibc<2.12 (#23806) 2021-05-20 20:16:50 +02:00
Olivier Cessenat
f66f7faee1 opencascade: add v7.4.0p2 and v7.5.2 (#23807) 2021-05-20 20:16:29 +02:00
Ben Darwin
ef12b0cb8f ants: add v2.3.5 (#23752) 2021-05-20 17:01:21 +00:00
Valentin Volkl
7c8b5a4e3a py-awkward: add version 1.2.3 (#23808)
* dlpack: add tagged versions

* py-pybind11: add missing test dependency

* py-awkward: add version 1.2.3
2021-05-20 10:28:57 -06:00
Andreas Baumbach
2716791c7d py-lazyarray: add new version 0.3.2 (#23700)
* py-lazyarray: add new version 0.3.2

Change-Id: Ie8a40f3ff1fe7477e27f6085b9ad6673395258b2

* fixup dependencies

Change-Id: I4b2fb7a0abb462f8df74c383c67517065cd95b67

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-20 11:28:23 -05:00
Harmen Stoppels
3368e06bc6 gnupg: create a gpg2 symlink on install (#23789) 2021-05-20 18:28:13 +02:00
Andreas Baumbach
ed4de5a688 py-py-cpuinfo: add v6.0.0 and v8.0.0 (#23721) 2021-05-20 17:59:33 +02:00
Chris White
7055846ca1 Axom: Small updates and a new version (#23803)
* Tweak SCR variant, Add 0.5.0, Move flag to flag handler, Add new conduit/axom conflict

* flake
2021-05-20 08:26:33 -07:00
Andreas Baumbach
cf20ee0893 vim: add new version (#23730) 2021-05-20 15:08:53 +00:00
Harmen Stoppels
5846079028 Cray: fix extracting paths from module files (#23472)
Co-authored-by: Tiziano Müller <tm@dev-zero.ch>
2021-05-20 14:35:35 +02:00
arjun-raj-kuppala
6d42be5739 AMD ROCm 4.2.0: Bump up rocm recipes part 2 (#23779)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-05-20 10:58:55 +00:00
Sreenivasa Murthy Kolam
b57b473e51 bump up version for rocm-4.2.0 release (#23795) 2021-05-20 04:55:16 -06:00
Sreenivasa Murthy Kolam
fec9e5c7bd bump up the version for rocm-4.2.0 release (#23778) 2021-05-20 12:49:40 +02:00
Olivier Cessenat
bd47eaf0f8 visit: make it extendable for plugins 2021-05-20 00:16:03 -07:00
Jon Rood
6f75c6f3fa findutils: use homebrew trick to build findutils 4.8.0 with apple-clang (#23801)
* Use homebrew trick to build findutils 4.8.0 with apple-clang.

* Simplify.
2021-05-19 21:58:07 -05:00
Andreas Baumbach
d2e22d7fe4 py-pluggy: add versions 0.9.0 and 0.8.1 (#23719) 2021-05-19 15:15:13 -07:00
yellowhat
9784b1b0e9 fio: add 3.26 (#23788) 2021-05-19 16:07:17 -06:00
Andreas Baumbach
a3be77d02e py-mako: add version 1.1.4 (#23718) 2021-05-19 14:37:15 -07:00
Cyrus Harrison
7febe23ebc add vtk-h 0.7.1 release (#23791) 2021-05-19 14:05:24 -07:00
Cyrus Harrison
32b9bea06a add conduit 0.7.2 release (#23797) 2021-05-19 14:04:29 -07:00
plamborn
d17783ff70 libhio: add 1.4.15 (#23708)
adding checksum for new 1.4.1.5 version of libhio
2021-05-19 14:37:17 -06:00
Tamara Dahlgren
8c64a1cda6 umpire: preliminary stand-alone test simplification (#23627) 2021-05-19 13:28:30 -07:00
Andreas Baumbach
0a7a23068a py-setuptools: add older version 41.3.0 (#23725)
Change-Id: I0416a66b523472151d73433a12d38a5b2b225c69
2021-05-19 20:06:43 +00:00
Desmond Orton
e718a871f3 Updated Archives links for 3.X (#23763) 2021-05-19 14:24:57 -05:00
Desmond Orton
a0af8c9c65 libdeflate: new package (#23762)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-19 21:21:45 +02:00
Andreas Baumbach
944be7a568 py-checkm-genome: fix backportsdependency (#23690) 2021-05-19 12:21:10 -07:00
Andreas Baumbach
e7b11c3098 cquery package: patch for gcc@10: (#23679) 2021-05-19 12:15:02 -07:00
Andreas Baumbach
f3c3fc7493 new package: py-batchspawner (#23688)
* new package: py-batchspawner

Change-Id: I508bad7ba7f1fc32c2f6c0bfccf35d864cf47ced

* fixup

Change-Id: If183933ce40a8d12214ea24acc683cb046fcfbcb

* fix broken version

Change-Id: Ie4dd8d18465877cd8f9cb862112af37d85b1c30f

* fixup license

Change-Id: I51d92a6d229f6a6b56eea6e53c65ed31fe59f6af

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-05-19 14:12:53 -05:00
Andreas Baumbach
142c85fe22 py-git-review add version 1.27.0 (#23693)
* py-git-review add version 1.27.0

Change-Id: Ibf2c52009b8d218561a385a592a3fa1266305212

* fixup dependencies and add version 2:

Change-Id: I94e974158afba61d102b04a78634cc276881783c

* fixup

Change-Id: I05d8aab0ddb8c7bc18460ba2da1372cd282a4353
2021-05-19 14:08:17 -05:00
Andreas Baumbach
6d5cd24480 py-neo: add version 0.8.0 (#23717) 2021-05-19 11:58:42 -07:00
Andreas Baumbach
c666df5665 imagemagick: add missing pkg-config dependency (#23683) 2021-05-19 10:38:25 -07:00
Hadrien G
608d453c01 acts: add v8.2 and support master -> main branch naming switch (#23751) 2021-05-19 16:28:31 +00:00
Valentin Volkl
88192bfd4a Write junit-report to reports directory to allow installation from read-only spack (#20158) 2021-05-19 16:28:14 +00:00
Robert Mijakovic
9e3cb78fb1 singularity: add v3.7.3 (#23782)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-19 10:19:22 -06:00
Andreas Baumbach
46a1e0613e py-pytest: add v4.4.0 (#23723) 2021-05-19 14:13:34 +00:00
Andreas Baumbach
8cef30a181 py-regex: add older versions (#23724) 2021-05-19 14:08:34 +00:00
Andreas Baumbach
9759c7162e py-setuptools-scm: add v3.5.0 (#23726) 2021-05-19 14:01:41 +00:00
vsoch
f2b362b5b3 adding support to tag a build
This will be useful to run multiple build experiments and organize by name

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-05-19 07:01:18 -07:00
Andreas Baumbach
747e3cad1c scala: add v2.12.6 (#23731) 2021-05-19 07:58:22 -06:00
Andreas Baumbach
51e55381b9 py-slurm-pipeline: add v3.0.2 (#23727) 2021-05-19 13:53:13 +00:00
Andreas Baumbach
9b493e75a2 py-yapf: add v0.29.0 (#23729)
Change-Id: I2c24cbeeee0be0088dfa60bd83628a0f05272d1c
2021-05-19 13:48:52 +00:00
Robert Mijakovic
fbc20e0fe8 gdb: new version, 10.2 (#23754)
* gdb: new version, 10.2

* gdb: applies patch to the newer releases

Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-19 15:37:08 +02:00
G-Ragghianti
f5c7ab7f6c slate: add v2021.05.02 (#23784) 2021-05-19 15:28:40 +02:00
Harmen Stoppels
81d583e307 sirius: add v7.2.3 (#23785) 2021-05-19 15:26:36 +02:00
Andreas Baumbach
f9aa929082 verilator: add v4.108 and v4.020 (#23736) 2021-05-19 12:37:40 +00:00
Valentin Volkl
46a9dd1889 py-qtconsole: fix misnamed variant (#23746) 2021-05-19 12:15:04 +00:00
Seth R. Johnson
3d2cd48048 Use define_from_variant in numerous CMakePackages (#23655)
Example replacement:
```
'-D(\w+)(:BOOL)?=\{0\}'\.\s*format\s*\(\s*'(ON|YES|true|TRUE)' if '\+(\w+)' in (self\.)?spec else '(OFF|NO|false|FALSE)'\)
```
with
```
self.define_from_variant('\1', '\4')
```

This will cause failures if any variants were misspelled: I have already caught two packages with nonexistent variants.
2021-05-19 06:59:06 -04:00
albestro
33df3990de conflict for apple-clang building findutils (#23740) 2021-05-19 09:19:58 +00:00
Robert Mijakovic
2894c24125 r: add v4.1.0 (#23757)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-19 10:00:52 +02:00
Jamie Finney
b3004e1dd0 Add caret/hat to spack spec help documentation (#23758)
Co-authored-by: Jamie Finney <finneyjm@ornl.gov>
2021-05-19 09:49:07 +02:00
Massimiliano Culpo
8146c0d848 gawk: add support for external find (#23716) 2021-05-19 09:33:28 +02:00
Paul
ccbd1f1d79 Go: add v1.16.4 and v1.15.12 (#23745) 2021-05-19 09:26:19 +02:00
Brian Van Essen
932e916c59 RDKit: new package (#23761)
RDKit is a collection of cheminformatics and 
machine-learning software written in C++ and
Python.
2021-05-19 09:25:40 +02:00
David Hughes
1a8d18a2d3 mpich: Apply fallow-argument-mismatch parameter with clang (#23748) 2021-05-19 06:46:51 +00:00
Adam J. Stewart
f407539abb py-pygeos: add v0.10 (#23781) 2021-05-19 06:19:17 +00:00
Valentin Volkl
2e58d09303 py-qtpy: recipe bugfix (#23747) 2021-05-19 07:34:59 +02:00
Vanessasaurus
8bed109e41 monitor: fix issue with attribute lookup (#23773)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-05-19 07:33:09 +02:00
Massimiliano Culpo
1a5924f5fb gnupg: bumped versions, added maintainer (#23734) 2021-05-19 05:17:42 +00:00
Andreas Baumbach
77f155fec4 py-jinja2: add version 2.11.3 (#23698)
* py-jinja2: add version 2.11.3

Change-Id: If845ff512bafed4d911b03463cae2154357ae5c3

* fixup

Change-Id: Ie39a8b7225826547fcbdb68cb083311a191903ef
2021-05-19 04:57:23 +00:00
wspear
b21a4f5c89 TAU needs to specify pdt_c++ if built with intel. (#23775) 2021-05-19 02:08:14 +00:00
Tamara Dahlgren
5bd42d1b31 docs/packaging guide: Reference test stage directory (#23707) 2021-05-18 17:56:38 -07:00
Dan Bonachea
ce7516f25f upcxx: Add support for stand-alone post-install tests (#23714)
This uses the existing script which is always installed for this purpose in modern versions.
2021-05-18 17:40:51 -07:00
Michael Kuhn
f0d5d992e6 lmdb package: Fix build with other compilers (#23704)
lmdb hardcodes gcc in its Makefile, so override it.
2021-05-18 17:18:48 -07:00
Robert Mijakovic
79d8691dde mercurial: add version 5.8 (#23756) 2021-05-18 17:02:48 -07:00
Robert Mijakovic
18edf0f072 emacs: add version 27.2 (#23753) 2021-05-18 17:01:29 -07:00
Andreas Baumbach
60a6281c47 py-werkzeug: add versions including 0.15.6 (#23728) 2021-05-18 17:00:44 -07:00
Frédéric Simonis
6bf6567f9d precice: Add version 2.2.1 (#23743) 2021-05-18 16:37:40 -07:00
Michael Kuhn
9410d99153 Bugfix: fetching oddly-named resources from local mirrors (#23300)
Spack uses curl to fetch URL resources. For locally-stored resources
it uses curl's file protocol; when using this protocol, curl expects
that the URL encoding conforms to RFC 3986 (which reserves characters
like '?' and '=' for special use).

We were not performing this encoding, and found a resource where
curl was interpreting this in an unfavorable way (succeeding, but
producing an empty file). This commit properly encodes URLs when
using curl's file protocol.

This error did not likely come up before because in most contexts
Spack was either fetching via http or it was using URLs without
offending characters (for example, the sha-based URLs in mirrors
never contain these characters).
2021-05-18 15:26:49 -07:00
Robert Mijakovic
ba68cbc694 julia: new version, 1.6.1 (#23755)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-18 23:03:51 +02:00
Harmen Stoppels
4f6b4dcaac New package: ca-certificates-mozilla (#23632) 2021-05-18 12:50:45 -07:00
Andreas Baumbach
346e52de38 cppcheck: add versions including 2.0 and 1.88 (#23678) 2021-05-18 11:23:22 -07:00
Andreas Baumbach
b41ee03475 doxygen: fix build with gcc@10: for version 1.8.15 (#23680) 2021-05-18 11:21:54 -07:00
Desmond Orton
c22a5326d8 trinity: Version Update to 2.12.0 (#23430)
Added version requirements for deps
Changed url to get proper versions
2021-05-18 11:12:33 -07:00
Andreas Baumbach
13cb8ef2c2 fontconfig: add version 2.13.93 (#23681) 2021-05-18 11:03:40 -07:00
Justin M Wozniak
99cd09b2b2 Swift/T Release 1.5.0 (#23702)
Add versions to adlbx (1.0.0), exmcutils (0.6.0), stc (0.9.0),
and turbine (1.3.0).
2021-05-18 11:02:31 -07:00
Jim Galarowicz
977dad4c93 openspeedshop and cbtf packages: new versions and dependency updates (#23254)
* Add versions 1.9.4 and 1.9.4.1 for cbtf-* packages
* Add versions 2.4.2 and 2.4.2.1 for openspeedshop packages
* Remove older versions
* Switch from generic dependency on elf to a dependency on the
  elfutils implementation for cbtf-* and openspeedshop packages
* For llvm-openmp-ompt, relax dependency on libelf to elf (cbtf-krell
  now depends on elfutils, and llvm-openmp-ompt, so unless this
  dependency is relaxed there would be a conflict)
* Update CMake build_type to support Debug, Release, RelWithDebInfo
  in cbtf-* and openspeedshop packages
* Update libmonitor patches when building as a dependency of
  cbtf-krell
2021-05-18 09:40:01 -07:00
arjun-raj-kuppala
319f20d94f AMD ROCm release 4.2: core components part-1 (#23613) 2021-05-18 15:53:53 +02:00
Andreas Baumbach
20a99f4f04 git add older versions (#23682) 2021-05-18 10:50:55 +02:00
Harmen Stoppels
e3c59264d8 cray: fix builds on Alps/Eiger (CSCS) (#23470)
Co-authored-by: Tiziano Müller <tiziano.mueller@chem.uzh.ch>
2021-05-18 02:25:14 -06:00
eugeneswalker
4cd53cadb0 binutils: fix NameError from commit de8027 (#23715) 2021-05-18 09:03:08 +02:00
Andreas Baumbach
f1c849ca0f py-alembic: add new version 1.5.5 (#23686)
* py-alembic: add new version 1.5.5

Change-Id: I80f57c1f29a689bfa1718dd3500ccda6623acf76

* fixup

Change-Id: I551888c25ca7bc0b738c40d63d12974510b59ecf
2021-05-18 03:24:44 +00:00
Ross Miller
8f85d3b937 Fix minor build issue with UnifyFS. (#23709)
This commit updates the UnifyFS package.py script to include a patch
that fixes the build problems on new-ish Linux distributions.

Fixes issue #23292
2021-05-17 19:04:44 -04:00
Andreas Baumbach
0174936250 py-gitpython: add version 0.3.6 (#23695)
Change-Id: I3424409f8a7575c6a13592c05e1e940f960fe8fe
2021-05-17 13:07:18 -06:00
Jen Herting
193699f3c9 New package: r-assertive (#23637) 2021-05-17 12:04:15 -06:00
Andreas Baumbach
58751ac2e8 py-jsonpickle: restrict importlib dependency to appropriate python (#23699)
Change-Id: I538d72eb97d3cc91e2e6854b40c5b91b39df6f62
2021-05-17 12:47:20 -05:00
Andreas Baumbach
401f61c094 py-jedi: add older versions (#23697)
Change-Id: I56de34bace2fb04156700ffd4f1b34408920d702
2021-05-17 12:44:53 -05:00
Andreas Baumbach
84486be643 py-grpcio: add version 1.16.0 (#23696)
Change-Id: I4acb232e171ddec688eb7871da80caaa05bf637b
2021-05-17 12:44:20 -05:00
Andreas Baumbach
d577f25dcf py-google-pasta: add older versions (#23694)
Change-Id: I5846415b4953a5f12f995672e586cadb80857db2
2021-05-17 12:42:42 -05:00
Andreas Baumbach
b2bc0241eb py-astroid: add new versions and update dependencies (#23687)
Change-Id: I2c07e75b404ec289feebdbfb09f6b0e733404911
2021-05-17 12:31:34 -05:00
lukebroskop
dd350e83d3 CrayPE fix for axom (#23520)
Pass -ef to the cce fortran compiler, fix the build system to use the correct openmp flag for CCE

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-17 11:22:16 -06:00
Andreas Baumbach
9d251e51a1 py-bottleneck: add new versions (#23689)
Change-Id: I31a22fa1495cc2ceed33ba7084831c11120c03e7
2021-05-17 11:04:24 -06:00
Vicente Bolea
e56aa15d22 ParaView: add new release v5.9.1 (#23657) 2021-05-17 12:51:56 -04:00
lukebroskop
46e0869631 CrayPE fixes for the slepc package (#23503)
Use the gold linker for CCE (this may change later)

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-17 09:30:58 -07:00
Daniel Arndt
e34d996944 ArborX: Avoid calling mkdirp directly (#23691) 2021-05-17 18:28:55 +02:00
Andreas Baumbach
8ee8269ede py-coverage: add version and restrict newer python dependency (#23692)
Change-Id: I7e790014fd448eb203a1963c90e22afde041ba50
2021-05-17 11:28:29 -05:00
lukebroskop
de8027a820 CrayPE fix for binutils (#23500)
Allow for multiple definitions at link time (for CrayPE)

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-05-17 09:26:15 -07:00
lukebroskop
b462ccb565 CrayPE fix for trilinos (#23518)
Expand the use of cray_secas.patch and use the gold linker w/cce

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-17 09:23:24 -07:00
lukebroskop
87466df80f craype fixes for scr (#23510)
turn off static linking, add -ldl flag

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-17 09:14:08 -07:00
Harmen Stoppels
8446bebdd9 Revert "Separable module configurations (#22588)" (#23674)
This reverts commit cefbe48c89.
2021-05-17 06:42:48 -07:00
Michael Kuhn
213ef656c5 libfuse: add 3.10.3 (#23676)
This also adds a patch to make libfuse compile with gcc@11:
2021-05-17 13:28:57 +00:00
Bryan Herman
c7f269e2f9 trilinos: add scorec variant (#23117)
* add scorec feature to trilinos recipe
* used func to enable SCOREC
2021-05-17 07:26:59 -04:00
Harmen Stoppels
5157f4be7f ccache: add v4.3 (#23671) 2021-05-17 13:21:55 +02:00
Enrico Usai
5c3b761102 aws-parallelcluster: add v2.10.4 (#23672) 2021-05-17 13:02:36 +02:00
Robert Mijakovic
f0d48439c3 c-blosc2: new version, v2.0.0rc1 (#23560) 2021-05-17 12:12:27 +02:00
darmac
a24620bb65 bib2xhtml: add dependency to run bibtex (#22742) 2021-05-17 11:42:00 +02:00
Mark Olesen
defb487ed9 openfoam: update to OpenFOAM-v2012_210414 (patch release) (#23249) 2021-05-17 11:32:18 +02:00
Wouter Deconinck
5aaaa1c6e8 Docker: ignore var/spack/cache (source caches) when creating container (#23329) 2021-05-17 11:28:58 +02:00
Michael Kuhn
1b7e846434 gcc: add 8.5.0 (#23647) 2021-05-17 11:04:11 +02:00
Michael Kuhn
147d44450d libuv: add 1.41.0 (#23648) 2021-05-17 11:03:40 +02:00
Michael Kuhn
719d8f5142 netdata: add 1.30.1 (#23650)
This also changes the checksum for 1.22.1 because I switched the package
to use the proper upstream tarballs to get rid of the autotools
dependencies. Moreover, a few dependencies were missing. netdata also
requires a few directories to be created in its prefix to actually work.
2021-05-17 11:03:24 +02:00
Glenn Johnson
58c2997b84 Add version 4.1.1.0 to atompaw (#23659)
Also adjust the libxc constraints.
2021-05-17 10:22:45 +02:00
Todd Gamblin
fdfd1fed41 performance: speed up existence checks in packages (#23661)
Spack doesn't require users to manually index their repos; it reindexes the indexes automatically when things change. To determine when to do this, it has to `stat()` all package files in each repository to make sure that indexes up to date with packages. We currently index virtual providers, patches by sha256, and tags on packages.

When this was originally implemented, we ran the checker all the time, at startup, but that was slow (see #7587). But we didn't go far enough -- it still consults the checker and does all the stat operations just to see if a package exists (`Repo.exists()`).  That might've been a wash in 2018, but as the number of packages has grown, it's gotten slower -- checking 5k packages is expensive and users see this for small operations.  It's a win now to make `Repo.exists()` check files directly.

**Fix:**

This PR does a number of things to speed up `spack load`, `spack info`, and other commands:

- [x] Make `Repo.exists()` check files directly again with `os.path.exists()` (this is the big one)
- [x] Refactor `Spec.satisfies()` so that a checking for virtual packages only happens if needed
      (avoids some calls to exists())
- [x] Avoid calling `Repo.exists(spec)` in `Repo.get()`. `Repo.get()` will ultimately try to load
      a `package.py` file anyway; we can let the failure to load it indicate that the package doesn't
      exist, and avoid another call to exists().
- [x] Fix up some comments in spec parsing
- [x] Call `UnknownPackageError` more consistently in `repo.py`
2021-05-17 01:20:17 -07:00
Massimiliano Culpo
18b436bbb0 minisign: permit to build statically, add maintainer (#23653) 2021-05-17 10:18:43 +02:00
eugeneswalker
d4cfde2f3e geopm: py-tables build+run dep: allow versions past 3.5.2 (#23666) 2021-05-16 13:36:19 -04:00
Todd Gamblin
379a1fd23b some fixes for command help strings (#23658)
- [x] `analyze` isn't commonly used; move it to long help
      (`spack -H` vs `spack -h`). Give it its own section.

- [x] make it clear from `spack -h` that `spack module` can generate
      module files

- [x] shorten help for `spack style`
2021-05-15 20:48:00 +00:00
Greg Becker
2202ce27fa do not sort projections alphabetically (#23649)
* do not sort projections alphabetically
* add assertion for ordered dict
2021-05-15 10:19:10 -06:00
Francesco Di Natale
2a7fa295fb Addition of py-pyaestro package. (#23629) 2021-05-15 10:08:44 -05:00
Jen Herting
ef4215360c New package: py-pygetwindow (#23635)
* [py-pygetwindow] created template

* [py-pygetwindow] added dependencies

* [py-pygetwindow] Final cleanup

- added homepage
- added description
- removed fixmes
2021-05-15 02:33:23 +00:00
Jen Herting
42a77a1ff6 New package: py-pyrect (#23634)
* [py-pyrect] created template

* [py-pyrect] depends on setuptools

* [py-pyrect] Final cleanup

- added homepage
- added description
- removed fixmes
2021-05-14 21:06:23 -05:00
Jen Herting
8914085789 New package: py-word2number (#23638)
* [py-word2number] created template

* [py-word2number] requires setuptools

* [py-word2number] Final cleanup

- added homepage
- added long description
- removed fixmes
2021-05-14 21:03:56 -05:00
Jen Herting
bd389b0f95 New package: py-pymsgbox (#23639)
* [py-pymsgbox] created template

* [py-pymsgbox] depends on setuptools

* [py-pymsgbox] Final cleanup

- added homepage
- added description
- removed fixmes
2021-05-14 21:03:08 -05:00
Jen Herting
8813ce36b3 New package: py-pytweening (#23641)
* [py-pytweening] created template

* [py-pytweening] depends on setuptools

* [py-pytweening] final cleanup

- added homepage
- added description
- removed fixmes
2021-05-14 21:02:20 -05:00
Michael Kuhn
a66bca591c zstd: add 1.5.0 (#23646) 2021-05-14 22:42:09 +00:00
Harmen Stoppels
d80b008789 Bump coreutils (#23633) 2021-05-15 00:15:33 +02:00
Greg Becker
cefbe48c89 Separable module configurations (#22588)
Currently, module configurations are inconsistent because modulefiles are generated with the configs for the active environment, but are shared among all environments (and spack outside any environment).

This PR fixes that by allowing Spack environments (or other spack config scopes) to define additional sets of modules to generate. Each set of modules can enable either lmod or tcl modules, and contains all of the previously available module configuration. The user defines the name of each module set -- the set configured in Spack by default is named "default", and is the one returned by module manipulation commands in the absence of user intervention.

As part of this change, the module roots configuration moved from the `config` section to inside each module configuration.

Additionally, it adds a feature that the modulefiles for an environment can be configured to be relative to an environment view rather than the underlying prefix. This will not be enabled by default, as it should only be enabled within an environment and for non-default views constructed with separate projections per-spec.

TODO:
- [x] code changes to support multiple module sets
- [x] code changes to support modules relative to a view
- [x] Tests for multiple module configurations
- [x] Tests for modules relative to a view
- [x] Backwards compatibility for module roots from config section
- [x] Backwards compatibility for default module set without the name specified
- [x] Tests for backwards compatibility
2021-05-14 15:03:28 -07:00
iarspider
fc392d2f56 root: Add variants: dcache and oracle (#23441) 2021-05-14 21:08:35 +02:00
Michael Kuhn
59a520246b emacs: add texinfo build dependency on master (#23631)
It seems that building unreleased versions requires makeinfo, which is
part of texinfo.
2021-05-14 10:07:19 +02:00
Adam J. Stewart
14fc5604dd py-rarfile: add new package (#23622) 2021-05-14 10:06:39 +02:00
Pat McCormick
d64fd1238b legion: bug fix for flecsi use cases. (#23624) 2021-05-14 10:03:52 +02:00
Massimiliano Culpo
9e30e669d2 build tests: put an upper bound on the version of GCC being used (#23630) 2021-05-14 07:51:03 +00:00
Jacob Merson
117dfcae25 model-traits: add new package (#23589) 2021-05-14 07:45:04 +00:00
miheer vaidya
702f343fb1 emacs: add support for native compilation on master (#23493)
* Emacs native compilation on master

* emacs: Mark tools correctly as build dependency
2021-05-14 09:33:32 +02:00
natshineman
0d92c39d47 Update mvapich2 to 2.3.6 (#23574)
Co-authored-by: Nat Shineman <shineman.5@buckeyemail.osu.edu>
2021-05-14 09:32:21 +02:00
sebrowne
19c7188cbf netcdf-c: refactor fsync variant (#23477)
Simplify logic by just enabling or disabling fsync as user specified
(default to off currently).  Also remove the 4.1 version check, since
that version isn't actually supported in here.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-14 08:59:43 +02:00
Massimiliano Culpo
f47066967b spec: simplify __str__ implementation (#23593)
The implementation for __str__ has been simplified to traverse the spec directly, 
and doesn't call anymore the flat_dependencies method. Dead code has been 
removed.
2021-05-13 21:51:41 -07:00
Frank Willmore
b70bf073b5 cc: change mode to ccld for loopopt edit (#23482)
For configure (e.g. for hdf5) to pass, this option needs to be pulled out when invoked in ccld mode.

I thought it had fixed the issue but I still saw it after that. After some digging, my guess is that I was able
to get hdf5 to build with ifort instead of ifx. Lot of overlapping changes occurring at the time, as it were.
There are still outstanding issues building hdf5 with ifx, and Intel is looking into what appears to be a
compiler bug, but this manifests during build and is likely a separate issue.

I have verified that the making the edit in 'ccld' mode removes the -loopopt=0 and enables hdf5 to pass
configure. It should be fine to make the edit in 'ld' mode as well, but I have not tested that and didn't
include an -or- condition for it.
2021-05-13 21:31:20 -07:00
eugeneswalker
b91f24fa8a py-warpx: new version: 21.05 (#23628) 2021-05-14 02:35:14 +00:00
eugeneswalker
cce59095bf veloc: add v1.3 and v1.2 (#23626) 2021-05-13 18:32:13 -07:00
Axel Huebl
34ec69d140 openPMD-api: 0.13.4 (#23619)
Add the latest release.
2021-05-13 18:22:22 -07:00
Jon Rood
0cc42acbbd Add -DSTK_NO_BOOST_STACKTRACE to compile line in trilinos if +stk and on a Mac. (#23625) 2021-05-13 18:21:40 -07:00
Sreenivasa Murthy Kolam
8b25bdcf4d Enable image_support flag to fix the issues with hipMalloc3D,hipMallocPitch() (#23620) 2021-05-14 00:37:55 +02:00
Greg Sjaardema
98cf0f5e07 seacas: new version, update dependency versions (#23609)
Add new release of SEACAS.

Update netcdf-c version to recent release which fixes some issues that have caused problems in past

Use release version of CGNS instead of develop
2021-05-13 16:48:04 +02:00
Ben Boeckel
9ed1208650 libcatalyst: add package (#23595)
There are no official releases yet, so just use a git snapshot for now.
2021-05-13 16:47:18 +02:00
Davide Mancusi
98d1d40e46 libbsd: do not apply local-elf.h.patch after version 0.10 (#23565) 2021-05-13 11:58:45 +00:00
Adam J. Stewart
91b58112f1 py-cocotools: add new package (#23573) 2021-05-13 13:18:18 +02:00
Davide Mancusi
9a71bd3893 python: use CFLAGS=-fp-model=strict with %oneapi (#23575) 2021-05-13 11:04:21 +00:00
Sreenivasa Murthy Kolam
a4f03dba9c update the version for rocm packages comgr,hip-rocclr ,... for rocm-4.2.0 release (#23608) 2021-05-13 12:27:20 +02:00
dependabot[bot]
725bcd1e80 build(deps): bump actions/cache from 2.1.4 to 2.1.5 (#23584)
Bumps [actions/cache](https://github.com/actions/cache) from 2.1.4 to 2.1.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Commits](https://github.com/actions/cache/compare/v2.1.4...v2.1.5)

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 11:51:30 +02:00
Michael Kuhn
ce0733a4c3 rocksdb: update pkg-config patch (#23601)
The previous version did not fix an error that only occured with clang.
2021-05-13 11:38:05 +02:00
Michael Kuhn
d294438c24 glib: add v2.68.2 (#23603) 2021-05-13 11:31:52 +02:00
Michael Kuhn
a88206de03 libbson: add v1.17.5 (#23604) 2021-05-13 11:31:36 +02:00
Michael Kuhn
4bc043da85 mongo-c-driver: add v1.17.5 (#23605) 2021-05-13 11:31:17 +02:00
Michael Kuhn
2df7947f02 lmdb: add v0.9.29 (#23606) 2021-05-13 11:31:02 +02:00
Michael Kuhn
52145be122 mariadb-c-client: add v3.1.13 (#23607) 2021-05-13 11:30:46 +02:00
Greg Becker
190b043161 config key error: fix format string (#23610) 2021-05-13 11:20:32 +02:00
Jon Rood
97e6c0fda4 nalu-wind: remove SuperLU dependency from Trilinos and simplify recipe (#23600)
* Update Nalu-Wind to remove SuperLU from Trilinos requirement. Also simplify Nalu-Wind package.

* Leave boost option in nalu-wind.

* Add git branches into TPL requirements. Update OpenFAST for change to main branch.
2021-05-13 11:18:43 +02:00
G-Ragghianti
8a40a3a70f slate: add v2021.05.01 (#23612)
Adds a new release version for SLATE and includes 
HIP/ROCm backend support. Now can build with either 
CUDA or ROCm support.
2021-05-13 10:32:31 +02:00
Greg Becker
f8740c8c75 env views: make view updates atomic (#23476)
Currently, environment views blink out of existence during the view regeneration, and are slowly built back up to their new and improved state. This is not good if other processes attempt to access the view -- they can see it in an inconsistent state.

This PR fixes makes environment view updates atomic. This requires a level of indirection (via symlink, similar to nix or guix) from the view root to the underlying implementation on the filesystem. 

Now, an environment view at `/path/to/foo` is a symlink to `/path/to/._foo/<hash>`, where `<hash>` is a hash of the contents of the view.  We construct the view in its content-keyed hash directory, create a new symlink to this directory, and atomically replace the symlink with one to the new view.

This PR has a couple of other benefits:
* It future-proofs environment views so that we can implement rollback.
* It ensures that we don't leave users in an inconsistent state if building a new view fails for some reason.

For background:
* there is no atomic operation in posix that allows for a non-empty directory to be replaced.
* There is an atomic `renameat2` in the linux kernel starting in version 3.15, but many filesystems don't support the system call, including NFS3 and NFS4, which makes it a poor implementation choice for an HPC tool, so we use the symlink approach that others tools like nix and guix have used successfully.
2021-05-13 06:56:20 +00:00
Desmond Orton
ee73f75239 New Package r-dexseq (#23457) 2021-05-12 19:56:56 -05:00
wspear
c2577275f5 tau: depend on provider of elf (#23602)
* tau: depend on provider of elf

* Depends on elf when +elf, not +libdwarf
2021-05-13 00:14:33 +00:00
Terry Cojean
735c48c4aa Update: Ginkgo ROCm setup and smoke tests (#23280)
Add Ginkgo ROCmPackage support and improve tests.
2021-05-12 17:04:08 -06:00
Robert Mijakovic
d19d81a3f4 sqlite3: new version, 3.35.5 (#23592)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-12 21:18:53 +02:00
Brian Van Essen
6b7c57ad47 High performance linkers for LBANN (#23594)
* Added the option to use high performance linkers: gold and lld, for
LBANN.  Including them as build flags causes unnecessary propagation
to all dependent packages, reducing package reuse.
2021-05-12 12:18:01 -07:00
Olivier Cessenat
3c05130258 gmsh: fix variant flags and dependencies (#23563)
* Package gmsh making clear dependencies
* Improvements from reviewer advise
2021-05-12 14:40:00 -04:00
Olivier Cessenat
6403f80a96 ngspice: enhanced to produce bin and more options. (#23495)
* Enhancing package ngspice to produce bin, take options

* Enhancing package ngspice, adding dependencies

* Enhancing package ngspice, typo
2021-05-12 11:04:43 -04:00
Massimiliano Culpo
fc2ac099cd ASP-based solver: account for deprecated versions (#23491)
fixes #22351

The ASP-based solver now accounts for the presence
in the DAG of deprecated versions and tries to minimize
their number at highest priority.
2021-05-12 07:17:38 -07:00
Harmen Stoppels
b768d7bb09 lzo, lz4, xz, binutils: add libs multi-valued variant (#23474) 2021-05-12 12:31:02 +02:00
Tamara Dahlgren
e7219db93d Bugfix for "Revert "craype fix for rempi"" (#23580)
This reverts and fixes commit 1ae28f66c6.

Co-authored-by: lukebroskop <luke.roskop@hpe.com>
2021-05-12 01:31:15 +00:00
Tamara Dahlgren
1ae28f66c6 Revert "craype fix for rempi (#23507)" (#23577)
This reverts commit 297f0e489a.
2021-05-11 17:35:41 -07:00
eugeneswalker
edd35eae71 mercury: flag_handler: fix incorrect indent on return statement (#23579) 2021-05-12 00:34:38 +00:00
eugeneswalker
1d3a4820f6 kvtree: flag_handler: fix incorrect indent on return statement (#23578) 2021-05-12 00:31:27 +00:00
lukebroskop
8d4c2d1c76 Fix cray-libsci package to find correct libraries (#23501) 2021-05-11 16:35:28 -07:00
lukebroskop
297f0e489a craype fix for rempi (#23507)
When comping with cce, use the mpi wrappers
2021-05-11 16:08:51 -07:00
lukebroskop
d549e3a600 CrayPE fix for kvtree (#23513)
Allow for multiple definitions at link time (with cce's linker)

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-11 16:01:49 -07:00
lukebroskop
a011564b19 CrayPE fix for mercury (#23514)
allow for multiple definitions at link time (for CCE's linker)


Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-11 16:00:34 -07:00
lukebroskop
d089409079 CrayPE fix for ascent (#23517)
Pass the -ef flag to the CCE fortran compiler

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-05-11 15:58:36 -07:00
Robert Mijakovic
444c5edf4d blis: new version, 0.8.1 (#23561)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-11 15:38:27 -07:00
Michael Kuhn
c18f87d419 meson: add 0.57.2, 0.58.0 (#23572) 2021-05-11 16:34:36 -06:00
Michael Kuhn
e763ac00fa rocksdb: add 6.20.3 (#23571)
This also adds a patch to fix the pkg-config file when used with C compilers, Clang etc.
2021-05-11 15:34:12 -07:00
lukebroskop
4a50e35262 CrayPE patch for conduit (#23516)
Pass -ef to the CCE Fortran compiler
2021-05-11 15:25:50 -07:00
Peter Scheibel
5230730941 Environments: add run deps to shell modifications (#23485)
When adding an Environment to a user's shell, Spack was only adding
root specs. This now includes run dependencies of root specs.
2021-05-11 14:30:57 -07:00
Robert Mijakovic
57ce5f390b gobject-introspection: fix for Python 3.9. (#22869)
* gobject-introspection: fix for Python 3.9.

* Fixes the too long line formatting issue.

* gobject-introspection: limits the scope of the patch

Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-11 21:40:21 +02:00
Massimiliano Culpo
2a509ea0bf ASP-based solver: variants set from cli are considered as defaults (#23542)
Variants explicitly set in an abstract root spec are considered
as defaults for the package they refer to, and they override
what is in packages.yaml and in package.py. This is relevant
only for multi-valued variants, where a constraint may extend
an already default value.
2021-05-11 12:38:17 -07:00
Harmen Stoppels
fe46a1ce5f Fixes to flex (#23408)
* Fixes to flex

- Prefer the version that doesn't need all the patches and extra build
tools
- Make dependency on gettext optional under the nls variant (off by
default)
- Drop the dependency on help2man if we don't have to regenerate the man
pages (when no patches are necessary)

* Bring back gettext dep as it is used during autoconf
2021-05-11 21:27:49 +02:00
Robert Mijakovic
bbc11f3d1c bison: new versions, 3.7.5 and 3.7.6 (#23559)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-11 21:24:31 +02:00
Simon Frasch
143304cea2 spfft: add version 1.0.3 and patch for missing include statement (#23557) 2021-05-11 20:54:07 +02:00
Howard Pritchard
f055a48445 cray: fix parsing of module list (#23566)
The code for guessing cpu archtype based on craype modules names got confused,
at least on LLNL RZ prototype systems.  In particular a (L) or (D) at the end of a craype-x86-xxx or other
cpu architecture module was geting the logic confused.

With this patch, any white space + remaining characters in the moduel name are removed.

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-05-11 18:16:09 +00:00
Tamara Dahlgren
0368f8ae51 Updates and format tweaks to the release documentation (#22053) 2021-05-11 10:39:25 -07:00
Tamara Dahlgren
00fe243e9c tests/bugfix: Fix and clean up copied example checks (#23276) 2021-05-11 10:38:40 -07:00
Tamara Dahlgren
066d33b4b3 Documentation: Refinement of "Checking an installation" (#22210)
There have been a lot of questions and some confusion recently surrounding Spack installation test capabilities so this PR is intended to clean up and refine the documentation for "Checking an installation".

It aims to better distinguish between checks that are performed during an installation (i.e., build-time tests) and those that can be done days and weeks after the software has been installed (i.e., install (or smoke) tests).
2021-05-11 10:37:48 -07:00
Mikael Simberg
dee419c1d5 Use Ninja as generator in HPX package (#23558) 2021-05-11 18:50:28 +02:00
lukebroskop
766f99f130 CrayPE fix for libcircle (#23526)
Disable mpi search when using cce (the CCE compiler wrappers do not behave like the conventional mpi compiler wrappers).
2021-05-11 09:33:58 -07:00
shanedsnyder
b4e4e76872 darshan-runtime, darshan-util: darshan 3.3.0 release + other additions (#23552)
Add darshan-3.3.0 tags to darshan util/runtime, AutoPerf variants, AutoPerf XC variants, and HDF5 module support to darshan-runtime.
2021-05-11 10:04:23 -06:00
Olivier Cessenat
ec033d8922 gmsh: add variants and new version (#23544)
* Enhancing package gmsh to more options, new version
* Enhancing package gmsh, url from https
* Enhancing package gmsh, following reviewer 1
* Improving package gmsh from reviewer
* Adding MED dependency
* Removing env variables and unused dependency (netgen/tetgen)
2021-05-11 11:12:00 -04:00
Olivier Cessenat
fee5cf4e49 med: add HDF5 support and other variants (#23555)
Enhancing package med enlarged HDF5 compatibility, more options, new version
2021-05-11 09:01:49 -04:00
Tiziano Müller
aacba57e0a cp2k: update libvori and libxc dependencies (#23553) 2021-05-11 11:09:47 +02:00
Phil Tooley
566becbbfe use package supplied autogen.sh (#20319) 2021-05-10 23:11:29 -07:00
Greg Becker
8c05387ebc respect -k/verify-ssl-false in _existing_url method (#21864) 2021-05-10 23:11:29 -07:00
Valentin Volkl
fb207b80ce root: add first spack external find support
only parses the version, variant parsing will follow.
2021-05-10 21:59:38 -07:00
Jen Herting
d25455277b [py-pyjwt] added version 2.1.0 (#23547) 2021-05-10 19:57:05 -05:00
lukebroskop
b27ac37547 CrayPE fixes for MAGMA (#23497)
Force CCE to compile fortran modules with lower case names, allow for CCE to be the host compiler with nvcc
2021-05-10 17:42:56 -07:00
Vasileios Karakasis
b6c124572c Add ReFrame 3.6.0 (#23551) 2021-05-10 17:33:24 -07:00
darmac
795f5e4af1 New package: libmicrodns (#22145) 2021-05-10 16:45:29 -07:00
Tom Payerle
3b590177c9 zfp: Add python as explicit dependency (#23478)
A proposed fix for #23436
2021-05-10 16:35:06 -07:00
Jen Herting
ff4fd6c5bc [py-websocket-client] added version 0.48.0 (#23549) 2021-05-10 22:51:26 +00:00
eugeneswalker
ea2cba7b40 tau: revert depends_on generic elf provider (#23548) 2021-05-10 22:26:36 +00:00
Harmen Stoppels
3d2b1277e9 Bump fuse-overlayfs (#23541) 2021-05-10 14:35:06 -07:00
lukebroskop
829199a460 craype fix for omega-h (#23504)
add -Wno-final-dtor-non-final-class flag
2021-05-10 14:31:27 -07:00
Axel Huebl
2913000d92 WarpX: 21.05 (#23543)
Add the latest release of WarpX.
2021-05-10 15:04:33 -06:00
lukebroskop
e58d07a819 CrayPE fix for unifyfs (#23498)
When building with CCE, do not use the -Werror flag
2021-05-10 14:02:30 -07:00
lukebroskop
50eec40232 CrayPE fix for otf2 (#23499)
when using Cray's cs-prgenv, allow the build system to detect the systems as an XC
2021-05-10 13:16:41 -07:00
Tamara Dahlgren
2450ee0fb0 bugfix: correct force_autoreconf method syntax (#23546) 2021-05-10 19:31:11 +00:00
lukebroskop
57ccb6ea13 CrayPE fix for json-c (#23515)
remove -Werror flag when compiling with cce
2021-05-10 13:16:25 -06:00
eugeneswalker
a5422f8015 depend on elf provider in place of specifically libelf (#23524) 2021-05-10 11:04:18 -07:00
Adam J. Stewart
e219d89d33 py-numpy: add v1.20.3 (#23545) 2021-05-10 17:42:55 +00:00
eugeneswalker
4903eabc7a compare full old_prefix and new_prefix instead of layout_root (#23506) 2021-05-10 10:36:53 -07:00
eugeneswalker
ccdda9a74e metall: fix incorrect use of setup_build_environment (#23532) 2021-05-10 09:26:19 -07:00
darmac
ad44c3ad51 Add new package: ima-evm-utils (#22161) 2021-05-10 10:10:02 -06:00
Cameron Rutherford
c2cd597b45 Use define_from_variant for HiOp package (#23536) 2021-05-10 10:04:07 +02:00
Michael Kuhn
d2cc248192 binutils: Improve flag_handler (#22642)
`flag_handler` currently passes all flags via injection. This makes it
impossible to override the default flags provided by autotools (for
instance, `binutils cflags='-O2'` will still build with `-O2 -g`).
Instead, use injection for our workaround flags and pass other flags to
the build system.
2021-05-10 10:03:24 +02:00
Adam J. Stewart
ecb7d6dca1 py-matplotlib: add v3.4.2 (#23531) 2021-05-08 10:54:28 -07:00
Morten Kristensen
63d4d37c91 py-vermin: add latest version 1.2.0 (#23528) 2021-05-08 09:20:19 -05:00
Massimiliano Culpo
00a1418d10 clingo: don't skip tests that deal with file permissions
When we first merged the ASP-based solver, unit-tests
were run in a Docker container with root permissions
and that was preventing a few tests to succeed.

Since some time though, clingo is tested as a regular
user within Github Actions VMs, so we should start to
run checks again.
2021-05-08 06:14:44 -07:00
lukebroskop
daebf5caf8 craype fix for pdt (#23505)
* craype fix for pdt

adapt the pdt package for cce

* fix style issues
2021-05-07 17:16:13 -07:00
Jerome Soumagne
eb273f5c2f mercury: add version 2.0.1 (#23521) 2021-05-07 17:10:14 -07:00
lukebroskop
c1b314e564 CrayPE fix for pfunit (#23512)
allow cce to be the compiler
2021-05-07 17:08:41 -07:00
dsjense
45f84ee548 Bugfix/matplotlib clang lto (#23519)
* Disable link-time optimization for matplotlib when using Clang.

* Remove duplicated line.

* Disable LTO only for versions >= 3.3.0.
2021-05-07 23:56:28 +00:00
lukebroskop
c175d24c0e Add conflict for the CCE compiler (#23502)
Add conflict for the CCE compiler
2021-05-07 19:24:35 +00:00
Tom Payerle
5a7c339b0c geos: Fix config issues with python bindings using python3 (#23479) (#23480)
* geos: Fix config issues with python bindings using python3 (#23479)

This should fix some config issues when building geos with python
bindings and using python3 --- the geos configuration scripts had
a few python2-isms.

I only tested (lightly; geos built and I can import geos in python3)
on 3.8.1, but I did check that the patch can at least be applied
in 3.5.

I belatedly discovered that geos dropped all the SWIG bindings
in @3.9, so I also added some conflicts on the +python and +ruby
options to note that they are not supported in 3.9.

* geos: adding omitted patch file
2021-05-07 12:27:29 -05:00
Scott Wittenburg
91de23ce65 install cmd: --no-add in an env installs w/out concretize and add
In an active concretize environment, support installing one or more
cli specs only if they are already present in the environment.  The
`--no-add` option is the default for root specs, but optional for
dependency specs.  I.e. if you `spack install <depspec>` in an
environment, the dependency-only spec `depspec` will be added as a
root of the environment before being installed.  In addition,
`spack install --no-add <spec>` fails if it does not find an
unambiguous match for `spec`.
2021-05-07 10:07:53 -07:00
Peter Josef Scheibel
a3d58129ec return concrete spec (as is advertised in the docstring) 2021-05-07 10:07:53 -07:00
Peter Josef Scheibel
320eb4872d fix check when retrieving matching spec from environment when there is a match with a root spec as well as with a dependency of a root spec 2021-05-07 10:07:53 -07:00
Claire Guilbaud
d82a0c6799 Update py-hieroglyph (#23279) 2021-05-07 09:12:30 -05:00
Sergey Kosukhin
7c6f65d36b fdb: new package with deps (#23175) 2021-05-07 15:02:57 +02:00
Tiziano Müller
ccf9a11ff9 compilers: aocc is now also available as a Cray PrgEnv (#23289) 2021-05-07 14:55:32 +02:00
Adam J. Stewart
07ed432f27 GDAL: add v3.3.0 (#23426) 2021-05-07 14:54:12 +02:00
Harmen Stoppels
129de9083a Show useful error in build-env (#23458)
Instead of an out of bounds error tell the user to provide a spec
2021-05-07 14:53:08 +02:00
Mark W. Krentel
1698be3c3c libmonitor: add v2021.04.27 (#23460) 2021-05-07 14:37:20 +02:00
Robert Mijakovic
72f979a92b at-spi2-core: add v2.40.1 (#23467)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-07 14:32:39 +02:00
Robert Mijakovic
d9c149bb1a at-spi2-atk: add v2.38.0 (#23468)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-07 14:32:00 +02:00
Andrei Poenaru
8d016b87d2 gdbm: patch when using arm@21.0: (#23492) 2021-05-07 12:20:04 +00:00
Greg Sjaardema
b6b0fade46 CGNS:add v4.2.0, v4.1.2 and remove conflicting variant (#23481)
Added the checksum for 4.1.2 and 4.2.0

The `parallel` variant  did the exact same behavior as the `mpi` variant, but they had different default values than each other.  Both variants set the value of `-DCGNS_ENABLE_PARALLEL`, so it was unclear which variant was "winning" and could definitely result in a non-intuitive build.   Did a grep of the spack packages and none of them where using the `parallel` variant to control the cgns options.  Retained the `mpi` variant as that one is being used by multiple packages.

One issue that remains to be solved is that the default integer size has changed from 32-bit to 64-bit for the 4.2.0 release.  This is controlled by the `int64` variant which currently defaults to `OFF`.  There should maybe be some thought about changing the default to match the default of the current release, or maybe having a version-specific default...  For now, left the behavior as it has been for previous versions.
2021-05-07 14:14:56 +02:00
Howard Pritchard
4fb31be45d OpenMPI: dont apply atomic patch for 4.1.1 and later (#23483)
The patch available in spack does not patch
cleanly for the 4.1.1 and presumably later releases.

See Open MPI commit b8a8096a3f153380f95af8f285f48e926eb18bf1

Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-05-07 14:12:46 +02:00
Olivier Cessenat
588bdb1ef9 adms: new package (#23466) 2021-05-07 13:42:55 +02:00
Steven Smith
c131f13006 silo: add "hzip" and "fzip" variants (#23447)
SILO has optional support for compression libraries that require 
C++ (hzip and fpzip). This patch exposes those options as variants
to enable configuration of SILO without the C++ libraries for C 
applications. hzip and fpzip are enabled by default to preserve 
current behavior.
2021-05-07 13:40:04 +02:00
Gilles Gouaillardet
474ec196e6 gromacs: add v2021.2 (#23487) 2021-05-07 13:30:06 +02:00
Massimiliano Culpo
4402f89e39 ASP-based solver: minimize mismatch of targets (#23462)
Like compilers targets now try to minimize
mismatches, instead of maximizing matches.

Deduction of mismatches is reworked to be
the opposite of a match, since computing
that is faster.
2021-05-06 12:39:30 -07:00
Massimiliano Culpo
f83ec4d46f ASP-based solver: no intermediate package for concretizing together (#23307)
The ASP-based solver can natively manage cases where more than one root spec is given, and is able to concretize all the roots together (ensuring one spec per package at most).

Modifications:
- [x] When concretising together an environment the ASP-based solver calls directly its `solve` method rather than constructing a temporary fake root package.
2021-05-06 10:19:10 -07:00
Robert Mijakovic
2ba493cd63 py-keras: new version (#22711)
* py-keras: new version

* Adds missing dependencies.

* Removes the newline which is against formatting rules.

* py-keras: limits some dependencies to older versions

* py-keras: restricts dependencies

* pykeras: fixes dependency ranges :)

Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-06 11:35:28 -05:00
Sebastian Schmitt
be092e8625 py-brian2: Fix missing open range for python dependency (#23469) 2021-05-06 11:32:59 -05:00
Massimiliano Culpo
0fe3c5a07d amp: cleanup of the recipe (#23079) 2021-05-06 09:10:13 -06:00
Harmen Stoppels
e5d87b711d Reduce visual noise during distributed build (#23338) 2021-05-06 07:30:02 -07:00
Massimiliano Culpo
dfcd01f2c7 Delete spurious binary x.tgz (#23465) 2021-05-06 10:11:20 +00:00
Massimiliano Culpo
3761d9b3b9 mlperf-deepcam: fixed issue with cuda variant and deps (#23087) 2021-05-06 12:10:18 +02:00
Massimiliano Culpo
219eb09e59 Put a module object in sys.modules before executing module code (#23269)
The loading protocol mandates that the the module we are going
to import needs to be already in sys.modules before its code is
executed, so to prevent unbounded recursions and multiple loading.

Loading a module from file exits early if the module is already
in sys.modules
2021-05-06 11:53:40 +02:00
Dr. Christian Tacke
8f1b701660 boost: Switch download URL (#23422)
boost has moved its downloads from a bintray URL to a jfrog URL.

See: https://www.boost.org/users/news/boost_has_moved_downloads_to_jfr.html
2021-05-06 10:55:06 +02:00
Valentin Volkl
1127c9806f arrow: zstd+pic variant does not exist anymore (#23463) 2021-05-06 08:40:39 +00:00
Kai Torben Ohlhus
71c1d4c1f5 openblas: add version 0.3.15 (#23461) 2021-05-06 10:11:36 +02:00
Sreenivasa Murthy Kolam
946dc7b16a Enable cmake option -optimal for rocsolver (#23448) 2021-05-06 08:42:37 +02:00
Daniel Arndt
f9860de2d5 Update Kokkos for release 3.4.00 and add SYCL (#23433)
* Update Kokkos for release 3.4.00 and add SYCL

* add conflict if sycl was requested before 3.4
2021-05-05 14:13:16 -07:00
Robert Cohn
ab018c2081 intel-oneapi packages: support root installs (#23401)
When installing OneAPI packages as root (e.g. in a container), the
installer places cache files in /var/intel/installercache that
interfere with future Spack installs. This ensures that when
running an installation as a root user that this is removed.
2021-05-05 14:00:34 -07:00
Olivier Cessenat
d51deb4961 New version scorep 7.0 based on opari2-2.0.6 and otf2-2.3 +cube{w,lib}-4.6 (#23418) 2021-05-05 13:54:40 -07:00
Cyrus Harrison
a43939cafa conduit: change default ver to tagged release (#23451) 2021-05-05 13:52:44 -07:00
Jon Rood
9a3513b3ec Add parallel-netcdf version 1.12.2. (#23452) 2021-05-05 11:15:24 -07:00
Sebastian Schmitt
36a3bc465b Update Brian to 2.4.2 (#23442) 2021-05-05 11:44:13 -05:00
G-Ragghianti
a45cb952b7 Packages: BLAS++ and LAPACK++ (#23372)
* Adding hip support

* Added new blaspp version and rocm support.  Fixed error in mesa18 package.

* Correcting variant name.

* Code style fixes

* Change of name of library

* Change "make check" to correctly run from the build directory.

* Upgraded version to fix testing errors

* Fixed testing directory

* Removed unnecessary variant entry (already inherited from CudaPackage)

* Generalization of version matching logic

* Code style

* Corrected version requirement
2021-05-05 08:16:15 -07:00
Hadrien G
4f7bd11d61 acts: add v8.00.0 and v8.01.0 (#23438) 2021-05-05 13:09:53 +02:00
Ryan Mast
a96ef8baa0 helics: add v2.7.0 (#23437)
Adds v2.7.0 to the HELICS package versions.
2021-05-05 13:09:20 +02:00
Harmen Stoppels
43c74f2f17 Bump cmake (#23434) 2021-05-04 23:01:25 -07:00
Jen Herting
4b93323d82 New package: r-assertive-sets (#23427)
Co-authored-by: Alex Leute <acl2809@rit.edu>
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-05-04 20:27:25 -05:00
Andrew W Elble
901f7c14fb py-tensorflow: continue to constrain h5py version (#23420)
cleanup from #23386
2021-05-04 12:52:27 -05:00
Jen Herting
16b720effb New package: py-pytorch-lightning (#23353)
* lightning with friends

* fixed style errors in lightning

* [py-pytorch-lightning] fixed homepage

* [py-pytorch-lightning] removed release canidate version

* [py-pytorch-lightning] fixing some dependency listing issues

* [py-pytorch-lightning] removed py-pydepreciate

* [py-pytorch-lightning] more dependency cleanup

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-05-04 12:51:07 -05:00
Olivier Cessenat
2d9988c5b7 moreutils: add v0.65 and xsltproc(libxslt) dependency (#23419) 2021-05-04 19:42:29 +02:00
Paul
c748f5a765 Add Go 1.16.3 and 1.15.11 (#23423) 2021-05-04 08:26:34 -07:00
Robert Cohn
4ecfe7f09e sos: add package for sandia openshmem (#23414) 2021-05-04 15:12:22 +02:00
Andrew W Elble
6714ab9b57 rust: add v1.51.0 (#23064) 2021-05-04 15:09:46 +02:00
Robert Mijakovic
e2933b5c4b python: add v3.9.5 and v3.8.10 (#23421)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-05-04 14:54:25 +02:00
Harmen Stoppels
2efcfa9de1 autoconf, bison: drop dependency on help2man (#23407)
We don't have to rebuild their man pages
2021-05-04 11:46:38 +02:00
Tom Payerle
da2dbac794 hdf-eos2: add support for hdf+szip (#23346) 2021-05-04 10:07:29 +02:00
Stephen Hudson
acdcdcee75 libensemble: add v0.7.2 (#23416) 2021-05-04 09:28:16 +02:00
Massimiliano Culpo
8a65bcb7c9 archspec: updated external dependency (#23311)
Added support for Apple M1, extended support
for zen3 with more compiler flags.
2021-05-03 22:27:37 -07:00
Massimiliano Culpo
10389b2b51 Use Python's built-in machinery to import compilers (#23290) 2021-05-03 22:26:48 -07:00
Cameron Stanavige
88b30090ef scr: new release and dependency updates (#23378)
SCR moved to a component version some time ago, but never had a
release associated with these changes. SCR v2 is a legacy version
that is no longer being developed/supported. In preparation for an
upcoming SCR v3 release, there is now a 3.0rc1 release available to
users.
This adds the 3.0rc1 release to the spack package and deprecates the
older versions.

Additional changes include:
- Enforce using the main branches of the components when installing
scr@develop
- Enforce SCR v3 uses at least the recently released versions of each
of the components
- Use a simple `detect_scheduler()` function in an attempt to be
smarter about setting the default resource manager and not require
users to always manually provide the variant
- Add/update variants that were recently added to AXL and KVTree
components
- Fix cmake arg naming bug of setting `SCR_CONFIG_FILE`
- `SCR_ASYNC_API` is now being handled by a component and is only
needed by the legacy versions.
2021-05-03 17:19:37 -07:00
Chris White
6394604d0a hdf5: fix typo (#23415) 2021-05-03 16:58:35 -07:00
Chris White
c7fb93b1d7 remove rocm version that was causing failures due to being a weird point in BLT's develop history (#23377) 2021-05-03 16:11:44 -07:00
Chris White
fa12ca585a HDF5: Utilize flag_handler for handling all compiler flags (#23413)
* convert pic and compiler compat flags to flag_handler
2021-05-03 16:10:37 -07:00
Harmen Stoppels
28ef63bc1b help2man: drop gettext dependency (#23406) 2021-05-03 18:32:41 -04:00
Michael Kuhn
21ad8d4372 cmd: improve shell support help message (#23410)
Users sometimes set up Spack's shell support but still call `bin/spack`,
which results in the help message showing up again.
2021-05-03 18:28:28 -04:00
Greg Sjaardema
5a747b9183 Version update, new variant (#23409)
* Added checksum for recently released 4.8.0
* Added `enable-fsync` variant.  The `fsync` flag was added to the configuration as of version 4.1.0 and later.  Originally, it defaulted to `on`, but at version 4.3.0 and later, it was changed to default to `off` and a `enable-fsync` configuration flag was added to enable it.  

The spack package has the `--enable-fsync` specified with no way to disable for all builds of netcdf-c 4.1.0 and later.  This can cause horrendously slow I/O for certain use cases (e.g. 7 seconds with no-fsync versus 2300 seconds with fsync enabled).  With the new variant, the default build behavior matches the default of non-spack netCDF.
2021-05-03 14:21:07 -07:00
Olivier Cessenat
6ded2c38d1 Package cube has very tight dependencies on cubelib (#23395) 2021-05-03 22:47:41 +02:00
Jen Herting
c4c090ab65 [py-fsspec] added http variant (#23404)
* [py-fsspec] added http variant

* [py-fsspec] added conflict to enforce newer version for +http
2021-05-03 20:42:40 +00:00
mic84
435ecce2f5 amrex: add v21.05 (#23405) 2021-05-03 18:32:54 +00:00
Olivier Cessenat
bfab03088b otf2: add v2.3 (#23400) 2021-05-03 20:27:52 +02:00
Olivier Cessenat
08f7020e0a opari2: add v2.0.6 (#23397)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-05-03 20:13:01 +02:00
eugeneswalker
977eff4db2 flecsi: fix legion dependency specification so variants actually exist (#23391)
* flecsi: legion dependency has no variant +mpi, and +shared s.b. +shared_libs

* rename legion variant +shared_libs to +shared
2021-05-03 20:10:56 +02:00
Keita Iwabuchi
fc06c1e08f Metall package: add v0.13 and support test (#23403)
* Metall: add version 0.2

* Add Metall v0.3

* Update Metall package to v0.4 and v0.5.

* Metall package: add v0.6

* Metall package: add v0.7

* Metall package: add v0.8 and v0.9

* Add Metall package v0.10

* Metall package: set run_environment METALL_ROOT

* Metall package: removed blanks

* Metall package: add v0.11 and v0.12

* Metall package: change required cmake version

* Metall package: support build test

* Metall package: add v0.13

* Metall package: change to use setup_build_environment
2021-05-03 10:40:45 -07:00
Jen Herting
01eefa7519 New package: py-torchmetrics (#23352)
* lightning with friends

* [py-torchmetrics] added verison 0.2.0

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-05-03 16:19:48 +00:00
Jen Herting
4723e426a6 New package: py-tensorflow-hub (#23034)
* orginal version of tensorflow-hub

* [py-tensorflow-hub] updated url to pypi.io

* [py-tensorflow-hub] added version 0.12.0

* [py-tensorflow-hub] flake8

* [py-tensorflow-hub] Full package rewrite from @aweits

* [py-tensorflow-hub] added @aweits as maintainer

* [py-tensorflow-hub] flake8

* [py-tensorflow-hub] lots of join_path

* [py-tensorflow-hub] cleanup tmp_path/insttmp_path post install

* [py-tensorflow-hub] depends on setuptools

* [py-tensorflow-hub] fixing quoting

Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-05-03 16:04:56 +00:00
Tiziano Müller
61232796da llvm-doe: fix typo breaking "spack external find" (#23399)
Fixes the following error when 'flang' is found on the system:

   $ ./bin/spack external find
   ==> Error: name 'compiler' is not defined
2021-05-03 08:12:51 -07:00
Harmen Stoppels
74ed861657 Make gettext find libxml2 (#23393)
gettext uses a test with <libxml2/libxml/someheader.h> to locate a header,
and libxml2 itself includes <libxml/otherheader.h>, so both have to be
in the include path.
2021-05-03 08:03:35 -07:00
Harmen Stoppels
9c1c7ab6ca Use an environment variable to set the default stacktrace behavior (#23357) 2021-05-03 16:22:30 +02:00
Erik Schnetter
94f66d8ef8 silo: correct clang-related patch (#23361) 2021-05-03 16:15:44 +02:00
shanedsnyder
913bff0f67 darshan: add v3.3.0-pre2 release (#23370) 2021-05-03 15:32:33 +02:00
Harmen Stoppels
60f38291c2 ccache: add v4.2.1 and earlier, zstd support (#23039) 2021-05-03 13:18:36 +00:00
Itaru Kitayama
c39b53ffb3 neuron: add dependency on py-numpy (#23375) 2021-05-03 15:18:27 +02:00
Michael Kuhn
aa24c0de4b rocksdb: add v6.19.3 (#23384) 2021-05-03 15:16:53 +02:00
Michael Kuhn
653fbcc937 qt: add patches for gcc@11 (#23387) 2021-05-03 15:14:11 +02:00
Michael Kuhn
abd3e2bbfa cube: add v4.6 and v4.5 (#23389) 2021-05-03 15:12:09 +02:00
eugeneswalker
d0e3c28f34 arborx: kokkos hip backend is actually now called rocm (#23390) 2021-05-03 15:10:48 +02:00
Seth R. Johnson
d3d3b97616 py-hdf5: restore py-h5py~mpi ^hdf5+mpi (#23386)
* Revert "py-tensorflow: disable h5py/hdf5 mpi variant(s) if tensorflow is ~mpi (#21955)"

This reverts commit 8071be81c4.

* Restore mpi restrictions to py-tensorflow
2021-05-03 09:00:08 -04:00
Olivier Cessenat
f62b8077ab silo: fix zlib when using system external (#23392) 2021-05-03 08:57:27 -04:00
lpoirel
76578af912 mumps: add v5.4.0 and OpenMP support (#23143) 2021-05-03 14:46:53 +02:00
Harmen Stoppels
3ae8147dca libfuse add v2.9.9 (#23396) 2021-05-03 12:42:50 +00:00
Harmen Stoppels
3578132e76 Another binutils fix (#23337)
* Building binutils with gold implies building ld

* add +ld to llvm to make the old concretizer happy and add +gas to gcc since that's used in the package.py

* Remove sys
2021-05-02 23:27:43 +02:00
Hang Yan
83c46748e6 erlang: add new packages (#23362)
Add new 23.1, 23.2, 23.3 Erlang releases.
2021-05-02 12:56:27 -07:00
Itaru Kitayama
0250a0d4ce scalasca: Update variant releases (#23383)
* Add 4.6

* Add Cubelib 4.6

Co-authored-by: Itaru Kitayama <itaru.kitayama@riken.jp>
2021-05-02 10:04:18 -06:00
Erik Schnetter
3729fcdb4b gcc: Explicitly disable bootstrapping (#23360)
We need to explicitly disable bootstrapping when `~bootstrap` since GCC bootstraps by default.
2021-05-02 00:56:14 +02:00
Andrew W Elble
bdfdba7d73 py-horovod: fix compilation with mxnet enabled (#23369) 2021-04-30 18:55:44 -05:00
Chris White
a618594c28 BLT version lockdown (#23356)
* lock down packages that export targets to pre-BLT 0.4.0 so that they can move forward when ready

* don't default to 0.4.0
2021-04-30 22:57:44 +00:00
Chris White
d8390ee2fb HDF5: Suppress promoted warning that causes build failure on clang and gcc (#23354)
* simplify compiler flag logic and suppress warning that gets promoted to an error on certain files in gcc/clang
2021-04-30 15:04:06 -07:00
Keita Iwabuchi
46bce56cef Metall package: add v0.11 and v0.12 (#23373)
* Metall: add version 0.2

* Add Metall v0.3

* Update Metall package to v0.4 and v0.5.

* Metall package: add v0.6

* Metall package: add v0.7

* Metall package: add v0.8 and v0.9

* Add Metall package v0.10

* Metall package: set run_environment METALL_ROOT

* Metall package: removed blanks

* Metall package: add v0.11 and v0.12

* Metall package: change required cmake version
2021-04-30 14:51:07 -07:00
Seth R. Johnson
e359249d7e qt: update versions and URLs (#23316)
* qt: update versions and URLs

- Add LTS releases of 5.12.10, 5.9.9, 5.6.3
- Mark other minor versions of 5 as deprecated
- Use https
- The URL for older QT versions changed recently to "new_archive"
- Prefer xz instead of gz for >=5.6 because 5.6.3 isn't available as
  gz. This invalidates the SHA of 5.7-5.8.
2021-04-30 13:21:47 -04:00
eugeneswalker
93d873b116 variorum: new versions: 0.4.1, 0.4.0, 0.3.0, 0.2.0 (#23367) 2021-04-30 09:57:26 -07:00
Jen Herting
3732c26bad [py-fsspec] added version 2021.4.0 (#23350) 2021-04-30 10:09:19 -05:00
Jen Herting
463daf36f4 lightning with friends (#23351)
Co-authored-by: Sid Pendelberry <sid@rit.edu>
2021-04-30 10:08:19 -05:00
Andrew W Elble
0a259ab934 mxnet: new version 1.8.0 (#23358)
* mxnet: new version 1.8.0

use submodules on master
introduce constraints on cuda versions supported
handle USE_MKLDNN->USE_ONEDNN conversion

* * use define for USE_CUTENSOR
* fix up dependencies for 2.0.0+
2021-04-30 09:55:17 -05:00
Martin Hilgeman
bb038c3b6c quantum espresso: fix OpenMP support (#23220) 2021-04-30 08:17:01 +02:00
Olivier Cessenat
b2d92bbb9f Silo: making the HDF5 dependency optional (#22908) 2021-04-29 18:46:07 -07:00
Jordan Ogas
cb82e4b088 add charliecloud 0.23 (#23344) 2021-04-29 14:25:07 -07:00
Sreenivasa Murthy Kolam
c27c70acd9 rocm-4.1.0 release-add git repo path, modify hipfft package recipe (#23119) 2021-04-29 21:24:47 +02:00
eugeneswalker
3103d4a5d8 py-natsort: new versions (#23343) 2021-04-29 12:06:35 -07:00
eugeneswalker
d4f4754655 py-astroid: properly select py-wrapt dependency w/ when clause (#23341) 2021-04-29 12:06:23 -07:00
genric
56eb66e79a py-luigi: add v3.0.1-3 (#23246)
* py-luigi: add v3.0.1-3

* address review comments

* more review comments
2021-04-29 11:52:03 -05:00
darmac
3959da5a68 Add new package: py-openidc-client (#23277) 2021-04-29 10:15:01 -05:00
genric
adc55498d3 py-xarray: add 0.17.0 (#23336) 2021-04-29 10:09:08 -05:00
Olivier Cessenat
087110bcb0 Package mesa compilation dependency on binutils+plugins (#23335) 2021-04-29 16:43:01 +02:00
Adam J. Stewart
6b12000a7c py-scikit-learn: add v0.24.2 (#23330) 2021-04-29 10:05:51 +02:00
Glenn Johnson
75705c9992 relion: fix typo in the homepage (#23331)
The Relion package recipe had an extra "http://" in the url for the
homepage.
2021-04-29 10:05:35 +02:00
Itaru Kitayama
5b5c56c7f1 neuron: add variant for caliper (#23271) 2021-04-29 10:03:30 +02:00
Vicente Bolea
15d2e60c16 Adds Paraview 5.9.1-RC2 (#23327)
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2021-04-28 15:30:21 -07:00
Tom Payerle
c0e53827aa libtirpc: Fix directories returned for header files (#23332)
libtirpc puts its header files under prefix/include/tirpc, but
spack was returning just prefix/include for location of headers.

This will cause spack to return both prefix/include and
prefix/include/tirpc for headers, so both

include <rpc/xdr.h>

or

include <tirpc/rpc/xdr.h>

should work.
2021-04-28 15:08:42 -07:00
Robert Cohn
239e8db319 intel-oneapi-dnn: fix header/lib paths (#23326)
Help dependents find libraries/headers. Like intel-oneapi-mkl, this
package offers several different versions of libraries that conflict.
This PR chooses one of those versions. When
https://github.com/spack/spack/discussions/22749 is resolved, this
package should be updated to choose which libraries to use.
2021-04-28 14:06:36 -07:00
Chris White
c8084991b4 Honor global compiler flags (#23305) 2021-04-28 12:11:19 -07:00
Tom Payerle
51509dbad0 bzip2: Fix python error introduced in #23230 (See #23318) (#23320) 2021-04-28 11:01:15 -06:00
Gregory Lee
b510464f04 mesa: fix build with upstream patch (#23302) 2021-04-28 16:22:00 +00:00
Jen Herting
d5b3d075d2 alembic: new package (#22223) 2021-04-28 17:03:30 +02:00
Massimiliano Culpo
5b12568c4f Make Spack able to apply gz compressed remote patches (#22823)
Modified ncbi-rmblastn to retrieve patches from remote
2021-04-28 17:00:58 +02:00
BenWeber42
5cb5aac57e Fix intersection if a version is a prefix of another (#22941)
* Added test for version intersections when one is prefix of another

* Fix version intersection for prefixes
2021-04-28 08:28:09 -06:00
Massimiliano Culpo
6ab859fb45 bzip2: fix typo in package (#23312)
A recently merged PR had a typo that slipped through CI. Here's a fix.
2021-04-28 14:19:10 +00:00
Scott McMillan
f5e6c32495 findutils: update package for nvhpc (#23145)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-04-28 15:06:43 +02:00
Harmen Stoppels
3f4c9aeca7 Read colorization from environment variable, if command line is not set (#23130) 2021-04-28 13:03:25 +00:00
Christoph Junghans
9faa3221b3 py-espressopp: update to py3 (#23264) 2021-04-28 15:00:42 +02:00
Jen Herting
48d2ec99d8 ffmpeg: add v4.3.2 (#22573) 2021-04-28 14:53:06 +02:00
Michael Kuhn
20791b5882 gcc: add v11.1.0 (#23294) 2021-04-28 14:17:55 +02:00
Itaru Kitayama
b43ed76fa7 nest: depend on py-scipy when +python (#23306)
Co-authored-by: Itaru Kitayama <itaru.kitayama@riken.jp>
2021-04-28 12:17:09 +00:00
Itaru Kitayama
62a001dea6 scalasca: add v2.6 (#23299)
Co-authored-by: Itaru Kitayama <itaru.kitayama@riken.jp>
2021-04-28 14:14:05 +02:00
Jen Herting
13755d57c4 ghostscript: added v9.54.0, v9.53.3 + patch for freetype (#22393) 2021-04-28 13:54:41 +02:00
eugeneswalker
c27d7d7486 mesa18: depends on binutils+plugins for build (#23285) 2021-04-28 13:53:14 +02:00
Harmen Stoppels
94f894b1b2 binutils: default to +plugins (#23309) 2021-04-28 13:51:26 +02:00
Vicente Bolea
98f8689ccd paraview: add v5.9.1-RC1, make 5.9.0 preferred (#23226)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-04-28 13:39:34 +02:00
Peter Scheibel
10e4eeec9c bzip2: add pic/debug options (#23230)
* Add pic (for static) and debug variants

* explicitly add -g flag for +debug (even though it is in Makefile)
2021-04-28 13:16:57 +02:00
eugeneswalker
19c2ad8185 spath: zlib is a link dependency (#23303) 2021-04-28 12:52:45 +02:00
Cody Balos
d9804d31f9 sundials: fix cuda architectures typo and specify raja variants (#23293) 2021-04-28 06:49:14 -04:00
Seth R. Johnson
e14baffbcf vecgeom: add v1.1.13 (#23308) 2021-04-28 12:41:55 +02:00
Robert Underwood
159d3b3381 [tau]: Use compiler name instead of basename (#23247)
Previously the tau package got the cxx and cc names from
os.path.basename(self.compiler.cxx), however if the path to the compiler
looks like "/usr/bin/g++-10.2.0" then tau's custom build system doesn't
recognize it.  What we want instead is something that looks like "g++"
which is exactly what cxx_names[0] gives us.  We already did this for
fortran, so I am not sure why we didn't do it here.  Not doing this
causes a build failure when tau tries to use a polyfill (vector.h,
iostream.h) that doesn't seem to be packaged with tau.

Additionally, tau needs some help finding mpi include directories when
building with MPI, so we provide them.  Unfortunately, we can't just say
that the compilers are mpicc and mpicxx in the previous fix to have
these things found automatically.  This is because tau assumes we always
need the polyfill when the compilers are set to these values which again
causes a build failure.
2021-04-27 20:12:01 -07:00
Dmitri Smirnov
b23b126013 root: Add variant for veccore option (#23237) 2021-04-27 21:09:16 -05:00
Massimiliano Culpo
985e101507 Import hooks using Python's built-in machinery (#23288)
The function we coded in Spack to load Python modules with arbitrary
names from a file seem to have issues with local imports. For
loading hooks though it is unnecessary to use such functions, since
we don't care to bind a custom name to a module nor we have to load
it from an unknown location.

This PR thus modifies spack.hook in the following ways:

- Use __import__ instead of spack.util.imp.load_source (this
  addresses #20005)
- Sync module docstring with all the hooks we have
- Avoid using memoization in a module function
- Marked with a leading underscore all the names that are supposed
  to stay local
2021-04-27 16:55:07 -07:00
Pat McCormick
24c87e07b5 Legion package overhaul (#23252)
Complete overhaul of the Legion package to better capture a more
up-to-date set of configuration options and variants.  This update
adds additional flexibility and features that were requested by
users.

* Add version 21.03.0 and "stable" branch
* Remove all older numeric versions
* Add support for CUDA, Python, PAPI support and more
* Add maintainer
* This no longer uses the Spack `gasnet` package: it defaults to
  using an embedded gasnet or can be pointed to an external
2021-04-27 16:51:48 -07:00
Owen Solberg
6f0042b47b fix shadow checksum per #23263 (#23291) 2021-04-27 21:23:56 +00:00
Harmen Stoppels
e501f79d43 Make it possible to build git without man pages and native language support (#23066) 2021-04-27 22:47:59 +02:00
Vasileios Karakasis
99a5bf7892 Add ReFrame 3.5.3 (#23265) 2021-04-27 12:20:54 -07:00
Sreenivasa Murthy Kolam
b2d3d35528 Add git repo path for rocm packages (#23270) 2021-04-27 11:38:14 -07:00
Zack Galbreath
295377b2b4 Don't report configure errors to CDash for successful packages (#23286)
Convert configure errors detected by our log scraper into warnings when
the package being installed reports that it was successful.
2021-04-27 12:20:32 -06:00
Valentin Volkl
07e50c1732 prmon: add version 2.2.0 (#23207)
Switched to .zip source archives to avoid problems with spack checksum finding binary assets when excluding versions.
2021-04-27 10:56:18 -07:00
wspear
303e506f2b Add +plugins to binutils dependency (#23272)
Tau will build but instrumented applications will fail to link with tau if it is built with a binutils that does not include the plugins variant.
2021-04-27 10:36:17 -07:00
eugeneswalker
4179c8bd72 kvtree 1.1.1: updated checksum (#23262) 2021-04-27 09:34:24 -07:00
darmac
4f53975a2a Add new package: py-aiodns (#22138) 2021-04-27 07:16:39 -05:00
Tim Haines
cad06a15e0 Dyninst: add elfutils versioning (#19648) 2021-04-27 07:15:37 -05:00
Rémi Lacroix
42af3c16bf GLM: Add version 0.9.9.8. (#22467)
The CMake install target was removed in version 0.9.9.6 so update the package accordingly.
2021-04-26 16:58:12 -07:00
Jen Herting
0a6227870c New package: r-assertive-models (#23266) 2021-04-26 16:46:33 -06:00
Jen Herting
934d845806 New package: r-assertive-reflection (#23267) 2021-04-26 17:45:46 -05:00
Tim Haines
c23ffd89ff Dyninst: Add dependencies for v11.0.0 (#23121)
Also update the mpileaks unit test to avoid a conflict on CentOS 6
where Dyninst >=11.0.0 no longer builds due to a compiler version
conflict.
2021-04-26 13:53:53 -07:00
Drew Whitehouse
45b4dcb9ed add a package libcxxwrap-julia (#23076) 2021-04-26 14:04:11 -06:00
QuellynSnead
b7c4bfb2a7 hypre: Add a variant for unified memory support (#23258)
Enabling unified memory requires cuda to be enabled as well.
2021-04-26 12:55:37 -07:00
Chuck Atkins
7317b04318 ci: Remove leftover duplicate gitlab yaml (#23248) 2021-04-26 16:42:15 +00:00
Adam J. Stewart
418c78fdc9 py-scipy: add v1.6.3 (#23253) 2021-04-26 16:06:57 +00:00
Chuck Atkins
e3054c3318 ci: Generalize the GitLab CI pipeline yaml (#23225)
* ci: Generalize the GitLab CI pipeline yaml

* ci: Rename cloud_e4s_pipelines to the more general cloud_pipelines
2021-04-26 08:13:16 -06:00
Glenn Johnson
2473e0cc82 r-blavaan: new package (#23232) 2021-04-26 10:03:52 +02:00
miheer vaidya
d21339bae5 fasd: new package (#23238) 2021-04-26 02:02:20 -06:00
Glenn Johnson
7952a802ed r-brms: new package (#23233) 2021-04-26 10:01:47 +02:00
kurtsansom
4b62344163 p4est: add v2.3.1 (#23235) 2021-04-26 09:59:49 +02:00
Robert Mijakovic
afa3ddedba openmpi: add v4.1.1 (#23242)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-04-26 09:39:16 +02:00
Valentin Volkl
70955dbce3 py-hepunits: add v2.1.0 (#23244) 2021-04-26 09:37:26 +02:00
Valentin Volkl
40d8723d6d py-awkward: add v1.2.2, py-uproot: add v4.0.7 (#23245) 2021-04-26 09:37:07 +02:00
Massimiliano Culpo
d0eca2c639 clingo: add v5.5.0, v5.4.1 (#23239)
fixes #23236

Version 5.5.0 depends on Python 3.6 or later
and CFFI
2021-04-25 21:28:30 -07:00
Julius Plehn
0e43f52991 FLEXI: Updates cmake options according to recent changes (#23042)
* fixes cmake options

* adds several optional tools

* use tag & consistent names
2021-04-25 23:26:11 +02:00
Matthieu Dorier
769e549cd9 argobots: changed 'no' into 'none' for variant (#23171) 2021-04-23 14:47:42 -07:00
Glenn Johnson
5809ee6d26 New package: r-champ (#23221) 2021-04-23 14:45:42 -07:00
Andrew W Elble
2b2a26022b gcc package: fix build with +nvptx (#23165)
backport of 383400a6078d upstream to allow for cuda@11:
2021-04-23 14:45:18 -07:00
Glenn Johnson
94ef4e9eae New package: r-nonnest2 (#23222) 2021-04-23 14:29:52 -07:00
Glenn Johnson
e0c82fcf82 New package: r-shinystan (#23223) 2021-04-23 14:29:06 -07:00
Glenn Johnson
a5db2a7403 r-renv: new package (#23067) 2021-04-23 20:26:51 +00:00
Harmen Stoppels
fef05621a7 Bootstrap with -O3 in cmake (#23147) 2021-04-23 11:10:09 -06:00
romerojosh
ce664f6f5f Add NCCL 2.8.4 and 2.9.6. (#23219) 2021-04-23 16:57:06 +00:00
romerojosh
037e8deecb Add cuDNN 8.2.0 (#23214) 2021-04-23 16:41:43 +00:00
Rémi Lacroix
44136223f7 MUMPS: allow for more optimized builds (#23161)
* MUMPS: Use GEMMT BLAS extension when possible.

This should improve the performance and is recommanded by the developers.

* MUMPS: Add a new "openmp" variant.

* MUMPS: Add a "blr_mt" variant.

This improves performance when using OpenMP but might not be compatible with all multithreaded BLAS.
2021-04-23 18:19:15 +02:00
Miroslav Stoyanov
2c9068ead8 tasmanian: add v7.5, improved cuda and rocm support (#23148) 2021-04-23 16:48:08 +02:00
David Hadley
2f9bfd7e09 ROOT: fix pyroot build failure in v6.20.0 (#23038) 2021-04-23 16:46:27 +02:00
Andrew W Elble
c575b1ce9b openmm: add v7.5.0 (#23037) 2021-04-23 16:44:57 +02:00
Glenn Johnson
32368c7f46 r-rjava: set JAVAH environment variable (#23055)
Set the path to javah via the JAVAH environment variable. If it is
a version of java that does not have javah it will fall back to `javac
-h`. Without specifying this the build could pick up a javah from the
system.
2021-04-23 16:40:32 +02:00
Glenn Johnson
f246f6701a r-runjags: new package (#23058) 2021-04-23 16:39:44 +02:00
Glenn Johnson
675de93b32 r-lavaan: new package (#23138) 2021-04-23 08:39:25 -06:00
Glenn Johnson
7c6692b0cb r-colourpicker: new package (#23136) 2021-04-23 16:36:12 +02:00
Glenn Johnson
a7fb70853e r-isva: new package (#23137) 2021-04-23 16:35:40 +02:00
Glenn Johnson
0c56b59877 r-dmrcate: new package (#23151) 2021-04-23 16:28:24 +02:00
Gregory Lee
bcea5e7ba4 mpa and fgfs: add v1.1.1 (#23173) 2021-04-23 16:09:26 +02:00
snehring
c3fbe0f026 gmap-gsnap: add v2021-03-08 (#23178) 2021-04-23 16:02:56 +02:00
Glenn Johnson
a276f9405c augustus: add v3.4.0 and update package (#22879)
- add version 3.4.0
- add patch for bam2wig when version 3.4.0
- url format changed again, hopefully stable now
- added missing python dependency when version >3.3.1
- have older version compile with htslib, samtools ,bcftools
- new dependencies for version 3.4.0
    - sqlite
    - mysql-client
    - mysqlpp
    - lp-solve
    - suite-sparse
- refactored filtering code
- set python interpreter in scripts
2021-04-23 15:56:22 +02:00
Robert Mijakovic
ce6a617706 shadow: add v4.8.1 (#23185)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-04-23 15:51:35 +02:00
Tamara Dahlgren
19b9789b45 fontconfig: resolve tarball issue fcobjshash.h (#23190) 2021-04-23 15:37:25 +02:00
George Hartzell
6d789a5835 docs: be more precise on what spack add ... does (#23204)
This is as much a question as it is a minor fine-tuning of the docs.  I've been known to add things to an environment by editing the `spack.yaml` file directly.  When I read the previous version of this sentence, I was afraid that `spack add` was actually doing *two* things, modifying the `spack.yaml` and updating something else that defined the roots of the Environment.  A bit of experimentation suggests that editing the `spack.yaml` file is sufficient to change the roots.

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-04-23 13:29:19 +00:00
Greg Becker
80c8b11d77 mpich: post-configure patch for cce (#23193) 2021-04-23 15:22:39 +02:00
Valentin Volkl
30c81b127c pythia8: add v8304, fix copy-paste errors in configure arguments (#23028) 2021-04-23 14:55:04 +02:00
Cameron Stanavige
93976d018d er: add v0.0.4 (#23022)
This adds that new version to the package, updates the url, and
updates the hash of v0.0.3 for the new url.

This also updates the KVTree dependency as MPI is required to be
enabled in KVTree for er to work.

rankstr is now also required by er for recently added tests.
2021-04-23 06:46:18 -06:00
Valentin Volkl
5641923dfa py-particle: add v0.14.1 (#23216) 2021-04-23 14:15:49 +02:00
Tamara Dahlgren
6f25e5242e Docs: Updated copyrights in files still using 2020 as ending year (#23215) 2021-04-22 22:23:09 -07:00
Robert Pavel
e64fe11506 Initial Version of Ascent Miniapp Spackage (#23170)
Initial version of ascent miniapp spackage
2021-04-22 18:35:43 -07:00
Mark W. Krentel
09028f7407 hpctoolkit: fix patch from #22864 (#23149)
PR #22864 added a patch to hpctoolkit to fix an issue with gcc 10.x, and the patch was applied to all revs unconditionally.  But this was fixed in hpctoolkit master on Aug 11, 2020, so the patch should only apply to old revs.

Fixes #22951.
2021-04-22 19:07:13 -06:00
Itaru Kitayama
010e5761d6 NEST package: add version @master; fix ~python (#23211) 2021-04-22 14:35:00 -07:00
estewart08
b0e4950555 [AMD] - rocm-openmp-extras 4.1 updates. (#22998)
Update package with 4.1 sha keys.
Use variant to disable openmp in the build of llvm-amdgpu.
Set CPATH, LIBRARY_PATH so that clang knows to look in the rocm-openmp-extras for headers/libraries.
Disable flang warnings as Spack thinks they are errors.
In ROCm 4.1, the plugin changed names from hsa -> amdgpu.
Update HSA_INCLUDE for 4.1.0.
2021-04-22 12:11:39 -07:00
Kelly (KT) Thompson
c3733771e4 Update patchfile to allow xl+cuda builds. (#23201) 2021-04-22 12:10:12 -06:00
Harmen Stoppels
b904e9aa1c SIRIUS 7.2.1 (#23199) 2021-04-22 11:40:25 -06:00
Massimiliano Culpo
89ae2cb365 minisign: add v0.9 and v0.8 (#23202) 2021-04-22 10:31:56 -07:00
Frank Willmore
60c909cee5 prepend missing self. to spec (#23172) 2021-04-22 11:40:17 -05:00
Massimiliano Culpo
46088aa5da qa: install clingo-cffi from pip (#23163)
Clingo has been released on PyPI, so there
are no more concerns on our CI depending
on pypy.test for installing the wheel.

Apparently we have parts of Spack which
are not compatible with kcov > 3.4
2021-04-22 09:35:17 +02:00
Gregory Lee
7322a9e3be boost: only apply boostrap-toolset.patch for version 1.75 (#23174) 2021-04-21 21:25:07 -06:00
Glenn Johnson
e0549f5e88 ncbi-rmblastn: add v2.11.0 (#22788) 2021-04-22 05:20:51 +02:00
Jen Herting
5bec197de1 New package: r-assertive-files (#23183)
Co-authored-by: Alex Leute <acl2809@rit.edu>
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-21 17:24:22 -05:00
Jen Herting
ae045ac071 New package: r-assertive-matrices (#23184)
Co-authored-by: Alex Leute <acl2809@rit.edu>
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-21 17:20:36 -05:00
Jen Herting
da520d7bb3 New package: r-assertive-datetimes (#23180)
Co-authored-by: Alex Leute <acl2809@rit.edu>
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-21 17:18:45 -05:00
Harmen Stoppels
730fbae463 Disable multithreaded version of zstd by default (#23167)
* Disable multithreaded version of zstd by default

* zstd pthreads by default again! but configurable, and turned off in GCC
2021-04-21 22:17:08 +02:00
Jen Herting
ee76c329f8 New package: r-assertive-numbers (#23181)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-21 19:30:31 +00:00
Sergei Shudler
75fd886f62 MAGMA: Add e4s testsuite-inspired smoke test (#23011) 2021-04-21 11:12:59 -07:00
Massimiliano Culpo
d670f3aa40 lbann: remove deprecated variants in opencv (#23176) 2021-04-21 17:28:33 +00:00
Cameron Stanavige
0ea1b9705f axl: add version 0.4.0 (#23044)
* Swap .zip downloads with .tar.gz downloads (and update download
  hashes)
* New variants: intel_cppr and bbapi_fallback support
2021-04-21 10:24:30 -07:00
Cameron Stanavige
44d995b6d5 unifyfs: add version 0.9.2 (#22390)
UnifyFS has been integrated with updated versions of its mochi-margo
dependency (and mochi-margo's mercury and libfabric dependencies).

This removes support for version 0.9.0
2021-04-21 10:20:41 -07:00
Harmen Stoppels
febeca2b05 Fix GCC with zstd on CCentOS 7 where it doesn't consider the lib64 directory (#23169) 2021-04-21 10:25:14 -06:00
Cyrus Harrison
a97ef832d9 conduit package: avoid issue with subclass case (#23156)
* avoid issue with subclass case

* catch named exception
2021-04-21 10:21:21 -05:00
Adam J. Stewart
8182994cee OpenCV: overhaul package (#22340) 2021-04-21 03:01:04 -06:00
Massimiliano Culpo
3325eff486 ASP-based solve: minimize compiler mismatches (#23016)
fixes #22718

Instead of trying to maximize the number of
matches (preferred behavior), try to minimize
the number of mismatches (unwanted behavior).
2021-04-21 01:02:43 -07:00
Massimiliano Culpo
9a473d6ab3 ASP-based solver: suppress warnings when constructing facts (#23090)
fixes #22786

Trying to get optimization flags for a specific target from
a compiler may trigger warnings. In the context of constructing
facts for the ASP-based solver we don't want to show these
warnings to the user, so here we simply ignore them.
2021-04-21 01:02:10 -07:00
Brian Van Essen
4ee3934fb3 lbann: requirements of the new variants for the legacy versions (#23159)
Fixed the range of conduit for legacy versions of LBANN.
2021-04-20 18:33:05 -07:00
Chris White
58a897be0e check for package in spec not variant (#23157) 2021-04-20 18:13:15 -06:00
Glenn Johnson
09e80604f5 Catch rstudio based URL for cran attribute in create.py (#23072) 2021-04-20 19:03:42 -05:00
Brian Van Essen
fd9918ab6f Removed unnecessary code to put cuda_arch in DiHydrogen (#23158)
These were deprecated when the custom cuda_arch list was
removed.  Also fixed up the Aluminum dependencies for Hydrogen and
DiHydrogen.  Turns out that Aluminum v0.6.0 didn't have a correct
version in CMake and thus the interaction with older versions of
Hydrogen and DiHydrogen needed to be corrected.
2021-04-20 16:54:12 -07:00
Mansour Moufid
73d1c0911c libsigsegv: update to version 2.13. (#23155) 2021-04-20 22:39:10 +00:00
Vanessasaurus
b9a2b1c096 Fixing typo tty.fail -> tty.die and monitor docstrings (#23152)
This isn't a significant issue, but I noticed that the docstring incorrectly references "tty.fail" and I wanted to quickly fix it to reflect the correct command, tty.die. I also wanted to fix the docstrings to not be large clumps, to what @tgamblin suggested after I wrote this - having one line at the top that is a quick summary, and more verbose after that.
2021-04-20 14:53:30 -07:00
Ethan Stam
293c8bf621 Use xz instead of lzma. XZ utils provides lzma dev files (#23144) 2021-04-20 15:39:47 -04:00
Cameron Stanavige
5931995364 redset: add versions 0.0.5 and 0.0.4 (#22977)
Also update the url and hash of v0.0.3.
2021-04-20 12:04:58 -07:00
Cameron Stanavige
f4d8382a4f shuffile: add version 0.0.4 (#22976)
Also update the url and hash for v0.0.3.
2021-04-20 12:03:58 -07:00
KoyamaSohei
fa06dbb324 New package: pmemkv 2021-04-20 11:52:36 -07:00
Sinan
d0dcde7c69 Package libsecret: turn off gobj variant by default (#23070)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-04-20 11:49:05 -07:00
miheer vaidya
58789130a8 emacs package: add version @master (#23075) 2021-04-20 11:37:38 -07:00
Shintaro Iwasaki
a42c11ff0b argobots: support new variants (#23133) 2021-04-20 18:23:30 +00:00
iarspider
0fec636bf4 oracle-instant-client package: add dependency on libaio (#23080) 2021-04-20 11:22:51 -07:00
Massimiliano Culpo
750fa8d810 etsf-io: added missing mpi variant (#23083)
The variant was mentioned in a depends_on directive,
but never declared
2021-04-20 11:21:30 -07:00
Massimiliano Culpo
67afe7016f angsd: fix typo in variants (#23081) 2021-04-20 11:20:23 -07:00
Massimiliano Culpo
7dc9a0082b geopm: remove reference to nonexistent variant (#23084) 2021-04-20 11:19:29 -07:00
Glenn Johnson
afd69866d1 New package: r-mcmcpack (#23139) 2021-04-20 11:17:49 -07:00
Glenn Johnson
25a9a40a12 New package: r-missmethyl (#23140) 2021-04-20 11:16:59 -07:00
Glenn Johnson
639d66720f New package: r-projpred (#23141) 2021-04-20 11:15:40 -07:00
Massimiliano Culpo
8058aecd2a lammps: fix typo in variant name (#23085)
In two conflicts we used +adios instead of +user-adios
2021-04-20 11:55:29 -06:00
Brian Van Essen
5461411f21 Set the minimum version of NCCL for aluminum (#23135) 2021-04-20 09:49:13 -07:00
Glenn Johnson
7925705d1d r-experimenthub: new package (#23095) 2021-04-20 10:31:11 -06:00
Ryan Marcellino
f1d66b767d add py-setuptools dependency (#23120) 2021-04-20 11:13:42 -05:00
Tom Payerle
0c0fa26b4c New package: py-pymumps (#19526)
* New package: py-pymumps

Python bindings for MUMPS, a parallel sparse direct solver

* py-pymumps: fixing flake issues

* py-pymumps: fix dependency types

Following suggestion of @adamjstewart

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

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

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

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

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

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

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

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

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-04-20 11:12:13 -05:00
Matthieu Dorier
448ac2c68d json-c: added two versions and converted to cmake package (#23129) 2021-04-20 14:05:06 +02:00
Glenn Johnson
c10944e8fd r-bayesplot: new package (#23091) 2021-04-20 11:36:48 +02:00
Glenn Johnson
e005250555 r-illuminahumanmethylation450kmanifest: new package (#23100) 2021-04-20 03:36:32 -06:00
Glenn Johnson
89838bae1d r-champdata: new package (#23093) 2021-04-20 11:36:08 +02:00
Glenn Johnson
7b54389e12 r-compquadform: new package (#23094) 2021-04-20 11:35:47 +02:00
Glenn Johnson
5a3a014aae r-illumina450probevariants-db: new package (#23099) 2021-04-20 03:35:30 -06:00
Glenn Johnson
cbf7ad8cc0 r-fastica: new package (#23096) 2021-04-20 11:35:03 +02:00
Glenn Johnson
80e60ceb91 r-gamm4: new package (#23097) 2021-04-20 11:34:38 +02:00
Glenn Johnson
6cf91449d4 r-globaltest: new package (#23098) 2021-04-20 11:34:13 +02:00
Glenn Johnson
ba9eb19e5d r-illuminahumanmethylationepicanno-ilm10b4-hg19: new package (#23101) 2021-04-20 11:31:05 +02:00
Glenn Johnson
7ed05b2e5e r-illuminahumanmethylationepicmanifest: new package (#23102) 2021-04-20 11:26:47 +02:00
Tim Haines
a9862ba859 Boost: add v1.76.0 (#23118) 2021-04-20 11:24:27 +02:00
Glenn Johnson
c655e76109 r-prettydoc: new package (#23109) 2021-04-20 03:19:35 -06:00
Glenn Johnson
de004857ff r-pbivnorm: new package (#23108) 2021-04-20 03:19:15 -06:00
Glenn Johnson
6b2f63310e r-jade: new package (#23103) 2021-04-20 11:16:06 +02:00
Glenn Johnson
971e215e25 r-kpmt: new package (#23104) 2021-04-20 11:15:36 +02:00
Glenn Johnson
41e0d95e99 r-marray: new package (#23105) 2021-04-20 11:15:21 +02:00
Glenn Johnson
2f3ded37e1 r-shinythemes: new package (#23115) 2021-04-20 03:14:38 -06:00
Glenn Johnson
2b3efb40ca r-mcmc: new package (#23106) 2021-04-20 11:14:18 +02:00
Glenn Johnson
54f919018d r-optimx: new package (#23107) 2021-04-20 11:13:55 +02:00
Glenn Johnson
f14edd2a78 r-rpmm: new package (#23110) 2021-04-20 11:10:58 +02:00
Glenn Johnson
ccb0be2f7f r-rsconnect: new package (#23111) 2021-04-20 11:10:26 +02:00
Glenn Johnson
37263d7b71 r-ruv: new package (#23113) 2021-04-20 11:09:48 +02:00
Glenn Johnson
11c529fddc r-shinyjs: new package (#23114) 2021-04-20 11:09:19 +02:00
Glenn Johnson
f1acdf5f88 r-bridgesampling: new package (#23116) 2021-04-20 11:08:17 +02:00
Harmen Stoppels
173954e568 binutils: drop overly strict conflicts for assembler/linker (#23122)
This has been checked with gcc on ubuntu 16.04, which ships binutils 2.26 by
default, using spack's binutils 2.36. Only the combination +gas and ~ld
seems to trigger this incompatibility with debug symbols (gcc -g -O2
main.c fails with the error in the comment above the conflict)
2021-04-20 09:27:12 +02:00
Filippo Spiga
7e6b76301a Adding CUDA SDK 11.3.0 (#23051)
* Adding CUDA SDK 11.3.0

* Complying with Flake8 style checks
2021-04-20 00:07:10 -06:00
Dmitri Smirnov
6b33595ebf genfit: Add an older version, update dependencies (#20892)
- Add dependency on eigen package
- Add last version known to work with ROOT 6.16.00. Until recently GenFit lacked
any tagged versions, therefore, we use a commit hash
2021-04-19 20:17:38 -05:00
Sinan
2a7322c43a increment preferred version (#23077)
* increment preferred version

* move comment

Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-04-19 19:25:43 +00:00
Massimiliano Culpo
6ecec24105 nektools: add 'visit' variant (#23088) 2021-04-19 20:37:55 +02:00
Glenn Johnson
7fffa4a1e6 r-brobdingnag: add new package (#23092) 2021-04-19 17:20:44 +00:00
Billae
8fce9bef7b add debug variant for paraview (#22900)
* add debug variant for paraview

* add advanced_debug variant to set optionnal debug flags

Co-authored-by: Billae <eloise.billae@gmail.com>
2021-04-19 12:52:26 -04:00
Massimiliano Culpo
c144222d54 catalyst: mpi variant was never declared (#23082) 2021-04-19 12:41:44 -04:00
Harmen Stoppels
2d5f519d9b patchelf: add a patch from official repository (#23063) 2021-04-19 12:30:11 +02:00
Harmen Stoppels
0f47464df4 binutils: add option for assembler, constrain 'as' and 'ld' variants (#23065)
Avoid that the user builds the assembler without the linker, because you
may run into problems when the host linker is old:

https://wiki.gentoo.org/wiki/Binutils_2.32_upgrade_notes/elfutils_0.175:_unable_to_initialize_decompress_status_for_section_.debug_info
2021-04-19 11:55:39 +02:00
Harmen Stoppels
618edbe5d5 q-e-sirius: add dependency on pkgconfig (#23035) 2021-04-19 11:50:52 +02:00
Harmen Stoppels
4d48e09116 findutils: add v4.7.0 and v4.8.0, drop v4.6.0 patches (#23031) 2021-04-19 11:50:01 +02:00
Morten Kristensen
e47b1ff95c py-vermin: add latest version 1.1.1 (#23071) 2021-04-18 19:00:16 +00:00
Robert Mijakovic
7e56973d22 py-sip: fix for missing flex/bison (#22870) 2021-04-18 09:16:08 -05:00
arjun-raj-kuppala
181341c8b3 AMD ROCm 4.1 release: Add new package - hipfft (#23061) 2021-04-17 09:00:44 +02:00
Hadrien G
a4157173a0 acts: add v7.00.0 (#23024) 2021-04-17 08:03:57 +02:00
Jen Herting
e32cb16b5a New package: r-assertive-data-us (#23048) 2021-04-16 21:49:00 -06:00
Jen Herting
d5f07126cb New package: r-assertive-data (#23050) 2021-04-16 21:43:11 -06:00
Jen Herting
c017e4e2b0 New package: r-assertive-data-uk (#23047) 2021-04-17 03:38:10 +00:00
Jen Herting
70fadef7c2 New package: r-caretensemble (#23043) 2021-04-16 22:30:24 -05:00
Jen Herting
3f94fee04d New package: r-ggthemes (#23045) 2021-04-16 21:28:05 -06:00
Jen Herting
bf24bb3154 New package: r-assertive-code (#23046) 2021-04-16 22:21:11 -05:00
Pramod Kumbhar
ed9ec30176 Make OpenJDK portable for Mac OS (#23054)
* Add 11.02 and 11.0.1 versions for Mac OS
 * Update `install` method compatible for Mac OS

See also discussion in #21173
2021-04-16 21:10:38 -05:00
Cyrus Harrison
d22f4fc983 bugfix for conduit py module install path (#23057)
* add lost logic for setting python install dir

* conduit: fix missing pass of python install path during build
2021-04-16 19:16:09 -06:00
Chris Richardson
117857ec72 Updates for xtensor to 0.23.4 (#22898)
* Updates for xtensor

* Update package.py
2021-04-16 18:08:46 -07:00
Jen Herting
2347b723cc New package: r-assertive-strings (#22936) 2021-04-16 18:07:08 -06:00
Harmen Stoppels
7e49e74abd Depend on binutils with ld and plugins in GCC (#22989) 2021-04-17 01:16:08 +02:00
Bryan Herman
fbecd6d876 allow any Python 3.7 patch version for vtk@8 (#22912) 2021-04-16 15:44:50 -07:00
Scott McMillan
4919eac5d1 Update VASP package for NVIDIA compilers (#23020)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-04-16 16:43:10 -06:00
Scott McMillan
212d33ecda Update readline package for NVIDIA compilers (#23019)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-04-16 16:37:10 -06:00
Cameron Stanavige
c69b750a52 kvtree: add variant and new releases (#22852)
This updates the url and adds three versions to the package. This also adds a variant for the KVTree "file_lock" cmake option.
2021-04-16 15:32:38 -07:00
Robert Brunner
1a85c3cd43 str: When building @develop branch, use @master for several dependencies. (#22916) 2021-04-16 15:29:55 -07:00
Robert Mijakovic
4cca69f4ed llvm: new version, 12.0.0 (#23033)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-04-16 15:15:18 -07:00
Nichols A. Romero
d0a79fd80d QE April 2021 (#23049) 2021-04-16 15:10:11 -07:00
Jen Herting
363fa4242d New package: r-deriv (#22781)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-16 14:53:00 -07:00
Chris Richardson
cc5c44a695 Update to 2.6.2 (#23017) 2021-04-16 16:09:01 -05:00
Robert Cohn
89e9e44bf2 add maintainers to legacy intel product pacakges (#23030) 2021-04-16 16:07:59 -05:00
Pramod Kumbhar
546581aefe fix openjdk build error: Prefix import missing (#23014)
fixes #23013
2021-04-16 16:03:56 -05:00
Harmen Stoppels
b1ec5154db LLVM needs ld gold with plugin support (#22988)
See https://llvm.org/docs/GoldPlugin.html
2021-04-16 19:48:32 +01:00
Sergey Kosukhin
5d88f439f3 claw: bugfix for Cray compiler (#23027) 2021-04-16 15:11:57 +00:00
Sergey Kosukhin
06ca7f4f3e numactl: enable building with pgi@20: (#23026) 2021-04-16 16:34:48 +02:00
Vanessasaurus
e6de04d149 docs: spack does not have a variant debug for libelf (#23021)
Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-04-16 09:29:42 +02:00
Olivier Cessenat
5d42054483 octave-optim: more precise dependency constraints (#22909) 2021-04-16 09:17:40 +02:00
Zack Galbreath
080d9b094f Return non-zero from CDash reporter when errors are detected (#22962) 2021-04-15 15:11:08 -06:00
KoyamaSohei
e8454e498a update libpmemobj-cpp (#22897) 2021-04-15 13:51:03 -07:00
Evan Bollig
1a32f4a08c Added thread-MPI to build. (#22992) 2021-04-15 08:14:24 -07:00
AMD Toolchain Support
92291120cb Amdfftw and fftw: add variants and conflicts (#22940)
FFTW:
(1) Condition to ensure Quad precision is not supported in MPI under FFTW base class

AMDFFTW:
(1) Support for debug and quad precision for aocc compiler
(2) Dedicated variant for threads for enabling SMP threads
(3) Restricted simd features to 'sse2', 'avx' and 'avx2'
(4) Removed float simd features
(5) If debug option is enabled, configure option will be appended with --enable-debug option
(6) Condition to ensure amd-fast-planner is supported from 3.0 onwards under amdfftw derived class
(7) New variant amd-fast-planner - This option will reduce the planning time without much tradeoff in the performance.  It is supported for single and double precisions.
(8) Removed following flags for amdfftw - '--enable-threads', '--enable-fma' and '--enable-sse'
2021-04-15 07:00:40 -07:00
Marijn van Vliet
4ea1774be3 MDSplus: neww package (#21957)
MDSplus is a set of software tools for data acquisition and storage and
a methodology for management of complex scientific data.

https://www.mdsplus.org

Co-authored-by: Marijn van Vliet <marijn.vanvliet@aalto.fi>
2021-04-15 14:52:03 +02:00
Harmen Stoppels
1222493055 Update versions of several dependencies of Spack (#22990)
curl v7.76.1
expat v2.3.0 
file v5.4.0
libbsd v0.11.3 + add libmd dependency
pcre2 v10.36
sqlite v3.35.4
2021-04-15 11:49:31 +00:00
finkandreas
b0e5cce9c1 suite-sparse: fix building with CUDA 11 (#22971) 2021-04-15 13:28:45 +02:00
Harmen Stoppels
2638ac15e0 git: enable build without perl (#23005) 2021-04-15 13:11:27 +02:00
finkandreas
6c3bc63c1d trilinos: fix build with cuda-11 and cxxstd=14 variant (#22972) 2021-04-15 09:54:39 +00:00
iarspider
c122a22592 CORAL: new package at v3.3.3 (#22867) 2021-04-15 11:31:24 +02:00
Sergey Kosukhin
334e4f8685 hdf5: libtool patch for NAG compiler (#22935) 2021-04-15 03:23:37 -06:00
Glenn Johnson
df84a6a853 Bedtools2: add dependencies needed for latest version (#22999) 2021-04-15 11:21:08 +02:00
Adam J. Stewart
43939622ac cgal: fix typo in variant name (#23001) 2021-04-15 11:17:56 +02:00
Vanessasaurus
7f91c1a510 Merge pull request #21930 from vsoch/add/spack-monitor
This provides initial support for [spack monitor](https://github.com/spack/spack-monitor), a web application that stores information and analysis about Spack installations.  Spack can now contact a monitor server and upload analysis -- even after a build is already done.

Specifically, this adds:
- [x] monitor options for `spack install`
- [x] `spack analyze` command
- [x] hook architecture for analyzers
- [x] separate build logs (in addition to the existing combined log)
- [x] docs for spack analyze
- [x] reworked developer docs, with hook docs
- [x] analyzers for:
  - [x] config args
  - [x] environment variables
  - [x] installed files
  - [x] libabigail

There is a lot more information in the docs contained in this PR, so consult those for full details on this feature.

Additional tests will be added in a future PR.
2021-04-15 00:38:36 -07:00
Gregory Becker
393a105c06 update tutorial public key 2021-04-15 00:04:29 -07:00
Gregory Becker
a3714b3292 updates for new tutorial
update s3 bucket
update tutorial branch
2021-04-15 00:04:29 -07:00
vsoch
613348ec90 Use gethostname() instead of getfqdn() for lock debug mode
In debug mode, processes taking an exclusive lock write out their node name to
the lock file. We were using `getfqdn()` for this, but it seems to produce
inconsistent results when used from within some github actions containers.

We get this error because getfqdn() seems to return a short name in one place
and a fully qualified name in another:

```
  File "/home/runner/work/spack/spack/lib/spack/spack/test/llnl/util/lock.py", line 1211, in p1
    assert lock.host == self.host
AssertionError: assert 'fv-az290-764....cloudapp.net' == 'fv-az290-764'
  - fv-az290-764.internal.cloudapp.net
  + fv-az290-764
!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!
== 1 failed, 2547 passed, 7 skipped, 22 xfailed, 2 xpassed in 1238.67 seconds ==
```

This seems to stem from https://bugs.python.org/issue5004.

We don't really need to get a fully qualified hostname for debugging, so use
`gethostname()` because its results are more consistent. This seems to fix the
issue.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-04-15 00:01:41 -07:00
Gregory Becker
393542064d updates for new tutorial
update s3 bucket
update tutorial branch
2021-04-14 23:53:07 -07:00
Gregory Becker
c4141e16a7 update tutorial public key 2021-04-14 23:53:07 -07:00
AMD Toolchain Support
a306129fb0 fixing the config issue (#22930) 2021-04-14 21:30:49 -07:00
Nichols A. Romero
c011e2156f QMCPACK: add version 3.11.0 (#22978)
Additional changes:

* Boost dependency is only needed for build
* Make serial HDF5 the default
2021-04-14 14:52:03 -07:00
Sergey Kosukhin
05ebe52643 claw package: support for cce11 (#22986) 2021-04-14 14:49:48 -07:00
Andrew W Elble
5309417f19 gdrcopy: fix install of version >= 2.2 (#22987)
'prefix' option must be lowercase for versions >= 2.2
2021-04-14 14:34:47 -07:00
Erik Schnetter
51421100cf m4: Apply macOS patch also on Big Sur (#22993)
Without this patch, `m4` aborts on startup, as for the previous macOS releases.
2021-04-14 14:32:39 -07:00
Dr. Christian Tacke
066caa1d2a root: Add Version 6.24.00 (#22996)
* 6.24 needs nlohmann-json (and disable the builtin one)
* Move the git url to the top (allows easier building of
  tags, etc)
2021-04-14 14:32:07 -07:00
Andrew W Elble
7175c213b5 py-gym: new package (#22983) 2021-04-14 13:55:33 -05:00
Adam J. Stewart
2cc9b00d26 py-arcgis: add new package (#22837) 2021-04-14 09:36:13 -07:00
Harmen Stoppels
b6be3d0c0b q-e-sirius: migrate to CMake (#22984) 2021-04-14 15:42:30 +00:00
Simon Frasch
67c666efd0 spla: add version 1.4.0 (#22985) 2021-04-14 14:52:58 +02:00
Glenn Johnson
13de22a198 New package: mysqlpp (mysql++) (#22877) 2021-04-13 17:31:25 -07:00
arjun-raj-kuppala
f76952572f AMD ROCm 4.1.0 release: Bump up the version of migraphx recipe (#22889)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-04-14 01:22:46 +02:00
Glenn Johnson
dca4893c11 New package: lp-solve (#22876) 2021-04-13 15:48:40 -07:00
Glenn Johnson
7960c05922 mariadb-c-client: fix location of libraries (#22873)
Override 'libs' property to search for expected library name:
default Spack implementation can only locate libraries if they
match the package name.
2021-04-13 15:48:01 -07:00
Glenn Johnson
757528d5fb genemark-et package: add version 4.65 and new dependencies (#22966)
New version has new dependencies (which are also added here as new
packages):

* perl-mce
* perl-threads
* perl-thread-queue

The new version of genemark-et also has a different URL scheme.
2021-04-13 15:02:21 -07:00
Tamara Dahlgren
0618b43847 rdma-core bugfix: help CMake find Python dependency (#22891) 2021-04-13 14:48:20 -07:00
Sergey Kosukhin
1379bcf680 eccodes: add version 2.21.0 (#22901)
The CMake option ENABLE_PYTHON has been renamed to ENABLE_PYTHON2
starting version 2.20.0
2021-04-13 14:34:10 -07:00
Andrew W Elble
c98a0f0bb2 elmerfem: add version 9.0; fix version 8.4; add +gui variant (#22931)
* Add a +gui variant (default off) which adds dependencies on
  qt, paraview, and qwt
* Backport upstream patch when installing version 8.4 (this patch
  is already applied for versions >= 9.0)
2021-04-13 14:31:39 -07:00
Jen Herting
29f748993d New package: r-tester (#22945)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-13 14:19:15 -07:00
Glenn Johnson
ab87f7451a BRAKER package: Add version 2.1.6 (#22965) 2021-04-13 14:18:07 -07:00
Robert Mijakovic
1f91409368 git: add version 2.31.1 (#22974) 2021-04-13 13:59:31 -07:00
Robert Mijakovic
a7547d8ee9 Python: add versions 3.8.9, 3.9.4 (#22975) 2021-04-13 13:58:59 -07:00
Tiziano Müller
c6a08981a7 gaussian-view/vmd: add deps on X11/GL libraries (#22322)
Both binary packages would otherwise require X11 and Mesa libraries to
be installed on the host to run. Make sure they use the Spack-provided
libraries by patching the `rpath` via `patchelf`.
2021-04-13 13:42:00 -07:00
Tiziano Müller
dee030618f Documentation: update intel-parallel-studio instructions (#22248)
* Clarify stub compiler definition in compilers.yaml
* Update explanation of why stub compiler definition is needed
* Add note about required module definition when using Spack-installed
  intel-parallel-studio as intel-compiler
* Add suggestion about updating package config preferences based on
  choice of variants when installing intel-parallel-studio to avoid
  reinstallation
2021-04-13 13:31:14 -07:00
shanedsnyder
c801b0cb40 add darshan 3.3.0-pre1 pre-release (#22942) 2021-04-13 19:44:42 +00:00
G-Ragghianti
f2169e1f17 netlib-lapack: New versions (#22964) 2021-04-13 12:34:09 -07:00
Gregory Lee
6054a97d0a added dyninst 11.0.0 (#22949) 2021-04-13 12:14:06 -07:00
mic84
cb53259306 amrex: allow builds with clang and apple-clang (#22967) 2021-04-13 11:18:19 -07:00
Vicente Bolea
e020f343de VTKM: change preferred version (#22950) 2021-04-13 11:14:15 -07:00
Glenn Johnson
7a224c583a bcftools: add v1.12 (#22883) 2021-04-13 12:04:16 -06:00
Glenn Johnson
43ece950e5 htslib: add version 1.12 (#22882) 2021-04-13 10:56:48 -07:00
Harmen Stoppels
17ea01fbce bump cmake (#22961) 2021-04-13 09:46:19 -07:00
Adam J. Stewart
af52b8e29e py-pandas: add v1.2.4 (#22944) 2021-04-13 16:39:47 +00:00
Sreenivasa Murthy Kolam
6c632dad71 changes to enable rocm builds using git repo (#22943) 2021-04-13 15:36:34 +00:00
Harmen Stoppels
e7d392c49a Fix issue where binutils builds ld with ~ld (#22959)
Let's be very explicit and always add --enable or --disable.
2021-04-13 16:31:44 +02:00
Matthieu Dorier
e320b1d7e4 berkeley-db: making +cxx and +stl default to True (#22960) 2021-04-13 13:18:28 +00:00
Simon Frasch
c11af21da2 spfft: add version 1.0.2 (#22958) 2021-04-13 13:35:37 +02:00
Tiziano Müller
a580788d86 intel-parallel-studio: fix vtune installation for 2020+ (#22255)
vtune_amplifier got renamed to vtune_profiler for the 2020+ suite
2021-04-13 13:01:58 +02:00
Harmen Stoppels
0b9bd92511 SIRIUS and SpFFT versions need ROCm < 4.1 (#22957)
FindHIP.cmake script is not working for both 4.0 and 4.1.

It's fixed in their develop branches
2021-04-13 11:58:19 +02:00
Tiziano Müller
1f1b568e95 spglib: fix libs property for some multilib distros (#22956)
on multilib distros with lib/lib64 (rather than lib32/lib) the library ends up in a dir lib64/ instead of lib/, breaking the libs property (and the cp2k+spglib build)
2021-04-13 11:01:15 +02:00
yellowhat
bff713aeb2 gcc: add v10.3 (#22894) 2021-04-13 08:14:43 +00:00
Jen Herting
85e70600ed New package: r-tictoc (#22937) 2021-04-12 21:53:36 +00:00
Robert Mijakovic
a7d7f4e98a vtk: new version, 9.0.1 (#22880)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-04-12 15:52:07 -06:00
Jen Herting
62e256d995 New Package: r-assertive-types (#22933) 2021-04-12 21:48:13 +00:00
Harmen Stoppels
782a7dc690 Add new versions of patchelf (#22939) 2021-04-12 21:42:38 +00:00
Asher Mancinelli
e30aff9b6b Bump hiop version (#22884) 2021-04-12 14:30:46 -07:00
Glenn Johnson
976cf4496b samtools: add version 1.12 (#22885) 2021-04-12 14:28:04 -07:00
arjun-raj-kuppala
24f4a39d0e ROCm relase 4.1.0: Bump up version of rocm-validation-suite (#22946) 2021-04-12 20:46:10 +00:00
Pramod Kumbhar
96c984e0ce Add conflict for Mac OS for STAT package (#22919)
See https://github.com/LLNL/STAT/issues/19
2021-04-12 12:14:15 -07:00
jthies
087015e1ac packages/phist: new version 1.9.4 (#22922)
fix version 1.7.4 checksum
re 22758: phist-1.9.4 should resolve this issue, once confirmed I will add a patch for older versions.
2021-04-12 11:18:01 -07:00
Axel Huebl
982d3abcfd openPMD-api: 0.13.3 (#22910) 2021-04-12 18:10:52 +02:00
Peter Scheibel
51df9b0c9c Externals with merged prefixes (#22653)
We remove system paths from search variables like PATH and 
from -L options because they may contain many packages and
could interfere with Spack-built packages. External packages 
may be installed to prefixes that are not actually system paths 
but are still "merged" in the sense that many other packages are
installed there. To avoid conflicts, this PR places all external
packages at the end of search paths.
2021-04-12 11:19:29 +02:00
Glenn Johnson
0b472a91d1 maker: add v3.01.03 (#22915) 2021-04-12 11:15:03 +02:00
Chris White
edcd0703df blt: add v0.4.0 (#22917) 2021-04-12 11:14:05 +02:00
Glenn Johnson
7c06b472f5 bart: update package (#22926)
- add version 0.7.00
- make build work with intel-oneapi-mkl
- Add myself as maintainer
2021-04-12 11:05:53 +02:00
Martin Pokorny
e3b0d7ce0e casacore: change FFT variants for correct, version dependent, FFT choices (#22925)
Required dependency on FFTW for casacore@3.4.0:; optional for
casacore@:3.4.0, depending selection of FFTPack
2021-04-12 11:03:24 +02:00
Glenn Johnson
e27aa39427 mumax: constrain go version (#22927)
Mumax will not build with go-1.16.
2021-04-12 11:01:27 +02:00
Seth R. Johnson
b7f74f6ef6 qt: restrict python version when +webkit (#22928)
See #17270.

```
make[2]: Entering directory `/tmp/vavolkl/spack-stage/spack-stage-qt-5.14.2-63dapppjbq6vqh3le7pazsprijls7cfl/spack-src/qtwebengine/src'
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `echo Modules will not be built. Python version 2 (2.7.5 or later) is required to build QtWebEngine.'
make[2]: *** [errorbuild] Error 1
```
2021-04-12 11:00:32 +02:00
thelfer
9e702a3d44 tfel: add missing variant (#22558)
The variant was used but not defined.
2021-04-12 06:58:10 +00:00
Martin Pokorny
06f291a3cd libsakura: Change precision for fftw dependency depending on libsakura version (#22924)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-04-12 08:38:18 +02:00
Massimiliano Culpo
215d194482 ASP-based solver: assign OS correctly with inheritance from parent (#22896)
fixes #22871

When in presence of multiple choices for the operating system
we were lacking a rule to derive the node OS if it was
inherited.
2021-04-11 01:01:09 -06:00
Sreenivasa Murthy Kolam
291a2b541b fix 22802- fix incorrect arch list for rocblas (#22881) 2021-04-10 11:17:21 +02:00
Harmen Stoppels
391ab10337 Drop cxx berkeley-db (#22899) 2021-04-09 19:30:22 -07:00
Peter Scheibel
f624ce0834 Build process output: handle UTF-8 for python 3.x to 3.7 (#22888)
We set LC_ALL=C to encourage a build process to generate ASCII
output (so our logger daemon can decode it). Most packages
respect this but it appears that intel-oneapi-compilers does
not in some cases (see #22813). This reads the output of the build
process as UTF-8, which still works if the build process respects
LC_ALL=C but also works if the process generates UTF-8 output.

For Python >= 3.7 all files are opened with UTF-8 encoding by
default. Python 2 does not support the encoding argument on
'open', so to support Python 2 the files would have to be
opened in byte mode and explicitly decoded (as a side note,
this would be the only way to handle other encodings without
being informed of them in advance).
2021-04-09 18:10:01 -07:00
Jen Herting
8d52200cbc New package: r-ca (#22913)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-09 14:13:21 -06:00
Jen Herting
35ed2b26b5 New package: r-assertive-properties (#22914)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
Co-authored-by: Alex Leute <acl2809@rit.edu>
2021-04-09 15:08:18 -05:00
Robert Mijakovic
9e6ef0e697 Flatbuffers: fixes for GCC 10+ (#22829) 2021-04-09 10:46:48 -07:00
Seth R. Johnson
ca5c2de517 swig: mark conflict and add maintainer (#22911)
Closes #22407
2021-04-09 17:38:49 +00:00
Olivier Cessenat
4d288a802e New Package: STRIPACK (#22544) 2021-04-09 09:26:58 -07:00
Danny Taller
e21e26094e CARE and dependencies fixed to work with +cuda (#22874) 2021-04-08 20:54:37 +00:00
Ryan Marcellino
1c5c53f505 new package: py-pytest-qt (#22878) 2021-04-08 15:07:28 -05:00
Maciej Wójcik
4adb76c4c5 Gromacs CUDA patch + some version constraints (#22851) 2021-04-08 09:52:41 -07:00
darmac
4807956977 py-mo-pack: add LDFLAGS to fix build error (#22747) 2021-04-08 11:06:57 -05:00
darmac
8a0aec4c4d py-pyfftw: add LDFLAGS to fix build error (#22745) 2021-04-08 11:06:23 -05:00
Jen Herting
44d2444854 openal-soft: new package (#22265) 2021-04-08 16:55:45 +02:00
lpoirel
0ecce5797e petsc: forward +metis to mumps (#21291)
Co-authored-by: lpoirel <lpoirel@users.noreply.github.com>
2021-04-08 16:50:58 +02:00
darmac
e0f810956c libmcrypt: new package (#22144) 2021-04-08 16:48:47 +02:00
Todd Gamblin
19b6d3589a bugfix: spack config blame should print all lines of config (#22598)
* bugfix: fix representation of null in spack_yaml output

Nulls were previously printed differently by `spack config blame config`
and `spack config get config`.  Fix this in the `spack_yaml` dumpers.

* bugfix: `spack config blame` should print all lines of config

`spack config blame` was not printing all lines of configuration because
there were no annotations for empty lines in the YAML dump output. Fix
this by removing empty lines.
2021-04-08 16:37:16 +02:00
Robert Pavel
f27fefc3c1 Exodusii: added versions up to v2021-04-05 (#22819)
Fixed previously unspecified python dependency and ensured that spack's
python is what exodus@v2016 uses. Also, in the process, identified many
missing versions
2021-04-08 16:36:41 +02:00
Robert Mijakovic
7170c666a0 hpctoolkit: fix for GCC 10 (#22864)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-04-08 08:31:17 -06:00
Tomoyasu Nojiri
a0f9ffd80c manta: make it build on aarch64 (#22630) 2021-04-08 16:16:30 +02:00
Cyrus Harrison
68cec598dc glfw: make it build on MacOS (#22626) 2021-04-08 14:14:14 +02:00
Harmen Stoppels
65563946e3 squashfs: ensure we install with required options (#22863)
Currently the make install step uses the default variables, which causes
things to rebuild with default options.
2021-04-08 14:11:40 +02:00
lorddavidiii
5b77046e20 ncurses: add determine_variants for abi version (#22647) 2021-04-08 14:10:36 +02:00
Toyohisa Kameyama
d805be02ec autotools: ensure config.guess and config.sub are writeable before patching them (#19837) 2021-04-08 14:07:43 +02:00
iarspider
da88c0e6ff Add slightly older version of Oracle Instant Client (#22862) 2021-04-08 13:59:42 +02:00
darmac
70e132dd9a collectd: add v5.12.0 (#22746)
Changed url to use release tarball instead of repo snapshot
as this permits to drop build deps
2021-04-08 13:47:55 +02:00
Adam J. Stewart
cca5f260e5 py-python-certifi-win32: add new package (#22843) 2021-04-08 13:33:04 +02:00
Filippo Spiga
5500eed60c NVHPC: add v21.3 (#22860) 2021-04-08 09:06:53 +00:00
Scott McMillan
30153b1064 tar: make it build with nvhpc (#22853)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-04-08 10:57:05 +02:00
Scott McMillan
2a7f588612 kim-api: support the NVIDIA compiler (#22857)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-04-08 10:55:32 +02:00
Adam J. Stewart
e38aac8cb6 py-wincertstore: add new package (#22844) 2021-04-08 02:55:10 -06:00
Glenn Johnson
8246e4dde0 Patch to fix mariadb and mariadb-c-client packages for cmake-3.20 (#22854) 2021-04-08 10:50:17 +02:00
Vicente Bolea
f1f5f9bf5b vtkm: add v1.6.0-rc1, make v1.5.1 preferred (#22855)
Signed-off-by: Vicente Adolfo Bolea Sanchez <vicente.bolea@kitware.com>
2021-04-08 10:45:05 +02:00
Dr. Christian Tacke
7e17fb1ae1 root: add conflict with intel-oneapi-tbb (#22850)
As originally noted, ROOT 6.22 does not work with intel's
TBB >= 2021.1. So we need to also conflict with the newer
package (intel-oneapi-tbb)
2021-04-08 10:38:46 +02:00
Sreenivasa Murthy Kolam
43bdbc8234 bumpup version for rocm-debug-agent,rocprofiler,rocsolver for rocm-4.… (#22722) 2021-04-07 21:16:56 +00:00
Kelly (KT) Thompson
33bcc0ac89 [package][new version] Provide draco-7.10.0. (#22846) 2021-04-07 21:03:46 +00:00
Sreenivasa Murthy Kolam
56418bac39 bump up version for rccl for rocm-4.1.0 release (#22762) 2021-04-07 22:55:20 +02:00
Adam J. Stewart
77a211dc46 py-requests-ntlm: add new package (#22842) 2021-04-07 13:53:58 -07:00
Dan Bonachea
f89b5e1e84 Add new UPC++ release version (#22849) 2021-04-07 20:36:45 +00:00
Martin Pokorny
355b7787d4 Remove ~mpi variant from fftw dependency (#22848) 2021-04-07 13:27:42 -07:00
Adam J. Stewart
e349ae26fc py-ntlm-auth: add new package (#22841) 2021-04-07 12:25:22 -07:00
Asher Mancinelli
f365cb4535 Add ExaGO develop branch (#22847) 2021-04-07 18:48:35 +00:00
Robert Mijakovic
9c86e919cd FFTW: update pfftw patch for FFTW 3.3.9 (#22801) 2021-04-07 11:23:07 -07:00
Glenn Johnson
e9c4123f97 Merge py-uproot4 into py-uproot (#22831) 2021-04-07 13:20:36 -05:00
Adam J. Stewart
995b6556c9 py-lerc: add new package (#22839) 2021-04-07 11:15:26 -07:00
Adam J. Stewart
868bc1db0a py-keyring: add new package (#22838) 2021-04-07 11:07:05 -07:00
Adam J. Stewart
86055cdbdd py-ujson: add new version (#22835) 2021-04-07 11:03:39 -07:00
Adam J. Stewart
ae43ecc7ba ImageMagick: specify how to find libraries (#22833) 2021-04-07 10:50:37 -07:00
Adam J. Stewart
e14e6fbbd2 py-importlib-metadata: add new version (#22836) 2021-04-07 10:46:01 -07:00
Erik Schnetter
db0f181ec1 New package: mmv (#22815) 2021-04-07 10:44:00 -07:00
Robert Mijakovic
64d8e4f5ad R: new version, 4.0.5 (#22840)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lxp.lu>
2021-04-07 10:41:13 -07:00
Erik Schnetter
c843a5b585 ssht: New versions 1.3.6, 1.3.7 (#22832) 2021-04-07 11:40:10 -06:00
Glenn Johnson
ef188a1e12 new package: gatetools (#22659)
* new package: gatetools

This PR adds the gatetools package and dependencies. The gatetools
package is a set of command line tools for gate. Since it is primarily a
CLI, although python modules can be loaded, it is named gatetools as
opposed to py-gatetools.

* Fix quote characterss to avoid test error

* Found another UTF8 character that was tripping up tests

* Another UTF-8 character to replace

* Remove py-python-box dependency and package file

* Make numpy a variant

- py-setuptools needs to be a run dependendency
  This was masked by py-numpy having py-setuptools as a run dependency.

* Add missing build depency on py-pytest-runner
2021-04-07 17:39:53 +00:00
Glenn Johnson
7c87ebeb91 Some improvements to gate package (#22656)
- set constraint for geant4 to version 10.6 as gate does not work with
  geant-10.7+
- set GATE_USE_ITK: Although RTK is built under ITK, there are some ITK
  macros that need to be set explicitly.
2021-04-07 12:13:05 -05:00
Sergey Kosukhin
253c0d0ebb hdf5: avoid compilation with -I/usr/include (#22808) 2021-04-07 09:49:16 -07:00
Vasily Danilin
ccc90e3a79 Integrate oneAPI 2021.2.0 release (#22821) 2021-04-07 09:44:12 -07:00
Robert Cohn
c8b4414230 [oneapi] fix mkl deps, externally installed, and docs (#22607) 2021-04-07 10:31:08 -06:00
Evili del Rio
6c16f5c5d5 Py py spy add libunwind 1 (#22827)
* Add missing libunwarp dependency

py-py-spy fails to build with:
  = note: /bin/ld: cannot find -lunwind
          /bin/ld: cannot find -lunwind-ptrace
          /bin/ld: cannot find -lunwind-x86_64
          collect2: error: ld returned 1 exit status

* Correct libunwind instead of libunwarp

* Change libunwind dependency to unwind
2021-04-07 16:10:08 +00:00
Evili del Rio
cfbb4abb79 Update package.py (#22826) 2021-04-07 10:44:02 -05:00
Mosè Giordano
ad3eb98c4b libblastrampoline: Add version 3.0.4 (#22830) 2021-04-07 15:33:27 +00:00
Cameron Rutherford
c4a83aa22c Create ExaGO Package (#22734)
Co-authored-by: Asher Mancinelli <asher.mancinelli@pnnl.gov>
2021-04-07 13:48:46 +02:00
Julius-Plehn
41ed95dbdf iozone: adds 3.491 and fixes permissions (#22817) 2021-04-07 12:15:21 +02:00
Severin Strobl
b7d72e26bb otf2: patch for uninitialized variable (#22719)
As pointed out in https://github.com/STEllAR-GROUP/hpx/issues/5239,
there is an issues in OTF2 <=2.2 where a variable is not properly
initialized. As currently no release of OTF2 is available fixing this,
the patch should be applied.
2021-04-07 11:55:24 +02:00
Vasileios Karakasis
58edc361be ReFrame: add v3.5.1 and v3.5.2 (#22820) 2021-04-07 09:06:34 +00:00
Scott McMillan
51ac05483d Update packages for NVIDIA HPC SDK 21.1 (#21975)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-04-07 09:41:43 +02:00
arjun-raj-kuppala
c188575cfe roctracer-dev: add v4.1.0 (#22812) 2021-04-07 09:26:01 +02:00
Harmen Stoppels
3caf531f04 Add libxc 5.1.3 (#22816) 2021-04-07 09:23:26 +02:00
Brian Van Essen
4d417dcf2d lbann: remove the specification of the high performance linkers (#22818)
Allow the user to put them on the command line.
2021-04-07 09:14:06 +02:00
archxlith
97d237dafa py-scikit-image: add new version (#22363)
* [py-scikit-image] Added py-setuptools back into depends_on. Otherwise it is putting skimage in scikit_image-version-pyX.Y-arch.egg dir under site-packages

* [py-scikit-image] Added latest version

* [py-scikit-image] Added py-numpy version dependency when package version greater than 0.18

* [py-scikit-image] Updates to python dependency

* Fix typo

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-04-07 03:32:38 +00:00
Adam J. Stewart
dbdb72d0ea py-statsmodels: add v0.12.2 (#22620) 2021-04-06 14:44:33 -07:00
Robert Mijakovic
50f5ec7abf valgrind: add version 3.17.0 (#22752) 2021-04-06 13:57:48 -07:00
iarspider
0166f7db08 New package: Oracle instant client (#22797) 2021-04-06 13:56:33 -07:00
darmac
23422dcc59 tcpdump: add version 4.99.0 (#22803) 2021-04-06 13:33:43 -07:00
Xavier Delaruelle
9505af42ff environment-modules: add version 4.7.1 (#22811) 2021-04-06 20:23:01 +00:00
Desmond Orton
838bba70c6 salmon: New patch (#22686) 2021-04-06 12:37:32 -07:00
Glenn Johnson
442241d477 new package: py-python-box (#22814) 2021-04-06 14:36:53 -05:00
Harmen Stoppels
a989521052 Squashfuse: Enable or disable static and shared libs, and allow min size builds too, useful for appimages (#22669)
* Enable or disable static and shared libs, and allow min size builds too, useful for appimages

* Fix master version
2021-04-06 14:00:32 -05:00
Harmen Stoppels
bbc666a1d2 meson: added variants, changed defaults for the build system (#22715)
- Use debugoptimized as default build type, just like RelWithDebInfo for cmake
- Do not strip by default, and add a default_library variant which conveniently support both shared and static
2021-04-06 17:57:31 +02:00
Jen Herting
a4c3bc9893 New package: py-ilmbase (#22783)
* [py-ilmbase] created template

* [py-ilmbase] added dependencies and configuration options as necessary

* [py-ilmbase] added homepage and description removed fixmes

* [py-ilmbase] shortened lines for flake8
2021-04-06 09:55:40 -05:00
Robert Mijakovic
b6668a1146 paraview: adds new cuda target, ampere (#22750)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-06 16:54:35 +02:00
Seth R. Johnson
1ed44f20f2 m4: force path where to look for autoconf (#22765)
Uses the M4 environment variable
2021-04-06 10:21:38 +00:00
Michael Kuhn
85cdb3d250 xfsprogs: add 5.11.0 and fix build with newer versions of gcc (#22665)
xfsdump depends on an older version of xfsprogs that does not build with
recent versions of gcc.
2021-04-06 11:21:48 +02:00
ravil-mobile
8b4cf24ba7 hipsycl: add v0.9.1 which partially implements SYCL 2020 standard (#22770)
Co-authored-by: ravil <ravil.dorozhinskii@tum.de>
2021-04-06 11:21:05 +02:00
Gregory Lee
5b1fa20f87 stat: deprecate versions prior to 4.0 (#22650) 2021-04-06 11:16:54 +02:00
Sergey Kosukhin
47c13bc6ca cdo: help libtool to find the correct paths to libraries (#22670)
- Add a maintainer
- Help libtool to find the correct paths to libraries
- Handle externals from system directories
- Enable eccodes for older versions
2021-04-06 11:15:29 +02:00
Gilles Grospellier
fbed5d1eb5 dotnet-core-sdk: add v5.0.4 and v3.1.13. (#22217) 2021-04-06 03:06:50 -06:00
Glenn Johnson
a586b8df20 itk: add v5.1.2 (#22655) 2021-04-06 11:03:53 +02:00
Harmen Stoppels
d2bf74242e libtree: add v1.2.1 (#22795) 2021-04-06 09:01:08 +00:00
Thomas Gruber
cac8646e1c likwid: add v5.1.1 (#22672) 2021-04-06 10:59:38 +02:00
Robert Mijakovic
f9837d8c66 qwt: add v6.1.6 (#22713)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-06 10:45:09 +02:00
Robert Mijakovic
1424dc6147 rdma-core: add v34.0 (#22710)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-06 10:44:46 +02:00
Axel Huebl
710d096b43 Update mailmap (#22739) 2021-04-06 10:32:35 +02:00
darmac
239be21391 libpcap: add v1.10.0, v1.9.1 (#22741) 2021-04-06 10:31:15 +02:00
darmac
4668f34682 capnproto: add v0.8.0 (#22743) 2021-04-06 10:23:49 +02:00
Harmen Stoppels
0fcda35a71 spack location: fix usage without args (#22755) 2021-04-06 08:17:58 +00:00
Robert Mijakovic
8c5f4c9c94 spark: add v3.1.1, v3.0.2, v3.0.2, v2.4.7 (#22753)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-06 10:14:28 +02:00
Tiziano Müller
d0a2e354bb anaconda3: add v2020.11 (#22576) 2021-04-06 10:02:57 +02:00
Jen Herting
91bd16a850 r-assertive-base: new package (#22780)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-06 09:46:06 +02:00
Amiya Maji
7e6386803e fltk: add explicit dependency on gl and a variant to activate it (#22761)
* The fltk package can build libraries with opengl support. By default, the configure script looks for opengl headers in the sytem include paths. If 'devel' packages have not been installed on the system it omits the 'ftlk_gl.so' library. This can break packages like 'octave' which expects 'fltk' to have opengl support and looks for the library 'fltk_gl'.

Make opengl support explicit in fltk by adding a dependency on 'gl' and adding a new variant of the same name 'gl' (default On).

With these modifications 'fltk_gl' and 'octave' build successfully on CentOS8.

The default behavior is to always enable opengl.

https://www.fltk.org/doc-1.3/intro.html
2021-04-06 09:45:00 +02:00
Greg Sjaardema
8dab9f0a81 seacas: add v2021-04-05 (#22784) 2021-04-06 09:41:11 +02:00
Andrew W Elble
a57f56c5b9 openmpi: allow to build with ^slurm ~pmi for >3.0.0 with PMIx (#22086) 2021-04-06 09:40:33 +02:00
Brian Van Essen
023524365c hydrogen, lbann: forward the CXXFLAGS to the HIP_HIPCC_FLAGS variable. (#22744) 2021-04-06 09:38:37 +02:00
Harmen Stoppels
802f4d9ffa zstd: add v1.4.9, switch to cmake to configure more easily (#22668)
Also:
- Add variants to control the build
- Add a maintainer
- Add master version
2021-04-06 09:37:08 +02:00
Robert Mijakovic
fc5a50aa83 hdf5: patch for BOZ literal constant error when compiled with GCC 10. (#22509) 2021-04-06 01:13:11 -06:00
Seth R. Johnson
26c7f02873 doxygen: add version restriction (#22773)
This triggered on my mac because clingo seems to have bootstrapped a
very old version distributed by apple.
2021-04-06 09:09:01 +02:00
Andrew W Elble
e5c7723276 stress-ng: new package (#22777) 2021-04-06 09:07:56 +02:00
Harmen Stoppels
eb6f4c740b Add patch for latest hwloc@:1 to locate ncurses (#22776)
* Add patch for latest hwloc@:1 to locate ncurses

This way we don't have to depend on ncurses~termlib, which may run into
issues when another package explicitly depends on ncurses+termlib

* Move termcap to the back, cause it's a system symlink on macos and isn't set by spack
2021-04-06 09:00:22 +02:00
Andrew W Elble
6e48e29c75 gpu-burn: add v1.1 and "master" (#22778) 2021-04-06 08:57:03 +02:00
Desmond Orton
1c0230f7d0 rnaquast: add new package (#22648) 2021-04-06 08:49:58 +02:00
Glenn Johnson
65b03a9f03 trf: add v4.09.1 and other updates (#22782)
- add new version, 4.09.1
- use github url
- convert to autotools package
- deprecate version 4.07b: This version requires manual download and is
  a binary only installation.
2021-04-06 08:48:04 +02:00
Glenn Johnson
6df1b509fa repeatmasker: update and fix package (#22785)
- version 4.0.7 was not building
- version 4.0.9 was not setting search correctly due to an extra "return"
  in config
- added version 4.1.2-p1
- new version needs py-h5py
- new version does not need utf8 patch
- url format changed
2021-04-06 08:35:51 +02:00
Glenn Johnson
a4f19853b8 hmmer: add v3.3.2 (#22787) 2021-04-06 08:26:22 +02:00
Andrew W Elble
b924440f79 exabayes: add v1.5.1 (#22789) 2021-04-06 08:11:48 +02:00
Adam J. Stewart
3336fff229 Remove erroneous warnings about quotes for from_source_file (#22767) 2021-04-06 07:13:54 +02:00
Axel Huebl
c1cf643780 libfabric: add v1.12.1 (#22790)
Add latest patch release to fix build issues with unconditional
usage of `infiniband/ib.h`
2021-04-06 07:06:01 +02:00
Valentin Volkl
1908e6834d qt: backport build issue fix on 5.14 due to isystem (#22772) 2021-04-04 09:55:42 -04:00
Cameron Stanavige
bfb3b55414 rankstr: add v0.0.3 (#22763) 2021-04-03 21:11:37 +02:00
Jen Herting
3a36ca4b36 New package: r-anytime (#22624)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-02 21:09:50 -05:00
Jen Herting
b51363e0ac New package: r-pheatmap (#22617)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-02 20:57:09 -05:00
Jen Herting
0d4e0b8198 New package: r-amelia (#22623)
Co-authored-by: Alex C Leute <aclrc@rit.edu>
2021-04-02 20:54:29 -05:00
Zack Galbreath
7cc2db1b4e Check against a list of known-broken specs in ci generate (#22690)
* Strip leading slash from S3 key in url_exists()

* Check against a list of known-broken specs in `ci generate`
2021-04-02 17:40:47 -06:00
Harmen Stoppels
69d123a1a0 Document unzip (#22723) 2021-04-02 20:56:24 +00:00
Desmond Orton
76b54816cf New package py-gffutils (#22552) 2021-04-02 22:33:20 +02:00
Axel Huebl
2dbaf23fca Ascent: CUDA ~shared (#22760)
Add a conflict for CUDA and shared libraries in Ascent.
The new concretizer will automatically change the default for
Ascent in that case. Until then, dependencies like WarpX need
to hint the `~shared` wish explicitly.
2021-04-02 12:16:27 -07:00
Axel Huebl
5a75f7e0d6 WarpX: 21.04 (#22740)
Update WarpX: add first tagged version.
2021-04-02 14:37:56 -04:00
Robert Mijakovic
d978d72e19 py-wheel: new version (#22751)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-02 09:56:16 -05:00
iarspider
9f90659aa7 igprof: new package (#22666) 2021-04-02 15:41:58 +02:00
darmac
d528ff6e5a sandbox: add build dependency on gawk (#22748) 2021-04-02 14:45:05 +02:00
Thilina Rathnayake
bbaf6e05d2 nekRS: new package (#22519)
This initial package recipe uses a custom-built wrapper to drive an internal CMake file. Since nekRS also includes built-in copies of several dependencies such as BLAS and HYPRE, it cannot be linked with other such dependencies. However, to work with the `ceed` metapackage, we cannot add `^blas` conflicts to nekRS.

See https://github.com/spack/spack/pull/22519 for discussion.
2021-04-02 07:50:31 -04:00
Todd Gamblin
0d387678b7 concretizer: improve display of optimization criteria (#22433)
By default, clingo doesn't show any optimization criteria (maximized or
minimized sums) if the set they aggregate is empty. Per the clingo
mailing list, we can get around that by adding, e.g.:

```
 #minimize{ 0@2 : #true }.
```

for the 2nd criterion. This forces clingo to print out the criterion but
does not affect the optimization.

This PR adds directives as above for all of our optimization criteria, as
well as facts with descriptions of each criterion,like this:

```
opt_criterion(2, "number of non-default variants")
```

We use facts in `concretize.lp` rather than hard-coding these in `asp.py`
so that the names can be maintained in the same place as the other
optimization criteria.

The now-displayed weights and the names are used to display optimization
output like this:

```console
(spackle):solver> spack solve --show opt zlib
==> Best of 0 answers.
==> Optimization Criteria:
  Priority  Criterion                                            Value
  1         version weight                                           0
  2         number of non-default variants (roots)                   0
  3         multi-valued variants + preferred providers for roots    0
  4         number of non-default variants (non-roots)               0
  5         number of non-default providers (non-roots)              0
  6         count of non-root multi-valued variants                  0
  7         compiler matches + number of nodes                       1
  8         version badness                                          0
  9         non-preferred compilers                                  0
  10        target matches                                           0
  11        non-preferred targets                                    0

zlib@1.2.11%apple-clang@12.0.0+optimize+pic+shared arch=darwin-catalina-skylake
```

Note that this is all hidden behind a `--show opt` option to `spack
solve`. Optimization weights are no longer shown by default, but you can
at least inspect them and more easily understand what is going on.

- [x] always show optimization criteria in `clingo` output
- [x] add `opt_criterion()` facts for all optimizationc criteria
- [x] make display of opt criteria optional in `spack solve`
- [x] rework how optimization criteria are displayed, and add a `--show opt`
      optiong to `spack solve`
2021-04-02 08:54:49 +00:00
Chris White
45c616529c axom: convert to Cached CMakePackage
This updates axom to use the new CachedCMakePackage superclass.

Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-04-01 20:06:39 -07:00
Greg Becker
fb062428f9 add CachedCMakePackage for using CMake initial config files
CachedCMakePackage is a CMakePackage subclass for using CMake initial
cache. This feature of CMake allows packages to increase reproducibility,
especially between spack builds and manual builds. It also allows
packages to sidestep certain parsing bugs in extremely long cmake
commands, and to avoid system limits on the length of the command line.

Co-authored by: Chris White <white238@llnl.gov>
2021-04-01 20:06:39 -07:00
Todd Gamblin
fc48c63355 Revert "CachedCMakePackage for using *.cmake initial config files (#19316)""
This reverts commit 7daf582357.
2021-04-01 20:06:39 -07:00
Robert Pavel
3f7c111e29 Added ML Suite to ECP Proxy App Suite (#22728) 2021-04-01 17:52:17 -07:00
Shintaro Iwasaki
7e6048fef5 argobots: add Argobots 1.1 and 1.0.1 (#22729) 2021-04-01 18:49:11 -06:00
Jose E. Roman
49b222442f Update SLEPc and slepc4py to version 3.15 (#22714)
Co-authored-by: Satish Balay <balay@mcs.anl.gov>
2021-04-01 17:38:47 -07:00
AMD Toolchain Support
252f42f115 Fix for static library export issue in blis package (#22673) 2021-04-01 16:57:46 -07:00
Amiya Maji
73a4a5d394 gdal package needs to import the 'os' module (#22731)
* 'gdal+java' build needs to import the 'os' module (line 191).

* Make style-check happy.
2021-04-01 17:52:04 -06:00
Michael Kuhn
c89fa98b16 Fix pkgconfig dependencies (#22702)
pkgconfig is the correct virtual provider.
2021-04-01 23:45:01 +00:00
Simon Bolding
9c139bf7a2 mpark-variant: ICC Patch (#22727)
* Add patch for Intel C++ compiler

- On some machines (in particular MacOSX Catalina), the icpc in some way
utilizes the preprocessor of the associated "developer tools" used by
icpc. This leads to, in some cases, a preprocessor claiming support for
__tuple_element_packs, even though icpc (as of version 21.1) can't
actually parse such code. Just use the MPARK_TUPLE_ELEMENT_PACK impl
with __icc until icpc supports it, to avoid issues with developer tools
that are untested.
- The same patch has been PRed against mpark-variant
2021-04-01 23:15:25 +00:00
mic84
2ae7e25501 amrex: new version 21.04 (#22730) 2021-04-01 14:11:14 -07:00
Elizabeth Fischer
82e97124c8 bugfix: compiler wrappers should handle extra spaces between arguments (#22725)
In the face of two consecutive spaces in the command line, the compiler wrapper would skip all remaining arguments, causing problems building py-scipy with Intel compiler. This PR solves the problem.

* Fixed compiler wrapper in the face of extra spaces between arguments

Co-authored-by: Elizabeth Fischer <elizabeth.fischer@alaska.edu>
2021-04-01 18:39:06 +00:00
Daniel Arndt
cf1b8dd72b xSDK: add ArborX (#22619) 2021-04-01 11:59:05 -05:00
iarspider
1e70ee38a2 New version of OpenLoops (#22240)
New version of OpenLoops; new list of processes; update lcg process collection
Add script to scrape openloops website for process list
2021-04-01 17:06:03 +02:00
Nick Forrington
e22b2ff5c9 arm-forge: cleanup and upgrade to forge v21.0 (#22015)
Backwards incompatible cleanup to target single-tarball-per-arch builds
going forwards.

* Replace per-distro versions with new per-arch builds, and add
  url_for_version to avoid specifying per tarball.
* Customise environment setup to avoid adding lib to LD_LIBRARY_PATH.
* Update homepage and licensing URLs.
* Avoid shell interpretation when running textinstall.sh.
* Added NickRF as maintainer.
2021-04-01 15:47:32 +02:00
iarspider
034211f993 Extra environment variables for Qt (#22717) 2021-04-01 12:40:56 +00:00
Chris Richardson
5ed00560cd Fenicsx package updates for basix install (#22679)
Co-authored-by: Garth N. Wells <gnw20@cam.ac.uk>
2021-04-01 14:35:01 +02:00
Robert Mijakovic
efaa2c160f py-cython: new version (#22712)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-04-01 14:28:12 +02:00
William Downs
db87f62aa5 gchp: add version 13.0.1 and remove release candidate (#22572) 2021-04-01 14:07:13 +02:00
Rémi Lacroix
67f182bb6d MUMPS: Various improvements to the package (#22575)
Use `conflicts` directive whenever possible.
This allows failing early when conflicting variants are used.

Do not silently ignore `+parmetis` variant when `~metis`.
Instead throw an error during concretization.

Simplify the "Makefile.inc" generation.
This will make easier to add new variants in the future.
2021-04-01 14:06:22 +02:00
Michael Kuhn
4a059aad17 libfabric: add 1.12.0 (#22694) 2021-04-01 06:01:19 -06:00
Michael Kuhn
76424c1a91 sqlite: add 3.35.3 (#22697) 2021-04-01 13:57:20 +02:00
Michael Kuhn
2556490cb0 leveldb: add 1.23 (#22695) 2021-04-01 13:56:25 +02:00
Michael Kuhn
5a10c6f822 glib: add 2.66.8 (#22691) 2021-04-01 13:44:09 +02:00
Amiya Maji
09dcb16a70 qt: restrict patch to 5.12.7 (#22705) 2021-04-01 04:38:06 +00:00
Michael Kuhn
bfece29858 pkgconf: add 1.7.4 (#22696) 2021-03-31 21:37:02 -07:00
Michael Kuhn
f7d7cbfacf readline: add 8.1 (#22698) 2021-03-31 21:36:40 -07:00
Michael Kuhn
487ea02044 tar: add 1.34 (#22700) 2021-03-31 21:36:20 -07:00
Michael Kuhn
2922068fdc curl: add 7.76.0 (#22693) 2021-03-31 21:36:01 -07:00
Anthony J. Zukaitis
1c084cd4dd Added version patch for 1.4.0 tag on mpark-variant (#22496)
* Added version patch for 1.4.0 tag on mpark-variant

Redirected urls to git and github tags.

* Updated to commit hashes

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

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>

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

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>

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

Co-authored-by: Anthony J Zukaitis <zukaitis@lanl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-03-31 22:35:00 -06:00
Michael Kuhn
4f2a972c2f util-linux(-uuid): add 2.36.2 (#22701) 2021-03-31 21:32:07 -07:00
takanori-ihara
3e532db04d fujitsu-ssl2: Add the headers method (#22629)
* fujitsu-ssl2: Add the headers method

* fujitsu-ssl2: Fix for comments

* fujitsu-ssl2: Fix for comments
2021-04-01 03:59:10 +00:00
Greg Becker
7daf582357 CachedCMakePackage for using *.cmake initial config files (#19316)"
Original commit message:
This feature of CMake allows packages to increase reproducibility, especially between
Spack- and manual builds. It also allows packages to sidestep certain parsing bugs in
extremely long ``cmake`` commands, and to avoid system limits on the length of the
command line.

Adding:
Co-authored by: Chris White <white238@llnl.gov>

This reverts commit c4f0a3cf6c.
2021-03-31 18:38:22 -07:00
Chris White
c4f0a3cf6c Revert "CachedCMakePackage for using *.cmake initial config files (#19316)"
This reverts commit 764c170530.
2021-03-31 18:34:45 -07:00
Sreenivasa Murthy Kolam
3b59af8b2b Changes to packages for rocm-4.1.0 release (#22687) 2021-04-01 00:30:56 +00:00
Greg Becker
764c170530 CachedCMakePackage for using *.cmake initial config files (#19316)
CachedCMakePackage is a specialized class for packages built using CMake initial cache.

This feature of CMake allows packages to increase reproducibility, especially between
Spack- and manual builds. It also allows packages to sidestep certain parsing bugs in
extremely long ``cmake`` commands, and to avoid system limits on the length of the
command line.
2021-03-31 23:55:19 +00:00
Satish Balay
6242f102fb petsc@3.15.0, py-petsc4py@3.15.0 (#22688)
* petsc@3.15.0, py-petsc4py@3.15.0

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

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-03-31 23:04:23 +00:00
Asher Mancinelli
3205c6f940 Bump HiOp version to v0.4 (#22689) 2021-03-31 22:50:14 +00:00
Adam J. Stewart
315124e219 py-matplotlib: add v3.4.1 (#22680) 2021-03-31 16:01:16 -06:00
Todd Gamblin
cf9adfd748 hotfix: make ifx work with autoconf <= 2.69 in Spack (#22683)
Autoconf before 2.70 will erroneously pass ifx's -loopopt argument to the
linker, requiring all packages to use autoconf 2.70 or newer to use ifx.

This is a hotfix enabling ifx to be used in Spack. Instead of bothering
to upgrade autoconf for every package, we'll just strip out the
problematic flag if we're in `ld` mode.

- [x] Add a conditional to the `cc` wrapper to skip `-loopopt` in `ld`
      mode. This can probably be generalized in the future to strip more
      things (e.g., via an environment variable we can constrol from
      Spack) but it's good enough for now.

- [x] Add a test ensuring that `-loopopt` arguments are stripped in link
      mode, but not in compile mode.
2021-03-31 21:47:38 +00:00
Todd Gamblin
a1d9a56a43 specs: remove "or ''" from Spec comparisons
Since `lazy_lexicographic_ordering` handles `None` comparison for us, we
don't need to adjust the spec comparators to return empty strings or
other type-specific empty types. We can just leverage the None-awareness
of `lazy_lexicographic_ordering`.

- [x] remove "or ''" from `_cmp_iter` in `Spec`
- [x] remove setting of `self.namespace` to `''` in `MockPackage`
2021-03-31 14:39:23 -07:00
Todd Gamblin
01a6adb5f7 specs: use lazy lexicographic comparison instead of key_ordering
We have been using the `@llnl.util.lang.key_ordering` decorator for specs
and most of their components. This leverages the fact that in Python,
tuple comparison is lexicographic. It allows you to implement a
`_cmp_key` method on your class, and have `__eq__`, `__lt__`, etc.
implemented automatically using that key. For example, you might use
tuple keys to implement comparison, e.g.:

```python
class Widget:
    # author implements this
    def _cmp_key(self):
        return (
            self.a,
            self.b,
            (self.c, self.d),
            self.e
        )

    # operators are generated by @key_ordering
    def __eq__(self, other):
        return self._cmp_key() == other._cmp_key()

    def __lt__(self):
        return self._cmp_key() < other._cmp_key()

    # etc.
```

The issue there for simple comparators is that we have to bulid the
tuples *and* we have to generate all the values in them up front. When
implementing comparisons for large data structures, this can be costly.

This PR replaces `@key_ordering` with a new decorator,
`@lazy_lexicographic_ordering`. Lazy lexicographic comparison maps the
tuple comparison shown above to generator functions. Instead of comparing
based on pre-constructed tuple keys, users of this decorator can compare
using elements from a generator. So, you'd write:

```python
@lazy_lexicographic_ordering
class Widget:
    def _cmp_iter(self):
        yield a
        yield b
        def cd_fun():
            yield c
            yield d
        yield cd_fun
        yield e

    # operators are added by decorator (but are a bit more complex)

There are no tuples that have to be pre-constructed, and the generator
does not have to complete. Instead of tuples, we simply make functions
that lazily yield what would've been in the tuple. If a yielded value is
a `callable`, the comparison functions will call it and recursively
compar it. The comparator just walks the data structure like you'd expect
it to.

The ``@lazy_lexicographic_ordering`` decorator handles the details of
implementing comparison operators, and the ``Widget`` implementor only
has to worry about writing ``_cmp_iter``, and making sure the elements in
it are also comparable.

Using this PR shaves another 1.5 sec off the runtime of `spack buildcache
list`, and it also speeds up Spec comparison by about 30%. The runtime
improvement comes mostly from *not* calling `hash()` `_cmp_iter()`.
2021-03-31 14:39:23 -07:00
Todd Gamblin
fd12cba18b specs: speed up traversal by avoiding redundant canonicalization 2021-03-31 14:39:23 -07:00
Rémi Lacroix
bb60dbd2ad OpenFOAM-org: Add version 2.3.1. (#22473) 2021-03-31 23:19:37 +02:00
Rémi Lacroix
772dd7bcb2 Molden: Add new versions (#22685)
Fix the download URL and add new versions.
2021-03-31 13:28:06 -07:00
Scott McMillan
25747a037a Do not set CPATH in nvhpc package (#22652)
Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-03-31 12:19:17 -06:00
Jungwon Kim
2196c24e97 papyrus: setup environment variables #22681 (#22682) 2021-03-31 11:08:18 -07:00
kurtsansom
904867703e fix: modify for change in meson options (#22678) 2021-03-31 11:25:18 -06:00
Glenn Johnson
1ed7762327 new package: py-uproot (#22658) 2021-03-31 10:57:34 -05:00
Michael Kuhn
bee9e34b50 wget: add 1.21 (#22675) 2021-03-31 10:55:15 -05:00
AMD Toolchain Support
1144666c09 AOCC support for QE 6.7 (#22664)
Adding qe_6.7_aocc_support
2021-03-31 09:34:21 -06:00
yellowhat
802f5afac0 hpl: FIX ^intel-oneapi-mkl (#22674) 2021-03-31 08:17:27 -07:00
AMD Toolchain Support
9a453b2e74 adding AOCC support for CP2K 7.1 (#22641) 2021-03-31 13:22:04 +02:00
Harmen Stoppels
fa6e30c6a7 squashfuse: add v0.1.104 and variants (#22605) 2021-03-31 10:17:35 +02:00
Harmen Stoppels
64d4ab85e7 There is no symlink fusermount->fusermount3 by default (#22638) 2021-03-30 14:05:37 -07:00
Rémi Lacroix
2747af6000 SRILM: Add new package. (#22640) 2021-03-30 20:53:31 +00:00
Desmond Orton
c57a74e3b0 New package py-flexmock (#22549)
* New package py-flexmock

* Switched to proper deps

* Changed setuptools type
2021-03-30 14:49:07 -06:00
Desmond Orton
3ce4dae1bf New package py-argh (#22551)
* New package py-argh

* Fixed deps

* Changed setuptools type

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-30 19:45:04 +00:00
Desmond Orton
2e6cdd3ec1 New package py-iocapture (#22550)
* New package py-iocapture

* Added the proper deps

* Changed setuptools type
2021-03-30 19:21:47 +00:00
Harmen Stoppels
1db6cd5d16 Make -j flag less exceptional (#22360)
* Make -j flag less exceptional

The -j flag in spack behaves differently from make, ctest, ninja, etc,
because it caps the number of jobs to an arbitrary number 16.
Spack will behave like other tools if `spack install` uses a reasonable
default, and `spack install -j <num>` *overrides* that default.

This will be particularly useful for Spack usage outside of a traditional
HPC context and for HPC centers that encourage users to compile on
login nodes with many cores instead of on compute nodes, which has
become increasingly common as individual nodes have more cores.

This maintains the existing default value of min(num_cpus, 16). However, 
as it is right now, Spack does a poor job at determining the number of 
cpus on linux, since it doesn't take cgroups into account. This is
particularly problematic when using distributed builds with slurm. This PR
also introduces `spack.util.cpus.cpus_available()` to consolidate
knowledge on determining the number of available cores, and improves
core detection for linux. This should also improve core detection for Docker/
Kubernetes, which also use cgroups.
2021-03-30 12:03:50 -07:00
Rémi Lacroix
d3a9824ea2 libLBFGS: Add new package. (#22639) 2021-03-30 18:54:12 +00:00
Gregory Lee
c1f1dc163e stat: new version 4.1.0 (#22523)
* fix issue #22228 build of gdk-pixbuf
* added stat 4.1.0 and GUI variant
2021-03-30 12:52:06 -06:00
Scott McMillan
a78677a835 Add setup_dependent_build_environment() method to nvhpc package (#22578)
Fix #22520

Co-authored-by: Scott McMillan <smcmillan@nvidia.com>
2021-03-30 11:37:26 -07:00
Sergey Kosukhin
eb48b29375 claw: support for gcc10 (#22618) 2021-03-30 11:33:31 -07:00
Hao Lyu
db37e67c3b Correct the sha256 ioapi v3.2 (#22633)
The sha256 of [ioapi-3.2](https://www.cmascenter.org/ioapi/download/ioapi-3.2.tar.gz) should be `0a3cbf236ffbd9fb5f6509e35308c3353f1f53096efe0c51b84883d2da86924b`
2021-03-30 10:33:46 -07:00
Sreenivasa Murthy Kolam
711d22c9fe New recipe for rocm-opencl-runtime ,bump up version for rdc for rocm-4.1.0 Release (#22645) 2021-03-30 17:20:07 +00:00
Harmen Stoppels
37b439152d Add sshfs (#22636) 2021-03-30 11:16:54 -06:00
Harmen Stoppels
176c27f194 New versions of SIRIUS (#22637) 2021-03-30 11:13:14 -06:00
Harmen Stoppels
b848fab3ec SpackCommand objects can set global args (#22318)
This commit extends the API of the __call__ method of the
SpackCommand class to permit passing global arguments 
like those interposed between the main "spack" command 
and the subsequent subcommand.

The functionality is used to fix an issue where running

```spack -e . location -b some_package```

ends up printing the name of the environment instead of 
the build directory of the package, because the location arg 
parser also stores this value as `arg.env`.
2021-03-30 18:47:36 +02:00
Massimiliano Culpo
c3bab11ee1 Bootstrapping: swap store before configuration (#22631)
fixes #22294

A combination of the swapping order for global variables and
the fact that most of them are lazily evaluated resulted in
custom install tree not being taken into account if clingo
had to be bootstrapped.

This commit fixes that particular issue, but a broader refactor
may be needed to ensure that similar situations won't affect us
in the future.
2021-03-30 17:23:32 +02:00
lorddavidiii
220c0d9cfc cuda: add dev variant and ABI variant for ncurses (#22536)
* ncurses: add variant +abi5 for version 5 ABI
* cuda: add variant dev, which makes cuda-gdb useable

- cuda-gdb needs libncurses.so.5, which most distros doesn't have
 see also https://docs.nvidia.com/cuda/cuda-gdb/index.html#common-issues-oss
2021-03-30 10:57:15 -04:00
Yan Hang
1bd0964ed3 curl package: add new stable version 7.75.0 (#22635) 2021-03-30 15:28:19 +02:00
Harmen Stoppels
a37c916dff Bootstrap: add _builtin config scope (#22610) 2021-03-30 13:41:34 +02:00
Harmen Stoppels
2a4c06b1e6 Fix clearing cache of InternalConfigScope (#22609)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-03-30 11:23:39 +00:00
Asher Mancinelli
e3bcb0ec1e Update hiop package (#22232)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-03-30 02:13:04 -06:00
takanori-ihara
a63a3c1d3d py-numpy: Add the setting to use fujitsu-ssl2 (#22604)
* py-numpy: Add the setting to use fujitsu-ssl2

* py-numpy: Fix for comments
2021-03-30 04:24:42 +00:00
Brian Van Essen
9d42381d38 Bugfixes in LBANN software stack identified by clingo (#22554)
* Fixed a bug in the DiHydrogen package where the variant legacy was
changed to distconv and wasn't fully propagated.  Cleaned up the
openmp variants on the blas library packages in DiHydrogen and
Elemental.  Extended support for Aluminum v1.0 in LBANN, Hydrogen, and
DiHydrogen.  Fixed a when clause in the LBANN dependencies.

* Removed the upper range limit for the Aluminum library dependence

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-30 02:25:56 +00:00
Cameron Stanavige
846cf954f0 spath: new releases (#22625)
This commit adds the url and the two releases/versions to the package.
2021-03-30 02:02:33 +00:00
Danny McClanahan
f67d4774ea move binary indices are stored into the misc_cache (#22500)
Remote buildcache indices need to be stored in a place that does not
require writing to the Spack prefix. Move them from the install_tree to
the misc_cache.
2021-03-29 17:20:04 -07:00
Cyrus Harrison
79193dc37c bugfix for active when pkg is already active error (#22587)
* bugfix for active when pkg is already active error

Co-authored-by: Greg Becker <becker33@llnl.gov>
2021-03-29 17:09:34 -07:00
Massimiliano Culpo
4079bbce97 Externals are preferred even when they have non-default variant values
fixes #22596

Variants which are specified in an external spec are not
scored negatively if they encode a non-default value.
2021-03-29 16:06:11 -07:00
Massimiliano Culpo
4ed5c366fa Enforce uniqueness of the version_weight atom per node
fixes #22565

This change enforces the uniqueness of the version_weight
atom per node(Package) in the DAG. It does so by applying
FTSE and adding an extra layer of indirection with the
possible_version_weight/2 atom.

Before this change it may have happened that for the same
node two different version_weight/2 were in the answer set,
each of which referred to a different spec with the same
version, and their weights would sum up.

This lead to unexpected result like preferring to build a
new version of an external if the external version was
older.
2021-03-29 16:06:11 -07:00
Sreenivasa Murthy Kolam
ebbce40a88 bumpup version for hipify-clang,rocm-gdb-api,rocm-gdb for rocm-4.1.rel (#22622) 2021-03-29 22:49:07 +00:00
Harmen Stoppels
e89c9ec082 Make stage use concrete specs from environment (#22320)
* Make stage use concrete specs from environment

Same as in https://github.com/spack/spack/pull/21642, the idea is that
we want to easily stage a package that fails to build in a complex
environment. Instead of making the user create a spec by hand (basically
transforming all the rules in the environment manifest into a spec,
defying the purpose of the environment...), use the provided spec as a
filter for the already concretized specs. This also speeds up things,
cause we don't have to reconcretize.
2021-03-29 11:10:44 -07:00
Rémi Lacroix
f9cc073be0 ELPA: Add missing Python build dependency. (#22466)
Also patch the "manual_cpp" Python script with proper shebang to ensure the Spack provided Python is used instead of the system Python.
2021-03-29 17:47:02 +02:00
Harmen Stoppels
8b16728fd9 Add "spack [cd|location] --source-dir" (#22321) 2021-03-29 17:31:24 +02:00
Tomoki, Karatsu
3d7069e039 hdf5: fix link error in dependent packages with %fj (#22512) 2021-03-29 09:12:59 -04:00
Harmen Stoppels
1a080b9a00 libfuse: run system install script based on a variant (#22518) 2021-03-29 09:33:55 +00:00
Adam J. Stewart
e5d106c9ce py-matplotlib: add v3.4.0 (#22574) 2021-03-29 10:39:17 +02:00
Adam J. Stewart
22e3620021 py-numpy: add v1.20.2 (#22603) 2021-03-29 09:43:40 +02:00
darmac
43131526e5 graphite2: add python@3.6: as dependency (#22126)
* graphite2: add python@3.6: as dependency

* graphite2: refine python type to run

* graphite2: change phthon to test type
2021-03-28 21:30:35 -05:00
Nichols A. Romero
14c7a13893 Flang default is False. Include a warning to deter people from using it. (#22524)
* Flang default is False. Include a warning to deter people from using it.

* Fix flake8 issue.
2021-03-28 10:06:46 -07:00
Adam J. Stewart
d17b6c4601 mpich: fix device detection (#22502) 2021-03-28 09:52:37 -04:00
Adam J. Stewart
f9be95cb2e py-joblib: add v1.0.1 (#22501) 2021-03-28 09:51:38 -04:00
Hervé Yviquel
5451e2edeb gdrcopy: add v2.2 (#22528) 2021-03-28 09:37:33 -04:00
Seth R. Johnson
579d97117d qt: fix qt@4+gui on darwin (#22602) 2021-03-28 08:34:50 -05:00
Robert Mijakovic
666240cdf8 mpfr: new version 4.1.0 (#22541)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-28 07:28:42 -06:00
Adam J. Stewart
aa59bc87d5 py-scipy: add v1.6.2 (#22543) 2021-03-28 07:25:56 -06:00
Robert Mijakovic
f760d00db6 mumps: new version 5.3.5 (#22542)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-28 09:23:09 -04:00
Valentin Volkl
e4aad43b93 hepmc3: add version 3.2.3 (#22601) 2021-03-28 09:08:05 -04:00
Valentin Volkl
598e4e77a7 edm4hep: add version 0.3.1 (#22600) 2021-03-28 09:07:32 -04:00
Valentin Volkl
63915de99b [dd4hep] add new version (#22599) 2021-03-28 09:06:51 -04:00
Jen Herting
11584f3cb1 gmp: add version 6.2.1 (#22570) 2021-03-27 13:17:40 -04:00
Jen Herting
ec2abbafa3 opensubdiv: add version 3.4.3 and change version number format (#22571) 2021-03-27 13:16:27 -04:00
Phil Carns
cc0b3017ea mochi-margo: add v0.9.2, v0.9.3 and v0.9.4 (#22368)
Also mark a margo version deprecated that was previously omitted by mistake
2021-03-27 14:29:51 +01:00
darmac
c365e1e7b2 liblouis: new package (#22141) 2021-03-27 13:02:38 +01:00
Desmond Orton
ddce89e4ce New R package vcfr (#22495) 2021-03-27 02:26:01 +00:00
Hervé Yviquel
f59ac045d4 ucx: add v1.9.0, v1.10.0 (#22527) 2021-03-26 17:01:18 -06:00
Adam J. Stewart
07cf420acb py-torchvision: add v0.9.1 (#22556) 2021-03-26 15:56:35 -07:00
Adam J. Stewart
3e2698b860 py-torch: add v1.8.1 (#22546) 2021-03-26 15:54:49 -07:00
Robert Mijakovic
2f053d3051 mesa: new version (#22538)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-26 15:52:08 -07:00
Robert Mijakovic
9188498a84 llvm: new version (#22540)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-26 15:49:32 -07:00
Stephen Sachs
23b19b55b4 [intel-oneapi-mpi] Add compiler wrappers to dependent build stage (#22468)
This adds MPICC=/path/to/intel-oneapi/mpicc etc to he dependents build stage enabling the use of the compiler wrappers.

Co-authored-by: Stephen Sachs <stesachs@amazon.com>
2021-03-26 15:19:26 -07:00
Desmond Orton
a7d36cab5b revbayes: Version updated to 1.1.1 (#22555) 2021-03-26 15:55:05 -06:00
Jungwon Kim
58ad774773 Update var/spack/repos/builtin/packages/papyrus/package.py (#22560) 2021-03-26 14:43:17 -07:00
Jan Ciesko
d606cf93bd llvm-amdgpu: Fixes "UnboundLocalError: local variable referenced before assignment" (#22562)
Co-authored-by: Jan Ciesko <jciesko@sandia.gov>
2021-03-26 14:24:08 -07:00
Dr. Christian Tacke
f713ebcb01 cmake: Add Version 3.20.0 (#22569) 2021-03-26 15:22:14 -06:00
Robert Cohn
7ecaeba33a Add select mkl libs (#22580) 2021-03-26 14:16:06 -07:00
Matthias Diener
110b50676d charmpp: rename master to main (#22582)
See https://github.com/UIUC-PPL/charm/pull/3303 for context.
2021-03-26 14:13:07 -07:00
Cyrus Harrison
513d3bac04 update ascent and friends for the ascent 0.7.0 release (#22428) 2021-03-26 13:47:46 -07:00
Massimiliano Culpo
d5fa509b07 clingo: modify recipe for bootstrapping (#22354)
* clingo: modify recipe for bootstrapping

Modifications:
- clingo builds with shared Python only if ^python+shared
- avoid building the clingo app for bootstrapping
- don't link to libpython when bootstrapping

* Remove option that breaks on linux

* Give more hints for the current Python

* Disable CLINGO_BUILD_PY_SHARED for bootstrapping

* bootstrapping: try to detect the current python from std library

This is much faster than calling external executables

* Fix compatibility with Python 2.6

* Give hints on which compiler and OS to use when bootstrapping

This change hints which compiler to use for bootstrapping clingo
(either GCC or Apple Clang on MacOS). On Cray platforms it also
hints to build for the frontend system, where software is meant
to be installed.

* Use spec_for_current_python to constrain module requirement
2021-03-26 12:43:41 -05:00
Massimiliano Culpo
35c3a25ca6 ASP-based solver: model disjoint sets for multivalued variants (#22534)
* ASP-based solver: avoid adding values to variants when they're set

fixes #22533
fixes #21911

Added a rule that prevents any value to slip in a variant when the
variant is set explicitly. This is relevant for multi-valued variants,
in particular for those that have disjoint sets of values.

* Ensure disjoint sets have a clear semantics for external packages
2021-03-26 09:22:38 -05:00
Robert Mijakovic
730c030ee5 julia: new version (#22537)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-26 15:03:13 +01:00
Sreenivasa Murthy Kolam
f08842e05d bump up version for rocm-4.1. release (#22531) 2021-03-26 14:18:01 +01:00
Massimiliano Culpo
5b238ef1c1 Revert "gdbm: new version (#22505)" (#22568)
This reverts commit d56c629932.
2021-03-26 12:23:47 +00:00
Tomoyasu Nojiri
1be0bf95b3 hdf-eos2: fix build when hdf is built without szip (#21788) 2021-03-26 12:52:22 +01:00
Rémi Lacroix
3084bd76c1 mumps: add v5.3.5. (#22564) 2021-03-26 12:50:41 +01:00
Harmen Stoppels
995c978f52 SquashFUSE: add new package, add libfuse detection (#22511) 2021-03-26 11:23:46 +01:00
Robert Mijakovic
d56c629932 gdbm: new version (#22505)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-26 11:00:44 +01:00
Howard Pritchard
098bf6a386 openmpi: add another maintainer (#22563)
Signed-off-by: Howard Pritchard <howardp@lanl.gov>
2021-03-26 09:00:11 +01:00
Massimiliano Culpo
0bed64503d Make SingleFileScope able to repopulate the cache after clearing it (#22559)
fixes #22547

SingleFileScope was not able to repopulate its cache before this
change. This was affecting the configuration seen by environments
using clingo bootstrapped from sources, since the bootstrapping
operation involved a few cache invalidation for config files.
2021-03-26 01:16:11 -06:00
Desmond Orton
728f62ec8d New R package memuse (#22494) 2021-03-25 18:22:09 -06:00
Brian Van Essen
a2a29f8789 zstr: new package, update lbann dependency (#22309) 2021-03-25 19:13:44 +01:00
dmageeLANL
f7a880f868 Libwhich: which for libraries. (#22461)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2021-03-25 17:14:03 +00:00
Andrew W Elble
feb6f85af7 openssl: new version 1.1.1k (#22545)
also deprecates <1.1.1k since they are affected by high severity issues
2021-03-25 16:45:45 +00:00
Robert Mijakovic
ae0f6d5a67 mercurial: new version (#22539)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-25 11:31:19 -05:00
Mosè Giordano
04a02f8665 libblastrampoline: Add version 3.0.3 (#22529) 2021-03-25 09:10:29 +01:00
Desmond Orton
0105a83d6f New R package pinfsc50 (#22493) 2021-03-24 19:57:59 -05:00
a-saitoh-fj
9c91aeffa8 py-dask-glm: Added document build (#22293)
* py-dask-glm: Push again for testing with git.

* py-dask-glm: Fixed the pointed out OSS dependency setting to type=build.

* py-dask-glm: Set depends_on to type=build in the OSS to be built when building the document.

* py-dask-glm: Fix type of depends_on (py-scikit-learn)

Co-authored-by: miura <miura@fx7-pg01.cm.cluster>
2021-03-25 00:32:29 +00:00
Ethan Stam
6997991ad2 Llvm 7 intel patch (#22516)
* llvm@7 add patch for intel

* Fix invalid version specifier
2021-03-24 14:43:20 -07:00
kurtsansom
138417174b mesa: add gcc 10.1.0 conflict (#22514) 2021-03-24 15:10:12 -06:00
Frédéric Simonis
38841ad746 Add doc for mirror of env (#22525) 2021-03-24 20:55:15 +00:00
Gregory Lee
8c3d929d23 fix issue #18853 build of gdk-pixbuf (#22517)
* fix issue #22228 build of gdk-pixbuf

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-24 19:36:30 +00:00
Robert Mijakovic
1803070d3d intel-parallel-studio: new version (#22510)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-24 10:43:13 -06:00
Howard Pritchard
1f050993bc openmpi: do not over specify hwloc version dep (#22498)
related to #22497

Signed-off-by: Howard Pritchard <hppritcha@gmail.com>
2021-03-24 09:29:26 -07:00
Robert Mijakovic
51d81af750 go: add v1.16.2 (#22506)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-24 16:00:42 +01:00
Robert Mijakovic
dbe210522c gromacs: add v2021.1 (#22507)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-24 16:00:12 +01:00
Robert Mijakovic
fc12fb46a1 hadoop: add v3.3.0, v3.2.2 (#22508)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-24 15:59:13 +01:00
Robert Mijakovic
0722f59cb2 gdb: resolve issue with libintl_gettext (#22478)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-24 11:55:19 +01:00
Vanessasaurus
c41c7ce638 adding debugedit package. (#22458)
This package used to be a part of rpm, but now is being developed separately.
It will supposedly be moved to a sourceware branch (it is maintained by
redhat) but I do not know if this will happen soon. We need it in order
to change locations in binaries that are built in /tmp and then moved
elsewhere. I will ping @woodard who might be able to give us an estimate
if we should include this development repository or wait for it to be
moved elsewhere. Once this is merged, we will want to use the bootstrap
approach to install and use the library from spack.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-03-23 22:59:34 -07:00
Desmond Orton
95ad5b882c new package py-pyem (#22425)
* new package py-pyem

* Added patch note and removed homepage

* Style fixes

* Moved the version above deps

* Style fix on line 20
2021-03-23 21:25:57 +01:00
Sergey Kosukhin
a1aec1450b Add stdcxx_libs for PGI and Cray compilers (#22491) 2021-03-23 14:19:03 -06:00
Rémi Lacroix
45e076dd20 Grace: new package (#22476) 2021-03-23 14:13:03 -06:00
Daniel Arndt
73311bc6cd Allow DataTransferKit to be built with external ArborX package (#22486) 2021-03-23 20:07:14 +00:00
Robert Rosca
3d74592be2 Add older versions fo py-msgpack-numpy (#22490) 2021-03-23 14:07:10 -06:00
Massimiliano Culpo
413c422e53 bootstrap: account for platform specific configuration scopes (#22489)
This change accounts for platform specific configuration scopes,
like ~/.spack/linux, during bootstrapping. These scopes were
previously not accounted for and that was causing issues e.g.
when searching for compilers.
2021-03-23 14:29:13 -05:00
Rémi Lacroix
3d0adf3a8a OpenFOAM-org: Fix compilation of version 2.4.0. (#22472)
Fix "isnan" errors when compiling version 2.4.0 with recent compilers.
2021-03-23 11:34:30 -07:00
Rémi Lacroix
4d02439820 OpenFOAM: Depend on CGAL 4.X. (#22474)
CGAL 5.X is currently not supported.
2021-03-23 11:33:01 -07:00
Martin Pokorny
c4b38e5102 Initial version of libsakura (#22488) 2021-03-23 18:05:41 +00:00
Rémi Lacroix
495b9bcb60 VAPOR: new package (#22477) 2021-03-23 11:01:32 -07:00
Robert Mijakovic
5bc1ac6ca1 cryptsetup: new version (#22470)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-23 11:00:49 -07:00
Robert Mijakovic
9e316b30d1 intel: new version, 20.0.4 (#22484)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-23 11:40:13 -06:00
Rémi Lacroix
dca23f3c37 Channelflow: Fix the package. (#22483)
A search and replace went wrong in 2264e30d99.

Thanks to @wadudmiah who reported this issue.
2021-03-23 12:04:40 -05:00
Robert Mijakovic
0c699d7494 git: new version (#22479)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-23 10:58:12 -06:00
Michael Kuhn
a4e18a9544 flexiblas: add 3.0.4 (#22485) 2021-03-23 17:52:33 +01:00
Robert Mijakovic
76bfdbfb96 cuda: add v11.2.2 (#22471)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-23 15:55:17 +01:00
Harmen Stoppels
8899a08263 OpenMPI: require ssh run dependency (#22115)
* Bump gdbm
* Add libedit 3.1
* Bump OpenSSH to 8.5p1
* Bump lz4
* Add openssh as a runtime dep of openmpi
2021-03-23 10:44:22 -04:00
Robert Mijakovic
6a3bef4bb0 gmake: add v4.3 (#22480)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-23 12:47:21 +00:00
Robert Mijakovic
982d1afd01 cmake: new version (#22469)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-23 12:59:21 +01:00
Desmond Orton
6bfc0504cb orthofinder: retrieve sources, overhaul recipes (#22423) 2021-03-23 09:27:52 +01:00
takanori-ihara
adf19379cc fujitsu-ssl2: fix to library list and env variables (#22462) 2021-03-23 08:33:05 +01:00
Robert Cohn
f57626a7c4 Oneapi packages: update URLs, environment management, and dependencies (#22202)
* Replace URL computation in base IntelOneApiPackage class with
  defining URLs in component packages (this is expected to be
  simpler for now)
* Add component_dir property that all oneAPI component packages must
  define. This property names a directory that should exist after
  installation completes (useful for making sure the install was
  successful) and also defines the search location for the
  component's environment update script.
* Add needed dependencies for components (e.g. intel-oneapi-dnn
  requires intel-oneapi-tbb). The compilers provided by
  intel-oneapi-compilers need some components under certain
  circumstances (e.g. when enabling SYCL support) but these were
  omitted since the libraries should only be linked when a
  dependent package requests that feature
* Remove individual setup_run_environment implementations and use
  IntelOneApiPackage superclass method which sources vars.sh 
  (located in a subdirectory of component_dir)
* Add documentation for IntelOneApiPackge build system

Co-authored-by: Vasily Danilin <vasily.danilin@yandex.ru>
2021-03-22 17:35:45 -07:00
Massimiliano Culpo
138312efab clingo-bootstrap: account for cray platform (#22460) 2021-03-22 17:57:32 -05:00
Jan Ciesko
364b359c68 Add Kokkos smoke test support (#22071)
Co-authored-by: Jan Ciesko (-EXP) <jciesko@sandia.gov>
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-03-22 12:51:59 -06:00
Aurelien Bouteiller
623edc6674 Invoke ctest -j1 from spack install --test, and build_with_parsec from spack test run (#22070)
Signed-off-by: Aurelien Bouteiller <bouteill@icl.utk.edu>
2021-03-22 12:34:03 -06:00
Harmen Stoppels
22425da038 IPython: add v7.21.0 and updated dependencies accordingly (#22448) 2021-03-22 19:22:41 +01:00
Vanessasaurus
c2a9b7aa08 rpm: add new package. (#22382)
For rpm to build with lua, we additionally need to add a lua.pc file
that the configure script can find.

Patch from : dcaf70897a/gnu/packages/patches/lua-pkgconfig.patch

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-03-22 17:47:56 +01:00
AMD Toolchain Support
2fba3e2bd3 Spack recipes for AOCL 3.0 (#22376)
Added Spack recipes for AOCL 3.0 blis, ambles, amdlibflame, amdlibm, amdscalapack, aocl-sparce.
2021-03-22 09:30:08 -07:00
Seth R. Johnson
3a33d45d6d openssh: support spack external find (#22445) 2021-03-22 10:19:07 -06:00
David Hadley
20fc160f21 GENIE: new package package (#22438)
Add GENIE MC (https://www.genie-mc.org) package.
2021-03-22 12:04:43 -04:00
Greg Becker
95880d0dac use link/run deps only to compare extensions (#22396) 2021-03-22 10:28:14 -05:00
André Brandenburger
01ea3e3469 py-tensorflow: remove bazel restriction to /tmp (#22250) 2021-03-22 10:06:05 -05:00
TZ
6e3f7781d4 lammps: add most recent stable and patch release (#22435) 2021-03-22 08:37:46 -06:00
TZ
951c4a6cf2 lammps: patch for CUDA-11.x with lammps 21 Jul 2020 (#22434)
apply upstream patch to make lammps 21 Jul 2020 work with CUDA-11.x (support for compute_30 removed)
2021-03-22 15:34:04 +01:00
Robert Mijakovic
62f9de535c freetype: new version (#22454) 2021-03-22 14:07:08 +00:00
Robert Mijakovic
af15801649 extrae: new version (#22453)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-22 15:03:03 +01:00
Robert Mijakovic
155c378406 blis: new version (#22449) 2021-03-22 15:02:44 +01:00
Robert Mijakovic
28f2349d1e doxygen: new version (#22452) 2021-03-22 15:00:31 +01:00
Robert Mijakovic
c128c58a93 cryptsetup: new version (#22451)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-22 14:56:15 +01:00
Robert Mijakovic
29e36e7a17 cmake: new version (#22450)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-22 14:54:54 +01:00
Glenn Johnson
d18de945b7 r-lwgeom: new package (#22437) 2021-03-22 12:52:07 +01:00
Glenn Johnson
2741b69791 r-s2: new package plus new dependency r-wk (#22443) 2021-03-22 12:48:06 +01:00
Glenn Johnson
d203456790 r-pool: new package (#22441) 2021-03-22 12:47:21 +01:00
Glenn Johnson
c9043b6258 r-microbenchmark: new package (#22440) 2021-03-22 12:46:52 +01:00
Glenn Johnson
346d880384 r-mapview: added packages and dependencies (#22439) 2021-03-22 12:45:58 +01:00
Robert Mijakovic
d838b8f518 pegtl: add v3.2.0 and a patch for <2.8.3 with gcc 10. (#22422)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-22 10:25:12 +00:00
Toyohisa Kameyama
c77267f0a1 dtf: new package. (#22446) 2021-03-22 04:07:07 -06:00
a-saitoh-fj
d49c0148b8 py-s3fs: new package (#22260) 2021-03-22 08:46:16 +01:00
Maxim Belkin
8c04354056 clingo: fix typo (#22444) 2021-03-22 00:52:46 +01:00
Valentin Volkl
e56e72d910 [py-awkward1] add dlpack dependency (#22220)
* [py-awkward1] add dlpack dependency

* [py-awkward] rename package

* [py-awkward] address comments from [22220]

* [py-awkward] address comments from [22220]
2021-03-21 12:42:13 -05:00
Keita Iwabuchi
718e65492e Metall: add v0.10, remove old versions prior to v0.7 (#21893) 2021-03-21 12:41:28 +01:00
darmac
fa5ddcaa41 libmpdclient: new package (#22146) 2021-03-21 11:33:47 +01:00
darmac
5e0aa8c2e7 libndp: new package (#22147) 2021-03-21 11:32:06 +01:00
darmac
8eb5f017df libnetfilter-cthelper: new package (#22148) 2021-03-21 11:22:15 +01:00
darmac
2b22d855b0 libnetfilter-cttimeout: new package (#22149) 2021-03-21 11:17:31 +01:00
darmac
c9ce5a3292 libnetfilter-queue: new package (#22150) 2021-03-21 11:16:30 +01:00
Greg Becker
f4b56620e5 Document cli syntax for environment scopes (#20344)
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-21 10:14:13 +00:00
Chuck Atkins
df8dcef963 ecp-data-vis-sdk: disable sz python bindings (#22271) 2021-03-21 11:12:31 +01:00
darmac
622b6d761d net-snmp: new package (#22154) 2021-03-21 11:11:44 +01:00
Jen Herting
404d4dde48 opus: add v1.3.1 (#22308) 2021-03-21 08:42:15 +00:00
darmac
3688f7aea0 hwdata: new package (#22128) 2021-03-21 09:28:21 +01:00
darmac
bc127ec53e mozjs: add zip and unzip as dependencies (#22274) 2021-03-21 09:27:12 +01:00
darmac
26bf91c690 fullock: new package (#22139) 2021-03-21 09:20:50 +01:00
darmac
b48fbeed69 brynet: new package (#22133) 2021-03-21 09:19:58 +01:00
darmac
83fde4e849 libnfs: new package (#22151) 2021-03-20 22:36:04 +01:00
darmac
4a957509db libnfsidmap: new package (#22152) 2021-03-20 22:35:00 +01:00
Robert Pavel
9af0b11b86 MiniAMR: add v1.6.6 and v1.6.5 (#22227) 2021-03-20 22:31:06 +01:00
Matthew Kelsey
0c4f140d88 professor: add new package at v2.3.3 (#22043)
Co-authored-by: Matthew Kelsey <matt@Matthews-MacBook-Pro.local>
Co-authored-by: Matthew Kelsey <mkelsey@rcas6015.rcf.bnl.gov>
2021-03-20 19:28:03 +00:00
darmac
5a30e5795f libapreq2: add package at v2.13 (#22136) 2021-03-20 18:23:04 +00:00
Robert Mijakovic
4bdd014c82 bazel: new versions, 4.0.0 and 3.7.2 (#22420)
* bazel: new versions, 4.0.0 and 3.7.2

* Updates bazel 4.0.0 hash

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

Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-20 12:17:49 -05:00
Vinícius
b052ff9be0 pajeng: add dependency on fmt for @develop (#22432) 2021-03-20 16:57:40 +00:00
Olivier Cessenat
1acaaea34e silo: adding the library spec for dependents (#22431) 2021-03-20 15:22:38 +00:00
Tom Scogland
48023b2932 notify and error out on more unsupported versions (#22389)
This is to help debug situations like #22383, where python3.4 is
accidentally preferred over python2.  It will also help on systems where
there is no python2 available or some other issue.
2021-03-20 08:01:23 -07:00
Olivier Cessenat
86fad97165 minizip: reduce scope of applied patch (#21909) 2021-03-20 14:51:03 +00:00
Rohit Goswami
ac15e3ec96 SymEngine: add v0.7.0 (#22367) 2021-03-20 14:50:43 +00:00
Massimiliano Culpo
06cd29ad58 QA: don't run build tests on each commit (#22430)
This applies the same rules on push to develop
that we use for PRs
2021-03-20 07:17:47 -07:00
Massimiliano Culpo
03e10b3cde QA: reduce number of unit tests for jobs not in the matrix (#22426)
* QA: reduce number of unit tests for jobs not in the matrix

* Fixup for CentOS6 dependencies

* Put correct conditions back in place

* Add dependency on changes
2021-03-20 07:16:52 -07:00
darmac
46469786d8 libtorrent: add new package at v0.13.8 (#22130) 2021-03-20 15:16:09 +01:00
darmac
17e51b2989 args: add new package at v6.2.3 (#22132) 2021-03-20 15:14:40 +01:00
darmac
806f02438d libao: add new package at v1.2.2 (#22135) 2021-03-20 15:11:52 +01:00
darmac
44e70f40ce libasr: new package at v1.0.4 (#22137) 2021-03-20 15:07:09 +01:00
Martin Pokorny
c84c0187ea casacore: fft implementation default (#22226)
* Change default FFT implementation to FFTW

To account for the default changing with casacore v3.4.0, as well as the
CMake logic for getting the FFTPack implementation.

* Switch to using spec.satisfies() for Python CMake values
2021-03-20 14:58:56 +01:00
Rohit Goswami
ec0dc67e73 eigen: add v3.3.9 (#22369) 2021-03-20 12:55:06 +00:00
Michael Kuhn
dfb0da2c85 zlib-ng: new package (#22346) 2021-03-20 12:43:04 +00:00
Jen Herting
f8ea3c5285 libvorbis: add v1.3.7 (#22266) 2021-03-20 13:36:27 +01:00
Pramod Kumbhar
222666e400 neuron: fix issue with assignment operator during build (#22278) 2021-03-20 06:31:23 -06:00
darmac
a4fbaf2f89 hivex: new package (#22158) 2021-03-20 13:30:20 +01:00
darmac
f8a17371f6 hyphen: new package (#22157) 2021-03-20 13:23:41 +01:00
darmac
aa79689c78 libmbim: add new package (#22143) 2021-03-20 13:17:59 +01:00
darmac
8a9af11403 liblognorm: new package (#22140)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-03-20 13:16:39 +01:00
Adam J. Stewart
d4516057e1 py-azureml-sdk: Python 3.9 not yet supported (#22388) 2021-03-20 12:08:58 +00:00
Scot Halverson
e1abb5cbc8 kokkos: add ampere80 cuda arch (#22397)
Adding support for Ampere (SM_80) GPUs.
2021-03-20 11:54:48 +00:00
Vanessasaurus
c055ffc79b singularity: update packages (#22281)
This PR will update the urls to not have www (not needed),
the repository user should be hpcng instead of sylabs (technically
GitHub maintains the old links but this might not be forever) and
also added 3.7.1 and 3.7.2 versions of Singularity, newly released

Signed-off-by: vsoch <vsoch@users.noreply.github.com>

Co-authored-by: vsoch <vsoch@users.noreply.github.com>
2021-03-20 12:50:35 +01:00
Cody Balos
ac6976dee5 sundials: use CudaPackage and ROCmPackage and add spack tests (#22183)
Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2021-03-20 11:43:31 +00:00
Kai Torben Ohlhus
9b5df573c0 openblas: add v0.3.14 (#22371)
New OpenBLAS 0.3.14 release
- https://github.com/xianyi/OpenBLAS/releases/tag/v0.3.14
2021-03-20 11:41:04 +00:00
Rao Garimella
c7e481de77 Update R3D package (#22327)
Co-authored-by: Rao Garimella <rao@abyzou.lanl.gov>
2021-03-20 12:12:48 +01:00
Jen Herting
9d5937725e py-jsonpointer: add v1.9 (#22394) 2021-03-20 11:07:53 +00:00
Vinícius
ce64a4170f pajeng: new package (#22398) 2021-03-20 10:35:43 +00:00
Robert Pavel
bba41f16d4 libristra: add new package (#22343) 2021-03-20 10:38:13 +01:00
Hadrien G
32f6fdce7c acts: add v6.00.0 (#22347) 2021-03-20 03:34:14 -06:00
Jen Herting
6d8f59e6bc libogg: add v1.3.4 (#22395) 2021-03-20 10:22:06 +01:00
Harmen Stoppels
ece71f1648 hip: shorten shebang before cmake phase because it is used there (#22391) 2021-03-20 09:52:22 +01:00
Michael Kuhn
07a9723c63 cube-blade: new package (#22411) 2021-03-20 09:47:48 +01:00
Nick Denissen
4aa24095c0 zoltan: add nvhpc fortran libraries to the linker (#22413) 2021-03-20 09:46:25 +01:00
Robert Mijakovic
c4e81b9cdb autoconf: add v2.71 (#22415)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-20 09:44:53 +01:00
Glenn Johnson
cbb64156cb bowtie2: fix python interpreter line (#22417)
Beginning with version 2.4.1, the python interpreter line changed from

"#!/usr/bin/env python" to "#!/usr/bin/env python3"

That caused the bowtie2-build and bowtie2-inspect scripts to have a
trailing '3' at the end of the interpreter line. This PR fixes that. I
also observed that older versions do not build with intel-oneapi-tbb
so added a conflicts statement for that.
2021-03-20 09:43:19 +01:00
Chris Richardson
381da114f0 xtensor: add v0.23.2 (#22378)
Also updated version of dependencies
2021-03-20 08:41:56 +00:00
William Downs
ab6c543948 gchp: add v13.0.0 (#22387) 2021-03-20 09:41:29 +01:00
Toyohisa Kameyama
b8815e577b boost: fixed detect system icu bug on version 1.65.0 or older. (#22375) 2021-03-20 01:52:38 +00:00
Robert Mijakovic
187c23d3c5 Slurm: add v20-11-[4,5]-1 (#22416)
Co-authored-by: Robert Mijakovic <robert.mijakovic@lrz.de>
2021-03-20 00:09:32 +01:00
Massimiliano Culpo
0209d15ffd CI: treat push to develop in the same way as PRs (#22421) 2021-03-19 15:08:32 -07:00
Sinan
4c57c88d9e py-zarr: add v2.4.0,v2.5.0,v2.6.1 (#22403)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-19 22:06:30 +00:00
Tiziano Müller
3305a39c55 CP2K: update libxc dep, SIRIUS: update spla dep for 7+ (#22249) 2021-03-19 14:52:07 -06:00
Massimiliano Culpo
629f94b4e1 CI: drastically reduce the number of tests for package only PRs (#22410)
PRs that change only package recipes will only run tests under "package_sanity.py" and without coverage. This should result in a huge drop the cpu-time spent in CI for most PRs.
2021-03-19 11:04:53 -07:00
Daniel Arndt
245d67ed5c Add ArborX smoke tests (#22356) 2021-03-19 12:39:06 +00:00
m-shunji
020c60649e abinit: fix detection of Fujitsu compiler (#22239) 2021-03-19 12:27:31 +00:00
Gregory Lee
43f4d2da99 updated deps to get gtkplus to build (#22228)
* updated deps to get gtkplus to build

* gtk-doc requires docbook-xml 4.3

* patch gtk-doc build to find xml catalogs

* patch gtk-doc build to find xml catalogs

* patch gtk-doc build to find xml catalogs

* add new version, fix macOS build error

* reorder docbook versions from newest to oldest

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-19 09:31:14 +00:00
tilne
22a93300b4 Add aws-parallelcluster v2.10.3 (#22402)
Signed-off-by: Tim Lane <tilne@amazon.com>
2021-03-19 09:09:18 +00:00
Robert Mijakovic
396936d241 Adds new versions of cuDNN package (#22385) 2021-03-19 02:42:44 +00:00
Benjamin Tovar
818b416742 CCTools to version 7.2.4 (#22384) 2021-03-19 02:13:30 +00:00
Cyrus Harrison
4df1f62fd3 updates to conduit to add hostcfg and use cmake base (#22233) 2021-03-18 18:44:29 -07:00
AMD Toolchain Support
4f1a76a0d1 fixing the perf regression issues with OpenMPI v4.0.x till v4.1.0 for x86_64 (#22350) 2021-03-18 17:09:20 -07:00
Dr. Christian Tacke
d07cb59bef root/intel-tbb interaction (#22366)
root 6.22 does not work with intel-tbb 2021.1.1.

So:
* Introduce conflicts()
  (a fitting depends_on in the comments, but does not help with the classic conretizer.)
* Mark 2020.3 as preferred to help concretizer, when newer versions come up.
* Previous discussion:
  https://github.com/spack/spack/pull/22263#issuecomment-797606475
* Relevant ROOT issue:
  https://github.com/root-project/root/issues/6933
2021-03-18 17:19:08 -06:00
Cody Balos
02c3b23a15 xsdk-examples: add new version (#22090) 2021-03-18 15:25:43 -07:00
Olivier Cessenat
628f9eadb5 perl-tk: creating package (#21586) 2021-03-18 11:20:18 -05:00
Paul Kuberry
a405811bfe xyce: add new package (#22345) 2021-03-18 14:49:42 +00:00
Harmen Stoppels
196db55855 Fix broken spack -c flag (#22361) 2021-03-18 15:26:30 +01:00
Ryan Honeyager
c6f3f57c31 Add udunits2 v2.2.28 and target the new UCAR repository (#22370) 2021-03-18 12:47:20 +00:00
Axel Huebl
f901c61e68 py-yt: 3.6.1 (#22329)
* py-yt: 3.6.1

The latest bugfix release of yt-project fixes issues with matplotlib
version 3.3.0+.

* py-yt: add many more version constrains
2021-03-18 11:19:58 +00:00
Massimiliano Culpo
8cf6ad9917 archspec: update to latest version (#22357) 2021-03-18 00:23:09 -07:00
Benjamin Tovar
4c9c5393f1 CCTools: add v7.2.3 (#22355) 2021-03-18 08:10:08 +01:00
Harmen Stoppels
15645147ed Tab to spaces (#22362) 2021-03-18 06:20:06 +00:00
Hector Martinez-Seara
441d09cc27 Amber (#22275)
* Improved amber package. Added amber20

* Corrected description link between ambertools and amber versions

* Fixed ambertools handling

* Apply pathes only when problematic traget requested

* fixed style issue

* Added amber20 sha256 checksum

* Improved documentation

* Removed preferred amber18

* Changef f-string to str.format()

* Changef f-string to str.format()

* removed url_for_version fuction
2021-03-18 05:45:24 +00:00
Seth R. Johnson
e5103b6914 openblas: fix older versions (#22358) 2021-03-18 03:21:58 +00:00
Harmen Stoppels
e57053bd32 Fix indentation compiler wrapper issue (#22352) 2021-03-17 18:45:10 +00:00
Tomoki, Karatsu
d934363ae5 intel-mpi-benchmarks: Take in upstream bugfix patches. (#22317) 2021-03-17 11:09:25 -07:00
Adam J. Stewart
251e4282f1 GDAL: add v3.2.2 (#22224) 2021-03-17 11:28:06 -06:00
Adam J. Stewart
2d623bab31 tidy-html5: add new package (#22286) 2021-03-17 16:14:39 +01:00
Dr. Christian Tacke
96e394845b root: add v6.22.08 (#22263) 2021-03-17 16:14:12 +01:00
AMD Toolchain Support
e6c8fa1311 aocc: add support for v3.0 compilers (#22219)
A mitigation of a known issue that affects v3.0 is added, see
https://developer.amd.com/wp-content/resources/AOCC-3.0-Install-Guide.pdf
2021-03-17 15:06:25 +00:00
Harmen Stoppels
43dd7b84c0 spack location: bugfix for out of source build dirs (#22348) 2021-03-17 14:38:14 +00:00
Erik Schnetter
9a565e0ec7 shtools: add v4.8 (#22305) 2021-03-17 13:20:46 +01:00
Erik Schnetter
bac3ac4fdb fasttransforms: add v0.5.0 (#22304) 2021-03-17 13:20:09 +01:00
Jen Herting
8d2944bf77 flac: add v1.3.3 (#22307) 2021-03-17 12:18:52 +01:00
Harmen Stoppels
889e83a9b5 boost: fix unicode bugs in Boost recipe (#22301) 2021-03-17 11:22:21 +01:00
Benjamin Tovar
047bb490cb cctools: add v7.2.2 (#22325) 2021-03-17 11:19:01 +01:00
Erik Schnetter
2032c608e8 ssht: add v1.3.5 (#22306) 2021-03-17 11:16:56 +01:00
David Hadley
9e62eadce0 pythia6: fix wrong patch (#22338)
See #22330
2021-03-17 03:25:09 -06:00
Bryan Herman
364b9e7a27 add maintainer to py-h5py (#22332) 2021-03-16 18:46:16 -06:00
Tomoyasu Nojiri
857f6392a2 r-v8: Fix build error (#22314) 2021-03-16 19:39:30 -05:00
eugeneswalker
b75b029706 amrex: add gcc 8 conflicts (#22339) 2021-03-16 23:54:40 +00:00
Tiziano Müller
12cad38aef llvm: enable ncurses patch for building on SUSE in 11.0.1 (#22319)
fixes #19625 again
2021-03-16 16:22:10 -07:00
Danny McClanahan
18fbd58fe6 fix weird failure in variant values (#22328) 2021-03-16 16:04:51 -07:00
AMD Toolchain Support
912606ad9a spack recipe for aocl-sparse (#22079) 2021-03-16 14:34:25 -07:00
Wouter Deconinck
c9ba95cc5c containerize: fix typo in documentation (#22331)
Before this fix, `spack containerize` complains that `centos/7` is invalid
(should have been `centos:7`)
2021-03-16 21:02:26 +00:00
AMD Toolchain Support
603331e669 WRF package: add aocc 3.0 support for WRF 3.9.1.1 and 4.2 (#22285)
* Added 2 new configure patch files to build WRF 3.9.1.1 and 4.2
  with aocc@3.0
* Renamed patch files used for building WRF 3.9.1.1 and 4.2 with
  aocc@2.3 (mostly, this also removes -march=native from AOCCOPT
  and updates LIBMVEC options for aocc@2.3)
2021-03-16 12:59:43 -07:00
Massimiliano Culpo
2aab415f3d The action to detect changes needs a repository to be checked out on push event (#22324) 2021-03-16 17:27:41 +00:00
Massimiliano Culpo
b304b4bdb0 Speed-up CI by reorganizing tests (#22247)
* unit tests: mark slow tests as "maybeslow"

This commit also removes the "network" marker and
marks every "network" test as "maybeslow". Tests
marked as db are maintained, but they're not slow
anymore.

* GA: require style tests to pass before running unit-tests

* GA: make MacOS unit tests fail fast

* GA: move all unit tests into the same workflow, run style tests as a prerequisite

All the unit tests have been moved into the same workflow so that a single
run of the dorny/paths-filter action can be used to ask for coverage based
on the files that have been changed in a PR. The basic idea is that for PRs
that introduce only changes to packages coverage is not necessary, this
resulting in a faster execution of the tests.

Also, for package only PRs slow unit tests are skipped.

Finally, MacOS and linux unit tests are now conditional on style tests passing
meaning that e.g. we won't waste a MacOS worker if we know that the PR has
flake8 issues.

* Addressed review comments

* Skipping slow tests on MacOS for package only recipes

* QA: make tests on changes correct before merging
2021-03-16 08:16:31 -07:00
a-saitoh-fj
d36de79ba0 py-aiobotocore: New package (#22258)
* py-aiobotocore: New package

* py-aiobotocore: Added python dependencies, and Removed unnecessary whitespace
2021-03-16 08:57:54 -05:00
Todd Gamblin
3e570ce694 bugfix: allow imposed constraints to be overridden in special cases
In most cases, we want condition_holds(ID) to imply any imposed
constraints associated with the ID. However, the dependency relationship
in Spack is special because it's "extra" conditional -- a dependency
*condition* may hold, but we have decided that externals will not have
dependencies, so we need a way to avoid having imposed constraints appear
for nodes that don't exist.

This introduces a new rule that says that constraints are imposed
*unless* we define `do_not_impose(ID)`. This allows rules like
dependencies, which rely on more than just spec conditions, to cancel
imposed constraints.

We add one special case for this: dependencies of externals.
2021-03-16 12:50:14 +01:00
Todd Gamblin
e7cba04b95 bugfix: do not generate dep conditions when no dependency
We only consider test dependencies some of the time. Some packages are
*only* test dependencies. Spack's algorithm was previously generating
dependency conditions that could hold, *even* if there was no potential
dependency type.

- [x] change asp.py so that this can't happen -- we now only generate
      dependency types for possible dependencies.
2021-03-16 12:50:14 +01:00
Todd Gamblin
ada6ecc797 concretizer: unify logic for spec conditionals
This builds on #20638 by unifying all the places in the concretizer where
things are conditional on specs. Previously, we duplicated a common spec
conditional pattern for dependencies, virtual providers, conflicts, and
externals. That was introduced in #20423 and refined in #20507, and
roughly looked as follows.

Given some directives in a package like:

```python
depends_on("foo@1.0+bar", when="@2.0+variant")
provides("mpi@2:", when="@1.9:")
```

We handled the `@2.0+variant` and `@1.9:` parts by generating generated
`dependency_condition()`, `required_dependency_condition()`, and
`imposed_dependency_condition()` facts to trigger rules like this:

```prolog
dependency_conditions_hold(ID, Parent, Dependency) :-
  attr(Name, Arg1)             : required_dependency_condition(ID, Name, Arg1);
  attr(Name, Arg1, Arg2)       : required_dependency_condition(ID, Name, Arg1, Arg2);
  attr(Name, Arg1, Arg2, Arg3) : required_dependency_condition(ID, Name, Arg1, Arg2, Arg3);
  dependency_condition(ID, Parent, Dependency);
  node(Parent).
```

And we handled `foo@1.0+bar` and `mpi@2:` parts ("imposed constraints")
like this:

```prolog
attr(Name, Arg1, Arg2) :-
  dependency_conditions_hold(ID, Package, Dependency),
  imposed_dependency_condition(ID, Name, Arg1, Arg2).

attr(Name, Arg1, Arg2, Arg3) :-
  dependency_conditions_hold(ID, Package, Dependency),
  imposed_dependency_condition(ID, Name, Arg1, Arg2, Arg3).
```

These rules were repeated with different input predicates for
requirements (e.g., `required_dependency_condition`) and imposed
constraints (e.g., `imposed_dependency_condition`) throughout
`concretize.lp`. In #20638 it got to be a bit confusing, because we used
the same `dependency_condition_holds` predicate to impose constraints on
conditional dependencies and virtual providers. So, even though the
pattern was repeated, some of the conditional rules were conjoined in a
weird way.

Instead of repeating this pattern everywhere, we now have *one* set of
consolidated rules for conditions:

```prolog
condition_holds(ID) :-
  condition(ID);
  attr(Name, A1)         : condition_requirement(ID, Name, A1);
  attr(Name, A1, A2)     : condition_requirement(ID, Name, A1, A2);
  attr(Name, A1, A2, A3) : condition_requirement(ID, Name, A1, A2, A3).

attr(Name, A1)         :- condition_holds(ID), imposed_constraint(ID, Name, A1).
attr(Name, A1, A2)     :- condition_holds(ID), imposed_constraint(ID, Name, A1, A2).
attr(Name, A1, A2, A3) :- condition_holds(ID), imposed_constraint(ID, Name, A1, A2, A3).
```

this allows us to use `condition(ID)` and `condition_holds(ID)` to
encapsulate the conditional logic on specs in all the scenarios where we
need it. Instead of defining predicates for the requirements and imposed
constraints, we generate the condition inputs with generic facts, and
define predicates to associate the condition ID with a particular
scenario. So, now, the generated facts for a condition look like this:

```prolog
condition(121).
condition_requirement(121,"node","cairo").
condition_requirement(121,"variant_value","cairo","fc","True").
imposed_constraint(121,"version_satisfies","fontconfig","2.10.91:").
dependency_condition(121,"cairo","fontconfig").
dependency_type(121,"build").
dependency_type(121,"link").
```

The requirements and imposed constraints are generic, and we associate
them with their meaning via the id. Here, `dependency_condition(121,
"cairo", "fontconfig")` tells us that condition 121 has to do with the
dependency of `cairo` on `fontconfig`, and the conditional dependency
rules just become:

```prolog
dependency_holds(Package, Dependency, Type) :-
  dependency_condition(ID, Package, Dependency),
  dependency_type(ID, Type),
  condition_holds(ID).
```

Dependencies, virtuals, conflicts, and externals all now use similar
patterns, and the logic for generating condition facts is common to all
of them on the python side, as well. The more specific routines like
`package_dependencies_rules` just call `self.condition(...)` to get an id
and generate requirements and imposed constraints, then they generate
their extra facts with the returned id, like this:

```python
    def package_dependencies_rules(self, pkg, tests):
        """Translate 'depends_on' directives into ASP logic."""
        for _, conditions in sorted(pkg.dependencies.items()):
            for cond, dep in sorted(conditions.items()):
                condition_id = self.condition(cond, dep.spec, pkg.name)  # create a condition and get its id
                self.gen.fact(fn.dependency_condition(  # associate specifics about the dependency w/the id
                    condition_id, pkg.name, dep.spec.name
                ))
        # etc.
```

- [x] unify generation and logic for conditions
- [x] use unified logic for dependencies
- [x] use unified logic for virtuals
- [x] use unified logic for conflicts
- [x] use unified logic for externals

LocalWords:  concretizer mpi attr Arg concretize lp cairo fc fontconfig
LocalWords:  virtuals def pkg cond dep fn refactor github py
2021-03-16 12:50:14 +01:00
Tomoyasu Nojiri
ce7bde24d4 amdlibflame: Fix build error (#22316) 2021-03-16 10:32:51 +00:00
Tomoyasu Nojiri
475c877fc9 libflame: Fix build error (#22315) 2021-03-16 10:03:32 +00:00
Harmen Stoppels
8ffeb96c77 hwloc: add dependency on ncurses (#22300)
Co-authored-by: Michal Sudwoj <msudwoj@student.ethz.ch>
2021-03-16 08:34:41 +01:00
Adam J. Stewart
d7f1ff68fb OpenCV: add new version, simplify package (#22292) 2021-03-15 14:41:24 -07:00
Harmen Stoppels
195341113e Expand relative dev paths in environment files (#22045)
* Rewrite relative dev_spec paths internally to absolute paths in case of relocation of the environment file

* Test relative paths for dev_path in environments

* Add a --keep-relative flag to spack env create

This ensures that relative paths of develop paths are not expanded to
absolute paths when initializing the environment in a different location
from the spack.yaml init file.
2021-03-15 15:38:35 -05:00
Harmen Stoppels
4f1d9d6095 Propagate --test= for environments (#22040)
* Propagate --test= for environments

* Improve help comment for spack concretize --test flag

* Add tests for --test with environments
2021-03-15 15:34:18 -05:00
Chuck Atkins
f949ae772d vtk-h: Fix missing trailing-colon in CMake version (#22302) 2021-03-15 20:16:56 +00:00
Harmen Stoppels
6ba7632d2b Make py-boto3 installable again with old concretizer (#22298) 2021-03-15 18:21:11 +00:00
Adam J. Stewart
d166ca91f1 dos2unix: gettext needed for linking (#22288) 2021-03-15 12:19:15 -06:00
Adam J. Stewart
70c505a0b8 Fix use of quotes in Python build system (#22279) 2021-03-15 11:11:27 -07:00
Adam J. Stewart
78d1b28b72 py-tqdm: add new version, variants (#22290) 2021-03-15 10:03:52 -07:00
Adam J. Stewart
3c493ae629 PyTorch: add missing tqdm dependency (#22289) 2021-03-15 09:55:31 -07:00
Tomoyasu Nojiri
9c7669ed67 fortrilinos: Fix trilinos depend (#22295) 2021-03-15 10:31:10 -06:00
Christoph Junghans
0c8df39fce votca-*: add v2021 (#22282) 2021-03-15 11:38:55 +01:00
a-saitoh-fj
3e4a24c878 py-aioitertools: New package (#22256)
* py-aioitertools: New package

* py-aioitertools: Fixed python dependencies, and Fixed style of code

* switch to the source build
2021-03-15 04:58:14 +00:00
Vanessasaurus
6ff717f395 do not validate variants of concrete specs in solver setup (#22272)
Currently, regardless of a spec being concrete or not, we validate its variants in `spec_clauses` (part of `SpackSolverSetup`).  

This PR skips the check if the spec is concrete.

The reason we want to do this is so that the solver setup class (really, `spec_clauses`) can be used for cases when we just want the logic statements / facts (is that what they are called?) and we don't need to re-validate an already concrete spec.  We can't change existing concrete specs, and we have to be able to handle them *even if they violate constraints in the current spack*.  This happens in practice if we are doing the validation for a spec produced by a different spack install.

Signed-off-by: vsoch <vsoch@users.noreply.github.com>
2021-03-14 19:00:15 +00:00
a-saitoh-fj
d22bad13b1 py-botocore: Update version to install py-s3fs (#22257)
* Update version to install py-s3fs

* Update the required version of py-urllib3, and Set the dependent conditions of py-docutils
2021-03-14 06:29:50 +00:00
Seth R. Johnson
5b2a54952c openblas: prevent microarch flags for generic targets (#22270)
As of OpenBLAS 0.3.13, leaving off `TARGET` by default optimizes most
code for the host system -- adding flags that cause the resulting
library to fail (SIGILL) on older systems.  This change should ensure
that a "x86_64" target for example will work across deployment systems.

https://github.com/xianyi/OpenBLAS/issues/3139
2021-03-13 11:00:15 +00:00
Vanessasaurus
746081e933 adding spack -c to set one off config arguments (#22251)
This pull request will add the ability for a user to add a configuration argument on the fly, on the command line, e.g.,:

```bash
$ spack -c config:install_tree:root:/path/to/config.yaml -c packages:all:compiler:[gcc] list --help
```
The above command doesn't do anything (I'm just getting help for list) but you can imagine having another root of packages, and updating it on the fly for a command (something I'd like to do in the near future!)

I've moved the logic for config_add that used to be in spack/cmd/config.py into spack/config.py proper, and now both the main.py (where spack commands live) and spack/cmd/config.py use these functions. I only needed spack config add, so I didn't move the others. We can move the others if there are also needed in multiple places.
2021-03-13 05:31:26 +00:00
Bryan Herman
839af2bd70 fixed ^python in py-rich, py-dvc (#22264) 2021-03-12 22:53:31 +00:00
Bryan Herman
f213cf8349 py-h5py: offline installation and deps fix (#22262)
* added h5py patch file for offline installs to work

* h5py v3+ deps consistent with setup.py, add patch
2021-03-12 19:44:37 +00:00
Chuck Atkins
474e616a5b ascent: Relax CMake version constraints (#22253) 2021-03-12 11:37:43 -08:00
Valentin Volkl
cf29ee6b2b [dd4hep] update env var (#22218) 2021-03-12 11:10:07 -07:00
Tamara Dahlgren
61baa40160 bugfix: ensure spack test list still works (#22203)
Was getting the following error:

```
$ spack test list
==> Error: issubclass() arg 1 must be a class
```

This PR adds a check in `has_test_method` (in case it is re-used elsewhere such as #22097) and ensures a class is passed to the method from `spack test list`.
2021-03-12 09:56:17 -08:00
iarspider
b2ece3abba Rivet: syntax fixes (#22225) 2021-03-12 09:52:07 -08:00
Desmond Orton
24b7aff837 Version update to 1.9.4 (#22231) 2021-03-12 09:44:10 -08:00
Brian Van Essen
8a8fad8474 LBANN software stack: new versions and dependencies (#22234)
Updated the versions for DiHydrogen and Aluminum. Added new constraints on versions of Aluminum that are used across the software stack.  Cleaned up the dependency on DiHydrogen for LBANN.
2021-03-12 10:43:13 -07:00
Sinan
650f24f4d3 add hints for dependency resolution (#22238)
Co-authored-by: sbulut <sbulut@3vgeomatics.com>
2021-03-12 09:36:11 -08:00
a-saitoh-fj
5790ec5359 py-fsspec: Update version to install py-s3fs (#22259) 2021-03-12 11:31:00 -06:00
Bryan Herman
a2e9a9076f fixed when python dep in ftfy dep for py benedict (#22261) 2021-03-12 10:28:13 -07:00
Tomoyasu Nojiri
19b163e49d chai: Add 2.3.0 version (#22254) 2021-03-12 10:16:06 -07:00
a-saitoh-fj
c6440eb23c py-chainer: Add test method for ChainerMN (continued #21848, #21940) (#22189)
* py-chainer: Add test method for ChainerMN (continued #21848, #21940)

* py-chainer: Fixed the word in the message

* py-chainer: Delete unnecessary imports

* py-chainer: Incorporation of the measures pointed out in #21940 was insufficient.
2021-03-12 11:40:25 +00:00
kuramoto-fj
40147d9955 mptensor: Add test method (#21712)
* mptensor: Add test method

* mptensor: Reverted the receipe on merged style

* mptensor: Changed """ to #
2021-03-12 06:13:38 +00:00
Sergei Shudler
21b2d7109a superlu-dist: Add e4s testsuite-inspired smoke test (#22237)
* Added a smoke test for superlu-dist recipe

* Fixed small issues following a PR review
2021-03-12 04:22:34 +00:00
Paul Kuberry
e13ce390fe Add internal package options to Trilinos (#22205)
Adds several EpetraExt_BUILD_* options as well as an Amesos2_ENABLE_Basker option. Adds `none` as an option to `gotype=`, which should be among the options since 'none' is specifically handled later in the package definition.

Adds `stokhos` and `trilinoscouplings` as options in spack which already are available in CMake for Trilinos (e.g. Trilinos_ENABLE_Stokhos:BOOL=)
2021-03-11 18:23:24 -08:00
BerengerBerthoul
ca4a566443 py-pytest-html recipe (#22221)
* py-pytest-html recipe

* added missing deps + copyright

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

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

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-12 02:17:12 +00:00
Thomas Kluyver
bb4ccdfa91 Add newest versions of py-h5py (#22245)
* Add newest versions of py-h5py

* Update dependencies for py-h5py
2021-03-12 00:39:25 +00:00
Tomoyasu Nojiri
952f76bda3 r-rhdf5filters: Fix for aarch64 (#22074) 2021-03-11 17:56:55 +00:00
Tomoyasu Nojiri
ab9580c168 bind9: add missing dependencies (#22212) 2021-03-11 16:32:29 +00:00
Tomoyasu Nojiri
e11f5df7dc ctffind: update url and version directive (#22039) 2021-03-11 15:23:41 +00:00
Ye Luo
d0610f7a39 elpa: fix build of versions before 2020 with GCC >= 10 (#22182) 2021-03-11 09:43:53 +00:00
Andrew W Elble
31cf0e9c0d py-imageio: new version 2.9.0 (#22229) 2021-03-11 04:41:13 +00:00
Gabriel Rockefeller
821769c95e eospac: add patch to fix selection of compiler flags (#21626)
Patch eospac's Makefile.-linux-gnu.hashes to consider only `$(notdir
$(F90))` when constructing a key to look up compiler flags in the
_F90-CPUINFO_COMP_FLAGS associative array.

This patch was accepted into eospac itself after the release of
6.4.2beta, so apply it only to 6.4.2beta and earlier releases.
2021-03-11 01:47:13 +00:00
Benjamin Tovar
f346db83ac cctools: add v7.2.1 (#22193) 2021-03-10 21:48:29 +00:00
David Pape
f73182fd98 gearshifft: fix patch, add support for mkl and rocm (#22195)
- Fix faulty patch
- Only use GEARSHIFFT_BACKEND_FFTW_PTHREADS if ~openmp
- Explicitly disable float16 support
- Use correct minimum required Boost version
- Add variants for Intel MKL and ROCm rocfft
2021-03-10 21:03:06 +00:00
Scott Wittenburg
7b97fe206b Pipelines: Fix issue that allowed failing jobs to pass (#22199)
This is a workaround for an issue with how "spack install" is invoked from within "spack ci rebuild".  The fact that we don't get an exception or even the actual returncode when using the object returned by spack.util.executable.which('spack') to install the target spec means we get no indication of failures about the install command itself.  Instead we rely on the subsequent buildcache creation failure to fail the job.
2021-03-10 11:11:30 -08:00
Michael Kuhn
43473995ad meson: apply rpath patch for current versions (#22216)
meson now only selectively strips rpaths but can still strip required
ones (like glib's pcre dependency).
2021-03-10 18:42:39 +00:00
darmac
d2ce4b565c vigra: add master branch (#22037) 2021-03-10 17:57:35 +00:00
Danny McClanahan
f0275e84ad fix setup-env.sh on older linux zsh (#21721) 2021-03-10 09:44:50 -08:00
darmac
05dfd94ed7 haveged: new package at v1.9.13 (#22127) 2021-03-10 17:36:27 +00:00
Michael Kuhn
c65e660fbe gdk-pixbuf: add v2.42.2 (#22215) 2021-03-10 16:44:15 +00:00
Michael Kuhn
ed4a468941 gcc: fix nvptx conflict (#22214)
In the past, we only had the binutils variant, which included the
bootstrapping flag. Now that we have a separate bootstrap variant, fix
the nvptx conflict accordingly.
2021-03-10 14:52:40 +00:00
darmac
df92f73c72 mii: add v1.0.4 (#21754)
mii: 1.0.3 and 1.0.2 is deprecated, and v1.0.4 can replace them safely
2021-03-10 14:22:21 +00:00
h-denpo
fc15f85986 gearshifft: add v0.4.0, remove v0.2.1-lw (#21437)
Changed maintainer

Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-03-10 11:00:36 +01:00
Andrew W Elble
81e3978759 gnutls: add v3.6.15 (#22192) 2021-03-10 10:53:35 +01:00
Andrew W Elble
f7c234f14c salmon: add v1.4.0 (#22201)
devendored (most) dependencies, added missing dependencies.
added resources and bypassed external fetching.
2021-03-10 10:30:03 +01:00
Paul Kuberry
d2e759e614 compadre: add new package (#22119) 2021-03-10 10:25:59 +01:00
h-denpo
8849312e68 pocl: updated llvm dependency to require not having flang (#22190)
depends_on("llvm +clang +shared_libs -flang @6.0:11.0", when="@1.6")
2021-03-10 10:25:10 +01:00
Tomoyasu Nojiri
8de96cde08 lxc: fix install error (#22206) 2021-03-10 10:18:34 +01:00
Tomoyasu Nojiri
114bc95526 rsyslog: fix install error (#22207) 2021-03-10 10:17:50 +01:00
Tomoyasu Nojiri
6da24dee91 satsuma2: fix install error (#22208) 2021-03-10 10:16:59 +01:00
Tomoyasu Nojiri
8ff898a95e warpx: add libs attribute to fix build on aarch64 (#22072)
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
2021-03-10 09:13:44 +00:00
Axel Huebl
8c613fadf0 BLAS++: OpenMP for AppleClang (#22211)
We need to install OpenMP for Apple's Clang.
2021-03-10 10:12:04 +01:00
m-shunji
55c1e76408 abinit: updated patch for Fujitsu compilers (#22009) 2021-03-10 09:58:38 +01:00
eugeneswalker
1492461b8e netcdf-c@4.7.3:4.7.4 patch detection of pnetcdf for spectrum-mpi (#22180) 2021-03-09 15:11:49 -08:00
Fabian Brandt
3006da8197 Bump version libnetworkit/networkit 8.0 -> 8.1 (#22194)
Co-authored-by: FBT <fabian.brandt-tumescheit@hu-berlin.de>
2021-03-09 13:40:03 -07:00
eugeneswalker
d001a8945a nalu-wind: add cuda variant (#22184) 2021-03-09 14:19:59 -06:00
Vasileios Karakasis
efecb22845 ReFrame 3.5.0 recipe (#22196) 2021-03-09 20:12:39 +01:00
Paul Kuberry
303230fe7f Add pthread variant to kokkos-kernels (#22120) 2021-03-09 06:36:21 -07:00
Evan Felix
4d1d435330 Pacifica spack integration work (#20485)
* Add intel cluster package update2 for 2020

* add pacifica cli tools, and pager

* remove boilerplate code

* update flake8 lints

* update flake8 lint, missed one

* add a description for pager

* Shorten a line

* Remove whitespace

* check on dependencies and move urls to proper place

* Remove import package as it seems it is not required

* add requests to the uploader config

* remove blank Line

* change to build and run for packages

* add run and build to the packages

* move from url method to pypi method

* adjust requirements based on feedback from adamjstewart

* remove python 3 requirement, and add setuptools-scm

* remove dependence on python

Co-authored-by: Evan Felix <evan.felix@pnnl.gov>
2021-03-09 13:13:51 +00:00
Andrew W Elble
1fa16c1b9b kicad: add v5.1.9 (#22123)
ngspice to v34
2021-03-09 09:45:45 +01:00
darmac
26e73e848d iptraf-ng: new package at v1.2.1 (#22155) 2021-03-09 09:38:49 +01:00
darmac
2ba00262e5 hw-probe: new package at v1.5 (#22156) 2021-03-09 09:37:52 +01:00
darmac
bf4c4e9b32 ike-scan: new package at v1.9 (#22160) 2021-03-09 09:36:13 +01:00
darmac
4e185d48d1 libmacaroons: new package at v0.3.0 (#22142) 2021-03-09 09:32:35 +01:00
Adam Moody
d6fbf8ad57 scr: require dtcmp, switch from /tmp to /dev/shm (#22073) 2021-03-08 17:22:47 -08:00
a-saitoh-fj
8395df6b5b DSQSS: Add test function, and Continuation of # 21666. (#22103) 2021-03-08 17:12:25 -08:00
Harmen Stoppels
1659beb220 Fix spack graph when deptypes are filtered (#22121) 2021-03-08 16:47:00 -08:00
Glenn Johnson
ccc7ed0af9 Add --vanilla flag to r build system (#22166)
Unlike the other commands of the `R CMD` interface, the `INSTALL` command
will read `Renviron` files. This can potentially break builds of r-
packages, depending on what is set in the `Renviron` file. This PR adds
the `--vanilla` flag to ensure that neither `Rprofile` nor `Renviron` files
are read during Spack builds of r- packages.
2021-03-08 15:53:12 -07:00
Martin Pokorny
68d5f348e5 casacore: add v3.4.0 (#22163) 2021-03-08 21:26:44 +01:00
James Elliott
126ab70420 Update Cmake 3.19.x to support crayftn preprocessing (cce 11+) (#22122)
Cray added necessary functionality for CMake to support fortran preprocessing using crayftn. This patch is necessary for the current release of cmake (3.19), with this patched expected to be in the 3.20 release of Cmake. The included patch is from kitware.

see https://gitlab.kitware.com/cmake/cmake/-/merge_requests/5882

Co-authored-by: James Elliott <jjellio@sandia.govv>
2021-03-08 10:54:46 -08:00
Phil Carns
3d17936866 v0.9.1 release of mochi-margo (#22164) 2021-03-08 11:22:03 -07:00
Thomas Madlener
bc40c3af91 Add latest versions for lcio and sio (#22173) 2021-03-08 10:17:55 -08:00
David Poliakoff
a52beca2cf Tuning variant for Kokkos packages (#22176) 2021-03-08 10:13:07 -08:00
Andrew W Elble
16adb5dd8f py-tensorflow-probability: run install from correct working dir (#22175) 2021-03-08 09:58:08 -06:00
Kai Torben Ohlhus
b642871b23 suite-sparse: add v5.9.0 (#22168)
Update homepage URL and see release notes:

- https://github.com/DrTimothyAldenDavis/SuiteSparse/releases/tag/v5.9.0
2021-03-08 10:37:08 +00:00
Tomoyasu Nojiri
c25a723d74 kmod: add --with-bashcompletiondir option (#22167) 2021-03-08 10:21:15 +01:00
Axel Huebl
90ace2d0ec catch2: add v2.13.4 (#22170)
Add the latest release of Catch2.
2021-03-08 10:20:21 +01:00
Tomoyasu Nojiri
2648fe902d bpp-seq: add v2.4.1 (#22171) 2021-03-08 10:19:54 +01:00
Tomoyasu Nojiri
39e30520ce bpp-core: add v2.4.1 (#22172) 2021-03-08 10:19:19 +01:00
Andrew W Elble
a0b5dcca3c py-tensorflow-probability: new package (#22165)
* py-tensorflow-probability: new package

* setuptools dep, quoting syntax
2021-03-08 02:23:49 +00:00
Todd Gamblin
8d3272f82d spack python: add --path option (#22006)
This adds a `--path` option to `spack python` that shows the `python`
interpreter that Spack is using.

e.g.:

```console
$ spack python --path
/Users/gamblin2/src/spack/var/spack/environments/default/.spack-env/view/bin/python
```

This is useful for debugging, and we can ask users to run it to
understand what python Spack is picking up via preferences in `bin/spack`
and via the `SPACK_PYTHON` environment variable introduced in #21222.
2021-03-07 13:37:26 -08:00
Todd Gamblin
7aa5cc241d add spack test list --all (#22032)
`spack test list` will show you which *installed* packages can be tested
but it won't show you which packages have tests.

- [x] add `spack test list --all` to show which packages have test methods
- [x] update `has_test_method()` to handle package instances *and*
      package classes.
2021-03-07 11:44:17 -08:00
darmac
e9c399110e Add new package: r-mockery (#22125) 2021-03-06 13:51:53 -06:00
darmac
18ba1b8923 Add new package: r-lobstr (#22069) 2021-03-06 03:49:39 +00:00
Vanessasaurus
ef9a607c4c libabigail: new package (#22092)
* adding package for libabigail, which we likely will need to use it for an analysis!
* includes variant for documentation (doxygen and pysphinx are associated dependencies)
2021-03-05 22:09:08 +00:00
Glenn Johnson
b5916451fd Improve R package creation (#21861)
* Improve R package creation

This PR adds the `list_url` attribute to CRAN R packages when using
`spack create`. It also adds the `git` attribute to R Bioconductor
packages upon creation.

* Switch over to using cran/bioc attributes

The cran/bioc entries are set to have the '=' line up with homepage
entry, but homepage does not need to exist in the package file. If it
does not, that could affect the alignment.

* Do not have to split bioc

* Edit R package documentation

Explain Bioconductor packages and add `cran` and `bioc` attributes.

* Update lib/spack/docs/build_systems/rpackage.rst

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

* Update lib/spack/docs/build_systems/rpackage.rst

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

* Simplify the cran attribute

The version can be faked so that the cran attribute is simply equal to
the CRAN package name.

* Edit the docs to reflect new `cran` attribute format

* Use the first element of self.versions() for url

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-05 21:19:15 +00:00
Adam J. Stewart
89a4c9bb6d gtkplus: add new version, convert to meson (#21914)
* gtkplus: add new version, convert to meson

* Add suggestions from aweits
2021-03-05 16:04:40 -05:00
Asher Mancinelli
da69f6eda8 Added support for disabling mumps in ipopt (#21592) 2021-03-05 11:32:11 -08:00
Martin Pokorny
4097a0c93f casacore: use a modern CMake's version of FindHDF5.cmake (#21882)
Remove casacore's old version of the file with a package patch()
function, and depend on a modern CMake for the build.

Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-03-05 16:05:37 +00:00
iarspider
ad9db839cf syscalc: fix recipe and URL (extension) (#22112) 2021-03-05 16:21:12 +01:00
David Böhme
098b7b2e50 Add Caliper 2.5.0 and Adiak 0.3.0 (#20718) 2021-03-05 15:30:57 +01:00
emai-imcs
71dd8ed265 FEniCS: update of packages to support 2019.1.0 (#21207) 2021-03-05 07:27:35 -07:00
Vasileios Karakasis
3b1b51e90d reframe: add v3.4.2 and v3.4.1, enable autocompletion (#22114) 2021-03-05 13:57:21 +00:00
Mathew Cleveland
ca3171d002 py-oppy: add v0_1_5 (#22061)
Co-authored-by: Cleveland <cleveland@lanl.gov>
2021-03-05 06:09:35 -07:00
thelfer
aa8079556a tfel: add v3.3.1, fix typo in checksum of v3.4.0 (#22062) 2021-03-05 12:27:05 +01:00
iarspider
ea45b95039 pythia6: extra patch provided by CERN's EP-SFT (#22055) 2021-03-05 04:14:36 -07:00
snehring
daf2ef9682 mcl: fixing missing extern in global variables (#22094)
Revealed by GCC 10 see https://gcc.gnu.org/gcc-10/porting_to.html
2021-03-05 12:01:18 +01:00
darmac
3c1b305752 rtags: add v2.20 (#22068) 2021-03-05 11:28:45 +01:00
Valentin Volkl
70cd948852 dd4hep: add v0.16 and geant4units variant (#22064) 2021-03-05 11:28:05 +01:00
Mark W. Krentel
290df7a14a hpcviewer: add version 2021.03 (#22107) 2021-03-05 10:08:09 +00:00
Tomoyasu Nojiri
d7c4f7b7e6 xfsprogs: add --with-systemd-unit-dir option (#22075) 2021-03-05 10:39:36 +01:00
Tomoyasu Nojiri
d3b10b04c1 freeipmi: add --with-systemdsystemunitdir option (#22096) 2021-03-05 10:38:19 +01:00
Tomoyasu Nojiri
97afb34ac3 keepalived: add --with-systemdsystemunitdir option (#22098) 2021-03-05 10:37:39 +01:00
Tomoyasu Nojiri
dc275e1f83 moosefs: add --with-systemdsystemunitdir option (#22099) 2021-03-05 10:36:32 +01:00
Tomoyasu Nojiri
346e6b3b77 rrdtool: add --with-systemdsystemunitdir option (#22100) 2021-03-05 10:30:34 +01:00
Adam J. Stewart
5fb0ff3906 py-torch: add v1.8.0 (#22101) 2021-03-05 10:21:39 +01:00
Adam J. Stewart
4261de5434 py-torchvision: add v0.9.0 (#22102) 2021-03-05 10:21:15 +01:00
Axel Huebl
c2925a1704 SLATE: Default ~cuda (#22110)
Same as BLAS++ since more GPU backends are coming and cuda
is usually off as a variant default in Spack, unless requested.
2021-03-05 10:11:16 +01:00
Tomoyasu Nojiri
03756583c3 py-python-ldap: add link dependency on cyrus-sasl (#22105) 2021-03-05 10:07:02 +01:00
Mark W. Krentel
c6b632a1f9 hpctoolkit: add version 2021.03.01 (#22106)
1. Add version 2021.03.01.
2. Cleanup the binutils dependencies now that 2.35.2 and 2.36 are available.
3. Require gcc 7.x or later for current 2021 version.
4. Simplify the xz depends to always require +pic.
   This works around a glitch in the original concretizer.
2021-03-05 10:06:11 +01:00
h-denpo
c460013a91 flexi: allow building on aarch64 (#22109) 2021-03-05 10:02:15 +01:00
Valentin Volkl
e112a26513 py-awkward1: add v1.1.2 (#22081)
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-03-05 09:52:57 +01:00
Greg Becker
92b7805e40 Allow relative paths in config files (relative to file dirname) (#21996)
This allows users to use relative paths for mirrors and repos and other things that may be part of a Spack environment.  There are two ways to do it.

1. Relative to the file

    ```yaml
    spack:
      repos:
      - local_dir/my_repository
    ```

    Which will refer to a repository like this in the directory where `spack.yaml` lives:

    ```
    env/
      spack.yaml  <-- the config file above
      local_dir/
        my_repository/  <-- this repository
          repo.yaml
          packages/
    ```

2. Relative to the environment

    ```yaml
    spack:
      repos:
      - $env/local_dir/my_repository
    ```

Both of these would refer to the same directory, but they differ for included files.  For example, if you had this layout:

```
env/
    spack.yaml
    repository/
    includes/
        repos.yaml
        repository/
```

And this `spack.yaml`:

```yaml
spack:
    include: includes/repos.yaml
```

Then, these two `repos.yaml` files are functionally different:

```yaml
repos:
    - $env/repository    # refers to env/repository/ above

repos:
    - repository    # refers to env/includes/repository/ above
```
    
The $env variable will not be evaluated if there is no active environment. This generally means that it should not be used outside of an environment's spack.yaml file. However, if other aspects of your workflow guarantee that there is always an active environment, it may be used in other config scopes.
2021-03-04 22:29:48 -08:00
Larry Knox
8bdd6c6f6d hdf5: add v1.8.22. (#22089) 2021-03-04 20:04:52 +00:00
darmac
10c7831366 Add new package: perl-test-more (#22076)
* Add new package: perl-test-more

* perl-test-more: refine description
2021-03-04 10:04:57 -08:00
darmac
459b991e78 perl-test-output: new package at v1.033 (#22077) 2021-03-04 18:11:28 +01:00
Michael Kuron
7f01d1dc40 py-ase: add a build dependency on py-setuptools (#22078) 2021-03-04 18:09:37 +01:00
darmac
e9dfc50d1b py-sqlparse: add v0.4.1 (#22080) 2021-03-04 17:44:33 +01:00
Dr. Christian Tacke
04cd884c95 poke: new package at v1.0 (#22085) 2021-03-04 17:41:48 +01:00
Dr. Christian Tacke
71954d9665 xrootd: add v5.1.0 (#22084) 2021-03-04 17:39:58 +01:00
Tomoyasu Nojiri
d7dd12edab unifyfs: Fix strncpy build error of version 0.9.1 (#22066) 2021-03-04 07:46:18 -08:00
Axel Huebl
49c015e391 BLAS++: CUDA default (false) (#22067)
For opt-in packages in Spack, its common that the `cuda` variant
is disabled by default.

This also simplifies downstream usage in multi-variants for
backends in user code.
2021-03-04 12:07:48 +01:00
Mosè Giordano
7e143bab6a libblastrampoline: Add version 3.0.2 (#22065) 2021-03-04 11:05:32 +01:00
darmac
f1d0a819e9 py-adb-enhanced: update version to fix runtime error (#22036)
* py-adb-enhanced: update version to fix runtime error

* py-adb-enhanced: fix dependencies
2021-03-03 20:57:41 -06:00
Andrew W Elble
631598014a py-pycuda: new version 2020.1 (#22057)
* py-pycuda: new version 2020.1

* dep updates

* deal with lib/lib64 issue
2021-03-03 22:06:02 +00:00
Massimiliano Culpo
10e9e142b7 Bootstrap clingo from sources (#21446)
* Allow the bootstrapping of clingo from sources

Allow python builds with system python as external
for MacOS

* Ensure consistent configuration when bootstrapping clingo

This commit uses context managers to ensure we can
bootstrap clingo using a consistent configuration
regardless of the use case being managed.

* Github actions: test clingo with bootstrapping from sources

* Add command to inspect and clean the bootstrap store

 Prevent users to set the install tree root to the bootstrap store

* clingo: documented how to bootstrap from sources

Co-authored-by: Gregory Becker <becker33@llnl.gov>
2021-03-03 09:37:46 -08:00
Frédéric Simonis
6d54df1ba4 precice: add pkgconfig as a build dependency (#22059) 2021-03-03 17:10:00 +00:00
Anton Kozhevnikov
58d9f5c114 libxc: add v5.1.2 (#22056) 2021-03-03 16:52:41 +00:00
ajaust
ac66624196 py-pyprecice: Add version 2.1.1.2 and 2.2.0.1 (#22012) 2021-03-03 07:44:04 -06:00
Adam J. Stewart
d343304bdc py-pandas: add v1.2.3 (#22048) 2021-03-03 14:31:22 +01:00
Massimiliano Culpo
796588b2fd zig: add new package at v0.7.1 (#22046) 2021-03-03 13:30:41 +01:00
Olivier Cessenat
25fb753cd2 New Package: keepassxc (#21878) 2021-03-02 18:37:18 -08:00
Mark Olesen
0c38c86403 openfoam: disable FPE handling for Fujitsu compiler (#21769)
- as outlined in merge-request #21336 some clang compilers
  can trigger erroneous floating point exceptions.

  OpenFOAM normally traps FPE, but disable this in the etc/controlDict
  for specific compilers:

      change "trapFpe digit;" -> "trapFpe 0;"

  Eliminate previous use of FOAM_SGIFPE env variable in favour of
  using the etc/controlDict setting - cleaner and robuster.

Co-authored-by: Mark Olesen <Mark.Olesen@esi-group.com>
2021-03-02 22:01:20 +01:00
rexcsn
16c07e6abd aws-parallelcluster v2.10.2 (#22047)
Signed-off-by: Rex <shuningc@amazon.com>
2021-03-02 13:55:49 -06:00
Desmond Orton
8e1b62ee68 New package at r-spades at 2.0.6 (#21784) 2021-03-02 11:10:02 -07:00
Dr. Christian Tacke
c7306db061 geant4(-data): Add version 10.7.1 (#22044)
Notably, this patch release adds a new version of
g4particlexs.
2021-03-02 16:57:46 +00:00
Seth R. Johnson
136fa9c203 vecgeom: add v1.1.12 (#22041) 2021-03-02 14:29:16 +00:00
Harmen Stoppels
dc5022a9d9 openssl: introduce ~docs to make installation smaller (#21962) 2021-03-02 14:58:59 +01:00
Phil Carns
eeff906ccc bmi: update url and repo location (#21992) 2021-03-02 10:38:52 +00:00
Phil Carns
ae19ddbfcb mochi-margo: the official repo is on github now (#22029) 2021-03-02 10:28:33 +00:00
Eisuke Kawashima
1e0d311547 dftd4: add new package at v3.1.0 (#22007) 2021-03-02 10:11:45 +00:00
Adam J. Stewart
50ffb4b868 Assert the use of the patch directive with a non-existing file will fail (#21524) 2021-03-02 09:58:47 +00:00
Massimiliano Culpo
61e00ac1e1 nim: add v1.4.4 (#22004) 2021-03-02 09:42:05 +00:00
a-saitoh-fj
71df23406d eigenexa : use an interpreter explicitly to execute test script (#21896) 2021-03-02 10:02:56 +01:00
ketsubouchi
60e64bac0a virtuoso: add new package (#21793) 2021-03-02 09:50:49 +01:00
Olivier Cessenat
880bb06cbf octave: provides fltk with opengl, adds qscintilla (#21903) 2021-03-02 09:47:00 +01:00
h-denpo
fac785914b py-fava: Removed the importlib dependencyfrom py-fava. (#22035)
It isn't needed.
2021-03-01 23:10:02 -06:00
h-denpo
9575531f2a py-importlib: Python 2.7 is needed to build. (#22034)
* py-importlib: Python 2.7 is needed to build.

added     depends_on('python@2.7.0:2.7.99')

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

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

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2021-03-01 23:09:31 -06:00
h-denpo
83ca1b153f py-azureml-dataprep-rslex: install only x86_64 (#22033)
* py-azureml-dataprep-rslex: install only x86_64

* py-azureml-dataprep-rslex:  Moved the conflit part.
2021-03-02 03:39:56 +00:00
Desmond Orton
671878740c Version update with url to checksum all versions (#22027) 2021-03-01 16:23:49 -08:00
Paul Ferrell
88f7a00f2d Paraview compatibility with PugiXML varies by version. (#21732) 2021-03-01 16:06:34 -08:00
Ethan Stam
b2e0bc1ae7 paraview: add python to rpath (#21768) 2021-03-01 16:00:44 -08:00
Paul
bd94458552 Added Go versions 1.16 and 1.15.8 (#22016) 2021-03-01 15:22:12 -08:00
eugeneswalker
36ae5ac6ef kokkos package: +cuda requires +wrapper when compiler is not clang (#21941)
This check is performed in cmake_args rather than with a 'conflicts'
statement because matching on !clang (i.e. any compiler that is not
clang) cannot currently be done with our spec syntax.
2021-03-01 14:54:14 -08:00
mic84
d7595d6703 amrex: new version 21.03 (#22028) 2021-03-01 14:46:37 -08:00
ketsubouchi
f1ef260b47 alps: add smoke test (#21834) 2021-03-01 14:40:01 -08:00
Andrew W Elble
4d37b384f5 py-torch-geometric: new version 1.6.3 (#22024)
* py-torch-geometric: new version 1.6.3

* setuptools
2021-03-01 20:33:23 +00:00
Simon Frasch
df42c0b4b6 spla: added version 1.3.0 (#22013) 2021-03-01 20:15:16 +00:00
Andrew W Elble
f5beee76c8 py-tensorboardx: update package (#22026)
v2.1
2021-03-01 13:58:29 -06:00
Andrew W Elble
20fdab7f02 py-yacs: new package (#22020) 2021-03-01 13:56:54 -06:00
mic84
651df70213 amrex: must use AMReX_CUDA_ARCH for version > 20.11 (#22025) 2021-03-01 11:45:04 -08:00
William Downs
1ac2cc5081 intel-mpi: add version 2019.9.304 and 2019.10.317 (#22017) 2021-03-01 11:40:41 -08:00
Andrew W Elble
81b77873e7 py-lap: new package (#22021)
* py-lap: new package

* dep versions
2021-03-01 19:24:36 +00:00
Andrew W Elble
987b5a5b6f py-motmetrics: new package (#22023)
* py-motmetrics: new package

* dep updates
2021-03-01 19:03:03 +00:00
Andrew W Elble
1abfebb5e9 py-cython-bbox: new package (#22022)
* py-cython-bbox: new package

* pypi url fix
2021-03-01 19:01:57 +00:00
Brian Van Essen
44ed19daa4 Put a guard in to check if a match was found (#21576) 2021-03-01 10:12:51 -08:00
Mark W. Krentel
14c1d58b5a binutils: add versions 2.35.2 and 2.36.1 (#22019)
Starting with 2.36, the Makefiles are missing some dependencies for
linking libctf and thus require serial make install.
2021-03-01 08:53:55 -08:00
AMD Toolchain Support
afb7e57d20 ucx: added variants to support IB, mlx etc (#21876)
Co-authored-by: mohan babu <mohbabul@amd.com>
2021-03-01 16:11:37 +01:00
Adam J. Stewart
c529ccaab0 py-geopandas: add v0.9.0 (#22005) 2021-03-01 14:35:16 +01:00
h-denpo
890a93bbcd gchp: patch for aarch64 (#22010) 2021-03-01 09:06:08 +01:00
Mosè Giordano
62f8087716 libblastrampoline: Add version 3.0.1 (#22002) 2021-02-27 18:31:59 +01:00
Scott Wittenburg
704eadbda1 Temporarily reduce pr stack size (#21998)
Gitlab pipelines fixes

* add arch tag to avoid picking up UO power9 runners
* temporarily reduce PR workload
2021-02-27 09:43:29 -07:00
Robert Pavel
d5f50203d1 Removed MPI variant from ebms (#21938) 2021-02-27 13:15:57 +01:00
iarspider
5abc7e59d1 Rivet updates and improvements (#21843) 2021-02-27 13:13:08 +01:00
iarspider
edeb6c52f0 Openblas: add experimental BIGNUMA flag (#21393) 2021-02-27 13:06:29 +01:00
Tamara Dahlgren
e775cbb0c0 Raise InstallError if any explicit specs is skipped (#21980) 2021-02-27 09:21:56 +01:00
Adam J. Stewart
ede100bf16 kcov: elfutils not needed on macOS (#21993) 2021-02-26 19:25:59 -06:00
Satish Balay
a87aa49fbf petsc/petsc4py/slepc: switch default git branch from 'master' to 'main' (#22001) 2021-02-27 01:17:37 +00:00
Sebastian Mobo
4f84721dc1 boost: Patch B2 bootstrap step to use correct toolchain (#21408) 2021-02-26 17:46:37 -06:00
Andrew W Elble
f2f58b70b1 nccl-tests: respect cuda_arch variant during build (#21995) 2021-02-26 15:38:20 -08:00
Ryan Viertel
f957f1936c adds flag to turn off NLOPT_OCTAVE in CMAKE when -octave (#21997) 2021-02-26 15:35:09 -08:00
Desmond Orton
5492e549a5 New package r-spades-tools at 0.3.6 (#21783) 2021-02-26 23:25:47 +00:00
4212 changed files with 103881 additions and 27902 deletions

View File

@@ -14,3 +14,21 @@ ignore:
- share/spack/qa/.*
comment: off
# Inline codecov annotations make the code hard to read, and they add
# 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

@@ -8,4 +8,4 @@ share/spack/dotkit/*
share/spack/lmod/*
share/spack/modules/*
lib/spack/spack/test/*
var/spack/cache/*

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

64
.github/ISSUE_TEMPLATE/build_error.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
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 exact spec you are trying to build and the relevant part of the error message
placeholder: |
```console
$ spack install <spec>
...
```
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!

View File

@@ -1,6 +0,0 @@
FROM python:3.7-alpine
RUN pip install pygithub
ADD entrypoint.py /entrypoint.py
ENTRYPOINT ["/entrypoint.py"]

View File

@@ -1,85 +0,0 @@
#!/usr/bin/env python
#
# 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)
"""Maintainer review action.
This action checks which packages have changed in a PR, and adds their
maintainers to the pull request for review.
"""
import json
import os
import re
import subprocess
from github import Github
def spack(*args):
"""Run the spack executable with arguments, and return the output split.
This does just enough to run `spack pkg` and `spack maintainers`, the
two commands used by this action.
"""
github_workspace = os.environ['GITHUB_WORKSPACE']
spack = os.path.join(github_workspace, 'bin', 'spack')
output = subprocess.check_output([spack] + list(args))
split = re.split(r'\s*', output.decode('utf-8').strip())
return [s for s in split if s]
def main():
# get these first so that we'll fail early
token = os.environ['GITHUB_TOKEN']
event_path = os.environ['GITHUB_EVENT_PATH']
with open(event_path) as file:
data = json.load(file)
# make sure it's a pull_request event
assert 'pull_request' in data
# only request reviews on open, edit, or reopen
action = data['action']
if action not in ('opened', 'edited', 'reopened'):
return
# get data from the event payload
pr_data = data['pull_request']
base_branch_name = pr_data['base']['ref']
full_repo_name = pr_data['base']['repo']['full_name']
pr_number = pr_data['number']
requested_reviewers = pr_data['requested_reviewers']
author = pr_data['user']['login']
# get a list of packages that this PR modified
changed_pkgs = spack(
'pkg', 'changed', '--type', 'ac', '%s...' % base_branch_name)
# get maintainers for all modified packages
maintainers = set()
for pkg in changed_pkgs:
pkg_maintainers = set(spack('maintainers', pkg))
maintainers |= pkg_maintainers
# remove any maintainers who are already on the PR, and the author,
# as you can't review your own PR)
maintainers -= set(requested_reviewers)
maintainers -= set([author])
if not maintainers:
return
# request reviews from each maintainer
gh = Github(token)
repo = gh.get_repo(full_repo_name)
pr = repo.get_pull(pr_number)
pr.create_review_request(list(maintainers))
if __name__ == "__main__":
main()

275
.github/workflows/bootstrap.yml vendored Normal file
View File

@@ -0,0 +1,275 @@
name: Bootstrapping
on:
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@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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
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@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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
spack external find cmake bison
spack -d solve zlib
tree ~/.spack/bootstrap/store/
opensuse-clingo-sources:
runs-on: ubuntu-latest
container: "opensuse/leap:latest"
steps:
- name: Install dependencies
run: |
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@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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
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@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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
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']
steps:
- name: Install dependencies
run: |
brew install tree
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @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']
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @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@ec3a7ce113134d7a93b817d10a8272cb61118579
- 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@ec3a7ce113134d7a93b817d10a8272cb61118579
- 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
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@ec3a7ce113134d7a93b817d10a8272cb61118579
- 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@ec3a7ce113134d7a93b817d10a8272cb61118579
- name: Bootstrap GnuPG
run: |
source share/spack/setup-env.sh
spack solve zlib
spack bootstrap untrust github-actions
spack -d gpg list
tree ~/.spack/bootstrap/store/

91
.github/workflows/build-containers.yml vendored Normal file
View File

@@ -0,0 +1,91 @@
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'
# 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:
dockerfile: [[amazon-linux, amazonlinux-2.dockerfile, 'linux/amd64,linux/arm64'],
[centos7, centos-7.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le'],
[leap15, leap-15.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le'],
[ubuntu-xenial, ubuntu-1604.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le'],
[ubuntu-bionic, ubuntu-1804.dockerfile, 'linux/amd64,linux/arm64,linux/ppc64le']]
name: Build ${{ matrix.dockerfile[0] }}
steps:
- name: Checkout
uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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: Check ${{ matrix.dockerfile[1] }} Exists
run: |
printf "Preparing to build ${{ env.container }} from ${{ matrix.dockerfile[1] }}"
if [ ! -f "share/spack/docker/${{ matrix.dockerfile[1]}}" ]; then
printf "Dockerfile ${{ matrix.dockerfile[0]}} does not exist"
exit 1;
fi
- 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@f054a8b539a109f9f41c372932f1ae047eff08c9 # @v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to DockerHub
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 # @v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build & Deploy ${{ matrix.dockerfile[1] }}
uses: docker/build-push-action@a66e35b9cbcf4ad0ea91ffcaf7bbad63ad9e0229 # @v2
with:
file: share/spack/docker/${{matrix.dockerfile[1]}}
platforms: ${{ matrix.dockerfile[2] }}
push: ${{ github.event_name != 'pull_request' }}
tags: |
spack/${{ env.container }}
spack/${{ env.versioned }}
ghcr.io/spack/${{ env.container }}
ghcr.io/spack/${{ env.versioned }}

View File

@@ -1,65 +0,0 @@
name: linux builds
on:
push:
branches:
- develop
- releases/**
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 # WafPackage
- py-setuptools # PythonPackage
- openjpeg # CMakePackage
- r-rcpp # RPackage
- ruby-rake # RubyPackage
steps:
- uses: actions/checkout@v2
- uses: actions/cache@v2.1.4
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

@@ -1,188 +0,0 @@
name: linux tests
on:
push:
branches:
- develop
- releases/**
pull_request:
branches:
- develop
- releases/**
jobs:
unittests:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install System packages
run: |
sudo apt-get -y update
# Needed for unit tests
sudo apt-get install -y coreutils gfortran graphviz gnupg2 mercurial
sudo apt-get install -y 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 Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage
- 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
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: Run unit tests
env:
COVERAGE: true
run: |
share/spack/qa/run-unit-tests
coverage combine
coverage xml
- uses: codecov/codecov-action@v1
with:
flags: unittests,linux
shell:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: 3.9
- 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
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage
- 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
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
env:
COVERAGE: true
run: |
share/spack/qa/run-shell-tests
- uses: codecov/codecov-action@v1
with:
flags: shelltests,linux
centos6:
# Test for Python2.6 run on Centos 6
runs-on: ubuntu-latest
container: spack/github-actions:centos6
steps:
- name: Run unit tests
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
rhel8-platform-python:
runs-on: ubuntu-latest
container: registry.access.redhat.com/ubi8/ubi
steps:
- name: Install dependencies
run: |
dnf install -y \
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
make patch tcl unzip which xz
- uses: actions/checkout@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: Run unit tests
env:
SPACK_PYTHON: /usr/libexec/platform-python
shell: runuser -u spack-test -- bash {0}
run: |
source share/spack/setup-env.sh
spack unit-test -k 'not svn and not hg' -x --verbose
clingo:
# Test for the clingo based solver
runs-on: ubuntu-latest
container: spack/github-actions:clingo
steps:
- name: Run unit tests
run: |
whoami && echo PWD=$PWD && echo HOME=$HOME && echo SPACK_TEST_SOLVER=$SPACK_TEST_SOLVER
which clingo && clingo --version
git clone https://github.com/spack/spack.git && cd spack
git fetch origin ${{ github.ref }}:test-branch
git checkout test-branch
. share/spack/setup-env.sh
spack compiler find
spack solve mpileaks%gcc
coverage run $(which spack) unit-test -v
coverage combine
coverage xml
- uses: codecov/codecov-action@v1
with:
flags: unittests,linux,clingo
clingo-cffi:
# Test for the clingo based solver (using clingo-cffi)
runs-on: ubuntu-latest
container: spack/github-actions:clingo-cffi
steps:
- name: Run unit tests
run: |
whoami && echo PWD=$PWD && echo HOME=$HOME && echo SPACK_TEST_SOLVER=$SPACK_TEST_SOLVER
python3 -c "import clingo; print(hasattr(clingo.Symbol, '_rep'), clingo.__version__)"
git clone https://github.com/spack/spack.git && cd spack
git fetch origin ${{ github.ref }}:test-branch
git checkout test-branch
. share/spack/setup-env.sh
spack compiler find
spack solve mpileaks%gcc
coverage run $(which spack) unit-test -v
coverage combine
coverage xml
- uses: codecov/codecov-action@v1
with:
flags: unittests,linux,clingo

View File

@@ -24,8 +24,8 @@ jobs:
name: gcc with clang
runs-on: macos-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: 3.9
- name: spack install
@@ -39,8 +39,8 @@ jobs:
runs-on: macos-latest
timeout-minutes: 700
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @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@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @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

View File

@@ -1,44 +0,0 @@
name: macos tests
on:
push:
branches:
- develop
- releases/**
pull_request:
branches:
- develop
- releases/**
jobs:
build:
runs-on: macos-latest
strategy:
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@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 pep8-naming mypy
- name: Setup Homebrew packages
run: |
brew install dash fish gcc gnupg2 kcov
- name: Run unit tests
run: |
git --version
. .github/workflows/setup_git.sh
. share/spack/setup-env.sh
coverage run $(which spack) unit-test
coverage combine
coverage xml
- uses: codecov/codecov-action@v1
with:
file: ./coverage.xml
flags: unittests,macos

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

@@ -1,65 +0,0 @@
name: style and docs
on:
push:
branches:
- develop
- releases/**
pull_request:
branches:
- develop
- releases/**
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install Python Packages
run: |
pip install --upgrade pip
pip install --upgrade vermin
- name: Minimum Version (Spack's Core)
run: vermin --backport argparse --backport typing -t=2.6- -t=3.5- -v lib/spack/spack/ lib/spack/llnl/ bin/
- name: Minimum Version (Repositories)
run: vermin --backport argparse --backport typing -t=2.6- -t=3.5- -v var/spack/repos
style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-python@v2
with:
python-version: 3.9
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools flake8 mypy>=0.800 black
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
git --version
. .github/workflows/setup_git.sh
- name: Run style tests
run: |
share/spack/qa/run-style-tests
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

349
.github/workflows/unit_tests.yaml vendored Normal file
View File

@@ -0,0 +1,349 @@
name: linux tests
on:
push:
branches:
- develop
- releases/**
pull_request:
branches:
- develop
- releases/**
jobs:
# Validate that the code can be run on all the Python versions
# supported by Spack
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: 3.9
- 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/
- name: vermin (Repositories)
run: vermin --backport argparse --violations --backport typing -t=2.6- -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@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: 3.9
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools types-six
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
git --version
. .github/workflows/setup_git.sh
- name: Run style tests
run: |
share/spack/qa/run-style-tests
# Check which files have been updated by the PR
changes:
runs-on: ubuntu-latest
# Set job outputs to values from filter step
outputs:
core: ${{ steps.filter.outputs.core }}
packages: ${{ steps.filter.outputs.packages }}
with_coverage: ${{ steps.coverage.outputs.with_coverage }}
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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@b2feaf19c27470162a626bd6fa8438ae5b263721
id: filter
with:
# See https://github.com/dorny/paths-filter/issues/56 for the syntax used below
filters: |
core:
- './!(var/**)/**'
packages:
- 'var/**'
# Some links for easier reference:
#
# "github" context: https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context
# job outputs: https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#jobsjob_idoutputs
# setting environment variables from earlier steps: https://docs.github.com/en/actions/reference/workflow-commands-for-github-actions#setting-an-environment-variable
#
- id: coverage
# Run the subsequent jobs with coverage if core has been modified,
# regardless of whether this is a pull request or a push to a branch
run: |
echo Core changes: ${{ steps.filter.outputs.core }}
echo Event name: ${{ github.event_name }}
if [ "${{ steps.filter.outputs.core }}" == "true" ]
then
echo "::set-output name=with_coverage::true"
else
echo "::set-output name=with_coverage::false"
fi
# Run unit tests with different configurations on linux
unittests:
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']
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: ${{ matrix.python-version }}
- 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 cmake bison libbison-dev kcov
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage[toml]
# 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: Setup git configuration
run: |
# Need this for the git tests to succeed.
git --version
. .github/workflows/setup_git.sh
- name: Bootstrap clingo
if: ${{ matrix.concretizer == 'clingo' }}
env:
SPACK_PYTHON: python
run: |
. share/spack/setup-env.sh
spack bootstrap untrust spack-install
spack -v solve zlib
- name: Run unit tests (full suite with coverage)
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
SPACK_PYTHON: python
COVERAGE: true
SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
run: |
share/spack/qa/run-unit-tests
coverage combine
coverage xml
- name: Run unit tests (reduced suite without coverage)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
env:
SPACK_PYTHON: python
ONLY_PACKAGES: true
SPACK_TEST_SOLVER: ${{ matrix.concretizer }}
run: |
share/spack/qa/run-unit-tests
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: unittests,linux,${{ matrix.concretizer }}
# Test shell integration
shell:
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: 3.9
- name: Install System packages
run: |
sudo apt-get -y update
# Needed for shell tests
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[toml]
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
git --version
. .github/workflows/setup_git.sh
- name: Run shell tests (without coverage)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
run: |
share/spack/qa/run-shell-tests
- name: Run shell tests (with coverage)
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
COVERAGE: true
run: |
share/spack/qa/run-shell-tests
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # @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, 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
SPACK_TEST_SOLVER: original
run: |
whoami && echo $HOME && cd $HOME
git clone "${{ github.server_url }}/${{ github.repository }}.git" && cd spack
git fetch origin "${{ github.ref }}:test-branch"
git checkout test-branch
. .github/workflows/setup_git.sh
bin/spack unit-test -x
- name: Run unit tests (only package tests)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
env:
HOME: /home/spack-test
ONLY_PACKAGES: true
SPACK_TEST_SOLVER: original
run: |
whoami && echo $HOME && cd $HOME
git clone "${{ github.server_url }}/${{ github.repository }}.git" && cd spack
git fetch origin "${{ github.ref }}:test-branch"
git checkout test-branch
. .github/workflows/setup_git.sh
bin/spack unit-test -x -m "not maybeslow" -k "package_sanity"
# Test RHEL8 UBI with platform Python. This job is run
# only on PRs modifying core Spack
rhel8-platform-python:
needs: [ validate, style, changes ]
runs-on: ubuntu-latest
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
container: registry.access.redhat.com/ubi8/ubi
steps:
- name: Install dependencies
run: |
dnf install -y \
bzip2 curl file gcc-c++ gcc gcc-gfortran git gnupg2 gzip \
make patch tcl unzip which xz
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @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: Run unit tests
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, changes ]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: 3.9
- 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 kcov
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools codecov coverage[toml] clingo
- name: Setup git configuration
run: |
# Need this for the git tests to succeed.
git --version
. .github/workflows/setup_git.sh
- name: Run unit tests (full suite with coverage)
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
env:
COVERAGE: true
SPACK_TEST_SOLVER: clingo
run: |
share/spack/qa/run-unit-tests
coverage combine
coverage xml
- name: Run unit tests (reduced suite without coverage)
if: ${{ needs.changes.outputs.with_coverage == 'false' }}
env:
ONLY_PACKAGES: true
SPACK_TEST_SOLVER: clingo
run: |
share/spack/qa/run-unit-tests
- uses: codecov/codecov-action@f32b3a3741e1053eb607407145bc9619351dc93b # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
flags: unittests,linux,clingo
# Run unit tests on MacOS
build:
needs: [ validate, style, changes ]
runs-on: macos-latest
strategy:
matrix:
python-version: [3.8]
steps:
- uses: actions/checkout@ec3a7ce113134d7a93b817d10a8272cb61118579 # @v2
with:
fetch-depth: 0
- uses: actions/setup-python@dc73133d4da04e56a135ae2246682783cc7c7cb6 # @v2
with:
python-version: ${{ matrix.python-version }}
- name: Install Python packages
run: |
pip install --upgrade pip six setuptools
pip install --upgrade codecov coverage[toml]
- 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@f32b3a3741e1053eb607407145bc9619351dc93b # @v2.1.0
if: ${{ needs.changes.outputs.with_coverage == 'true' }}
with:
files: ./coverage.xml
flags: unittests,macos

6
.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/
@@ -508,4 +512,4 @@ $RECYCLE.BIN/
*.msp
# Windows shortcuts
*.lnk
*.lnk

View File

@@ -3,7 +3,8 @@ Adam Moody <moody20@llnl.gov> Adam T. Moody
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Gimenez <alfredo.gimenez@gmail.com>
Alfredo Gimenez <gimenez1@llnl.gov> Alfredo Adolfo Gimenez <alfredo.gimenez@gmail.com>
Andrew Williams <williamsa89@cardiff.ac.uk> Andrew Williams <andrew@alshain.org.uk>
Axel Huebl <a.huebl@hzdr.de> Axel Huebl <axel.huebl@plasma.ninja>
Axel Huebl <axelhuebl@lbl.gov> Axel Huebl <a.huebl@hzdr.de>
Axel Huebl <axelhuebl@lbl.gov> Axel Huebl <axel.huebl@plasma.ninja>
Ben Boeckel <ben.boeckel@kitware.com> Ben Boeckel <mathstuf@gmail.com>
Ben Boeckel <ben.boeckel@kitware.com> Ben Boeckel <mathstuf@users.noreply.github.com>
Benedikt Hegner <hegner@cern.ch> Benedikt Hegner <benedikt.hegner@cern.ch>

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,255 @@
# 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)
* `spack fetch` is now environment-aware. (#19166)
* Numerous fixes for the new, `clingo`-based concretizer. (#23016, #23307,
#23090, #22896, #22534, #20644, #20537, #21148)
* Supoprt for automatically bootstrapping `clingo` from source. (#20652, #20657
#21364, #21446, #21913, #22354, #22444, #22460, #22489, #22610, #22631)
* Python 3.10 support: `collections.abc` (#20441)
* Fix import issues by using `__import__` instead of Spack package importe.
(#23288, #23290)
* Bugfixes and `--source-dir` argument for `spack location`. (#22755, #22348,
#22321)
* Better support for externals in shared prefixes. (#22653)
* `spack build-env` now prefers specs defined in the active environment.
(#21642)
* Remove erroneous warnings about quotes in `from_sourcing_files`. (#22767)
* Fix clearing cache of `InternalConfigScope`. (#22609)
* Bugfix for active when pkg is already active error. (#22587)
* Make `SingleFileScope` able to repopulate the cache after clearing it.
(#22559)
* Channelflow: Fix the package. (#22483)
* More descriptive error message for bugs in `package.py` (#21811)
* Use package-supplied `autogen.sh`. (#20319)
* Respect `-k/verify-ssl-false` in `_existing_url` method. (#21864)
# v0.16.1 (2021-02-22)
This minor release includes a new feature and associated fixes:

View File

@@ -1,12 +1,12 @@
# <img src="https://cdn.rawgit.com/spack/spack/develop/share/spack/logo/spack-logo.svg" width="64" valign="middle" alt="Spack"/> Spack
[![MacOS Tests](https://github.com/spack/spack/workflows/macos%20tests/badge.svg)](https://github.com/spack/spack/actions)
[![Linux 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)
[![Unit Tests](https://github.com/spack/spack/workflows/linux%20tests/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://spackpm.herokuapp.com/badge.svg)](https://spackpm.herokuapp.com)
[![Slack](https://slack.spack.io/badge.svg)](https://slack.spack.io)
Spack is a multi-platform package manager that builds and installs
multiple versions and configurations of software. It works on Linux,
@@ -27,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
@@ -37,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
----------------
@@ -59,7 +61,7 @@ packages to bugfixes, documentation, or even new core features.
Resources:
* **Slack workspace**: [spackpm.slack.com](https://spackpm.slack.com).
To get an invitation, [**click here**](https://spackpm.herokuapp.com).
To get an invitation, visit [slack.spack.io](https://slack.spack.io).
* **Mailing list**: [groups.google.com/d/forum/spack](https://groups.google.com/d/forum/spack)
* **Twitter**: [@spackpm](https://twitter.com/spackpm). Be sure to
`@mention` us!
@@ -73,7 +75,7 @@ When you send your request, make ``develop`` the destination branch on the
Your PR must pass Spack's unit tests and documentation tests, and must be
[PEP 8](https://www.python.org/dev/peps/pep-0008/) compliant. We enforce
these guidelines with our CI process. To run these tests locally, and for
these guidelines with our CI process. To run these tests locally, and for
helpful tips on git, see our
[Contribution Guide](https://spack.readthedocs.io/en/latest/contribution_guide.html).

24
SECURITY.md Normal file
View File

@@ -0,0 +1,24 @@
# 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.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.

View File

@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# sbang project developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

View File

@@ -11,7 +11,8 @@
# See https://stackoverflow.com/a/47886254
""":"
# prefer SPACK_PYTHON environment variable, python3, python, then python2
for cmd in "${SPACK_PYTHON:-}" python3 python python2; do
SPACK_PREFERRED_PYTHONS="python3 python python2 /usr/libexec/platform-python"
for cmd in "${SPACK_PYTHON:-}" ${SPACK_PREFERRED_PYTHONS}; do
if command -v > /dev/null "$cmd"; then
export SPACK_PYTHON="$(command -v "$cmd")"
exec "${SPACK_PYTHON}" "$0" "$@"
@@ -27,12 +28,18 @@ exit 1
from __future__ import print_function
import os
import os.path
import sys
if sys.version_info[:2] < (2, 6):
min_python3 = (3, 5)
if sys.version_info[:2] < (2, 6) or (
sys.version_info[:2] >= (3, 0) and sys.version_info[:2] < min_python3
):
v_info = sys.version_info[:3]
sys.exit("Spack requires Python 2.6 or higher."
"This is Python %d.%d.%d." % v_info)
msg = "Spack requires Python 2.6, 2.7 or %d.%d or higher " % min_python3
msg += "You are running spack with Python %d.%d.%d." % v_info
sys.exit(msg)
# Find spack's location and its prefix.
spack_file = os.path.realpath(os.path.expanduser(__file__))
@@ -46,9 +53,9 @@ sys.path.insert(0, spack_lib_path)
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'))
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, os.path.join(spack_external_libs, "py26"))
sys.path.insert(0, spack_external_libs)
@@ -58,11 +65,33 @@ sys.path.insert(0, spack_external_libs)
# Briefly: ruamel.yaml produces a .pth file when installed with pip that
# makes the site installed package the preferred one, even though sys.path
# is modified to point to another version of ruamel.yaml.
if 'ruamel.yaml' in sys.modules:
del sys.modules['ruamel.yaml']
if "ruamel.yaml" in sys.modules:
del sys.modules["ruamel.yaml"]
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)
if 'ruamel' in sys.modules:
del sys.modules['ruamel']
import spack.main # noqa

View File

@@ -0,0 +1,32 @@
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'
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/alalazo/spack-bootstrap-mirrors
releases: https://github.com/alalazo/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: true
spack-install: true

View File

@@ -33,13 +33,6 @@ config:
template_dirs:
- $spack/share/spack/templates
# Locations where different types of modules should be installed.
module_roots:
tcl: $spack/share/spack/modules
lmod: $spack/share/spack/lmod
# Temporary locations Spack can try to use for builds.
#
# Recommended options are given below.
@@ -49,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
@@ -67,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`.
@@ -82,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
@@ -141,12 +134,18 @@ 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 when running `make` in parallel,
# always limited by the number of cores available. For instance:
# - If set to 16 on a 4 cores machine `spack install` will run `make -j4`
# - If set to 16 on a 18 cores machine `spack install` will run `make -j16`
# If not set, Spack will use all available cores up to 16.
# 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.
# Note that the maximum number of jobs is limited by the number of cores
# available, taking thread affinity into account when supported. For instance:
# - With `build_jobs: 16` and 4 cores available `spack install` will run `make -j4`
# - With `build_jobs: 16` and 32 cores available `spack install` will run `make -j16`
# - With `build_jobs: 2` and 4 cores available `spack install -j6` will run `make -j6`
# build_jobs: 16
@@ -161,11 +160,10 @@ config:
# sufficiently for many specs.
#
# 'clingo': Uses a logic solver under the hood to solve DAGs with full
# backtracking and optimization for user preferences.
# backtracking and optimization for user preferences. Spack will
# try to bootstrap the logic solver, if not already available.
#
# 'clingo' currently requires the clingo ASP solver to be installed and
# built with python bindings. 'original' is built in.
concretizer: original
concretizer: clingo
# How long to wait to lock the Spack installation database. This lock is used
@@ -192,3 +190,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

@@ -0,0 +1,21 @@
# -------------------------------------------------------------------------
# This is the default configuration for Spack's module file generation.
#
# 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 the following files.
#
# Per-spack-instance settings (overrides defaults):
# $SPACK_ROOT/etc/spack/modules.yaml
#
# Per-user settings (overrides default and site settings):
# ~/.spack/modules.yaml
# -------------------------------------------------------------------------
modules:
prefix_inspections:
lib:
- LD_LIBRARY_PATH
lib64:
- LD_LIBRARY_PATH

View File

@@ -21,12 +21,10 @@ packages:
- gcc
- intel
providers:
elf:
- libelf
unwind:
- apple-libunwind
uuid:
- apple-libuuid
elf: [libelf]
fuse: [macfuse]
unwind: [apple-libunwind]
uuid: [apple-libuuid]
apple-libunwind:
buildable: false
externals:

View File

@@ -1,2 +1,2 @@
mirrors:
spack-public: https://spack-llnl-mirror.s3-us-west-2.amazonaws.com/
spack-public: https://mirror.spack.io

View File

@@ -14,8 +14,7 @@
# ~/.spack/modules.yaml
# -------------------------------------------------------------------------
modules:
enable:
- tcl
# Paths to check when creating modules for all module sets
prefix_inspections:
bin:
- PATH
@@ -34,6 +33,20 @@ modules:
'':
- CMAKE_PREFIX_PATH
lmod:
hierarchy:
- mpi
# 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
# What type of modules to use
enable:
- tcl
# Default configurations if lmod is enabled
lmod:
hierarchy:
- mpi

View File

@@ -17,39 +17,45 @@ packages:
all:
compiler: [gcc, intel, pgi, clang, xl, nag, fj, aocc]
providers:
D: [ldc]
awk: [gawk]
blas: [openblas, amdblis]
D: [ldc]
daal: [intel-daal]
elf: [elfutils]
fftw-api: [fftw, amdfftw]
flame: [libflame, amdlibflame]
fuse: [libfuse]
gl: [mesa+opengl, mesa18, opengl]
glx: [mesa+glx, mesa18+glx, opengl]
glu: [mesa-glu, openglu]
glx: [mesa+glx, mesa18+glx, opengl]
golang: [gcc]
iconv: [libiconv]
ipp: [intel-ipp]
java: [openjdk, jdk, ibm-java]
jpeg: [libjpeg-turbo, libjpeg]
lapack: [openblas, amdlibflame]
lua-lang: [lua, lua-luajit]
mariadb-client: [mariadb-c-client, mariadb]
mkl: [intel-mkl]
mpe: [mpe2]
mpi: [openmpi, mpich]
mysql-client: [mysql, mariadb-c-client]
opencl: [pocl]
onedal: [intel-oneapi-dal]
osmesa: [mesa+osmesa, mesa18+osmesa]
pbs: [openpbs, torque]
pil: [py-pillow]
pkgconfig: [pkgconf, pkg-config]
rpc: [libtirpc]
scalapack: [netlib-scalapack, amdscalapack]
sycl: [hipsycl]
szip: [libszip, libaec]
szip: [libaec, libszip]
tbb: [intel-tbb]
unwind: [libunwind]
yacc: [bison, byacc]
flame: [libflame, amdlibflame]
uuid: [util-linux-uuid, libuuid]
xxd: [xxd-standalone, vim]
yacc: [bison, byacc]
ziglang: [zig]
permissions:
read: world
write: user

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

162
lib/spack/docs/analyze.rst Normal file
View File

@@ -0,0 +1,162 @@
.. 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)
.. _analyze:
=======
Analyze
=======
The analyze command is a front-end to various tools that let us analyze
package installations. Each analyzer is a module for a different kind
of analysis that can be done on a package installation, including (but not
limited to) binary, log, or text analysis. Thus, the analyze command group
allows you to take an existing package install, choose an analyzer,
and extract some output for the package using it.
-----------------
Analyzer Metadata
-----------------
For all analyzers, we write to an ``analyzers`` folder in ``~/.spack``, or the
value that you specify in your spack config at ``config:analyzers_dir``.
For example, here we see the results of running an analysis on zlib:
.. code-block:: console
$ tree ~/.spack/analyzers/
└── linux-ubuntu20.04-skylake
└── gcc-9.3.0
└── zlib-1.2.11-sl7m27mzkbejtkrajigj3a3m37ygv4u2
├── environment_variables
│   └── spack-analyzer-environment-variables.json
├── install_files
│   └── spack-analyzer-install-files.json
└── libabigail
└── spack-analyzer-libabigail-libz.so.1.2.11.xml
This means that you can always find analyzer output in this folder, and it
is organized with the same logic as the package install it was run for.
If you want to customize this top level folder, simply provide the ``--path``
argument to ``spack analyze run``. The nested organization will be maintained
within your custom root.
-----------------
Listing Analyzers
-----------------
If you aren't familiar with Spack's analyzers, you can quickly list those that
are available:
.. code-block:: console
$ spack analyze list-analyzers
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
In the above, the first three are fairly simple - parsing metadata files from
a package install directory to save
-------------------
Analyzing a Package
-------------------
The analyze command, akin to install, will accept a package spec to perform
an analysis for. The package must be installed. Let's walk through an example
with zlib. We first ask to analyze it. However, since we have more than one
install, we are asked to disambiguate:
.. code-block:: console
$ spack analyze run zlib
==> Error: zlib matches multiple packages.
Matching packages:
fz2bs56 zlib@1.2.11%gcc@7.5.0 arch=linux-ubuntu18.04-skylake
sl7m27m zlib@1.2.11%gcc@9.3.0 arch=linux-ubuntu20.04-skylake
Use a more specific spec.
We can then specify the spec version that we want to analyze:
.. code-block:: console
$ spack analyze run zlib/fz2bs56
If you don't provide any specific analyzer names, by default all analyzers
(shown in the ``list-analyzers`` subcommand list) will be run. If an analyzer does not
have any result, it will be skipped. For example, here is a result running for
zlib:
.. code-block:: console
$ ls ~/.spack/analyzers/linux-ubuntu20.04-skylake/gcc-9.3.0/zlib-1.2.11-sl7m27mzkbejtkrajigj3a3m37ygv4u2/
spack-analyzer-environment-variables.json
spack-analyzer-install-files.json
spack-analyzer-libabigail-libz.so.1.2.11.xml
If you want to run a specific analyzer, ask for it with `--analyzer`. Here we run
spack analyze on libabigail (already installed) _using_ libabigail1
.. code-block:: console
$ spack analyze run --analyzer abigail libabigail
.. _analyze_monitoring:
----------------------
Monitoring An Analysis
----------------------
For any kind of analysis, you can
use a `spack monitor <https://github.com/spack/spack-monitor>`_ "Spackmon"
as a server to upload the same run metadata to. You can
follow the instructions in the `spack monitor documentation <https://spack-monitor.readthedocs.org>`_
to first create a server along with a username and token for yourself.
You can then use this guide to interact with the server.
You should first export our spack monitor token and username to the environment:
.. code-block:: console
$ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
$ export SPACKMON_USER=spacky
By default, the host for your server is expected to be at ``http://127.0.0.1``
with a prefix of ``ms1``, and if this is the case, you can simply add the
``--monitor`` flag to the install command:
.. code-block:: console
$ spack analyze run --monitor wget
If you need to customize the host or the prefix, you can do that as well:
.. code-block:: console
$ spack analyze run --monitor --monitor-prefix monitor --monitor-host https://monitor-service.io wget
If your server doesn't have authentication, you can skip it:
.. code-block:: console
$ spack analyze run --monitor --monitor-disable-auth wget
Regardless of your choice, when you run analyze on an installed package (whether
it was installed with ``--monitor`` or not, you'll see the results generating as they did
before, and a message that the monitor server was pinged:
.. code-block:: console
$ spack analyze --monitor wget
...
==> Sending result for wget bin/wget to monitor.

View File

@@ -27,11 +27,17 @@ It is recommended that the following be put in your ``.bashrc`` file:
If you do not see colorized output when using ``less -R`` it is because color
is being disabled in the piped output. In this case, tell spack to force
colorized output.
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 find | less -R
--------------------------
Listing available packages
@@ -182,6 +188,34 @@ 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 is experimental, and it will
likely be replaced with a different option and configuration settings
in the next Spack release.
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.
.. _cmd-spack-uninstall:
^^^^^^^^^^^^^^^^^^^
@@ -689,6 +723,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
------------------------
@@ -732,8 +896,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
@@ -774,6 +939,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.
@@ -963,7 +1144,7 @@ Variants are named options associated with a particular package. They are
optional, as each package must provide default values for each variant it
makes available. Variants can be specified using
a flexible parameter syntax ``name=<value>``. For example,
``spack install libelf debug=True`` will install libelf built with debug
``spack install mercury debug=True`` will install mercury built with debug
flags. The names of particular variants available for a package depend on
what was provided by the package author. ``spack info <package>`` will
provide information on what build variants are available.
@@ -971,11 +1152,11 @@ provide information on what build variants are available.
For compatibility with earlier versions, variants which happen to be
boolean in nature can be specified by a syntax that represents turning
options on and off. For example, in the previous spec we could have
supplied ``libelf +debug`` with the same effect of enabling the debug
supplied ``mercury +debug`` with the same effect of enabling the debug
compile time option for the libelf package.
Depending on the package a variant may have any default value. For
``libelf`` here, ``debug`` is ``False`` by default, and we turned it on
``mercury`` here, ``debug`` is ``False`` by default, and we turned it on
with ``debug=True`` or ``+debug``. If a variant is ``True`` by default
you can turn it off by either adding ``-name`` or ``~name`` to the spec.
@@ -1513,6 +1694,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
@@ -1724,6 +1906,39 @@ This issue typically manifests with the error below:
A nicer error message is TBD in future versions of Spack.
---------------
Troubleshooting
---------------
The ``spack audit`` command:
.. command-output:: spack audit -h
can be used to detect a number of configuration issues. This command detects
configuration settings which might not be strictly wrong but are not likely
to be useful outside of special cases.
It can also be used to detect dependency issues with packages - for example
cases where a package constrains a dependency with a variant that doesn't
exist (in this case Spack could report the problem ahead of time but
automatically performing the check would slow down most runs of Spack).
A detailed list of the checks currently implemented for each subcommand can be
printed with:
.. command-output:: spack -v audit list
Depending on the use case, users might run the appropriate subcommands to obtain
diagnostics. Issues, if found, are reported to stdout:
.. code-block:: console
% spack audit packages lammps
PKG-DIRECTIVES: 1 issue found
1. lammps: wrong variant in "conflicts" directive
the variant 'adios' does not exist
in /home/spack/spack/var/spack/repos/builtin/packages/lammps/package.py
------------
Getting Help

View File

@@ -31,9 +31,25 @@ Build caches are created via:
.. code-block:: console
$ spack buildcache create spec
$ spack buildcache create <spec>
If you wanted to create a build cache in a local directory, you would provide
the ``-d`` argument to target that directory, again also specifying the spec.
Here is an example creating a local directory, "spack-cache" and creating
build cache files for the "ninja" spec:
.. code-block:: console
$ mkdir -p ./spack-cache
$ spack buildcache create -d ./spack-cache ninja
==> Buildcache files will be output to file:///home/spackuser/spack/spack-cache/build_cache
gpgconf: socketdir is '/run/user/1000/gnupg'
gpg: using "E6DF6A8BD43208E4D6F392F23777740B7DBD643D" as default secret key for signing
Note that the targeted spec must already be installed. Once you have a build cache,
you can add it as a mirror, discussed next.
---------------------------------------
Finding or installing build cache files
---------------------------------------
@@ -43,19 +59,98 @@ with:
.. code-block:: console
$ spack mirror add <name> <url>
$ spack mirror add <name> <url>
Note that the url can be a web url _or_ a local filesystem location. In the previous
example, you might add the directory "spack-cache" and call it ``mymirror``:
Build caches are found via:
.. code-block:: console
$ spack buildcache list
$ spack mirror add mymirror ./spack-cache
Build caches are installed via:
You can see that the mirror is added with ``spack mirror list`` as follows:
.. code-block:: console
$ spack buildcache install
$ spack mirror list
mymirror file:///home/spackuser/spack/spack-cache
spack-public https://spack-llnl-mirror.s3-us-west-2.amazonaws.com/
At this point, you've create a buildcache, but spack hasn't indexed it, so if
you run ``spack buildcache list`` you won't see any results. You need to index
this new build cache as follows:
.. code-block:: console
$ spack buildcache update-index -d spack-cache/
Now you can use list:
.. code-block:: console
$ spack buildcache list
==> 1 cached build.
-- linux-ubuntu20.04-skylake / gcc@9.3.0 ------------------------
ninja@1.10.2
Great! So now let's say you have a different spack installation, or perhaps just
a different environment for the same one, and you want to install a package from
that build cache. Let's first uninstall the actual library "ninja" to see if we can
re-install it from the cache.
.. code-block:: console
$ spack uninstall ninja
And now reinstall from the buildcache
.. code-block:: console
$ spack buildcache install ninja
==> buildcache spec(s) matching ninja
==> Fetching file:///home/spackuser/spack/spack-cache/build_cache/linux-ubuntu20.04-skylake/gcc-9.3.0/ninja-1.10.2/linux-ubuntu20.04-skylake-gcc-9.3.0-ninja-1.10.2-i4e5luour7jxdpc3bkiykd4imke3mkym.spack
####################################################################################################################################### 100.0%
==> Installing buildcache for spec ninja@1.10.2%gcc@9.3.0 arch=linux-ubuntu20.04-skylake
gpgconf: socketdir is '/run/user/1000/gnupg'
gpg: Signature made Tue 23 Mar 2021 10:16:29 PM MDT
gpg: using RSA key E6DF6A8BD43208E4D6F392F23777740B7DBD643D
gpg: Good signature from "spackuser (GPG created for Spack) <spackuser@noreply.users.github.com>" [ultimate]
It worked! You've just completed a full example of creating a build cache with
a spec of interest, adding it as a mirror, updating it's index, listing the contents,
and finally, installing from it.
Note that the above command is intended to install a particular package to a
build cache you have created, and not to install a package from a build cache.
For the latter, once a mirror is added, by default when you do ``spack install`` the ``--use-cache``
flag is set, and you will install a package from a build cache if it is available.
If you want to always use the cache, you can do:
.. code-block:: console
$ spack install --cache-only <package>
For example, to combine all of the commands above to add the E4S build cache
and then install from it exclusively, you would do:
.. code-block:: console
$ spack mirror add E4S https://cache.e4s.io
$ spack buildcache keys --install --trust
$ spack install --cache-only <package>
We use ``--install`` and ``--trust`` to say that we are installing keys to our
keyring, and trusting all downloaded keys.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
List of popular build caches

View File

@@ -59,9 +59,11 @@ on these ideas for each distinct build system that Spack supports:
build_systems/bundlepackage
build_systems/cudapackage
build_systems/inteloneapipackage
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

@@ -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
""""""""""""""""
@@ -155,7 +230,7 @@ version, this can be done like so:
@property
def force_autoreconf(self):
return self.version == Version('1.2.3'):
return self.version == Version('1.2.3')
^^^^^^^^^^^^^^^^^^^^^^^
Finding configure flags
@@ -324,8 +399,29 @@ 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
Activation overrides
""""""""""""""""""""
Finally, the behavior of either ``with_or_without`` or

View File

@@ -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

View File

@@ -10,7 +10,7 @@ CudaPackage
-----------
Different from other packages, ``CudaPackage`` does not represent a build system.
Instead its goal is to simplify and unify usage of ``CUDA`` in other packages by providing a ` mixin-class <https://en.wikipedia.org/wiki/Mixin>`__.
Instead its goal is to simplify and unify usage of ``CUDA`` in other packages by providing a `mixin-class <https://en.wikipedia.org/wiki/Mixin>`_.
You can find source for the package at
`<https://github.com/spack/spack/blob/develop/lib/spack/spack/build_systems/cuda.py>`__.

View File

@@ -9,7 +9,7 @@
Custom Build Systems
--------------------
While the build systems listed above should meet your needs for the
While the built-in build systems should meet your needs for the
vast majority of packages, some packages provide custom build scripts.
This guide is intended for the following use cases:
@@ -31,7 +31,7 @@ installation. Both of these packages require custom build systems.
Base class
^^^^^^^^^^
If your package does not belong to any of the aforementioned build
If your package does not belong to any of the built-in build
systems that Spack already supports, you should inherit from the
``Package`` base class. ``Package`` is a simple base class with a
single phase: ``install``. If your package is simple, you may be able
@@ -168,7 +168,8 @@ if and only if this flag is set, we would use the following line:
Testing
^^^^^^^
Let's put everything together and add unit tests to our package.
Let's put everything together and add unit tests to be optionally run
during the installation of our package.
In the ``perl`` package, we can see:
.. code-block:: python
@@ -182,12 +183,6 @@ As you can guess, this runs ``make test`` *after* building the package,
if and only if testing is requested. Again, this is not specific to
custom build systems, it can be added to existing build systems as well.
Ideally, every package in Spack will have some sort of test to ensure
that it was built correctly. It is up to the package authors to make
sure this happens. If you are adding a package for some software and
the developers list commands to test the installation, please add these
tests to your ``package.py``.
.. warning::
The order of decorators matters. The following ordering:
@@ -207,3 +202,12 @@ tests to your ``package.py``.
the tests will always be run regardless of whether or not
``--test=root`` is requested. See https://github.com/spack/spack/issues/3833
for more information
Ideally, every package in Spack will have some sort of test to ensure
that it was built correctly. It is up to the package authors to make
sure this happens. If you are adding a package for some software and
the developers list commands to test the installation, please add these
tests to your ``package.py``.
For more information on other forms of package testing, refer to
:ref:`Checking an installation <checking_an_installation>`.

View File

@@ -0,0 +1,155 @@
.. 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)
.. _inteloneapipackage:
====================
IntelOneapiPackage
====================
.. contents::
oneAPI packages in Spack
========================
Spack can install and use the Intel oneAPI products. You may either
use spack to install the oneAPI tools or use the `Intel
installers`_. After installation, you may use the tools directly, or
use Spack to build packages with the tools.
The Spack Python class ``IntelOneapiPackage`` is a base class that is
used by ``IntelOneapiCompilers``, ``IntelOneapiMkl``,
``IntelOneapiTbb`` and other classes to implement the oneAPI
packages. See the :ref:`package-list` for the full list of available
oneAPI packages or use::
spack list -d oneAPI
For more information on a specific package, do::
spack info <package-name>
Intel no longer releases new versions of Parallel Studio, which can be
used in Spack via the :ref:`intelpackage`. All of its components can
now be found in oneAPI.
Examples
========
Building a Package With icx
---------------------------
In this example, we build patchelf with ``icc`` and ``icx``. The
compilers are installed with spack.
Install the oneAPI compilers::
spack install intel-oneapi-compilers
Add the compilers to your ``compilers.yaml`` so spack can use them::
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin/intel64
spack compiler add `spack location -i intel-oneapi-compilers`/compiler/latest/linux/bin
Verify that the compilers are available::
spack compiler list
The ``intel-oneapi-compilers`` package includes 2 families of
compilers:
* ``intel``: ``icc``, ``icpc``, ``ifort``. Intel's *classic*
compilers.
* ``oneapi``: ``icx``, ``icpx``, ``ifx``. Intel's new generation of
compilers based on LLVM.
To build the ``patchelf`` Spack package with ``icc``, do::
spack install patchelf%intel
To build with with ``icx``, do ::
spack install patchelf%oneapi
Using oneAPI MPI to Satisfy a Virtual Dependence
------------------------------------------------------
The ``hdf5`` package works with any compatible MPI implementation. To
build ``hdf5`` with Intel oneAPI MPI do::
spack install hdf5 +mpi ^intel-oneapi-mpi
Using an Externally Installed oneAPI
====================================
Spack can also use oneAPI tools that are manually installed with
`Intel Installers`_. The procedures for configuring Spack to use
external compilers and libraries are different.
Compilers
---------
To use the compilers, add some information about the installation to
``compilers.yaml``. For most users, it is sufficient to do::
spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin/intel64
spack compiler add /opt/intel/oneapi/compiler/latest/linux/bin
Adapt the paths above if you did not install the tools in the default
location. After adding the compilers, using them is the same
as if you had installed the ``intel-oneapi-compilers`` package.
Another option is to manually add the configuration to
``compilers.yaml`` as described in :ref:`Compiler configuration
<compiler-config>`.
Libraries
---------
If you want Spack to use MKL that you have installed without Spack in
the default location, then add the following to
``~/.spack/packages.yaml``, adjusting the version as appropriate::
intel-oneapi-mkl:
externals:
- spec: intel-oneapi-mkl@2021.1.1
prefix: /opt/intel/oneapi/
Using oneAPI Tools Installed by Spack
=====================================
Spack can be a convenient way to install and configure compilers and
libaries, even if you do not intend to build a Spack package. If you
want to build a Makefile project using Spack-installed oneAPI compilers,
then use spack to configure your environment::
spack load intel-oneapi-compilers
And then you can build with::
CXX=icpx make
You can also use Spack-installed libraries. For example::
spack load intel-oneapi-mkl
Will update your environment CPATH, LIBRARY_PATH, and other
environment variables for building an application with MKL.
More information
================
This section describes basic use of oneAPI, especially if it has
changed compared to Parallel Studio. See :ref:`intelpackage` for more
information on :ref:`intel-virtual-packages`,
:ref:`intel-unrelated-packages`,
:ref:`intel-integrating-external-libraries`, and
:ref:`using-mkl-tips`.
.. _`Intel installers`: https://software.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top.html

View File

@@ -137,6 +137,7 @@ If you need to save disk space or installation time, you could install the
``intel`` compilers-only subset (0.6 GB) and just the library packages you
need, for example ``intel-mpi`` (0.5 GB) and ``intel-mkl`` (2.5 GB).
.. _intel-unrelated-packages:
""""""""""""""""""""
Unrelated packages
@@ -358,6 +359,8 @@ affected by an advanced third method:
Next, visit section `Selecting Intel Compilers`_ to learn how to tell
Spack to use the newly configured compilers.
.. _intel-integrating-external-libraries:
""""""""""""""""""""""""""""""""""
Integrating external libraries
""""""""""""""""""""""""""""""""""
@@ -558,43 +561,29 @@ follow `the next section <intel-install-libs_>`_ instead.
modules: []
spec: intel@18.0.3
paths:
cc: stub
cxx: stub
f77: stub
fc: stub
cc: /usr/bin/true
cxx: /usr/bin/true
f77: /usr/bin/true
fc: /usr/bin/true
Replace ``18.0.3`` with the version that you determined in the preceding
step. The contents under ``paths:`` do not matter yet.
step. The exact contents under ``paths:`` do not matter yet, but the paths must exist.
You are right to ask: "Why on earth is that necessary?" [fn8]_.
The answer lies in Spack striving for strict compiler consistency.
Consider what happens without such a pre-declared compiler stub:
Say, you ask Spack to install a particular version
``intel-parallel-studio@edition.V``. Spack will apply an unrelated compiler
spec to concretize and install your request, resulting in
``intel-parallel-studio@edition.V %X``. That compiler ``%X`` is not going to
be the version that this new package itself provides. Rather, it would
typically be ``%gcc@...`` in a default Spack installation or possibly indeed
``%intel@...``, but at a version that precedes ``V``.
This temporary stub is required such that the ``intel-parallel-studio`` package
can be installed for the ``intel`` compiler (which the package itself is going
to provide after the installation) rather than an arbitrary system compiler.
The paths given in ``cc``, ``cxx``, ``f77``, ``fc`` must exist, but will
never be used to build anything during the installation of ``intel-parallel-studio``.
The problem comes to the fore as soon as you try to use any virtual ``mkl``
or ``mpi`` packages that you would expect to now be provided by
``intel-parallel-studio@edition.V``. Spack will indeed see those virtual
packages, but only as being tied to the compiler that the package
``intel-parallel-studio@edition.V`` was concretized with *at installation*.
If you were to install a client package with the new compilers now available
to you, you would naturally run ``spack install foo +mkl %intel@V``, yet
Spack will either complain about ``mkl%intel@V`` being missing (because it
only knows about ``mkl%X``) or it will go and attempt to install *another
instance* of ``intel-parallel-studio@edition.V %intel@V`` so as to match the
compiler spec ``%intel@V`` that you gave for your client package ``foo``.
This will be unexpected and will quickly get annoying because each
reinstallation takes up time and extra disk space.
The reason for this stub is that ``intel-parallel-studio`` also provides the
``mpi`` and ``mkl`` packages and when concretizing a spec, Spack ensures
strong consistency of the used compiler across all dependencies: [fn8]_.
Installing a package ``foo +mkl %intel`` will make Spack look for a package
``mkl %intel``, which can be provided by ``intel-parallel-studio+mkl %intel``,
but not by ``intel-parallel-studio+mkl %gcc``.
To escape this trap, put the compiler stub declaration shown here in place,
then use that pre-declared compiler spec to install the actual package, as
shown next. This approach works because during installation only the
package's own self-sufficient installer will be used, not any compiler.
Failure to do so may result in additional installations of ``mkl``, ``intel-mpi`` or
even ``intel-parallel-studio`` as dependencies for other packages.
.. _`verify-compiler-anticipated`:
@@ -645,11 +634,25 @@ follow `the next section <intel-install-libs_>`_ instead.
want to use the ``intel64`` variant. The ``icpc`` and ``ifort`` compilers
will be located in the same directory as ``icc``.
* Use the ``modules:`` and/or ``cflags:`` tokens to specify a suitable accompanying
* Make sure to specify ``modules: ['intel-parallel-studio-cluster2018.3-intel-18.0.3-HASH']``
(with ``HASH`` being the short hash as displayed when running
``spack find -l intel-parallel-studio@cluster.2018.3`` and the versions adapted accordingly)
to ensure that the correct and complete environment for the Intel compilers gets
loaded when running them. With modern versions of the Intel compiler you may otherwise see
issues about missing libraries. Please also note that module name must exactly match
the name as returned by ``module avail`` (and shown in the example above).
* Use the ``modules:`` and/or ``cflags:`` tokens to further specify a suitable accompanying
``gcc`` version to help pacify picky client packages that ask for C++
standards more recent than supported by your system-provided ``gcc`` and its
``libstdc++.so``.
* 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
the variant everytime ``intel-parallel-studio`` is being used as ``mkl``, ``fftw`` or ``mpi``
implementation to avoid pulling in a different variant.
* To set the Intel compilers for default use in Spack, instead of the usual ``%gcc``,
follow section `Selecting Intel compilers`_.
@@ -834,6 +837,7 @@ for example:
compiler: [ intel@18, intel@17, gcc@4.4.7, gcc@4.9.3, gcc@7.3.0, ]
.. _intel-virtual-packages:
""""""""""""""""""""""""""""""""""""""""""""""""
Selecting libraries to satisfy virtual packages
@@ -907,6 +911,7 @@ With the proper installation as detailed above, no special steps should be
required when a client package specifically (and thus deliberately) requests an
Intel package as dependency, this being one of the target use cases for Spack.
.. _using-mkl-tips:
"""""""""""""""""""""""""""""""""""""""""""""""
Tips for configuring client packages to use MKL

View File

@@ -147,8 +147,10 @@ and a ``filter_file`` method to help with this. For example:
def edit(self, spec, prefix):
makefile = FileFilter('Makefile')
makefile.filter('CC = gcc', 'CC = cc')
makefile.filter('CXX = g++', 'CC = c++')
makefile.filter(r'^\s*CC\s*=.*', 'CC = ' + spack_cc)
makefile.filter(r'^\s*CXX\s*=.*', 'CXX = ' + spack_cxx)
makefile.filter(r'^\s*F77\s*=.*', 'F77 = ' + spack_f77)
makefile.filter(r'^\s*FC\s*=.*', 'FC = ' + spack_fc)
`stream <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/stream/package.py>`_

View File

@@ -121,11 +121,15 @@ override the ``meson_args`` method like so:
.. code-block:: python
def meson_args(self):
return ['--default-library=both']
return ['--warnlevel=3']
This method can be used to pass flags as well as variables.
Note that the ``MesonPackage`` base class already defines variants for
``buildtype``, ``default_library`` and ``strip``, which are mapped to default
Meson arguments, meaning that you don't have to specify these.
^^^^^^^^^^^^^^^^^^^^^^
External documentation
^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -0,0 +1,350 @@
.. 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)
.. _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

@@ -336,7 +336,7 @@ This would be translated to:
.. code-block:: python
extends('python')
depends_on('python@3.5:3.999', type=('build', 'run'))
depends_on('python@3.5:3', type=('build', 'run'))
Many ``setup.py`` or ``setup.cfg`` files also contain information like::
@@ -568,7 +568,7 @@ check the ``METADATA`` file for lines like::
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``.
syntax is equivalent to ``1.11.0:1.11``.
""""""""""
setuptools
@@ -627,7 +627,8 @@ adds:
Testing
^^^^^^^
``PythonPackage`` provides a couple of options for testing packages.
``PythonPackage`` provides a couple of options for testing packages
both during and after the installation process.
""""""""""""
Import tests
@@ -696,16 +697,20 @@ libraries. Make sure not to add modules/packages containing the word
"test", as these likely won't end up in the installation directory,
or may require test dependencies like pytest to be installed.
These tests can be triggered by running ``spack install --test=root``
or by running ``spack test run`` after the installation has finished.
Import tests can be run during the installation using ``spack install
--test=root`` or at any time after the installation using
``spack test run``.
""""""""""
Unit tests
""""""""""
The package you want to install may come with additional unit tests.
You can add additional build-time or install-time tests by adding
additional testing functions. For example, ``py-numpy`` adds:
The package may have its own unit or regression tests. Spack can
run these tests during the installation by adding phase-appropriate
test methods.
For example, ``py-numpy`` adds the following as a check to run
after the ``install`` phase:
.. code-block:: python
@@ -716,7 +721,13 @@ additional testing functions. For example, ``py-numpy`` adds:
python('-c', 'import numpy; numpy.test("full", verbose=2)')
These tests can be triggered by running ``spack install --test=root``.
when testing is enabled during the installation (i.e., ``spack install
--test=root``).
.. note::
Additional information is available on :ref:`install phase tests
<install_phase-tests>`.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Setup file in a sub-directory

View File

@@ -79,12 +79,14 @@ Description
The first thing you'll need to add to your new package is a description.
The top of the homepage for ``caret`` lists the following description:
caret: Classification and Regression Training
Classification and Regression Training
Misc functions for training and plotting classification and regression models.
You can either use the short description (first line), long description
(second line), or both depending on what you feel is most appropriate.
The first line is a short description (title) and the second line is a long
description. In this case the description is only one line but often the
description is several lines. Spack makes use of both short and long
descriptions and convention is to use both when creating an R package.
^^^^^^^^
Homepage
@@ -124,6 +126,67 @@ If you only specify the URL for the latest release, your package will
no longer be able to fetch that version as soon as a new release comes
out. To get around this, add the archive directory as a ``list_url``.
^^^^^^^^^^^^^^^^^^^^^
Bioconductor packages
^^^^^^^^^^^^^^^^^^^^^
Bioconductor packages are set up in a similar way to CRAN packages, but there
are some very important distinctions. Bioconductor packages can be found at:
https://bioconductor.org/. Bioconductor packages are R packages and so follow
the same packaging scheme as CRAN packages. What is different is that
Bioconductor itself is versioned and released. This scheme, using the
Bioconductor package installer, allows further specification of the minimum
version of R as well as further restrictions on the dependencies between
packages than what is possible with the native R packaging system. Spack can
not replicate these extra features and thus Bioconductor packages in Spack need
to be managed as a group during updates in order to maintain package
consistency with Bioconductor itself.
Another key difference is that, while previous versions of packages are
available, they are not available from a site that can be programmatically set,
thus a ``list_url`` attribute can not be used. However, each package is also
available in a git repository, with branches corresponding to each Bioconductor
release. Thus, it is always possible to retrieve the version of any package
corresponding to a Bioconductor release simply by fetching the branch that
corresponds to the Bioconductor release of the package repository. For this
reason, spack Bioconductor R packages use the git repository, with the commit
of the respective branch used in the ``version()`` attribute of the package.
^^^^^^^^^^^^^^^^^^^^^^^^
cran and bioc attributes
^^^^^^^^^^^^^^^^^^^^^^^^
Much like the ``pypi`` attribute for python packages, due to the fact that R
packages are obtained from specific repositories, it is possible to set up shortcut
attributes that can be used to set ``homepage``, ``url``, ``list_url``, and
``git``. For example, the following ``cran`` attribute:
.. code-block:: python
cran = 'caret'
is equivalent to:
.. code-block:: python
homepage = 'https://cloud.r-project.org/package=caret'
url = 'https://cloud.r-project.org/src/contrib/caret_6.0-86.tar.gz'
list_url = 'https://cloud.r-project.org/src/contrib/Archive/caret'
Likewise, the following ``bioc`` attribute:
.. code-block:: python
bioc = 'BiocVersion'
is equivalent to:
.. code-block:: python
homepage = 'https://bioconductor.org/packages/BiocVersion/'
git = 'https://git.bioconductor.org/packages/BiocVersion'
^^^^^^^^^^^^^^^^^^^^^^^^^
Build system dependencies
^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -156,7 +219,7 @@ R dependencies
R packages are often small and follow the classic Unix philosophy
of doing one thing well. They are modular and usually depend on
several other packages. You may find a single package with over a
hundred dependencies. Luckily, CRAN packages are well-documented
hundred dependencies. Luckily, R packages are well-documented
and list all of their dependencies in the following sections:
* Depends

View File

@@ -17,10 +17,10 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys
import os
import re
import subprocess
import sys
from glob import glob
from sphinx.ext.apidoc import main as sphinx_apidoc
@@ -82,6 +82,8 @@
# Disable duplicate cross-reference warnings.
#
from sphinx.domains.python import PythonDomain
class PatchedPythonDomain(PythonDomain):
def resolve_xref(self, env, fromdocname, builder, typ, target, node, contnode):
if 'refspecific' in node:
@@ -95,15 +97,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 = [
@@ -136,6 +142,7 @@ def setup(sphinx):
#
# The short X.Y version.
import spack
version = '.'.join(str(s) for s in spack.spack_version_info[:2])
# The full version, including alpha/beta/rc tags.
release = spack.spack_version
@@ -161,6 +168,19 @@ 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'),
]
# The reST default role (used for this markup: `text`) to use for all documents.
#default_role = None
@@ -179,7 +199,8 @@ def setup(sphinx):
# We use our own extension of the default style with a few modifications
from pygments.style import Style
from pygments.styles.default import DefaultStyle
from pygments.token import Generic, Comment, Text
from pygments.token import Comment, Generic, Text
class SpackStyle(DefaultStyle):
styles = DefaultStyle.styles.copy()
@@ -188,6 +209,7 @@ class SpackStyle(DefaultStyle):
styles[Generic.Prompt] = "bold #346ec9"
import pkg_resources
dist = pkg_resources.Distribution(__file__)
sys.path.append('.') # make 'conf' module findable
ep = pkg_resources.EntryPoint.parse('spack = conf:SpackStyle', dist=dist)
@@ -353,3 +375,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

@@ -202,21 +202,23 @@ of builds.
Unless overridden in a package or on the command line, Spack builds all
packages in parallel. The default parallelism is equal to the number of
cores on your machine, up to 16. Parallelism cannot exceed the number of
cores available on the host. For a build system that uses Makefiles, this
means running:
cores available to the process, up to 16 (the default of ``build_jobs``).
For a build system that uses Makefiles, this ``spack install`` runs:
- ``make -j<build_jobs>``, when ``build_jobs`` is less than the number of
cores on the machine
cores available
- ``make -j<ncores>``, when ``build_jobs`` is greater or equal to the
number of cores on the machine
number of cores available
If you work on a shared login node or have a strict ulimit, it may be
necessary to set the default to a lower value. By setting ``build_jobs``
to 4, for example, commands like ``spack install`` will run ``make -j4``
instead of hogging every core.
instead of hogging every core. To build all software in serial,
set ``build_jobs`` to 1.
To build all software in serial, set ``build_jobs`` to 1.
Note that specifying the number of jobs on the command line always takes
priority, so that ``spack install -j<n>`` always runs `make -j<n>`, even
when that exceeds the number of cores available.
--------------------
``ccache``
@@ -257,3 +259,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

@@ -78,6 +78,13 @@ are six configuration scopes. From lowest to highest:
If multiple scopes are listed on the command line, they are ordered
from lowest to highest precedence.
#. **environment**: When using Spack :ref:`environments`, Spack reads
additional configuration from the environment file. See
:ref:`environment-configuration` for further details on these
scopes. Environment scopes can be referenced from the command line
as ``env:name`` (to reference environment ``foo``, use
``env:foo``).
#. **command line**: Build settings specified on the command line take
precedence over all other scopes.
@@ -192,10 +199,11 @@ with MPICH. You can create different configuration scopes for use with
Platform-specific Scopes
------------------------
For each scope above, there can also be platform-specific settings.
For example, on most platforms, GCC is the preferred compiler.
However, on macOS (darwin), Clang often works for more packages,
and is set as the default compiler. This configuration is set in
For each scope above (excluding environment scopes), there can also be
platform-specific settings. For example, on most platforms, GCC is
the preferred compiler. However, on macOS (darwin), Clang often works
for more packages, and is set as the default compiler. This
configuration is set in
``$(prefix)/etc/spack/defaults/darwin/packages.yaml``. It will take
precedence over settings in the ``defaults`` scope, but can still be
overridden by settings in ``system``, ``system/darwin``, ``site``,
@@ -394,12 +402,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:
@@ -554,3 +565,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

@@ -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.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -227,7 +227,7 @@ following ``spack.yaml``:
container:
images:
os: centos/7
os: centos:7
spack: 0.15.4
uses ``spack/centos7:0.15.4`` and ``centos:7`` for the stages where the
@@ -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

@@ -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:

File diff suppressed because it is too large Load Diff

View File

@@ -248,9 +248,9 @@ Users can add abstract specs to an Environment using the ``spack add``
command. The most important component of an Environment is a list of
abstract specs.
Adding a spec adds to the manifest (the ``spack.yaml`` file) and to
the roots of the Environment, but does not affect the concrete specs
in the lockfile, nor does it install the spec.
Adding a spec adds to the manifest (the ``spack.yaml`` file), which is
used to define the roots of the Environment, but does not affect the
concrete specs in the lockfile, nor does it install the spec.
The ``spack add`` command is environment aware. It adds to the
currently active environment. All environment aware commands can also
@@ -356,6 +356,18 @@ command also stores a Spack repo containing the ``package.py`` file
used at install time for each package in the ``repos/`` directory in
the Environment.
The ``--no-add`` option can be used in a concrete environment to tell
spack to install specs already present in the environment but not to
add any new root specs to the environment. For root specs provided
to ``spack install`` on the command line, ``--no-add`` is the default,
while for dependency specs on the other hand, it is optional. In other
words, if there is an unambiguous match in the active concrete environment
for a root spec provided to ``spack install`` on the command line, spack
does not require you to specify the ``--no-add`` option to prevent the spec
from being added again. At the same time, a spec that already exists in the
environment, but only as a dependency, will be added to the environment as a
root spec without the ``--no-add`` option.
^^^^^^^
Loading
^^^^^^^
@@ -399,6 +411,12 @@ There are two ways to include configuration information in a Spack Environment:
#. Included in the ``spack.yaml`` file from another file.
Many Spack commands also affect configuration information in files
automatically. Those commands take a ``--scope`` argument, and the
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
"""""""""""""""""""""
@@ -705,6 +723,8 @@ 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.
.. _configuring_environment_views:
"""""""""""""""""""""""""""""
Configuring environment views
"""""""""""""""""""""""""""""
@@ -712,13 +732,17 @@ Configuring environment views
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
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.
All the dependencies of each root spec in the environment will be linked
in the view due to the command ``link: all`` and the files in the view will
be symlinks to the spack install directories.
.. code-block:: yaml
@@ -731,11 +755,16 @@ 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
``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``
defaults to ``all`` but can also be ``roots`` when only the root specs
in the environment are desired in the view. The ``link_type`` defaults
to ``symlink`` but can also take the value of ``hardlink`` or ``copy``.
Any number of views may be defined under the ``view`` heading in a
Spack Environment.

View File

@@ -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``, ``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``.
@@ -70,7 +65,13 @@ Sourcing these files will put the ``spack`` command in your ``PATH``, set
up your ``MODULEPATH`` to use Spack's packages, and add other useful
shell integration for :ref:`certain commands <packaging-shell-support>`,
:ref:`environments <environments>`, and :ref:`modules <modules>`. For
``bash``, it also sets up tab completion.
``bash`` and ``zsh``, it also sets up tab completion.
In order to know which directory to add to your ``MODULEPATH``, these scripts
query the ``spack`` command. On shared filesystems, this can be a bit slow,
especially if you log in frequently. If you don't use modules, or want to set
``MODULEPATH`` manually instead, you can set the ``SPACK_SKIP_MODULES``
environment variable to skip this step and speed up sourcing the file.
If you do not want to use Spack's shell support, you can always just run
the ``spack`` command directly from ``spack/bin/spack``.
@@ -83,6 +84,140 @@ 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
==> "github-actions" 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 UNTRUSTED
Type: buildcache
Info:
url: https://mirror.spack.io/bootstrap/github-actions/v0.1
homepage: https://github.com/alalazo/spack-bootstrap-mirrors
releases: https://github.com/alalazo/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
@@ -314,6 +449,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
^^^^^^^^^^^^^^^^^^^^^^^
@@ -468,8 +631,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``:
@@ -490,7 +654,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
@@ -724,7 +889,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:
^^^
@@ -1072,6 +1237,33 @@ Secret keys may also be later exported using the
<https://www.digitalocean.com/community/tutorials/how-to-setup-additional-entropy-for-cloud-servers-using-haveged>`_
provides a good overview of sources of randomness.
Here is an example of creating a key. Note that we provide a name for the key first
(which we can use to reference the key later) and an email address:
.. code-block:: console
$ spack gpg create dinosaur dinosaur@thedinosaurthings.com
If you want to export the key as you create it:
.. code-block:: console
$ spack gpg create --export key.pub dinosaur dinosaur@thedinosaurthings.com
Or the private key:
.. code-block:: console
$ spack gpg create --export-secret key.priv dinosaur dinosaur@thedinosaurthings.com
You can include both ``--export`` and ``--export-secret``, each with
an output file of choice, to export both.
^^^^^^^^^^^^
Listing keys
^^^^^^^^^^^^
@@ -1080,7 +1272,22 @@ In order to list the keys available in the keyring, the
``spack gpg list`` command will list trusted keys with the ``--trusted`` flag
and keys available for signing using ``--signing``. If you would like to
remove keys from your keyring, ``spack gpg untrust <keyid>``. Key IDs can be
email addresses, names, or (best) fingerprints.
email addresses, names, or (best) fingerprints. Here is an example of listing
the key that we just created:
.. code-block:: console
gpgconf: socketdir is '/run/user/1000/gnupg'
/home/spackuser/spack/opt/spack/gpg/pubring.kbx
----------------------------------------------------------
pub rsa4096 2021-03-25 [SC]
60D2685DAB647AD4DB54125961E09BB6F2A0ADCB
uid [ultimate] dinosaur (GPG created for Spack) <dinosaur@thedinosaurthings.com>
Note that the name "dinosaur" can be seen under the uid, which is the unique
id. We might need this reference if we want to export or otherwise reference the key.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Signing and Verifying Packages
@@ -1095,6 +1302,38 @@ may also be used to create a signed file which contains the contents, but it
is not recommended. Signed packages may be verified by using
``spack gpg verify <file>``.
^^^^^^^^^^^^^^
Exporting Keys
^^^^^^^^^^^^^^
You likely might want to export a public key, and that looks like this. Let's
use the previous example and ask spack to export the key with uid "dinosaur."
We will provide an output location (typically a `*.pub` file) and the name of
the key.
.. code-block:: console
$ spack gpg export dinosaur.pub dinosaur
You can then look at the created file, `dinosaur.pub`, to see the exported key.
If you want to include the private key, then just add `--secret`:
.. code-block:: console
$ spack gpg export --secret dinosaur.priv dinosaur
This will write the private key to the file `dinosaur.priv`.
.. warning::
You should be very careful about exporting private keys. You likely would
only want to do this in the context of moving your spack installation to
a different server, and wanting to preserve keys for a buildcache. If you
are unsure about exporting, you can ask your local system administrator
or for help on an issue or the Spack slack.
.. _cray-support:
-------------

View File

@@ -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
@@ -56,7 +56,6 @@ or refer to the full manual below.
basic_usage
workflows
Tutorial: Spack 101 <https://spack-tutorial.readthedocs.io>
known_issues
.. toctree::
:maxdepth: 2
@@ -67,6 +66,7 @@ or refer to the full manual below.
build_settings
environments
containers
monitoring
mirrors
module_file_support
repositories
@@ -77,6 +77,12 @@ or refer to the full manual below.
extensions
pipelines
.. toctree::
:maxdepth: 2
:caption: Research
analyze
.. toctree::
:maxdepth: 2
:caption: Contributing

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

@@ -159,6 +159,27 @@ can supply a file with specs in it, one per line:
This is useful if there is a specific suite of software managed by
your site.
^^^^^^^^^^^^^^^^^^
Mirror environment
^^^^^^^^^^^^^^^^^^
To create a mirror of all packages required by a concerte environment, activate the environment and call ``spack mirror create -a``.
This is especially useful to create a mirror of an environment concretized on another machine.
.. code-block:: console
[remote] $ spack env create myenv
[remote] $ spack env activate myenv
[remote] $ spack add ...
[remote] $ spack concretize
$ sftp remote:/spack/var/environment/myenv/spack.lock
$ spack env create myenv spack.lock
$ spack env activate myenv
$ spack mirror create -a
.. _cmd-spack-mirror-add:
--------------------

View File

@@ -71,9 +71,24 @@ Module file customization
-------------------------
Module files are generated by post-install hooks after the successful
installation of a package. The table below summarizes the essential
information associated with the different file formats
that can be generated by Spack:
installation of a package.
.. note::
Spack only generates modulefiles when a package is installed. If
you attempt to install a package and it is already installed, Spack
will not regenerate modulefiles for the package. This may to
inconsistent modulefiles if the Spack module configuration has
changed since the package was installed, either by editing a file
or changing scopes or environments.
Later in this section there is a subsection on :ref:`regenerating
modules <cmd-spack-module-refresh>` that will allow you to bring
your modules to a consistent state.
The table below summarizes the essential information associated with
the different file formats that can be generated by Spack:
+-----------------------------+--------------------+-------------------------------+----------------------------------------------+----------------------+
| | **Hook name** | **Default root directory** | **Default template file** | **Compatible tools** |
@@ -130,9 +145,8 @@ list of environment modifications.
to the corresponding environment variables:
================== =================================
LIBRARY_PATH ``self.prefix/rlib/R/lib``
LD_LIBRARY_PATH ``self.prefix/rlib/R/lib``
CPATH ``self.prefix/rlib/R/include``
PKG_CONFIG_PATH ``self.prefix/rlib/pkgconfig``
================== =================================
with the following snippet:
@@ -164,6 +178,58 @@ the installation folder of each package for the presence of a set of subdirector
(``bin``, ``man``, ``share/man``, etc.). If any is found its full path is prepended
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.
"""""""""""""""""""""""""
Changing the modules root
"""""""""""""""""""""""""
As shown in the table above, the default module root for ``lmod`` is
``$spack/share/spack/lmod`` and the default root for ``tcl`` is
``$spack/share/spack/modules``. This can be overridden for any module
set by changing the ``roots`` key of the configuration.
.. code-block:: yaml
modules:
default:
roots:
tcl: /path/to/install/tcl/modules
my_custom_lmod_modules:
roots:
lmod: /path/to/install/custom/lmod/modules
...
This configuration will create two module sets. The default module set
will install its ``tcl`` modules to ``/path/to/install/tcl/modules``
(and still install its lmod modules, if any, to the default
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
file generators) for each module set.
""""""""""""""""""""
Activate other hooks
""""""""""""""""""""
@@ -179,13 +245,14 @@ to the generator being customized:
.. code-block:: yaml
modules:
enable:
- tcl
- lmod
tcl:
# contains environment modules specific customizations
lmod:
# contains lmod specific customizations
default:
enable:
- tcl
- lmod
tcl:
# contains environment modules specific customizations
lmod:
# contains lmod specific customizations
In general, the configuration options that you can use in ``modules.yaml`` will
either change the layout of the module files on the filesystem, or they will affect
@@ -394,16 +461,52 @@ 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:
"""""""""""""""""""""""""""""""""""
Customize environment modifications
"""""""""""""""""""""""""""""""""""
You can control which prefixes in a Spack package are added to environment
variables with the ``prefix_inspections`` section; this section maps relative
prefixes to the list of environment variables which should be updated with
those prefixes.
You can control which prefixes in a Spack package are added to
environment variables with the ``prefix_inspections`` section; this
section maps relative prefixes to the list of environment variables
which should be updated with those prefixes.
The ``prefix_inspections`` configuration is different from other
settings in that a ``prefix_inspections`` configuration at the
``modules`` level of the configuration file applies to all module
sets. This allows users to make general overrides to the default
inspections and customize them per-module-set.
.. code-block:: yaml
@@ -416,10 +519,66 @@ those prefixes.
'':
- CMAKE_PREFIX_PATH
In this case, for a Spack package ``foo`` installed to ``/spack/prefix/foo``,
the generated module file for ``foo`` would update ``PATH`` to contain
Prefix inspections are only applied if the relative path inside the
installation prefix exists. In this case, for a Spack package ``foo``
installed to ``/spack/prefix/foo``, if ``foo`` installs executables to
``bin`` but no libraries in ``lib``, the generated module file for
``foo`` would update ``PATH`` to contain ``/spack/prefix/foo/bin`` and
``CMAKE_PREFIX_PATH`` to contain ``/spack/prefix/foo``, but would not
update ``LIBRARY_PATH``.
There is a special case for prefix inspections relative to environment
views. If all of the following conditions hold for a module set
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 :ref:`environment view is configured
<configuring_environment_views>` with a projection that ensures
every package is linked to a unique directory,
then the module set may be configured to create modules relative to
the environment view. This is specified by the ``use_view``
configuration option in the module set. If ``True``, the module set is
constructed relative to the default view of the
environment. Otherwise, the value must be the name of the environment
view relative to which to construct modules, or ``False-ish`` to
disable the feature explicitly (the default is ``False``).
If the ``use_view`` value is set in the config, then the prefix
inspections for the package are done relative to the package's path in
the view.
.. code-block:: yaml
spack:
modules:
view_relative_modules:
use_view: my_view
prefix_inspections:
bin:
- PATH
view:
my_view:
projections:
root: /path/to/my/view
all: '{name}-{hash}'
The ``spack`` key is relevant to :ref:`environment <environments>`
configuration, and the view key is discussed in detail in the section
on :ref:`Configuring environment views
<configuring_environment_views>`. With this configuration the
generated module for package ``foo`` would set ``PATH`` to include
``/path/to/my/view/foo-<hash>/bin`` instead of
``/spack/prefix/foo/bin``.
The ``use_view`` option is useful when deploying a large software
stack to users who are likely to inspect the modules to find full
paths to software, when it is desirable to present the users with a
simpler set of paths than those generated by the Spack install tree.
""""""""""""""""""""""""""""""""""""
Filter out environment modifications
""""""""""""""""""""""""""""""""""""

View File

@@ -0,0 +1,265 @@
.. 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)
.. _monitoring:
==========
Monitoring
==========
You can use a `spack monitor <https://github.com/spack/spack-monitor>`_ "Spackmon"
server to store a database of your packages, builds, and associated metadata
for provenance, research, or some other kind of development. You should
follow the instructions in the `spack monitor documentation <https://spack-monitor.readthedocs.org>`_
to first create a server along with a username and token for yourself.
You can then use this guide to interact with the server.
-------------------
Analysis Monitoring
-------------------
To read about how to monitor an analysis (meaning you want to send analysis results
to a server) see :ref:`analyze_monitoring`.
---------------------
Monitoring An Install
---------------------
Since an install is typically when you build packages, we logically want
to tell spack to monitor during this step. Let's start with an example
where we want to monitor the install of hdf5. Unless you have disabled authentication
for the server, we first want to export our spack monitor token and username to the environment:
.. code-block:: console
$ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
$ export SPACKMON_USER=spacky
By default, the host for your server is expected to be at ``http://127.0.0.1``
with a prefix of ``ms1``, and if this is the case, you can simply add the
``--monitor`` flag to the install command:
.. code-block:: console
$ spack install --monitor hdf5
If you need to customize the host or the prefix, you can do that as well:
.. code-block:: console
$ spack install --monitor --monitor-prefix monitor --monitor-host https://monitor-service.io hdf5
As a precaution, we cut out early in the spack client if you have not provided
authentication credentials. For example, if you run the command above without
exporting your username or token, you'll see:
.. code-block:: console
==> Error: You are required to export SPACKMON_TOKEN and SPACKMON_USER
This extra check is to ensure that we don't start any builds,
and then discover that you forgot to export your token. However, if
your monitoring server has authentication disabled, you can tell this to
the client to skip this step:
.. code-block:: console
$ spack install --monitor --monitor-disable-auth hdf5
If the service is not running, you'll cleanly exit early - the install will
not continue if you've asked it to monitor and there is no service.
For example, here is what you'll see if the monitoring service is not running:
.. code-block:: console
[Errno 111] Connection refused
If you want to continue builds (and stop monitoring) you can set the ``--monitor-keep-going``
flag.
.. code-block:: console
$ spack install --monitor --monitor-keep-going hdf5
This could mean that if a request fails, you only have partial or no data
added to your monitoring database. This setting will not be applied to the
first request to check if the server is running, but to subsequent requests.
If you don't have a monitor server running and you want to build, simply
don't provide the ``--monitor`` flag! Finally, if you want to provide one or
more tags to your build, you can do:
.. code-block:: console
# Add one tag, "pizza"
$ spack install --monitor --monitor-tags pizza hdf5
# Add two tags, "pizza" and "pasta"
$ spack install --monitor --monitor-tags pizza,pasta hdf5
----------------------------
Monitoring with Containerize
----------------------------
The same argument group is available to add to a containerize command.
^^^^^^
Docker
^^^^^^
To add monitoring to a Docker container recipe generation using the defaults,
and assuming a monitor server running on localhost, you would
start with a spack.yaml in your present working directory:
.. code-block:: yaml
spack:
specs:
- samtools
And then do:
.. code-block:: console
# preview first
spack containerize --monitor
# and then write to a Dockerfile
spack containerize --monitor > Dockerfile
The install command will be edited to include commands for enabling monitoring.
However, getting secrets into the container for your monitor server is something
that should be done carefully. Specifically you should:
- Never try to define secrets as ENV, ARG, or using ``--build-arg``
- Do not try to get the secret into the container via a "temporary" file that you remove (it in fact will still exist in a layer)
Instead, it's recommended to use buildkit `as explained here <https://pythonspeed.com/articles/docker-build-secrets/>`_.
You'll need to again export environment variables for your spack monitor server:
.. code-block:: console
$ export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
$ export SPACKMON_USER=spacky
And then use buildkit along with your build and identifying the name of the secret:
.. code-block:: console
$ DOCKER_BUILDKIT=1 docker build --secret id=st,env=SPACKMON_TOKEN --secret id=su,env=SPACKMON_USER -t spack/container .
The secrets are expected to come from your environment, and then will be temporarily mounted and available
at ``/run/secrets/<name>``. If you forget to supply them (and authentication is required) the build
will fail. If you need to build on your host (and interact with a spack monitor at localhost) you'll
need to tell Docker to use the host network:
.. code-block:: console
$ DOCKER_BUILDKIT=1 docker build --network="host" --secret id=st,env=SPACKMON_TOKEN --secret id=su,env=SPACKMON_USER -t spack/container .
^^^^^^^^^^^
Singularity
^^^^^^^^^^^
To add monitoring to a Singularity container build, the spack.yaml needs to
be modified slightly to specify wanting a different format:
.. code-block:: yaml
spack:
specs:
- samtools
container:
format: singularity
Again, generate the recipe:
.. code-block:: console
# preview first
$ spack containerize --monitor
# then write to a Singularity recipe
$ spack containerize --monitor > Singularity
Singularity doesn't have a direct way to define secrets at build time, so we have
to do a bit of a manual command to add a file, source secrets in it, and remove it.
Since Singularity doesn't have layers like Docker, deleting a file will truly
remove it from the container and history. So let's say we have this file,
``secrets.sh``:
.. code-block:: console
# secrets.sh
export SPACKMON_USER=spack
export SPACKMON_TOKEN=50445263afd8f67e59bd79bff597836ee6c05438
We would then generate the Singularity recipe, and add a files section,
a source of that file at the start of ``%post``, and **importantly**
a removal of the final at the end of that same section.
.. code-block::
Bootstrap: docker
From: spack/ubuntu-bionic:latest
Stage: build
%files
secrets.sh /opt/secrets.sh
%post
. /opt/secrets.sh
# spack install commands are here
...
# Don't forget to remove here!
rm /opt/secrets.sh
You can then build the container as your normally would.
.. code-block:: console
$ sudo singularity build container.sif Singularity
------------------
Monitoring Offline
------------------
In the case that you want to save monitor results to your filesystem
and then upload them later (perhaps you are in an environment where you don't
have credentials or it isn't safe to use them) you can use the ``--monitor-save-local``
flag.
.. code-block:: console
$ spack install --monitor --monitor-save-local hdf5
This will save results in a subfolder, "monitor" in your designated spack
reports folder, which defaults to ``$HOME/.spack/reports/monitor``. When
you are ready to upload them to a spack monitor server:
.. code-block:: console
$ spack monitor upload ~/.spack/reports/monitor
You can choose the root directory of results as shown above, or a specific
subdirectory. The command accepts other arguments to specify configuration
for the monitor.

File diff suppressed because it is too large Load Diff

View File

@@ -30,79 +30,168 @@ at least one `runner <https://docs.gitlab.com/runner/>`_. Then the basic steps
for setting up a build pipeline are as follows:
#. Create a repository on your gitlab instance
#. Add a ``spack.yaml`` at the root containing your pipeline environment (see
below for details)
#. Add a ``spack.yaml`` at the root containing your pipeline environment
#. Add a ``.gitlab-ci.yml`` at the root containing two jobs (one to generate
the pipeline dynamically, and one to run the generated jobs), similar to
this one:
.. code-block:: yaml
stages: [generate, build]
generate-pipeline:
stage: generate
tags:
- <custom-tag>
script:
- spack env activate --without-view .
- spack ci generate
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
build-jobs:
stage: build
trigger:
include:
- artifact: "jobs_scratch_dir/pipeline.yml"
job: generate-pipeline
strategy: depend
#. Add any secrets required by the CI process to environment variables using the
CI web ui
the pipeline dynamically, and one to run the generated jobs).
#. Push a commit containing the ``spack.yaml`` and ``.gitlab-ci.yml`` mentioned above
to the gitlab repository
The ``<custom-tag>``, above, is used to pick one of your configured runners to
run the pipeline generation phase (this is implemented in the ``spack ci generate``
command, which assumes the runner has an appropriate version of spack installed
and configured for use). Of course, there are many ways to customize the process.
You can configure CDash reporting on the progress of your builds, set up S3 buckets
to mirror binaries built by the pipeline, clone a custom spack repository/ref for
use by the pipeline, and more.
See the :ref:`functional_example` section for a minimal working example. See also
the :ref:`custom_Workflow` section for a link to an example of a custom workflow
based on spack pipelines.
While it is possible to set up pipelines on gitlab.com, the builds there are
limited to 60 minutes and generic hardware. It is also possible to
While it is possible to set up pipelines on gitlab.com, as illustrated above, the
builds there are limited to 60 minutes and generic hardware. It is also possible to
`hook up <https://about.gitlab.com/blog/2018/04/24/getting-started-gitlab-ci-gcp>`_
Gitlab to Google Kubernetes Engine (`GKE <https://cloud.google.com/kubernetes-engine/>`_)
or Amazon Elastic Kubernetes Service (`EKS <https://aws.amazon.com/eks>`_), though those
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``.
.. _functional_example:
------------------
Functional Example
------------------
The simplest fully functional standalone example of a working pipeline can be
examined live at this example `project <https://gitlab.com/scott.wittenburg/spack-pipeline-demo>`_
on gitlab.com.
Here's the ``.gitlab-ci.yml`` file from that example that builds and runs the
pipeline:
.. code-block:: yaml
stages: [generate, build]
variables:
SPACK_REPO: https://github.com/scottwittenburg/spack.git
SPACK_REF: pipelines-reproducible-builds
generate-pipeline:
stage: generate
tags:
- docker
image:
name: ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01
entrypoint: [""]
before_script:
- git clone ${SPACK_REPO}
- pushd spack && git checkout ${SPACK_REF} && popd
- . "./spack/share/spack/setup-env.sh"
script:
- spack env activate --without-view .
- spack -d ci generate
--artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
build-jobs:
stage: build
trigger:
include:
- artifact: "jobs_scratch_dir/pipeline.yml"
job: generate-pipeline
strategy: depend
The key thing to note above is that there are two jobs: The first job to run,
``generate-pipeline``, runs the ``spack ci generate`` command to generate a
dynamic child pipeline and write it to a yaml file, which is then picked up
by the second job, ``build-jobs``, and used to trigger the downstream pipeline.
And here's the spack environment built by the pipeline represented as a
``spack.yaml`` file:
.. code-block:: yaml
spack:
view: false
concretization: separately
definitions:
- pkgs:
- zlib
- bzip2
- arch:
- '%gcc@7.5.0 arch=linux-ubuntu18.04-x86_64'
specs:
- matrix:
- - $pkgs
- - $arch
mirrors: { "mirror": "s3://spack-public/mirror" }
gitlab-ci:
before_script:
- git clone ${SPACK_REPO}
- pushd spack && git checkout ${SPACK_CHECKOUT_VERSION} && popd
- . "./spack/share/spack/setup-env.sh"
script:
- pushd ${SPACK_CONCRETE_ENV_DIR} && spack env activate --without-view . && popd
- spack -d ci rebuild
mappings:
- match: ["os=ubuntu18.04"]
runner-attributes:
image:
name: ghcr.io/scottwittenburg/ecpe4s-ubuntu18.04-runner-x86_64:2020-09-01
entrypoint: [""]
tags:
- docker
enable-artifacts-buildcache: True
rebuild-index: False
The elements of this file important to spack ci pipelines are described in more
detail below, but there are a couple of things to note about the above working
example:
Normally ``enable-artifacts-buildcache`` is not recommended in production as it
results in large binary artifacts getting transferred back and forth between
gitlab and the runners. But in this example on gitlab.com where there is no
shared, persistent file system, and where no secrets are stored for giving
permission to write to an S3 bucket, ``enabled-buildcache-artifacts`` is the only
way to propagate binaries from jobs to their dependents.
Also, it is usually a good idea to let the pipeline generate a final "rebuild the
buildcache index" job, so that subsequent pipeline generation can quickly determine
which specs are up to date and which need to be rebuilt (it's a good idea for other
reasons as well, but those are out of scope for this discussion). In this case we
have disabled it (using ``rebuild-index: False``) because the index would only be
generated in the artifacts mirror anyway, and consequently would not be available
during subesequent pipeline runs.
.. note::
With the addition of reproducible builds (#22887) a previously working
pipeline will require some changes:
* In the build jobs (``runner-attributes``), the environment location changed.
This will typically show as a ``KeyError`` in the failing job. Be sure to
point to ``${SPACK_CONCRETE_ENV_DIR}``.
* When using ``include`` in your environment, be sure to make the included
files available in the build jobs. This means adding those files to the
artifact directory. Those files will also be missing in the reproducibility
artifact.
* Because the location of the environment changed, including files with
relative path may have to be adapted to work both in the project context
(generation job) and in the concrete env dir context (build job).
-----------------------------------
Spack commands supporting pipelines
-----------------------------------
Spack provides a command ``ci`` with two sub-commands: ``spack ci generate`` generates
a pipeline (a .gitlab-ci.yml file) from a spack environment, and ``spack ci rebuild``
checks a spec against a remote mirror and possibly rebuilds it from source and updates
the binary mirror with the latest built package. Both ``spack ci ...`` commands must
be run from within the same environment, as each one makes use of the environment for
different purposes. Additionally, some options to the commands (or conditions present
in the spack environment file) may require particular environment variables to be
set in order to function properly. Examples of these are typically secrets
needed for pipeline operation that should not be visible in a spack environment
file. These environment variables are described in more detail
:ref:`ci_environment_variables`.
Spack provides a ``ci`` command with a few sub-commands supporting spack
ci pipelines. These commands are covered in more detail in this section.
.. _cmd-spack-ci:
@@ -121,6 +210,17 @@ pipeline jobs.
Concretizes the specs in the active environment, stages them (as described in
:ref:`staging_algorithm`), and writes the resulting ``.gitlab-ci.yml`` to disk.
During concretization of the environment, ``spack ci generate`` also writes a
``spack.lock`` file which is then provided to generated child jobs and made
available in all generated job artifacts to aid in reproducing failed builds
in a local environment. This means there are two artifacts that need to be
exported in your pipeline generation job (defined in your ``.gitlab-ci.yml``).
The first is the output yaml file of ``spack ci generate``, and the other is
the directory containing the concrete environment files. In the
:ref:`functional_example` section, we only mentioned one path in the
``artifacts`` ``paths`` list because we used ``--artifacts-root`` as the
top level directory containing both the generated pipeline yaml and the
concrete environment.
Using ``--prune-dag`` or ``--no-prune-dag`` configures whether or not jobs are
generated for specs that are already up to date on the mirror. If enabling
@@ -128,6 +228,16 @@ DAG pruning using ``--prune-dag``, more information may be required in your
``spack.yaml`` file, see the :ref:`noop_jobs` section below regarding
``service-job-attributes``.
The optional ``--check-index-only`` argument can be used to speed up pipeline
generation by telling spack to consider only remote buildcache indices when
checking the remote mirror to determine if each spec in the DAG is up to date
or not. The default behavior is for spack to fetch the index and check it,
but if the spec is not found in the index, to also perform a direct check for
the spec on the mirror. If the remote buildcache index is out of date, which
can easily happen if it is not updated frequently, this behavior ensures that
spack has a way to know for certain about the status of any concrete spec on
the remote mirror, but can slow down pipeline generation significantly.
The ``--optimize`` argument is experimental and runs the generated pipeline
document through a series of optimization passes designed to reduce the size
of the generated file.
@@ -143,19 +253,64 @@ The optional ``--output-file`` argument should be an absolute path (including
file name) to the generated pipeline, and if not given, the default is
``./.gitlab-ci.yml``.
While optional, the ``--artifacts-root`` argument is used to determine where
the concretized environment directory should be located. This directory will
be created by ``spack ci generate`` and will contain the ``spack.yaml`` and
generated ``spack.lock`` which are then passed to all child jobs as an
artifact. This directory will also be the root directory for all artifacts
generated by jobs in the pipeline.
.. _cmd-spack-ci-rebuild:
^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^
``spack ci rebuild``
^^^^^^^^^^^^^^^^^^^^
^^^^^^^^^^^^^^^^^^^^^
This sub-command is responsible for ensuring a single spec from the release
environment is up to date on the remote mirror configured in the environment,
and as such, corresponds to a single job in the ``.gitlab-ci.yml`` file.
The purpose of the ``spack ci rebuild`` is straightforward: take its assigned
spec job, check whether the target mirror already has a binary for that spec,
and if not, build the spec from source and push the binary to the mirror. To
accomplish this in a reproducible way, the sub-command prepares a ``spack install``
command line to build a single spec in the DAG, saves that command in a
shell script, ``install.sh``, in the current working directory, and then runs
it to install the spec. The shell script is also exported as an artifact to
aid in reproducing the build outside of the CI environment.
Rather than taking command-line arguments, this sub-command expects information
to be communicated via environment variables, which will typically come via the
``.gitlab-ci.yml`` job as ``variables``.
If it was necessary to install the spec from source, ``spack ci rebuild`` will
also subsequently create a binary package for the spec and try to push it to the
mirror.
The ``spack ci rebuild`` sub-command mainly expects its "input" to come either
from environment variables or from the ``gitlab-ci`` section of the ``spack.yaml``
environment file. There are two main sources of the environment variables, some
are written into ``.gitlab-ci.yml`` by ``spack ci generate``, and some are
provided by the GitLab CI runtime.
.. _cmd-spack-ci-rebuild-index:
^^^^^^^^^^^^^^^^^^^^^^^^^^
``spack ci rebuild-index``
^^^^^^^^^^^^^^^^^^^^^^^^^^
This is a convenience command to rebuild the buildcache index associated with
the mirror in the active, gitlab-enabled environment (specifying the mirror
url or name is not required).
.. _cmd-spack-ci-reproduce-build:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
``spack ci reproduce-build``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Given the url to a gitlab pipeline rebuild job, downloads and unzips the
artifacts into a local directory (which can be specified with the optional
``--working-dir`` argument), then finds the target job in the generated
pipeline to extract details about how it was run. Assuming the job used a
docker image, the command prints a ``docker run`` command line and some basic
instructions on how to reproduce the build locally.
Note that jobs failing in the pipeline will print messages giving the
arguments you can pass to ``spack ci reproduce-build`` in order to reproduce
a particular build locally.
------------------------------------
A pipeline-enabled spack environment
@@ -240,6 +395,13 @@ takes a boolean and determines whether the pipeline uses artifacts to store and
pass along the buildcaches from one stage to the next (the default if you don't
provide this option is ``False``).
The optional ``broken-specs-url`` key tells Spack to check against a list of
specs that are known to be currently broken in ``develop``. If any such specs
are found, the ``spack ci generate`` command will fail with an error message
informing the user what broken specs were encountered. This allows the pipeline
to fail early and avoid wasting compute resources attempting to build packages
that will not succeed.
The optional ``cdash`` section provides information that will be used by the
``spack ci generate`` command (invoked by ``spack ci start``) for reporting
to CDash. All the jobs generated from this environment will belong to a
@@ -357,8 +519,9 @@ scheduled on that runner. This allows users to do any custom preparation or
cleanup tasks that fit their particular workflow, as well as completely
customize the rebuilding of a spec if they so choose. Spack will not generate
a ``before_script`` or ``after_script`` for jobs, but if you do not provide
a custom ``script``, spack will generate one for you that assumes your
``spack.yaml`` is at the root of the repository, activates that environment for
a custom ``script``, spack will generate one for you that assumes the concrete
environment directory is located within your ``--artifacts_root`` (or if not
provided, within your ``$CI_PROJECT_DIR``), activates that environment for
you, and invokes ``spack ci rebuild``.
.. _staging_algorithm:
@@ -483,14 +646,15 @@ Using a custom spack in your pipeline
If your runners will not have a version of spack ready to invoke, or if for some
other reason you want to use a custom version of spack to run your pipelines,
this section provides an example of how you could take advantage of
user-provided pipeline scripts to accomplish this fairly simply. First, you
could use the GitLab user interface to create CI environment variables
containing the url and branch or tag you want to use (calling them, for
example, ``SPACK_REPO`` and ``SPACK_REF``), then refer to those in a custom shell
script invoked both from your pipeline generation job, as well as in your rebuild
user-provided pipeline scripts to accomplish this fairly simply. First, consider
specifying the source and version of spack you want to use with variables, either
written directly into your ``.gitlab-ci.yml``, or provided by CI variables defined
in the gitlab UI or from some upstream pipeline. Let's say you choose the variable
names ``SPACK_REPO`` and ``SPACK_REF`` to refer to the particular fork of spack
and branch you want for running your pipeline. You can then refer to those in a
custom shell script invoked both from your pipeline generation job and your rebuild
jobs. Here's the ``generate-pipeline`` job from the top of this document,
updated to invoke a custom shell script that will clone and source a custom
spack:
updated to clone and source a custom spack:
.. code-block:: yaml
@@ -498,34 +662,24 @@ spack:
tags:
- <some-other-tag>
before_script:
- ./cloneSpack.sh
- git clone ${SPACK_REPO}
- pushd spack && git checkout ${SPACK_REF} && popd
- . "./spack/share/spack/setup-env.sh"
script:
- spack env activate --without-view .
- spack ci generate
- spack ci generate --check-index-only
--artifacts-root "${CI_PROJECT_DIR}/jobs_scratch_dir"
--output-file "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
after_script:
- rm -rf ./spack
artifacts:
paths:
- "${CI_PROJECT_DIR}/jobs_scratch_dir/pipeline.yml"
- "${CI_PROJECT_DIR}/jobs_scratch_dir"
And the ``cloneSpack.sh`` script could contain:
.. code-block:: bash
#!/bin/bash
git clone ${SPACK_REPO}
pushd ./spack
git checkout ${SPACK_REF}
popd
. "./spack/share/spack/setup-env.sh"
spack --version
Finally, you would also want your generated rebuild jobs to clone that version
of spack, so you would update your ``spack.yaml`` from above as follows:
That takes care of getting the desired version of spack when your pipeline is
generated by ``spack ci generate``. You also want your generated rebuild jobs
(all of them) to clone that version of spack, so next you would update your
``spack.yaml`` from above as follows:
.. code-block:: yaml
@@ -540,21 +694,21 @@ of spack, so you would update your ``spack.yaml`` from above as follows:
- spack-kube
image: spack/ubuntu-bionic
before_script:
- ./cloneSpack.sh
- git clone ${SPACK_REPO}
- pushd spack && git checkout ${SPACK_REF} && popd
- . "./spack/share/spack/setup-env.sh"
script:
- spack env activate --without-view .
- spack env activate --without-view ${SPACK_CONCRETE_ENV_DIR}
- spack -d ci rebuild
after_script:
- rm -rf ./spack
Now all of the generated rebuild jobs will use the same shell script to clone
spack before running their actual workload. Note in the above example the
provision of a custom ``script`` section. The reason for this is to run
``spack ci rebuild`` in debug mode to get more information when builds fail.
spack before running their actual workload.
Now imagine you have long pipelines with many specs to be built, and you
are pointing to a spack repository and branch that has a tendency to change
frequently, such as the main repo and it's ``develop`` branch. If each child
frequently, such as the main repo and its ``develop`` branch. If each child
job checks out the ``develop`` branch, that could result in some jobs running
with one SHA of spack, while later jobs run with another. To help avoid this
issue, the pipeline generation process saves global variables called
@@ -564,13 +718,32 @@ simply contains the human-readable value produced by ``spack -V`` at pipeline
generation time, the ``SPACK_CHECKOUT_VERSION`` variable can be used in a
``git checkout`` command to make sure all child jobs checkout the same version
of spack used to generate the pipeline. To take advantage of this, you could
simply replace ``git checkout ${SPACK_REF}`` in the example ``cloneSpack.sh``
script above with ``git checkout ${SPACK_CHECKOUT_VERSION}``.
simply replace ``git checkout ${SPACK_REF}`` in the example ``spack.yaml``
above with ``git checkout ${SPACK_CHECKOUT_VERSION}``.
On the other hand, if you're pointing to a spack repository and branch under your
control, there may be no benefit in using the captured ``SPACK_CHECKOUT_VERSION``,
and you can instead just clone using the project CI variables you set (in the
earlier example these were ``SPACK_REPO`` and ``SPACK_REF``).
and you can instead just clone using the variables you define (``SPACK_REPO``
and ``SPACK_REF`` in the example aboves).
.. _custom_workflow:
---------------
Custom Workflow
---------------
There are many ways to take advantage of spack CI pipelines to achieve custom
workflows for building packages or other resources. One example of a custom
pipelines workflow is the spack tutorial container
`repo <https://github.com/spack/spack-tutorial-container>`_. This project uses
GitHub (for source control), GitLab (for automated spack ci pipelines), and
DockerHub automated builds to build Docker images (complete with fully populate
binary mirror) used by instructors and participants of a spack tutorial.
Take a look a the repo to see how it is accomplished using spack CI pipelines,
and see the following markdown files at the root of the repository for
descriptions and documentation describing the workflow: ``DESCRIPTION.md``,
``DOCKERHUB_SETUP.md``, ``GITLAB_SETUP.md``, and ``UPDATING.md``.
.. _ci_environment_variables:
@@ -587,28 +760,33 @@ environment variables used by the pipeline infrastructure are described here.
AWS_ACCESS_KEY_ID
^^^^^^^^^^^^^^^^^
Needed when binary mirror is an S3 bucket.
Optional. Only needed when binary mirror is an S3 bucket.
^^^^^^^^^^^^^^^^^^^^^
AWS_SECRET_ACCESS_KEY
^^^^^^^^^^^^^^^^^^^^^
Needed when binary mirror is an S3 bucket.
Optional. Only needed when binary mirror is an S3 bucket.
^^^^^^^^^^^^^^^
S3_ENDPOINT_URL
^^^^^^^^^^^^^^^
Needed when binary mirror is an S3 bucket that is *not* on AWS.
Optional. Only needed when binary mirror is an S3 bucket that is *not* on AWS.
^^^^^^^^^^^^^^^^^
CDASH_AUTH_TOKEN
^^^^^^^^^^^^^^^^^
Needed in order to report build groups to CDash.
Optional. Only needed in order to report build groups to CDash.
^^^^^^^^^^^^^^^^^
SPACK_SIGNING_KEY
^^^^^^^^^^^^^^^^^
Needed to sign/verify binary packages from the remote binary mirror.
Optional. Only needed if you want ``spack ci rebuild`` to trust the key you
store in this variable, in which case, it will subsequently be used to sign and
verify binary packages (when installing or creating buildcaches). You could
also have already trusted a key spack know about, or if no key is present anywhere,
spack will install specs using ``--no-check-signature`` and create buildcaches
using ``-u`` (for unsigned binaries).

View File

@@ -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

@@ -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.6/2.7/3.5-3.9, , 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.6/2.7/3.5-3.9 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

View File

@@ -387,7 +387,7 @@ some nice features:
Spack-built compiler can be given to an IDE without requiring the
IDE to load that compiler's module.
Unfortunately, Spack's RPATH support does not work in all case. For example:
Unfortunately, Spack's RPATH support does not work in every case. For example:
#. Software comes in many forms --- not just compiled ELF binaries,
but also as interpreted code in Python, R, JVM bytecode, etc.
@@ -543,7 +543,8 @@ specified from the command line using the ``--projection-file`` option
to the ``spack view`` command.
The projections configuration file is a mapping of partial specs to
spec format strings, as shown in the example below.
spec format strings, defined by the :meth:`~spack.spec.Spec.format`
function, as shown in the example below.
.. code-block:: yaml

617
lib/spack/env/cc vendored
View File

@@ -1,4 +1,5 @@
#!/bin/bash
#!/bin/sh
# shellcheck disable=SC2034 # evals in this script fool shellcheck
#
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
@@ -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)
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)
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)
command="$SPACK_FC"
language="Fortran 90"
comp="FC"
lang_flags=F
debug_flags="-g"
;;
f77|xlf|xlf_r|pgf77)
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,114 +411,147 @@ 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=()
while [ -n "$1" ]; do
# 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
# an RPATH to be added after the case statement.
rp=""
# Multiple consecutive spaces in the command line can
# result in blank arguments
if [ -z "$1" ]; then
shift
continue
fi
case "$1" in
-isystem*)
arg="${1#-isystem}"
isystem_was_used=true
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
# 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.
if { [ "$mode" = "ccld" ] || [ $mode = "ld" ]; } \
&& [ "$1" != "${1#-loopopt}" ]; then
shift
continue
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
@@ -380,9 +559,9 @@ while [ -n "$1" ]; 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
@@ -395,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
@@ -410,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
@@ -419,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
@@ -487,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
@@ -552,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/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

View File

@@ -11,7 +11,7 @@
* Homepage: https://pypi.python.org/pypi/archspec
* Usage: Labeling, comparison and detection of microarchitectures
* Version: 0.1.2 (commit 068b0ebd641211971acf10f39aa876703a34bae4)
* Version: 0.1.2 (commit 85757b6666422fca86aa882a769bf78b0f992f54)
argparse
--------
@@ -88,6 +88,8 @@
* Usage: Needed by pytest. Library with cross-python path,
ini-parsing, io, code, and log facilities.
* Version: 1.4.34 (last version supporting Python 2.6)
* Note: This packages has been modified:
* https://github.com/pytest-dev/py/pull/186 was backported
pytest
------

View File

@@ -49,6 +49,19 @@ $ tox
congratulations :)
```
## Citing Archspec
If you are referencing `archspec` in a publication, please cite the following
paper:
* Massimiliano Culpo, Gregory Becker, Carlos Eduardo Arango Gutierrez, Kenneth
Hoste, and Todd Gamblin.
[**`archspec`: A library for detecting, labeling, and reasoning about
microarchitectures**](https://tgamblin.github.io/pubs/archspec-canopie-hpc-2020.pdf).
In *2nd International Workshop on Containers and New Orchestration Paradigms
for Isolated Environments in HPC (CANOPIE-HPC'20)*, Online Event, November
12, 2020.
## License
Archspec is distributed under the terms of both the MIT license and the

View File

@@ -99,17 +99,29 @@ def sysctl_info_dict():
def sysctl(*args):
return _check_output(["sysctl"] + list(args), env=child_environment).strip()
flags = (
sysctl("-n", "machdep.cpu.features").lower()
+ " "
+ sysctl("-n", "machdep.cpu.leaf7_features").lower()
)
info = {
"vendor_id": sysctl("-n", "machdep.cpu.vendor"),
"flags": flags,
"model": sysctl("-n", "machdep.cpu.model"),
"model name": sysctl("-n", "machdep.cpu.brand_string"),
}
if platform.machine() == "x86_64":
flags = (
sysctl("-n", "machdep.cpu.features").lower()
+ " "
+ sysctl("-n", "machdep.cpu.leaf7_features").lower()
)
info = {
"vendor_id": sysctl("-n", "machdep.cpu.vendor"),
"flags": flags,
"model": sysctl("-n", "machdep.cpu.model"),
"model name": sysctl("-n", "machdep.cpu.brand_string"),
}
else:
model = (
"m1" if "Apple" in sysctl("-n", "machdep.cpu.brand_string") else "unknown"
)
info = {
"vendor_id": "Apple",
"flags": [],
"model": model,
"CPU implementer": "Apple",
"model name": sysctl("-n", "machdep.cpu.brand_string"),
}
return info
@@ -173,6 +185,11 @@ def compatible_microarchitectures(info):
info (dict): dictionary containing information on the host cpu
"""
architecture_family = platform.machine()
# On Apple M1 platform.machine() returns "arm64" instead of "aarch64"
# so we should normalize the name here
if architecture_family == "arm64":
architecture_family = "aarch64"
# If a tester is not registered, be conservative and assume no known
# target is compatible with the host
tester = COMPATIBILITY_CHECKS.get(architecture_family, lambda x, y: False)
@@ -189,11 +206,26 @@ def host():
# Get a list of possible candidates for this micro-architecture
candidates = compatible_microarchitectures(info)
# Sorting criteria for candidates
def sorting_fn(item):
return len(item.ancestors), len(item.features)
# Get the best generic micro-architecture
generic_candidates = [c for c in candidates if c.vendor == "generic"]
best_generic = max(generic_candidates, key=sorting_fn)
# Filter the candidates to be descendant of the best generic candidate.
# This is to avoid that the lack of a niche feature that can be disabled
# from e.g. BIOS prevents detection of a reasonably performant architecture
candidates = [c for c in candidates if c > best_generic]
# If we don't have candidates, return the best generic micro-architecture
if not candidates:
return best_generic
# Reverse sort of the depth for the inheritance tree among only targets we
# can use. This gets the newest target we satisfy.
return sorted(
candidates, key=lambda t: (len(t.ancestors), len(t.features)), reverse=True
)[0]
return max(candidates, key=sorting_fn)
def compatibility_check(architecture_family):
@@ -228,7 +260,13 @@ def compatibility_check_for_power(info, target):
"""Compatibility check for PPC64 and PPC64LE architectures."""
basename = platform.machine()
generation_match = re.search(r"POWER(\d+)", info.get("cpu", ""))
generation = int(generation_match.group(1))
try:
generation = int(generation_match.group(1))
except AttributeError:
# There might be no match under emulated environments. For instance
# emulating a ppc64le with QEMU and Docker still reports the host
# /proc/cpuinfo and not a Power
generation = 0
# We can use a target if it descends from our machine type and our
# generation (9 for POWER9, etc) is at least its generation.
@@ -268,3 +306,22 @@ def compatibility_check_for_aarch64(info, target):
and (target.vendor == vendor or target.vendor == "generic")
and target.features.issubset(features)
)
@compatibility_check(architecture_family="riscv64")
def compatibility_check_for_riscv64(info, target):
"""Compatibility check for riscv64 architectures."""
basename = "riscv64"
uarch = info.get("uarch")
# sifive unmatched board
if uarch == "sifive,u74-mc":
uarch = "u74mc"
# catch-all for unknown uarchs
else:
uarch = "riscv64"
arch_root = TARGETS[basename]
return (target == arch_root or arch_root in target.ancestors) and (
target == uarch or target.vendor == "generic"
)

View File

@@ -173,6 +173,12 @@ def family(self):
return roots.pop()
@property
def generic(self):
"""Returns the best generic architecture that is compatible with self"""
generics = [x for x in [self] + self.ancestors if x.vendor == "generic"]
return max(generics, key=lambda x: len(x.ancestors))
def to_dict(self, return_list_of_items=False):
"""Returns a dictionary representation of this object.

View File

@@ -91,6 +91,166 @@
]
}
},
"x86_64_v2": {
"from": ["x86_64"],
"vendor": "generic",
"features": [
"cx16",
"lahf_lm",
"mmx",
"sse",
"sse2",
"ssse3",
"sse4_1",
"sse4_2",
"popcnt"
],
"compilers": {
"gcc": [
{
"versions": "11.1:",
"name": "x86-64-v2",
"flags": "-march={name} -mtune=generic"
},
{
"versions": "4.6:11.0",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3"
}
],
"clang": [
{
"versions": "12.0:",
"name": "x86-64-v2",
"flags": "-march={name} -mtune=generic"
},
{
"versions": "3.9:11.1",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3"
}
]
}
},
"x86_64_v3": {
"from": ["x86_64_v2"],
"vendor": "generic",
"features": [
"cx16",
"lahf_lm",
"mmx",
"sse",
"sse2",
"ssse3",
"sse4_1",
"sse4_2",
"popcnt",
"avx",
"avx2",
"bmi1",
"bmi2",
"f16c",
"fma",
"abm",
"movbe",
"xsave"
],
"compilers": {
"gcc": [
{
"versions": "11.1:",
"name": "x86-64-v3",
"flags": "-march={name} -mtune=generic"
},
{
"versions": "4.8:11.0",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave"
}
],
"clang": [
{
"versions": "12.0:",
"name": "x86-64-v3",
"flags": "-march={name} -mtune=generic"
},
{
"versions": "3.9:11.1",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave"
}
],
"apple-clang": [
{
"versions": "8.0:",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave"
}
]
}
},
"x86_64_v4": {
"from": ["x86_64_v3"],
"vendor": "generic",
"features": [
"cx16",
"lahf_lm",
"mmx",
"sse",
"sse2",
"ssse3",
"sse4_1",
"sse4_2",
"popcnt",
"avx",
"avx2",
"bmi1",
"bmi2",
"f16c",
"fma",
"abm",
"movbe",
"xsave",
"avx512f",
"avx512bw",
"avx512cd",
"avx512dq",
"avx512vl"
],
"compilers": {
"gcc": [
{
"versions": "11.1:",
"name": "x86-64-v4",
"flags": "-march={name} -mtune=generic"
},
{
"versions": "6.0:11.0",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl"
}
],
"clang": [
{
"versions": "12.0:",
"name": "x86-64-v4",
"flags": "-march={name} -mtune=generic"
},
{
"versions": "3.9:11.1",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl"
}
],
"apple-clang": [
{
"versions": "8.0:",
"name": "x86-64",
"flags": "-march={name} -mtune=generic -mcx16 -msahf -mpopcnt -msse3 -msse4.1 -msse4.2 -mssse3 -mavx -mavx2 -mbmi -mbmi2 -mf16c -mfma -mlzcnt -mmovbe -mxsave -mavx512f -mavx512bw -mavx512cd -mavx512dq -mavx512vl"
}
]
}
},
"nocona": {
"from": ["x86_64"],
"vendor": "GenuineIntel",
@@ -177,7 +337,7 @@
}
},
"nehalem": {
"from": ["core2"],
"from": ["core2", "x86_64_v2"],
"vendor": "GenuineIntel",
"features": [
"mmx",
@@ -394,7 +554,7 @@
}
},
"haswell": {
"from": ["ivybridge"],
"from": ["ivybridge", "x86_64_v3"],
"vendor": "GenuineIntel",
"features": [
"mmx",
@@ -642,7 +802,7 @@
}
},
"skylake_avx512": {
"from": ["skylake"],
"from": ["skylake", "x86_64_v4"],
"vendor": "GenuineIntel",
"features": [
"mmx",
@@ -841,7 +1001,7 @@
],
"intel": [
{
"versions": "19.0:",
"versions": "19.0.1:",
"flags": "-march={name} -mtune={name}"
}
]
@@ -986,7 +1146,7 @@
}
},
"bulldozer": {
"from": ["x86_64"],
"from": ["x86_64_v2"],
"vendor": "AuthenticAMD",
"features": [
"mmx",
@@ -1145,7 +1305,7 @@
}
},
"excavator": {
"from": ["steamroller"],
"from": ["steamroller", "x86_64_v3"],
"vendor": "AuthenticAMD",
"features": [
"mmx",
@@ -1204,7 +1364,7 @@
}
},
"zen": {
"from": ["x86_64"],
"from": ["x86_64_v3"],
"vendor": "AuthenticAMD",
"features": [
"bmi1",
@@ -1328,6 +1488,64 @@
]
}
},
"zen3": {
"from": ["zen2"],
"vendor": "AuthenticAMD",
"features": [
"bmi1",
"bmi2",
"f16c",
"fma",
"fsgsbase",
"avx",
"avx2",
"rdseed",
"clzero",
"aes",
"pclmulqdq",
"cx16",
"movbe",
"mmx",
"sse",
"sse2",
"sse4a",
"ssse3",
"sse4_1",
"sse4_2",
"abm",
"xsavec",
"xsaveopt",
"clflushopt",
"popcnt",
"clwb",
"vaes",
"vpclmulqdq",
"pku"
],
"compilers": {
"gcc": [
{
"versions": "10.3:",
"name": "znver3",
"flags": "-march={name} -mtune={name}"
}
],
"clang": [
{
"versions": "12.0:",
"name": "znver3",
"flags": "-march={name} -mtune={name}"
}
],
"aocc": [
{
"versions": "3.0:",
"name": "znver3",
"flags": "-march={name} -mtune={name}"
}
]
}
},
"ppc64": {
"from": [],
"vendor": "generic",
@@ -1501,6 +1719,18 @@
"versions": ":",
"flags": "-march=armv8-a -mtune=generic"
}
],
"apple-clang": [
{
"versions": ":",
"flags": "-march=armv8-a -mtune=generic"
}
],
"arm": [
{
"versions": ":",
"flags": "-march=armv8-a -mtune=generic"
}
]
}
},
@@ -1604,6 +1834,12 @@
"versions": "5:",
"flags": "-march=armv8.2-a+crc+crypto+fp16+sve"
}
],
"arm": [
{
"versions": "20:",
"flags": "-march=armv8.2-a+crc+crypto+fp16+sve"
}
]
}
},
@@ -1706,9 +1942,40 @@
"versions": "5:",
"flags" : "-march=armv8.2-a+fp16+rcpc+dotprod+crypto"
}
],
"arm" : [
{
"versions": "20:",
"flags" : "-march=armv8.2-a+fp16+rcpc+dotprod+crypto"
}
]
}
},
"m1": {
"from": ["aarch64"],
"vendor": "Apple",
"features": [],
"compilers": {
"gcc": [
{
"versions": "8.0:",
"flags" : "-march=armv8.4-a -mtune=generic"
}
],
"clang" : [
{
"versions": "9.0:",
"flags" : "-march=armv8.4-a"
}
],
"apple-clang": [
{
"versions": "11.0:",
"flags" : "-march=armv8.4-a"
}
]
}
},
"arm": {
"from": [],
"vendor": "generic",
@@ -1750,6 +2017,44 @@
"features": [],
"compilers": {
}
},
"riscv64": {
"from": [],
"vendor": "generic",
"features": [],
"compilers": {
"gcc": [
{
"versions": "7.1:",
"flags" : "-march=rv64gc"
}
],
"clang": [
{
"versions": "9.0:",
"flags" : "-march=rv64gc"
}
]
}
},
"u74mc": {
"from": ["riscv64"],
"vendor": "SiFive",
"features": [],
"compilers": {
"gcc": [
{
"versions": "10.2:",
"flags" : "-march=rv64gc -mtune=sifive-7-series"
}
],
"clang" : [
{
"versions": "12.0:",
"flags" : "-march=rv64gc -mtune=sifive-7-series"
}
]
}
}
},
"feature_aliases": {

View File

@@ -77,52 +77,18 @@
from six import StringIO
from six import string_types
class prefilter(object):
"""Make regular expressions faster with a simple prefiltering predicate.
Some regular expressions seem to be much more costly than others. In
most cases, we can evaluate a simple precondition, e.g.::
lambda x: "error" in x
to avoid evaluating expensive regexes on all lines in a file. This
can reduce parse time for large files by orders of magnitude when
evaluating lots of expressions.
A ``prefilter`` object is designed to act like a regex,, but
``search`` and ``match`` check the precondition before bothering to
evaluate the regular expression.
Note that ``match`` and ``search`` just return ``True`` and ``False``
at the moment. Make them return a ``MatchObject`` or ``None`` if it
becomes necessary.
"""
def __init__(self, precondition, *patterns):
self.patterns = [re.compile(p) for p in patterns]
self.pre = precondition
self.pattern = "\n ".join(
('MERGED:',) + patterns)
def search(self, text):
return self.pre(text) and any(p.search(text) for p in self.patterns)
def match(self, text):
return self.pre(text) and any(p.match(text) for p in self.patterns)
_error_matches = [
prefilter(
lambda x: any(s in x for s in (
'Error:', 'error', 'undefined reference', 'multiply defined')),
"([^:]+): error[ \\t]*[0-9]+[ \\t]*:",
"([^:]+): (Error:|error|undefined reference|multiply defined)",
"([^ :]+) ?: (error|fatal error|catastrophic error)",
"([^:]+)\\(([^\\)]+)\\) ?: (error|fatal error|catastrophic error)"),
"^FAILED",
"^FAIL: ",
"^FATAL: ",
"^failed ",
"FAILED",
"Failed test",
"^[Bb]us [Ee]rror",
"^[Ss]egmentation [Vv]iolation",
"^[Ss]egmentation [Ff]ault",
":.*[Pp]ermission [Dd]enied",
"[^ :]:[0-9]+: [^ \\t]",
"[^:]: error[ \\t]*[0-9]+[ \\t]*:",
"^Error ([0-9]+):",
"^Fatal",
"^[Ee]rror: ",
@@ -132,6 +98,9 @@ def match(self, text):
"^cc[^C]*CC: ERROR File = ([^,]+), Line = ([0-9]+)",
"^ld([^:])*:([ \\t])*ERROR([^:])*:",
"^ild:([ \\t])*\\(undefined symbol\\)",
"[^ :] : (error|fatal error|catastrophic error)",
"[^:]: (Error:|error|undefined reference|multiply defined)",
"[^:]\\([^\\)]+\\) ?: (error|fatal error|catastrophic error)",
"^fatal error C[0-9]+:",
": syntax error ",
"^collect2: ld returned 1 exit status",
@@ -140,7 +109,7 @@ def match(self, text):
"^Unresolved:",
"Undefined symbol",
"^Undefined[ \\t]+first referenced",
"^CMake Error.*:",
"^CMake Error",
":[ \\t]cannot find",
":[ \\t]can't find",
": \\*\\*\\* No rule to make target [`'].*\\'. Stop",
@@ -154,6 +123,7 @@ def match(self, text):
"ld: 0706-006 Cannot find or open library file: -l ",
"ild: \\(argument error\\) can't find library argument ::",
"^could not be found and will not be loaded.",
"^WARNING: '.*' is missing on your system",
"s:616 string too big",
"make: Fatal error: ",
"ld: 0711-993 Error occurred while writing to the output file:",
@@ -175,44 +145,40 @@ def match(self, text):
"instantiated from ",
"candidates are:",
": warning",
": WARNING",
": \\(Warning\\)",
": note",
" ok",
"Note:",
"makefile:",
"Makefile:",
":[ \\t]+Where:",
"([^ :]+):([0-9]+): Warning",
"[^ :]:[0-9]+: Warning",
"------ Build started: .* ------",
]
#: Regexes to match file/line numbers in error/warning messages
_warning_matches = [
prefilter(
lambda x: 'warning' in x,
"([^ :]+):([0-9]+): warning:",
"([^:]+): warning ([0-9]+):",
"([^:]+): warning[ \\t]*[0-9]+[ \\t]*:",
"([^ :]+) : warning",
"([^:]+): warning"),
prefilter(
lambda x: 'note:' in x,
"^([^ :]+):([0-9]+): note:"),
prefilter(
lambda x: any(s in x for s in ('Warning', 'Warnung')),
"^(Warning|Warnung) ([0-9]+):",
"^(Warning|Warnung)[ :]",
"^cxx: Warning:",
"([^ :]+):([0-9]+): (Warning|Warnung)",
"^CMake Warning.*:"),
"file: .* has no symbols",
"[^ :]:[0-9]+: warning:",
"[^ :]:[0-9]+: note:",
"^cc[^C]*CC: WARNING File = ([^,]+), Line = ([0-9]+)",
"^ld([^:])*:([ \\t])*WARNING([^:])*:",
"[^:]: warning [0-9]+:",
"^\"[^\"]+\", line [0-9]+: [Ww](arning|arnung)",
"[^:]: warning[ \\t]*[0-9]+[ \\t]*:",
"^(Warning|Warnung) ([0-9]+):",
"^(Warning|Warnung)[ :]",
"WARNING: ",
"[^ :] : warning",
"[^:]: warning",
"\", line [0-9]+\\.[0-9]+: [0-9]+-[0-9]+ \\([WI]\\)",
"^cxx: Warning:",
"file: .* has no symbols",
"[^ :]:[0-9]+: (Warning|Warnung)",
"\\([0-9]*\\): remark #[0-9]*",
"\".*\", line [0-9]+: remark\\([0-9]*\\):",
"cc-[0-9]* CC: REMARK File = .*, Line = [0-9]*",
"^CMake Warning",
"^\\[WARNING\\]",
]
@@ -343,8 +309,7 @@ def _profile_match(matches, exceptions, line, match_times, exc_times):
def _parse(lines, offset, profile):
def compile(regex_array):
return [regex if isinstance(regex, prefilter) else re.compile(regex)
for regex in regex_array]
return [re.compile(regex) for regex in regex_array]
error_matches = compile(_error_matches)
error_exceptions = compile(_error_exceptions)

View File

@@ -10,7 +10,7 @@
from py._path.common import iswin32, fspath
from stat import S_ISLNK, S_ISDIR, S_ISREG
from os.path import abspath, normcase, normpath, isabs, exists, isdir, isfile, islink, dirname
from os.path import abspath, normpath, isabs, exists, isdir, isfile, islink, dirname
if sys.version_info > (3,0):
def map_as_list(func, iter):
@@ -801,10 +801,10 @@ def make_numbered_dir(cls, prefix='session-', rootdir=None, keep=3,
if rootdir is None:
rootdir = cls.get_temproot()
nprefix = normcase(prefix)
nprefix = prefix.lower()
def parse_num(path):
""" parse the number out of a path (if it matches the prefix) """
nbasename = normcase(path.basename)
nbasename = path.basename.lower()
if nbasename.startswith(nprefix):
try:
return int(nbasename[len(nprefix):])

View File

@@ -1,4 +1,4 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# 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)

View File

@@ -5,9 +5,9 @@
from __future__ import print_function
import re
import argparse
import errno
import re
import sys
from six import StringIO
@@ -326,7 +326,7 @@ def end_function(self, prog=None):
"""Returns the syntax needed to end a function definition.
Parameters:
prog (str, optional): the command name
prog (str or None): the command name
Returns:
str: the function definition ending

View File

@@ -4,9 +4,9 @@
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import collections
import errno
import hashlib
import glob
import grp
import hashlib
import itertools
import numbers
import os
@@ -19,10 +19,11 @@
from contextlib import contextmanager
import six
from llnl.util import tty
from llnl.util.lang import dedupe, memoized
from spack.util.executable import Executable
from spack.util.executable import Executable
if sys.version_info >= (3, 3):
from collections.abc import Sequence # novm
@@ -140,7 +141,7 @@ def filter_file(regex, repl, *filenames, **kwargs):
file.
"""
string = kwargs.get('string', False)
backup = kwargs.get('backup', True)
backup = kwargs.get('backup', False)
ignore_absent = kwargs.get('ignore_absent', False)
stop_at = kwargs.get('stop_at', None)
@@ -443,7 +444,7 @@ def copy_tree(src, dest, symlinks=True, ignore=None, _permissions=False):
src (str): the directory to copy
dest (str): the destination directory
symlinks (bool): whether or not to preserve symlinks
ignore (function): function indicating which files to ignore
ignore (typing.Callable): function indicating which files to ignore
_permissions (bool): for internal use only
Raises:
@@ -517,7 +518,7 @@ def install_tree(src, dest, symlinks=True, ignore=None):
src (str): the directory to install
dest (str): the destination directory
symlinks (bool): whether or not to preserve symlinks
ignore (function): function indicating which files to ignore
ignore (typing.Callable): function indicating which files to ignore
Raises:
IOError: if *src* does not match any files or directories
@@ -556,12 +557,12 @@ def mkdirp(*paths, **kwargs):
paths (str): paths to create with mkdirp
Keyword Aguments:
mode (permission bits or None, optional): optional permissions to set
mode (permission bits or None): optional permissions to set
on the created directory -- use OS default if not provided
group (group name or None, optional): optional group for permissions of
group (group name or None): optional group for permissions of
final created directory -- use OS default if not provided. Only
used if world write permissions are not set
default_perms ('parents' or 'args', optional): The default permissions
default_perms (str or None): one of 'parents' or 'args'. The default permissions
that are set for directories that are not themselves an argument
for mkdirp. 'parents' means intermediate directories get the
permissions of their direct parent directory, 'args' means
@@ -655,6 +656,12 @@ def working_dir(dirname, **kwargs):
os.chdir(orig_dir)
class CouldNotRestoreDirectoryBackup(RuntimeError):
def __init__(self, inner_exception, outer_exception):
self.inner_exception = inner_exception
self.outer_exception = outer_exception
@contextmanager
def replace_directory_transaction(directory_name, tmp_root=None):
"""Moves a directory to a temporary space. If the operations executed
@@ -682,32 +689,33 @@ def replace_directory_transaction(directory_name, tmp_root=None):
assert os.path.isabs(tmp_root)
tmp_dir = tempfile.mkdtemp(dir=tmp_root)
tty.debug('TEMPORARY DIRECTORY CREATED [{0}]'.format(tmp_dir))
tty.debug('Temporary directory created [{0}]'.format(tmp_dir))
shutil.move(src=directory_name, dst=tmp_dir)
tty.debug('DIRECTORY MOVED [src={0}, dest={1}]'.format(
directory_name, tmp_dir
))
tty.debug('Directory moved [src={0}, dest={1}]'.format(directory_name, tmp_dir))
try:
yield tmp_dir
except (Exception, KeyboardInterrupt, SystemExit) as e:
# Delete what was there, before copying back the original content
if os.path.exists(directory_name):
shutil.rmtree(directory_name)
shutil.move(
src=os.path.join(tmp_dir, directory_basename),
dst=os.path.dirname(directory_name)
)
tty.debug('DIRECTORY RECOVERED [{0}]'.format(directory_name))
except (Exception, KeyboardInterrupt, SystemExit) as inner_exception:
# Try to recover the original directory, if this fails, raise a
# composite exception.
try:
# Delete what was there, before copying back the original content
if os.path.exists(directory_name):
shutil.rmtree(directory_name)
shutil.move(
src=os.path.join(tmp_dir, directory_basename),
dst=os.path.dirname(directory_name)
)
except Exception as outer_exception:
raise CouldNotRestoreDirectoryBackup(inner_exception, outer_exception)
msg = 'the transactional move of "{0}" failed.'
msg += '\n ' + str(e)
raise RuntimeError(msg.format(directory_name))
tty.debug('Directory recovered [{0}]'.format(directory_name))
raise
else:
# Otherwise delete the temporary directory
shutil.rmtree(tmp_dir)
tty.debug('TEMPORARY DIRECTORY DELETED [{0}]'.format(tmp_dir))
shutil.rmtree(tmp_dir, ignore_errors=True)
tty.debug('Temporary directory deleted [{0}]'.format(tmp_dir))
def hash_directory(directory, ignore=[]):
@@ -865,7 +873,7 @@ def traverse_tree(source_root, dest_root, rel_path='', **kwargs):
Keyword Arguments:
order (str): Whether to do pre- or post-order traversal. Accepted
values are 'pre' and 'post'
ignore (function): function indicating which files to ignore
ignore (typing.Callable): function indicating which files to ignore
follow_nonexisting (bool): Whether to descend into directories in
``src`` that do not exit in ``dest``. Default is True
follow_links (bool): Whether to descend into symlinks in ``src``
@@ -1101,23 +1109,23 @@ def find(root, files, recursive=True):
Accepts any glob characters accepted by fnmatch:
======= ====================================
Pattern Meaning
======= ====================================
* matches everything
? matches any single character
[seq] matches any character in ``seq``
[!seq] matches any character not in ``seq``
======= ====================================
========== ====================================
Pattern Meaning
========== ====================================
``*`` matches everything
``?`` matches any single character
``[seq]`` matches any character in ``seq``
``[!seq]`` matches any character not in ``seq``
========== ====================================
Parameters:
root (str): The root directory to start searching from
files (str or Sequence): Library name(s) to search for
recurse (bool, optional): if False search only root folder,
recursive (bool): if False search only root folder,
if True descends top-down from the root. Defaults to True.
Returns:
list of strings: The files that have been found
list: The files that have been found
"""
if isinstance(files, six.string_types):
files = [files]
@@ -1199,7 +1207,7 @@ def directories(self):
['/dir1', '/dir2']
Returns:
list of strings: A list of directories
list: A list of directories
"""
return list(dedupe(
os.path.dirname(x) for x in self.files if os.path.dirname(x)
@@ -1217,7 +1225,7 @@ def basenames(self):
['a.h', 'b.h']
Returns:
list of strings: A list of base-names
list: A list of base-names
"""
return list(dedupe(os.path.basename(x) for x in self.files))
@@ -1304,7 +1312,7 @@ def headers(self):
"""Stable de-duplication of the headers.
Returns:
list of strings: A list of header files
list: A list of header files
"""
return self.files
@@ -1317,7 +1325,7 @@ def names(self):
['a', 'b']
Returns:
list of strings: A list of files without extensions
list: A list of files without extensions
"""
names = []
@@ -1408,9 +1416,9 @@ def find_headers(headers, root, recursive=False):
======= ====================================
Parameters:
headers (str or list of str): Header name(s) to search for
headers (str or list): Header name(s) to search for
root (str): The root directory to start searching from
recursive (bool, optional): if False search only root folder,
recursive (bool): if False search only root folder,
if True descends top-down from the root. Defaults to False.
Returns:
@@ -1446,7 +1454,7 @@ def find_all_headers(root):
in the directory passed as argument.
Args:
root (path): directory where to look recursively for header files
root (str): directory where to look recursively for header files
Returns:
List of all headers found in ``root`` and subdirectories.
@@ -1466,7 +1474,7 @@ def libraries(self):
"""Stable de-duplication of library files.
Returns:
list of strings: A list of library files
list: A list of library files
"""
return self.files
@@ -1479,7 +1487,7 @@ def names(self):
['a', 'b']
Returns:
list of strings: A list of library names
list: A list of library names
"""
names = []
@@ -1564,8 +1572,8 @@ def find_system_libraries(libraries, shared=True):
======= ====================================
Parameters:
libraries (str or list of str): Library name(s) to search for
shared (bool, optional): if True searches for shared libraries,
libraries (str or list): Library name(s) to search for
shared (bool): if True searches for shared libraries,
otherwise for static. Defaults to True.
Returns:
@@ -1615,11 +1623,11 @@ def find_libraries(libraries, root, shared=True, recursive=False):
======= ====================================
Parameters:
libraries (str or list of str): Library name(s) to search for
libraries (str or list): Library name(s) to search for
root (str): The root directory to start searching from
shared (bool, optional): if True searches for shared libraries,
shared (bool): if True searches for shared libraries,
otherwise for static. Defaults to True.
recursive (bool, optional): if False search only root folder,
recursive (bool): if False search only root folder,
if True descends top-down from the root. Defaults to False.
Returns:
@@ -1847,3 +1855,18 @@ def keep_modification_time(*filenames):
for f, mtime in mtimes.items():
if os.path.exists(f):
os.utime(f, (os.path.getatime(f), mtime))
@contextmanager
def temporary_dir(*args, **kwargs):
"""Create a temporary directory and cd's into it. Delete the directory
on exit.
Takes the same arguments as tempfile.mkdtemp()
"""
tmp_dir = tempfile.mkdtemp(*args, **kwargs)
try:
with working_dir(tmp_dir):
yield tmp_dir
finally:
remove_directory_contents(tmp_dir)

View File

@@ -5,15 +5,20 @@
from __future__ import division
import multiprocessing
import os
import re
import functools
import inspect
from datetime import datetime, timedelta
from six import string_types
import os
import re
import sys
from datetime import datetime, timedelta
from six import string_types
if sys.version_info < (3, 0):
from itertools import izip_longest # novm
zip_longest = izip_longest
else:
from itertools import zip_longest # novm
if sys.version_info >= (3, 3):
from collections.abc import Hashable, MutableMapping # novm
@@ -25,23 +30,6 @@
ignore_modules = [r'^\.#', '~$']
# On macOS, Python 3.8 multiprocessing now defaults to the 'spawn' start
# method. Spack cannot currently handle this, so force the process to start
# using the 'fork' start method.
#
# TODO: This solution is not ideal, as the 'fork' start method can lead to
# crashes of the subprocess. Figure out how to make 'spawn' work.
#
# See:
# * https://github.com/spack/spack/pull/18124
# * https://docs.python.org/3/library/multiprocessing.html#contexts-and-start-methods # noqa: E501
# * https://bugs.python.org/issue33725
if sys.version_info >= (3,): # novm
fork_context = multiprocessing.get_context('fork')
else:
fork_context = multiprocessing
def index_by(objects, *funcs):
"""Create a hierarchy of dictionaries by splitting the supplied
set of objects on unique values of the supplied functions.
@@ -227,6 +215,31 @@ def list_modules(directory, **kwargs):
yield re.sub('.py$', '', name)
def decorator_with_or_without_args(decorator):
"""Allows a decorator to be used with or without arguments, e.g.::
# Calls the decorator function some args
@decorator(with, arguments, and=kwargs)
or::
# Calls the decorator function with zero arguments
@decorator
"""
# See https://stackoverflow.com/questions/653368 for more on this
@functools.wraps(decorator)
def new_dec(*args, **kwargs):
if len(args) == 1 and len(kwargs) == 0 and callable(args[0]):
# actual decorated function
return decorator(args[0])
else:
# decorator arguments
return lambda realf: decorator(realf, *args, **kwargs)
return new_dec
def key_ordering(cls):
"""Decorates a class with extra methods that implement rich comparison
operations and ``__hash__``. The decorator assumes that the class
@@ -268,7 +281,197 @@ def setter(name, value):
return cls
@key_ordering
#: sentinel for testing that iterators are done in lazy_lexicographic_ordering
done = object()
def tuplify(seq):
"""Helper for lazy_lexicographic_ordering()."""
return tuple((tuplify(x) if callable(x) else x) for x in seq())
def lazy_eq(lseq, rseq):
"""Equality comparison for two lazily generated sequences.
See ``lazy_lexicographic_ordering``.
"""
liter = lseq() # call generators
riter = rseq()
# zip_longest is implemented in native code, so use it for speed.
# use zip_longest instead of zip because it allows us to tell
# which iterator was longer.
for left, right in zip_longest(liter, riter, fillvalue=done):
if (left is done) or (right is done):
return False
# recursively enumerate any generators, otherwise compare
equal = lazy_eq(left, right) if callable(left) else left == right
if not equal:
return False
return True
def lazy_lt(lseq, rseq):
"""Less-than comparison for two lazily generated sequences.
See ``lazy_lexicographic_ordering``.
"""
liter = lseq()
riter = rseq()
for left, right in zip_longest(liter, riter, fillvalue=done):
if (left is done) or (right is done):
return left is done # left was shorter than right
sequence = callable(left)
equal = lazy_eq(left, right) if sequence else left == right
if equal:
continue
if sequence:
return lazy_lt(left, right)
if left is None:
return True
if right is None:
return False
return left < right
return False # if equal, return False
@decorator_with_or_without_args
def lazy_lexicographic_ordering(cls, set_hash=True):
"""Decorates a class with extra methods that implement rich comparison.
This is a lazy version of the tuple comparison used frequently to
implement comparison in Python. Given some objects with fields, you
might use tuple keys to implement comparison, e.g.::
class Widget:
def _cmp_key(self):
return (
self.a,
self.b,
(self.c, self.d),
self.e
)
def __eq__(self, other):
return self._cmp_key() == other._cmp_key()
def __lt__(self):
return self._cmp_key() < other._cmp_key()
# etc.
Python would compare ``Widgets`` lexicographically based on their
tuples. The issue there for simple comparators is that we have to
bulid the tuples *and* we have to generate all the values in them up
front. When implementing comparisons for large data structures, this
can be costly.
Lazy lexicographic comparison maps the tuple comparison shown above
to generator functions. Instead of comparing based on pre-constructed
tuple keys, users of this decorator can compare using elements from a
generator. So, you'd write::
@lazy_lexicographic_ordering
class Widget:
def _cmp_iter(self):
yield a
yield b
def cd_fun():
yield c
yield d
yield cd_fun
yield e
# operators are added by decorator
There are no tuples preconstructed, and the generator does not have
to complete. Instead of tuples, we simply make functions that lazily
yield what would've been in the tuple. The
``@lazy_lexicographic_ordering`` decorator handles the details of
implementing comparison operators, and the ``Widget`` implementor
only has to worry about writing ``_cmp_iter``, and making sure the
elements in it are also comparable.
Some things to note:
* If a class already has ``__eq__``, ``__ne__``, ``__lt__``,
``__le__``, ``__gt__``, ``__ge__``, or ``__hash__`` defined, this
decorator will overwrite them.
* If ``set_hash`` is ``False``, this will not overwrite
``__hash__``.
* This class uses Python 2 None-comparison semantics. If you yield
None and it is compared to a non-None type, None will always be
less than the other object.
Raises:
TypeError: If the class does not have a ``_cmp_iter`` method
"""
if not has_method(cls, "_cmp_iter"):
raise TypeError("'%s' doesn't define _cmp_iter()." % cls.__name__)
# comparison operators are implemented in terms of lazy_eq and lazy_lt
def eq(self, other):
if self is other:
return True
return (other is not None) and lazy_eq(self._cmp_iter, other._cmp_iter)
def lt(self, other):
if self is other:
return False
return (other is not None) and lazy_lt(self._cmp_iter, other._cmp_iter)
def ne(self, other):
if self is other:
return False
return (other is None) or not lazy_eq(self._cmp_iter, other._cmp_iter)
def gt(self, other):
if self is other:
return False
return (other is None) or lazy_lt(other._cmp_iter, self._cmp_iter)
def le(self, other):
if self is other:
return True
return (other is not None) and not lazy_lt(other._cmp_iter,
self._cmp_iter)
def ge(self, other):
if self is other:
return True
return (other is None) or not lazy_lt(self._cmp_iter, other._cmp_iter)
def h(self):
return hash(tuplify(self._cmp_iter))
def add_func_to_class(name, func):
"""Add a function to a class with a particular name."""
func.__name__ = name
setattr(cls, name, func)
add_func_to_class("__eq__", eq)
add_func_to_class("__ne__", ne)
add_func_to_class("__lt__", lt)
add_func_to_class("__le__", le)
add_func_to_class("__gt__", gt)
add_func_to_class("__ge__", ge)
if set_hash:
add_func_to_class("__hash__", h)
return cls
@lazy_lexicographic_ordering
class HashableMap(MutableMapping):
"""This is a hashable, comparable dictionary. Hash is performed on
a tuple of the values in the dictionary."""
@@ -291,8 +494,9 @@ def __len__(self):
def __delitem__(self, key):
del self.dict[key]
def _cmp_key(self):
return tuple(sorted(self.values()))
def _cmp_iter(self):
for _, v in sorted(self.items()):
yield v
def copy(self):
"""Type-agnostic clone method. Preserves subclass type."""
@@ -392,8 +596,8 @@ def pretty_date(time, now=None):
"""Convert a datetime or timestamp to a pretty, relative date.
Args:
time (datetime or int): date to print prettily
now (datetime): dateimte for 'now', i.e. the date the pretty date
time (datetime.datetime or int): date to print prettily
now (datetime.datetime): datetime for 'now', i.e. the date the pretty date
is relative to (default is datetime.now())
Returns:
@@ -467,7 +671,7 @@ def pretty_string_to_date(date_str, now=None):
or be a *pretty date* (like ``yesterday`` or ``two months ago``)
Returns:
(datetime): datetime object corresponding to ``date_str``
(datetime.datetime): datetime object corresponding to ``date_str``
"""
pattern = {}
@@ -624,6 +828,9 @@ def __repr__(self):
def load_module_from_file(module_name, module_path):
"""Loads a python module from the path of the corresponding file.
If the module is already in ``sys.modules`` it will be returned as
is and not reloaded.
Args:
module_name (str): namespace where the python module will be loaded,
e.g. ``foo.bar``
@@ -636,12 +843,28 @@ def load_module_from_file(module_name, module_path):
ImportError: when the module can't be loaded
FileNotFoundError: when module_path doesn't exist
"""
if module_name in sys.modules:
return sys.modules[module_name]
# This recipe is adapted from https://stackoverflow.com/a/67692/771663
if sys.version_info[0] == 3 and sys.version_info[1] >= 5:
import importlib.util
spec = importlib.util.spec_from_file_location( # novm
module_name, module_path)
module = importlib.util.module_from_spec(spec) # novm
spec.loader.exec_module(module)
# The module object needs to exist in sys.modules before the
# loader executes the module code.
#
# See https://docs.python.org/3/reference/import.html#loading
sys.modules[spec.name] = module
try:
spec.loader.exec_module(module)
except BaseException:
try:
del sys.modules[spec.name]
except KeyError:
pass
raise
elif sys.version_info[0] == 3 and sys.version_info[1] < 5:
import importlib.machinery
loader = importlib.machinery.SourceFileLoader( # novm
@@ -692,3 +915,19 @@ class Devnull(object):
"""
def write(self, *_):
pass
def elide_list(line_list, max_num=10):
"""Takes a long list and limits it to a smaller number of elements,
replacing intervening elements with '...'. For example::
elide_list([1,2,3,4,5,6], 4)
gives::
[1, 2, 3, '...', 6]
"""
if len(line_list) > max_num:
return line_list[:max_num - 1] + ['...'] + line_list[-1:]
else:
return line_list

View File

@@ -7,12 +7,12 @@
from __future__ import print_function
import filecmp
import os
import shutil
import filecmp
from llnl.util.filesystem import traverse_tree, mkdirp, touch
import llnl.util.tty as tty
from llnl.util.filesystem import mkdirp, touch, traverse_tree
__all__ = ['LinkTree']

View File

@@ -3,20 +3,31 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import fcntl
import errno
import time
import fcntl
import os
import socket
import time
from datetime import datetime
from typing import Dict, Tuple # novm
import llnl.util.tty as tty
import spack.util.string
__all__ = ['Lock', 'LockTransaction', 'WriteTransaction', 'ReadTransaction',
'LockError', 'LockTimeoutError',
'LockPermissionError', 'LockROFileError', 'CantCreateLockError']
__all__ = [
'Lock',
'LockDowngradeError',
'LockUpgradeError',
'LockTransaction',
'WriteTransaction',
'ReadTransaction',
'LockError',
'LockTimeoutError',
'LockPermissionError',
'LockROFileError',
'CantCreateLockError'
]
#: Mapping of supported locks to description
lock_type = {fcntl.LOCK_SH: 'read', fcntl.LOCK_EX: 'write'}
@@ -26,6 +37,126 @@
true_fn = lambda: True
class OpenFile(object):
"""Record for keeping track of open lockfiles (with reference counting).
There's really only one ``OpenFile`` per inode, per process, but we record the
filehandle here as it's the thing we end up using in python code. You can get
the file descriptor from the file handle if needed -- or we could make this track
file descriptors as well in the future.
"""
def __init__(self, fh):
self.fh = fh
self.refs = 0
class OpenFileTracker(object):
"""Track open lockfiles, to minimize number of open file descriptors.
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.
"""
def __init__(self):
"""Create a new ``OpenFileTracker``."""
self._descriptors = {} # type: Dict[Tuple[int, int], OpenFile]
def get_fh(self, path):
"""Get a filehandle for a lockfile.
This routine will open writable files for read/write even if you're asking
for a shared (read-only) lock. This is so that we can upgrade to an exclusive
(write) lock later if requested.
Arguments:
path (str): path to lock file we want a filehandle for
"""
# Open writable files as 'r+' so we can upgrade to write later
os_mode, fh_mode = (os.O_RDWR | os.O_CREAT), 'r+'
pid = os.getpid()
open_file = None # OpenFile object, if there is one
stat = None # stat result for the lockfile, if it exists
try:
# see whether we've seen this inode/pid before
stat = os.stat(path)
key = (stat.st_ino, pid)
open_file = self._descriptors.get(key)
except OSError as e:
if e.errno != errno.ENOENT: # only handle file not found
raise
# path does not exist -- fail if we won't be able to create it
parent = os.path.dirname(path) or '.'
if not os.access(parent, os.W_OK):
raise CantCreateLockError(path)
# if there was no already open file, we'll need to open one
if not open_file:
if stat and not os.access(path, os.W_OK):
# we know path exists but not if it's writable. If it's read-only,
# only open the file for reading (and fail if we're trying to get
# an exclusive (write) lock on it)
os_mode, fh_mode = os.O_RDONLY, 'r'
fd = os.open(path, os_mode)
fh = os.fdopen(fd, fh_mode)
open_file = OpenFile(fh)
# if we just created the file, we'll need to get its inode here
if not stat:
inode = os.fstat(fd).st_ino
key = (inode, pid)
self._descriptors[key] = open_file
open_file.refs += 1
return open_file.fh
def release_fh(self, path):
"""Release a filehandle, only closing it if there are no more references."""
try:
inode = os.stat(path).st_ino
except OSError as e:
if e.errno != errno.ENOENT: # only handle file not found
raise
inode = None # this will not be in self._descriptors
key = (inode, os.getpid())
open_file = self._descriptors.get(key)
assert open_file, "Attempted to close non-existing lock path: %s" % path
open_file.refs -= 1
if not open_file.refs:
del self._descriptors[key]
open_file.fh.close()
#: Open file descriptors for locks in this process. Used to prevent one process
#: from opening the sam file many times for different byte range locks
file_tracker = OpenFileTracker()
def _attempts_str(wait_time, nattempts):
# Don't print anything if we succeeded on the first try
if nattempts <= 1:
@@ -46,7 +177,8 @@ class Lock(object):
Note that this is for managing contention over resources *between*
processes and not for managing contention between threads in a process: the
functions of this object are not thread-safe. A process also must not
maintain multiple locks on the same file.
maintain multiple locks on the same file (or, more specifically, on
overlapping byte ranges in the same file).
"""
def __init__(self, path, start=0, length=0, default_timeout=None,
@@ -151,25 +283,10 @@ def _lock(self, op, timeout=None):
# Create file and parent directories if they don't exist.
if self._file is None:
parent = self._ensure_parent_directory()
self._ensure_parent_directory()
self._file = file_tracker.get_fh(self.path)
# Open writable files as 'r+' so we can upgrade to write later
os_mode, fd_mode = (os.O_RDWR | os.O_CREAT), 'r+'
if os.path.exists(self.path):
if not os.access(self.path, os.W_OK):
if op == fcntl.LOCK_SH:
# can still lock read-only files if we open 'r'
os_mode, fd_mode = os.O_RDONLY, 'r'
else:
raise LockROFileError(self.path)
elif not os.access(parent, os.W_OK):
raise CantCreateLockError(self.path)
fd = os.open(self.path, os_mode)
self._file = os.fdopen(fd, fd_mode)
elif op == fcntl.LOCK_EX and self._file.mode == 'r':
if op == fcntl.LOCK_EX and self._file.mode == 'r':
# Attempt to upgrade to write lock w/a read-only file.
# If the file were writable, we'd have opened it 'r+'
raise LockROFileError(self.path)
@@ -264,7 +381,7 @@ def _write_log_debug_data(self):
self.old_host = self.host
self.pid = os.getpid()
self.host = socket.getfqdn()
self.host = socket.gethostname()
# write pid, host to disk to sync over FS
self._file.seek(0)
@@ -282,7 +399,8 @@ def _unlock(self):
"""
fcntl.lockf(self._file, fcntl.LOCK_UN,
self._length, self._start, os.SEEK_SET)
self._file.close()
file_tracker.release_fh(self.path)
self._file = None
self._reads = 0
self._writes = 0
@@ -401,7 +519,7 @@ def release_read(self, release_fn=None):
"""Releases a read lock.
Arguments:
release_fn (callable): function to call *before* the last recursive
release_fn (typing.Callable): function to call *before* the last recursive
lock (read or write) is released.
If the last recursive lock will be released, then this will call
@@ -437,7 +555,7 @@ def release_write(self, release_fn=None):
"""Releases a write lock.
Arguments:
release_fn (callable): function to call before the last recursive
release_fn (typing.Callable): function to call before the last recursive
write is released.
If the last recursive *write* lock will be released, then this
@@ -533,10 +651,10 @@ class LockTransaction(object):
Arguments:
lock (Lock): underlying lock for this transaction to be accquired on
enter and released on exit
acquire (callable or contextmanager): function to be called after lock
is acquired, or contextmanager to enter after acquire and leave
acquire (typing.Callable or contextlib.contextmanager): function to be called
after lock is acquired, or contextmanager to enter after acquire and leave
before release.
release (callable): function to be called before release. If
release (typing.Callable): function to be called before release. If
``acquire`` is a contextmanager, this will be called *after*
exiting the nexted context and before the lock is released.
timeout (float): number of seconds to set for the timeout when

View File

@@ -5,6 +5,7 @@
from __future__ import unicode_literals
import contextlib
import fcntl
import os
import struct
@@ -12,12 +13,13 @@
import termios
import textwrap
import traceback
import six
from datetime import datetime
import six
from six import StringIO
from six.moves import input
from llnl.util.tty.color import cprint, cwrite, cescape, clen
from llnl.util.tty.color import cescape, clen, cprint, cwrite
# Globals
_debug = 0
@@ -27,6 +29,7 @@
_msg_enabled = True
_warn_enabled = True
_error_enabled = True
_output_filter = lambda s: s
indent = " "
@@ -89,6 +92,18 @@ def error_enabled():
return _error_enabled
@contextlib.contextmanager
def output_filter(filter_fn):
"""Context manager that applies a filter to all output."""
global _output_filter
saved_filter = _output_filter
try:
_output_filter = filter_fn
yield
finally:
_output_filter = saved_filter
class SuppressOutput:
"""Class for disabling output in a scope using 'with' keyword"""
@@ -165,13 +180,23 @@ def msg(message, *args, **kwargs):
if _stacktrace:
st_text = process_stacktrace(2)
if newline:
cprint("@*b{%s==>} %s%s" % (
st_text, get_timestamp(), cescape(message)))
cprint(
"@*b{%s==>} %s%s" % (
st_text,
get_timestamp(),
cescape(_output_filter(message))
)
)
else:
cwrite("@*b{%s==>} %s%s" % (
st_text, get_timestamp(), cescape(message)))
cwrite(
"@*b{%s==>} %s%s" % (
st_text,
get_timestamp(),
cescape(_output_filter(message))
)
)
for arg in args:
print(indent + six.text_type(arg))
print(indent + _output_filter(six.text_type(arg)))
def info(message, *args, **kwargs):
@@ -187,18 +212,29 @@ def info(message, *args, **kwargs):
st_text = ""
if _stacktrace:
st_text = process_stacktrace(st_countback)
cprint("@%s{%s==>} %s%s" % (
format, st_text, get_timestamp(), cescape(six.text_type(message))
), stream=stream)
cprint(
"@%s{%s==>} %s%s" % (
format,
st_text,
get_timestamp(),
cescape(_output_filter(six.text_type(message)))
),
stream=stream
)
for arg in args:
if wrap:
lines = textwrap.wrap(
six.text_type(arg), initial_indent=indent,
subsequent_indent=indent, break_long_words=break_long_words)
_output_filter(six.text_type(arg)),
initial_indent=indent,
subsequent_indent=indent,
break_long_words=break_long_words
)
for line in lines:
stream.write(line + '\n')
else:
stream.write(indent + six.text_type(arg) + '\n')
stream.write(
indent + _output_filter(six.text_type(arg)) + '\n'
)
def verbose(message, *args, **kwargs):

View File

@@ -10,10 +10,11 @@
import os
import sys
from six import StringIO, text_type
from llnl.util.tty import terminal_size
from llnl.util.tty.color import clen, cextra
from llnl.util.tty.color import cextra, clen
class ColumnConfig:
@@ -108,19 +109,17 @@ def colify(elts, **options):
using ``str()``.
Keyword Arguments:
output (stream): A file object to write to. Default is ``sys.stdout``
indent (int): Optionally indent all columns by some number of spaces
padding (int): Spaces between columns. Default is 2
width (int): Width of the output. Default is 80 if tty not detected
cols (int): Force number of columns. Default is to size to
terminal, or single-column if no tty
tty (bool): Whether to attempt to write to a tty. Default is to
autodetect a tty. Set to False to force single-column
output
method (str): Method to use to fit columns. Options are variable or
uniform. Variable-width columns are tighter, uniform
columns are all the same width and fit less data on
the screen
output (typing.IO): A file object to write to. Default is ``sys.stdout``
indent (int): Optionally indent all columns by some number of spaces
padding (int): Spaces between columns. Default is 2
width (int): Width of the output. Default is 80 if tty not detected
cols (int): Force number of columns. Default is to size to terminal, or
single-column if no tty
tty (bool): Whether to attempt to write to a tty. Default is to autodetect a
tty. Set to False to force single-column output
method (str): Method to use to fit columns. Options are variable or uniform.
Variable-width columns are tighter, uniform columns are all the same width
and fit less data on the screen
"""
# Get keyword arguments or set defaults
cols = options.pop("cols", 0)

View File

@@ -60,9 +60,9 @@
To output an @, use '@@'. To output a } inside braces, use '}}'.
"""
from __future__ import unicode_literals
import re
import sys
from contextlib import contextmanager
import six

View File

@@ -13,15 +13,14 @@
import os
import re
import select
import signal
import sys
import traceback
import signal
from contextlib import contextmanager
from six import string_types
from six import StringIO
from typing import Optional # novm
from types import ModuleType # novm
from typing import Optional # novm
from six import StringIO, string_types
import llnl.util.tty as tty
@@ -34,7 +33,7 @@
# Use this to strip escape sequences
_escape = re.compile(r'\x1b[^m]*m|\x1b\[?1034h')
_escape = re.compile(r'\x1b[^m]*m|\x1b\[?1034h|\x1b\][0-9]+;[^\x07]*\x07')
# control characters for enabling/disabling echo
#
@@ -321,7 +320,10 @@ def __init__(self, file_like):
def unwrap(self):
if self.open:
if self.file_like:
self.file = open(self.file_like, 'w')
if sys.version_info < (3,):
self.file = open(self.file_like, 'w')
else:
self.file = open(self.file_like, 'w', encoding='utf-8') # novm
else:
self.file = StringIO()
return self.file
@@ -434,7 +436,7 @@ class log_output(object):
"""
def __init__(self, file_like=None, echo=False, debug=0, buffer=False,
env=None):
env=None, filter_fn=None):
"""Create a new output log context manager.
Args:
@@ -444,6 +446,8 @@ def __init__(self, file_like=None, echo=False, debug=0, buffer=False,
debug (int): positive to enable tty debug mode during logging
buffer (bool): pass buffer=True to skip unbuffering output; note
this doesn't set up any *new* buffering
filter_fn (callable, optional): Callable[str] -> str to filter each
line of output
log_output can take either a file object or a filename. If a
filename is passed, the file will be opened and closed entirely
@@ -463,6 +467,7 @@ def __init__(self, file_like=None, echo=False, debug=0, buffer=False,
self.debug = debug
self.buffer = buffer
self.env = env # the environment to use for _writer_daemon
self.filter_fn = filter_fn
self._active = False # used to prevent re-entry
@@ -528,20 +533,22 @@ def __enter__(self):
# Sets a daemon that writes to file what it reads from a pipe
try:
# need to pass this b/c multiprocessing closes stdin in child.
input_multiprocess_fd = None
try:
input_multiprocess_fd = MultiProcessFd(
os.dup(sys.stdin.fileno())
)
if sys.stdin.isatty():
input_multiprocess_fd = MultiProcessFd(
os.dup(sys.stdin.fileno())
)
except BaseException:
# just don't forward input if this fails
input_multiprocess_fd = None
pass
with replace_environment(self.env):
self.process = multiprocessing.Process(
target=_writer_daemon,
args=(
input_multiprocess_fd, read_multiprocess_fd, write_fd,
self.echo, self.log_file, child_pipe
self.echo, self.log_file, child_pipe, self.filter_fn
)
)
self.process.daemon = True # must set before start()
@@ -665,7 +672,7 @@ def force_echo(self):
def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
log_file_wrapper, control_pipe):
log_file_wrapper, control_pipe, filter_fn):
"""Daemon used by ``log_output`` to write to a log file and to ``stdout``.
The daemon receives output from the parent process and writes it both
@@ -710,6 +717,7 @@ def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
log_file_wrapper (FileWrapper): file to log all output
control_pipe (Pipe): multiprocessing pipe on which to send control
information to the parent
filter_fn (callable, optional): function to filter each line of output
"""
# If this process was forked, then it will inherit file descriptors from
@@ -722,7 +730,11 @@ def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
# Use line buffering (3rd param = 1) since Python 3 has a bug
# that prevents unbuffered text I/O.
in_pipe = os.fdopen(read_multiprocess_fd.fd, 'r', 1)
if sys.version_info < (3,):
in_pipe = os.fdopen(read_multiprocess_fd.fd, 'r', 1)
else:
# Python 3.x before 3.7 does not open with UTF-8 encoding by default
in_pipe = os.fdopen(read_multiprocess_fd.fd, 'r', 1, encoding='utf-8')
if stdin_multiprocess_fd:
stdin = os.fdopen(stdin_multiprocess_fd.fd)
@@ -764,28 +776,47 @@ def _writer_daemon(stdin_multiprocess_fd, read_multiprocess_fd, write_fd, echo,
raise
if in_pipe in rlist:
# Handle output from the calling process.
line = _retry(in_pipe.readline)()
if not line:
break
line_count = 0
try:
while line_count < 100:
# Handle output from the calling process.
try:
line = _retry(in_pipe.readline)()
except UnicodeDecodeError:
# installs like --test=root gpgme produce non-UTF8 logs
line = '<line lost: output was not encoded as UTF-8>\n'
# find control characters and strip them.
controls = control.findall(line)
line = control.sub('', line)
if not line:
return
line_count += 1
# Echo to stdout if requested or forced.
if echo or force_echo:
sys.stdout.write(line)
sys.stdout.flush()
# find control characters and strip them.
clean_line, num_controls = control.subn('', line)
# Stripped output to log file.
log_file.write(_strip(line))
log_file.flush()
# Echo to stdout if requested or forced.
if echo or force_echo:
output_line = clean_line
if filter_fn:
output_line = filter_fn(clean_line)
sys.stdout.write(output_line)
if xon in controls:
force_echo = True
if xoff in controls:
force_echo = False
# Stripped output to log file.
log_file.write(_strip(clean_line))
if num_controls > 0:
controls = control.findall(line)
if xon in controls:
force_echo = True
if xoff in controls:
force_echo = False
if not _input_available(in_pipe):
break
finally:
if line_count > 0:
if echo or force_echo:
sys.stdout.flush()
log_file.flush()
except BaseException:
tty.error("Exception occurred in writer daemon!")
@@ -837,3 +868,7 @@ def wrapped(*args, **kwargs):
continue
raise
return wrapped
def _input_available(f):
return f in select.select([f], [], [], 0)[0]

View File

@@ -14,10 +14,10 @@
"""
from __future__ import print_function
import os
import signal
import multiprocessing
import os
import re
import signal
import sys
import termios
import time

View File

@@ -1,11 +1,10 @@
# Copyright 2013-2020 Lawrence Livermore National Security, LLC and other
# 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)
#: major, minor, patch version for Spack, in a tuple
spack_version_info = (0, 16, 1)
spack_version_info = (0, 17, 2)
#: String containing Spack version joined with .'s
spack_version = '.'.join(str(v) for v in spack_version_info)

View File

@@ -8,9 +8,9 @@
from llnl.util.lang import memoized
import spack.spec
from spack.compilers.clang import Clang
from spack.spec import CompilerSpec
from spack.util.executable import Executable, ProcessError
from spack.compilers.clang import Clang
class ABI(object):

View File

@@ -0,0 +1,42 @@
# 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 package contains code for creating analyzers to extract Application
Binary Interface (ABI) information, along with simple analyses that just load
existing metadata.
"""
from __future__ import absolute_import
import llnl.util.tty as tty
import spack.paths
import spack.util.classes
mod_path = spack.paths.analyzers_path
analyzers = spack.util.classes.list_classes("spack.analyzers", mod_path)
# The base analyzer does not have a name, and cannot do dict comprehension
analyzer_types = {}
for a in analyzers:
if not hasattr(a, "name"):
continue
analyzer_types[a.name] = a
def list_all():
"""A helper function to list all analyzers and their descriptions
"""
for name, analyzer in analyzer_types.items():
print("%-25s: %-35s" % (name, analyzer.description))
def get_analyzer(name):
"""Courtesy function to retrieve an analyzer, and exit on error if it
does not exist.
"""
if name in analyzer_types:
return analyzer_types[name]
tty.die("Analyzer %s does not exist" % name)

View File

@@ -0,0 +1,116 @@
# 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)
"""An analyzer base provides basic functions to run the analysis, save results,
and (optionally) interact with a Spack Monitor
"""
import os
import llnl.util.tty as tty
import spack.config
import spack.hooks
import spack.monitor
import spack.util.path
def get_analyzer_dir(spec, analyzer_dir=None):
"""
Given a spec, return the directory to save analyzer results.
We create the directory if it does not exist. We also check that the
spec has an associated package. An analyzer cannot be run if the spec isn't
associated with a package. If the user provides a custom analyzer_dir,
we use it over checking the config and the default at ~/.spack/analyzers
"""
# An analyzer cannot be run if the spec isn't associated with a package
if not hasattr(spec, "package") or not spec.package:
tty.die("A spec can only be analyzed with an associated package.")
# The top level directory is in the user home, or a custom location
if not analyzer_dir:
analyzer_dir = spack.util.path.canonicalize_path(
spack.config.get('config:analyzers_dir', '~/.spack/analyzers'))
# We follow the same convention as the spec install (this could be better)
package_prefix = os.sep.join(spec.package.prefix.split('/')[-3:])
meta_dir = os.path.join(analyzer_dir, package_prefix)
return meta_dir
class AnalyzerBase(object):
def __init__(self, spec, dirname=None):
"""
Verify that the analyzer has correct metadata.
An Analyzer is intended to run on one spec install, so the spec
with its associated package is required on init. The child analyzer
class should define an init function that super's the init here, and
also check that the analyzer has all dependencies that it
needs. If an analyzer subclass does not have dependencies, it does not
need to define an init. An Analyzer should not be allowed to proceed
if one or more dependencies are missing. The dirname, if defined,
is an optional directory name to save to (instead of the default meta
spack directory).
"""
self.spec = spec
self.dirname = dirname
self.meta_dir = os.path.dirname(spec.package.install_log_path)
for required in ["name", "outfile", "description"]:
if not hasattr(self, required):
tty.die("Please add a %s attribute on the analyzer." % required)
def run(self):
"""
Given a spec with an installed package, run the analyzer on it.
"""
raise NotImplementedError
@property
def output_dir(self):
"""
The full path to the output directory.
This includes the nested analyzer directory structure. This function
does not create anything.
"""
if not hasattr(self, "_output_dir"):
output_dir = get_analyzer_dir(self.spec, self.dirname)
self._output_dir = os.path.join(output_dir, self.name)
return self._output_dir
def save_result(self, result, overwrite=False):
"""
Save a result to the associated spack monitor, if defined.
This function is on the level of the analyzer because it might be
the case that the result is large (appropriate for a single request)
or that the data is organized differently (e.g., more than one
request per result). If an analyzer subclass needs to over-write
this function with a custom save, that is appropriate to do (see abi).
"""
# We maintain the structure in json with the analyzer as key so
# that in the future, we could upload to a monitor server
if result[self.name]:
outfile = os.path.join(self.output_dir, self.outfile)
# Only try to create the results directory if we have a result
if not os.path.exists(self._output_dir):
os.makedirs(self._output_dir)
# Don't overwrite an existing result if overwrite is False
if os.path.exists(outfile) and not overwrite:
tty.info("%s exists and overwrite is False, skipping." % outfile)
else:
tty.info("Writing result to %s" % outfile)
spack.monitor.write_json(result[self.name], outfile)
# This hook runs after a save result
spack.hooks.on_analyzer_save(self.spec.package, result)

View File

@@ -0,0 +1,33 @@
# 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)
"""A configargs analyzer is a class of analyzer that typically just uploads
already existing metadata about config args from a package spec install
directory."""
import os
import spack.monitor
from .analyzer_base import AnalyzerBase
class ConfigArgs(AnalyzerBase):
name = "config_args"
outfile = "spack-analyzer-config-args.json"
description = "config args loaded from spack-configure-args.txt"
def run(self):
"""
Load the configure-args.txt and save in json.
The run function will find the spack-config-args.txt file in the
package install directory, and read it into a json structure that has
the name of the analyzer as the key.
"""
config_file = os.path.join(self.meta_dir, "spack-configure-args.txt")
return {self.name: spack.monitor.read_file(config_file)}

Some files were not shown because too many files have changed in this diff Show More