summaryrefslogtreecommitdiff
path: root/var
AgeCommit message (Collapse)AuthorFilesLines
2021-02-17concretizer: require at least a dependency type to say the dependency holdsMassimiliano Culpo1-0/+17
fixes #20784 Similarly to the previous bug, here we were deducing conditions to be imposed on nodes that were not part of the DAG.
2021-02-17concretizer: dependency conditions cannot hold if package is externalMassimiliano Culpo1-0/+3
fixes #20736 Before this one line fix we were erroneously deducing that dependency conditions hold even if a package was external. This may result in answer sets that contain imposed conditions on a node without the node being present in the DAG, hence #20736.
2021-02-17libyogrt: remove conflicts triggered by an invalid value (#20794)Massimiliano Culpo1-4/+2
fixes #20611 The conflict was triggered by an invalid value of the 'scheduler' variant. This causes Spack to error when libyogrt facts are validated by the ASP-based concretizer.
2021-02-17intel-oneapi-mpi: virtual provider support (#20732)Robert Cohn1-0/+14
Set up environment and dependent packages properly when building with intel-oneapi-mpi as a dependency MPI provider (e.g. point to mpicc compiler wrapper).
2021-02-17intel-oneapi-compilers package: correct module file (#20686)Frank Willmore1-0/+10
This properly sets PATH/CPATH/LIBRARY_PATH etc. to make the Spack-generated module file for intel-oneapi-compilers useful (without this, 'icx' would not be found after loading the module file for intel-oneapi-compilers).
2021-02-17fix mpi lib paths, add virtual provides (#20693)Robert Cohn4-0/+21
2021-02-17Remove hard-coded standard C++ library selection and add more releases in ↵Ye Luo1-2/+2
llvm package (#19933) * Restore OS based Clang default choice of C++ standard library. * Add LLVM 11.0.1 release
2021-02-17Add Intel oneAPI packages (#20411)Robert Cohn10-0/+305
This creates a set of packages which all use the same script to install components of Intel oneAPI. This includes: * An inheritable IntelOneApiPackage which knows how to invoke the installation script based on which components are requested * For components which include headers/libraries, an inheritable IntelOneApiLibraryPackage is provided to locate them * Individual packages for DAL, DNN, TBB, etc. * A package for the Intel oneAPI compilers (icx/ifx). This also includes icc/ifortran but these are not currently detected in this PR
2021-02-17package sanity: ensure all variant defaults are allowed values (#20373)Massimiliano Culpo16-20/+20
2021-02-17Tests: enable re-use of post-install tests in smoke tests (#20298)Tamara Dahlgren1-2/+3
2021-02-17concretizer: try hard to obtain all needed variant_possible_value()'s (#20102)Andrew W Elble2-0/+35
Track all the variant values mentioned when emitting constraints, validate them and emit a fact that allows them as possible values. This modification ensures that open-ended variants (variants accepting any string or any integer) are projected to the finite set of values that are relevant for this concretization.
2021-02-17VTK-m: update to specify correct requirements to kokkos (#20097)Robert Maynard1-5/+13
2021-02-17concretizer: each external version is allowed by definition (#20247)Massimiliano Culpo2-0/+16
Registering external versions among the lists of allowed ones generates the correct rules for `version_satisfies`
2021-02-17concretizer: restrict maximizing variant values to MV variants (#20194)Massimiliano Culpo2-0/+23
2021-02-17concretizer: call inject_patches_variants() on the roots of the specs (#20203)Andrew W Elble2-0/+17
As was done in the old concretizer. Fixes an issue where conditionally patched dependencies did not show up in spec (gdal+jasper)
2021-02-17Fix hipcc once more (#20095)Harmen Stoppels6-63/+68
2021-02-17boost: disable find_package's config mode for boost prior to v1.70.0 (#20198)Massimiliano Culpo1-0/+13
2021-02-17Fixes compile time errors (#20006)MichaelLaufer1-2/+4
Co-authored-by: michael laufer <michael.laufer@toganetworks.com>
2021-02-17concretizer: remove ad-hoc rule for external packages (#20193)Massimiliano Culpo2-0/+32
fixes #20040 Matching compilers among nodes has been prioritized in #20020. Selection of default variants has been tuned in #20182. With this setup there is no need to have an ad-hoc rule for external packages. On the contrary it should be removed to prefer having default variant values over more external nodes in the DAG.
2021-02-17concretizer: swap priority of selecting provider and default variant (#20182)Massimiliano Culpo3-0/+45
refers #20040 Before this PR optimization rules would have selected default providers at a higher priority than default variants. Here we swap this priority and we consider variants that are forced by any means (root spec or spec in depends_on clause) the same as if they were with a default value. This prevents the solver from avoiding expected configurations just because they contain directives like: depends_on('pkg+foo') and `+foo` is not the default variant value for pkg.
2021-02-17concretizer: treat target ranges in directives correctly (#19988)Massimiliano Culpo1-0/+15
fixes #19981 This commit adds support for target ranges in directives, for instance: conflicts('+foo', when='target=x86_64:,aarch64:') If any target in a spec body is not a known target the following clause will be emitted: node_target_satisfies(Package, TargetConstraint) when traversing the spec and a definition of the clause will then be printed at the end similarly to what is done for package and compiler versions.
2021-02-17concretizer: prioritize matching compilers over newer versions (#20020)Massimiliano Culpo1-0/+5
fixes #20019 Before this modification having a newer version of a node came at higher priority in the optimization than having matching compilers. This could result in unexpected configurations for packages with conflict directives on compilers of the type: conflicts('%gcc@X.Y:', when='@:A.B') where changing the compiler for just that node is preferred to lower the node version to less than 'A.B'. Now the priority has been switched so the solver will try to lower the version of the nodes in question before changing their compiler.
2021-02-17concretizer: allow a bool to be passed as argument for tests dependencies ↵Massimiliano Culpo3-0/+15
(#20082) refers #20079 Added docstrings to 'concretize' and 'concretized' to document the format for tests. Added tests for the activation of test dependencies.
2021-02-17concretizer: treat conditional providers correctly (#20086)Massimiliano Culpo2-0/+31
refers #20040 This modification emits rules like: provides_virtual("netlib-lapack","blas") :- variant_value("netlib-lapack","external-blas","False"). for packages that provide virtual dependencies conditionally instead of a fact that doesn't account for the condition.
2021-02-17py-ipykernel: fix bug in phase method (#19986)Adam J. Stewart1-2/+3
* py-ipykernel: fix bug in phase method * Fix bug in executable calling
2021-02-17hip support for umpire, chai, raja, camp (#19715)Danny Taller5-43/+93
* create HipPackage base class and do some refactoring * comments and added conflict to raja for openmp with hip
2021-02-17py-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-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-18spack test (#15702)Greg Becker76-47/+1209
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-17concretizer: modified weights for providers and matching for externalsMassimiliano Culpo2-0/+27
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: don't require a provider for virtual deps if spec is externalMassimiliano Culpo1-0/+16
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-17Added unit tests to for regressions on open concretizer bugsMassimiliano Culpo9-2/+144
2020-11-17Add unit tests for dependencies being patched by parentMassimiliano Culpo3-0/+6
2020-11-17tests: verify to handle dependencies conditional on other dependenciesMassimiliano Culpo1-0/+21
2020-11-17concretizer: handle conflicts with compiler ranges correctlyMassimiliano Culpo2-1/+16
As reported, conflicts with compiler ranges were not treated correctly. This commit adds tests to verify the expected behavior for the new concretizer. The new rules to enforce a correct behavior involve: - Adding a rule to prefer the compiler selected for the root package, if no other preference is set - Give a strong negative weight to compiler preferences expressed in packages.yaml - Maximize on compiler AND compiler version match
2020-11-17concretizer: added logic for preferred variantsMassimiliano Culpo1-5/+5
If preferred variants are present, they'll set the default value of a variant. Otherwise the default value is what is encoded in package.py
2020-11-17Build 7036 of Nag Fortran Compiler (#19954)Themos Tsikas1-1/+1
updated sha256sum of download .tgz
2020-11-17clfft: Fix for aarch64 (#19873)t-nojiri1-0/+3
* clfft: Fix for aarch64 * clfft: Changed the patch application conditions. * clfft: Changed Patch file
2020-11-17Metall package: add v0.7 (#19950)Keita Iwabuchi1-0/+2
* Metall: add version 0.2 * Add Metall v0.3 * Update Metall package to v0.4 and v0.5. * Metall package: add v0.6 * Metall package: add v0.7
2020-11-17Support parallel environment builds (#18131)Tamara Dahlgren1-0/+22
As of #13100, Spack installs the dependencies of a _single_ spec in parallel. Environments, when installed, can only get parallelism from each individual spec, as they're installed in order. This PR makes entire environments build in parallel by extending Spack's package installer to accept multiple root specs. The install command and Environment class have been updated to use the new parallel install method. The specs and kwargs for each *uninstalled* package (when not force-replacing installations) of an environment are collected, passed to the `PackageInstaller`, and processed using a single build queue. This introduces a `BuildRequest` class to track install arguments, and it significantly cleans up the code used to track package ids during installation. Package ids in the build queue are now just DAG hashes as you would expect, Other tasks: - [x] Finish updating the unit tests based on `PackageInstaller`'s use of `BuildRequest` and the associated changes - [x] Change `environment.py`'s `install_all` to use the `PackageInstaller` directly - [x] Change the `install` command to leverage the new installation process for multiple specs - [x] Change install output messages for external packages, e.g.: `[+] /usr` -> `[+] /usr (external bzip2-1.0.8-<dag-hash>` - [x] Fix incomplete environment install's view setup/update and not confirming all packages are installed (?) - [x] Ensure externally installed package dependencies are properly accounted for in remaining build tasks - [x] Add tests for coverage (if insufficient and can identity the appropriate, uncovered non-comment lines) - [x] Add documentation - [x] Resolve multi-compiler environment install issues - [x] Fix issue with environment installation reporting (restore CDash/JUnit reports)
2020-11-16[xerces-c] add netaccessor variant, new version (#19927)vvolkl2-2/+17
* [xerces-c] add netaccessor variant, new version * [geant4] add xerces-c netaccessor requirement * [xerces-c] format
2020-11-16[pythia6] needs CFLAGS/FFLAGS=-fcommon when %gcc@10: (#19947)Wouter Deconinck1-0/+5
2020-11-16node-js add gcc 4.8 conflict (#19945)Jordan Ogas1-0/+5
* add gcc 4.8 conflict * commit suggestion Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-11-16llvm: add variant: llvm_dylib (LLVM_BUILD_LLVM_DYLIB:Bool) (#19701)eugeneswalker1-0/+9
2020-11-16WRF: Add version 3.9.1.1 and improve recipe robustness (#19882)Phil Tooley8-101/+1561
* Add WRF 3.9.1.1 and improve recipe robustness * Include version 3.9.1.1 as common benchmarking workload * Fix compilation against recent glibc (detect spack installed libtirpc) * Detect and handle failed compilation (upstream use make -i) * WRF: PR changes round 1 fix build jobs fix maintainers fix pkgconfig dependency use Executable to run compile stage repair some overzealous autoformatting by black * WRF: make recipe py26 compatible * wrf: recipe review changes round 2 * more python 26 fixes
2020-11-16vgm: Switch all URLs to https (#19943)Dr. Christian Tacke1-3/+3
2020-11-16[acts] Add versions 1.2.1 and 2.0.0 (#19936)Hadrien G1-0/+2
2020-11-16texlive: Fix install of @live version (#19941)Ruben Di Battista1-1/+10
The unattended install using the pre-compiled binaries (tl-install) needs a .profile file or it goes in interactive mode blocking the install process forever
2020-11-16Trilinos: update 13.0.1 (#19944)Satish Balay1-1/+1