summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-02-21release workflow: Add build scripts for jobs and means to upload pkgsScott Wittenburg3-0/+541
2019-02-21release workflow: Add spack command for generating the .gitlab-ci.ymlScott Wittenburg6-0/+850
This spack command adds a new schema for a file which describes the builder containers available, along with the compilers availabe on each builder. The release-jobs command then generates the .gitlab-ci.yml file by first expanding the release spec set, concretizing each spec (in an appropriate docker container if --this-machine-only argument is not provided on command line), and then combining and staging all the concrete specs as jobs to be run by gitlab.
2019-02-21docker: Add Dockerfiles for images needed by AWS gitlab-runnersScott Wittenburg3-0/+118
The built images are set up with fairly recent versions of gcc and clang: - centos_7: [ gcc@5.5.0 (built from src), clang@6.0.0 (spack-built from src) ] - ubuntu_18.04: [ gcc@5.5.0 (system), clang@6.0.0-1ubuntu2 (system) ]
2019-02-21buildcache: Add sub-commands needed by release workflowScott Wittenburg6-79/+610
Adds four new sub-commands to the buildcache command: 1. save-yaml: Takes a root spec and a list of dependent spec names, along with a directory in which to save yaml files, and writes out the full spec.yaml for each of the dependent specs. This only needs to concretize the root spec once, then indexes it with the names of the dependent specs. 2. check: Checks a spec (via either an abstract spec or via a full spec.yaml) against remote mirror to see if it needs to be rebuilt. Comparies full_hash stored on remote mirror with full_hash computed locally to determine whether spec needs to be rebuilt. Can also generate list of specs to check against remote mirror by expanding the set of release specs expressed in etc/spack/defaults/release.yaml. 3. get-buildcache-name: Makes it possible to attempt to read directly the spec.yaml file on a remote or local mirror by providing the path where the file should live based on concretizing the spec. 4. download: Downloads all buildcache files associated with a spec on a remote mirror, including any .spack, .spec, and .cdashid files that might exist. Puts the files into the local path provided on the command line, and organizes them in the same hierarchy found on the remote mirror This commit also refactors lib/spack/spack/util/web.py to expose functionality allowing other modules to read data from a url.
2019-02-21add CombinatorialSpecSet class for taking cross-products of Specs.Todd Gamblin5-0/+623
- add CombinatorialSpecSet in spack.util.spec_set module. - class is iterable and encaspulated YAML parsing and validation. - Adjust YAML format to be more generic - YAML spec-set format now has a `matrix` section, which can contain multiple lists of specs, generated different ways. Including: - specs: a raw list of specs. - packages: a list of package names and versions - compilers: a list of compiler names and versions - All of the elements of `matrix` are dimensions for the build matrix; we take the cartesian product of these lists of specs to generate a build matrix. This means we can add things like [^mpich, ^openmpi] to get builds with different MPI versions. It also means we can multiply the build matrix out with lots of different parameters. - Add a schema format for spec-sets
2019-02-21add charliecloud 0.9.7 (#10661)Jordan Ogas1-0/+1
2019-02-20gcc: add nvptx offload capability (#9406)Levi Baber1-0/+101
Add optional support for Nvidia PTX
2019-02-20Download GNU packages from mirrors (Part 2) (#10555)Adam J. Stewart4-4/+4
2019-02-20uvw: new package (#10645)Massimiliano Culpo1-0/+36
2019-02-20xxhash: edit prefix in Makefile for macOS (#10606)Ben Morgan1-2/+3
On macOS, the build of libxxhash is performed by a bare `make` launched by `MakePackage`s default `build` phase. As `prefix` is not set at this point, the library gets compiled with a hard-coded install name of `/usr/local/libxxhash.dylib`. Downstream clients, in the tested case Root, will then fail to build as the install name is incorrect. Move setting of `prefix` from `install` to `edit` so that it propagates to subsequent `build` and `install` phases.
2019-02-19new package: libyaml (#10634)Isaac Whitfield1-0/+39
2019-02-19Quantum ESPRESSO: HDF5 update (#10607)Nichols A. Romero1-11/+26
* QE hdf5 is now a multi-valued variant. Update conflicts accordingly. * Update dependencies for hdf5 multi-valued variant. Bug fix: high-level hdf5 library needs to be a hard dependecy. * Support for HDF5 serial interface. Note that this is not supported in QE autoconf, but will be fixed in the next official release.
2019-02-19nix: new package added (#9171)Tristan Carel3-0/+115
2019-02-19update IOR package (#10595)Rob Latham1-2/+3
- new GitHub home - new 3.2 release
2019-02-19cquery: new package (#10636)Andreas Baumbach1-0/+24
2019-02-19connect-proxy: new package (#10635)Andreas Baumbach1-0/+20
2019-02-19mvapich2: Improve package (#10642)Michael Kuhn1-1/+7
- Add support for nemesis:ofi netmod - Add missing pkg-config and libxml2 dependencies
2019-02-18Add comments and version (#10592)Elizabeth Fischer1-1/+4
2019-02-18git-lfs: add version 2.7.0 (#10631)Matthias Diener1-0/+1
2019-02-18openPMD-api: mpi4py support (#10616)Axel Huebl1-4/+5
Refactor dependencies, increase new min versions, add mpi4py variant.
2019-02-18NLohmann-JSON: v3.5.0 (#10615)Axel Huebl1-0/+1
Add the latest bugfix release.
2019-02-18Catch2: v2.6.1 (#10613)Axel Huebl1-0/+1
add the lastest bugfix release of Catch2
2019-02-17Update CUDA support in QMCPACK (#10587)Nichols A. Romero1-3/+6
* Support in QMCPACK for CUDA_ARCH flag. * No need to have explicit CUDA variant anymore. * Internal QMCPACK CMake assumes a minimum GPU architecture if none is provided.
2019-02-16Fix plural typo in ROOT package (#10614)Hadrien G1-1/+1
2019-02-16[Docker] more base images (#10560)Omar Padron13-21/+90
* Revert "work around an issue with docker/dockerhub (#10547)" This reverts commit 0ef139ac4d475fb99e08b0856dd7f27b97082e50. * Add more docker base image configurations. - Renamed configs - "centos" -> "centos-7" - "fedora" -> "fedora-24" - "opensuse" -> "opensuse-tumbleweed" - "scilinux" -> "scilinux-7" - "ubuntu" -> "ubuntu-1804" - Added configs - "centos-6" - "fedora-29" - "opensuse-leap" - "scilinux-6" - "ubuntu-1604" With these changes, our docker hub image collection will consist of the following: - "spack/archlinux" - "latest" - "spack/centos" - "latest", "centos7", "7" - "centos6", "6" - "spack/fedora" - "latest", "29" - "24" - "spack/opensuse" - "latest", "tumbleweed" - "leap" - "spack/scilinux" - "latest", "7" - "6" - "spack/ubuntu" - "latest", "bionic", "18.04" - "xenial", "16.04"
2019-02-15Dependency libs: filter system paths and always add lib dir (#10622)Peter Scheibel1-7/+16
Fixes #10617 Fixes #10624 Closes: #10619 #8136 dependended entirely on spec.libs to retrieve library directories from dependencies. By default this function only retrieves libraries if their name is something like lib<package> (e.g. "libfoo.so" for a package called "Foo"). This unconditionally adds lib/lib64 directories for each dependency as link/rpath directories. This also filters system paths from link/rpaths/include directories and removes duplicated paths that #8136 could add.
2019-02-15Fix bug getting specs from build caches (#9600)Javier Cervantes1-2/+2
2019-02-14CDash: allow installing from spec.yaml (#10565)Scott Wittenburg2-1/+48
If the -f <specyamlfile> argument to install is used (rather than providing package specs on the command line), CDash throws an exception due to missing the installation command (the packages targeted for install). This fixes that behavior so CDash reporting succeeds in either case.
2019-02-14new variant: simmodsuite for pumi (#8775)Cameron Smith1-1/+25
2019-02-14Removed pkg.headers.directories from the include list (#10604)Massimiliano Culpo3-15/+13
fixes #10601 Due to a bug this attribute is wrong for packages that use directories as namespaces. For instance it will add "<boost-prefix>/include/boost" instead of "<boost-prefix>/include" to the include path. As a minor addition a few loops in the compiler wrappers have been simplified.
2019-02-14cp2k is now a MakefilePackage (#10570)Massimiliano Culpo4-251/+269
* cp2k: archive the Makefile after a successful installation * cp2k: all checksums are now sha256 * libint: all checksums are now sha256 + added versions 2.4.X * libxc: all checksums are now sha256 + added version 4.3.2 * cp2k: os.path.join instead of join_path + simplified openmp flags * cp2k: turned into a MakefilePackage * cp2k: refactored edit method so that Makefile writing happens last
2019-02-13pythia6: fix input verification issue and example data checksum. (#10563)Chris Green1-3/+2
* pythia6: fix issue validating integer input. * pythia6: account for apparent update of example data file.
2019-02-13xrootd: allow specification of C++ standard. (#10577)Chris Green1-1/+39
* xrootd: add cxxstd variant. * xrootd: support for recent and upcoming versions.
2019-02-13icu4c: Add cxxstd variant (#10552)Ben Morgan1-0/+15
* icu4c: Add cxxstd variant For versions supported in Spack, ICU4C defaults to the C++11. Provide a variant to default to this, plus options for C++14 and 17 if dependees require for ABI compatibility. * icu4c: cxxstd variant cannot be multi
2019-02-13Add Gaudi and RELAX packages (#9194)Hadrien G3-0/+118
* Add a RELAX package * Add a Gaudi package
2019-02-13Add a DD4hep package (#9208)Hadrien G1-0/+43
2019-02-13Add new ROOT release, move to SHA-256 checksums (#10583)Hadrien G1-13/+15
2019-02-13Updated Geant4 and dependencies clhep and vecgeom to use cxxstd= variant ↵Patrick Gartung17-50/+509
(#10518) * Updated Geant4 and dependencies clhep and vecgeom to use cxxstd= variant so that it is applied consistently. * Make standalone geant4 data packages that are used when data is not installed with geant4. This allows installing the data files are externals that can be common to many compiler version. * move geant4 data package dependencies to umbrella package geant4-data
2019-02-13make SPACK_SHELL detection more robust (#9712)Phil Carns1-1/+12
Spack shell detection in setup-env.sh was originally based on examining the executable name of $$ (from "ps"). In some cases this does not actually give the name of the shell used, for example when setup-env.sh was invoked from a script using "#!". To make shell detection more robust, this adds a preliminary check for shell variables which indicate that the shell is bash or zsh; the executable name of $$ is retained as a fallback if those variables are not defined.
2019-02-13Dynamic library/include paths (#8136)Peter Scheibel9-252/+261
Fixes #7855 Closes #8070 Closes #2645 When searching for library directories (e.g. to add "-L" arguments to the compiler wrapper) Spack was only trying the "lib/" and "lib64/" directories for each dependency install prefix; this missed cases where packages would install libraries to subdirectories and also was not customizable. This PR makes use of the ".headers" and ".libs" properties for more-advanced location of header/library directories. Since packages can override the default behavior of ".headers" and ".libs", it also allows package writers to customize. The following environment variables which used to be set by Spack for a package build have been removed: * Remove SPACK_PREFIX and SPACK_DEPENDENCIES environment variables as they are no-longer used * Remove SPACK_INSTALL environment variable: it was not used before this PR
2019-02-13add latest version of pixman (#10580)Peter Doak1-2/+3
2019-02-13Eigen package: deactivate some dependencies (#10572)Hadrien G1-7/+10
Set defaults in eigen package to omit typically-unused dependencies
2019-02-13Update lbann sw stack dependencies (#10579)Brian Van Essen3-8/+5
* Added a package for the MDAnalysis toolkit. * Updated LBANN, Hydrogen, and Aluminum to not require CUDA-aware MPI even when using CUDA. Fixed small bugs within both LBANN and Hydrogen packages. Added requirements for breathe and cereal to LBANN. * Update use case for doc dependencies. * Cleaning up some of the LBANN software stack dependencies.
2019-02-13Bug Fix in permission setter (#10584)abernede1-2/+3
* fix permission setter Fix a typo in islink test when applied to files. * os.walk explicitly set not to follow links The algorithm strongly rely on not following links.
2019-02-13Allow tty output to be timestamped (#10554)sknigh5-6/+103
* Spack debug output now includes microsecond-granularity timestamps. * Timestamps can also be enabled with the `--timestamp` command line argument.
2019-02-13Cnvnator: a new package. (#8959)健美猞猁1-0/+50
2019-02-13enh: allow time like HH:MM in date strings. (#10034)Matthias Wolf2-1/+8
2019-02-12Enhancement to module autoload documentation (#10310)George Hartzell1-1/+15
* Note that `none` is the default for lmod autoload Save a bit of confusion by *explicitly* pointing out that `none` is the default value for autoload in the lmod module file generator. * Add a tip re building software externally Add a tip about using `autoload: all` when building packages outside of the tree that use artifacts (e.g. libraries, includes) within the tree.
2019-02-12Allow secondary generators when building with CMake. (#9324)Chris Green2-4/+50
CMake supports the notion of secondary generators which provide extra information to (e.g.) IDEs over and above that normally provided by the primary generator. Spack only supports the 'Unix Makefiles' and 'Ninja' primary generators but was not parsing out the primary generator when a secondary generator was also included (e.g. for a generator attribute like 'Codeblocks - Ninja'). This adds a regex for extracting the primary generator for validation. Since the secondary generator is irrelevant to a Spack build, it is passed on to CMake without further validation.
2019-02-12casacore: new package (#7471)健美猞猁1-0/+71