Commit graph

24125 commits

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