summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2021-09-09specs: move to new spec.json format with build provenance (#22845)Nathan Hanford37-682/+1271
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-09Add new package gnuconfig (#25849)Harmen Stoppels1-0/+26
2021-09-09Fix python/packages.py's config_vars for python2 packages (#25839)bernhardkaindl1-9/+11
Analysis mostly by me, fix updated after suggestion by Adam J. Steward Co-authored-by: Bernhard Kaindl <bernhard.kaindl@ait.ac.at>
2021-09-09py-torchmetrics: add v0.5.1 (#25855)Adam J. Stewart1-0/+1
2021-09-08sina: new package (#25448)Esteban Pauli1-0/+78
* 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-08root: Add Version 6.24.06 (#25822)Dr. Christian Tacke1-0/+1
2021-09-08conduit: changes related to hdf5 builds that use cmake (#25719)Cyrus Harrison1-0/+4
2021-09-08mpip: fix package to depends on libunwind when +libunwind (#24007)lukebroskop1-3/+2
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-08Account for bootstrapping from sources niche caseMassimiliano Culpo1-7/+23
This modification accounts for: 1. Bootstrapping from sources using system, non-standard Python 2. Using later an ABI compatible standard Python interpreter
2021-09-08Fix clingo bootstrapping on rhel + ppc64leMassimiliano Culpo1-0/+53
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-08Disable module generation during bootstrappingMassimiliano Culpo5-7/+41
2021-09-08url stats: add `--show-issues` option (#25792)Todd Gamblin70-169/+266
* 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-08trilinos: Gather teko requirements in one place and add conflict for muelu ↵Paul Kuberry1-7/+10
(#25703)
2021-09-08gcc: add patch for sanitizer in gcc<11.1.0 (#25804)acastanedam1-0/+3
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-08perl: Bind us to @gdbm:1.19 due to API change in gdbm@1.20: (#25819)bernhardkaindl1-1/+2
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-08systemc: new package (#25761)Nic McDonald1-0/+28
2021-09-08ParaView: disable externals for fmt and exprtk (#25462)Ethan Stam1-1/+3
2021-09-08trilinos: yak shaving (#25549)Seth R. Johnson1-311/+192
* 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-08Cmake: improve ncurses detection (#25776)Harmen Stoppels1-0/+13
* 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-08Add new version of Alpaka, set minimal CMake version (#25835)iarspider1-0/+2
2021-09-08Make sure we only pull in openssl w/ +ownlibs (#25559)Harmen Stoppels1-3/+3
2021-09-08Update catch2 (#25838)iarspider1-1/+4
2021-09-08mbedtls: trun into a MakefilePackage (#25558)Harmen Stoppels1-34/+49
This is a step towards building cmake with curl using mbedtls instead of openssl; building mbedtls shouldn't require cmake then.
2021-09-08lib/spack/env/cc: tolerate trailing / in elements of $PATH (#25733)bernhardkaindl2-1/+35
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-08Add new versions of nlopt (#25836)Sebastian Ehlert1-2/+6
2021-09-08netlib-lapack: Fixes for IBM XL builds (#25793)QuellynSnead2-2/+99
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-07autoconf package: Fix 2.69 and 2.62 to pass the testsuite (#25701)bernhardkaindl1-1/+21
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-07amrex: support sundials variant in newer amrex versions (#25745)Cody Balos1-6/+12
* 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-07GDAL package: add version 3.3.2 (#25820)Adam J. Stewart1-0/+1
2021-09-07docs: minor grammar fix (#25814)Stephen McDowell1-1/+1
2021-09-07gdbm: fix build issue on macOS (#25811)Adam J. Stewart2-0/+17
2021-09-07garfieldpp: add new package (#25800)Tao Lin1-0/+25
Co-authored-by: Valentin Volkl <valentin.volkl@cern.ch>
2021-09-07fpchecker: add new package (#25550)Ignacio Laguna1-0/+28
2021-09-07mpas-model: add v 7.1 (#25809)Timothy Brown1-1/+2
2021-09-07py-einops: add new package (#25812)Adam J. Stewart1-0/+20
2021-09-06gtk-doc: Fix the testsuite (hangs if gtkdocize was not installed) (#25717)bernhardkaindl1-0/+17
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-06Update pinned OpenSSL version to 1.1.1l (#25787)Scott Wittenburg2-2/+2
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-06perl: fix regressions in the end-of-life revisions (#25801)bernhardkaindl1-1/+13
- 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-06libunistring: apply upstream fix for test suite (#25691)bernhardkaindl1-0/+20
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-06gxsview: new package, an MCNP viewer (#25637)Olivier Cessenat1-0/+46
Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-06mesa: add v21.2.1 (#25715)Billae1-0/+1
2021-09-06uftrace: add new package (#25710)bernhardkaindl1-0/+71
2021-09-06ccache 4.4 errors for old gcc/clang (#25783)Harmen Stoppels1-0/+4
2021-09-06WarpX/HiPACE/openPMD-api: Use when(...) (#25789)Axel Huebl3-39/+50
Use the new with `when()` syntax for variant dependencies.
2021-09-06elfutils: address external linkage failures in 0.185 (#25769)QuellynSnead1-0/+5
2021-09-06Do not allow cray build system patch for later version of otf2 (#25283)lukebroskop1-6/+7
Co-authored-by: Luke Roskop <lroskop@cedar.head.cm.us.cray.com> Co-authored-by: Massimiliano Culpo <massimiliano.culpo@gmail.com>
2021-09-06Ginkgo: add v1.4.0 (#25606)Terry Cojean2-8/+104
* Add a patch to skip unavailable smoke tests.
2021-09-06deal.II: Bump minimum required version for Ginkgo package (#25795)Jean-Paul Pelteret1-0/+1
2021-09-06gzip: add v1.11 (#25797)Michael Kuhn1-0/+1
2021-09-06gdbm: add v1.21 (#25798)Michael Kuhn1-0/+1