summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-11-20openldap: enable creation of static libraries (#20013)Martin Oberzalek1-2/+2
2020-11-19Trilinos: Add CUDA relocatable code flag (#19993)psakievich1-0/+7
* Add relocatable code flag to trilinos * Make CUDA RDC and varainat * adjust default of cuda_rdc
2020-11-19mfem: Add support for AmgX, fix to version extensions (#19990)Josh Essman1-8/+28
* fix: leading . is not needed in extension kwarg * mfem: add support for NVIDIA AmgX fix: proper spacing * mfem: use conflict to indicate that AmgX is expected to depend on CUDA
2020-11-19ADIOS2: ~dataman default (#20003)Axel Huebl1-1/+1
Disable dataman by default. It pulls heavy dependencies that are often not needed for HPC (ZMQ) and it currently does not link with popular compilers.
2020-11-19globalarrays: added v5.8 and earlier, simplified recipe (#19999)Massimiliano Culpo1-27/+30
fixes #19966 Global arrays supports GCC 10 since version 5.7.1, therefore a conflict has been added to avoid old releases to error at build-time. Removed the 'blas' and 'lapack' variant since BLAS and LAPACK are always a dependency, and if not specified during configure, a version of these APIs vendored with Global Arrays is built. Fixed a few options in configuration.
2020-11-19Removed accidental command to not expand the tarball. (#20001)Brian Van Essen1-1/+1
2020-11-19cmake: Add Version 3.19.0 (#19996)Dr. Christian Tacke1-1/+2
2020-11-19bump up version for rocm 3.9.0 (#19995)Sreenivasa Murthy Kolam1-1/+10
2020-11-19simde: New package (#19992)Toyohisa Kameyama2-0/+43
* simde: New package * remove 0.5.0.
2020-11-19mvapich2: extended the fabrics variant description (#19860)Nithin Senthil Kumar1-2/+7
The point of this variant is to give the end user an option to use system installed fabrics such as mofed instead of upstream fabrics such as rdma-core. This was found to avoid run time errors on some systems. Co-authored-by: nithintsk <nithintsk@github.com>
2020-11-19spack debug report: print concretizer (#19983)Adam J. Stewart2-0/+4
2020-11-19fujitsu compiler: added / fixed support for compiler flags (#19967)Tomoki, Karatsu2-2/+12
Added flags for: - Debug symbols - C++17 standard Fixed the list of flags for generic optimizations
2020-11-19clang/llvm: fix version detection (#19978)Michael Kuhn3-7/+11
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
2020-11-19llvm: add missing pkgconfig dependency (#19982)Michael Kuhn1-0/+1
When building llvm with CUDA support, it needs to find libffi. Without pkg-config, libffi will not be found.
2020-11-18cuDNN Refactor to accommodate architecture and CUDA version (#19989)Brian Van Essen1-194/+137
* Updated the cuDNN recipe to generate the proper version names for only the arhcitecture that you are on. This prevents the concretizer from selecting a source code version that is incompatible with your current architecture. Additionally, add constraints to ensure that the corresponding CUDA version is properly set as well. * Added maintainer * Fixed renaming for darwin systems * Fixed flake8 * Fixed flake8 * Fixed range typo * Update var/spack/repos/builtin/packages/cudnn/package.py Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> * Fixed style issues Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-18openblas@0.3.11 conflicts with gcc less than 8.3.0 (#19975)eugeneswalker1-0/+3
2020-11-18drop unnecessary tk dependency of py-git-review (#19969)Andreas Baumbach1-1/+0
* seems to have been introduced errorously by users using gitk-based workflows. This should be handled by the git package * fixes build problems on OSX bigsur
2020-11-18openloops: Fix for aarch64 (#19965)t-nojiri1-1/+5
2020-11-18AMD ROCm 3.9.0 release: Bump up version for aomp, roctracer-dev (#19957)arjun-raj-kuppala5-16/+145
* AMD ROCm 3.9.0 release: Bump up version for aomp, roctracer-dev and updates to hip/hip-rocclr * Update package.py
2020-11-18charmpp: various fixes (#19956)Matthias Diener1-10/+23
* charmpp: various fixes - change URLs to https - address deprecated/renamed versions - make it build with the cmake build system * flake8 * Apply suggestions from code review Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-18py-ipykernel: fix bug in phase method (#19986)Adam J. Stewart1-2/+3
* py-ipykernel: fix bug in phase method * Fix bug in executable calling
2020-11-18aws-parallelcluster: 2.10.0 release (#19976)Enrico Usai1-6/+11
Updated boto3 dependency and removed useless comments.
2020-11-18fix error handling for spack test results command (#19987)Greg Becker1-0/+1
2020-11-18hip support for umpire, chai, raja, camp (#19715)Danny Taller7-43/+232
* create HipPackage base class and do some refactoring * comments and added conflict to raja for openmp with hip
2020-11-18add 0.6.0 conduit release and update for branch changes (#19696)Cyrus Harrison1-1/+5
2020-11-18Add "hep" label to high energy physics packages (#19968)vvolkl65-2/+132
* [hep] add hep tag to relevant packages * [lcio] add hep label
2020-11-18root: Add +spectrum variant to enable TSpectrum (#19971)Dr. Christian Tacke1-0/+3
2020-11-18Merge tag 'v0.16.0' into developMassimiliano Culpo2-1/+111
2020-11-18py-ipykernel: fix install (#19617)Axel Huebl1-0/+6
There is a post-install routine in `ipykernel` that needs to be called for proper registration with jupyter.
2020-11-18qt: patch missing includes when +opengl %gcc@10: (#19963)Wouter Deconinck2-0/+42
2020-11-18update CHANGELOG.md for v0.16.0v0.16.0Todd Gamblin1-0/+110
2020-11-18bump version number to 0.16.0Todd Gamblin1-1/+1
2020-11-18clingo: add `master` branch version (#19958)Massimiliano Culpo1-1/+3
* updated @master to point to the master branch * also added a @spack that points to a fixed commit
2020-11-18cmd: add `spack mark` command (#16662)Michael Kuhn8-34/+339
This adds a new `mark` command that can be used to mark packages as either explicitly or implicitly installed. Apart from fixing the package database after installing a dependency manually, it can be used to implement upgrade workflows as outlined in #13385. The following commands demonstrate how the `mark` and `gc` commands can be used to only keep the current version of a package installed: ```console $ spack install pkgA $ spack install pkgB $ git pull # Imagine new versions for pkgA and/or pkgB are introduced $ spack mark -i -a $ spack install pkgA $ spack install pkgB $ spack gc ``` If there is no new version for a package, `install` will simply mark it as explicitly installed and `gc` will not remove it. Co-authored-by: Greg Becker <becker33@llnl.gov>
2020-11-18spack test (#15702)Greg Becker131-676/+3599
Users can add test() methods to their packages to run smoke tests on installations with the new `spack test` command (the old `spack test` is now `spack unit-test`). spack test is environment-aware, so you can `spack install` an environment and then run `spack test run` to run smoke tests on all of its packages. Historical test logs can be perused with `spack test results`. Generic smoke tests for MPI implementations, C, C++, and Fortran compilers as well as specific smoke tests for 18 packages. Inside the test method, individual tests can be run separately (and continue to run best-effort after a test failure) using the `run_test` method. The `run_test` method encapsulates finding test executables, running and checking return codes, checking output, and error handling. This handles the following trickier aspects of testing with direct support in Spack's package API: - [x] Caching source or intermediate build files at build time for use at test time. - [x] Test dependencies, - [x] packages that require a compiler for testing (such as library only packages). See the packaging guide for more details on using Spack testing support. Included is support for package.py files for virtual packages. This does not change the Spack interface, but is a major change in internals. Co-authored-by: Tamara Dahlgren <dahlgren1@llnl.gov> Co-authored-by: wspear <wjspear@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-17Added -level_zero -rocm -opencl flags and sha256 for TAU v2.30. (#19962)sameershende1-1/+18
* Added -level_zero -rocm -opencl flags and sha256 for TAU v2.30. * Removed the depends_on clause for OpenCL and added a variant for OneAPI level_zero. * remove depends_on rocm * remove depends_on rocprofiler Co-authored-by: eugeneswalker <eugenesunsetwalker@gmail.com>
2020-11-17Improve warning message for deprecated attributes in "packages.yaml"Massimiliano Culpo6-28/+67
The deprecatedProperties custom validator now can accept a function to compute a better error message. Improve error/warning message for deprecated properties
2020-11-17Documentation: spack load/environments prefix inspections (#19961)Peter Scheibel3-4/+34
As of #18260, `spack load` and `spack env activate` now use `prefix_inspections` from the modules configuration to decide how to modify environment variables. This updates the modules configuration documentation to describe how to update environment variables with the `prefix_inspections` section. This also updates the `spack load` and environments documentation to refer to the new `prefix_inspections` documentation.
2020-11-17spack load/environments: allow customization of prefix inspections (#18260)Dr. Christian Tacke1-0/+5
`spack load` and `spack env activate` now use the prefix inspections defined in `modules.yaml`. This allows users to customize/override environment variable modifications if desired. If no `prefix_inspections` configuration is present, Spack uses the values in the default configuration.
2020-11-17spack containerize: allow users to customize the base image (#15028)Massimiliano Culpo13-238/+514
This PR reworks a few attributes in the container subsection of spack.yaml to permit the injection of custom base images when generating containers with Spack. In more detail, users can still specify the base operating system and Spack version they want to use: spack: container: images: os: ubuntu:18.04 spack: develop in which case the generated recipe will use one of the Spack images built on Docker Hub for the build stage and the base OS image in the final stage. Alternatively, they can specify explicitly the two base images: spack: container: images: build: spack/ubuntu-bionic:latest final: ubuntu:18.04 and it will be up to them to ensure their consistency. Additional changes: * This commit adds documentation on the two approaches. * Users can now specify OS packages to install (e.g. with apt or yum) prior to the build (previously this was only available for the finalized image). * Handles to avoid an update of the available system packages have been added to the configuration to facilitate the generation of recipes permitting deterministic builds.
2020-11-17concretizer: modified weights for providers and matching for externalsMassimiliano Culpo6-35/+56
This commit address the case of concretizing a root spec with a transitive conditional dependency on a virtual package, provided by an external. Before these modifications default variant values for the dependency bringing in the virtual package were not respected, and the external package providing the virtual was added to the DAG. The issue stems from two facts: - Selecting a provider has higher precedence than selecting default variants - To ensure that an external is preferred, we used a negative weight To solve it we shift all the providers weight so that: - External providers have a weight of 0 - Non external provider have a weight of 10 or more Using a weight of zero for external providers is such that having an external provider, if present, or not having a provider at all has the same effect on the higher priority minimization. Also fixed a few minor bugs in concretize.lp, that were causing spurious entries in the final answer set. Cleaned concretize.lp from leftover rules.
2020-11-17concretizer: maximize the number of default values used for a single variantMassimiliano Culpo2-0/+17
If a the default of a multi-valued variant is set to multiple values either in package.py or in packages.yaml we need to ensure that all the values are present in the concretized spec. Since each default value has a weight of 0 and the variant value is set implicitly by the concretizer we need to add a rule to maximize on the number of default values that are used.
2020-11-17concretizer: don't require a provider for virtual deps if spec is externalMassimiliano Culpo5-3/+33
This commit introduces a new rule: real_node(Package) :- not external(Package), node(Package). that permits to distinguish between an external node and a real node that shouldn't trim dependency. It solves the case of concretizing ninja with an external Python.
2020-11-17concretizer: spec_clauses() shouldn't emit node_compiler_hard for rule bodies.Todd Gamblin1-2/+0
`node_compiler_hard()` means that something explicitly asked for a node's compiler to be set -- i.e., it's not inherited, it's required. We're generating this in spec_clauses even for specs in rule bodies, which results in conditions like this for optional dependencies: In py-torch/package.py: depends_on('llvm-openmp', when='%apple-clang +openmp') In the generated ASP: declared_dependency("py-torch","llvm-openmp","build") :- node("py-torch"), variant_value("py-torch","openmp","True"), node_compiler("py-torch","apple-clang"), node_compiler_hard("py-torch","apple-clang"), node_compiler_version_satisfies("py-torch","apple-clang",":"). The `node_compiler_hard` there means we would have to *explicitly* set py-torch's compiler to trigger the llvm-openmp dependency, rather than just letting it be set by preferences. This is wrong; the dependency should be there regardless of how the compiler was set. - [x] remove fn.node_compiler_hard() call from spec_clauses when generating rule body clauses.
2020-11-17concretizer: don't generate rules for empty version listsTodd Gamblin1-0/+4
If the version list passed to one_of_iff is empty, it still generates a rule like this: node_compiler_version_satisfies("fujitsu-mpi", "arm", ":") :- 1 { } 1. 1 { } 1 :- node_compiler_version_satisfies("fujitsu-mpi", "arm", ":"). The cardinality rules on the right and left above are never satisfiale, and these rules do nothing. - [x] Skip generating any rules at all for empty version lists.
2020-11-17concretizer: add a rule to avoid cycles in the graph of dependenciesMassimiliano Culpo2-5/+9
2020-11-17External packages have a consistent hash across different concretizersMassimiliano Culpo2-1/+12
2020-11-17Don't fail if MV variants have a tuple as default valueMassimiliano Culpo1-1/+2
2020-11-17Fixup for target preferencesMassimiliano Culpo2-3/+11
2020-11-17Added unit tests to for regressions on open concretizer bugsMassimiliano Culpo11-8/+306