Commit graph

10853 commits

Author SHA1 Message Date
Daryl W. Grunau
4f5be841d4 gcc package: skip nvptx_install for gcc~nvptx (#10672)
The nvptx installation support phase (added in 040b658) was always
running for gcc regardless of whether +nvptx was enabled. This
removes the "@when" syntax (which apparently is not working) and
adds a check inside of the "nvptx_install" function to bail out if
+nvptx is not enabled.
2019-02-21 15:43:29 -06:00
Scott Wittenburg
5600c9f0d9 release workflow: Add build scripts for jobs and means to upload pkgs 2019-02-21 15:37:35 -06:00
Scott Wittenburg
a6e8e889b2 release workflow: Add spack command for generating the .gitlab-ci.yml
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-21 15:37:35 -06:00
Scott Wittenburg
05cdb5a0bb docker: Add Dockerfiles for images needed by AWS gitlab-runners
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-21 15:37:35 -06:00
Scott Wittenburg
fce1c4133f buildcache: Add sub-commands needed by release workflow
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-21 15:37:35 -06:00
Todd Gamblin
be4b95ee30 add CombinatorialSpecSet class for taking cross-products of Specs.
- 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-21 15:37:35 -06:00
Jordan Ogas
ad8036e5a2 add charliecloud 0.9.7 (#10661) 2019-02-21 09:58:37 +01:00
Levi Baber
040b65876b gcc: add nvptx offload capability (#9406)
Add optional support for Nvidia PTX
2019-02-20 20:52:15 -06:00
Adam J. Stewart
af8d84197d
Download GNU packages from mirrors (Part 2) (#10555) 2019-02-20 09:08:42 -06:00
Massimiliano Culpo
0a252eccc4
uvw: new package (#10645) 2019-02-20 13:53:07 +01:00
Ben Morgan
fb6a2b5cab xxhash: edit prefix in Makefile for macOS (#10606)
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-20 10:55:09 +01:00
Isaac Whitfield
286da7f47b new package: libyaml (#10634) 2019-02-19 12:45:31 -06:00
Nichols A. Romero
7dd5bdcfa4 Quantum ESPRESSO: HDF5 update (#10607)
* 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-19 17:07:27 +01:00
Tristan Carel
efc3406900 nix: new package added (#9171) 2019-02-19 15:27:39 +01:00
Rob Latham
2242b9f338 update IOR package (#10595)
- new GitHub home
- new 3.2 release
2019-02-19 12:10:17 +01:00
Andreas Baumbach
66bfad8d44 cquery: new package (#10636) 2019-02-19 11:30:41 +01:00
Andreas Baumbach
9e3d92692d connect-proxy: new package (#10635) 2019-02-19 11:30:09 +01:00
Michael Kuhn
bcee3efecd mvapich2: Improve package (#10642)
- Add support for nemesis:ofi netmod
- Add missing pkg-config and libxml2 dependencies
2019-02-19 11:02:02 +01:00
Elizabeth Fischer
ec4da14e2c Add comments and version (#10592) 2019-02-18 21:48:01 -06:00
Matthias Diener
aabd2be31a git-lfs: add version 2.7.0 (#10631) 2019-02-18 08:59:11 +01:00
Axel Huebl
899c83c215 openPMD-api: mpi4py support (#10616)
Refactor dependencies, increase new min versions, add
mpi4py variant.
2019-02-18 08:54:27 +01:00
Axel Huebl
e5dc5c173e NLohmann-JSON: v3.5.0 (#10615)
Add the latest bugfix release.
2019-02-18 08:53:50 +01:00
Axel Huebl
a4f9501a56 Catch2: v2.6.1 (#10613)
add the lastest bugfix release of Catch2
2019-02-18 08:53:33 +01:00
Nichols A. Romero
05269ad392 Update CUDA support in QMCPACK (#10587)
* 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-17 08:17:58 -05:00
Hadrien G
a93581e8de Fix plural typo in ROOT package (#10614) 2019-02-16 21:22:23 +01:00
Omar Padron
67415a1875 [Docker] more base images (#10560)
* Revert "work around an issue with docker/dockerhub (#10547)"

This reverts commit 0ef139ac4d.

* 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-16 10:20:25 -05:00
Peter Scheibel
32ba471816
Dependency libs: filter system paths and always add lib dir (#10622)
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-15 17:21:35 -06:00
Javier Cervantes
9b1690641b Fix bug getting specs from build caches (#9600) 2019-02-15 13:33:49 -06:00
Scott Wittenburg
75487dca44 CDash: allow installing from spec.yaml (#10565)
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-14 17:43:53 -06:00
Cameron Smith
a06bf21610 new variant: simmodsuite for pumi (#8775) 2019-02-14 21:36:56 +01:00
Massimiliano Culpo
1ec0d4feb3 Removed pkg.headers.directories from the include list (#10604)
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-14 08:35:41 -08:00
Massimiliano Culpo
b3dd95bd62
cp2k is now a MakefilePackage (#10570)
* 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-14 07:11:20 +01:00
Chris Green
051c66335f pythia6: fix input verification issue and example data checksum. (#10563)
* pythia6: fix issue validating integer input.

* pythia6: account for apparent update of example data file.
2019-02-13 23:17:46 -06:00
Chris Green
24d7f0f0af xrootd: allow specification of C++ standard. (#10577)
* xrootd: add cxxstd variant.

* xrootd: support for recent and upcoming versions.
2019-02-13 23:17:10 -06:00
Ben Morgan
7e8b8d61a1 icu4c: Add cxxstd variant (#10552)
* 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-13 23:05:39 -06:00
Hadrien G
6e95e06bda Add Gaudi and RELAX packages (#9194)
* Add a RELAX package

* Add a Gaudi package
2019-02-13 23:04:38 -06:00
Hadrien G
54f94e5828 Add a DD4hep package (#9208) 2019-02-13 22:58:27 -06:00
Hadrien G
0e0e7d4137 Add new ROOT release, move to SHA-256 checksums (#10583) 2019-02-13 22:54:45 -06:00
Patrick Gartung
0748a32b2d
Updated Geant4 and dependencies clhep and vecgeom to use cxxstd= variant (#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-13 22:51:26 -06:00
Phil Carns
6971f8ae32 make SPACK_SHELL detection more robust (#9712)
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-13 19:52:18 -06:00
Peter Scheibel
8ca384875e
Dynamic library/include paths (#8136)
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-13 17:38:14 -06:00
Peter Doak
1bf86292e1 add latest version of pixman (#10580) 2019-02-13 21:26:51 +01:00
Hadrien G
9374adb455 Eigen package: deactivate some dependencies (#10572)
Set defaults in eigen package to omit typically-unused dependencies
2019-02-13 13:33:01 -06:00
Brian Van Essen
406a242847 Update lbann sw stack dependencies (#10579)
* 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-13 11:19:15 -08:00
abernede
89727ba4e7 Bug Fix in permission setter (#10584)
* 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-13 11:18:36 -08:00
sknigh
a76c50d1ee Allow tty output to be timestamped (#10554)
* Spack debug output now includes microsecond-granularity timestamps.
* Timestamps can also be enabled with the `--timestamp` command line argument.
2019-02-13 10:14:35 -08:00
健美猞猁
2202579685 Cnvnator: a new package. (#8959) 2019-02-13 11:15:00 +01:00
Matthias Wolf
861dd06bd1 enh: allow time like HH:MM in date strings. (#10034) 2019-02-13 11:05:00 +01:00
George Hartzell
f65a1155e1 Enhancement to module autoload documentation (#10310)
* 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-12 22:02:13 +01:00
Chris Green
05f565356f Allow secondary generators when building with CMake. (#9324)
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-12 12:39:19 -06:00