summaryrefslogtreecommitdiff
path: root/var
AgeCommit message (Collapse)AuthorFilesLines
2021-05-22Enforce uniqueness of the version_weight atom per nodeMassimiliano Culpo1-0/+17
fixes #22565 This change enforces the uniqueness of the version_weight atom per node(Package) in the DAG. It does so by applying FTSE and adding an extra layer of indirection with the possible_version_weight/2 atom. Before this change it may have happened that for the same node two different version_weight/2 were in the answer set, each of which referred to a different spec with the same version, and their weights would sum up. This lead to unexpected result like preferring to build a new version of an external if the external version was older.
2021-05-22Externals are preferred even when they have non-default variant valuesMassimiliano Culpo2-0/+25
fixes #22596 Variants which are specified in an external spec are not scored negatively if they encode a non-default value.
2021-05-22clingo: modify recipe for bootstrapping (#22354)Massimiliano Culpo2-4/+26
* clingo: modify recipe for bootstrapping Modifications: - clingo builds with shared Python only if ^python+shared - avoid building the clingo app for bootstrapping - don't link to libpython when bootstrapping * Remove option that breaks on linux * Give more hints for the current Python * Disable CLINGO_BUILD_PY_SHARED for bootstrapping * bootstrapping: try to detect the current python from std library This is much faster than calling external executables * Fix compatibility with Python 2.6 * Give hints on which compiler and OS to use when bootstrapping This change hints which compiler to use for bootstrapping clingo (either GCC or Apple Clang on MacOS). On Cray platforms it also hints to build for the frontend system, where software is meant to be installed. * Use spec_for_current_python to constrain module requirement (cherry picked from commit d5fa509b072f0e58f00eaf81c60f32958a9f1e1d)
2021-05-22ASP-based solver: model disjoint sets for multivalued variants (#22534)Massimiliano Culpo1-0/+15
* ASP-based solver: avoid adding values to variants when they're set fixes #22533 fixes #21911 Added a rule that prevents any value to slip in a variant when the variant is set explicitly. This is relevant for multi-valued variants, in particular for those that have disjoint sets of values. * Ensure disjoint sets have a clear semantics for external packages
2021-05-22Channelflow: Fix the package. (#22483)Rémi Lacroix1-1/+1
A search and replace went wrong in 2264e30d99d8b9fbdec8fa69b594e53d8ced15a1. Thanks to @wadudmiah who reported this issue.
2021-05-21clingo-bootstrap: account for cray platform (#22460)Massimiliano Culpo1-3/+7
(cherry picked from commit 138312efabd534fa42d1a16e172e859f0d2b5842)
2021-05-21clingo: fix typo (#22444)Maxim Belkin1-1/+1
2021-05-21clingo: added a package with option for bootstrapping clingo (#20652)Massimiliano Culpo2-2/+66
* clingo/clingo-bootstrap: added a package with option for bootstrapping clingo package builds in Release mode uses GCC options to link libstdc++ and libgcc statically * clingo-bootstrap: apple-clang options to bootstrap statically on darwin * clingo: fix the path of the Python interpreter In case multiple Python versions are in the same prefix (e.g. when clingo is built against an external Python), it may happen that the Python used by CMake does not match the corresponding node in the current spec. This is fixed here by defining "Python_EXECUTABLE" properly as a hint to CMake. * clingo: the commit for "spack" version has been updated.
2021-05-21Clingo: fix missing import (#21364)Adam J. Stewart1-0/+1
2021-05-21clingo: prefer master branchTodd Gamblin1-1/+1
Most people installing `clingo` with Spack are going to be doing it to use the new concretizer, and that requires the `master` branch. - [x] make `master` the default so we don't have to keep telling people to install `clingo@master`. We'll update the preferred version when there's a new release.
2021-05-21Improve error message for inconsistencies in package.py (#21811)Massimiliano Culpo2-0/+26
* Improve error message for inconsistencies in package.py Sometimes directives refer to variants that do not exist. Make it such that: 1. The name of the variant 2. The name of the package which is supposed to have such variant 3. The name of the package making this assumption are all printed in the error message for easier debugging. * Add unit tests (cherry picked from commit 7226bd64dc3b46a1ed361f1e9d7fb4a2a5b65200)
2021-05-10use package supplied autogen.sh (#20319)Phil Tooley1-0/+6
2021-02-19Resolve (post-cherry-picking) flake8 errorsTamara Dahlgren1-2/+4
2021-02-17intel-oneapi-compilers/mpi: add module support (#20808)Frank Willmore2-0/+48
Facilitate running intel-oneapi-mpi outside of Spack (set PATH, LD_LIBRARY_PATH, etc. appropriately). Co-authored-by: Robert Cohn <rscohn2@gmail.com>
2021-02-17intel-oneapi-compilers: add to LD_LIBRARY_PATH so that it finds libimf.so ↵Frank Willmore1-22/+31
(#20717) * add to LD_LIBRARY_PATH so that it finds libimf.so * amrex: fix handling of CUDA arch (#20786) * amrex: fix handling of CUDA arch * amrex: fix style * amrex: fix bug * Update var/spack/repos/builtin/packages/amrex/package.py * Update var/spack/repos/builtin/packages/amrex/package.py Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> * ecp-data-vis-sdk: Combine the vis and io SDK packages (#20737) This better enables the collective set to be deployed togethor satisfying eachothers dependencies * r-sf: fix dependency error (#20898) * improve documentation for Rocm (hip amd builds) (#20812) * improve documentation * astyle: Fix makefile for install parameter (#20899) * llvm-doe: added new package (#20719) The package contains duplicated code from llvm/package.py, will supersede solve. * r-e1071: added v1.7-4 (#20891) * r-diffusionmap: added v1.2.0 (#20881) * r-covr: added v3.5.1 (#20868) * r-class: added v7.3-17 (#20856) * py-h5py: HDF5_DIR is needed for ~mpi too (#20905) For the `~mpi` variant, the environment variable `HDF5_DIR` is still required. I moved this command out of the `+mpi` conditional. * py-hovorod: fix typo on variant name in conflicts directive (#20906) * fujitsu-fftw: Add new package (#20824) * pocl: added v1.6 (#20932) Made version 1.5 or lower conflicts with a64fx. * PCL: add new package (#20933) * r-rle: new package (#20916) Common 'base' and 'stats' methods for 'rle' objects, aiming to make it possible to treat them transparently as vectors. * r-ellipsis: added v0.3.1 (#20913) * libconfig: add build dependency on texinfo (#20930) * r-flexmix: add v2.3-17 (#20924) * r-fitdistrplus: add v1.1-3 (#20923) * r-fit-models: add v0.64 (#20922) * r-fields: add v11.6 (#20921) * r-fftwtools: add v0.9-9 (#20920) * r-farver: add v2.0.3 (#20919) * r-expm: add v0.999-6 (#20918) * cln: add build dependency on texinfo (#20928) * r-expint: add v0.1-6 (#20917) * r-envstats: add v2.4.0 (#20915) * r-energy: add v1.7-7 (#20914) * r-ellipse: add v0.4.2 (#20912) * py-fiscalyear: add v0.3.0 (#20911) * r-ecp: add v3.1.3 (#20910) * r-plotmo: add v3.6.0 (#20909) * Improve gcc detection in llvm. (#20189) Co-authored-by: Tom Scogland <tom.scogland@gmail.com> Co-authored-by: Thomas Green <ca-tgreen@gw4a64fxlogin00.head.gw4.metoffice.gov.uk> * hatchet: updated urls (#20908) * py-anuga: add new package (#20782) * libvips: added v8.10.5 (#20902) * libzmq: add platform conditions to libbsd dependency (#20893) * r-dtw: add v1.22-3 (#20890) * r-dt: add v0.17 (#20889) * r-dosnow: add v1.0.19 (#20888) * add version 1.0.16 to r-doparallel (#20886) * add version 1.3.7 to r-domc (#20885) * add version 0.9-15 to r-diversitree (#20884) * add version 1.3-3 to r-dismo (#20883) * add version 0.6.27 to r-digest (#20882) * add version 1.5 to r-rngtools (#20887) * add version 1.5.8 to r-dicekriging (#20877) * add version 1.4.2 to r-httr (#20876) * add version 1.28 to r-desolve (#20875) * add version 2.2-5 to r-deoptim (#20874) * add version 0.2-3 to r-deldir (#20873) * add version 1.0.0 to r-crul (#20870) * add version 1.1.0.1 to r-crosstalk (#20869) * add version 1.0-1 to r-copula (#20867) * add version 5.0.2 to r-rcppparallel (#20866) * add version 2.0-1 to r-compositions (#20865) * add version 0.4.10 to r-rlang (#20796) * add version 0.3.6 to r-vctrs (#20878) * amrex: add ROCm support (#20809) * add version 2.0-0 to r-colorspace (#20864) * add version 1.3-1 to r-coin (#20863) * add version 0.19-4 to r-coda (#20862) * add version 1.3.7 to r-clustergeneration (#20861) * add version 0.3-58 to r-clue (#20860) * add version 0.7.1 to r-clipr (#20859) * add version 2.2.0 to r-cli (#20858) * add version 0.4-3 to r-classint (#20857) * add version 0.1.2 to r-globaloptions (#20855) * add version 2.3-56 to r-chron (#20854) * add version 0.4.10 to r-checkpoint (#20853) * add version 2.0.0 to r-checkmate (#20852) * add version 1.18.1 to r-catools (#20850) * add version 1.2.2.2 to r-modelmetrics (#20849) * add version 3.0-4 to r-cardata (#20847) * add version 1.0.1 to r-caracas (#20846) * r-lifecycle: new package at v0.2.0 (#20845) * add version 3.0-10 to r-car (#20844) * add version 3.4.5 to r-processx (#20843) * add version 1.5-12.2 to r-cairo (#20842) * add version 0.2.3 to r-cubist (#20841) * add version 2.6 to r-rmarkdown (#20838) * add version 1.2.1 to r-blob (#20819) * add version 4.0.4 to r-bit (#20818) * add version 2.4-1 to r-bio3d (#20816) * add version 0.4.2.3 to r-bibtex (#20815) * add version 3.1-4 to r-bayesm (#20807) * add version 1.2.1 to r-backports (#20806) * add version 2.0.3 to r-argparse (#20805) * add version 5.4-1 to r-ape (#20804) * add version 0.8-18 to r-amap (#20803) * r-pixmap: added new package (#20795) * zoltan: source code location change (#20787) * refactor path logic * added some paths to make compilers and libs discoverable * add to LD_LIBRARY_PATH so that it finds libimf.so and cleanup PEP8 * refactor path logic * adding paths to LIBRARY_PATH so compiler wrappers will find -lmpi * added vals for CC=icx, CXX=icpx, FC=ifx to generated module * back out changes to intel-oneapi-mpi, save for separate PR * Update var/spack/repos/builtin/packages/intel-oneapi-compilers/package.py path is joined in _ld_library_path() Co-authored-by: Robert Cohn <rscohn2@gmail.com> * set absolute paths to icx,icpx,ifx * dang close parenthesis Co-authored-by: Robert Cohn <rscohn2@gmail.com> Co-authored-by: mic84 <mrosso@lbl.gov> Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja> Co-authored-by: Chuck Atkins <chuck.atkins@kitware.com> Co-authored-by: darmac <xiaojun2@hisilicon.com> Co-authored-by: Danny Taller <66029857+dtaller@users.noreply.github.com> Co-authored-by: Tomoyasu Nojiri <68096132+t-nojiri@users.noreply.github.com> Co-authored-by: Shintaro Iwasaki <siwasaki@anl.gov> Co-authored-by: Glenn Johnson <glenn-johnson@uiowa.edu> Co-authored-by: Kelly (KT) Thompson <KineticTheory@users.noreply.github.com> Co-authored-by: Henrique Mendonça <henrique@users.noreply.github.com> Co-authored-by: h-denpo <57649496+h-denpo@users.noreply.github.com> Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com> Co-authored-by: Thomas Green <tomgreen66@hotmail.com> Co-authored-by: Tom Scogland <tom.scogland@gmail.com> Co-authored-by: Thomas Green <ca-tgreen@gw4a64fxlogin00.head.gw4.metoffice.gov.uk> Co-authored-by: Abhinav Bhatele <bhatele@cs.umd.edu> Co-authored-by: a-saitoh-fj <63334055+a-saitoh-fj@users.noreply.github.com> Co-authored-by: QuellynSnead <quellyn@lanl.gov>
2021-02-17adding environment to OneMKL packages so that examples will build (#21377)Frank Willmore2-0/+42
2021-02-17llvm: "master" branch is now "main" branch (#21411)eugeneswalker1-1/+1
2021-02-17[WIP] relocate.py: parallelize test replacement logic (#19690)Nathan Hanford1-0/+35
* sbang pushed back to callers; star moved to util.lang * updated unit test * sbang test moved; local tests pass Co-authored-by: Nathan Hanford <hanford1@llnl.gov>
2021-02-17py-hovorod: fix typo on variant name in conflicts directive (#20906)Henrique Mendonça1-1/+1
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.