summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-01-31binary_distribution: Initialize _cached_specs at the module level and ↵Patrick Gartung3-13/+7
only search the mirrors in get_spec if spec is not in _cached_specs. (#14714) * Initialize _cached_specs at the file level and check for spec in it before searching mirrors in try_download_spec. * Make _cached_specs a set to avoid duplicates * Fix packaging test * Ignore build_cache in stage when spec.yaml files are downloaded.
2020-01-31boost: Add versions 1.71.0 and 1.72.0, use Clang toolset on Darwin (#14678)Tim Haines1-4/+4
* boost: Add versions 1.71.0 and 1.72.0 * Remove 'darwin' target * Add hainest as maintainer
2020-01-31draco: update versions (#14690)Kelly (KT) Thompson5-33/+214
* draco: update versions + Added versions 7.3.0 and 7.4.0. + Change several variants to be default TRUE since most consumers need these variants enabled (eospac, lapack, parmetis, superlu-dist). Change variant name for `+superlu_dist` to use hyphen instead of underscore. This makes the variant name consistent with the spackage name for `superlu-dist`. + Clean up `depends_on` instructions and avoid specifying `type` when possible. + Provide patch files that are necessary for some machines (mostly Cray machines). * Remove trailing whitespace. * Revert variant name to use underscore. * add maintainer information.
2020-01-31NAG Fortran Compiler, 6.0 dropped (unavailable), 7.0 added (#14691)Themos Tsikas1-1/+2
* NAG Fortran Compiler, 6.0 dropped (unavailable), 7.0 added * Update package.py * Update package.py
2020-01-31[libfabric@1.9.0] Fix C++ header usage (#14703)Dr. Christian Tacke1-0/+6
Fix from libfabric's git for 1.9.0. Compiling C++ software against libfabric@1.9.0 doesn't work without this patch. See: https://github.com/ofiwg/libfabric/commit/2e95b0efd85fa8a3d814128e34ec57ffd357460e
2020-01-31Fixed DIY package missing MPI dependency (#14704)Matthieu Dorier1-1/+5
2020-01-31`spack -V` is now more descriptive for dev branchesTodd Gamblin2-1/+94
`spack -V` previously always returned the version of spack from `spack.spack_version`. This gives us a general idea of what version users are on, but if they're on `develop` or on some branch, we have to ask more questions. This PR makes `spack -V` check whether this instance of Spack is a git repository, and if it is, it appends useful information from `git describe --tags` to the version. Specifically, it adds: - number of commits since the last release tag - abbreviated (but unique) commit hash So, if you're on `develop` you might get something like this: $ spack -V 0.13.3-912-3519a1762 This means you're on commit 3519a1762, which is 912 commits ahead of the 0.13.3 release. If you are on a release branch, or if you are using a tarball of Spack, you'll get the usual `spack.spack_version`: $ spack -V 0.13.3 This should help when asking users what version they are on, since a lot of people use the `develop` branch.
2020-01-31superlu-dist: enforce OpenMP=OFF (#14708)Christoph Junghans1-0/+1
2020-01-31portage: fix compile on icc (#14707)Christoph Junghans2-0/+27
2020-01-31Document how to use Spack to replace Homebrew/Conda (#13083)Adam J. Stewart1-0/+242
* Document how to use Spack to replace Homebrew/Conda * Initial draft; can iterate more as features become available
2020-01-30`spack containerize` generates containers from envs (#14202)Massimiliano Culpo24-3/+1238
This PR adds a new command to Spack: ```console $ spack containerize -h usage: spack containerize [-h] [--config CONFIG] creates recipes to build images for different container runtimes optional arguments: -h, --help show this help message and exit --config CONFIG configuration for the container recipe that will be generated ``` which takes an environment with an additional `container` section: ```yaml spack: specs: - gromacs build_type=Release - mpich - fftw precision=float packages: all: target: [broadwell] container: # Select the format of the recipe e.g. docker, # singularity or anything else that is currently supported format: docker # Select from a valid list of images base: image: "ubuntu:18.04" spack: prerelease # Additional system packages that are needed at runtime os_packages: - libgomp1 ``` and turns it into a `Dockerfile` or a Singularity definition file, for instance: ```Dockerfile # Build stage with Spack pre-installed and ready to be used FROM spack/ubuntu-bionic:prerelease as builder # What we want to install and how we want to install it # is specified in a manifest file (spack.yaml) RUN mkdir /opt/spack-environment \ && (echo "spack:" \ && echo " specs:" \ && echo " - gromacs build_type=Release" \ && echo " - mpich" \ && echo " - fftw precision=float" \ && echo " packages:" \ && echo " all:" \ && echo " target:" \ && echo " - broadwell" \ && echo " config:" \ && echo " install_tree: /opt/software" \ && echo " concretization: together" \ && echo " view: /opt/view") > /opt/spack-environment/spack.yaml # Install the software, remove unecessary deps and strip executables RUN cd /opt/spack-environment && spack install && spack autoremove -y RUN find -L /opt/view/* -type f -exec readlink -f '{}' \; | \ xargs file -i | \ grep 'charset=binary' | \ grep 'x-executable\|x-archive\|x-sharedlib' | \ awk -F: '{print $1}' | xargs strip -s # Modifications to the environment that are necessary to run RUN cd /opt/spack-environment && \ spack env activate --sh -d . >> /etc/profile.d/z10_spack_environment.sh # Bare OS image to run the installed executables FROM ubuntu:18.04 COPY --from=builder /opt/spack-environment /opt/spack-environment COPY --from=builder /opt/software /opt/software COPY --from=builder /opt/view /opt/view COPY --from=builder /etc/profile.d/z10_spack_environment.sh /etc/profile.d/z10_spack_environment.sh RUN apt-get -yqq update && apt-get -yqq upgrade \ && apt-get -yqq install libgomp1 \ && rm -rf /var/lib/apt/lists/* ENTRYPOINT ["/bin/bash", "--rcfile", "/etc/profile", "-l"] ```
2020-01-30Bypass build_cache/index.html read when trying to download spec.yaml for ↵Patrick Gartung2-21/+68
concretized spec. (#14698) * Add binary_distribution::get_spec which takes concretized spec Add binary_distribution::try_download_specs for downloading of spec.yaml files to cache get_spec is used by package::try_install_from_binary_cache to download only the spec.yaml for the concretized spec if it exists.
2020-01-30Use non-mutable default for names in binary_distribution::get_specs call ↵Patrick Gartung1-1/+3
(#14696) * Use non-mutable default for names * Make suggested change
2020-01-30fix: py-pillow build_ext vs. install (#14666)Andrew W Elble1-15/+20
Previously, the install stage would compile in things that were disabled during the build_ext phase. This would also result in the build pulling in locally installed versions of libraries that were disabled. The install process doesn't honor the same command-line flags that build_ext does, but does call build_ext again. Avoid the whole issue by just writing the options to setup.cfg Also, add the Imagemagick dependency for tests.
2020-01-30Document how to add conditional dependencies (#14694)Peter Scheibel1-0/+22
* add short docs section on conditional dependencies * add reference to spec syntax * add note that conditional dependencies can save time
2020-01-30Bugfix: put environment lock in the right place (#14692)Peter Scheibel1-1/+1
Locate the environment lock in the hidden environment directory rather than the root of the environment.
2020-01-30Updated docstring and version of lmod to v8.3 (#14687)Massimiliano Culpo1-7/+9
2020-01-30Add GDAL 3.0.4 (#14688)Adam J. Stewart1-1/+2
2020-01-30Limit the number of spec files downloaded to find matches for buildcaches ↵Patrick Gartung5-25/+29
(#14659) * Limit the number of spec flies downloaded to find matches
2020-01-30[py-joblib] added version 0.11 (#14672)Jennifer Herting1-0/+1
2020-01-30[r-manipulatewidget] added versions (#14674)Jennifer Herting1-0/+7
2020-01-30[r-rgl] added version 0.100.19 (#14675)Jennifer Herting1-0/+1
2020-01-29specs: avoid traversing specs when parsingTodd Gamblin1-8/+13
The Spec parser currently calls `spec.traverse()` after every parse, in order to set the platform if it's not set. We don't need to do a full traverse -- we can just check the platforrm as new specs are parsed. This takes about a second off the time required to import all packages in Spack (from 8s to 7s). - [x] simplify platform-setting logic in `SpecParser`.
2020-01-29repo: avoid unnecessary spec parsing in `filename_for_package_name()`Todd Gamblin1-14/+5
`filename_for_package_name()` and `dirname_for_package_name()` automatically construct a Spec from their arguments, which adds a fair amount of overhead to importing lots of packages. Removing this removes about 11% of the runtime of importing all packages in Spack (9s -> 8s). - [x] `filename_for_package_name()` and `dirname_for_package_name()` now take a string `pkg_name` arguments instead of specs.
2020-01-29environments: synchronize read and uninstall (#14676)Peter Scheibel2-18/+20
* `Environment.__init__` is now synchronized with all writing operations * `spack uninstall` now synchronizes its updates to any associated environment * A side effect of this is that the environment is no longer updated piecemeal as specs are uninstalled - all specs are removed from the environment before they are uninstalled
2020-01-29pumi: sim version check, meshes via submodule, ctest (#14597)Cameron Smith1-5/+17
* pumi: sim version check, meshes via submodule, ctest * Apply suggestions from code review Co-Authored-By: Adam J. Stewart <ajstewart426@gmail.com> * pumi: update comment on master version string * pumi: description of simmodsuite_version_check variant * pumi: add white space to variant description Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
2020-01-29fix cycle dependency in libxml+python (#13847)Greg Becker2-2/+8
* fix cycle dependency in libxml+python * comment why we need these dependencies
2020-01-29Fastx-toolkit package: patch for Fujitsu compiler (#14218)noguchi-k2-0/+21
Specify the scope of pragma pack
2020-01-29Fix py-pillow tests (#14670)Adam J. Stewart1-2/+4
2020-01-29Added MiniAMR@1.4.4 (#14667)Robert Pavel1-0/+1
2020-01-29Added xsbench@19 to Version List (#14668)Robert Pavel1-0/+1
2020-01-29[py-griddataformats] added new versions (#14671)Jennifer Herting1-1/+3
2020-01-29pythia8: add new package (#14665)Michael Kuhn1-0/+29
2020-01-29py-pyperf: add 1.6.{0,1} (#14662)Matthias Wolf1-0/+2
2020-01-29flatbuffers: add 1.11.0 (#14663)Matthias Wolf1-0/+1
2020-01-29py-black: update url, add 19.3b0 (#14664)Matthias Wolf1-1/+2
2020-01-28bugfix: correct exception message matching in tests (#14655)Tamara Dahlgren6-17/+26
This commit makes two fundamental corrections to tests: 1) Changes 'matches' to the correct 'match' argument for 'pytest.raises' (for all affected tests except those checking for 'SystemExit'); 2) Replaces the 'match' argument for tests expecting 'SystemExit' (since the exit code is retained instead) with 'capsys' error message capture. Both changes are needed to ensure the associated exception message is actually checked.
2020-01-28Fujitsu compiler: Defining option that is always added. (#14657)t-karatsu1-0/+4
2020-01-28git: add version 2.25.0 and fixup pcre dependency (#14649)Andrew W Elble1-2/+12
* git: add version 2.25.0 and fixup pcre dependency pcre2 became optional in 2.14 and the default in 2.18. I noticed this as git was compiling against the system pcre2 (spack was specifying pcre as the dependency). * missed a chunk from my internal repo
2020-01-28env: synchronize updates to environments (#14621)Peter Scheibel5-93/+153
Updates to environments were not multi-process safe, which prevented them from taking advantage of parallel builds as implemented in #13100. This is a minimal set of changes to enable `spack install` in an environment to be parallelized: - [x] add an internal lock, stored in the `.spack-env` directory, to synchronize updates to `spack.yaml` and `spack.lock` - [x] add `Environment.write_transaction` interface for this lock - [x] makes use of `Environment.write_transaction` in `install`, `add`, and `remove` commands - `uninstall` is not synchronized yet; that is left for a future PR.
2020-01-28Set netcdf-fortran to build serially with Intel compiler (#14461)Glenn Johnson2-0/+16
* Set netcdf-fortran to build serially with Intel compiler This PR turns off parallel builds when the Intel compiler is used. Builds with the Intel compiler will fail otherwise. * Change how parallel build is handled Use patch from netcdf-fortran project to turn off parallel buildi for version 4.5.2.
2020-01-28racon: support aarch64 and fix install error (#14529)darmac2-4/+2808
* racon: support aarch64 and fix install error * add aarch64 patch for racon
2020-01-28pcma: set return value and change return type of function (#14579)noguchi-k2-0/+45
2020-01-28diffutils: Changed the handling of undeclared functions from warning … ↵t-karatsu1-0/+5
(#14593) * diffutils: Changed the handling of undeclared functions from warning to error. * diffutils: Change the handling of warnings or error * Delete '-Werror=implicit-function-declaration' * Add '-Qunused-arguments'
2020-01-28Build graphite2 with Intel compiler (#14636)Glenn Johnson2-0/+13
This PR sets the definition of REGPARM when building with the Intel compiler.
2020-01-28Moreutils: add new package (#14653)Matthias Diener1-0/+30
* moreutils: add new package * fix flake8
2020-01-28Fixed path for CEREAL and Protobuf (#14641)Brian Van Essen1-1/+4
2020-01-28openPMD-api: With ADIOS2 by Default (#14643)Axel Huebl1-5/+5
Replace the deprecated ADIOS1 backend default with ADIOS2 default. Disable sz since we do not need it and it conflicts with supported version ranges between ADIOS2 and ADIOS1 if someone enables both.
2020-01-28powerapi: add a space between literal and identifier (#14645)noguchi-k2-0/+189
2020-01-28med: add a space between literal and identifier (#14646)noguchi-k2-0/+23