summaryrefslogtreecommitdiff
path: root/var
AgeCommit message (Collapse)AuthorFilesLines
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
2020-11-16add new version py-wavelets@1.1.1 (#19930)Andreas Baumbach1-0/+3
* add new version py-wavelets@1.1.1 * also update dependencies * Update package.py
2020-11-16graphmap: Fix for aarch64 (#19935)t-nojiri1-0/+2
2020-11-16Added new versions for the py-attrs package (#19938)Matthieu Dorier1-1/+4
2020-11-16[dd4hep] switch to ninja generator to avoid running out of memory … (#19940)vvolkl1-0/+3
* [dd4hep] switch to ninja generator to avoid running out of memory while compiling ddparsers * [dd4hep] format
2020-11-16vmc: Add Version 1-0-p3 (#19942)Dr. Christian Tacke1-1/+2
2020-11-16add new version py-tifffile@2020.10.1 (#19929)Andreas Baumbach1-0/+3
* add new version py-tifffile@2020.10.1 * also update dependencies * Update package.py
2020-11-16py-numpy: Add Fujitsu Fortran compiler to compiler type. (#19858)Tomoki, Karatsu6-0/+224
* py-numpy: Add Fujitsu Fortran compiler to compiler type. py-scipy: Specify Fujitsu to fcompiler types. * Create patches applicable to each version.
2020-11-16singularity: added v3.6.4 (#19939)Dr. Christian Tacke1-1/+2
2020-11-15fix a typo in podio package script (#19928)Joseph Wang1-1/+1
2020-11-14environment-modules: add version 4.6.1 (#19926)Xavier Delaruelle1-1/+2
2020-11-14Bugfixes for lbann sw stack (#19903)Brian Van Essen4-30/+80
* Added guard for setting CUB_DIR to only when cuda variant is true * Added support for OpenMP on OSX platforms * Updated the way that LBANN, Hydrogen, and DiHydrogen handle apple-clang with OpenMP and Clang installed on OS X via brew. * Fixed bug in spec resolution * Fixed merge conflict * Fixed typo * Fixed flake8
2020-11-14Add new package: druid (#19911)darmac1-0/+26
2020-11-14bpp-phyl-omics package (#19734)ilbiondo1-0/+25
2020-11-14PAPI package: added cuda and nvml support (#19896)G-Ragghianti1-2/+10
* Added cuda support * Added cuda and nvml variants * Refined version conflict logic.
2020-11-14bpp-seq-omics package (#19733)ilbiondo1-0/+22
2020-11-14Don't use prefix.lib in tcl/tk/glib/etc (#19761)Adam J. Stewart13-84/+79
2020-11-14nbdkit: new package at v1.23.7 (#19922)darmac1-0/+26