Commit graph

29310 commits

Author SHA1 Message Date
kwryankrattiger
229ee7cad9
Paraview rocm (#34790)
* paraview: add `rocm` variant

This conflicts with CUDA and requires at least ParaView 5.11.0. More
dependencies are also needed.

* E4S: Add ParaView for ROCm and CUDA stacks

* DAV SDK: Update ParaView version and GPU variants

* Verify using hipcc vs amdclang++ for newer hip

Co-authored-by: Ben Boeckel <ben.boeckel@kitware.com>
2023-01-13 12:41:57 -06:00
Marco De La Pierre
85e2fb0c4d
Adding py-strawberryfields from Xanadu, and its deps (#34849)
* adding 1st version of py-strawberryfields

* py-strawberryfields: minor edit

* added backbone for 4x new SF dependencies

* edits to SF and its 4x new deps

* added all deps for SF

* added one version to py-lark-parser

* py-quantum-xir with tarball from github

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

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

* updated version for py-quantum-xir : pypy fixed

* py-pennylane: added pythonpackage.maintainers, too

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
2023-01-13 10:39:29 -08:00
Todd Gamblin
88a604e7f4
config: make path replacements lazy (#34758)
Currently, all of the replacements in `spack.util.path.replacements()` get evaluated for
each replacement. This makes it easy to get bootstrap issues, because config is used
very early on in Spack.

Right now, if I run `test_autotools_gnuconfig_replacement_no_gnuconfig` on my M1 mac, I
get the circular reference error below. This fixes the issue by making all of the path
replacements lazy lambdas.

As a bonus, this cleans up the way we do substitution for `$env` -- it's consistent with
other substitutions now.

- [x] make all path `replacements()` lazy
- [x] clean up handling of `$env`

```console
> spack unit-test -k test_autotools_gnuconfig_replacement_no_gnuconfig

...

==> [2022-12-31-15:44:21.771459] Error: AttributeError:

The 'autotools-config-replacement' package cannot find an attribute while trying to build from sources. This might be due to a change in Spack's package format to support multiple build-systems for a single package. You can fix this by updating the build recipe, and you can also report the issue as a bug. More information at https://spack.readthedocs.io/en/latest/packaging_guide.html#installation-procedure

/Users/gamblin2/src/spack/lib/spack/spack/package_base.py:1332, in prefix:
       1330    @property
       1331    def prefix(self):
  >>   1332        """Get the prefix into which this package should be installed."""
       1333        return self.spec.prefix

Traceback (most recent call last):
  File "/Users/gamblin2/src/spack/lib/spack/spack/build_environment.py", line 1030, in _setup_pkg_and_run
    kwargs["env_modifications"] = setup_package(
                                  ^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/build_environment.py", line 757, in setup_package
    set_module_variables_for_package(pkg)
  File "/Users/gamblin2/src/spack/lib/spack/spack/build_environment.py", line 596, in set_module_variables_for_package
    m.std_cmake_args = spack.build_systems.cmake.CMakeBuilder.std_args(pkg)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/build_systems/cmake.py", line 241, in std_args
    define("CMAKE_INSTALL_PREFIX", pkg.prefix),
                                   ^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/package_base.py", line 1333, in prefix
    return self.spec.prefix
           ^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/spec.py", line 1710, in prefix
    self.prefix = spack.store.layout.path_for_spec(self)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/directory_layout.py", line 336, in path_for_spec
    path = self.relative_path_for_spec(spec)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/directory_layout.py", line 106, in relative_path_for_spec
    projection = spack.projections.get_projection(self.projections, spec)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/projections.py", line 13, in get_projection
    if spec.satisfies(spec_like, strict=True):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/spec.py", line 3642, in satisfies
    if not self.virtual and other.virtual:
           ^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/spec.py", line 1622, in virtual
    return spack.repo.path.is_virtual(self.name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/repo.py", line 890, in is_virtual
    return have_name and pkg_name in self.provider_index
                                     ^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/repo.py", line 770, in provider_index
    self._provider_index.merge(repo.provider_index)
                               ^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/repo.py", line 1096, in provider_index
    return self.index["providers"]
           ~~~~~~~~~~^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/repo.py", line 592, in __getitem__
    self._build_all_indexes()
  File "/Users/gamblin2/src/spack/lib/spack/spack/repo.py", line 607, in _build_all_indexes
    self.indexes[name] = self._build_index(name, indexer)
                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/spack/repo.py", line 616, in _build_index
    index_mtime = self.cache.mtime(cache_filename)
                  ^^^^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/llnl/util/lang.py", line 826, in __getattr__
    return getattr(self.instance, name)
                   ^^^^^^^^^^^^^
  File "/Users/gamblin2/src/spack/lib/spack/llnl/util/lang.py", line 825, in __getattr__
    raise AttributeError()
AttributeError
```
2023-01-13 10:27:07 -08:00
Seth R. Johnson
33859d3d5f
Celeritas: new versions 0.1.4 and 0.2.0 (#34883) 2023-01-13 09:44:29 -08:00
Brian Van Essen
68ce49a57b
libfabric can now find external installation (#33796)
* Added support for libfabric to find an external installation and
identify variants supported.

* Change the fabrics definition to only include CXI when on a cray
system with a libfabric-based slingshot network.

* Added a conflict when trying to build the CXI fabric value since it is
only available as closed source at this time.
2023-01-12 23:53:33 -08:00
John W. Parent
92b7f63365
Ninja package: resolve circular dependency (#34887)
#33128 Introduces a dependency on re2c into the Ninja build recipe.
This is problematic on Windows as we use CMake to build re2c, and
Ninja to drive the CMake build. This PR resolves this issue by
adding a variant to toggle the use of re2c with ninja.
2023-01-12 17:31:58 -08:00
Adam J. Stewart
a1930e36e7
py-matplotlib: add v3.6.3 (#34903) 2023-01-12 16:23:20 -08:00
Jeremy L Thompson
897f812a70
ratel - add version 0.2.1 (#34895)
* ratel - add version 0.2.0
* ratel - use patch release 0.2.1 b/c tet test bug
2023-01-12 14:01:37 -08:00
Derek Ryan Strong
b7f41638fd
Add fpart package (#34896)
* Add fpart package
* Use default autoreconf implementation
* Switch copyright year
2023-01-12 12:52:57 -08:00
Brian Van Essen
e804671fc0
bugfix rmda-core external find library (#34484)
* Added a more robust check for an external version of the library.
Included a guard to identify when the library gives no discernible
version information and then to substitute with "unknown_ver"
identifier.
2023-01-12 11:41:17 -08:00
Tamara Dahlgren
c0b458e38a
Documentation: Add installation policy to packaging guide (#34878) 2023-01-12 11:01:35 -08:00
eugeneswalker
deef4177f7
sed %oneapi@2023.0.0: -Wno-error=incompatible-function-pointer-types (#34898) 2023-01-12 10:53:00 -08:00
John W. Parent
a1c840b3e8
cURL package: add support for building on Windows (#30169) 2023-01-12 10:23:57 -08:00
Mosè Giordano
57e9e77475
gmp: Add cxx variant, and require it in libint package (#34881) 2023-01-12 10:22:56 -08:00
Benjamin Meyers
d260fa59c9
New package: py-fastfold (#34354)
* New package: py-fastfold

* Fix dependencies for py-fastfold

* [py-fastfold] fix types

* [py-fastfold] relax strict versions

* Fix spack style manually

* [py-fastfold] relax python and py-requests upper bounds

* [py-fastfold] remove bad/unecessary depends_on
2023-01-12 12:20:49 -06:00
Wouter Deconinck
0da69a45e3
edm4hep: depends_on nlohmann-json (#34888)
We may pick this up transitively through `root`, but it makes sense to be explicit too.
2023-01-12 09:38:18 -08:00
eugeneswalker
153b79c2ed
loki%oneapi@2023.0.0: -Wno-error=dynamic-exception-spec (#34899) 2023-01-12 09:06:38 -08:00
Harmen Stoppels
ffae0db115
Add dummy perl+open variant, use it in external find, require it in libxcrypt (#34867) 2023-01-12 16:41:31 +01:00
Benjamin S. Kirk
37c8ebcafd
updating checksummed versions for podman (#34788)
Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2023-01-12 06:42:27 -08:00
snehring
03fc502da5
r-ncdf4: adding new version 1.21 (#34890) 2023-01-11 16:47:44 -08:00
Wouter Deconinck
b73884d541
gaudi: new versions 36.8, 36.9 (#34822)
* gaudi: new versions 36.8, 36.9
  As of 36.8, the tests use catch2 ([commit](https://gitlab.cern.ch/gaudi/Gaudi/-  /commit/f2cafb5c9d04c9d497d49182258aa3a0440622c0)).
* gaudi: still depends_on fmt@:8
2023-01-11 13:05:00 -08:00
Sam Reeve
43f337d993
Add version 1.1 for ExaCA (#34833) 2023-01-11 12:47:15 -08:00
Christopher Christofi
a8188a9f14
perl-pathtools: add 3.75 (#34787) 2023-01-11 11:51:05 -08:00
Cameron Stanavige
c19638bb0d
unifyfs: new release v1.0.1 (#34876)
* unifyfs: new release v1.0.1
  Add 1.0.1 release
  Add new variant for new configure time option

Co-authored-by: CamStan <CamStan@users.noreply.github.com>
2023-01-11 11:33:04 -08:00
Massimiliano Culpo
ccb9969b64
Fix issue when generating compiler hierarchy (#34873)
- [x] Fix bug affecting generation of Lmod modules
2023-01-11 10:09:02 -08:00
Manuela Kuhn
fa93b5219c
py-virtualenv: add 20.17.1 (#34859) 2023-01-11 10:08:02 -08:00
Christopher Christofi
42a0cf9b96
py-fasteners: add 0.15 (#34865) 2023-01-11 11:50:00 -06:00
Sreenivasa Murthy Kolam
4b67153613
Update ROCm recipes for 5.3.3 release. (#34862)
* initial commit for 5.3.3 release
* update rocm-openmp-extras for rocm-5.3.3 release
* address review comments and failures
2023-01-11 09:47:27 -08:00
vucoda
c65c944853
Update py-libconf package to newer major version (#34836) 2023-01-11 09:43:06 -08:00
Mike VanDenburgh
ea6608edde
Bump memory requests for e4s/ml generate jobs (#34648) 2023-01-11 10:41:42 -07:00
Harmen Stoppels
07499f2355
fix: python tix detection blocks reuse (#34768)
Now that the `tix` variant is conditional, it should also be detected
condititionally, otherwise the spec is invalid and cannot be used during
concretization.
2023-01-11 10:04:20 -07:00
Wileam Y. Phan
781c4823e6
Add fpm 0.7.0 (#34871) 2023-01-11 07:32:39 -08:00
QuellynSnead
71a609b2f4
trilinos: Limit application of "-fuse-ld=gold" for %cce builds (#34875) 2023-01-11 05:47:35 -08:00
Alex Hedges
74595de359
shellcheck: add comments about installing binary (#34877)
ShellCheck is installed with a downloaded binary instead of being
compiled from source, and there should be comments to point out this
unorthodox approach.
2023-01-11 01:17:25 -08:00
eugeneswalker
9d70f6e6c7
protected runner jobs at uo: trust e4s-uo signing key (#34828) 2023-01-10 18:18:38 -07:00
John W. Parent
7365d138fb
Build systems: add MSBuild and update NMake (#34659)
Add/update build systems used to build packages on Windows.
2023-01-10 17:03:15 -08:00
Glenn Johnson
b94030cc5d
plink: add new version (#34741)
The distribution of this has jumped around a bit. I left the previous
versions as-is.
2023-01-10 16:55:45 -08:00
Harmen Stoppels
4414161787
numactl: remove bash from numactl (#34798)
It doesn't require bash on any registered version, and the file is executable and has a /bin/sh shebang.
2023-01-10 16:22:52 -08:00
Erik Schnetter
881a0d4462
runc: New version 1.1.4 (#34815) 2023-01-10 16:07:56 -08:00
Alex Hedges
8d83af732a
shellcheck: add new package (#34831) 2023-01-10 15:31:20 -08:00
Benjamin S. Kirk
a5a2918202
autoconf: fix for long perl shebangs with autoconf@2.70+ (#34331)
autoconf 2.70 uses use warnings instead of -w so that PERL=/usr/bin/env perl can be passed, but we want to fix absolute paths anyhow through sbang upon install. So, we stick to patching the one perl script that's used during the build.
2023-01-10 14:27:29 -08:00
David Zmick
8dc3a09104
ruby-gist: add new package (#34852) 2023-01-10 14:14:49 -08:00
Scott Wittenburg
8f6f77ac9f
gitlab ci: fix tags for pipeline generation jobs (#34789)
Gitlab does not merge lists when a job extends two other definitions
that include the same list (e.g. tags).  Also, it merges dictionaries
as long as the keys are distinct, but just takes the last mentioned
value when there are key collisions.

This change makes sure that when different tags are needed by a
pipeline, the ones we want are actually provided.  It also changes
the example stack to better follow this pattern so we do not lead
developers astray in the future.
2023-01-10 10:06:26 -07:00
Wouter Deconinck
d0bd8f74cf
root: conflicts +ipo (#34842)
ROOT does not build successfully with `+ipo`, with symptoms as in https://github.com/root-project/root/issues/10777, and discussed most recently in https://github.com/root-project/root/issues/11135. As indicated there, LTO is not a supported build configuration. As of 6.26.10 there is no estimate for a fix since upstream is still broken.
2023-01-10 17:09:10 +01:00
Massimiliano Culpo
9d00e7d15d
Remove **kwargs from function signatures in llnl.util.filesystem (#34804)
Since we dropped support for Python 2.7, we can embrace using keyword only arguments 
for many functions in Spack that use **kwargs in the function signature. Here this is done 
for the llnl.util.filesystem module.

There were a couple of bugs lurking in the code related to typo-like errors when retrieving
from kwargs. Those have been fixed as well.
2023-01-10 14:23:42 +01:00
Alex Richert
cc333b600c
Add variants for overriding ESMF_OS and ESMF_COMM for ESMF package (#34808)
* Add variants for overriding ESMF_OS and ESMF_COMM for ESMF package

* Add doco for esmf_os/esmf_comm variants
2023-01-10 14:04:16 +01:00
Pranav Sivaraman
006969a8cd
xsbench: update version and add cuda support (#34597)
* Update xsbench to version 20

XSBench version 20 has implementations for new
architectures and accelerators.

* Added CUDA support for XSBench

* Fixed style issues
2023-01-10 13:59:30 +01:00
Axel Huebl
d2618cd640
WarpX 23.01 (#34793)
Update `warpx` & `py-warpx` to the latest release.
2023-01-10 04:47:25 -08:00
Jonathon Anderson
807b87068a
style: Run mypy last (#34687) 2023-01-10 04:37:41 -08:00
Jonathon Anderson
6879c35d1c
FileCache: Delete the new cache file on exception (#34623)
The code in FileCache for write_transaction attempts to delete the temporary file when an exception occurs under the context by calling shutil.rmtree. However, rmtree only operates on directories while the rest of FileCache uses normal files. This causes an empty file to be written to the cache key when unneeded.

Use os.remove instead which operates on normal files.

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
2023-01-10 13:36:12 +01:00