Commit graph

20836 commits

Author SHA1 Message Date
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